Browse Source

专题管理-热门标签

dev_shibei_match
zhaoqifeng 4 years ago
parent
commit
ed65e9d402
  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-server/src/main/java/com/epmet/controller/SpecialSubjectController.java
  4. 74
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/SpecialSubjectService.java
  5. 92
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/SpecialSubjectServiceImpl.java

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-server/src/main/java/com/epmet/controller/SpecialSubjectController.java

@ -17,6 +17,11 @@
package com.epmet.controller; package com.epmet.controller;
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.dto.form.HotSubjectTagFormDTO;
import com.epmet.dto.result.TagInfoResultDTO;
import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
@ -29,6 +34,7 @@ import com.epmet.dto.result.WorkSpecialSubjectResultDTO;
import com.epmet.service.SpecialSubjectService; import com.epmet.service.SpecialSubjectService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -93,4 +99,17 @@ public class SpecialSubjectController {
ValidatorUtils.validateEntity(formDTO, QuerySpecialSubFormDTO.AddUserInternalGroup.class); ValidatorUtils.validateEntity(formDTO, QuerySpecialSubFormDTO.AddUserInternalGroup.class);
return new Result<List<WorkSpecialSubjectResultDTO>>().ok(specialSubjectService.queryExistedList(formDTO)); 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, HotSubjectTagFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result<List<TagInfoResultDTO>>().ok(specialSubjectService.hotSubjectTagList(formDTO));
}
} }

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

@ -18,6 +18,10 @@
package com.epmet.service; package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.SpecialSubjectDTO;
import com.epmet.dto.form.HotSubjectTagFormDTO;
import com.epmet.dto.result.TagInfoResultDTO;
import com.epmet.dto.form.AddSpecialSubjectFormDTO; import com.epmet.dto.form.AddSpecialSubjectFormDTO;
import com.epmet.dto.form.DelSpecialSubjectFormDTO; import com.epmet.dto.form.DelSpecialSubjectFormDTO;
import com.epmet.dto.form.QuerySpecialSubFormDTO; import com.epmet.dto.form.QuerySpecialSubFormDTO;
@ -34,6 +38,76 @@ import java.util.List;
* @since v1.0.0 2021-07-15 * @since v1.0.0 2021-07-15
*/ */
public interface SpecialSubjectService extends BaseService<SpecialSubjectEntity> { 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 customerId
* @return java.util.List<com.epmet.dto.result.TagInfoResultDTO>
*/
List<TagInfoResultDTO> hotSubjectTagList(HotSubjectTagFormDTO formDTO);
/** /**
* 添加专题 * 添加专题
* *

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

@ -17,7 +17,12 @@
package com.epmet.service.impl; 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.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
@ -26,6 +31,8 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.SpecialSubjectDao; import com.epmet.dao.SpecialSubjectDao;
import com.epmet.dto.SpecialSubjectDTO; import com.epmet.dto.SpecialSubjectDTO;
import com.epmet.dto.form.HotSubjectTagFormDTO;
import com.epmet.dto.result.TagInfoResultDTO;
import com.epmet.dto.TagCustomerDTO; import com.epmet.dto.TagCustomerDTO;
import com.epmet.dto.form.AddSpecialSubjectFormDTO; import com.epmet.dto.form.AddSpecialSubjectFormDTO;
import com.epmet.dto.form.DelSpecialSubjectFormDTO; import com.epmet.dto.form.DelSpecialSubjectFormDTO;
@ -35,18 +42,22 @@ import com.epmet.dto.result.AddSpecialSubjectResultDTO;
import com.epmet.dto.result.MineResultDTO; import com.epmet.dto.result.MineResultDTO;
import com.epmet.dto.result.WorkSpecialSubjectResultDTO; import com.epmet.dto.result.WorkSpecialSubjectResultDTO;
import com.epmet.entity.SpecialSubjectEntity; import com.epmet.entity.SpecialSubjectEntity;
import com.epmet.redis.TagRedis;
import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.service.SpecialSubjectService; import com.epmet.service.SpecialSubjectService;
import org.apache.commons.collections4.CollectionUtils;
import com.epmet.service.TagCustomerService; import com.epmet.service.TagCustomerService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
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 javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* 专题表 * 专题表
@ -59,6 +70,61 @@ import java.util.stream.Collectors;
public class SpecialSubjectServiceImpl extends BaseServiceImpl<SpecialSubjectDao, SpecialSubjectEntity> implements SpecialSubjectService { public class SpecialSubjectServiceImpl extends BaseServiceImpl<SpecialSubjectDao, SpecialSubjectEntity> implements SpecialSubjectService {
@Autowired @Autowired
private TagCustomerService tagCustomerService; private TagCustomerService tagCustomerService;
@Resource
private TagRedis tagRedis;
@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));
}
@Autowired @Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient; private GovOrgOpenFeignClient govOrgOpenFeignClient;
@ -178,4 +244,30 @@ public class SpecialSubjectServiceImpl extends BaseServiceImpl<SpecialSubjectDao
} }
return resultDTOList; 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;
}
} }
Loading…
Cancel
Save