提交 c63ed817 作者: ZhangJingKun

标签库替换

上级 70c1cbb0
......@@ -2,6 +2,7 @@ package com.zzsn.leaderbase.controller;
import com.zzsn.leaderbase.service.CharacterTagService;
import com.zzsn.leaderbase.vo.Result;
import com.zzsn.leaderbase.vo.SysBaseLabelTypeVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -9,7 +10,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -27,19 +27,28 @@ public class CharacterTagController {
@Autowired
CharacterTagService characterTagService;
//查询标签列表
/**
* 查询所有标签分类
* @return
*/
@GetMapping("/getTagTypeList")
public Result<?> getTagTypeList(){
log.info("查询所有标签分类");
SysBaseLabelTypeVo vo = characterTagService.getTagTypeList();
return Result.OK(vo);
}
/**
* 查询标签列表
* @param type
* @param category
* @param id
* @param name
* @return
*/
@GetMapping("/getTagList")
public Result<?> getTagList(@RequestParam(name="type",required=false) String type,
@RequestParam(name="category",required=false) String category){
log.info("查询标签列表:{}---{}",type,category);
return characterTagService.getTagList(type, category);
public Result<?> getTagList(@RequestParam(name="id",required=false) String id,
@RequestParam(name="name",required=false) String name){
log.info("查询标签列表:{}---{}",id,name);
return characterTagService.getTagList(id, name);
}
/**
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: 标签类别
* @Author: jeecg-boot
* @Date: 2022-05-12
* @Version: V1.0
*/
@Data
@TableName("sys_base_label_type")
@ApiModel(value="sys_base_label_type对象", description="标签类别")
public class SysBaseLabelType implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**标签编码*/
@Excel(name = "标签编码", width = 15)
@ApiModelProperty(value = "标签编码")
private String labelCode;
/**标签名称*/
@Excel(name = "标签名称", width = 15)
@ApiModelProperty(value = "标签名称")
private String labelName;
/**标签标识*/
@Excel(name = "标签标识", width = 15)
@ApiModelProperty(value = "标签标识")
private String labelMark;
/**说明*/
@Excel(name = "说明", width = 15)
@ApiModelProperty(value = "说明")
private String explanation;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**父级节点*/
@Excel(name = "父级节点", width = 15)
@ApiModelProperty(value = "父级节点")
private String pid;
/**是否有子节点*/
@Excel(name = "是否有子节点", width = 15, dicCode = "yn")
@ApiModelProperty(value = "是否有子节点")
private String hasChild;
/**排序*/
private Integer orderNo;
/**顶层id*/
private String topId;
/**标签类别(如企业、自定义等)*/
private String labelType;
/**标签类型(0-非自定义;1-自定义)*/
private Integer category;
}
......@@ -3,7 +3,10 @@ package com.zzsn.leaderbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.leaderbase.entity.CharacterTag;
import com.zzsn.leaderbase.entity.CharacterTagTop;
import com.zzsn.leaderbase.entity.SysBaseLabelType;
import com.zzsn.leaderbase.vo.CharacterVo;
import com.zzsn.leaderbase.vo.SysBaseLabelTypeVo;
import com.zzsn.leaderbase.vo.SysLabelVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
......@@ -17,11 +20,17 @@ import java.util.Map;
*/
@Mapper
public interface CharacterTagMapper extends BaseMapper<CharacterTag> {
List<CharacterTag> getTagList(String type, String category);
List<CharacterVo> getCharacterListByTagList(String ids, Integer offset, Integer pageSize);
Integer getCharacterListByTagCount(String ids);
List<String> getTopTag();
SysBaseLabelType getSysBaseLabelTypeById(String id);
List<SysBaseLabelType> getgetSysBaseLabelTypeListByPid(String id);
List<SysLabelVo> queryCustomLabel(List<String> ids, String name);
List<SysBaseLabelTypeVo> getTagTypeListAll();
}
......@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.zzsn.leaderbase.entity.CharacterTag;
import com.zzsn.leaderbase.entity.CharacterTagTop;
import com.zzsn.leaderbase.vo.Result;
import com.zzsn.leaderbase.vo.SysBaseLabelTypeVo;
import java.util.List;
/**
* @Version 1.0
......@@ -13,11 +16,13 @@ import com.zzsn.leaderbase.vo.Result;
*/
public interface CharacterTagService extends IService<CharacterTag> {
Result<?> getTagList(String type, String category);
Result<?> getTagList(String id, String name);
Result<?> getCharacterListByTag(String tagName, Integer offset, Integer pageSize);
void addTagTop(CharacterTagTop characterTagTop);
Result<?> getTopTag();
SysBaseLabelTypeVo getTagTypeList();
}
package com.zzsn.leaderbase.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.leaderbase.entity.CharacterTag;
import com.zzsn.leaderbase.entity.CharacterTagTop;
import com.zzsn.leaderbase.entity.SysBaseLabelType;
import com.zzsn.leaderbase.mapper.CharacterTagMapper;
import com.zzsn.leaderbase.mapper.CharacterTagTopMapper;
import com.zzsn.leaderbase.service.CharacterTagService;
import com.zzsn.leaderbase.vo.CharacterVo;
import com.zzsn.leaderbase.vo.Result;
import com.zzsn.leaderbase.vo.SysBaseLabelTypeVo;
import com.zzsn.leaderbase.vo.SysLabelVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @Version 1.0
......@@ -34,10 +37,28 @@ public class CharacterTagServiceImpl extends ServiceImpl<CharacterTagMapper, Cha
@Autowired
CharacterTagTopMapper characterTagTopMapper;
@Value("${sys_base_label_type_id}")
private String sys_base_label_type_id;
@Override
public Result<?> getTagList(String type, String category) {
return Result.OK(characterTagMapper.getTagList(type, category));
public Result<?> getTagList(String id, String name) {
if(id == null || id.length() == 0){
id = sys_base_label_type_id;
}
List<SysBaseLabelType> endNodes = getEndNodes(id);
List<String> ids = new ArrayList<>();
if (CollectionUtil.isEmpty(endNodes)){
ids.add(id);
}else {
endNodes.forEach(e->ids.add(e.getId()));
}
// List<SysLabelVo> pageList = null;
// pageList = baseMapper.queryCustomLabel(sysLabelVo, offset, pageSize);
List<SysLabelVo> pageList = characterTagMapper.queryCustomLabel(ids,name);
return Result.OK(pageList);
}
......@@ -93,6 +114,25 @@ public class CharacterTagServiceImpl extends ServiceImpl<CharacterTagMapper, Cha
return Result.OK(list);
}
@Override
public SysBaseLabelTypeVo getTagTypeList() {
// List<SysBaseLabelTypeVo> allList = new ArrayList<>();
//SysBaseLabelTypeVo sysBaseLabelTypeVo = new SysBaseLabelTypeVo();
//sysBaseLabelTypeVo.setId("0");
// sysBaseLabelTypeVo.setLabelName("所有");
// sysBaseLabelTypeVo.setPid("0");
// sysBaseLabelTypeVo.setHasChild("1");
List<SysBaseLabelTypeVo> list = characterTagMapper.getTagTypeListAll();
//只获取人物服务相关的类别
List<SysBaseLabelTypeVo> treeList = getBaseLabelTreeList(list,sys_base_label_type_id);
// sysBaseLabelTypeVo.setChildren(treeList);
// allList.add(sysBaseLabelTypeVo);
// return allList;
if(treeList.size()==1)
return treeList.get(0);
return null;
}
private void addTagTop(String tagName){
CharacterTagTop characterTagTop = characterTagTopMapper.getByName(tagName);
......@@ -109,6 +149,78 @@ public class CharacterTagServiceImpl extends ServiceImpl<CharacterTagMapper, Cha
}
/**
* 根据标签类别id查询所有的末端节点
* @param id
* @return
*/
public List<SysBaseLabelType> getEndNodes(String id){
List<SysBaseLabelType> list = new ArrayList<>();
//SysBaseLabelType byId = super.getById(id);
SysBaseLabelType byId = characterTagMapper.getSysBaseLabelTypeById(id);
if (ObjectUtil.isEmpty(byId)){
return list;
}
if ("0".equals(byId.getHasChild())){
return list;
}
return getnodes(list,id);
}
/**
* 递归查询
* @param list
* @param id
* @return
*/
private List<SysBaseLabelType> getnodes(List<SysBaseLabelType> list,String id){
//List<SysBaseLabelType> child = super.list(Wrappers.<SysBaseLabelType>lambdaQuery().eq(SysBaseLabelType::getPid, id));
List<SysBaseLabelType> child = characterTagMapper.getgetSysBaseLabelTypeListByPid(id);
child.forEach(e -> {
if ("0".equals(e.getHasChild())){
list.add(e);
}else {
getnodes(list,e.getId());
}
});
return list;
}
//获取树状结构
private List<SysBaseLabelTypeVo> getBaseLabelTreeList(List<SysBaseLabelTypeVo> baseLabelTypeList, String id){
List<SysBaseLabelTypeVo> topList = new ArrayList<>();
baseLabelTypeList.forEach(e->{
if (id.equals(e.getId())) {
topList.add(e);
}
});
for (SysBaseLabelTypeVo sysLabelVo : topList) {
setBaseLabelChildren(sysLabelVo, baseLabelTypeList);
}
return topList;
}
//递归获取树形结构数据
private void setBaseLabelChildren(SysBaseLabelTypeVo parent, List<SysBaseLabelTypeVo> list) {
Set<SysBaseLabelTypeVo> children = getBaseLabelChildren(list, parent.getId());
parent.setChildren(new ArrayList<>(children));
for (SysBaseLabelTypeVo sysLabelVo : children) {
setBaseLabelChildren(sysLabelVo, list);
}
}
private Set<SysBaseLabelTypeVo> getBaseLabelChildren(List<SysBaseLabelTypeVo> list, String id) {
Set<SysBaseLabelTypeVo> children = new HashSet<>();
for (SysBaseLabelTypeVo sysLabelVo : list) {
if (sysLabelVo.getPid().equals(id)) {
children.add(sysLabelVo);
}
}
return children;
}
}
......
package com.zzsn.leaderbase.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class SysBaseLabelTypeVo {
/**主键*/
private String id;
/**标签名称*/
private String labelName;
/**标签标识*/
private String labelMark;
/**说明*/
private String explanation;
/**创建人*/
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private java.util.Date createTime;
/**更新人*/
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private java.util.Date updateTime;
/**所属部门*/
private String sysOrgCode;
/**父级节点*/
private String pid;
/**是否有子节点*/
@Excel(name = "是否有子节点", width = 15, dicCode = "yn")
private String hasChild;
/**排序*/
private Integer orderNo;
/**顶层id*/
private String topId;
/**标签类别(如企业、自定义等)*/
private String labelType;
/**下级节点*/
private java.util.List<SysBaseLabelTypeVo> children;
}
package com.zzsn.leaderbase.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(value = JsonInclude.Include.NON_NULL)
public class SysLabelVo {
/**
* 主键
*/
private String id;
/**
* 名称
*/
private String name;
/**
* 近义词
*/
private String synonym;
/**
* 说明
*/
private String explanation;
/**
* 层级
*/
private Integer level;
/**
* 一级主键id
*/
private String topId;
/**
* 所有id
*/
private String pathIds;
/**
* 状态
*/
private Integer status;
/**
* 排序
*/
private Integer sort;
/**
* 创建人
*/
private String createBy;
/**
* 创建日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private java.util.Date createTime;
/**
* 更新人
*/
private String updateBy;
/**
* 更新日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private java.util.Date updateTime;
/**
* 所属部门
*/
private String sysOrgCode;
/**
* 父级节点
*/
private String pid;
/**
* 是否有子节点
*/
private String hasChild;
/**
* 属于哪个标签(表sys_base_label_type的主键id)
*/
private String labelTypeId;
/**
* 标签类别(如企业、自定义等)
*/
private String labelType;
/**
* 标签标识
*/
private String labelMark;
/**
* 下级节点
*/
private List<SysLabelVo> children;
private Boolean isLeaf;
/**
* 具体标签的id集合
*/
private List<String> labelIdList;
private String queryParam;
private String dataType = "";
/**
* 专题字段
*/
private Integer category;
/**
* 词条名称
*/
private String itemText;
/**
* 词条代码
*/
private String itemValue;
/**
* 描述
*/
private String description;
/**
* 排序值
*/
private String sortOrder;
/**
* 字典id
*/
private String dictId;
/**唯一编码(前端回显)*/
private String code;
}
......@@ -51,4 +51,6 @@ mybatis-plus:
mapper-locations: mapper/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
\ No newline at end of file
map-underscore-to-camel-case: true
sys_base_label_type_id: 1772144267639111681
\ No newline at end of file
......@@ -16,7 +16,7 @@
left join (
select GROUP_CONCAT(a1.tag_id SEPARATOR ',') as tag_id,a1.character_uid,GROUP_CONCAT(b1.name SEPARATOR ',') as tag_name
from character_tag_map a1
LEFT JOIN character_tag b1
LEFT JOIN label_entity b1
on a1.tag_id = b1.id
where 1=1
group by a1.character_uid
......
......@@ -4,20 +4,6 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzsn.leaderbase.mapper.CharacterTagMapper">
<select id="getTagList" resultType="com.zzsn.leaderbase.entity.CharacterTag">
select
`id`, `name`, `code`, `type`, `category`, `create_by`, `create_time`, `update_by`, `update_time`, `status`, `description`, `sort`
from character_tag
where 1 = 1
<if test="type != null and type != ''">
AND type = #{type}
</if>
<if test="category != null and category != ''">
AND category = #{category}
</if>
order by id
</select>
<select id="getCharacterListByTagList" resultType="com.zzsn.leaderbase.vo.CharacterVo">
select a.id,a.uid,a.name,a.sex,a.birthplace,a.birthday,a.native_place,a.school,a.speciality,a.education,a.expert_occupation,a.head_sculpture,a.biographical_notes,a.category,a.award_records,a.part_time_job,a.research_field,a.evaluate,a.status,d.tag_id,d.tag_name,
b.type_id,c.type_name,b.company_original,b.department_original,b.duty_original,b.company,b.department,b.duty,b.take_office_time,b.take_office_time_end,b.take_office_status,b.change_url,b.duties_update_time,b.duties_update_reason,b.check_status,b.check_result,b.article_id,b.article_title,b.update_desc,b.original_id,b.new_id,b.merge_status,a.create_by,a.create_time,a.update_by,a.update_time
......@@ -29,7 +15,7 @@
right join
(select GROUP_CONCAT(a1.tag_id SEPARATOR ',') as tag_id,a1.character_uid,GROUP_CONCAT(b1.name SEPARATOR ',') as tag_name
from character_tag_map a1
LEFT JOIN character_tag b1
LEFT JOIN label_entity b1
on a1.tag_id = b1.id
where 1=1
and a1.tag_id in ${ids}
......@@ -51,9 +37,9 @@
LEFT JOIN character_category_structure c
ON b.type_id = c.id
right join
(select a1.id,a1.tag_id,a1.character_uid,b1.name,b1.type,b1.category
(select a1.id,a1.tag_id,a1.character_uid,b1.name
from character_tag_map a1
LEFT JOIN character_tag b1
LEFT JOIN label_entity b1
on a1.tag_id = b1.id
where 1=1
and a1.tag_id in ${ids}
......@@ -74,6 +60,44 @@
)t
</select>
<select id="getSysBaseLabelTypeById" resultType="com.zzsn.leaderbase.entity.SysBaseLabelType">
select * from sys_base_label_type
where 1=1
and id = #{id}
</select>
<select id="getgetSysBaseLabelTypeListByPid" resultType="com.zzsn.leaderbase.entity.SysBaseLabelType">
select * from sys_base_label_type
where 1=1
and pid = #{id}
</select>
<select id="queryCustomLabel" resultType="com.zzsn.leaderbase.vo.SysLabelVo">
select b.*, a.label_id as labelTypeId, a.label_type as labelType, c.label_mark as labelMark from sys_base_label_type_map a
inner join label_entity b on a.relation_id = b.id and b.pid = 0
left join sys_base_label_type c on a.label_id = c.id
where 1=1
<if test="ids!=null and ids.size()>0">
and a.label_id in
<foreach collection="ids" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="name!=null and name != ''">
and b.name like concat('%',#{name},'%')
</if>
order by b.create_time
</select>
<select id="getTagTypeListAll" resultType="com.zzsn.leaderbase.vo.SysBaseLabelTypeVo">
select * from sys_base_label_type
where 1=1
and category = 1
</select>
</mapper>
......
package com.zzsn.leaderbase;
import com.alibaba.fastjson.JSONArray;
import com.zzsn.leaderbase.service.IGeneratorIdService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.BoundListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import java.util.ArrayList;
import java.util.List;
......@@ -10,13 +14,39 @@ import java.util.List;
@SpringBootTest
class LeaderBaseApplicationTests {
@Autowired
private RedisTemplate redisTemplate;
//生成id
@Autowired
IGeneratorIdService generatorIdService;
@Test
void contextLoads() {
for(int i = 0; i < 520; i ++){
String id = String.valueOf(generatorIdService.getOrderId());
System.out.println(id);
}
for(int i = 0; i < 520; i ++){
String uid = generatorIdService.getIdNo();
System.out.println(uid);
}
}
@Test
void translate(){
String USER_INFO_LIST = "USER_INFO_LIST";
BoundListOperations listOps = redisTemplate.boundListOps(USER_INFO_LIST);
String uid = "U24032200000006";
String name = "汪洋";
listOps.rightPush(uid + "|" + name + "|15238");
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论