提交 6adabc6b 作者: ZhangJingKun

2.0新增功能

上级 86bde111
...@@ -183,9 +183,9 @@ public class CharacterDetailsController { ...@@ -183,9 +183,9 @@ public class CharacterDetailsController {
//参数校验 //参数校验
Integer pageNo = relatedReportsVo.getPageNo(); Integer pageNo = relatedReportsVo.getPageNo();
if(pageNo < 1) if(pageNo < 1)
return Result.error("页码不能小于1!"); return Result.OK("页码不能小于1!",null);
if(relatedReportsVo.getKeyword() == null || "".equals(relatedReportsVo.getKeyword())) if(relatedReportsVo.getKeyword() == null || "".equals(relatedReportsVo.getKeyword()))
return Result.error("搜索关键词不能为空!"); return Result.OK("搜索关键词不能为空!",null);
return esServer.getRelatedReportsList(relatedReportsVo); return esServer.getRelatedReportsList(relatedReportsVo);
} }
......
...@@ -168,4 +168,30 @@ public class CharacterInfoController { ...@@ -168,4 +168,30 @@ public class CharacterInfoController {
return characterInfoService.mergeCancel(id); return characterInfoService.mergeCancel(id);
} }
} /**
* 根据uid查询人物的历任职务
* @param uid
* @return
*/
@GetMapping("/getPreviousDuty")
public Result<?> getPreviousDuty(@RequestParam(name="uid",required=true) String uid){
return characterInfoService.getPreviousDuty(uid);
}
/**
* 关联
* @param characterVo
* @return
*/
@PostMapping("/correlation")
public Result<?> correlation(@RequestBody CharacterVo characterVo){
return characterInfoService.correlation(characterVo);
}
@PostMapping("/correlationEdit")
public Result<?> correlationEdit(@RequestBody CharacterVo characterVo){
return characterInfoService.correlationEdit(characterVo);
}
}
\ No newline at end of file
package com.zzsn.leaderbase.controller;
import com.zzsn.leaderbase.service.CharacterTagService;
import com.zzsn.leaderbase.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
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;
/**
* 标签查询相关接口
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/20 18:26
* @Content:
*/
@RestController
@RequestMapping("/api/tag")
public class CharacterTagController {
@Autowired
CharacterTagService characterTagService;
//查询标签列表
/**
* 查询标签列表
* @param type
* @param category
* @return
*/
@GetMapping("/getTagList")
public Result<?> getTagList(@RequestParam(name="type",required=false) String type,
@RequestParam(name="category",required=false) String category){
return characterTagService.getTagList(type, category);
}
/**
* 根据标签分页查询人物
* @param tagName
* @return
*/
@GetMapping("/getCharacterListByTag")
public Result<?> getCharacterListByTag(@RequestParam(name="tagName",required=true) String tagName,
@RequestParam(name="pageNo",required=false) Integer pageNo,
@RequestParam(name="pageSize",required=false) Integer pageSize){
if(pageNo == null && pageNo < 1)
pageNo = 1;
if(pageSize == null && pageSize < 0)
pageSize = 10;
return characterTagService.getCharacterListByTag(tagName,pageNo,pageSize);
}
//热门标签
@GetMapping("/getTopTag")
public Result<?> getTopTag(){
return characterTagService.getTopTag();
}
}
...@@ -89,48 +89,15 @@ public class LeaderCategoryController { ...@@ -89,48 +89,15 @@ public class LeaderCategoryController {
@GetMapping("/getByName") @GetMapping("/getByName")
public Result<?> getByName( public Result<?> getByName(
@RequestParam(name="category",required = false) String category, @RequestParam(name="category",required = false) String category,
@RequestParam(name="typeName",defaultValue = "0") String typeName){ @RequestParam(name="typeName",required=false) String typeName){
return leaderCategoryService.getByName(category,typeName);
/* if(typeName == null || "".equals(typeName)){
CharacterCategoryStructureTreeVo ccs1 = new CharacterCategoryStructureTreeVo(); //查询全部数据封装成树
ccs1.setId("1764568128651616258"); return leaderCategoryService.getAll(category);
ccs1.setTypeName("外包部门1"); } else {
ccs1.setHasChild("0"); //根据typeName模糊查询节点和父节点
ccs1.setCategory("领导人"); return leaderCategoryService.getByName(category,typeName);
ccs1.setFullPath("1764567775726100481,1764567946836926465,1764568128651616258"); }
//ccs1.setChildren();
CharacterCategoryStructureTreeVo ccs2 = new CharacterCategoryStructureTreeVo();
ccs2.setId("1764568191536816130");
ccs2.setTypeName("外包部门2");
ccs2.setHasChild("0");
ccs2.setCategory("领导人");
ccs2.setFullPath("1764567775726100481,1764567946836926465,1764568191536816130");
// ccs2.setChildren();
CharacterCategoryStructureTreeVo ccs3 = new CharacterCategoryStructureTreeVo();
ccs3.setId("1764567946836926465");
ccs3.setTypeName("计算机与信息技术部");
ccs3.setHasChild("1");
ccs3.setCategory("领导人");
ccs3.setFullPath("1764567775726100481,1764567946836926465");
ccs3.getChildren().add(ccs1);
ccs3.getChildren().add(ccs2);
CharacterCategoryStructureTreeVo ccs4 = new CharacterCategoryStructureTreeVo();
ccs4.setId("1764567775726100481");
ccs4.setTypeName("审计局");
ccs4.setHasChild("1");
ccs4.setCategory("领导人");
ccs4.setFullPath("1764567775726100481");
ccs4.getChildren().add(ccs3);
List<CharacterCategoryStructureTreeVo> list = new ArrayList<>();
list.add(ccs4);
return Result.OK(list);
*/
} }
......
...@@ -47,7 +47,7 @@ public class CharacterBasicInfo extends Model<CharacterBasicInfo> { ...@@ -47,7 +47,7 @@ public class CharacterBasicInfo extends Model<CharacterBasicInfo> {
private String headSculpture; private String headSculpture;
//个人简历 简介 //个人简历 简介
private String biographicalNotes; private String biographicalNotes;
//分类类型:领导人、专家、高管 //分类类型:领导人、专家、企业高管
private String category; private String category;
//任职经历,每一条任职经历用 \n(换行)分割 //任职经历,每一条任职经历用 \n(换行)分割
private String awardRecords; private String awardRecords;
......
...@@ -47,7 +47,7 @@ public class CharacterBasicInfoHistory extends Model<CharacterBasicInfoHistory> ...@@ -47,7 +47,7 @@ public class CharacterBasicInfoHistory extends Model<CharacterBasicInfoHistory>
private String headSculpture; private String headSculpture;
//个人简历 简介 //个人简历 简介
private String biographicalNotes; private String biographicalNotes;
// 分类类型:领导人、专家、高管 // 分类类型:领导人、专家、企业高管
private String category; private String category;
// 任职经历,每一条任职经历用 (换行)分割 // 任职经历,每一条任职经历用 (换行)分割
private String awardRecords; private String awardRecords;
......
...@@ -91,7 +91,7 @@ public class CharacterCategoryStructure extends Model<CharacterCategoryStructure ...@@ -91,7 +91,7 @@ public class CharacterCategoryStructure extends Model<CharacterCategoryStructure
private String hasChild; private String hasChild;
/** /**
* 分类类型: 领导人 专家 高管 * 分类类型: 领导人 专家 企业高管
*/ */
@TableField("category") @TableField("category")
private String category; private String category;
......
...@@ -27,7 +27,7 @@ public class CharacterChangeInfo extends Model<CharacterChangeInfo> { ...@@ -27,7 +27,7 @@ public class CharacterChangeInfo extends Model<CharacterChangeInfo> {
private String name; private String name;
//类别id 和左侧树进行关联 character_category_structure //类别id 和左侧树进行关联 character_category_structure
private String typeId; private String typeId;
private String typeName; //private String typeName;
//原单位 //原单位
private String companyOriginal; private String companyOriginal;
//原部门 原单位 原企业 //原部门 原单位 原企业
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("character_tag")
public class CharacterTag {
//主键
private String id;
//标签名称
private String name;
//标签编码
private String code;
//标签类别
private String type;
//分类类型:领导人、专家、企业高管
private String category;
//创建人
private String createBy;
//创建时间
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//更新人
private String updateBy;
//更新时间
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
//启停状态 1启 0停
private long status;
//描述
private String description;
//排序
private long sort;
}
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("character_tag_map")
public class CharacterTagMap {
private long id;
private String tagId;
private String characterUid;
}
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("character_tag_top")
public class CharacterTagTop {
private long id;
private String name;
private long countNum;
//创建时间
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
}
...@@ -72,4 +72,27 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo> ...@@ -72,4 +72,27 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo>
"and a.name = #{name}" "and a.name = #{name}"
) )
Integer deduplication(String duty, String company, String name); Integer deduplication(String duty, String company, String name);
@Select("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," +
"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, " +
"COALESCE(b.take_office_time, b.create_time) AS order_time " +
"from character_basic_info a " +
"INNER JOIN character_change_info b " +
"on a.id = b.id " +
"LEFT JOIN character_category_structure c " +
"ON b.type_id = c.id " +
"where 1=1 " +
"and b.status in (0,2) " +
"and a.uid = #{uid} " +
"order by order_time desc")
List<CharacterVo> getPreviousDuty(String uid);
@Select("select " +
"id " +
"from character_change_info " +
"where 1=1 " +
"and status = 2 " +
"and uid = #{uid} ")
List<String> getCorrelationByUid(String uid);
} }
package com.zzsn.leaderbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.leaderbase.entity.CharacterTagMap;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.Map;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/21 18:06
* @Content:
*/
@Mapper
public interface CharacterTagMapMapper extends BaseMapper<CharacterTagMap> {
@Select("select " +
"GROUP_CONCAT(a.tag_id SEPARATOR ',') as tag_id, GROUP_CONCAT(b.name SEPARATOR ',') as tag_name " +
"from character_tag_map a " +
"LEFT JOIN character_tag b " +
"on a.tag_id = b.id " +
"where 1=1 " +
"and a.character_uid = #{uid}" +
"group by a.character_uid")
Map<String, String> getByUid(String uid);
@Delete("delete from character_tag_map where character_uid = #{uid}")
void delByUid(String uid);
}
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.vo.CharacterVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/21 11:05
* @Content:
*/
@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();
}
package com.zzsn.leaderbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.leaderbase.entity.CharacterTagTop;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/22 14:07
* @Content:
*/
@Mapper
public interface CharacterTagTopMapper extends BaseMapper<CharacterTagTop> {
@Select("select * from character_tag_top " +
"where 1=1 " +
"and name = #{tagName} " +
"limit 1")
CharacterTagTop getByName(String tagName);
}
...@@ -31,4 +31,7 @@ public interface CharacterBasicInfoService extends IService<CharacterBasicInfo> ...@@ -31,4 +31,7 @@ public interface CharacterBasicInfoService extends IService<CharacterBasicInfo>
List<CharacterBasicInfo> getData(String time); List<CharacterBasicInfo> getData(String time);
List<CharacterVo> getPreviousDuty(String uid);
List<String> getCorrelationByUid(String uid);
} }
...@@ -54,5 +54,11 @@ public interface CharacterInfoService { ...@@ -54,5 +54,11 @@ public interface CharacterInfoService {
Result<?> merge(CharacterMergeVo characterMergeVo); Result<?> merge(CharacterMergeVo characterMergeVo);
Result<?> mergeCancel(String id); Result<?> mergeCancel(String id);
Result<?> getPreviousDuty(String uid);
Result<?> correlation(CharacterVo characterVo);
Result<?> correlationEdit(CharacterVo characterVo);
} }
package com.zzsn.leaderbase.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zzsn.leaderbase.entity.CharacterTagMap;
import java.util.Map;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/21 18:03
* @Content:
*/
public interface CharacterTagMapService extends IService<CharacterTagMap> {
Map<String, String> getByUid(String uid);
void delByUid(String uid);
}
package com.zzsn.leaderbase.service;
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;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/21 11:04
* @Content:
*/
public interface CharacterTagService extends IService<CharacterTag> {
Result<?> getTagList(String type, String category);
Result<?> getCharacterListByTag(String tagName, Integer offset, Integer pageSize);
void addTagTop(CharacterTagTop characterTagTop);
Result<?> getTopTag();
}
...@@ -48,6 +48,7 @@ public class DealLeaderDataService { ...@@ -48,6 +48,7 @@ public class DealLeaderDataService {
} else { } else {
startTime = "2023-01-01 12:12:12"; startTime = "2023-01-01 12:12:12";
} }
//startTime = "2023-01-01 12:12:12";
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQueryBuilder1 = QueryBuilders.boolQuery() BoolQueryBuilder boolQueryBuilder1 = QueryBuilders.boolQuery()
.must(QueryBuilders.termsQuery("subjectId", Arrays.asList("1750716233967157250", "1750716067187048450"))) .must(QueryBuilders.termsQuery("subjectId", Arrays.asList("1750716233967157250", "1750716067187048450")))
...@@ -59,13 +60,18 @@ public class DealLeaderDataService { ...@@ -59,13 +60,18 @@ public class DealLeaderDataService {
Integer pagesize =5; Integer pagesize =5;
for (int i = 1; true; i++) { for (int i = 1; true; i++) {
Page<InfoExtractionParam> subjectdatabase = esUtil.queryPage("subjectdatabase", searchSourceBuilder, InfoExtractionParam.class, i, pagesize); Page<InfoExtractionParam> subjectdatabase = esUtil.queryPageInfoExtractionParam("subjectdatabase", searchSourceBuilder, i, pagesize);
List<InfoExtractionParam> records = subjectdatabase.getRecords(); List<InfoExtractionParam> records = subjectdatabase.getRecords();
log.info("页码:{},总页:{},总数量{}", i, subjectdatabase.getPages(), subjectdatabase.getTotal()); log.info("页码:{},总页:{},总数量{}", i, subjectdatabase.getPages(), subjectdatabase.getTotal());
if (CollectionUtil.isNotEmpty(records)) { if (CollectionUtil.isNotEmpty(records)) {
JSONObject jsonObjectParam = new JSONObject(); JSONObject jsonObjectParam = new JSONObject();
Map<String, String> idIndexMap = new HashMap<>();
for (InfoExtractionParam record : records) {
idIndexMap.put(record.getId(), record.getIndex());
}
for (InfoExtractionParam record : records) { for (InfoExtractionParam record : records) {
List<CharacterVo> list = new ArrayList<>(); List<CharacterVo> list = new ArrayList<>();
Map<String, List<InfoExtractionParam>> map = new HashMap<>(); Map<String, List<InfoExtractionParam>> map = new HashMap<>();
...@@ -83,6 +89,7 @@ public class DealLeaderDataService { ...@@ -83,6 +89,7 @@ public class DealLeaderDataService {
for (Object dataResultObject : dataResultList) { for (Object dataResultObject : dataResultList) {
JSONObject dataResult = JSONObject.parseObject(dataResultObject.toString()); JSONObject dataResult = JSONObject.parseObject(dataResultObject.toString());
if (dataResult.get("infos") != null) { if (dataResult.get("infos") != null) {
String id = String.valueOf(dataResult.get("id"));
JSONArray jsonArray = (JSONArray) JSONArray.parse(String.valueOf(dataResult.get("infos"))); JSONArray jsonArray = (JSONArray) JSONArray.parse(String.valueOf(dataResult.get("infos")));
for (Object data : jsonArray) { for (Object data : jsonArray) {
JSONObject temp = JSONObject.parseObject(data.toString()); JSONObject temp = JSONObject.parseObject(data.toString());
...@@ -103,6 +110,7 @@ public class DealLeaderDataService { ...@@ -103,6 +110,7 @@ public class DealLeaderDataService {
.companyOriginal(temp.get("oriWorkPlace") != null ? temp.get("oriWorkPlace").toString() : "") .companyOriginal(temp.get("oriWorkPlace") != null ? temp.get("oriWorkPlace").toString() : "")
.company(temp.get("curWorkPlace") != null ? temp.get("curWorkPlace").toString() : "") .company(temp.get("curWorkPlace") != null ? temp.get("curWorkPlace").toString() : "")
.name(temp.get("person") != null ? temp.get("person").toString() : "") .name(temp.get("person") != null ? temp.get("person").toString() : "")
//.articleId(dataResult.get("id") != null ? idIndexMap.get("id") + "," + dataResult.get("id").toString() : "")
.articleId(dataResult.get("id") != null ? dataResult.get("id").toString() : "") .articleId(dataResult.get("id") != null ? dataResult.get("id").toString() : "")
.checkStatus(0L) .checkStatus(0L)
.createTime(new Date()) .createTime(new Date())
......
package com.zzsn.leaderbase.service; package com.zzsn.leaderbase.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zzsn.leaderbase.util.EsDateUtil;
import com.zzsn.leaderbase.util.EsUtil; import com.zzsn.leaderbase.util.EsUtil;
import com.zzsn.leaderbase.vo.RelatedReportsVo; import com.zzsn.leaderbase.vo.RelatedReportsVo;
import com.zzsn.leaderbase.vo.Result; import com.zzsn.leaderbase.vo.Result;
...@@ -61,10 +62,13 @@ public class EsServer { ...@@ -61,10 +62,13 @@ public class EsServer {
Page<SubjectInfoVo> page = null; Page<SubjectInfoVo> page = null;
try { try {
page = esUtil.queryPage(SUBJECTDATABASE, searchSourceBuilder, SubjectInfoVo.class, 1, 10); page = esUtil.queryPageSubjectInfoVo(SUBJECTDATABASE, searchSourceBuilder, relatedReportsVo.getPageNo(), relatedReportsVo.getPageSize());
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
for (SubjectInfoVo record : page.getRecords()) {
record.setPublishDate(EsDateUtil.esFieldDateMapping(record.getPublishDate()));
}
return Result.OK(page); return Result.OK(page);
} }
......
...@@ -33,6 +33,8 @@ public interface LeaderCategoryService extends IService<CharacterCategoryStructu ...@@ -33,6 +33,8 @@ public interface LeaderCategoryService extends IService<CharacterCategoryStructu
Result<?> getByName(String category, String typeName); Result<?> getByName(String category, String typeName);
Result<?> getAll(String category);
/** /**
* 通过id获取子节点列表 * 通过id获取子节点列表
* @param id id * @param id id
......
...@@ -74,4 +74,14 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf ...@@ -74,4 +74,14 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf
List<CharacterBasicInfo> list = characterBasicInfoMapper.selectList(lambdaQuery); List<CharacterBasicInfo> list = characterBasicInfoMapper.selectList(lambdaQuery);
return list; return list;
} }
@Override
public List<CharacterVo> getPreviousDuty(String uid) {
return characterBasicInfoMapper.getPreviousDuty(uid);
}
@Override
public List<String> getCorrelationByUid(String uid) {
return characterBasicInfoMapper.getCorrelationByUid(uid);
}
} }
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zzsn.leaderbase.entity.CharacterBasicInfo; import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import com.zzsn.leaderbase.entity.CharacterBasicInfoHistory; import com.zzsn.leaderbase.entity.CharacterBasicInfoHistory;
import com.zzsn.leaderbase.entity.CharacterChangeInfo; import com.zzsn.leaderbase.entity.CharacterChangeInfo;
import com.zzsn.leaderbase.entity.CharacterTagMap;
import com.zzsn.leaderbase.service.*; import com.zzsn.leaderbase.service.*;
import com.zzsn.leaderbase.util.CharacterMergeStatus; import com.zzsn.leaderbase.util.CharacterMergeStatus;
import com.zzsn.leaderbase.vo.*; import com.zzsn.leaderbase.vo.*;
...@@ -13,10 +14,7 @@ import org.springframework.beans.BeanUtils; ...@@ -13,10 +14,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/** /**
* @Version 1.0 * @Version 1.0
...@@ -42,6 +40,10 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -42,6 +40,10 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
@Autowired @Autowired
CharacterMergeStatus characterMergeStatus; CharacterMergeStatus characterMergeStatus;
//人物标签
@Autowired
CharacterTagMapService characterTagMapService;
@Override @Override
public Result<?> add(CharacterVo characterVo) { public Result<?> add(CharacterVo characterVo) {
...@@ -69,7 +71,19 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -69,7 +71,19 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
BeanUtils.copyProperties(characterVo, characterChangeInfo); BeanUtils.copyProperties(characterVo, characterChangeInfo);
characterChangeInfoService.save(characterChangeInfo); characterChangeInfoService.save(characterChangeInfo);
//记录任务基本信息修改记录 //标签存储
String tagId = characterVo.getTagId();
String[] tagIdArr = tagId.split(",");
List<CharacterTagMap> list = new ArrayList<>();
for (String s : tagIdArr) {
CharacterTagMap characterTagMap = new CharacterTagMap();
characterTagMap.setTagId(s);
characterTagMap.setCharacterUid(characterVo.getUid());
list.add(characterTagMap);
}
characterTagMapService.saveBatch(list);
//记录任务基本信息修改记录
CharacterBasicInfoHistory characterBasicInfoHistory = new CharacterBasicInfoHistory(); CharacterBasicInfoHistory characterBasicInfoHistory = new CharacterBasicInfoHistory();
BeanUtils.copyProperties(characterBasicInfo, characterBasicInfoHistory); BeanUtils.copyProperties(characterBasicInfo, characterBasicInfoHistory);
characterBasicInfoHistory.setId(null); characterBasicInfoHistory.setId(null);
...@@ -122,6 +136,17 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -122,6 +136,17 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
CharacterVo characterVo = characterBasicInfoService.getById(id); CharacterVo characterVo = characterBasicInfoService.getById(id);
if(characterVo == null) if(characterVo == null)
return Result.OK("未查询到人物信息",null); return Result.OK("未查询到人物信息",null);
//todo 未解决问题
String uid = characterVo.getUid();
if(uid != null){
Map<String, String> tagMap = characterTagMapService.getByUid(characterVo.getUid());
if(tagMap != null){
characterVo.setTagId(tagMap.get("tag_id"));
characterVo.setTagName(tagMap.get("tag_name"));
}
}
return Result.OK(characterVo); return Result.OK(characterVo);
} }
...@@ -140,6 +165,32 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -140,6 +165,32 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
BeanUtils.copyProperties(characterVo, characterChangeInfo); BeanUtils.copyProperties(characterVo, characterChangeInfo);
characterChangeInfoService.updateById(characterChangeInfo); characterChangeInfoService.updateById(characterChangeInfo);
//标签修改
String uid = characterVo.getUid();
if(uid != null){
//删除原有的
characterTagMapService.delByUid(characterVo.getUid());
//增加新的
String tagId = characterVo.getTagId();
String[] tagIdArr = tagId.split(",");
List<CharacterTagMap> list = new ArrayList<>();
for (String s : tagIdArr) {
CharacterTagMap characterTagMap = new CharacterTagMap();
characterTagMap.setTagId(s);
characterTagMap.setCharacterUid(characterVo.getUid());
list.add(characterTagMap);
}
characterTagMapService.saveBatch(list);
}
// 关联信息修改
// String uid = characterVo.getUid();
// List<String> listId = characterBasicInfoService.getCorrelationByUid(uid);
// for (String s : listId) {
// characterBasicInfo.setId(s);
// characterBasicInfoService.updateById(characterBasicInfo);
// }
//记录人物基本信息修改记录 //记录人物基本信息修改记录
CharacterBasicInfoHistory characterBasicInfoHistory = new CharacterBasicInfoHistory(); CharacterBasicInfoHistory characterBasicInfoHistory = new CharacterBasicInfoHistory();
BeanUtils.copyProperties(characterBasicInfo, characterBasicInfoHistory); BeanUtils.copyProperties(characterBasicInfo, characterBasicInfoHistory);
...@@ -397,6 +448,52 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -397,6 +448,52 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
return Result.OK(); return Result.OK();
} }
@Override
public Result<?> getPreviousDuty(String uid) {
return Result.OK(characterBasicInfoService.getPreviousDuty(uid));
}
@Override
public Result<?> correlation(CharacterVo characterVo) {
String id = characterVo.getId();
if(id == null || "".equals(id))
return Result.error("id不能为空!");
CharacterVo vo = characterBasicInfoService.getById(id);
if(characterVo == null)
return Result.error("人物不存在!");
//新增一条基本信息,取库中最新的数据
CharacterBasicInfo characterBasicInfo = new CharacterBasicInfo();
BeanUtils.copyProperties(vo, characterBasicInfo);
String newId = Long.toString(generatorIdService.getOrderId());
characterBasicInfo.setId(newId);
characterBasicInfoService.save(characterBasicInfo);
//新增关联的任职记录
//vo对象获取转entity对象,任职变更信息
CharacterChangeInfo characterChangeInfo = new CharacterChangeInfo();
BeanUtils.copyProperties(characterVo, characterChangeInfo);
characterChangeInfo.setId(newId);
characterChangeInfo.setUid(vo.getUid());
characterChangeInfo.setUid(vo.getName());
characterChangeInfo.setCheckResult(1L);
characterChangeInfo.setStatus(2L);
characterChangeInfoService.save(characterChangeInfo);
return Result.OK();
}
@Override
public Result<?> correlationEdit(CharacterVo characterVo) {
//关联编辑只设计职务部分的修改,基本信息的修改不涉及
characterVo.setUpdateTime(new Date());
//vo对象获取转entity对象,任职变更信息
CharacterChangeInfo characterChangeInfo = new CharacterChangeInfo();
BeanUtils.copyProperties(characterVo, characterChangeInfo);
characterChangeInfoService.updateById(characterChangeInfo);
return Result.OK();
}
/** /**
* 1合并人物 * 1合并人物
......
package com.zzsn.leaderbase.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.leaderbase.entity.CharacterTagMap;
import com.zzsn.leaderbase.mapper.CharacterTagMapMapper;
import com.zzsn.leaderbase.service.CharacterTagMapService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/21 18:03
* @Content:
*/
@Service
public class CharacterTagMapServiceImpl extends ServiceImpl<CharacterTagMapMapper, CharacterTagMap> implements CharacterTagMapService {
@Autowired
CharacterTagMapMapper characterTagMapMapper;
@Override
public Map<String, String> getByUid(String uid) {
return characterTagMapMapper.getByUid(uid);
}
@Override
public void delByUid(String uid) {
characterTagMapMapper.delByUid(uid);
}
}
package com.zzsn.leaderbase.service.impl;
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.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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/21 11:04
* @Content:
*/
@Service
public class CharacterTagServiceImpl extends ServiceImpl<CharacterTagMapper, CharacterTag> implements CharacterTagService {
@Autowired
CharacterTagMapper characterTagMapper;
@Autowired
CharacterTagTopMapper characterTagTopMapper;
@Override
public Result<?> getTagList(String type, String category) {
return Result.OK(characterTagMapper.getTagList(type, category));
}
@Override
public Result<?> getCharacterListByTag(String tagName, Integer pageNo, Integer pageSize) {
Integer offset = (pageNo -1) * pageSize;
List<CharacterTag> tagList = null;
//根据标签名称查询标签信息
LambdaQueryWrapper<CharacterTag> lambdaQuery = Wrappers.lambdaQuery();
lambdaQuery.eq(CharacterTag::getName, tagName);
tagList = characterTagMapper.selectList(lambdaQuery);
if(tagList.size() == 0){
//根据名称如果没有匹配到标签信息,则使用模糊查找
LambdaQueryWrapper<CharacterTag> lambdaQueryLike = Wrappers.lambdaQuery();
lambdaQueryLike.like(CharacterTag::getName, tagName);
tagList = characterTagMapper.selectList(lambdaQueryLike);
if(tagList.size() == 0){
//模糊查询也没有数据,直接返回
return Result.OK("未查询到人物信息!",null);
}
}
List<String> tagIds = new ArrayList<>();
for (CharacterTag characterTag : tagList) {
tagIds.add(characterTag.getId());
}
//根据标签列表查询人物信息
String ids = Arrays.toString(tagIds.toArray(new String[0])).replace("[", "(").replace("]", ")");
List<CharacterVo> list = characterTagMapper.getCharacterListByTagList(ids, offset, pageSize);
Integer total = characterTagMapper.getCharacterListByTagCount(ids);
Page page = new Page<>();
page.setRecords(list);
page.setTotal(total);
page.setCurrent(pageNo);
page.setSize(pageSize);
//记录查询次数
this.addTagTop(tagName);
return Result.OK(page);
}
@Override
public void addTagTop(CharacterTagTop characterTagTop){
characterTagTopMapper.insert(characterTagTop);
}
@Override
public Result<?> getTopTag() {
List<String> list = characterTagMapper.getTopTag();
return Result.OK(list);
}
private void addTagTop(String tagName){
CharacterTagTop characterTagTop = characterTagTopMapper.getByName(tagName);
if (characterTagTop == null){
CharacterTagTop newTagTop = new CharacterTagTop();
newTagTop.setName(tagName);
newTagTop.setCountNum(1);
characterTagTopMapper.insert(newTagTop);
} else {
characterTagTop.setCountNum(characterTagTop.getCountNum() + 1L);
characterTagTopMapper.updateById(characterTagTop);
}
}
}
...@@ -199,6 +199,29 @@ public class LeaderCategoryServiceImpl extends ServiceImpl<LeaderCategoryMapper, ...@@ -199,6 +199,29 @@ public class LeaderCategoryServiceImpl extends ServiceImpl<LeaderCategoryMapper,
return Result.OK(collect); return Result.OK(collect);
} }
@Override
public Result<?> getAll(String category) {
//根据名称模糊查询
List<CharacterCategoryStructure> characterCategoryStructure = super.list(Wrappers.<CharacterCategoryStructure>lambdaQuery()
.eq(StrUtil.isNotBlank(category),CharacterCategoryStructure::getCategory,category));
List<CharacterCategoryStructureTreeVo> list = new ArrayList<>();
for (CharacterCategoryStructure categoryStructure : characterCategoryStructure) {
CharacterCategoryStructureTreeVo ccstvo = new CharacterCategoryStructureTreeVo();
BeanUtils.copyProperties(categoryStructure, ccstvo);
list.add(ccstvo);
}
List<CharacterCategoryStructureTreeVo> collect = list.stream()
// 找出所有顶级(pid = 0 为顶级)
.filter(o -> StrUtil.equals("0", o.getPid()))
//给当前的父级的 children 设置子级
.peek(o -> o.setChildren(getChildList(o, list)))
//收集
.collect(Collectors.toList());
return Result.OK(collect);
}
// 根据当前父类 找出子类, 并通过递归找出子类的子类 // 根据当前父类 找出子类, 并通过递归找出子类的子类
private List<CharacterCategoryStructureTreeVo> getChildList(CharacterCategoryStructureTreeVo projectLeader, Collection<CharacterCategoryStructureTreeVo> list) { private List<CharacterCategoryStructureTreeVo> getChildList(CharacterCategoryStructureTreeVo projectLeader, Collection<CharacterCategoryStructureTreeVo> list) {
return list.stream() return list.stream()
......
...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON; ...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zzsn.leaderbase.vo.InfoExtractionParam;
import com.zzsn.leaderbase.vo.SubjectInfoVo; import com.zzsn.leaderbase.vo.SubjectInfoVo;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -55,6 +56,7 @@ import org.elasticsearch.search.aggregations.BucketOrder; ...@@ -55,6 +56,7 @@ import org.elasticsearch.search.aggregations.BucketOrder;
import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.collapse.CollapseBuilder;
import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -719,9 +721,16 @@ public class EsUtil { ...@@ -719,9 +721,16 @@ public class EsUtil {
searchSourceBuilder.size(1); searchSourceBuilder.size(1);
searchSourceBuilder.sort("createDate", SortOrder.DESC); searchSourceBuilder.sort("createDate", SortOrder.DESC);
TermQueryBuilder termUid = QueryBuilders.termQuery("uid", uid); String u = "uid";
TermQueryBuilder termName = QueryBuilders.termQuery("name", name); String n = "name";
searchSourceBuilder.query(termUid).query(termName); QueryBuilder qb1 = QueryBuilders.termQuery("uid.keyword", uid);
QueryBuilder qb2 = QueryBuilders.termQuery("name.keyword", uid);
QueryBuilder qb3 = QueryBuilders.boolQuery().must(qb1).must(qb2);
TermQueryBuilder termUid = QueryBuilders.termQuery(u, uid);
TermQueryBuilder termName = QueryBuilders.termQuery(n, name);
searchSourceBuilder.query(qb3);
searchRequest.source(searchSourceBuilder); searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
SearchHit[] hits = searchResponse.getHits().getHits(); SearchHit[] hits = searchResponse.getHits().getHits();
...@@ -853,6 +862,64 @@ public class EsUtil { ...@@ -853,6 +862,64 @@ public class EsUtil {
} }
/** /**
* 通用分页查询
* */
public Page<InfoExtractionParam> queryPageInfoExtractionParam(String index, SearchSourceBuilder searchSourceBuilder, Integer pageNo, Integer pageSize) throws IOException {
List<InfoExtractionParam> list = new ArrayList<>();
Page<InfoExtractionParam> pageData = new Page<>(pageNo, pageSize);
SearchRequest searchRequest = new SearchRequest(index);
searchSourceBuilder.size(pageSize);
searchSourceBuilder.from((pageNo - 1) * pageSize);
//默认最大数量是10000,设置为true后,显示准确数量
searchSourceBuilder.trackTotalHits(true);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
// 处理搜索结果
SearchHit[] hits = searchResponse.getHits().getHits();
if (hits.length>0){
Arrays.stream(hits).forEach(e -> {
InfoExtractionParam t = JSON.parseObject(e.getSourceAsString(), InfoExtractionParam.class);
t.setIndex(e.getIndex());
list.add(t);
});
}
pageData.setTotal(searchResponse.getHits().getTotalHits().value);
pageData.setRecords(list);
return pageData;
}
/**
* 通用分页查询
* */
public Page<SubjectInfoVo> queryPageSubjectInfoVo(String index, SearchSourceBuilder searchSourceBuilder, Integer pageNo, Integer pageSize) throws IOException {
List<SubjectInfoVo> list = new ArrayList<>();
Page<SubjectInfoVo> pageData = new Page<>(pageNo, pageSize);
SearchRequest searchRequest = new SearchRequest(index);
searchSourceBuilder.size(pageSize);
searchSourceBuilder.from((pageNo - 1) * pageSize);
//去重 collapse只允许keywords或者numbers类型,字段xxx不是keywords或者numbers类型
searchSourceBuilder.collapse(new CollapseBuilder("sourceAddress.keyword"));
//默认最大数量是10000,设置为true后,显示准确数量
searchSourceBuilder.trackTotalHits(true);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
// 处理搜索结果
SearchHit[] hits = searchResponse.getHits().getHits();
if (hits.length>0){
Arrays.stream(hits).forEach(e -> {
SubjectInfoVo t = JSON.parseObject(e.getSourceAsString(), SubjectInfoVo.class);
t.setIndex(e.getIndex());
list.add(t);
});
}
pageData.setTotal(searchResponse.getHits().getTotalHits().value);
pageData.setRecords(list);
return pageData;
}
/**
* 非聚合类查询,通用结果集封装 * 非聚合类查询,通用结果集封装
* */ * */
public <T> List<T> queryPageBase(String index, Class<T> entry,SearchSourceBuilder searchSourceBuilder) throws IOException { public <T> List<T> queryPageBase(String index, Class<T> entry,SearchSourceBuilder searchSourceBuilder) throws IOException {
......
...@@ -77,7 +77,7 @@ public class CharacterCategoryStructureTreeVo extends Model<CharacterCategoryStr ...@@ -77,7 +77,7 @@ public class CharacterCategoryStructureTreeVo extends Model<CharacterCategoryStr
private String hasChild; private String hasChild;
/** /**
* 分类类型: 领导人 专家 高管 * 分类类型: 领导人 专家 企业高管
*/ */
private String category; private String category;
......
...@@ -40,7 +40,7 @@ public class CharacterListVo { ...@@ -40,7 +40,7 @@ public class CharacterListVo {
//是否审核通过 0未通过 1通过 2待定 //是否审核通过 0未通过 1通过 2待定
private Long checkResult; private Long checkResult;
//分类类型:领导人、专家、高管' //分类类型:领导人、专家、企业高管'
private String category; private String category;
//类别 根据左侧树id //类别 根据左侧树id
......
...@@ -65,6 +65,12 @@ public class CharacterVo { ...@@ -65,6 +65,12 @@ public class CharacterVo {
private String researchField; private String researchField;
//荣誉评价 //荣誉评价
private String evaluate; private String evaluate;
//标签id
private String tagId;
//标签名称
private String tagName;
//创建人 //创建人
private String createBy; private String createBy;
//创建时间 //创建时间
......
...@@ -12,4 +12,5 @@ public class InfoExtractionParam { ...@@ -12,4 +12,5 @@ public class InfoExtractionParam {
private String id; private String id;
private String publishDate; private String publishDate;
private String origin; private String origin;
private String index;
} }
...@@ -6,13 +6,22 @@ ...@@ -6,13 +6,22 @@
<select id="getList" resultType="com.zzsn.leaderbase.vo.CharacterVo"> <select id="getList" resultType="com.zzsn.leaderbase.vo.CharacterVo">
select * from ( select * from (
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, 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 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
from character_basic_info a from character_basic_info a
INNER JOIN character_change_info b INNER JOIN character_change_info b
on a.id = b.id on a.id = b.id
LEFT JOIN character_category_structure c LEFT JOIN character_category_structure c
ON b.type_id = c.id ON b.type_id = c.id
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
on a1.tag_id = b1.id
where 1=1
group by a1.character_uid
) d
on d.character_uid = a.uid
where 1 = 1 where 1 = 1
and (b.status != 0 or b.status IS NULL) and (b.status != 0 or b.status IS NULL)
<if test="name != null and name != ''"> <if test="name != null and name != ''">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"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
from character_basic_info a
INNER JOIN character_change_info b
on a.id = b.id
LEFT JOIN character_category_structure c
ON b.type_id = c.id
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
on a1.tag_id = b1.id
where 1=1
and a1.tag_id in ${ids}
group by a1.character_uid
) d
on d.character_uid = a.uid
where 1 = 1
and (b.status != 0 or b.status IS NULL)
order by b.id
limit #{offset}, #{pageSize}
</select>
<select id="getCharacterListByTagCount" resultType="int">
select count(1)
from character_basic_info a
INNER JOIN character_change_info b
on a.id = b.id
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
from character_tag_map a1
LEFT JOIN character_tag b1
on a1.tag_id = b1.id
where 1=1
and a1.tag_id in ${ids}
) d
on d.character_uid = a.uid
where 1 = 1
and (b.status != 0 or b.status IS NULL)
</select>
<select id="getTopTag" resultType="String">
select name from(
select name,sum(count_num) as count
from character_tag_top
group by name
order by count desc
limit 10
)t
</select>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论