From c4a0a66f61e1ccfefb0793fba5a9b62ccb7818ae Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 22 Apr 2025 16:10:29 +0800 Subject: [PATCH] feat(mall): 重构活动模块接口和数据结构 --- src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 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 0751acb..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; @@ -202,6 +208,27 @@ } mallOrderInfo.setWxOrderNo(payData.getPrepay_id()); mallOrderInfoMapper.updateById(mallOrderInfo); + return payData; + } + + @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; } @@ -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(); + } } -- Gitblit v1.9.1