diff --git a/src/main/java/com/qs/serve/common/model/tag/TagFiledUtil.java b/src/main/java/com/qs/serve/common/model/tag/TagFiledUtil.java new file mode 100644 index 00000000..b8d9434f --- /dev/null +++ b/src/main/java/com/qs/serve/common/model/tag/TagFiledUtil.java @@ -0,0 +1,47 @@ +package com.qs.serve.common.model.tag; + +import cn.hutool.core.collection.CollUtil; +import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.tag.entity.so.TagQuery; +import com.qs.serve.modules.tbs.entity.TbsCostApply; +import lombok.experimental.UtilityClass; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author YenHex + * @since 2024/7/15 + */ +@UtilityClass +public class TagFiledUtil { + + public final static Map TbsCostApplyPageMap = new HashMap(){{ + put("supplier","tbs_cost_apply.supplier_id"); + }}; + + public static void TbsCostApplyPage(TbsCostApply param){ + List newList = new ArrayList<>(); + List paramTagList = param.getTagQueryList(); + for (TagQuery tag : paramTagList) { + if(!StringUtils.hasText(tag.getTargetType())){ + continue; + } + if (StringUtils.hasText(tag.getTargetName()) || CollUtil.isNotEmpty(tag.getTagIds())){ + String sqlColumn = TbsCostApplyPageMap.get(tag.getDataField()); + if(StringUtils.hasText(sqlColumn)){ + TagQuery newVal = new TagQuery(); + newVal.setTargetType(tag.getTargetType()); + newVal.setTargetName(tag.getTargetName()); + newVal.setTagIds(tag.getTagIds()); + newVal.setSqlColumn(sqlColumn); + newList.add(newVal); + } + } + } + param.setTagQueryList(newList); + } + +} diff --git a/src/main/java/com/qs/serve/modules/tag/entity/so/TagQuery.java b/src/main/java/com/qs/serve/modules/tag/entity/so/TagQuery.java new file mode 100644 index 00000000..f15948ef --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tag/entity/so/TagQuery.java @@ -0,0 +1,33 @@ +package com.qs.serve.modules.tag.entity.so; + +import lombok.Data; + +import java.util.List; + +/** + * @author YenHex + * @since 2024/7/12 + */ +@Data +public class TagQuery { + + /** + * 类型 + */ + private String targetType; + + private String targetName; + + private List tagIds; + + /** + * 列名 creator.checker + */ + private String dataField; + + /** + * 不用传 + */ + private String sqlColumn; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index 6fbba790..252ff15e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -11,6 +11,7 @@ import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.model.tag.TagFiledUtil; import com.qs.serve.common.util.*; import com.qs.serve.modules.bir.consts.BirActivityCenterGoodsUtil; import com.qs.serve.modules.bms.entity.BmsRegion2; @@ -227,6 +228,18 @@ public class TbsCostApplyController { return R.byMbpList(page); } + + /** + * 翻页 + * @param param + * @return + */ + @PostMapping("/pageDev") + public R> getPageDev(@RequestBody TbsCostApply param){ + TagFiledUtil.TbsCostApplyPage(param); + IPage page = tbsCostApplyService.selectPage(param); + return R.byMbpList(page); + } /** * ID查询 * @param id diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java index 543bbb74..a0104f0c 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.qs.serve.modules.tag.entity.so.TagQuery; import lombok.Data; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; @@ -287,7 +288,7 @@ public class TbsCostApply implements Serializable { * 选择的标签ID */ @TableField(exist = false) - List tagIds; + List tagQueryList; } diff --git a/src/main/resources/mapper/tag/TagDataMapper.xml b/src/main/resources/mapper/tag/TagDataMapper.xml index bee63599..a120c2ae 100644 --- a/src/main/resources/mapper/tag/TagDataMapper.xml +++ b/src/main/resources/mapper/tag/TagDataMapper.xml @@ -70,4 +70,28 @@ + + + + and ${tagQuery.sqlColumn} in + ( + select target_id from tag_data + left join tag_info on tag_data.tag_id = tag_info.id and del_flag=0 + where tag_data.del_flag = 0 + + and tag_id in + + #{selectId} + + + + and target_name like concat('%',#{tagQuery.targetName},'%') + + and tag_data.target_type = #{tagQuery.targetType} + group by tag_data.target_id + ) + + + + diff --git a/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml b/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml index 780745cc..484cd576 100644 --- a/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml +++ b/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml @@ -143,21 +143,7 @@ #{selectId} ) - - - and tbs_cost_apply.supplier_id in - ( - select target_id from tag_data - where del_flag = 0 - and target_id in - - #{selectId} - - and target_type = 'customer' - group by target_id - ) - - + order by tbs_cost_apply.`create_time` DESC @@ -240,5 +226,7 @@ and `tbs_cost_apply`.`del_flag` = #{query.delFlag} and `tbs_cost_apply`.`template_title` like concat('%', #{query.templateTitle},'%') + +