admin
2021-05-29 40d0d99fb89665e6e7702ea62e45fabe2d01e51a
service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java
@@ -1,6 +1,7 @@
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;
@@ -12,6 +13,7 @@
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;
@@ -79,18 +81,19 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveVipCenter(String uid, Long gradeId, Integer validDays, Long orderId) {
    public void saveVipCenter(String uid, Long gradeId, Integer validHours, Long orderId) {
        VipCenterRecord record = new VipCenterRecord();
        VipCenter vipCenter = vipCenterMapper.selectForUpdate(uid);
        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);
@@ -104,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);
@@ -115,7 +120,6 @@
            vipCenter.setUpdateTime(new Date());
            vipCenterMapper.updateByPrimaryKeySelective(vipCenter);
            record.setStartTime(new Date());
            record.setEndTime(endTime);
        }
@@ -123,6 +127,7 @@
        record.setUid(uid);
        record.setGradeId(gradeId);
        record.setCreateTime(new Date());
        record.setState(1);
        vipCenterRecordService.insertSelective(record);
    }
@@ -131,7 +136,7 @@
    public VipGradePotence getVipPotence(String uid) {
        VipGradePotence potence = null;
        VipCenter vipCenter = vipCenterMapper.getByUid(uid);
        if (vipCenter != null || 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());
@@ -183,4 +188,45 @@
        }
        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);
    }
}