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