Browse Source

居民端已发布列表页的标签

dev_shibei_match
zxc 5 years ago
parent
commit
0a2ed77683
  1. 31
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/feign/GovVoiceFeignClient.java
  2. 23
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/feign/fallback/GovVoiceFeignClientFallBack.java
  3. 30
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java
  4. 5
      epmet-module/gov-voice/gov-voice-server/pom.xml
  5. 5
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/constant/TagConstant.java
  6. 7
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/TagController.java
  7. 8
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java
  8. 27
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java
  9. 11
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/TagService.java
  10. 3
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  11. 28
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/TagServiceImpl.java
  12. 12
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml
  13. 31
      epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/form/ResiTagListFormDto.java
  14. 5
      epmet-module/resi-voice/resi-voice-server/pom.xml
  15. 25
      epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java
  16. 21
      epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/ArticleService.java
  17. 34
      epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java

31
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/feign/GovVoiceFeignClient.java

@ -0,0 +1,31 @@
package com.epmet.dto.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.feign.fallback.GovVoiceFeignClientFallBack;
import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.TagInfoResultDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* @Author zxc
* @CreateTime 2020/6/2 16:05
* , url = "localhost:8105"
*/
@FeignClient(name = ServiceConstant.GOV_VOICE_SERVER, fallback = GovVoiceFeignClientFallBack.class, url = "localhost:8105")
public interface GovVoiceFeignClient {
/**
* @Description 已发布列表页的标签居民端
* @param formDto
* @author zxc
*/
@PostMapping("/gov/voice/tag/resitaglist")
Result<List<TagInfoResultDto>> resiTagList(@RequestBody ResiTagListFormDto formDto);
}

23
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/feign/fallback/GovVoiceFeignClientFallBack.java

@ -0,0 +1,23 @@
package com.epmet.dto.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.feign.GovVoiceFeignClient;
import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.TagInfoResultDto;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Author zxc
* @CreateTime 2020/6/2 16:07
*/
@Component
public class GovVoiceFeignClientFallBack implements GovVoiceFeignClient {
@Override
public Result<List<TagInfoResultDto>> resiTagList(ResiTagListFormDto formDto) {
return ModuleUtils.feignConError(ServiceConstant.GOV_VOICE_SERVER, "resiTagList", formDto);
}
}

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

@ -0,0 +1,30 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/2 15:50
*/
@Data
public class ResiTagListFormDto implements Serializable {
private static final long serialVersionUID = 4337657473061285656L;
/**
* 网格id
*/
private String gridId;
/**
* 用户id
*/
private String customerId;
/**
* 用户id
*/
private String userId;
}

5
epmet-module/gov-voice/gov-voice-server/pom.xml

@ -24,6 +24,11 @@
<artifactId>epmet-user-client</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>resi-voice-client</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-commons-tools</artifactId>

5
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/constant/TagConstant.java

@ -25,6 +25,11 @@ public interface TagConstant {
*/
String GOV_RETAG_KEY = "epmet:customer:article:retag:";
/**
* 网格热度标签 key的前缀 zset
*/
String GRID_TAG_KEY = "epmet:grid:articletag:";
/**
* 冒号
*/

7
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/TagController.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.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.TagInfoResultDto;
import com.epmet.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
@ -20,7 +21,7 @@ public class TagController {
private TagService tagService;
/**
* @Description 已发布列表页的标签
* @Description 已发布列表页的标签政府端
* @param tokenDto
* @author zxc
*/
@ -29,5 +30,9 @@ public class TagController {
return new Result<List<TagInfoResultDto>>().ok(tagService.tagList(tokenDto));
}
@PostMapping("resitaglist")
public Result<List<TagInfoResultDto>> resiTagList(@LoginUser ResiTagListFormDto formDto){
return new Result<List<TagInfoResultDto>>().ok(tagService.resiTagList(formDto));
}
}

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

@ -18,6 +18,7 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.entity.ArticleEntity;
import org.apache.ibatis.annotations.Mapper;
@ -30,4 +31,11 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ArticleDao extends BaseDao<ArticleEntity> {
/**
* @Description
* @param formDto
* @author zxc
*/
Integer checkPublishArticle(ResiTagListFormDto formDto);
}

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

@ -48,6 +48,11 @@ public class TagRedis {
return null;
}
/**
* @Description 获取标签政府端按使用次数倒叙
* @param key == customerId
* @author zxc
*/
public List<TagInfoResultDto> zRevRange(String key){
long start = 0;
long end = -1;
@ -65,4 +70,26 @@ public class TagRedis {
return result;
}
/**
* @Description 获取标签居民端
* @param key == gridId
* @author zxc
*/
public List<TagInfoResultDto> zGridRevRange(String key){
long start = 0;
long end = -1;
String tagKey = TagConstant.GRID_TAG_KEY+key;
Set<Object> objects = redisUtils.zRevRange(tagKey, start, end);
if (objects.size()== NumConstant.ZERO){
return new ArrayList<>();
}
List<TagInfoResultDto> result = new ArrayList<TagInfoResultDto>();
ObjectMapper objectMapper = new ObjectMapper();
for (Object object : objects) {
TagInfoResultDto tagInfoResultDto = objectMapper.convertValue(object, TagInfoResultDto.class);
result.add(tagInfoResultDto);
}
return result;
}
}

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

@ -1,6 +1,8 @@
package com.epmet.service;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.TagInfoResultDto;
import java.util.List;
@ -8,10 +10,17 @@ import java.util.List;
public interface TagService {
/**
* @Description 已发布列表页的标签
* @Description 已发布列表页的标签政府端
* @param tokenDto
* @author zxc
*/
List<TagInfoResultDto> tagList(TokenDto tokenDto);
/**
* @Description 已发布列表页的标签居民端
* @param formDto
* @author zxc
*/
List<TagInfoResultDto> resiTagList( ResiTagListFormDto formDto);
}

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

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

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

@ -1,6 +1,9 @@
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.ResiTagListFormDto;
import com.epmet.dto.form.TagCustomerFormDTO;
import com.epmet.dto.result.TagCustomerResultDTO;
import com.epmet.dto.result.TagInfoResultDto;
@ -21,21 +24,32 @@ public class TagServiceImpl implements TagService {
private TagRedis tagRedis;
@Autowired
private EpmetUserFeignClient epmetUserFeignClient;
@Autowired
private ArticleDao articleDao;
/**
* @Description 已发布列表页的标签
* @Description 已发布列表页的标签政府端
* @param tokenDto
* @author zxc
*/
@Override
public List<TagInfoResultDto> tagList(TokenDto tokenDto) {
TagCustomerFormDTO formDTO = new TagCustomerFormDTO();
formDTO.setUserId(tokenDto.getUserId());
TagCustomerResultDTO data = epmetUserFeignClient.getCustomerIdByUserId(formDTO).getData();
if (StringUtils.isBlank(data.getCustomerId())){
String customerId = tokenDto.getCustomerId();
List<TagInfoResultDto> resultDtos = tagRedis.zRevRange(customerId);
return resultDtos;
}
/**
* @Description 已发布列表页的标签居民端
* @param formDto
* @author zxc
*/
@Override
public List<TagInfoResultDto> resiTagList(ResiTagListFormDto formDto) {
Integer articleCounts = articleDao.checkPublishArticle(formDto);
if (articleCounts== NumConstant.ZERO){
return new ArrayList<>();
}
List<TagInfoResultDto> resultDtos = tagRedis.zRevRange(data.getCustomerId());
return resultDtos;
return tagRedis.zGridRevRange(formDto.getGridId());
}
}

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

@ -3,4 +3,16 @@
<mapper namespace="com.epmet.dao.ArticleDao">
<select id="checkPublishArticle" resultType="integer" parameterType="com.epmet.dto.form.ResiTagListFormDto">
SELECT
COUNT(*) AS articleCounts
FROM
article
WHERE
del_flag = 0
AND grid_id = #{gridId}
AND customer_id = #{customerId}
AND created_by = #{userId}
</select>
</mapper>

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

@ -0,0 +1,31 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/2 15:50
*/
@Data
public class ResiTagListFormDto implements Serializable {
private static final long serialVersionUID = -794399801200532922L;
/**
* 网格id
*/
@NotBlank(message = "网格id不能为空")
private String gridId;
/**
* 客户id
*/
private String customerId;
/**
* 用户id
*/
private String userId;
}

5
epmet-module/resi-voice/resi-voice-server/pom.xml

@ -19,6 +19,11 @@
<artifactId>resi-voice-client</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>gov-voice-client</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-commons-tools</artifactId>

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

@ -1,9 +1,34 @@
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.ResiTagListFormDto;
import com.epmet.dto.result.TagInfoResultDto;
import com.epmet.service.ArticleService;
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;
import java.util.List;
@RestController
@RequestMapping("article")
public class ArticleController {
@Autowired
private ArticleService articleService;
/**
* @Description 首页标签及更多居民端
* @param formDto
* @author zxc
*/
@PostMapping("taglist")
public Result<List<TagInfoResultDto>> resiTagList(@LoginUser TokenDto tokenDto, @RequestBody ResiTagListFormDto formDto){
return new Result<List<TagInfoResultDto>>().ok(articleService.resiTagList(tokenDto,formDto));
}
}

21
epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/ArticleService.java

@ -0,0 +1,21 @@
package com.epmet.service;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.TagInfoResultDto;
import java.util.List;
/**
* @Author zxc
* @CreateTime 2020/6/2 15:59
*/
public interface ArticleService {
/**
* @Description 首页标签及更多居民端
* @param formDto
* @author zxc
*/
List<TagInfoResultDto> resiTagList(TokenDto tokenDto, ResiTagListFormDto formDto);
}

34
epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java

@ -0,0 +1,34 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.feign.GovVoiceFeignClient;
import com.epmet.dto.form.ResiTagListFormDto;
import com.epmet.dto.result.TagInfoResultDto;
import com.epmet.service.ArticleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Author zxc
* @CreateTime 2020/6/2 16:00
*/
@Service
public class ArticleServiceImpl implements ArticleService {
@Autowired
private GovVoiceFeignClient govVoiceFeignClient;
/**
* @Description 首页标签及更多居民端
* @param formDto
* @author zxc
*/
@Override
public List<TagInfoResultDto> resiTagList(TokenDto tokenDto, ResiTagListFormDto formDto) {
formDto.setCustomerId(tokenDto.getCustomerId());
formDto.setUserId(tokenDto.getUserId());
return govVoiceFeignClient.resiTagList(formDto).getData();
}
}
Loading…
Cancel
Save