diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/List4ApplyResultDTO.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/List4ApplyResultDTO.java new file mode 100644 index 0000000000..49fdc3844b --- /dev/null +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/List4ApplyResultDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @program: epmet-cloud + * @description: + * @author: wangtong + * @create: 2022-06-17 10:50 + **/ +@Data +public class List4ApplyResultDTO implements Serializable { + + private String id; + + private String name; + + private String pid; + + private Integer pointValue; + + private List children = new ArrayList<>(); +} diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointAdditiveRuleController.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointAdditiveRuleController.java index d5e75497d9..6d1f168b1f 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointAdditiveRuleController.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointAdditiveRuleController.java @@ -17,6 +17,7 @@ import com.epmet.dto.form.AddcategoryFormDTO; import com.epmet.dto.form.AddruleFormDTO; import com.epmet.dto.form.List4applyFormDTO; import com.epmet.dto.form.List4treeFormDTO; +import com.epmet.dto.result.List4ApplyResultDTO; import com.epmet.excel.PointAdditiveRuleExcel; import com.epmet.service.PointAdditiveRuleService; import org.springframework.beans.factory.annotation.Autowired; @@ -157,7 +158,7 @@ public class PointAdditiveRuleController { * @return com.epmet.commons.tools.utils.Result> */ @PostMapping("list4apply") - public Result> list4apply(@LoginUser TokenDto tokenDto,@RequestBody List4applyFormDTO dto){ + public Result> list4apply(@LoginUser TokenDto tokenDto, @RequestBody List4applyFormDTO dto){ ValidatorUtils.validateEntity(dto); dto.setCustomerId(tokenDto.getCustomerId()); return pointAdditiveRuleService.list4apply(dto); diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointAdditiveRuleDao.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointAdditiveRuleDao.java index 187a8b24ce..5affc6761f 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointAdditiveRuleDao.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointAdditiveRuleDao.java @@ -6,6 +6,7 @@ import com.epmet.dto.PointAdditiveRuleDTO; import com.epmet.dto.form.List4applyFormDTO; import com.epmet.dto.form.List4treeFormDTO; import com.epmet.dto.form.SubmitRewardFormDTO; +import com.epmet.dto.result.List4ApplyResultDTO; import com.epmet.entity.PointAdditiveRuleEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -46,7 +47,7 @@ public interface PointAdditiveRuleDao extends BaseDao { * @params [dto] * @return java.util.List */ - List selectList4apply(List4applyFormDTO dto); + List selectList4apply(List4applyFormDTO dto); /** * @describe: 查询积分类别规则列表 diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdditiveRuleService.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdditiveRuleService.java index 27f0546f84..62bb880715 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdditiveRuleService.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdditiveRuleService.java @@ -9,6 +9,7 @@ import com.epmet.dto.form.AddcategoryFormDTO; import com.epmet.dto.form.AddruleFormDTO; import com.epmet.dto.form.List4applyFormDTO; import com.epmet.dto.form.List4treeFormDTO; +import com.epmet.dto.result.List4ApplyResultDTO; import com.epmet.entity.PointAdditiveRuleEntity; import java.util.List; @@ -125,7 +126,7 @@ public interface PointAdditiveRuleService extends BaseService> */ - Result> list4apply(List4applyFormDTO dto); + Result> list4apply(List4applyFormDTO dto); /** * @describe: 查询积分类别规则列表 diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdditiveRuleServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdditiveRuleServiceImpl.java index 2c6f51d850..9301f4fb7c 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdditiveRuleServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdditiveRuleServiceImpl.java @@ -18,17 +18,17 @@ import com.epmet.dto.form.AddcategoryFormDTO; import com.epmet.dto.form.AddruleFormDTO; import com.epmet.dto.form.List4applyFormDTO; import com.epmet.dto.form.List4treeFormDTO; +import com.epmet.dto.result.List4ApplyResultDTO; import com.epmet.entity.PointAdditiveRuleEntity; import com.epmet.redis.PointAdditiveRuleRedis; import com.epmet.service.PointAdditiveRuleService; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 附加积分规则 @@ -164,10 +164,36 @@ public class PointAdditiveRuleServiceImpl extends BaseServiceImpl> list4apply(List4applyFormDTO dto) { - dto.setType(PointAddRuleEnum.RULE_TYPE.getCode()); - List result = baseDao.selectList4apply(dto); - return new Result>().ok(result); + public Result> list4apply(List4applyFormDTO dto) { + List list = baseDao.selectList4apply(dto); + List result = build(list); + result.removeIf(category ->CollectionUtils.isEmpty(category.getChildren())); + return new Result>().ok(result); + } + + /** + * 构建树节点 + */ + public static List build(List treeNodes) { + List result = new ArrayList<>(); + + //list转map + Map nodeMap = new LinkedHashMap<>(treeNodes.size()); + for(List4ApplyResultDTO treeNode : treeNodes){ + nodeMap.put(treeNode.getId(), treeNode); + } + + for(List4ApplyResultDTO node : nodeMap.values()) { + List4ApplyResultDTO parent = nodeMap.get(node.getPid()); + if(parent != null && !(node.getId().equals(parent.getId()))){ + parent.getChildren().add(node); + continue; + } + + result.add(node); + } + + return result; } @Override diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdditiveRuleDao.xml b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdditiveRuleDao.xml index d5324372a2..229184ac62 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdditiveRuleDao.xml +++ b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdditiveRuleDao.xml @@ -43,17 +43,17 @@ and c.DEL_FLAG='0' and c.id = #{categoryId} - + select id, + if(CATEGORY_NAME is null,RULE_NAME,CATEGORY_NAME) as name, + pid, + POINT_VALUE from point_additive_rule where DEL_FLAG='0' and CATEGORY_CODE=#{categoryCode} and APPLY_FLAG= #{applyFlag} - and TYPE=#{type} and CUSTOMER_ID=#{customerId} order by UPDATED_TIME desc