xiaoyong931011
2022-08-10 36e556587fc44cd9f613b10873d15a5f9cdf2fc6
src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
@@ -1,6 +1,7 @@
package cc.mrbird.febs.pay.service.impl;
import cc.mrbird.febs.common.properties.XcxProperties;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.common.utils.SpringContextHolder;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallOrderInfo;
@@ -8,17 +9,25 @@
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
import cc.mrbird.febs.pay.model.OrderStateDto;
import cc.mrbird.febs.pay.model.OrderStateMsgVo;
import cc.mrbird.febs.pay.model.WxTemplateData;
import cc.mrbird.febs.pay.service.IXcxPayService;
import cc.mrbird.febs.pay.util.WechatConfigure;
import cc.mrbird.febs.pay.util.WeixinServiceUtil;
import cn.hutool.log.Log;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
@@ -30,6 +39,8 @@
    MallMemberMapper mallMemberMapper;
    @Autowired
    WeixinServiceUtil weixinServiceUtil;
    @Autowired
    RedisUtils redisUtils;
    private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class);
@@ -53,6 +64,27 @@
        return payData;
    }
    @Override
    public String pushOrderToAddress(OrderStateDto info) {
        RestTemplate restTemplate = new RestTemplate();
        String url =  WechatConfigure.SEND_INFO_URL  + redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY);
        //拼接推送的模版
        OrderStateMsgVo orderStateMsgVo = new OrderStateMsgVo();
        orderStateMsgVo.setToUser(info.getOpenId());//用户的openId
        orderStateMsgVo.setTemplateId(info.getTemplateId());//订阅消息模板id
//        wxMssVo.setPage("pages/appointment/line_up?"+"shopId="+info.getShopId());
        Map<String, WxTemplateData> m = new HashMap<>(5);
        m.put("character_string1", new WxTemplateData(info.getOrderNo()));
        m.put("thing9", new WxTemplateData(info.getGoodsName()));
        m.put("phrase2", new WxTemplateData(info.getOrderState()));
        m.put("thing13", new WxTemplateData(info.getAddressArea()));
        m.put("thing16", new WxTemplateData(info.getTakeCode()));
        orderStateMsgVo.setData(m);
        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, orderStateMsgVo, String.class);
        return responseEntity.getBody();
    }
    /**
     * 根据用户ID和订单ID获取所购买商品名称
     * @return 所含商品名称(多个以","隔开)