admin
2021-05-29 40d0d99fb89665e6e7702ea62e45fabe2d01e51a
service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java
@@ -1,18 +1,19 @@
package com.ks.vip.service.remote;
import com.ks.vip.exception.VipCenterException;
import com.ks.vip.mapper.VipCenterMapper;
import com.ks.vip.mapper.VipCenterRecordMapper;
import com.ks.vip.mapper.VipComboMapper;
import com.ks.vip.pojo.DO.VipCenter;
import com.ks.vip.pojo.DO.VipCenterRecord;
import com.ks.vip.pojo.DO.VipCombo;
import com.ks.vip.pojo.DO.*;
import com.ks.vip.pojo.Enums.VIPEnum;
import com.ks.vip.query.VipCenterQuery;
import com.ks.vip.query.VipComboQuery;
import com.ks.vip.service.VipCenterRecordService;
import com.ks.vip.service.VipCenterService;
import com.ks.vip.service.VipComboService;
import com.ks.vip.service.*;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.transaction.annotation.Transactional;
import org.yeshi.utils.DateUtil;
import org.yeshi.utils.StringUtil;
import javax.annotation.Resource;
import java.util.Date;
@@ -27,15 +28,23 @@
    @Resource
    private VipCenterRecordService vipCenterRecordService;
    @Resource
    private VipGradeService vipGradeService;
    @Resource
    private VipGradePotenceService vipGradePotenceService;
    @Resource
    private VipCenterRecordMapper vipCenterRecordMapper;
    @Override
    public void insertSelective(VipCenter t){
    public void insertSelective(VipCenter t) {
        vipCenterMapper.insertSelective(t);
    }
    @Override
    public void updateByPrimaryKeySelective(VipCenter t){
    public void updateByPrimaryKeySelective(VipCenter t) {
        vipCenterMapper.updateByPrimaryKeySelective(t);
    }
@@ -71,18 +80,20 @@
    }
    @Override
    public void saveVipCenter(String uid, Long gradeId, Integer validDays, Long orderId) {
    @Transactional(rollbackFor = Exception.class)
    public void saveVipCenter(String uid, Long gradeId, Integer validHours, Long orderId) {
        VipCenterRecord record = new VipCenterRecord();
        VipCenter vipCenter = vipCenterMapper.selectForUpdate(uid);
        if (vipCenter == null)  {
        if (vipCenter == null) {
            vipCenter=new VipCenter();
            Date startTime = new Date();
            Date endTime = DateUtil.plusDayDate(validDays, startTime);
            Date endTime = new Date(startTime.getTime() + 1000 * 60 * 60L * validHours);
            vipCenter.setUid(uid);
            vipCenter.setGradeId(gradeId);
            vipCenter.setStartTime(startTime);
            vipCenter.setEndTime(DateUtil.plusDayDate(validDays, new Date()));
            vipCenter.setEndTime(endTime);
            vipCenter.setCreateTime(new Date());
            vipCenterMapper.insertSelective(vipCenter);
@@ -96,10 +107,12 @@
            long nowTime = java.lang.System.currentTimeMillis();
            if (gradeId.longValue() == oldGradeId.longValue() && vipCenter.getEndTime().getTime() > nowTime) {
                // 上次会员还未已结束
                endTime = DateUtil.plusDayDate(validDays, vipCenter.getEndTime());
                record.setStartTime(endTime);
                endTime = new Date(vipCenter.getEndTime().getTime() + 1000 * 60 * 60L * validHours);
            } else {
                startTime = new Date();
                endTime = DateUtil.plusDayDate(validDays, startTime);
                record.setStartTime(startTime);
                endTime = new Date(startTime.getTime() + 1000 * 60 * 60L * validHours);
            }
            vipCenter.setStartTime(startTime);
            vipCenter.setEndTime(endTime);
@@ -107,7 +120,6 @@
            vipCenter.setUpdateTime(new Date());
            vipCenterMapper.updateByPrimaryKeySelective(vipCenter);
            record.setStartTime(new Date());
            record.setEndTime(endTime);
        }
@@ -115,20 +127,106 @@
        record.setUid(uid);
        record.setGradeId(gradeId);
        record.setCreateTime(new Date());
        record.setState(1);
        vipCenterRecordService.insertSelective(record);
    }
    public void getVipPotence(String uid) {
    @Override
    public VipGradePotence getVipPotence(String uid) {
        VipGradePotence potence = null;
        VipCenter vipCenter = vipCenterMapper.getByUid(uid);
        if (vipCenter.getGradeId() != null) {
        if (vipCenter != null && vipCenter.getGradeId() != null) {
            long nowTime = java.lang.System.currentTimeMillis();
            if (vipCenter.getStartTime().getTime() <= nowTime && vipCenter.getEndTime().getTime() >= nowTime) {
                potence = vipGradePotenceService.getPotenceByGradeId(vipCenter.getGradeId());
            }
        }
        if (potence == null) {
            potence = vipGradePotenceService.getDefaultGradePotence();
        }
        return potence;
    }
    @Override
    public VipGrade getVipGrade(String uid) {
        VipGrade vipGrade = null;
        VipCenter vipCenter = vipCenterMapper.getByUid(uid);
        if (vipCenter != null && vipCenter.getGradeId() != null) {
            long nowTime = java.lang.System.currentTimeMillis();
            if (vipCenter.getStartTime().getTime() <= nowTime && vipCenter.getEndTime().getTime() >= nowTime) {
                vipGrade = vipGradeService.selectByPrimaryKey(vipCenter.getGradeId());
            }
        }
        if (vipGrade == null) {
            vipGradeService.getDefaultGrade();
        }
        return vipGrade;
    }
    @Override
    public VIPEnum getVIPEnumByUid(String uid) {
        VipGrade vipGrade = getVipGrade(uid);
        if (vipGrade != null) {
            return vipGrade.getIdentity();
        } else {
            return null;
        }
    }
    @Override
    public VIPEnum getVIPEnumByUid(String uid, Date date) {
        VipCenterRecordMapper.DaoQuery daoQuery = new VipCenterRecordMapper.DaoQuery();
        daoQuery.uid = uid;
        daoQuery.date = date;
        daoQuery.start = 0;
        daoQuery.count = 1;
        List<VipCenterRecord> list = vipCenterRecordMapper.list(daoQuery);
        if (list == null || list.size() == 0) {
            return vipGradeService.getDefaultGrade().getIdentity();
        }
        return vipGradeService.selectByPrimaryKey(list.get(0).getGradeId()).getIdentity();
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void  saveManageWeb(VipCenter t) throws VipCenterException {
        if (t== null || StringUtil.isNullOrEmpty(t.getUid())) {
            throw new VipCenterException(1, "用户ID不存在");
        }
        if (t.getGradeId() == null) {
            throw new VipCenterException(1, "请选择用户等级");
        }
        if (t.getStartTime() == null) {
            throw new VipCenterException(1, "请选择开始时间");
        }
        if (t.getEndTime() == null) {
            throw new VipCenterException(1, "请选择结束时间");
        }
        VipCenter vipCenter = vipCenterMapper.selectForUpdate(t.getUid());
        if (vipCenter == null) {
            t.setCreateTime(new Date());
            vipCenterMapper.insertSelective(t);
        } else {
            t.setUpdateTime(new Date());
            vipCenterMapper.updateByPrimaryKeySelective(t);
        }
        // 保存记录
        VipCenterRecord record = new VipCenterRecord();
        record.setStartTime(t.getStartTime());
        record.setEndTime(t.getEndTime());
        record.setUid(t.getUid());
        record.setGradeId(t.getGradeId());
        record.setCreateTime(new Date());
        vipCenterRecordService.insertSelective(record);
    }
}
}