| | |
| | | import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService;
|
| | | import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
|
| | | import com.yeshi.fanli.util.factory.msg.MsgOtherSystemGiveDTOFactory;
|
| | | import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
|
| | | import com.yeshi.fanli.util.rocketmq.MQTopicName;
|
| | | import com.yeshi.fanli.util.taobao.TaoBaoUtil;
|
| | | import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
|
| | |
| | | throw new UserSystemCouponException(1, "订单信息获取失败");
|
| | |
|
| | | // 版本区分:2.0.2
|
| | | if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | | if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | | Date thirdCreateTime = orderVO.getThirdCreateTime();
|
| | | if (thirdCreateTime != null) {
|
| | | long downOrderTime = thirdCreateTime.getTime();
|
| | |
| | | UserSystemCouponUseMQMsg mqMsg = new UserSystemCouponUseMQMsg(userSystemCoupon.getId(), order.getOrderId(),
|
| | | sourceType, systemCoupon.getType().name());
|
| | | // 事务消息
|
| | | Message msg = new Message(MQTopicName.TOPIC_USER.name(), UserTopicTagEnum.useSystemCoupon.name(),
|
| | | new Gson().toJson(mqMsg).getBytes());
|
| | | Message msg =MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.useSystemCoupon,
|
| | | mqMsg);
|
| | | try {
|
| | | SendResult result = orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
|
| | | @Override
|
| | |
| | | UserSystemCouponUseMQMsg msg = new UserSystemCouponUseMQMsg();
|
| | | msg.setUserSystemCouponId(id);
|
| | | msg.setCouponType(type.name());
|
| | | Message message = new Message(MQTopicName.TOPIC_USER.name(), UserTopicTagEnum.systemCouponDrawback.name(),
|
| | | new Gson().toJson(msg).getBytes());
|
| | | Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.systemCouponDrawback,
|
| | | msg);
|
| | | try {
|
| | | producer.send(message);
|
| | | } catch (Exception e) {
|
| | |
| | | @RequestSerializableByKeyService(key = "#uid")
|
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void triggerFreeCouponActivate(Long uid) {
|
| | | public void triggerFreeCouponActivate(Long uid, String orderNo, Integer source) {
|
| | | if (uid == null || source == null || StringUtil.isNullOrEmpty(orderNo)) |
| | | return;
|
| | | |
| | | UserSystemCoupon coupon = userSystemCouponMapper.getNeedActivateCouponByType(uid,
|
| | | CouponTypeEnum.freeCoupon.name());
|
| | | if (coupon == null)
|
| | |
| | |
|
| | | Long id = coupon.getId();
|
| | | UserSystemCouponActivate couponActivate = userSystemCouponActivateService.selectForUpdate(id);
|
| | | if (couponActivate == null)
|
| | | return;
|
| | | |
| | | // 验证同订单是否存在
|
| | | String key = orderNo + "_" + source;
|
| | | String ordernos = couponActivate.getOrdernos();
|
| | | if (!StringUtil.isNullOrEmpty(ordernos)) {
|
| | | String[] array = ordernos.split(",");
|
| | | if (array != null)
|
| | | for (int i= 0; i < array.length; i ++) {
|
| | | if (array[i].equals(key))
|
| | | return;
|
| | | }
|
| | | }
|
| | |
|
| | | // 激活数量
|
| | | boolean result = false;
|
| | |
| | | state = UserSystemCouponActivate.STATE_END;
|
| | | }
|
| | |
|
| | | if (StringUtil.isNullOrEmpty(ordernos)) {
|
| | | ordernos = key;
|
| | | } else {
|
| | | ordernos = ordernos + "," + key;
|
| | | }
|
| | | |
| | | UserSystemCouponActivate updateActivate = new UserSystemCouponActivate();
|
| | | updateActivate.setId(id);
|
| | | updateActivate.setState(state);
|
| | | updateActivate.setCount(count);
|
| | | updateActivate.setOrdernos(ordernos);
|
| | | updateActivate.setUpdateTime(new Date());
|
| | | userSystemCouponActivateService.updateByPrimaryKeySelective(updateActivate);
|
| | |
|