From 09972733d242ecc12245ff5aad8c08de3de462f1 Mon Sep 17 00:00:00 2001 From: zxc <954985706@qq.com> Date: Wed, 3 Jun 2020 11:26:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=BF=E5=BA=9C=E7=AB=AF=E5=B7=B2=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E5=88=97=E8=A1=A8=E9=A1=B5-=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=85=B3=E8=81=94=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/redis/RedisUtils.java | 14 ++++++++ .../dto/form/CorrelationTagListFormDto.java | 23 +++++++++++++ .../epmet/dto/form/ResiTagListFormDto.java | 6 ++++ .../result/CorrelationTagListResultDto.java | 27 ++++++++++++++++ .../com/epmet/controller/TagController.java | 24 +++++++++++++- .../main/java/com/epmet/redis/TagRedis.java | 32 +++++++++++++++++-- .../java/com/epmet/service/TagService.java | 11 +++++++ .../service/impl/ArticleServiceImpl.java | 6 ---- .../epmet/service/impl/TagServiceImpl.java | 18 +++++++++-- .../epmet/dto/form/ResiTagListFormDto.java | 6 +++- .../epmet/controller/ArticleController.java | 2 ++ 11 files changed, 156 insertions(+), 13 deletions(-) create mode 100644 epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CorrelationTagListFormDto.java create mode 100644 epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/CorrelationTagListResultDto.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java index c51a4458ac..e8cec08991 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java @@ -274,4 +274,18 @@ public class RedisUtils { public Set zRevRange(String key, long start, long end) { return redisTemplate.opsForZSet().reverseRange(key, start, end); } + + /** + * @Description 获取key集合与多个集合的并集 + * @param key + * @param otherKeys + * @author zxc + */ + public Set sUnion(String key, Collection otherKeys) { + return redisTemplate.opsForSet().union(key, otherKeys); + } + + public Set sMembers(String key){ + return redisTemplate.opsForSet().members(key); + } } diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CorrelationTagListFormDto.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CorrelationTagListFormDto.java new file mode 100644 index 0000000000..7e8a638a28 --- /dev/null +++ b/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 tagIdList; + +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java index b63fa61a8f..6c31e69e71 100644 --- a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java +++ b/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; /** diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/CorrelationTagListResultDto.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/CorrelationTagListResultDto.java new file mode 100644 index 0000000000..51307547c7 --- /dev/null +++ b/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; +} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/TagController.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/TagController.java index b7e0a0b73f..d672d4f7d5 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/TagController.java +++ b/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> tagList(@LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(tokenDto); return new Result>().ok(tagService.tagList(tokenDto)); } + /** + * @Description 已发布列表页的标签——居民端 + * @param formDto + * @author zxc + */ @PostMapping("resitaglist") - public Result> resiTagList(@LoginUser ResiTagListFormDto formDto){ + public Result> resiTagList(@RequestBody ResiTagListFormDto formDto){ + ValidatorUtils.validateEntity(formDto, ResiTagListFormDto.ResiTagListForm.class, ResiTagListFormDto.ResiTagListFormWeb.class); return new Result>().ok(tagService.resiTagList(formDto)); } + /** + * @Description 已发布列表页-获取关联标签——政府端 + * @param tokenDto + * @param formDto + * @author zxc + */ + @PostMapping("correlationtaglist") + public Result> correlationTagList(@LoginUser TokenDto tokenDto, @RequestBody CorrelationTagListFormDto formDto){ + return new Result>().ok(tagService.correlationTagList(tokenDto,formDto)); + } + } diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java index 143a86df45..5d16236d83 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java +++ b/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,10 +47,35 @@ public class TagRedis { } - public String get(String id){ - return null; + public List get(String customerId, CorrelationTagListFormDto formDto){ + List tagIdList = formDto.getTagIdList(); + Set objects ; + Collection 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 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 获取标签(政府端),按使用次数倒叙 * @param key == customerId diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/TagService.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/TagService.java index 10f325e9d3..b0c4bcf534 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/TagService.java +++ b/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 resiTagList( ResiTagListFormDto formDto); + /** + * @Description 已发布列表页-获取关联标签——政府端 + * @param tokenDto + * @param formDto + * @author zxc + */ + List correlationTagList(TokenDto tokenDto, CorrelationTagListFormDto formDto); + } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java index 5673e523c7..ae8f83582d 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java +++ b/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 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 correlationTagList(TokenDto tokenDto, CorrelationTagListFormDto formDto) { + String customerId = tokenDto.getCustomerId(); + return tagRedis.get(customerId,formDto); + } } \ No newline at end of file diff --git a/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java b/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java index 1c7de733b7..6a084c31b3 100644 --- a/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java +++ b/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; /** diff --git a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java b/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java index 68cd236d45..3fa602cfea 100644 --- a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java +++ b/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> resiTagList(@LoginUser TokenDto tokenDto, @RequestBody ResiTagListFormDto formDto){ + ValidatorUtils.validateEntity(formDto, ResiTagListFormDto.ResiTagList.class, ResiTagListFormDto.ResiTagListWeb.class); return new Result>().ok(articleService.resiTagList(tokenDto,formDto)); }