Browse Source

政府端已发布列表页-获取关联标签

dev_shibei_match
zxc 6 years ago
parent
commit
09972733d2
  1. 14
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java
  2. 23
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CorrelationTagListFormDto.java
  3. 6
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java
  4. 27
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/CorrelationTagListResultDto.java
  5. 24
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/TagController.java
  6. 32
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java
  7. 11
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/TagService.java
  8. 6
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  9. 18
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/TagServiceImpl.java
  10. 6
      epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java
  11. 2
      epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java

14
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java

@ -274,4 +274,18 @@ public class RedisUtils {
public Set<Object> zRevRange(String key, long start, long end) {
return redisTemplate.opsForZSet().reverseRange(key, start, end);
}
/**
* @Description 获取key集合与多个集合的并集
* @param key
* @param otherKeys
* @author zxc
*/
public Set<Object> sUnion(String key, Collection<String> otherKeys) {
return redisTemplate.opsForSet().union(key, otherKeys);
}
public Set<Object> sMembers(String key){
return redisTemplate.opsForSet().members(key);
}
}

23
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CorrelationTagListFormDto.java

@ -0,0 +1,23 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* @Author zxc
* @CreateTime 2020/6/3 9:39
*/
@Data
public class CorrelationTagListFormDto implements Serializable {
private static final long serialVersionUID = -1588825995685146967L;
/**
* 标签id集合
*/
private List<String> tagIdList;
}

6
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java

@ -1,5 +1,6 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -13,9 +14,14 @@ import java.io.Serializable;
public class ResiTagListFormDto implements Serializable {
private static final long serialVersionUID = 4337657473061285656L;
public interface ResiTagListForm{}
public interface ResiTagListFormWeb extends CustomerClientShowGroup{}
/**
* 网格id
*/
@NotBlank(message = "网格id不能为空",groups = {ResiTagListForm.class,ResiTagListFormWeb.class})
private String gridId;
/**

27
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/CorrelationTagListResultDto.java

@ -0,0 +1,27 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/3 9:41
*/
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class CorrelationTagListResultDto implements Serializable {
private static final long serialVersionUID = 5536953304816455733L;
/**
* 标签id
*/
private String tagId;
/**
* 标签名称
*/
private String tagName;
}

24
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/TagController.java

@ -3,11 +3,15 @@ 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.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.CorrelationTagListFormDto;
import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.CorrelationTagListResultDto;
import com.epmet.dto.result.TagInfoResultDto;
import com.epmet.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -27,12 +31,30 @@ public class TagController {
*/
@PostMapping("taglist")
public Result<List<TagInfoResultDto>> tagList(@LoginUser TokenDto tokenDto){
ValidatorUtils.validateEntity(tokenDto);
return new Result<List<TagInfoResultDto>>().ok(tagService.tagList(tokenDto));
}
/**
* @Description 已发布列表页的标签居民端
* @param formDto
* @author zxc
*/
@PostMapping("resitaglist")
public Result<List<TagInfoResultDto>> resiTagList(@LoginUser ResiTagListFormDto formDto){
public Result<List<TagInfoResultDto>> resiTagList(@RequestBody ResiTagListFormDto formDto){
ValidatorUtils.validateEntity(formDto, ResiTagListFormDto.ResiTagListForm.class, ResiTagListFormDto.ResiTagListFormWeb.class);
return new Result<List<TagInfoResultDto>>().ok(tagService.resiTagList(formDto));
}
/**
* @Description 已发布列表页-获取关联标签政府端
* @param tokenDto
* @param formDto
* @author zxc
*/
@PostMapping("correlationtaglist")
public Result<List<CorrelationTagListResultDto>> correlationTagList(@LoginUser TokenDto tokenDto, @RequestBody CorrelationTagListFormDto formDto){
return new Result<List<CorrelationTagListResultDto>>().ok(tagService.correlationTagList(tokenDto,formDto));
}
}

32
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java

@ -22,12 +22,15 @@ import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.constant.TagConstant;
import com.epmet.dto.form.CorrelationTagListFormDto;
import com.epmet.dto.result.CorrelationTagListResultDto;
import com.epmet.dto.result.TagInfoResultDto;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
@ -44,9 +47,34 @@ public class TagRedis {
}
public String get(String id){
return null;
public List<CorrelationTagListResultDto> get(String customerId, CorrelationTagListFormDto formDto){
List<String> tagIdList = formDto.getTagIdList();
Set<Object> objects ;
Collection<String> keys = new ArrayList<>();
if (tagIdList.size() > 1){
for (int i = NumConstant.ONE; i < tagIdList.size(); i++) {
String tagId = tagIdList.get(i);
tagId = TagConstant.GOV_RETAG_KEY+customerId+TagConstant.COLON+tagId;
keys.add(tagId);
}
String key = TagConstant.GOV_RETAG_KEY+customerId+TagConstant.COLON+tagIdList.get(0);
objects = redisUtils.sUnion(key, keys);
}else {
String key = TagConstant.GOV_RETAG_KEY+customerId+TagConstant.COLON+tagIdList.get(0);
objects = redisUtils.sMembers(key);
}
List<CorrelationTagListResultDto> resultList = new ArrayList<>();
if (objects.size()==NumConstant.ZERO){
return resultList;
}
ObjectMapper objectMapper = new ObjectMapper();
for (Object object : objects) {
CorrelationTagListResultDto correlationTag = objectMapper.convertValue(object, CorrelationTagListResultDto.class);
resultList.add(correlationTag);
}
return resultList;
}
/**
* @Description 获取标签政府端按使用次数倒叙

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

@ -2,8 +2,11 @@ package com.epmet.service;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.form.CorrelationTagListFormDto;
import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.CorrelationTagListResultDto;
import com.epmet.dto.result.TagInfoResultDto;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@ -23,4 +26,12 @@ public interface TagService {
*/
List<TagInfoResultDto> resiTagList( ResiTagListFormDto formDto);
/**
* @Description 已发布列表页-获取关联标签政府端
* @param tokenDto
* @param formDto
* @author zxc
*/
List<CorrelationTagListResultDto> correlationTagList(TokenDto tokenDto, CorrelationTagListFormDto formDto);
}

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

@ -68,12 +68,6 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
private ArticleRedis articleRedis;
@Autowired
private GovOrgSelfFeignClient govOrgSelfFeignClient;
@Autowired
private ArticleRedis articleRedis;
@Autowired
private GovOrgSelfFeignClient govOrgSelfFeignClient;
private final Log logger = LogFactory.getLog(getClass());
@Autowired
private DraftDao draftDao;
@Autowired

18
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/TagServiceImpl.java

@ -3,14 +3,13 @@ package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dao.ArticleDao;
import com.epmet.dto.form.CorrelationTagListFormDto;
import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.form.TagCustomerFormDTO;
import com.epmet.dto.result.TagCustomerResultDTO;
import com.epmet.dto.result.CorrelationTagListResultDto;
import com.epmet.dto.result.TagInfoResultDto;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.redis.TagRedis;
import com.epmet.service.TagService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -46,10 +45,23 @@ public class TagServiceImpl implements TagService {
*/
@Override
public List<TagInfoResultDto> resiTagList(ResiTagListFormDto formDto) {
//校验 在本网格是否发布过文章
Integer articleCounts = articleDao.checkPublishArticle(formDto);
if (articleCounts== NumConstant.ZERO){
return new ArrayList<>();
}
return tagRedis.zGridRevRange(formDto.getGridId());
}
/**
* @Description 已发布列表页-获取关联标签政府端
* @param tokenDto
* @param formDto
* @author zxc
*/
@Override
public List<CorrelationTagListResultDto> correlationTagList(TokenDto tokenDto, CorrelationTagListFormDto formDto) {
String customerId = tokenDto.getCustomerId();
return tagRedis.get(customerId,formDto);
}
}

6
epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java

@ -1,5 +1,6 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -13,10 +14,13 @@ import java.io.Serializable;
public class ResiTagListFormDto implements Serializable {
private static final long serialVersionUID = -794399801200532922L;
public interface ResiTagList{}
public interface ResiTagListWeb extends CustomerClientShowGroup {}
/**
* 网格id
*/
@NotBlank(message = "网格id不能为空")
@NotBlank(message = "网格id不能为空",groups = {ResiTagList.class,ResiTagListWeb.class})
private String gridId;
/**

2
epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java

@ -3,6 +3,7 @@ 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.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.TagInfoResultDto;
import com.epmet.service.ArticleService;
@ -28,6 +29,7 @@ public class ArticleController {
*/
@PostMapping("taglist")
public Result<List<TagInfoResultDto>> resiTagList(@LoginUser TokenDto tokenDto, @RequestBody ResiTagListFormDto formDto){
ValidatorUtils.validateEntity(formDto, ResiTagListFormDto.ResiTagList.class, ResiTagListFormDto.ResiTagListWeb.class);
return new Result<List<TagInfoResultDto>>().ok(articleService.resiTagList(tokenDto,formDto));
}

Loading…
Cancel
Save