Administrator
5 days ago 267c06a5864bb617b1ff0ea82210346bf5573f5f
src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
@@ -52,6 +52,12 @@
public class XcxPayServiceImpl implements IXcxPayService {
    @Autowired
    private HappyActivityOrderMapper happyActivityOrderMapper;
    @Autowired
    private HappyActivityMapper happyActivityMapper;
    @Autowired
    private MallOrderInfoMapper mallOrderInfoMapper;
    @Autowired
    private MallMemberMapper mallMemberMapper;
@@ -206,6 +212,27 @@
    }
    @Override
    public BrandWCPayRequestData startPaymentActivity(HappyActivityOrder dto) throws Exception {
        BigDecimal unit = new BigDecimal("100");
        BigDecimal money = new BigDecimal(dto.getAmount().toString());
        BrandWCPayRequestData payData;
        HappyActivity happyActivity = happyActivityMapper.selectById(dto.getActivityId());
        String productNames = getActivityNames(happyActivity.getId(),dto.getNumCnt());
        MallMember mallMember = mallMemberMapper.selectById(dto.getMemberId());
        Boolean debug = xcxProperties.getDebug();
        if (debug) {
            payData = weixinServiceUtil.createActivityOrder("[测试]" + productNames, dto.getOrderNo(),
                    1, mallMember.getOpenId(), String.valueOf(dto.getId()));
        } else {
            payData = weixinServiceUtil.createActivityOrder(productNames, dto.getOrderNo(),
                    unit.multiply(money).intValue(),mallMember.getOpenId(), String.valueOf(dto.getId()));
        }
        dto.setWxOrderNo(payData.getPrepay_id());
        happyActivityOrderMapper.updateById(dto);
        return payData;
    }
    @Override
    public void pushOrderToAddress(OrderStateDto info) {
        RestTemplate restTemplate = new RestTemplate();
        String url =  WechatConfigure.SEND_INFO_URL  + redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY);
@@ -320,8 +347,8 @@
        }
        if (type == 3) {
            String openId = wxGenerateQrCodeDto.getTypeParam();
            MallMember member = mallMemberMapper.selectMemberByOpenId(openId);
            String inviteId = wxGenerateQrCodeDto.getTypeParam();
            MallMember member = mallMemberMapper.selectInfoByInviteId(inviteId);
            if(ObjectUtil.isNotNull(member)){
                String wxCodeImg = member.getInviteImg();
                if(StrUtil.isNotBlank(wxCodeImg)){
@@ -347,8 +374,8 @@
        }
        if (type == 3) {
            String openId = wxGenerateQrCodeDto.getTypeParam();
            MallMember member = mallMemberMapper.selectMemberByOpenId(openId);
            String inviteId = wxGenerateQrCodeDto.getTypeParam();
            MallMember member = mallMemberMapper.selectInfoByInviteId(inviteId);
            if(ObjectUtil.isNotNull(member)){
                member.setInviteImg(codeImgPath);
                mallMemberMapper.updateById(member);
@@ -414,7 +441,7 @@
    //图片上传路径
    public  static  final String IMG_UPLOAD_PATH="/mnt/sdc/webresource/blnka/wxcode";
    public  String generateAcode(String scene,String path,String imgName,String width, Integer type){
        String urlPrefix="https://hwfile.csxuncong.com/blnka/wxcode";
        String urlPrefix="https://file.blnka.cn/blnka/wxcode";
        String imgPath=IMG_UPLOAD_PATH+imgName;
        if(!FileUtil.exist(imgPath)){
@@ -509,4 +536,21 @@
        }
        return productNames;
    }
    /**
     * 根据用户ID和订单ID获取所购买商品名称
     * @return 所含商品名称(多个以","隔开)
     */
    public String getActivityNames(Long activityId,Integer numCnt) {
        HappyActivity happyActivity = happyActivityMapper.selectById(activityId);
        StringBuffer productNameBuffer = new StringBuffer();
        Integer maxLength = 25;
        String goodsName = happyActivity.getName();
        if (goodsName.length() > maxLength) {
            productNameBuffer.append(goodsName.substring(0, maxLength) + "*"+numCnt);
        }else{
            productNameBuffer.append(goodsName+"*"+numCnt);
        }
        return productNameBuffer.toString();
    }
}