From e16ac98e0d1049d18c508799d64f11d942c74920 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Sun, 27 Apr 2025 14:32:57 +0800 Subject: [PATCH] refactor(votesActivity): 修改自主报名字段名称 --- src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java | 67 +++++++++++++++++++++++++++++++++ 1 files changed, 66 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java index 3dfbfe7..56ddd88 100644 --- a/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java +++ b/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); @@ -319,6 +346,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); @@ -333,6 +371,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); } @@ -394,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)){ @@ -424,6 +471,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); @@ -488,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(); + } } -- Gitblit v1.9.1