xiaoyong931011
2021-04-12 a13a93a493e7e94e28b2225c26e7e13b52d3288c
zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopRefundRecordAction.java
@@ -2,7 +2,6 @@
import com.matrix.component.rabbitmq.RabiitMqTemplate;
import com.matrix.component.redis.RedisUserLoginUtils;
import com.matrix.component.tools.WxTempLateMsgUtil;
import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
import com.matrix.core.anotations.RemoveRequestToken;
import com.matrix.core.anotations.SaveRequestToken;
@@ -12,7 +11,10 @@
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.tools.*;
import com.matrix.core.tools.LogUtil;
import com.matrix.core.tools.ModelUtils;
import com.matrix.core.tools.StringUtils;
import com.matrix.core.tools.WebUtil;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.constance.AppConstance;
import com.matrix.system.hive.action.util.QueryUtil;
@@ -139,9 +141,6 @@
      modifyMap.put("handingTime", new Date());
      int i = shopRefundRecordDao.updateByMap(modifyMap);
      if (i > 0) {
         //同意退款后发送微信提醒填写物流单号
         ShopRefundRecord fundRecord = shopRefundRecordDao.selectById(shopRefundRecord.getId());
         sendRefundLogisticsInfoToUser(fundRecord);
         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "操作成功", "退款记录表");
      } else {
         throw new GlobleException("操作失败");
@@ -188,8 +187,6 @@
         modifyOrder.put("id", record.getOrderId());
         shopOrderDao.updateByMap(modifyOrder);
      }
      //退款拒绝后发送微信提醒
      sendFailedRefundInfoToUser(record);
      if (i > 0) {
         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "操作成功", "退款记录表");
      } else {
@@ -252,7 +249,7 @@
               if(flag){
                  //退款成功后发送微信提醒
                  ShopRefundRecord fundRecord = shopRefundRecordDao.selectById(oldShopRefundRecord.getId());
                  sendRefundInfoToUser(fundRecord);
               }
            }
@@ -276,7 +273,7 @@
            if(flag){
               //退款成功后发送微信提醒
               ShopRefundRecord fundRecord = shopRefundRecordDao.selectById(oldShopRefundRecord.getId());
               sendRefundInfoToUser(fundRecord);
            }
         }
@@ -396,7 +393,7 @@
               if(flag){
                  //退款成功后发送微信提醒
                  ShopRefundRecord fundRecord = shopRefundRecordDao.selectById(Integer.valueOf(id));
                  sendRefundInfoToUser(fundRecord);
                  refundRecordService.updateGroupBuyStatus(Long.parseLong(id));
               }
            }
@@ -422,7 +419,7 @@
            if(flag){
               //退款成功后发送微信提醒
               ShopRefundRecord fundRecord = shopRefundRecordDao.selectById(Integer.valueOf(id));
               sendRefundInfoToUser(fundRecord);
               refundRecordService.updateGroupBuyStatus(Long.parseLong(id));
            }
         }
@@ -494,8 +491,7 @@
            //退款成功后同时把优惠券退回到用户的账号中
            if (shopOrder.getDiscountAmount() != null && shopOrder.getDiscountAmount().compareTo(BigDecimal.ZERO) == 0) {
               ShopCouponRecord shopCouponRecord = new ShopCouponRecord();
               String userIds = shopRefundRecord.getUserId();
               shopCouponRecord.setUserId(userIds);
               shopCouponRecord.setUserId(shopRefundRecord.getUserId());
               shopCouponRecord.setOrderId(shopOrder.getId());
               List<ShopCouponRecord> recordList = shopCouponRecordDao.selectByModel(shopCouponRecord);
               if (CollectionUtils.isNotEmpty(recordList)) {
@@ -529,7 +525,7 @@
            modifyMap.put("refundCharge", shopRefundRecord.getRefundMoney());
            shopOrderDao.updateByMap(modifyMap);
            rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG+evn,shopOrder.getId()+"");
            rabiitMqTemplate.sendMsg(MQTaskRouting.SHOP_ORDER_REFUND+evn,shopRefundRecord.getOrderId()+"");
         }catch (Exception e){
            LogUtil.debug("退款成功,修改退款表和订单表状态出错。。。", id);
@@ -539,73 +535,6 @@
      return flag;
   }
   //退款成功后发送微信提醒
   private int sendRefundInfoToUser(ShopRefundRecord shopRefundRecord) {
      ShopOrder order = shopOrderDao.selectById(shopRefundRecord.getOrderId());
      if (order == null) {
         throw new GlobleException("没有找到需要退款的订单信息");
      }
      List<String> msg = new ArrayList<>();
      //退款说明
      String refundExplain = "退款已经原路返回,具体到账时间可能会有1-3天延迟";
      msg.add(order.getOrderNo());
      msg.add(DateUtil.dateToString(shopRefundRecord.getRefundTime(),DateUtil.DATE_FORMAT_SS));
      msg.add(refundExplain);
      msg.add("商品名称");
      String formId = null;
      if(AppConstance.REFUND_GOODS.equals(shopRefundRecord.getRefundType()) && null != shopRefundRecord.getRefundTransactionNo()){
         formId = shopRefundRecord.getRefundTransactionNo();
      }else {
         formId = order.getWxOrderNo().split("=")[1];
      }
      String page = "pages/refunDetail/refunDetail?id=" + shopRefundRecord.getId() + "&&status=1" + "&&inform=1";
      int res = WxTempLateMsgUtil.sendWxTemplateMsg(msg, order.getUserId(),
            page, WxTempLateMsgUtil.REFUND_SUCCESS, formId);
      return res;
   }
   //退款拒绝后发送微信提醒
   private int sendFailedRefundInfoToUser(ShopRefundRecord shopRefundRecord) {
      ShopOrder order = shopOrderDao.selectById(shopRefundRecord.getOrderId());
      if (order == null) {
         throw new GlobleException("没有找到拒绝退款的订单信息");
      }
      List<String> msg = new ArrayList<>();
      //退款说明
      String remarks = "如有疑问请联系客服";
      msg.add(order.getOrderNo());
      msg.add("商品名称");
      msg.add(shopRefundRecord.getRefundRefuseReason());
      msg.add(shopRefundRecord.getRefundCause());
      String formId = null;
      if(AppConstance.REFUND_GOODS .equals(shopRefundRecord.getRefundType()) && null != shopRefundRecord.getRefundTransactionNo()){
         formId = shopRefundRecord.getRefundTransactionNo();
      }else {
         formId = order.getWxOrderNo().split("=")[1];
      }
      String page = "pages/refunDetail/refunDetail?id=" + shopRefundRecord.getId() + "&&status=2" + "&&inform=1";
      int res = WxTempLateMsgUtil.sendWxTemplateMsg(msg, order.getUserId(),
            page, WxTempLateMsgUtil.REFUND_FAILED, formId);
      return res;
   }
   //同意退款后发送微信提醒填写物流单号
   private int sendRefundLogisticsInfoToUser(ShopRefundRecord shopRefundRecord) {
      ShopOrder order = shopOrderDao.selectById(shopRefundRecord.getOrderId());
      if (order == null) {
         throw new GlobleException("没有找到发送微信提醒的订单信息");
      }
      List<String> msg = new ArrayList<>();
      //退款说明
      String remarks = "申请退款已审核通过,请尽快填写退货物流信息";
      msg.add(order.getOrderNo());
      msg.add("商品名称");
      msg.add("待退回");
      msg.add(remarks);
      String formId = order.getWxOrderNo().split("=")[1];
      String page = "pages/refunding/refunding?id=" + shopRefundRecord.getId() + "&&inform=1";
      int res = WxTempLateMsgUtil.sendWxTemplateMsg(msg, order.getUserId(),
            page, WxTempLateMsgUtil.WRITE_LOGISTICS, formId);
      return res;
   }
}