Browse Source

feat: 编辑和获取返利实体

master
Yen 3 months ago
parent
commit
0c4c362645
  1. 8
      cms-common/src/main/java/com/qs/serve/common/exception/Assert.java
  2. 8
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/consts/TzcArgTypes.java
  3. 5
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateGoodsParam.java
  4. 2
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsParam.java
  5. 12
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java
  6. 22
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/vo/TzcRebatePeriodVo.java
  7. 18
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/vo/TzcRebateSubjectVo.java
  8. 23
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/vo/TzcRebateVo.java
  9. 14
      cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java
  10. 90
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java
  11. 6
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplicationService.java
  12. 258
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java

8
cms-common/src/main/java/com/qs/serve/common/exception/Assert.java

@ -25,4 +25,12 @@ public class Assert {
throw new BusinessException(msg,500);
}
public static void isNull(Object obj,String msg){
if(obj == null){
throw new BusinessException(msg,500);
}
}
}

8
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/consts/TzcArgTypes.java

@ -7,8 +7,10 @@ package com.qs.serve.modules.tzc.consts;
public enum TzcArgTypes {
// 期间补偿 扩展
PeriodExtend,
// 坎级 扩展
LevelExtend
PeriodSupplement,
// 坎级返利 扩展
LevelReturn,
// 坎级总目标返利 扩展
LevelOverallReturn
}

5
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateGoodsParam.java

@ -16,11 +16,6 @@ import java.time.LocalDateTime;
@Data
public class TzcRebateGoodsParam {
/**
* 产品类型brandcategoryseriesspusku
*/
private String goodsType;
/**
* 产品id
*/

2
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsParam.java

@ -46,7 +46,7 @@ public class TzcRebateLevelsParam implements Serializable {
private TzcRebateArgumentParam targetArgument;
/** 总目标返利-参数 */
private TzcRebateArgumentParam allTargetArgument;
private TzcRebateArgumentParam overallTargetArgument;
/** 返利说明和计算例子 */
@Length(max = 600,message = "返利说明和计算例子长度不能超过600字")

12
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java

@ -1,6 +1,8 @@
package com.qs.serve.modules.tzc.entity.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qs.serve.modules.tzc.entity.TzcRebate;
import com.qs.serve.modules.tzc.entity.TzcRebateLevels;
import com.qs.serve.modules.tzc.entity.TzcRebateSubject;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
@ -69,6 +71,11 @@ public class TzcRebateParam{
/** 备注 */
private String remark;
/**
* 产品类型brandcategoryseriesspusku
*/
private String goodsType;
/**
* 商品列表
*/
@ -89,4 +96,9 @@ public class TzcRebateParam{
*/
private List<TzcRebateLevelsConfigParam> configList;
/**
* 坎级配置列
*/
private List<TzcRebateLevelsParam> levelsList;
}

22
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/vo/TzcRebatePeriodVo.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.tzc.entity.vo;
import com.qs.serve.modules.tzc.entity.TzcRebateLevels;
import com.qs.serve.modules.tzc.entity.TzcRebateLevelsArgument;
import com.qs.serve.modules.tzc.entity.TzcRebatePeriod;
import com.qs.serve.modules.tzc.entity.bo.TzcRebateArgumentParam;
import lombok.Data;
/**
* @author YenHex
* @since 2025/4/24
*/
@Data
public class TzcRebatePeriodVo extends TzcRebatePeriod {
/**
* 补偿方案
*/
private TzcRebateLevelsArgument argument;
}

18
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/vo/TzcRebateSubjectVo.java

@ -0,0 +1,18 @@
package com.qs.serve.modules.tzc.entity.vo;
import com.qs.serve.modules.tzc.entity.TzcRebateCenter;
import com.qs.serve.modules.tzc.entity.TzcRebateSubject;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2025/4/24
*/
@Data
public class TzcRebateSubjectVo extends TzcRebateSubject {
List<TzcRebateCenter> centerList;
}

23
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/vo/TzcRebateVo.java

@ -0,0 +1,23 @@
package com.qs.serve.modules.tzc.entity.vo;
import com.qs.serve.modules.tzc.entity.*;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2025/4/23
*/
@Data
public class TzcRebateVo extends TzcRebate {
private List<TzcRebateGoods> goodsList;
private List<TzcRebateSubjectVo> subjectList;
private List<TzcRebatePeriodVo> periodList;
private List<TzcRebateLevelsConfig> configList;
}

14
cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java

@ -26,6 +26,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -93,7 +94,7 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
rebate.setRemark(param.getRemark());
// 返利的商品
List<TzcRebateGoods> tzcRebateGoodsList = this.buildRebateGoodsList(param.getGoodsList());
List<TzcRebateGoods> tzcRebateGoodsList = this.buildRebateGoodsList(param.getGoodsType(),param.getGoodsList());
// 返利的商品,关联主表id和code
for (TzcRebateGoods rebateGoods : tzcRebateGoodsList) {
rebateGoods.setRebateId(rebate.getId());
@ -127,10 +128,15 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
}
@NotNull
private List<TzcRebateGoods> buildRebateGoodsList(List<TzcRebateGoodsParam> goodsList) {
private List<TzcRebateGoods> buildRebateGoodsList(String goodsTypeAll, List<TzcRebateGoodsParam> goodsList) {
List<TzcRebateGoods> tzcRebateGoodsList = new ArrayList<>();
Map<String,List<TzcRebateGoodsParam>> goodsListMap = goodsList.stream()
.collect(Collectors.groupingBy(TzcRebateGoodsParam::getGoodsType));
// 方式一:支持多种
// Map<String,List<TzcRebateGoodsParam>> goodsListMap = goodsList.stream()
// .collect(Collectors.groupingBy(TzcRebateGoodsParam::getGoodsType));
// 方式二:只支持一种,兼容旧活动接口参数
Map<String,List<TzcRebateGoodsParam>> goodsListMap = new HashMap<>();
goodsListMap.put(goodsTypeAll,goodsList);
for (Map.Entry<String, List<TzcRebateGoodsParam>> entry : goodsListMap.entrySet()) {
String goodsType = entry.getKey();
List<TzcRebateGoodsParam> goodsParamList = entry.getValue();

90
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java

@ -0,0 +1,90 @@
package com.qs.serve.modules.tzc.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.annotation.SysLog;
import com.qs.serve.common.enums.BizType;
import com.qs.serve.common.enums.SystemModule;
import com.qs.serve.common.utils.CopierUtil;
import com.qs.serve.common.utils.PageUtil;
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.service.TzcRebateApplicationService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tzc.entity.TzcRebate;
import com.qs.serve.modules.tzc.service.TzcRebateService;
import javax.validation.Valid;
import java.util.List;
/**
* 政策 返利信息
* @author YenHex
* @since 2025-04-23
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("tzc/rebate")
public class TzcRebateController {
private TzcRebateService tzcRebateService;
private TzcRebateApplicationService tzcRebateApplicationService;
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<TzcRebate>> getPage(TzcRebate param){
LambdaQueryWrapper<TzcRebate> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
List<TzcRebate> list = tzcRebateService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
public R<TzcRebate> getById(@PathVariable("id") String id){
TzcRebate tzcRebate = tzcRebateService.getById(id);
return R.ok(tzcRebate);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/modifyRebate")
@SysLog(module = SystemModule.Policy, title = "返利信息", biz = BizType.UPDATE)
public R<?> modifyRebate(@RequestBody @Valid TzcRebateParam param){
TzcRebate tzcRebate = tzcRebateApplicationService.modifyRebate(param);
return R.ok(tzcRebate);
}
/**
* 删除
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
@SysLog(module = SystemModule.Policy, title = "返利信息", biz = BizType.DELETE)
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = tzcRebateService.removeByIds(idsLong);
return R.isTrue(result);
}
}

6
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplicationService.java

@ -1,6 +1,8 @@
package com.qs.serve.modules.tzc.service;
import com.qs.serve.modules.tzc.entity.TzcRebate;
import com.qs.serve.modules.tzc.entity.bo.TzcRebateParam;
import com.qs.serve.modules.tzc.entity.vo.TzcRebateVo;
/**
* 返利信息 服务接口
@ -9,12 +11,14 @@ import com.qs.serve.modules.tzc.entity.bo.TzcRebateParam;
*/
public interface TzcRebateApplicationService {
TzcRebateVo getRebateVoById(Long id);
/**
* 编辑返利实体类
* @param param
* @return
*/
Object modifyRebate(TzcRebateParam param);
TzcRebate modifyRebate(TzcRebateParam param);
/**
* 提交返利到OA

258
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java

@ -1,6 +1,7 @@
package com.qs.serve.modules.tzc.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qs.serve.common.exception.Assert;
import com.qs.serve.common.utils.CopierUtil;
import com.qs.serve.framework.base.model.ResultFlag;
@ -17,6 +18,9 @@ import com.qs.serve.modules.tbs.service.TbsCenterDtoService;
import com.qs.serve.modules.tzc.consts.TzcArgTypes;
import com.qs.serve.modules.tzc.entity.*;
import com.qs.serve.modules.tzc.entity.bo.*;
import com.qs.serve.modules.tzc.entity.vo.TzcRebatePeriodVo;
import com.qs.serve.modules.tzc.entity.vo.TzcRebateSubjectVo;
import com.qs.serve.modules.tzc.entity.vo.TzcRebateVo;
import com.qs.serve.modules.tzc.enums.TzcRebateStatus;
import com.qs.serve.modules.tzc.service.*;
import lombok.AllArgsConstructor;
@ -47,6 +51,7 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
private final TzcRebateLevelsArgumentService tzcRebateLevelsArgumentService;
private final TzcRebateGoodsService tzcRebateGoodsService;
private final TzcRebateLevelsConfigService tzcRebateLevelsConfigService;
private final TzcRebateLevelsService tzcRebateLevelsService;
private final BmsCostCenterMapper bmsCostCenterMapper;
private final BmsSupplierMapper bmsSupplierMapper;
@ -54,14 +59,74 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
private final GoodsApplicationService goodsApplicationService;
private final TbsCenterDtoService tbsCenterDtoService;
@Override
public TzcRebateVo getRebateVoById(Long id) {
TzcRebate tzcRebate = tzcRebateService.getById(id);
Assert.isNull(tzcRebate, "返利不存在");
TzcRebateVo tzcRebateVo = CopierUtil.copy(tzcRebate,new TzcRebateVo());
QueryWrapper qw = new QueryWrapper<>();
qw.eq("rebate_id", id);
List<TzcRebateLevelsArgument> argumentList = tzcRebateLevelsArgumentService.list(qw);
List<TzcRebateSubject> subjectList = tzcRebateSubjectService.list(qw);
List<TzcRebatePeriod> periodList = tzcRebatePeriodService.list(qw);
List<TzcRebateGoods> goodsList = tzcRebateGoodsService.list(qw);
List<TzcRebateLevelsConfig> configList = tzcRebateLevelsConfigService.list(qw);
List<TzcRebateCenter> centerList = tzcRebateCenterService.list(qw);
List<TzcRebateSubjectVo> subjectVoList = buildSubjectVoList(subjectList, centerList);
tzcRebateVo.setSubjectList(subjectVoList);
List<TzcRebatePeriodVo> periodVoList = buildPeriodVoList(argumentList, periodList);
tzcRebateVo.setPeriodList(periodVoList);
tzcRebateVo.setGoodsList(goodsList);
tzcRebateVo.setConfigList(configList);
return tzcRebateVo;
}
@NotNull
private List<TzcRebateSubjectVo> buildSubjectVoList(List<TzcRebateSubject> subjectList, List<TzcRebateCenter> centerList) {
List<TzcRebateSubjectVo> subjectVoList = new ArrayList<>();
for (TzcRebateSubject subject : subjectList) {
List<TzcRebateCenter> currentCenterList = new ArrayList<>();
for (TzcRebateCenter center : centerList) {
if (center.getRebateSubjectId().equals(subject.getId())){
currentCenterList.add(center);
}
}
TzcRebateSubjectVo subjectVo = CopierUtil.copy(subject,new TzcRebateSubjectVo());
subjectVo.setCenterList(currentCenterList);
subjectVoList.add(subjectVo);
}
return subjectVoList;
}
@NotNull
private List<TzcRebatePeriodVo> buildPeriodVoList(List<TzcRebateLevelsArgument> argumentList, List<TzcRebatePeriod> periodList) {
List<TzcRebatePeriodVo> periodVoList = new ArrayList<>();
for (TzcRebatePeriod period : periodList) {
TzcRebatePeriodVo periodVo = CopierUtil.copy(period,new TzcRebatePeriodVo());
for (TzcRebateLevelsArgument argument : argumentList) {
if(argument.getPeriodId().equals(period.getId())&&
argument.getBusinessType().equals(TzcArgTypes.PeriodSupplement.name())){
periodVo.setArgument(argument);
}
}
periodVoList.add(periodVo);
}
return periodVoList;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Object modifyRebate(TzcRebateParam param) {
public TzcRebate modifyRebate(TzcRebateParam param) {
boolean isUpdate = false;
Long rebateId = param.getId();
String rebateCode = null;
String rebateCode;
if(rebateId!=null){
isUpdate = true;
TzcRebate rebate = tzcRebateService.getById(rebateId);
if(TzcRebateStatus.DRAFT.isEqual(rebate.getRebateStatus())){
Assert.throwEx("返利状态为初始化,不能修改");
@ -74,11 +139,89 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
// 校验返利参数
this.validRebateParam(param);
if (isUpdate){
//删除旧数据
this.removeOldRebateDataById(rebateId);
}
BmsSupplier supplier = bmsSupplierMapper.selectById(param.getSupplierId());
if(supplier==null){
Assert.throwEx("客户不存在");
}
// 返利主表信息
TzcRebate rebate = buildRebateInfo(param, rebateId, rebateCode, supplier);
tzcRebateService.saveOrUpdate(rebate);
// 重新赋值获取最新id
rebateId = rebate.getId();
// 返利的商品
List<TzcRebateGoods> tzcRebateGoodsList = this.buildRebateGoodsList(param.getGoodsList());
// 返利的商品,关联主表id和code
for (TzcRebateGoods rebateGoods : tzcRebateGoodsList) {
rebateGoods.setRebateId(rebate.getId());
rebateGoods.setRebateCode(rebate.getRebateCode());
}
tzcRebateGoodsService.saveBatch(tzcRebateGoodsList);
// 返利的成本中心(引用类型赋值)
List<TzcRebateCenter> rebateCenterList = new ArrayList<>();
// 返利的科目
List<TzcRebateSubject> tzcRebateSubjectList = this.buildRebateSubjectList(rebateId,param.getSubjectList(),rebateCenterList);
// 期间及补偿参数保存
this.savePeriodList(param.getPeriodList(), rebateId);
// 保存坎级和设置参数
this.saveLevelListAndArgs(param, rebateId);
// 保存坎级叠加配置
for (TzcRebateLevelsConfigParam configParam : param.getConfigList()) {
TzcRebateLevelsConfig config = new TzcRebateLevelsConfig();
config.setRebateId(rebateId);
config.setLevelNum(config.getLevelNum());
config.setLevelConfigs(config.getLevelConfigs());
tzcRebateLevelsConfigService.save(config);
}
return rebate;
}
/**
* 保存坎级和设置参数
* @param param
* @param rebateId
*/
private void saveLevelListAndArgs(TzcRebateParam param, Long rebateId) {
for (TzcRebateLevelsParam levelsParam : param.getLevelsList()) {
TzcRebateLevels levels = new TzcRebateLevels();
levels.setRebateId(rebateId);
levels.setLevelNum(levelsParam.getLevelNum());
levels.setConditionType(levelsParam.getConditionType());
levels.setConditionSelect(levelsParam.getConditionSelect());
levels.setConditionRate(levelsParam.getConditionRate());
levels.setConditionAmount(levelsParam.getConditionAmount());
levels.setExampleRemark(levelsParam.getExampleRemark());
levels.setRemark(levelsParam.getRemark());
tzcRebateLevelsService.save(levels);
Long levelId = levels.getId();
TzcRebateLevelsArgument argument = buildArgByParam(levelsParam.getOverallTargetArgument());
argument.setBusinessType(TzcArgTypes.LevelOverallReturn.name());
argument.setLevelId(levelId);
argument.setPeriodId(0L);
tzcRebateLevelsArgumentService.save(argument);
TzcRebateLevelsArgument argument2 = buildArgByParam(levelsParam.getTargetArgument());
argument2.setBusinessType(TzcArgTypes.LevelReturn.name());
argument2.setLevelId(levelId);
argument2.setPeriodId(0L);
tzcRebateLevelsArgumentService.save(argument2);
}
}
@NotNull
private TzcRebate buildRebateInfo(TzcRebateParam param, Long rebateId, String rebateCode, BmsSupplier supplier) {
TzcRebate rebate = new TzcRebate();
rebate.setId(rebateId);
rebate.setRebateCode(rebateCode);
@ -100,26 +243,16 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
rebate.setRebateAmount(param.getRebateAmount());
rebate.setOverlayFlag(param.getOverlayFlag());
rebate.setRemark(param.getRemark());
tzcRebateService.saveOrUpdate(rebate);
// 重新赋值获取最新id
rebateId = rebate.getId();
// 返利的商品
List<TzcRebateGoods> tzcRebateGoodsList = this.buildRebateGoodsList(param.getGoodsList());
// 返利的商品,关联主表id和code
for (TzcRebateGoods rebateGoods : tzcRebateGoodsList) {
rebateGoods.setRebateId(rebate.getId());
rebateGoods.setRebateCode(rebate.getRebateCode());
}
tzcRebateGoodsService.saveBatch(tzcRebateGoodsList);
// 返利的成本中心(引用类型赋值)
List<TzcRebateCenter> rebateCenterList = new ArrayList<>();
// 返利的科目
List<TzcRebateSubject> tzcRebateSubjectList = this.buildRebateSubjectList(rebateId,param.getSubjectList(),rebateCenterList);
return rebate;
}
// 期间及补偿参数保存
for (TzcRebatePeriodParam periodParam : param.getPeriodList()) {
/**
* 期间及补偿参数保存
* @param periodParamList
* @param rebateId
*/
private void savePeriodList(List<TzcRebatePeriodParam> periodParamList, Long rebateId) {
for (TzcRebatePeriodParam periodParam : periodParamList) {
TzcRebatePeriod period = new TzcRebatePeriod();
period.setRebateId(rebateId);
period.setPeriodTitle(periodParam.getPeriodTitle());
@ -132,31 +265,38 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
tzcRebatePeriodService.save(period);
Long periodId = period.getId();
TzcRebateArgumentParam argumentParam = periodParam.getArgumentParam();
TzcRebateLevelsArgument argument = new TzcRebateLevelsArgument();
argument.setBusinessType(TzcArgTypes.PeriodExtend.name());
// 保存返利参数
TzcRebateLevelsArgument argument = buildArgByParam(periodParam.getArgumentParam());
argument.setBusinessType(TzcArgTypes.PeriodSupplement.name());
argument.setLevelId(0L);
argument.setPeriodId(periodId);
argument.setSumAddFlag(argumentParam.getSumAddFlag());
argument.setRateAmtFlag(argumentParam.getRateAmtFlag());
argument.setSumReturnRate(argumentParam.getSumReturnRate());
argument.setSumReturnFixed(argumentParam.getSumReturnFixed());
argument.setSumMaxReturn(argumentParam.getSumMaxReturn());
argument.setAddReturnRate(argumentParam.getAddReturnRate());
argument.setAddReturnFixed(argumentParam.getAddReturnFixed());
argument.setAddMaxReturn(argumentParam.getAddMaxReturn());
tzcRebateLevelsArgumentService.save(argument);
}
}
for (TzcRebateLevelsConfigParam configParam : param.getConfigList()) {
TzcRebateLevelsConfig config = new TzcRebateLevelsConfig();
config.setRebateId(rebateId);
config.setLevelNum(config.getLevelNum());
config.setLevelConfigs(config.getLevelConfigs());
tzcRebateLevelsConfigService.save(config);
}
@NotNull
private TzcRebateLevelsArgument buildArgByParam(TzcRebateArgumentParam argumentParam) {
TzcRebateLevelsArgument argument = new TzcRebateLevelsArgument();
argument.setSumAddFlag(argumentParam.getSumAddFlag());
argument.setRateAmtFlag(argumentParam.getRateAmtFlag());
argument.setSumReturnRate(argumentParam.getSumReturnRate());
argument.setSumReturnFixed(argumentParam.getSumReturnFixed());
argument.setSumMaxReturn(argumentParam.getSumMaxReturn());
argument.setAddReturnRate(argumentParam.getAddReturnRate());
argument.setAddReturnFixed(argumentParam.getAddReturnFixed());
argument.setAddMaxReturn(argumentParam.getAddMaxReturn());
return argument;
}
return null;
private void removeOldRebateDataById(Long rebateId) {
QueryWrapper qw = new QueryWrapper<>();
qw.eq("rebate_id", rebateId);
tzcRebateSubjectService.remove(qw);
tzcRebateCenterService.remove(qw);
tzcRebatePeriodService.remove(qw);
tzcRebateLevelsArgumentService.remove(qw);
tzcRebateGoodsService.remove(qw);
tzcRebateLevelsConfigService.remove(qw);
}
@NotNull
@ -205,25 +345,25 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
@NotNull
private List<TzcRebateGoods> buildRebateGoodsList(List<TzcRebateGoodsParam> goodsList) {
List<TzcRebateGoods> tzcRebateGoodsList = new ArrayList<>();
Map<String,List<TzcRebateGoodsParam>> goodsListMap = goodsList.stream()
.collect(Collectors.groupingBy(TzcRebateGoodsParam::getGoodsType));
for (Map.Entry<String, List<TzcRebateGoodsParam>> entry : goodsListMap.entrySet()) {
String goodsType = entry.getKey();
List<TzcRebateGoodsParam> goodsParamList = entry.getValue();
List<GoodsTargetInfo> goodsTargetList = goodsApplicationService.getGoodsTargetInfo(goodsType,goodsParamList.stream()
.map(TzcRebateGoodsParam::getGoodsId).collect(Collectors.toList()));
for (GoodsTargetInfo targetInfo : goodsTargetList) {
TzcRebateGoods rebateGoods = CopierUtil.copy(targetInfo,new TzcRebateGoods());
for (TzcRebateGoodsParam goodsParam : goodsParamList) {
if(goodsParam.getGoodsId().equals(targetInfo.getTargetId())){
rebateGoods.setTmpUk(goodsParam.getTmpUk());
rebateGoods.setRemark(goodsParam.getRemark());
break;
}
}
tzcRebateGoodsList.add(rebateGoods);
}
}
// Map<String,List<TzcRebateGoodsParam>> goodsListMap = goodsList.stream()
// .collect(Collectors.groupingBy(TzcRebateGoodsParam::getGoodsType));
// for (Map.Entry<String, List<TzcRebateGoodsParam>> entry : goodsListMap.entrySet()) {
// String goodsType = entry.getKey();
// List<TzcRebateGoodsParam> goodsParamList = entry.getValue();
// List<GoodsTargetInfo> goodsTargetList = goodsApplicationService.getGoodsTargetInfo(goodsType,goodsParamList.stream()
// .map(TzcRebateGoodsParam::getGoodsId).collect(Collectors.toList()));
// for (GoodsTargetInfo targetInfo : goodsTargetList) {
// TzcRebateGoods rebateGoods = CopierUtil.copy(targetInfo,new TzcRebateGoods());
// for (TzcRebateGoodsParam goodsParam : goodsParamList) {
// if(goodsParam.getGoodsId().equals(targetInfo.getTargetId())){
// rebateGoods.setTmpUk(goodsParam.getTmpUk());
// rebateGoods.setRemark(goodsParam.getRemark());
// break;
// }
// }
// tzcRebateGoodsList.add(rebateGoods);
// }
// }
return tzcRebateGoodsList;
}

Loading…
Cancel
Save