Browse Source

feat: 获取活动对应的发货金额,并分割到科目维度

master
Yen 2 months ago
parent
commit
8d5fdc5657
  1. 11
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/dto/TzcRebateCalculateDTO.java
  2. 18
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/qo/TzcGetActivityRebateQuery.java
  3. 17
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java
  4. 4
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4VerificationServiceImpl.java

11
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<TzcRebateLevelAmountDTO> levelAmountList;
/**
* 返利总金额
*/
private BigDecimal totalReturnAmt;
}

18
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;
}

17
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<List<TzcRebateCalculateDTO>> getRebateByActivityId(@RequestBody List<TzcGetActivityRebateQuery> queryList){
if (queryList == null){
List<TzcRebateCalculateDTO> 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();
}
/**
* 翻页

4
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<TzcRebateLevelAmountDTO> 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;

Loading…
Cancel
Save