提交 5542f5f9 作者: ZhangJingKun

人物服务2.0开发

上级 d881eb78
......@@ -53,19 +53,19 @@ public class CharacterTagController {
/**
* 根据标签分页查询人物
* @param tagName
* @param tagId
* @return
*/
@GetMapping("/getCharacterListByTag")
public Result<?> getCharacterListByTag(@RequestParam(name="tagName",required=true) String tagName,
public Result<?> getCharacterListByTag(@RequestParam(name="tagId",required=true) String tagId,
@RequestParam(name="pageNo",required=false) Integer pageNo,
@RequestParam(name="pageSize",required=false) Integer pageSize){
log.info("根据标签分页查询人物:{}---{}---{}",tagName,pageNo,pageSize);
log.info("根据标签分页查询人物:{}---{}---{}",tagId,pageNo,pageSize);
if(pageNo == null || pageNo < 1)
pageNo = 1;
if(pageSize == null || pageSize < 0)
pageSize = 10;
return characterTagService.getCharacterListByTag(tagName,pageNo,pageSize);
return characterTagService.getCharacterListByTag(tagId,pageNo,pageSize);
}
......
......@@ -96,5 +96,8 @@ public class CharacterBasicInfo extends Model<CharacterBasicInfo> {
private Date updateTime;
//启停状态 1启 0停
private Long status;
//有没有历任数据 1-有;0-没有
@TableField(exist = false)
private Integer hasChild;
}
......@@ -16,6 +16,7 @@ import java.util.Date;
public class CharacterTagTop {
private long id;
private String tagId;
private String name;
private long countNum;
//创建时间
......
......@@ -45,12 +45,15 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo>
Integer getListCount(BasicInfoListVo basicInfoListVo);
List<CharacterBasicInfo> getListHasChild(List<String> uidList);
List<CharacterVo> checkList(String articleId,String checkResult);
@Select("select * " +
"from character_basic_info a " +
"where 1=1 " +
"and main_entry = 1 " +
"and category = '1' "+
"and a.name = #{name} ")
List<CharacterBasicInfo> getListByName(String name);
......
package com.zzsn.leaderbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.leaderbase.entity.CharacterTagTop;
import com.zzsn.leaderbase.entity.LabelEntity;
import com.zzsn.leaderbase.entity.SysBaseLabelType;
import com.zzsn.leaderbase.vo.CharacterVo;
......@@ -22,7 +23,7 @@ public interface CharacterTagMapper extends BaseMapper<LabelEntity> {
List<CharacterVo> getCharacterListByTagList(String ids, Integer offset, Integer pageSize);
Integer getCharacterListByTagCount(String ids);
List<String> getTopTag();
List<CharacterTagTop> getTopTag();
SysBaseLabelType getSysBaseLabelTypeById(String id);
......
......@@ -16,7 +16,7 @@ public interface CharacterTagTopMapper extends BaseMapper<CharacterTagTop> {
@Select("select * from character_tag_top " +
"where 1=1 " +
"and name = #{tagName} " +
"and tag_id = #{tagId} " +
"limit 1")
CharacterTagTop getByName(String tagName);
CharacterTagTop getByTagId(String tagId);
}
......@@ -18,7 +18,7 @@ public interface CharacterTagService extends IService<LabelEntity> {
Result<?> getTagList(String id, String name);
Result<?> getCharacterListByTag(String tagName, Integer offset, Integer pageSize);
Result<?> getCharacterListByTag(String tagId, Integer offset, Integer pageSize);
void addTagTop(CharacterTagTop characterTagTop);
......@@ -26,5 +26,5 @@ public interface CharacterTagService extends IService<LabelEntity> {
SysBaseLabelTypeVo getTagTypeList();
void addTagTop(String tagName);
void addTagTop(String tagId);
}
package com.zzsn.leaderbase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -8,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import com.zzsn.leaderbase.mapper.CharacterBasicInfoMapper;
import com.zzsn.leaderbase.service.CharacterBasicInfoService;
import com.zzsn.leaderbase.service.CharacterTagService;
import com.zzsn.leaderbase.service.IGeneratorIdService;
import com.zzsn.leaderbase.vo.BasicInfoListVo;
import com.zzsn.leaderbase.vo.CharacterListVo;
......@@ -16,9 +18,8 @@ import com.zzsn.leaderbase.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Version 1.0
......@@ -33,6 +34,9 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf
@Autowired
IGeneratorIdService generatorIdService;
@Autowired
CharacterTagService characterTagService;
@Override
public CharacterVo getByUid(String uid) {
return baseMapper.getByUid(uid);
......@@ -49,6 +53,35 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf
List<CharacterBasicInfo> list = baseMapper.getList(basicInfoListVo);
Integer total = baseMapper.getListCount(basicInfoListVo);
//判断是否有关联数据
List<String> uidList = new ArrayList<>();
list.forEach(info -> { uidList.add(info.getUid()); });
QueryWrapper<CharacterBasicInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.in("uid", uidList)
.ne("main_entry",1).select("id","uid");
List<CharacterBasicInfo> hasChildList = this.list(queryWrapper);
if(hasChildList.size() > 0){
Map<String, List<CharacterBasicInfo>> groupList = hasChildList.stream().collect(Collectors.groupingBy(e -> e.getUid()));
list.forEach(info -> {
String uid = info.getUid();
List<CharacterBasicInfo> groupUid = groupList.get(uid);
if(groupUid != null && groupUid.size() != 0){
info.setHasChild(1);
}
});
}
//记录热门标签
//记录热门标签
String tagId = basicInfoListVo.getTagId();
if(tagId != null && tagId.length() >0){
String[] tagIdArr = tagId.split(",");
for (String s : tagIdArr) {
characterTagService.addTagTop(s);
}
}
IPage page = new Page();
page.setRecords(list);
page.setTotal(total);
......
......@@ -3,14 +3,17 @@ 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.metadata.IPage;
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.CharacterBasicInfo;
import com.zzsn.leaderbase.entity.CharacterTagTop;
import com.zzsn.leaderbase.entity.LabelEntity;
import com.zzsn.leaderbase.entity.SysBaseLabelType;
import com.zzsn.leaderbase.mapper.CharacterTagMapper;
import com.zzsn.leaderbase.mapper.CharacterTagTopMapper;
import com.zzsn.leaderbase.service.CharacterBasicInfoService;
import com.zzsn.leaderbase.service.CharacterInfoService;
import com.zzsn.leaderbase.service.CharacterTagService;
import com.zzsn.leaderbase.vo.*;
......@@ -38,6 +41,9 @@ public class CharacterTagServiceImpl extends ServiceImpl<CharacterTagMapper, Lab
@Autowired
CharacterInfoService characterInfoService;
@Autowired
CharacterBasicInfoService characterBasicInfoService;
@Value("${sys_base_label_type_id}")
private String sys_base_label_type_id;
......@@ -64,51 +70,16 @@ public class CharacterTagServiceImpl extends ServiceImpl<CharacterTagMapper, Lab
@Override
public Result<?> getCharacterListByTag(String tagName, Integer pageNo, Integer pageSize) {
CharacterListVo characterListVo = new CharacterListVo();
characterListVo.setPageNo(pageNo);
characterListVo.setPageSize(pageSize);
public Result<?> getCharacterListByTag(String tagId, Integer pageNo, Integer pageSize) {
BasicInfoListVo basicInfoListVo = new BasicInfoListVo();
basicInfoListVo.setPageNo(pageNo);
basicInfoListVo.setPageSize(pageSize);
Integer office = pageSize * (pageNo - 1);
characterListVo.setOffset(office);
characterListVo.setTagName(tagName);
return characterInfoService.getList(characterListVo);
// Integer offset = (pageNo -1) * pageSize;
//
// List<LabelEntity> tagList = null;
// //根据标签名称查询标签信息
// LambdaQueryWrapper<LabelEntity> lambdaQuery = Wrappers.lambdaQuery();
// lambdaQuery.eq(LabelEntity::getName, tagName);
// tagList = characterTagMapper.selectList(lambdaQuery);
// if(tagList.size() == 0){
// //根据名称如果没有匹配到标签信息,则使用模糊查找
// LambdaQueryWrapper<LabelEntity> lambdaQueryLike = Wrappers.lambdaQuery();
// lambdaQueryLike.like(LabelEntity::getName, tagName);
// tagList = characterTagMapper.selectList(lambdaQueryLike);
// if(tagList.size() == 0){
// //模糊查询也没有数据,直接返回
// return Result.OK("未查询到人物信息!",null);
// }
// }
// List<String> tagIds = new ArrayList<>();
// for (LabelEntity 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);
basicInfoListVo.setOffset(office);
basicInfoListVo.setTagId(tagId);
IPage<CharacterBasicInfo> page = characterBasicInfoService.getList(basicInfoListVo);
return Result.OK(page);
}
......@@ -119,7 +90,7 @@ public class CharacterTagServiceImpl extends ServiceImpl<CharacterTagMapper, Lab
@Override
public Result<?> getTopTag() {
List<String> list = characterTagMapper.getTopTag();
List<CharacterTagTop> list = characterTagMapper.getTopTag();
return Result.OK(list);
}
......@@ -143,12 +114,14 @@ public class CharacterTagServiceImpl extends ServiceImpl<CharacterTagMapper, Lab
}
@Override
public void addTagTop(String tagName){
public void addTagTop(String tagId){
CharacterTagTop characterTagTop = characterTagTopMapper.getByName(tagName);
CharacterTagTop characterTagTop = characterTagTopMapper.getByTagId(tagId);
if (characterTagTop == null){
LabelEntity labelEntity = this.getById(tagId);
CharacterTagTop newTagTop = new CharacterTagTop();
newTagTop.setName(tagName);
newTagTop.setTagId(tagId);
newTagTop.setName(labelEntity.getName());
newTagTop.setCountNum(1);
characterTagTopMapper.insert(newTagTop);
} else {
......
......@@ -43,12 +43,21 @@
AND type_id = #{typeId}
</if>
<if test="tagId != null and tagId != ''">
<foreach item="item" index="index" collection="tagName.split(',')">
<foreach item="item" index="index" collection="tagId.split(',')">
AND tag_id like '%${item}%'
</foreach>
</if>
</sql>
<select id="getListHasChild" resultType="com.zzsn.leaderbase.entity.CharacterBasicInfo">
select
id,uid
from character_basic_info
where 1 = 1
</select>
<select id="checkList" resultType="com.zzsn.leaderbase.vo.CharacterVo">
......
......@@ -50,14 +50,11 @@
</select>
<select id="getTopTag" resultType="String">
select name from(
select name,sum(count_num) as count
<select id="getTopTag" resultType="com.zzsn.leaderbase.entity.CharacterTagTop">
select *
from character_tag_top
group by name
order by count desc
order by count_num desc
limit 10
)t
</select>
<select id="getSysBaseLabelTypeById" resultType="com.zzsn.leaderbase.entity.SysBaseLabelType">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论