yujian
2019-12-12 8c04d27e5cebb7e654c208533e9567c4df2c8acc
fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderPayServiceImpl.java
@@ -16,6 +16,8 @@
import com.google.gson.Gson;
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.redpack.RedPackDetail;
import com.yeshi.fanli.entity.shop.BanLiShopGoods;
import com.yeshi.fanli.entity.shop.BanLiShopGoodsClass;
@@ -26,6 +28,7 @@
import com.yeshi.fanli.exception.redpack.RedPackDetailException;
import com.yeshi.fanli.exception.shop.BanLiShopOrderException;
import com.yeshi.fanli.exception.shop.FuLuChargeException;
import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
import com.yeshi.fanli.service.inter.redpack.RedPackDetailService;
import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsClassService;
@@ -37,6 +40,7 @@
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.charge.FuLuChargeApiUtil;
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.wx.BanLiShopWXPayUtil;
@@ -59,6 +63,9 @@
   @Resource
   private RedPackDetailService redPackDetailService;
   @Resource
   private UserMoneyMsgNotificationService userMoneyMsgNotificationService;
   @Resource(name = "producer")
   private Producer producer;
@@ -155,18 +162,6 @@
    * 支付成功
    */
   private void paySuccess(BanLiShopOrder order) {
      // 将红包明细外显
      RedPackDetail detail = null;
      try {
         detail = RedPackDetailFactory.createUseByShopOrder(order.getId(), order.getUid(), "", "",
               order.getHongBaoPayment());
      } catch (RedPackDetailException e) {
         e.printStackTrace();
      }
      if (detail != null) {
         redPackDetailService.changeDisplayByIdentifyCode(detail.getIdentifyCode(), true);
      }
   }
   @Transactional
@@ -216,8 +211,8 @@
               order.setMoneyPaymentState(BanLiShopOrder.PAY_STATE_REFUNDING);
               // 发送退款消息
               BanLiShopOrderMQMsg msg = new BanLiShopOrderMQMsg(order.getId(), order.getUid());
               Message message = new Message(MQTopicName.TOPIC_ORDER.name(),
                     OrderTopicTagEnum.banLiShopOrderRefund.name(), new Gson().toJson(msg).getBytes());
               Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER,
                     OrderTopicTagEnum.banLiShopOrderRefund, msg);
               message.setStartDeliverTime(System.currentTimeMillis() + 1000 * 60 * 5L);// 延时24小时通知检测微信退款状态
               SendResult result = producer.send(message);
               if (result == null) {
@@ -229,10 +224,9 @@
            throw new BanLiShopOrderException(6, "微信支付退款失败");
         }
      }
      // 检查 是否退款成功
      if (update.getMoneyPaymentState() != null
            && update.getMoneyPaymentState() == BanLiShopOrder.PAY_STATE_REFUNDING) {
      if (order.getMoneyPaymentState() != null
            && order.getMoneyPaymentState() == BanLiShopOrder.PAY_STATE_REFUNDING) {
         try {
            boolean isS = BanLiShopWXPayUtil.isRefundSuccess(order.getOrderNo());
            if (isS) {
@@ -331,6 +325,30 @@
      update.setSuccessTime(new Date());
      banLiShopOrderService.udpateSelectiveByPrimaryKey(update);
      if (order.getHongBaoPayment() != null && order.getHongBaoPayment().compareTo(new BigDecimal(0)) > 0) {
         // 将红包明细外显
         RedPackDetail detail = null;
         try {
            detail = RedPackDetailFactory.createUseByShopOrder(order.getId(), order.getUid(), "", "",
                  order.getHongBaoPayment());
         } catch (RedPackDetailException e) {
            e.printStackTrace();
         }
         if (detail != null) {
            redPackDetailService.changeDisplayByIdentifyCode(detail.getIdentifyCode(), true);
         }
      }
      // 消息发送
      MsgRedPackUseContentDTO dto = new MsgRedPackUseContentDTO();
      dto.setGoodsSetName(order.getOrderGoods().getSetName());
      dto.setHongBao(order.getHongBaoPayment());
      dto.setMoney(order.getMoneyPayment());
      dto.setTime(new Date());
      userMoneyMsgNotificationService.redPackMsg(order.getUid(), MsgTypeMoneyTypeEnum.redPackUseSuccess,
            new Gson().toJson(dto), null);
      try {
         if (Constant.IS_TEST) {
            FuLuChargeApiUtil.shaXiangCharge(set.getChargeFuLuNum(), "banlishop" + order.getOrderNo(),