From f9155fec1956d54d5b8f40cab22571215975ef88 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 02 十一月 2019 15:41:59 +0800 Subject: [PATCH] 板栗商城订单系统修改 消息机制完善 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java | 40 +++++++++++++++++++++------------------- 1 files changed, 21 insertions(+), 19 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..45baec2 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) { @@ -884,10 +884,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() { @@ -1824,7 +1824,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 +2100,6 @@ return userCouponVO; } - @Transactional @Override @@ -2443,45 +2443,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 +2491,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 +2507,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