fix
Hentua
2023-08-24 4d244bd07fa34ad8f30382fe1747af00fab8dd4e
src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
@@ -78,9 +78,13 @@
        BrandWCPayRequestData payData;
        String productNames = "小程序充值";
        MallMember mallMember = mallMemberMapper.selectById(apiRechargeWalletDto.getMemberId());
        String rechargeNo = "CZ_"+MallUtils.getOrderNum();
        String rechargeNo = apiRechargeWalletDto.getRechargeNo();
        Long agentApplyId = apiRechargeWalletDto.getAgentApplyId() == null ? 0L : apiRechargeWalletDto.getAgentApplyId();
        Boolean debug = xcxProperties.getDebug();
        String attrStr = "{'rechargeNo':"+rechargeNo+",'memberId':"+mallMember.getId()+"}";
        String attrStr = "{'rechargeNo':"+rechargeNo
                +",'memberId':"+mallMember.getId()
                +",'agentApplyId':"+agentApplyId
                +",'type':"+apiRechargeWalletDto.getType()+"}";
        if (debug) {
            payData = weixinServiceUtil.createRechargeWallet("[测试]" + productNames, rechargeNo,
                    1, mallMember.getOpenId(), attrStr);
@@ -88,13 +92,6 @@
            payData = weixinServiceUtil.createRechargeWallet(productNames, rechargeNo,
                    unit.multiply(money).intValue(),mallMember.getOpenId(), attrStr);
        }
        mallMoneyFlowService.addMoneyFlow(
                mallMember.getId(),
                money,
                MoneyFlowTypeEnum.RECHARGE.getValue(),
                rechargeNo,
                FlowTypeEnum.BALANCE.getValue(),
                "余额充值",1);
        return payData;
    }
@@ -322,6 +319,17 @@
            }
        }
        if (type == 3) {
            String inviteId = wxGenerateQrCodeDto.getTypeParam();
            MallMember member = mallMemberMapper.selectInfoByInviteId(inviteId);
            if(ObjectUtil.isNotNull(member)){
                String wxCodeImg = member.getInviteImg();
                if(StrUtil.isNotBlank(wxCodeImg)){
                    return new FebsResponse().success().data(wxCodeImg);
                }
            }
        }
        String randomNum = MallUtils.getRandomNum(5);
        String imgName="/user_" + randomNum + "_acode_1.jpg";
        String codeImgPath = generateAcode(wxGenerateQrCodeDto.getScene(), wxGenerateQrCodeDto.getPage(), imgName, "400px", null);
@@ -336,6 +344,15 @@
            MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(uniqueCode);
            mallTeamLeader.setWxCodeImg(codeImgPath);
            mallTeamLeaderMapper.updateById(mallTeamLeader);
        }
        if (type == 3) {
            String inviteId = wxGenerateQrCodeDto.getTypeParam();
            MallMember member = mallMemberMapper.selectInfoByInviteId(inviteId);
            if(ObjectUtil.isNotNull(member)){
                member.setInviteImg(codeImgPath);
                mallMemberMapper.updateById(member);
            }
        }
        return new FebsResponse().success().data(codeImgPath);
    }
@@ -395,9 +412,9 @@
     * @return
     */
    //图片上传路径
    public  static  final String IMG_UPLOAD_PATH="/mnt/sdc/webresource/groupbuy/wxcode";
    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/groupbuy/wxcode";
        String urlPrefix="https://hwfile.csxuncong.com/blnka/wxcode";
        String imgPath=IMG_UPLOAD_PATH+imgName;
        if(!FileUtil.exist(imgPath)){
@@ -406,12 +423,12 @@
            String url = null;
            if (type == null) {
                // 该接口无数量限制,但是 scene 传参最大字符长度为32个字符
                url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={}",redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY).toString());
                url = StrUtil.format("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={}",redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY).toString());
                obj.set("scene", scene);
                obj.set("page", path);
            } else {
                // 该接口存在数量限制, 总共可生成10w个, 但参数是接在path后面
                url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacode?access_token={}", redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY).toString());
                url = StrUtil.format("https://api.weixin.qq.com/wxa/getwxacode?access_token={}", redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY).toString());
                obj.set("page", path + "?" + scene );
            }
@@ -427,6 +444,7 @@
            obj.set("is_hyaline", false);
            try {
                HttpResponse execute = HttpRequest.post(url).body(obj.toString(), "application/json").execute();
                log.error("微信返回值:{}", execute.body());
                InputStream inputStream = execute.bodyStream();
                File file = new File(imgPath);
                FileUtil.writeFromStream(inputStream, file);