From b4a195f07fc3c0c417d9bb2f06acf76f5a62f29e Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期六, 29 五月 2021 16:33:06 +0800 Subject: [PATCH] 会员权益 --- service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java | 109 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 95 insertions(+), 14 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 16c9ed4..2b9474f 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 @@ -1,7 +1,9 @@ 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.*; import com.ks.vip.pojo.Enums.VIPEnum; @@ -11,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; @@ -31,15 +34,17 @@ @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); } @@ -76,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) { + 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); @@ -101,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); @@ -112,7 +120,6 @@ vipCenter.setUpdateTime(new Date()); vipCenterMapper.updateByPrimaryKeySelective(vipCenter); - record.setStartTime(new Date()); record.setEndTime(endTime); } @@ -120,20 +127,35 @@ record.setUid(uid); record.setGradeId(gradeId); record.setCreateTime(new Date()); + record.setState(1); vipCenterRecordService.insertSelective(record); } - - @Override 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()); + potence = vipGradePotenceService.getCurrentByGradeId(vipCenter.getGradeId()); + } + } + if (potence == null) { + potence = vipGradePotenceService.getDefaultGradePotence(); + } + return potence; + } + + @Override + public VipGradePotence getVipPotenceByTime(String uid, Date time) { + 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.getByGradeIdAndTime(vipCenter.getGradeId(), time); } } if (potence == null) { @@ -162,6 +184,65 @@ @Override public VIPEnum getVIPEnumByUid(String uid) { VipGrade vipGrade = getVipGrade(uid); - return vipGrade.getIdentity(); + 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); + } + + + } \ No newline at end of file -- Gitblit v1.8.0