From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 18 一月 2020 12:06:27 +0800 Subject: [PATCH] 用户注册信息 --- fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderServiceImpl.java | 32 ++++++++++++++++++-------------- 1 files changed, 18 insertions(+), 14 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderServiceImpl.java index bdfdad8..162e62b 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderServiceImpl.java @@ -40,6 +40,7 @@ import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService; import com.yeshi.fanli.service.inter.mq.MQUnSendInfoService; import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService; +import com.yeshi.fanli.service.inter.redpack.RedPackForbidService; import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsClassService; import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsService; import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsSetPayService; @@ -47,6 +48,7 @@ import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.factory.RedPackDetailFactory; +import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; import com.yeshi.fanli.util.rocketmq.MQTopicName; import com.yeshi.fanli.util.shop.BanLiShopOrderUtil; import com.yeshi.fanli.util.wx.BanLiShopWXPayUtil; @@ -89,8 +91,12 @@ @Resource private UserMoneyMsgNotificationService userMoneyMsgNotificationService; + + @Resource + private RedPackForbidService redPackForbidService; + - @Transactional + @Transactional(rollbackFor=Exception.class) @Override public void addOrder(BanLiShopOrder order) throws BanLiShopOrderException { // 鏌ヨ蹇呰鐨勫弬鏁版槸鍚︽坊鍔� @@ -170,8 +176,8 @@ private void sendPlaceOrderMsg(Long orderId, Long uid) { - Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.banLiShopOrderDelay.name(), - new Gson().toJson(new BanLiShopOrderMQMsg(orderId, uid)).getBytes()); + Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.banLiShopOrderDelay, + new BanLiShopOrderMQMsg(orderId, uid)); msg.setKey(orderId + ""); long delayTime = System.currentTimeMillis() + (Constant.IS_TEST ? 1000 * 30L : 1000 * 60 * 10);// 10鍒嗛挓鍚庨�氱煡 msg.setStartDeliverTime(delayTime); @@ -218,7 +224,7 @@ banLiShopOrderMapper.updateByPrimaryKeySelective(order); } - @Transactional + @Transactional(rollbackFor=Exception.class) @Override public void payOrderByHongBao(Long orderId) throws BanLiShopOrderException, RedPackBalanceException { BanLiShopOrder order = banLiShopOrderMapper.selectByPrimaryKeyForUpdate(orderId); @@ -341,8 +347,8 @@ if (isS)// 鏀粯鎴愬姛锛岄噸鏂板彂閫佹敮浠樻垚鍔熸秷鎭� { BanLiShopOrderMQMsg msg = new BanLiShopOrderMQMsg(order.getId(), order.getUid()); - Message message = new Message(MQTopicName.TOPIC_ORDER.name(), - OrderTopicTagEnum.banLiShopOrderPaid.name(), new Gson().toJson(msg).getBytes()); + Message message =MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, + OrderTopicTagEnum.banLiShopOrderPaid,msg); producer.send(message); return; } @@ -373,8 +379,8 @@ if (order.getState() != BanLiShopOrder.STATE_PAID) throw new BanLiShopOrderException(1, "璁㈠崟鏈浜庡緟瀹℃牳鐘舵��"); - Message message = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.banLiShopOrderRefund.name(), - new Gson().toJson(new BanLiShopOrderMQMsg(order.getId(), order.getUid())).getBytes()); + Message message =MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.banLiShopOrderRefund, + new BanLiShopOrderMQMsg(order.getId(), order.getUid())); try { orderTransactionProducer.send(message, new LocalTransactionExecuter() { @Override @@ -434,13 +440,11 @@ throw new BanLiShopOrderException(22, "鍟嗗搧宸蹭笅绾�"); } + if(redPackForbidService.verifyForbid(uid)) + throw new BanLiShopOrderException(25, "绾㈠寘鍔熻兘宸茶灏佺"); + if (pay.getHongBaoPrice() != null && pay.getHongBaoPrice().compareTo(new BigDecimal(0)) > 0) { - BigDecimal money = null; - try { - money = redPackBalanceService.getBalance(uid); - } catch (RedPackBalanceException e) { - throw new BanLiShopOrderException(25, "绾㈠寘鍔熻兘寮傚父"); - } + BigDecimal money = redPackBalanceService.getBalance(uid); if (money.compareTo(pay.getHongBaoPrice()) < 0) { throw new BanLiShopOrderException(24, "绾㈠寘浣欓涓嶈冻"); } -- Gitblit v1.8.0