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