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 | 47 +++++++++++++++++++++++++++++++++-------------- 1 files changed, 33 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 b3c27e0..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 @@ -23,6 +23,8 @@ import com.yeshi.fanli.dao.mybatis.shop.BanLiShopOrderMapper; import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum; import com.yeshi.fanli.dto.mq.order.body.BanLiShopOrderMQMsg; +import com.yeshi.fanli.dto.msg.MsgRedPackUseContentDTO; +import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail.MsgTypeMoneyTypeEnum; import com.yeshi.fanli.entity.mq.MQUnSendInfo; import com.yeshi.fanli.entity.redpack.RedPackDetail; import com.yeshi.fanli.entity.shop.BanLiShopGoods; @@ -35,8 +37,10 @@ import com.yeshi.fanli.exception.redpack.RedPackBalanceException; import com.yeshi.fanli.exception.redpack.RedPackDetailException; import com.yeshi.fanli.exception.shop.BanLiShopOrderException; +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; @@ -44,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; @@ -84,7 +89,14 @@ @Resource(name = "transactionManager") private DataSourceTransactionManager transactionManager; - @Transactional + @Resource + private UserMoneyMsgNotificationService userMoneyMsgNotificationService; + + @Resource + private RedPackForbidService redPackForbidService; + + + @Transactional(rollbackFor=Exception.class) @Override public void addOrder(BanLiShopOrder order) throws BanLiShopOrderException { // 鏌ヨ蹇呰鐨勫弬鏁版槸鍚︽坊鍔� @@ -164,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); @@ -212,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); @@ -335,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; } @@ -367,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 @@ -395,6 +407,15 @@ update.setUpdateTime(new Date()); update.setRejectTime(new Date()); banLiShopOrderMapper.updateByPrimaryKeySelective(update); + // 娑堟伅鍙戦�� + MsgRedPackUseContentDTO dto = new MsgRedPackUseContentDTO(); + dto.setGoodsSetName(order.getOrderGoods().getSetName()); + dto.setHongBao(order.getHongBaoPayment()); + dto.setMoney(order.getMoneyPayment()); + dto.setReason(msg); + dto.setTime(new Date()); + userMoneyMsgNotificationService.redPackMsg(order.getUid(), MsgTypeMoneyTypeEnum.redPackUseFail, + new Gson().toJson(dto), null); transactionManager.commit(transactionStatus); } catch (Exception e) { transactionManager.rollback(transactionStatus); @@ -419,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