From 996f08cf58d2c3fc71ef4710947cbb0b5a5c046f Mon Sep 17 00:00:00 2001 From: yj <Administrator@192> Date: 星期一, 24 五月 2021 22:12:21 +0800 Subject: [PATCH] 会员等级维护 --- service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java | 86 ++++++++++++++++++++++++++++++++++++++----- 1 files changed, 76 insertions(+), 10 deletions(-) diff --git a/service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java b/service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java index eadc290..0194efd 100644 --- a/service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java +++ b/service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java @@ -2,16 +2,15 @@ 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 javax.annotation.Resource; @@ -27,15 +26,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,11 +78,12 @@ } @Override + @Transactional(rollbackFor = Exception.class) public void saveVipCenter(String uid, Long gradeId, Integer validDays, Long orderId) { VipCenterRecord record = new VipCenterRecord(); VipCenter vipCenter = vipCenterMapper.selectForUpdate(uid); - if (vipCenter == null) { + if (vipCenter == null) { Date startTime = new Date(); Date endTime = DateUtil.plusDayDate(validDays, startTime); @@ -117,4 +125,62 @@ record.setCreateTime(new Date()); vipCenterRecordService.insertSelective(record); } -} + + + @Override + public VipGradePotence getVipPotence(String uid) { + VipGradePotence potence = 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) { + 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(); + } +} \ No newline at end of file -- Gitblit v1.8.0