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) { public Set<Object> zRevRange(String key, long start, long end) {
return redisTemplate.opsForZSet().reverseRange(key, start, 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; package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
@ -13,9 +14,14 @@ import java.io.Serializable;
public class ResiTagListFormDto implements Serializable { public class ResiTagListFormDto implements Serializable {
private static final long serialVersionUID = 4337657473061285656L; private static final long serialVersionUID = 4337657473061285656L;
public interface ResiTagListForm{}
public interface ResiTagListFormWeb extends CustomerClientShowGroup{}
/** /**
* 网格id * 网格id
*/ */
@NotBlank(message = "网格id不能为空",groups = {ResiTagListForm.class,ResiTagListFormWeb.class})
private String gridId; 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.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;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.CorrelationTagListFormDto;
import com.epmet.dto.form.ResiTagListFormDto; import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.CorrelationTagListResultDto;
import com.epmet.dto.result.TagInfoResultDto; import com.epmet.dto.result.TagInfoResultDto;
import com.epmet.service.TagService; import com.epmet.service.TagService;
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.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;
@ -27,12 +31,30 @@ public class TagController {
*/ */
@PostMapping("taglist") @PostMapping("taglist")
public Result<List<TagInfoResultDto>> tagList(@LoginUser TokenDto tokenDto){ public Result<List<TagInfoResultDto>> tagList(@LoginUser TokenDto tokenDto){
ValidatorUtils.validateEntity(tokenDto);
return new Result<List<TagInfoResultDto>>().ok(tagService.tagList(tokenDto)); return new Result<List<TagInfoResultDto>>().ok(tagService.tagList(tokenDto));
} }
/**
* @Description 已发布列表页的标签居民端
* @param formDto
* @author zxc
*/
@PostMapping("resitaglist") @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)); 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.constant.NumConstant;
import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.constant.TagConstant; 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.epmet.dto.result.TagInfoResultDto;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -44,9 +47,34 @@ public class TagRedis {
} }
public String get(String id){ public List<CorrelationTagListResultDto> get(String customerId, CorrelationTagListFormDto formDto){
return null; 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 获取标签政府端按使用次数倒叙 * @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.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.form.CorrelationTagListFormDto;
import com.epmet.dto.form.ResiTagListFormDto; import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.CorrelationTagListResultDto;
import com.epmet.dto.result.TagInfoResultDto; import com.epmet.dto.result.TagInfoResultDto;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
@ -23,4 +26,12 @@ public interface TagService {
*/ */
List<TagInfoResultDto> resiTagList( ResiTagListFormDto formDto); 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; private ArticleRedis articleRedis;
@Autowired @Autowired
private GovOrgSelfFeignClient govOrgSelfFeignClient; private GovOrgSelfFeignClient govOrgSelfFeignClient;
@Autowired
private ArticleRedis articleRedis;
@Autowired
private GovOrgSelfFeignClient govOrgSelfFeignClient;
private final Log logger = LogFactory.getLog(getClass());
@Autowired @Autowired
private DraftDao draftDao; private DraftDao draftDao;
@Autowired @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.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dao.ArticleDao; import com.epmet.dao.ArticleDao;
import com.epmet.dto.form.CorrelationTagListFormDto;
import com.epmet.dto.form.ResiTagListFormDto; import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.form.TagCustomerFormDTO; import com.epmet.dto.result.CorrelationTagListResultDto;
import com.epmet.dto.result.TagCustomerResultDTO;
import com.epmet.dto.result.TagInfoResultDto; import com.epmet.dto.result.TagInfoResultDto;
import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.redis.TagRedis; import com.epmet.redis.TagRedis;
import com.epmet.service.TagService; import com.epmet.service.TagService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -46,10 +45,23 @@ public class TagServiceImpl implements TagService {
*/ */
@Override @Override
public List<TagInfoResultDto> resiTagList(ResiTagListFormDto formDto) { public List<TagInfoResultDto> resiTagList(ResiTagListFormDto formDto) {
//校验 在本网格是否发布过文章
Integer articleCounts = articleDao.checkPublishArticle(formDto); Integer articleCounts = articleDao.checkPublishArticle(formDto);
if (articleCounts== NumConstant.ZERO){ if (articleCounts== NumConstant.ZERO){
return new ArrayList<>(); return new ArrayList<>();
} }
return tagRedis.zGridRevRange(formDto.getGridId()); 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; package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
@ -13,10 +14,13 @@ import java.io.Serializable;
public class ResiTagListFormDto implements Serializable { public class ResiTagListFormDto implements Serializable {
private static final long serialVersionUID = -794399801200532922L; private static final long serialVersionUID = -794399801200532922L;
public interface ResiTagList{}
public interface ResiTagListWeb extends CustomerClientShowGroup {}
/** /**
* 网格id * 网格id
*/ */
@NotBlank(message = "网格id不能为空") @NotBlank(message = "网格id不能为空",groups = {ResiTagList.class,ResiTagListWeb.class})
private String gridId; 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.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;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.ResiTagListFormDto; import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.TagInfoResultDto; import com.epmet.dto.result.TagInfoResultDto;
import com.epmet.service.ArticleService; import com.epmet.service.ArticleService;
@ -28,6 +29,7 @@ public class ArticleController {
*/ */
@PostMapping("taglist") @PostMapping("taglist")
public Result<List<TagInfoResultDto>> resiTagList(@LoginUser TokenDto tokenDto, @RequestBody ResiTagListFormDto formDto){ 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)); return new Result<List<TagInfoResultDto>>().ok(articleService.resiTagList(tokenDto,formDto));
} }

Loading…
Cancel
Save