diff --git a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/dto/TzcRebateCalculateDTO.java b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/dto/TzcRebateCalculateDTO.java index 02498a3..74a2b21 100644 --- a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/dto/TzcRebateCalculateDTO.java +++ b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/dto/TzcRebateCalculateDTO.java @@ -3,6 +3,7 @@ package com.qs.serve.modules.tzc.entity.dto; import com.qs.serve.modules.tzc.entity.TzcRebateLevels; import lombok.Data; +import java.math.BigDecimal; import java.util.List; /** @@ -13,6 +14,11 @@ import java.util.List; @Data public class TzcRebateCalculateDTO { + /** + * 活动ID + */ + private Long activityId; + /** * 当前条件,命中的最大级坎级 */ @@ -29,4 +35,9 @@ public class TzcRebateCalculateDTO { */ private List levelAmountList; + /** + * 返利总金额 + */ + private BigDecimal totalReturnAmt; + } diff --git a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/qo/TzcGetActivityRebateQuery.java b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/qo/TzcGetActivityRebateQuery.java new file mode 100644 index 0000000..bd9fbe9 --- /dev/null +++ b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/qo/TzcGetActivityRebateQuery.java @@ -0,0 +1,18 @@ +package com.qs.serve.modules.tzc.entity.qo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author YenHex + * @since 2025/5/7 + */ +@Data +public class TzcGetActivityRebateQuery { + + private Long activityId; + + private BigDecimal dispatchAmount; + +} diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java index a38a558..cfe318d 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java @@ -11,8 +11,11 @@ import com.qs.serve.common.utils.StringUtils; import com.qs.serve.framework.base.model.PageVo; import com.qs.serve.framework.base.model.R; import com.qs.serve.modules.tzc.entity.bo.TzcRebateParam; +import com.qs.serve.modules.tzc.entity.dto.TzcRebateCalculateDTO; +import com.qs.serve.modules.tzc.entity.qo.TzcGetActivityRebateQuery; import com.qs.serve.modules.tzc.entity.qo.TzcRebateQuery; import com.qs.serve.modules.tzc.entity.vo.TzcRebateVo; +import com.qs.serve.modules.tzc.service.TzcRebateApplication4VerificationService; import com.qs.serve.modules.tzc.service.TzcRebateApplicationService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -23,6 +26,7 @@ import com.qs.serve.modules.tzc.entity.TzcRebate; import com.qs.serve.modules.tzc.service.TzcRebateService; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; /** @@ -38,7 +42,20 @@ public class TzcRebateController { private TzcRebateService tzcRebateService; private TzcRebateApplicationService tzcRebateApplicationService; + private TzcRebateApplication4VerificationService tzcRebateApplication4VerificationService; + @PostMapping("/getRebateInfo") + public R> getRebateByActivityId(@RequestBody List queryList){ + if (queryList == null){ + List result = new ArrayList<>(); + for (TzcGetActivityRebateQuery query : queryList) { + TzcRebateCalculateDTO dto = tzcRebateApplication4VerificationService.getActivityRebateAmount(query.getActivityId(),query.getDispatchAmount()); + result.add(dto); + } + return R.ok(result); + } + return R.ok(); + } /** * 翻页 diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4VerificationServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4VerificationServiceImpl.java index 06eda7e..0623a1d 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4VerificationServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4VerificationServiceImpl.java @@ -57,8 +57,10 @@ public class TzcRebateApplication4VerificationServiceImpl implements TzcRebateAp TzcRebateCalculateDTO calculateDTO = tzcRebateApplication4CostService.getHitRebateMaxLevel( dispatchAmt, sameDispatchAmt, activity.getRebatePeriodId()); if (calculateDTO != null){ + calculateDTO.setActivityId(activityId); List levelAmountList = tzcRebateApplication4CostService.calculateRebate( calculateDTO,dispatchAmt, sameDispatchAmt, TzcArgTypes.LevelReturn); + BigDecimal totalReturnAmt = BigDecimal.ZERO; // 计算已用的优惠 for (TzcRebateLevelAmountDTO amountDTO : levelAmountList) { // 返利金额 @@ -72,8 +74,10 @@ public class TzcRebateApplication4VerificationServiceImpl implements TzcRebateAp if (returnAmt.compareTo(surplusReturnAmt) > 0){ amountDTO.setReturnAmt(surplusReturnAmt); } + totalReturnAmt.add(amountDTO.getReturnAmt()); amountDTO.setVerificationAmt(verificationAmt); } + calculateDTO.setTotalReturnAmt(totalReturnAmt); calculateDTO.setLevelAmountList(levelAmountList); } return calculateDTO;