935090232@qq.com
2022-02-22 bbe0a2fd03063316e50cf141986bda984599bbda
zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopRefundRecordServiceImpl.java
@@ -1,24 +1,25 @@
package com.matrix.system.shopXcx.api.service.impl;
import com.matrix.component.rabbitmq.RabiitMqTemplate;
import com.matrix.component.tools.WxTempLateMsgUtil;
import com.matrix.component.asyncmessage.AsyncMessageManager;
import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.tools.DateUtil;
import com.matrix.core.tools.DingDingRobotUtil;
import com.matrix.core.tools.LogUtil;
import com.matrix.core.tools.StringUtils;
import com.matrix.system.common.bean.BusParameterSettings;
import com.matrix.system.common.constance.AppConstance;
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.shopXcx.api.service.WXShopOrderService;
import com.matrix.system.shopXcx.api.service.WxShopRefundRecordService;
import com.matrix.system.shopXcx.bean.*;
import com.matrix.system.shopXcx.dao.*;
import com.matrix.system.shopXcx.mqTask.MQTaskRouting;
import com.matrix.system.shopXcx.mqTask.AsyncMessageRouting;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -48,13 +49,15 @@
    @Autowired
    private ShopActivitiesGroupJoinDao shopActivitiesGroupJoinDao;
    @Value("${wx_pay_debug_onoff}")
    private boolean isDebug;
    @Value("${evn}")
    private  String evn;
    @Autowired
    private BusParameterSettingsDao busParameterSettingsDao;
    @Autowired
    private RabiitMqTemplate rabiitMqTemplate;
    private AsyncMessageManager asyncMessageManager;
    @Value("${wx_pay_debug_onoff}")
    private boolean isDebug;
    @Override
@@ -109,7 +112,7 @@
                //退款成功后同时把优惠券退回到用户的账号中
                if (shopOrder.getDiscountAmount() != null && shopOrder.getDiscountAmount().compareTo(BigDecimal.ZERO) >0) {
                    ShopCouponRecord shopCouponRecord = new ShopCouponRecord();
                    String userIds = shopRefundRecord.getUserId();
                    Long userIds = shopRefundRecord.getUserId();
                    shopCouponRecord.setUserId(userIds);
                    shopCouponRecord.setOrderId(shopOrder.getId());
                    List<ShopCouponRecord> recordList = shopCouponRecordDao.selectByModel(shopCouponRecord);
@@ -143,7 +146,18 @@
                modifyMap.put("refundCharge", shopRefundRecord.getRefundMoney());
                shopOrderDao.updateByMap(modifyMap);
                rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG+evn,shopOrder.getId()+"");
                asyncMessageManager.sendMsg(AsyncMessageRouting.SHOP_ORDER_REFUND ,"orderId=%s" , shopRefundRecord.getOrderId());
                //发送退款通知
                BusParameterSettings wxOrderNoticeDingdingToken = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WX_ORDER_NOTICE_DINGDING_TOKEN, shopOrder.getCompanyId());
                if (wxOrderNoticeDingdingToken != null && StringUtils.isNotBlank(wxOrderNoticeDingdingToken.getParamValue())) {
                    DingDingRobotUtil.sendText(wxOrderNoticeDingdingToken.getParamValue(),
                            "订单退款,微商城订单编号 "+shopOrder.getOrderNo()
                                    +"; 订单金额:¥"+shopOrder.getOrderMoney()
                                    +";收货电话:"+ shopOrder.getUserTel()+",收货人:"+ shopOrder.getUserName()
                            ,"");
                }
            }catch (Exception e){
@@ -154,34 +168,7 @@
        return flag;
    }
    /**
     * 退款成功后发送微信提醒
     * @param shopRefundRecord
     * @return
     */
    @Override
    public 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);
        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;
    }
    @Override
    public void updateGroupBuyStatus(Long orderId) {