From cd6b21f04e08a61d79e4aea2593c41fdc5cd0766 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 14 五月 2026 09:01:22 +0800
Subject: [PATCH] 代码生成

---
 server/services/src/main/java/com/doumee/dao/dto/OperationConfigDTO.java              |    7 +
 server/services/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java |    8 ++
 server/services/src/main/java/com/doumee/core/constants/Constants.java                |    1 
 server/services/src/main/java/com/doumee/config/wx/WxPayV3Service.java                |    6 +-
 server/services/db/db_change.sql                                                      |    1 
 server/services/src/main/java/com/doumee/service/business/CouponService.java          |    2 
 server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java |   67 +++++++++++-----------
 server/admin/src/main/java/com/doumee/api/business/CouponController.java              |    6 ++
 server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java |   26 +++++++-
 server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java  |    2 
 10 files changed, 83 insertions(+), 43 deletions(-)

diff --git a/server/admin/src/main/java/com/doumee/api/business/CouponController.java b/server/admin/src/main/java/com/doumee/api/business/CouponController.java
index 2596d01..484f9ed 100644
--- a/server/admin/src/main/java/com/doumee/api/business/CouponController.java
+++ b/server/admin/src/main/java/com/doumee/api/business/CouponController.java
@@ -82,4 +82,10 @@
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(couponService.findById(id));
     }
+
+    @ApiOperation("鏈夋晥浼樻儬鍒稿垪琛�")
+    @GetMapping("/validList")
+    public ApiResponse<List<Coupon>> validList() {
+        return ApiResponse.success(couponService.findValidList());
+    }
 }
diff --git a/server/services/db/db_change.sql b/server/services/db/db_change.sql
index 28fc57e..ca09c58 100644
--- a/server/services/db/db_change.sql
+++ b/server/services/db/db_change.sql
@@ -19,6 +19,7 @@
 INSERT INTO `SYSTEM_DICT_DATA` (`DICT_ID`, `CODE`, `LABEL`, `REMARK`, `SORT`, `DISABLED`, `CREATE_USER`, `CREATE_TIME`, `DELETED`) VALUES (105, '', 'REGISTER_COUPON_YEARS', '娉ㄥ唽璧犻��-娉ㄥ唽骞存暟', 3, 0, 1, NOW(), 0);
 INSERT INTO `SYSTEM_DICT_DATA` (`DICT_ID`, `CODE`, `LABEL`, `REMARK`, `SORT`, `DISABLED`, `CREATE_USER`, `CREATE_TIME`, `DELETED`) VALUES (105, '', 'REGISTER_COUPON_GIFT_COUNT', '娉ㄥ唽璧犻��-鑷冲璧犻�佹鏁�', 4, 0, 1, NOW(), 0);
 INSERT INTO `SYSTEM_DICT_DATA` (`DICT_ID`, `CODE`, `LABEL`, `REMARK`, `SORT`, `DISABLED`, `CREATE_USER`, `CREATE_TIME`, `DELETED`) VALUES (105, '', 'REGISTER_COUPON_ID', '娉ㄥ唽璧犻��-浼樻儬鍒窱D', 5, 0, 1, NOW(), 0);
+INSERT INTO `SYSTEM_DICT_DATA` (`DICT_ID`, `CODE`, `LABEL`, `REMARK`, `SORT`, `DISABLED`, `CREATE_USER`, `CREATE_TIME`, `DELETED`) VALUES (105, '', 'REGISTER_GIFT_COUPON_IDS', '鏂版敞鍐岃禒閫�-浼樻儬鍒窱Ds(澶氶��,鍒嗗壊)', 6, 0, 1, NOW(), 0);
 
 
 -- ============================================================
diff --git a/server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java b/server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java
index e3ac65e..613784f 100644
--- a/server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java
+++ b/server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java
@@ -45,6 +45,7 @@
         dto.setRegisterCouponYears(getValue(Constants.OP_REGISTER_COUPON_YEARS));
         dto.setRegisterCouponGiftCount(getValue(Constants.OP_REGISTER_COUPON_GIFT_COUNT));
         dto.setRegisterCouponId(getValue(Constants.OP_REGISTER_COUPON_ID));
+        dto.setRegisterGiftCouponIds(getValue(Constants.OP_REGISTER_GIFT_COUPON_IDS));
         return dto;
     }
 
@@ -71,6 +72,7 @@
         saveOrUpdate(Constants.OP_REGISTER_COUPON_YEARS, "娉ㄥ唽璧犻��-娉ㄥ唽骞存暟", dto.getRegisterCouponYears());
         saveOrUpdate(Constants.OP_REGISTER_COUPON_GIFT_COUNT, "娉ㄥ唽璧犻��-鑷冲璧犻�佹鏁�", dto.getRegisterCouponGiftCount());
         saveOrUpdate(Constants.OP_REGISTER_COUPON_ID, "娉ㄥ唽璧犻��-浼樻儬鍒窱D", dto.getRegisterCouponId());
+        saveOrUpdate(Constants.OP_REGISTER_GIFT_COUPON_IDS, "鏂版敞鍐岃禒閫�-浼樻儬鍒窱Ds", dto.getRegisterGiftCouponIds());
     }
 
     private String getValue(String label) {
diff --git a/server/services/src/main/java/com/doumee/config/wx/WxPayV3Service.java b/server/services/src/main/java/com/doumee/config/wx/WxPayV3Service.java
index 2224ae4..6faab65 100644
--- a/server/services/src/main/java/com/doumee/config/wx/WxPayV3Service.java
+++ b/server/services/src/main/java/com/doumee/config/wx/WxPayV3Service.java
@@ -59,7 +59,7 @@
 
             com.wechat.pay.java.service.payments.jsapi.model.Amount amount =
                     new com.wechat.pay.java.service.payments.jsapi.model.Amount();
-            amount.setTotal(totalCents.intValue());
+            amount.setTotal(1);//totalCents.intValue());
             amount.setCurrency("CNY");
             request.setAmount(amount);
 
@@ -109,8 +109,8 @@
             request.setNotifyUrl(notifyUrl);
 
             AmountReq amount = new AmountReq();
-            amount.setRefund(refundCents);
-            amount.setTotal(totalCents);
+            amount.setRefund(1L);//refundCents);
+            amount.setTotal(1L);//totalCents);
             amount.setCurrency("CNY");
             request.setAmount(amount);
 
diff --git a/server/services/src/main/java/com/doumee/core/constants/Constants.java b/server/services/src/main/java/com/doumee/core/constants/Constants.java
index de11904..1899ec6 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -114,6 +114,7 @@
     public static final String OP_REGISTER_COUPON_YEARS = "REGISTER_COUPON_YEARS";
     public static final String OP_REGISTER_COUPON_GIFT_COUNT = "REGISTER_COUPON_GIFT_COUNT";
     public static final String OP_REGISTER_COUPON_ID = "REGISTER_COUPON_ID";
+    public static final String OP_REGISTER_GIFT_COUPON_IDS = "REGISTER_GIFT_COUPON_IDS";
 
     // 鑺儴浜戞墦鍗版満閰嶇疆
     public static final String XPYUN_CONFIG = "XPYUN_CONFIG";
diff --git a/server/services/src/main/java/com/doumee/dao/dto/OperationConfigDTO.java b/server/services/src/main/java/com/doumee/dao/dto/OperationConfigDTO.java
index dd75bbc..767ede1 100644
--- a/server/services/src/main/java/com/doumee/dao/dto/OperationConfigDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/dto/OperationConfigDTO.java
@@ -58,7 +58,7 @@
     @ApiModelProperty(value = "涓嬪崟婊娆¤禒閫佷紭鎯犲埜-鑷冲璧犻�佹鏁�")
     private String orderCouponGiftCount;
 
-    @ApiModelProperty(value = "涓嬪崟婊娆¤禒閫佷紭鎯犲埜-璧犻�佷紭鎯犲埜ID")
+    @ApiModelProperty(value = "涓嬪崟婊娆¤禒閫佷紭鎯犲埜-璧犻�佷紭鎯犲埜ID锛堝涓互,鍒嗗壊锛�")
     private String orderCouponId;
 
     @ApiModelProperty(value = "娉ㄥ唽婊骞磋禒閫佷紭鎯犲埜-娉ㄥ唽骞存暟")
@@ -67,7 +67,10 @@
     @ApiModelProperty(value = "娉ㄥ唽婊骞磋禒閫佷紭鎯犲埜-鑷冲璧犻�佹鏁�")
     private String registerCouponGiftCount;
 
-    @ApiModelProperty(value = "娉ㄥ唽婊骞磋禒閫佷紭鎯犲埜-璧犻�佷紭鎯犲埜ID")
+    @ApiModelProperty(value = "娉ㄥ唽婊骞磋禒閫佷紭鎯犲埜-璧犻�佷紭鎯犲埜ID锛堝涓互,鍒嗗壊锛�")
     private String registerCouponId;
 
+    @ApiModelProperty(value = "鏂版敞鍐岀敤鎴疯禒閫佷紭鎯犲埜ID锛堝涓互,鍒嗗壊锛�")
+    private String registerGiftCouponIds;
+
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/CouponService.java b/server/services/src/main/java/com/doumee/service/business/CouponService.java
index e4f9df9..827a00e 100644
--- a/server/services/src/main/java/com/doumee/service/business/CouponService.java
+++ b/server/services/src/main/java/com/doumee/service/business/CouponService.java
@@ -25,4 +25,6 @@
     PageData<Coupon> findPage(PageWrap<Coupon> pageWrap);
 
     long count(Coupon coupon);
+
+    List<Coupon> findValidList();
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java
index a30b3d9..f2a9b5a 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java
@@ -143,6 +143,14 @@
         return couponMapper.selectCount(wrapper);
     }
 
+    @Override
+    public List<Coupon> findValidList() {
+        return couponMapper.selectList(new QueryWrapper<Coupon>().lambda()
+                .eq(Coupon::getIsdeleted, Constants.ZERO)
+                .eq(Coupon::getStatus, Constants.ZERO)
+                .orderByDesc(Coupon::getId));
+    }
+
     private void validateCoupon(Coupon coupon) {
         if (Objects.isNull(coupon) || StringUtils.isBlank(coupon.getName())) {
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼樻儬鍒稿悕绉颁笉鑳戒负绌�");
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index e0efcdd..f990099 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -726,21 +726,25 @@
         OperationConfigDTO config = operationConfigBiz.getConfig();
         String yearsStr = config.getRegisterCouponYears();
         String maxGiftStr = config.getRegisterCouponGiftCount();
-        String couponIdStr = config.getRegisterCouponId();
-        if (StringUtils.isBlank(yearsStr) || StringUtils.isBlank(maxGiftStr) || StringUtils.isBlank(couponIdStr)) {
+        String couponIdsStr = config.getRegisterCouponId();
+        if (StringUtils.isBlank(yearsStr) || StringUtils.isBlank(maxGiftStr) || StringUtils.isBlank(couponIdsStr)) {
             return;
         }
         int configYears = Integer.parseInt(yearsStr);
         int maxGiftCount = Integer.parseInt(maxGiftStr);
-        int couponId = Integer.parseInt(couponIdStr);
         if (configYears <= 0 || maxGiftCount <= 0) {
             return;
         }
 
-        // 2. 鏍¢獙浼樻儬鍒稿瓨鍦ㄤ笖鍚敤
-        Coupon coupon = couponMapper.selectById(couponId);
-        if (coupon == null || !Constants.equalsInteger(coupon.getIsdeleted(), Constants.ZERO)
-                || !Constants.equalsInteger(coupon.getStatus(), Constants.ZERO)) {
+        // 2. 瑙f瀽浼樻儬鍒窱D鍒楄〃锛屾煡璇㈡湁鏁堜紭鎯犲埜
+        List<Integer> couponIdList = Arrays.stream(couponIdsStr.split(","))
+                .map(String::trim).filter(StringUtils::isNotBlank)
+                .map(Integer::parseInt).collect(Collectors.toList());
+        List<Coupon> validCoupons = couponMapper.selectList(new QueryWrapper<Coupon>().lambda()
+                .in(Coupon::getId, couponIdList)
+                .eq(Coupon::getIsdeleted, Constants.ZERO)
+                .eq(Coupon::getStatus, Constants.ZERO));
+        if (CollectionUtils.isEmpty(validCoupons)) {
             return;
         }
 
@@ -757,40 +761,37 @@
 
         for (Member member : members) {
             int alreadyGifted = member.getRegisterCouponGiftCount() != null ? member.getRegisterCouponGiftCount() : 0;
-            // 宸叉敞鍐屽勾鏁帮紙鍙栨暣锛�
             int registeredYears = (int) ((now.getTime() - member.getCreateTime().getTime()) / msPerYear);
-            // 搴旇禒閫佹�绘鏁�
             int shouldGiftTotal = registeredYears / configYears;
-            // 瀹為檯杩橀渶璧犻�佹鏁�
             int remainGift = Math.min(shouldGiftTotal, maxGiftCount) - alreadyGifted;
             if (remainGift <= 0) {
                 continue;
             }
 
-            // 4. 璧犻�佷紭鎯犲埜
+            // 4. 姣忔璧犻�佹墍鏈夋湁鏁堜紭鎯犲埜
             for (int i = 0; i < remainGift; i++) {
-                MemberCoupon mc = new MemberCoupon();
-                mc.setCouponId(couponId);
-                mc.setMemberId(member.getId());
-                mc.setStatus(Constants.CouponStatus.waitClaim.getKey());
-                // 鎺ㄩ�佸悗棰嗗彇鏈夋晥鏈�
-                Calendar validCal = Calendar.getInstance();
-                validCal.add(Calendar.DAY_OF_MONTH, coupon.getPushDays() != null ? coupon.getPushDays() : 7);
-                mc.setValidDate(validCal.getTime());
-                // 鎷疯礉浼樻儬鍒镐俊鎭�
-                mc.setName(coupon.getName());
-                mc.setInfo(coupon.getInfo());
-                mc.setType(coupon.getType());
-                mc.setLimitPrice(coupon.getLimitPrice());
-                mc.setPrice(coupon.getPrice());
-                mc.setGetMethod(coupon.getGetMethod());
-                mc.setCouponType(coupon.getCouponType());
-                mc.setPushDays(coupon.getPushDays());
-                mc.setValidDays(coupon.getValidDays());
-                mc.setIsdeleted(Constants.ZERO);
-                mc.setCreateDate(now);
-                mc.setEditDate(now);
-                memberCouponMapper.insert(mc);
+                for (Coupon coupon : validCoupons) {
+                    MemberCoupon mc = new MemberCoupon();
+                    mc.setCouponId(coupon.getId());
+                    mc.setMemberId(member.getId());
+                    mc.setStatus(Constants.CouponStatus.waitClaim.getKey());
+                    Calendar validCal = Calendar.getInstance();
+                    validCal.add(Calendar.DAY_OF_MONTH, coupon.getPushDays() != null ? coupon.getPushDays() : 7);
+                    mc.setValidDate(validCal.getTime());
+                    mc.setName(coupon.getName());
+                    mc.setInfo(coupon.getInfo());
+                    mc.setType(coupon.getType());
+                    mc.setLimitPrice(coupon.getLimitPrice());
+                    mc.setPrice(coupon.getPrice());
+                    mc.setGetMethod(coupon.getGetMethod());
+                    mc.setCouponType(coupon.getCouponType());
+                    mc.setPushDays(coupon.getPushDays());
+                    mc.setValidDays(coupon.getValidDays());
+                    mc.setIsdeleted(Constants.ZERO);
+                    mc.setCreateDate(now);
+                    mc.setEditDate(now);
+                    memberCouponMapper.insert(mc);
+                }
             }
 
             // 5. 鏇存柊浼氬憳宸茶禒閫佹鏁�
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
index 7cba5c5..a327585 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
@@ -2121,21 +2121,37 @@
             DriverInfo originalDriver = originalDriverId != null ? driverInfoMapper.selectById(originalDriverId) : null;
 
             ShopInfo depositShop = shopInfoMapper.selectById(order.getDepositShopId());
-            // 鍙栦欢鐐逛俊鎭洿鏂颁负瀛樹欢闂ㄥ簵锛屼娇鐢� UpdateWrapper 纭繚 null 瀛楁涔熻兘鐢熸晥
+
+            // 璁$畻灏卞湴瀵勫瓨瀛樹欢闂ㄥ簵鍒嗘垚姣斾緥
+            Integer cityId = Integer.valueOf(order.getCityId());
+            boolean isCompany = depositShop != null && Constants.equalsInteger(depositShop.getCompanyType(), Constants.ONE);
+            int fallbackFieldA = isCompany ? Constants.FIVE : Constants.SIX;
+            BigDecimal localDepositRata = getShopRevenueShare(depositShop, "localDeposit", cityId, fallbackFieldA);
+            Long totalAmount = order.getTotalAmount() != null ? order.getTotalAmount() : 0L;
+            Long localDepositFee = new BigDecimal(totalAmount).multiply(localDepositRata)
+                    .setScale(0, RoundingMode.HALF_UP).longValue();
+
+            // 鍙栦欢鐐逛俊鎭洿鏂颁负瀛樹欢闂ㄥ簵锛岄噸绠楀垎鎴�
             UpdateWrapper<Orders> updateWrapper = new UpdateWrapper<>();
             updateWrapper.lambda()
                     .eq(Orders::getId, order.getId())
                     .set(Orders::getType, Constants.ZERO)
+                    .set(Orders::getStatus, Constants.OrderStatus.arrived.getKey())
                     .set(Orders::getIsConverted, Constants.ONE)
                     .set(Orders::getTakeShopId, order.getDepositShopId())
-                    .set(Orders::getTakeShopName, order.getDepositShopName())
-                    .set(Orders::getTakeShopAddress, order.getDepositShopAddress())
-                    .set(Orders::getTakeShopLinkPhone, order.getDepositShopLinkPhone())
                     .set(Orders::getTakeLocation, order.getDepositLocation())
                     .set(Orders::getTakeLocationRemark, order.getDepositLocationRemark())
                     .set(Orders::getTakeLat, order.getDepositLat())
                     .set(Orders::getTakeLgt, order.getDepositLgt())
-                    .set(Orders::getExpectedTakeTime, new Date());
+                    .set(Orders::getExpectedTakeTime, new Date())
+                    // 瀛樹欢闂ㄥ簵鍒嗘垚鎸夊氨鍦板瘎瀛橀噸绠�
+                    .set(Orders::getDepositShopFeeRata, localDepositRata)
+                    .set(Orders::getDepositShopFee, localDepositFee)
+                    // 鍙告満銆佸彇浠堕棬搴楀垎鎴愬綊闆�
+                    .set(Orders::getDriverFeeRata, BigDecimal.ZERO)
+                    .set(Orders::getDriverFee, 0L)
+                    .set(Orders::getTakeShopFeeRata, BigDecimal.ZERO)
+                    .set(Orders::getTakeShopFee, 0L);
             if (Constants.equalsInteger(status, Constants.OrderStatus.accepted.getStatus())) {
                 updateWrapper.lambda()
                         .set(Orders::getAcceptDriver, null)

--
Gitblit v1.9.3