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/VipOrderServiceImpl.java | 91 ++++++++++++++------------------------------- 1 files changed, 29 insertions(+), 62 deletions(-) diff --git a/service-vip/src/main/java/com/ks/vip/service/remote/VipOrderServiceImpl.java b/service-vip/src/main/java/com/ks/vip/service/remote/VipOrderServiceImpl.java index 3a96c5e..b46557d 100644 --- a/service-vip/src/main/java/com/ks/vip/service/remote/VipOrderServiceImpl.java +++ b/service-vip/src/main/java/com/ks/vip/service/remote/VipOrderServiceImpl.java @@ -14,9 +14,12 @@ import com.ks.vip.service.VipOrederService; import org.apache.dubbo.config.annotation.Service; import org.springframework.transaction.annotation.Transactional; +import org.yeshi.utils.DateUtil; import org.yeshi.utils.StringUtil; +import org.yeshi.utils.TimeUtil; import javax.annotation.Resource; +import java.text.ParseException; import java.util.Date; import java.util.List; @@ -34,12 +37,12 @@ @Override - public void insertSelective(VipOrder t){ + public void insertSelective(VipOrder t) { vipOrderMapper.insertSelective(t); } @Override - public void updateByPrimaryKeySelective(VipOrder t){ + public void updateByPrimaryKeySelective(VipOrder t) { vipOrderMapper.updateByPrimaryKeySelective(t); } @@ -72,81 +75,45 @@ return vipOrderMapper.listByPage(query); } - @Override - @Transactional(rollbackFor = Exception.class) - public void addOrderByBuy(VipOrderDTO t) throws VipOrderException { - if(t.getComboId() == null || t.getComboId() <= 0){ - throw new VipOrderException(1, "濂楅ID涓嶈兘涓虹┖"); - } - if(StringUtil.isNullOrEmpty(t.getUid())){ - throw new VipOrderException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"); - } - if(t.getPayWay() == null){ - throw new VipOrderException(1, "浠樻鏂瑰紡涓嶈兘涓虹┖"); - } - if(StringUtil.isNullOrEmpty(t.getThreeOrderId())){ - throw new VipOrderException(1, "浠樻璁㈠崟鍙蜂笉鑳戒负绌�"); - } - - // 妫�鏌ユ槸鍚﹀凡璁板綍 - VipOrder order = vipOrderMapper.getByThreeOrderId(t.getThreeOrderId()); - if (order != null) { - throw new VipOrderException(1, "璇ヤ粯娆捐鍗曞彿宸插瓨鍦�"); - } - - VipCombo vipCombo = vipComboService.selectByPrimaryKey(t.getComboId()); - if (vipCombo == null) { - throw new VipOrderException(1, "璇ュ椁愪笉瀛樺湪"); - } - // 鏈夋晥澶╂暟 - Integer validDays = vipCombo.getValidDays(); - - // 鍒ゆ柇璁㈠崟绫诲瀷 - String orderType = OrderTypeEnum.buyNewly.name(); - long count = vipOrderMapper.countByTypeAndUid(t.getUid(), orderType); - if(count > 0) { - orderType = OrderTypeEnum.buyRenew.name(); - } - - // 鎻掑叆璁㈠崟淇℃伅 - VipOrder newOrder = new VipOrder(); - newOrder.setComboId(t.getComboId()); - newOrder.setUid(t.getUid()); - newOrder.setThreeOrderId(t.getThreeOrderId()); - newOrder.setPayWay(t.getPayWay().name()); - newOrder.setPayAccount(t.getPayAccount()); - newOrder.setPayMoney(t.getPayMoney()); - newOrder.setPayTime(t.getPayTime()); - newOrder.setType(orderType); - newOrder.setCreateTime(new Date()); - vipOrderMapper.insertSelective(newOrder); - - // 鏇存柊绛夌骇 - vipCenterService.saveVipCenter(t.getUid(), vipCombo.getGradeId(), validDays, newOrder.getId() ); - } - @Override @Transactional(rollbackFor = Exception.class) - public void addOrderByWatchVideo(String uid, Long gradeId, Integer validDays) throws VipOrderException { - if(StringUtil.isNullOrEmpty(uid)){ + public void addOrderByWatchVideo(String uid, Long gradeId, Integer hour) throws VipOrderException { + if (StringUtil.isNullOrEmpty(uid)) { throw new VipOrderException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"); } - if(gradeId == null){ + if (gradeId == null) { throw new VipOrderException(1, "绛夌骇ID涓嶈兘涓虹┖"); } - if(validDays == null || validDays.longValue() <= 0){ - throw new VipOrderException(1, "鏈夋晥澶╂暟涓嶈兘涓虹┖"); + if (hour == null || hour.longValue() <= 0) { + throw new VipOrderException(1, "鏈夋晥灏忔椂鏁颁笉鑳戒负绌�"); } + if (!canAddOrderByWatchVideo(uid)) { + throw new VipOrderException(1, "浠婃棩娆℃暟宸茬粡鐢ㄥ畬"); + } + // 鎻掑叆璁㈠崟淇℃伅 鍞竴鎬у鐞員ODO VipOrder newOrder = new VipOrder(); newOrder.setUid(uid); - newOrder.setType(OrderTypeEnum.watchVideo.name()); + newOrder.setType(OrderTypeEnum.watchVideo); newOrder.setCreateTime(new Date()); vipOrderMapper.insertSelective(newOrder); // 鏇存柊绛夌骇 - vipCenterService.saveVipCenter(uid, gradeId, validDays,newOrder.getId() ); + vipCenterService.saveVipCenter(uid, gradeId, hour, newOrder.getId()); + } + + @Override + public boolean canAddOrderByWatchVideo(String uid) { + long now = System.currentTimeMillis(); + VipOrderQuery vipOrderQuery = new VipOrderQuery(); + vipOrderQuery.uid = uid; + vipOrderQuery.type = OrderTypeEnum.watchVideo; + vipOrderQuery.minCreateTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now, "yyyy-MM-dd"), "yyyy-MM-dd")); + vipOrderQuery.maxCreateTime = DateUtil.plusDayDate(1, vipOrderQuery.minCreateTime); + long count = vipOrderMapper.count(vipOrderQuery); + //TODO 鍐欏叆閰嶇疆淇℃伅 + return count < 5; } } -- Gitblit v1.8.0