From 3ce9e928e082ff8abf697dba560cbfbb412e89f8 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期一, 11 十一月 2019 15:45:02 +0800 Subject: [PATCH] 商城后台编辑 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java | 52 +++++++++++++++++++++++++++++----------------------- 1 files changed, 29 insertions(+), 23 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java index 20afbe3..3019d5f 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java @@ -27,9 +27,10 @@ import com.aliyun.openservices.ons.api.transaction.TransactionStatus; import com.google.gson.Gson; import com.yeshi.fanli.dao.mybatis.user.UserSystemCouponMapper; +import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum; +import com.yeshi.fanli.dto.mq.user.body.UserSystemCouponUseMQMsg; import com.yeshi.fanli.dto.msg.MsgOtherCouponActivateDTO; import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO; -import com.yeshi.fanli.dto.user.coupon.UserSystemCouponUseMQMsgDTO; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail.MsgTypeOtherTypeEnum; import com.yeshi.fanli.entity.bus.user.HongBaoV2; @@ -170,10 +171,9 @@ @Resource(name = "orderTransactionProducer") private TransactionProducer orderTransactionProducer; - + @Resource private UserSystemCouponActivateService userSystemCouponActivateService; - @Override public int insertSelective(UserSystemCoupon record) { @@ -287,8 +287,11 @@ userCoupon.setEndTime(endTime); userCoupon.setCreateTime(new Date()); userCoupon.setUpdateTime(new Date()); - // 鎻掑叆鏁版嵁搴� - insertSelective(userCoupon); + userSystemCouponMapper.insertSelective(userCoupon); + + if(coupon.getType() == CouponTypeEnum.freeCoupon) { + userSystemCouponActivateService.addActivateRecord(userCoupon.getId()); + } executor.execute(new Runnable() { @Override @@ -875,7 +878,7 @@ Order order = orderService.findOrderByOrderIdAndType(orderNo, sourceType); if (order == null) - return; + throw new UserSystemCouponException(1, "璇ヨ鍗曚笉瀛樺湪"); /* 濂栭噾璁$畻 浠ュ強鐩稿叧绾㈠寘淇℃伅澶勭悊 */ @@ -884,10 +887,10 @@ // 鎻愭垚閲戦 BigDecimal money = MoneyBigDecimalUtil.mul(hongBao, percent); - UserSystemCouponUseMQMsgDTO mqMsg = new UserSystemCouponUseMQMsgDTO(userSystemCoupon.getId(), - order.getOrderId(), sourceType); + UserSystemCouponUseMQMsg mqMsg = new UserSystemCouponUseMQMsg(userSystemCoupon.getId(), order.getOrderId(), + sourceType, systemCoupon.getType().name()); // 浜嬪姟娑堟伅 - Message msg = new Message(MQTopicName.TOPIC_SYSTEM_COUPON_USE.name(), systemCoupon.getType().name(), + Message msg = new Message(MQTopicName.TOPIC_USER.name(), UserTopicTagEnum.useSystemCoupon.name(), new Gson().toJson(mqMsg).getBytes()); try { SendResult result = orderTransactionProducer.send(msg, new LocalTransactionExecuter() { @@ -903,7 +906,8 @@ }, null); System.out.println(result); } catch (Exception e) { - throw new Exception(); + e.printStackTrace(); + throw e; } } } @@ -1824,7 +1828,8 @@ if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) { int activateCount = userSystemCouponActivateService.getActivateCount(userCouponVO.getId()); String activateNum = configService.get("free_coupon_activate_num"); - userCouponVO.setCouponEffect("(" + activateCount + "/"+ Integer.parseInt(activateNum) +")寰呮縺娲�"); + userCouponVO.setCouponEffect( + "(" + activateCount + "/" + Integer.parseInt(activateNum) + ")寰呮縺娲�"); } } else if (CouponTypeEnum.welfareFreeCoupon == type) { jumpBtn = new HashMap<String, Object>(); @@ -2099,7 +2104,6 @@ return userCouponVO; } - @Transactional @Override @@ -2443,45 +2447,46 @@ return userSystemCouponMapper.getFreeCouponByType(uid, type); } - @RequestSerializableByKeyService(key = "#uid") @Override @Transactional(rollbackFor = Exception.class) public void triggerFreeCouponActivate(Long uid) { - UserSystemCoupon coupon = userSystemCouponMapper.getNeedActivateCouponByType(uid, CouponTypeEnum.freeCoupon.name()); + UserSystemCoupon coupon = userSystemCouponMapper.getNeedActivateCouponByType(uid, + CouponTypeEnum.freeCoupon.name()); if (coupon == null) return; Long id = coupon.getId(); UserSystemCouponActivate couponActivate = userSystemCouponActivateService.selectForUpdate(id); - + // 婵�娲绘暟閲� boolean result = false; int limitNum = Integer.parseInt(configService.get("free_coupon_activate_num")); - + Integer state = couponActivate.getState(); int count = couponActivate.getCount(); count++; - if(count >= limitNum) { + if (count >= limitNum) { result = true; state = UserSystemCouponActivate.STATE_END; } - + UserSystemCouponActivate updateActivate = new UserSystemCouponActivate(); updateActivate.setId(id); updateActivate.setState(state); updateActivate.setCount(count); updateActivate.setUpdateTime(new Date()); userSystemCouponActivateService.updateByPrimaryKeySelective(updateActivate); - + // 婵�娲诲鍔卞埜 if (result) { activateFreeCoupon(coupon, limitNum); } } - + /** * 婵�娲诲埜 + * * @param coupon * @param activateNum */ @@ -2490,7 +2495,7 @@ try { Date nowDate = new Date(); SystemCoupon systemCoupon = coupon.getSystemCoupon(); - + Integer expiryDay = systemCoupon.getExpiryDay(); String endDay = DateUtil.plusDay(expiryDay - 1, nowDate); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -2506,12 +2511,13 @@ userCoupon.setStartTime(nowDate); userCoupon.setUpdateTime(new Date()); userSystemCouponMapper.updateByPrimaryKeySelective(userCoupon); - + // 娑堟伅 executor.execute(new Runnable() { @Override public void run() { - UserSystemCouponGiveRecord giveRecord = userSystemCouponGiveRecordService.getByReceiveId(coupon.getId()); + UserSystemCouponGiveRecord giveRecord = userSystemCouponGiveRecordService + .getByReceiveId(coupon.getId()); if (giveRecord == null) return; -- Gitblit v1.8.0