Browse Source

Merge remote-tracking branch 'origin/dev_special_subject' into dev_special_subject

dev_shibei_match
sunyuchao 4 years ago
parent
commit
41a5d1837f
  1. 18
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/HotSubjectTagFormDTO.java
  2. 19
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/PreviewFormDTO.java
  3. 19
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/PreviewResultDTO.java
  4. 31
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/SpecialSubjectController.java
  5. 2
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java
  6. 3
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/SpecialSubjectDao.java
  7. 2
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/SpecialSubjectEntity.java
  8. 11
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java
  9. 88
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/SpecialSubjectService.java
  10. 15
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  11. 128
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/SpecialSubjectServiceImpl.java
  12. 29
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml
  13. 11
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/SpecialSubjectDao.xml

18
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/HotSubjectTagFormDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2021/7/16 10:14
*/
@Data
public class HotSubjectTagFormDTO implements Serializable {
private static final long serialVersionUID = -5526800827207175876L;
private String customerId;
private String orgId;
private String pids;
}

19
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/PreviewFormDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2021/7/16 9:41
*/
@Data
public class PreviewFormDTO implements Serializable {
private static final long serialVersionUID = -3764759458780976123L;
private List<String> tagIdList;
private Integer pageSize;
private Integer pageNo;
}

19
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/PreviewResultDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2021/7/16 14:26
*/
@Data
public class PreviewResultDTO implements Serializable {
private static final long serialVersionUID = 4801322472642418941L;
private String specialSubjectId;
private String tagName;
private List<ArticleListResultDTO> articleList;
}

31
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/SpecialSubjectController.java

@ -21,10 +21,10 @@ import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.AddSpecialSubjectFormDTO;
import com.epmet.dto.form.DelSpecialSubjectFormDTO;
import com.epmet.dto.form.QuerySpecialSubFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.AddSpecialSubjectResultDTO;
import com.epmet.dto.result.PreviewResultDTO;
import com.epmet.dto.result.TagInfoResultDTO;
import com.epmet.dto.result.WorkSpecialSubjectResultDTO;
import com.epmet.service.SpecialSubjectService;
import org.springframework.beans.factory.annotation.Autowired;
@ -93,4 +93,29 @@ public class SpecialSubjectController {
ValidatorUtils.validateEntity(formDTO, QuerySpecialSubFormDTO.AddUserInternalGroup.class);
return new Result<List<WorkSpecialSubjectResultDTO>>().ok(specialSubjectService.queryExistedList(formDTO));
}
/**
* 热门标签列表
* @author zhaoqifeng
* @date 2021/7/15 15:36
* @param tokenDto
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dto.result.TagInfoResultDTO>>
*/
@PostMapping("hot-subject-taglist")
public Result<List<TagInfoResultDTO>> hotSubjectTagList(@LoginUser TokenDto tokenDto, @RequestBody HotSubjectTagFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result<List<TagInfoResultDTO>>().ok(specialSubjectService.hotSubjectTagList(formDTO));
}
/**
* 效果预览
* @author zhaoqifeng
* @date 2021/7/16 15:54
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dto.result.PreviewResultDTO>>
*/
@PostMapping("preview")
public Result<List<PreviewResultDTO>> preview(@RequestBody PreviewFormDTO formDTO) {
return new Result<List<PreviewResultDTO>>().ok(specialSubjectService.preview(formDTO));
}
}

2
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java

@ -131,6 +131,8 @@ public interface ArticleDao extends BaseDao<ArticleEntity> {
**/
List<ArticleListResultDTO> selectArticleList(@Param("gridId") String gridId, @Param("tagIdList") List<String> tagIdList);
List<ArticleListResultDTO> selectArticleListByTag(@Param("tagId") String tagId, @Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize);
/**
* @param gridId
* @param articleId

3
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/SpecialSubjectDao.java

@ -37,4 +37,7 @@ public interface SpecialSubjectDao extends BaseDao<SpecialSubjectEntity> {
int delSpecialSubject(@Param("id") String id, @Param("userId") String userId);
List<SpecialSubjectDTO> queryExistedList(@Param("orgId") String orgId,@Param("notList")List<String> notList);
SpecialSubjectEntity getInfo(@Param("tagId") String tagId);
}

2
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/SpecialSubjectEntity.java

@ -44,7 +44,7 @@ public class SpecialSubjectEntity extends BaseEpmetEntity {
* 标签id
*/
private String tagId;
private String tagName;
/**
* 新增此专题的用户id
*/

11
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java

@ -232,4 +232,15 @@ public interface ArticleService extends BaseService<ArticleEntity> {
* @date 2021/7/15 5:22 下午
*/
List<SubjectListResultDTO> subjectList(SubjectListFormDTO formDTO);
/**
* 根据tag查找文章列表
* @author zhaoqifeng
* @date 2021/7/16 14:50
* @param tagId
* @param pageNo
* @param pageSize
* @return java.util.List<com.epmet.dto.result.ArticleListResultDTO>
*/
List<ArticleListResultDTO> getArticleListByTag(String tagId, Integer pageNo, Integer pageSize);
}

88
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/SpecialSubjectService.java

@ -18,14 +18,17 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.form.AddSpecialSubjectFormDTO;
import com.epmet.dto.form.DelSpecialSubjectFormDTO;
import com.epmet.dto.form.QuerySpecialSubFormDTO;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.SpecialSubjectDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.PreviewResultDTO;
import com.epmet.dto.result.TagInfoResultDTO;
import com.epmet.dto.result.AddSpecialSubjectResultDTO;
import com.epmet.dto.result.WorkSpecialSubjectResultDTO;
import com.epmet.entity.SpecialSubjectEntity;
import java.util.List;
import java.util.Map;
/**
* 专题表
@ -34,6 +37,76 @@ import java.util.List;
* @since v1.0.0 2021-07-15
*/
public interface SpecialSubjectService extends BaseService<SpecialSubjectEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<SpecialSubjectDTO>
* @author generator
* @date 2021-07-15
*/
PageData<SpecialSubjectDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<SpecialSubjectDTO>
* @author generator
* @date 2021-07-15
*/
List<SpecialSubjectDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return SpecialSubjectDTO
* @author generator
* @date 2021-07-15
*/
SpecialSubjectDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2021-07-15
*/
void save(SpecialSubjectDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2021-07-15
*/
void update(SpecialSubjectDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2021-07-15
*/
void delete(String[] ids);
/**
* 热门标签列表
* @author zhaoqifeng
* @date 2021/7/15 15:35
* @param formDTO
* @return java.util.List<com.epmet.dto.result.TagInfoResultDTO>
*/
List<TagInfoResultDTO> hotSubjectTagList(HotSubjectTagFormDTO formDTO);
/**
* 添加专题
*
@ -63,4 +136,13 @@ public interface SpecialSubjectService extends BaseService<SpecialSubjectEntity>
* @date 2021-07-15
*/
List<WorkSpecialSubjectResultDTO> queryExistedList(QuerySpecialSubFormDTO formDTO);
/**
* 效果预览
* @author zhaoqifeng
* @date 2021/7/16 14:28
* @param formDTO
* @return java.util.List<com.epmet.dto.result.PreviewResultDTO>
*/
List<PreviewResultDTO> preview(PreviewFormDTO formDTO);
}

15
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java

@ -1419,4 +1419,19 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
}
return new ArrayList<>();
}
/**
* 根据tag查找文章列表
*
* @param tagId
* @param pageNo
* @param pageSize
* @return java.util.List<com.epmet.dto.result.ArticleListResultDTO>
* @author zhaoqifeng
* @date 2021/7/16 14:47
*/
@Override
public List<ArticleListResultDTO> getArticleListByTag(String tagId, Integer pageNo, Integer pageSize) {
return baseDao.selectArticleListByTag(tagId, pageNo, pageSize);
}
}

128
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/SpecialSubjectServiceImpl.java

@ -17,36 +17,43 @@
package com.epmet.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.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.SpecialSubjectDao;
import com.epmet.dto.SpecialSubjectDTO;
import com.epmet.dto.TagCustomerDTO;
import com.epmet.dto.form.AddSpecialSubjectFormDTO;
import com.epmet.dto.form.DelSpecialSubjectFormDTO;
import com.epmet.dto.form.QuerySpecialSubFormDTO;
import com.epmet.dto.form.StaffInfoFromDTO;
import com.epmet.dto.result.AddSpecialSubjectResultDTO;
import com.epmet.dto.result.MineResultDTO;
import com.epmet.dto.result.WorkSpecialSubjectResultDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.SpecialSubjectEntity;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.redis.TagRedis;
import com.epmet.service.ArticleService;
import com.epmet.service.SpecialSubjectService;
import com.epmet.service.TagCustomerService;
import lombok.extern.slf4j.Slf4j;
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 javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 专题表
@ -59,8 +66,65 @@ import java.util.stream.Collectors;
public class SpecialSubjectServiceImpl extends BaseServiceImpl<SpecialSubjectDao, SpecialSubjectEntity> implements SpecialSubjectService {
@Autowired
private TagCustomerService tagCustomerService;
@Resource
private TagRedis tagRedis;
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Resource
private ArticleService articleService;
@Override
public PageData<SpecialSubjectDTO> page(Map<String, Object> params) {
IPage<SpecialSubjectEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, SpecialSubjectDTO.class);
}
@Override
public List<SpecialSubjectDTO> list(Map<String, Object> params) {
List<SpecialSubjectEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, SpecialSubjectDTO.class);
}
private QueryWrapper<SpecialSubjectEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<SpecialSubjectEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public SpecialSubjectDTO get(String id) {
SpecialSubjectEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, SpecialSubjectDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(SpecialSubjectDTO dto) {
SpecialSubjectEntity entity = ConvertUtils.sourceToTarget(dto, SpecialSubjectEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(SpecialSubjectDTO dto) {
SpecialSubjectEntity entity = ConvertUtils.sourceToTarget(dto, SpecialSubjectEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* 添加专题
@ -178,4 +242,54 @@ public class SpecialSubjectServiceImpl extends BaseServiceImpl<SpecialSubjectDao
}
return resultDTOList;
}
/**
* 热门标签列表
*
* @param formDTO
* @return java.util.List<com.epmet.dto.result.TagInfoResultDTO>
* @author zhaoqifeng
* @date 2021/7/15 15:35
*/
@Override
public List<TagInfoResultDTO> hotSubjectTagList(HotSubjectTagFormDTO formDTO) {
List<TagInfoResultDTO> list = tagRedis.zRevRange(formDTO.getCustomerId());
List<String> orgIds = Stream.of(formDTO.getPids().split(StrConstant.COLON)).collect(Collectors.toList());
orgIds.add(formDTO.getOrgId());
LambdaQueryWrapper<SpecialSubjectEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SpecialSubjectEntity :: getCustomerId, formDTO.getCustomerId());
wrapper.eq(SpecialSubjectEntity :: getDelFlag, NumConstant.ZERO_STR);
wrapper.in(SpecialSubjectEntity :: getAddOrgId, orgIds);
List<SpecialSubjectEntity> specialSubjectList = baseDao.selectList(wrapper);
if (CollectionUtils.isNotEmpty(specialSubjectList)) {
List<String> tags = specialSubjectList.stream().map(SpecialSubjectEntity :: getTagId).distinct().collect(Collectors.toList());
list = list.stream().filter(item -> !tags.contains(item.getTagId())).collect(Collectors.toList());
}
return list;
}
/**
* 效果预览
*
* @param formDTO
* @return java.util.List<com.epmet.dto.result.PreviewResultDTO>
* @author zhaoqifeng
* @date 2021/7/16 14:28
*/
@Override
public List<PreviewResultDTO> preview(PreviewFormDTO formDTO) {
List<PreviewResultDTO> result = new ArrayList<>();
formDTO.getTagIdList().forEach(tagId -> {
PreviewResultDTO previewResultDTO = new PreviewResultDTO();
SpecialSubjectEntity subjectEntity = baseDao.getInfo(tagId);
previewResultDTO.setSpecialSubjectId(subjectEntity.getId());
previewResultDTO.setTagName(subjectEntity.getTagName());
previewResultDTO.setArticleList(articleService.getArticleListByTag(tagId, formDTO.getPageNo(), formDTO.getPageSize()));
result.add(previewResultDTO);
});
return result;
}
}

29
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml

@ -388,5 +388,34 @@
#{pid}
</foreach>
</select>
<select id="selectArticleListByTag" resultType="com.epmet.dto.result.ArticleListResultDTO">
SELECT
art.ID AS articleId,
art.TITLE AS articleTitle,
art.PUBLISHER_NAME AS publishName,
art.PUBLISH_DATE AS publishDate,
IFNULL(art.PREVIEW_CONTENT,'') AS articleContent,
IFNULL(art.TAGS,'') AS tagName
FROM
ARTICLE art
INNER JOIN ARTICLE_PUBLISH_RANGE prange
ON art.ID = prange.ARTICLE_ID
AND
prange.DEL_FLAG = '0'
AND
prange.PUBLISH_STATUS = 'published'
WHERE
art.DEL_FLAG = '0'
AND art.STATUS_FLAG = 'published'
AND EXISTS(
SELECT 1
FROM ARTICLE_TAGS
WHERE DEL_FLAG = '0'
AND ARTICLE_ID = art.ID
AND TAG_ID=#{tagId}
)
ORDER BY art.PUBLISH_DATE DESC , art.CREATED_TIME DESC
LIMIT #{pageNo}, #{pageSize}
</select>
</mapper>

11
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/SpecialSubjectDao.xml

@ -27,4 +27,15 @@
</if>
order by ss.CREATED_TIME desc
</select>
<select id="getInfo" resultType="com.epmet.entity.SpecialSubjectEntity">
SELECT
ss.id,
TAG_NAME
FROM
special_subject ss
INNER JOIN tag_customer ts ON ss.tag_id = ts.id
WHERE
ss.del_flag = '0'
AND ss.tag_id = #{tagId}
</select>
</mapper>
Loading…
Cancel
Save