Browse Source

话题、评论相关接口

master
wangchao 5 years ago
parent
commit
fe4394a204
  1. 2
      epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java
  2. 22
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/TopicConstant.java
  3. 30
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/form/ResiQueryCommentFormDTO.java
  4. 44
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/result/ResiCommentResultDTO.java
  5. 4
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiPublishCommentFormDTO.java
  6. 22
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicOperationFormDTO.java
  7. 5
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicPageFormDTO.java
  8. 41
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java
  9. 2
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicInfoResultDTO.java
  10. 47
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java
  11. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java
  12. 108
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
  13. 19
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicAttachmentDao.java
  14. 25
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicCommentDao.java
  15. 45
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java
  16. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicOperationDao.java
  17. 4
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicOperationEntity.java
  18. 28
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicCommentService.java
  19. 64
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  20. 79
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java
  21. 331
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  22. 59
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicAttachmentDao.xml
  23. 62
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicCommentDao.xml
  24. 117
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml
  25. 47
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicOperationDao.xml
  26. 2
      epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java
  27. 6
      epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/UserAccessServiceImpl.java
  28. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitedFormDTO.java
  29. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java
  30. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridVisitedServiceImpl.java
  31. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java

2
epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java

@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.*;
* @dscription
* @date 2020/3/19 9:32
*/
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, path="/epmetuser", fallback = EpmetUserFeignClientFallback.class,url = "http://localhost:8087")
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, path="/epmetuser", fallback = EpmetUserFeignClientFallback.class)
public interface EpmetUserFeignClient {
/**

22
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/TopicConstant.java

@ -31,7 +31,12 @@ public interface TopicConstant {
/**
* 关闭话题
* */
String CLOSED = "CLOSED";
String CLOSED = "closed";
/**
* 屏蔽话题
* */
String HIDDEN = "hidden";
/**
* 本人发布
@ -42,4 +47,19 @@ public interface TopicConstant {
* 他人发布
* */
String PUBLISHED_BY_OTHER = "other";
/**
* 构造queryWrapper 话题Id列名
* */
String TOPIC_ID = "TOPIC_ID";
/**
* 构造queryWrapper 创建日期列名
* */
String CREATED_DATE = "CREATED_DATE";
/**
* 构造queryWrapper 逻辑删除标识列名
* */
String DEL_FLAG = "DEL_FLAG";
}

30
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/form/ResiQueryCommentFormDTO.java

@ -1,10 +1,36 @@
package com.epmet.resi.group.dto.comment.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description
* @ClassName ResiCommentFormDTO
* @ClassName ResiQueryCommentFormDTO
* @Author wangc
* @date 2020.04.01 17:14
*/
public class ResiCommentFormDTO {
@Data
public class ResiQueryCommentFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 组Id
* */
@NotBlank(message = "话题Id不能为空")
private String topicId;
/**
* 请求页码
* */
@Min(1)
private int pageNo;
/**
* 每页多少条数据
* */
private int pageSize = 20;
}

44
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/result/ResiCommentResultDTO.java

@ -1,10 +1,52 @@
package com.epmet.resi.group.dto.comment.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName ResiCommentResultDTO
* @Author wangc
* @date 2020.04.01 17:07
*/
public class ResiCommentResultDTO {
@Data
public class ResiCommentResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 评论Id
* */
private String commentId;
/**
* 评论内容
* */
private String commentContent;
/**
* 评论者头像
* */
private String commentUserHeadPhoto;
/**
* 评论者姓名
* */
private String commentUserName;
/**
* 用户Id 评论者Id
* */
private String userId;
/**
* 评论时间 yyyy-MM-dd HH:mm:ss
* */
private String commentTime;
/**
* 评论状态
* */
private String commentStatus;
}

4
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiPublishCommentFormDTO.java

@ -7,12 +7,12 @@ import java.io.Serializable;
/**
* @Description
* @ClassName ResiCommentFormDTO
* @ClassName ResiPublishCommentFormDTO
* @Author wangc
* @date 2020.03.31 17:32
*/
@Data
public class ResiCommentFormDTO implements Serializable {
public class ResiPublishCommentFormDTO implements Serializable {
private static final long serialVersionUID = 1L;

22
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicOperationFormDTO.java

@ -1,10 +1,30 @@
package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName ResiTopicOperationFormDTO
* @Author wangc
* @date 2020.04.01 15:32
*/
public class ResiTopicOperationFormDTO {
@Data
public class ResiTopicOperationFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 话题Id
*/
private String topicId;
/**
* 屏蔽原因
*/
private String operateReason;
}

5
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicPageFormDTO.java

@ -38,4 +38,9 @@ public class ResiTopicPageFormDTO implements Serializable{
* 搜索时可以带状态的查询也可以不带
* */
private String status;
/**
* 用户Id
* */
private String userId;
}

41
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java

@ -1,10 +1,49 @@
package com.epmet.resi.group.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description
* @ClassName ResiTopicDetailResultDTO
* @Author wangc
* @date 2020.04.01 16:03
*/
public class ResiTopicDetailResultDTO {
@Data
public class ResiTopicDetailResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 话题Id
* */
private String topicId;
/**
* 发布人名称
* */
private String releaseUserName;
/**
* 发布人头像
* */
private String releaseUserHeadPhoto;
/**
* 发布时间 yyyy-MM-dd HH:mm:ss
* */
private String releaseTime;
/**
* 话题内容
* */
private String topicContent;
/**
* 图片访问地址
* */
private List<String> topicImgs;
}

2
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicInfoResultDTO.java

@ -21,7 +21,7 @@ public class ResiTopicInfoResultDTO implements Serializable{
private String topicId;
/**
* 用户Id
* 用户Id 话题发布人
* */
private String userId;

47
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java

@ -1,10 +1,57 @@
package com.epmet.modules.comment.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.modules.topic.service.ResiTopicCommentService;
import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO;
import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO;
import com.epmet.resi.group.dto.topic.form.ResiPublishCommentFormDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Description
* @ClassName ResiCommentController
* @Author wangc
* @date 2020.04.01 18:00
*/
@RequestMapping("comment")
@RestController
public class ResiCommentController {
@Autowired
private ResiTopicCommentService commentService;
/**
* @Description 对话题发表评论
* @Param tokenDto
* @Param ResiPublishCommentFormDTO
* @return Result
* @Author wangc
* @Date 2020.04.01 18:06
**/
@RequestMapping("commenttopic")
public Result commentTopic(@LoginUser TokenDto tokenDto, ResiPublishCommentFormDTO publishCommentFormDTO){
ValidatorUtils.validateEntity(publishCommentFormDTO);
return commentService.commentTopic(tokenDto,publishCommentFormDTO);
}
/**
* @Description 获取某个话题的评论列表
* @Param tokenDto
* @Param ResiQueryCommentFormDTO
* @return Result<List<ResiCommentResultDTO>>
* @Author wangc
* @Date 2020.04.01 23:49
**/
@RequestMapping("getcommentlistoftopic")
public Result<List<ResiCommentResultDTO>> getCommentListOfTopic(@LoginUser TokenDto tokenDto, ResiQueryCommentFormDTO queryCommentFormDTO){
ValidatorUtils.validateEntity(queryCommentFormDTO);
return commentService.getCommentList(tokenDto,queryCommentFormDTO);
}
}

2
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java

@ -18,7 +18,7 @@ import java.util.List;
* @Author yinzuomei
* @Date 2020/3/16 14:48
*/
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallback.class )
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallback.class)
public interface EpmetUserFeignClient {
/**

108
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java

@ -3,11 +3,21 @@ package com.epmet.modules.topic.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.modules.topic.service.ResiTopicService;
import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPublishFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Description
* @ClassName ResiTopicController
@ -19,6 +29,9 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("topic")
public class ResiTopicController {
@Autowired
ResiTopicService topicService;
/**
* @Description 组内成员创建话题(身份校验 + 创建话题 + 增加话题记录)
* @Param TokenDto.class
@ -30,9 +43,102 @@ public class ResiTopicController {
@RequestMapping("createtopic")
public Result createTopic(@LoginUser TokenDto tokenDto, @RequestBody ResiTopicPublishFormDTO topicPublishFormDTO){
ValidatorUtils.validateEntity(topicPublishFormDTO);
return topicService.createTopic(tokenDto,topicPublishFormDTO);
}
/**
* @Description 获取话题详情
* @Param tokenDto
* @Param String
* @return Result<ResiTopicDetailResultDTO>
* @Author wangc
* @Date 2020.04.01 23:48
**/
@RequestMapping("gettopicdetail")
public Result<ResiTopicDetailResultDTO> getTopicDetail(@LoginUser TokenDto tokenDto, @RequestParam("topicId")String topicId ){
return topicService.getTopicDetail(tokenDto,topicId);
}
/**
* @Description 查看历史话题(分页,允许状态筛选)
* @Param tokenDto
* @Param ResiTopicPageFormDTO.class
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc
* @Date 2020.04.01 10:36
**/
@RequestMapping("getpasttopiclist")
public Result<List<ResiTopicInfoResultDTO>> getPastTopicList(@LoginUser TokenDto tokenDto, @RequestBody ResiTopicPageFormDTO topicPageFormDTO){
ValidatorUtils.validateEntity(topicPageFormDTO);
return topicService.getPastTopicList(tokenDto,topicPageFormDTO);
}
/**
* @Description 查看组内最近十条话题
* @Param tokenDto
* @Param groupId
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc
* @Date 2020.04.02 00:01
**/
@RequestMapping("getlatesttentopic")
Result<List<ResiTopicInfoResultDTO>> getLatestTenTopics(TokenDto tokenDto,String groupId){
return topicService.getLatestTenTopics(tokenDto,groupId);
}
/**
* @Description 屏蔽话题
* @Param tokenDto
* @Param ResiTopicHiddenFormDTO.class
* @return Result
* @Author wangc
* @Date 2020.04.01 12:38
**/
@RequestMapping("hidetopic")
Result hideTopic(TokenDto tokenDto,ResiTopicOperationFormDTO hiddenFormDTO){
ValidatorUtils.validateEntity(hiddenFormDTO);
return topicService.hideTopic(tokenDto,hiddenFormDTO);
}
/**
* @Description 屏蔽话题列表查询
* @Param tokenDto
* @Param ResiTopicPageFormDTO.class
* @return List<ResiTopicInfoResultDTO>
* @Author wangc
* @Date 2020.04.01 16:45
**/
@RequestMapping("gethiddentopic")
Result<List<ResiTopicInfoResultDTO>> getHiddenTopic(TokenDto tokenDto,ResiTopicPageFormDTO topicPageFormDTO){
ValidatorUtils.validateEntity(topicPageFormDTO);
return topicService.getHiddenTopics(tokenDto,topicPageFormDTO);
}
return new Result();
/**
* @Description 批量取消屏蔽
* @Param tokenDto
* @Param topicIds
* @return Result
* @Author wangc
* @Date 2020.04.01 14:17
**/
@RequestMapping("cancelhiddentopics")
Result cancelHiddenTopics(TokenDto tokenDto,List<String> topicIds){
return topicService.cancelHiddenTopics(tokenDto,topicIds);
}
/**
* @Description 关闭话题
* @Param tokenDto
* @Param ResiTopicOperationFormDTO.class
* @return Result.class
* @Author wangc
* @Date 2020.04.01 15:37
**/
@RequestMapping("closetopic")
Result closeTopic(TokenDto tokenDto,ResiTopicOperationFormDTO closeFormDTO){
ValidatorUtils.validateEntity(closeFormDTO);
return topicService.closeTopic(tokenDto,closeFormDTO);
}
}

19
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicAttachmentDao.java

@ -33,5 +33,22 @@ import java.util.List;
@Mapper
public interface ResiTopicAttachmentDao extends BaseDao<ResiTopicAttachmentEntity> {
void insertBatch(List<ResiTopicAttachmentEntity> list);
/**
* @Description 批量插入
* @Param
* @return
* @Author wangc
* @Date 2020.04.01 13:39
**/
int insertBatch(List<ResiTopicAttachmentEntity> list);
/**
* @Description 重写Insert方法不需要传CreatedDate UpdatedBy UpdatedDate DelFlag Revision
* @Param attachmentEntity
* @return int 受影响的行数
* @Author wangc
* @Date 2020.04.01 13:40
**/
int insertOne(ResiTopicAttachmentEntity attachmentEntity);
}

25
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicCommentDao.java

@ -19,9 +19,13 @@ package com.epmet.modules.topic.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.topic.entity.ResiTopicCommentEntity;
import com.epmet.modules.comment.entity.ResiTopicCommentEntity;
import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO;
import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 话题评论表
*
@ -30,5 +34,22 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ResiTopicCommentDao extends BaseDao<ResiTopicCommentEntity> {
/**
* @Description 重写Insert方法不需要传CreatedDate UpdatedBy UpdatedDate DelFlag Revision
* @Param commentEntity
* @return int
* @Author wangc
* @Date 2020.04.01 17:40
**/
int insertOne(ResiTopicCommentEntity commentEntity);
/**
* @Description 得到某个话题的评论列表 分页
* @Param ResiQueryCommentFormDTO
* @return Result<List<ResiCommentResultDTO>>
* @Author wangc
* @Date 2020.04.01 17:15
**/
List<ResiCommentResultDTO> getCommentList(ResiQueryCommentFormDTO queryCommentFormDTO);
}

45
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java

@ -20,6 +20,7 @@ package com.epmet.modules.topic.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.topic.entity.ResiTopicEntity;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -36,14 +37,13 @@ import java.util.List;
public interface ResiTopicDao extends BaseDao<ResiTopicEntity> {
/**
* @Description 自定义新增语句
* @Description 重写Insert方法不需要传CreatedDate UpdatedBy UpdatedDate DelFlag Revision
* @Param ResiTopicEntity.class
* @return int
* @Author wangc
* @Date 2020.04.01 09:39
**/
@Override
int insert(ResiTopicEntity resiTopic);
int insertOne(ResiTopicEntity resiTopic);
/**
* @Description 查询该组内最近十条话题信息
@ -52,5 +52,42 @@ public interface ResiTopicDao extends BaseDao<ResiTopicEntity> {
* @Author wangc
* @Date 2020.04.01 09:40
**/
List<ResiTopicInfoResultDTO> getLatestTenTopics(@Param("groupId")String groupId);
List<ResiTopicInfoResultDTO> getLatestTenTopics(@Param("groupId")String groupId,@Param("userId")String userId);
/**
* @Description 查看历史话题(分页,允许状态筛选)
* @Param topicPageFormDTO
* @return List<ResiTopicInfoResultDTO>
* @Author wangc
* @Date 2020.04.01 11:08
**/
List<ResiTopicInfoResultDTO> getPastTopics(ResiTopicPageFormDTO topicPageFormDTO);
/**
* @Description 修改话题
* @Param ResiTopicEntity.class
* @return Result.class
* @Author wangc
* @Date 2020.04.01 13:08
**/
int update(ResiTopicEntity topicEntity);
/**
* @Description 批量取消屏蔽操作
* @Param List<String>
* @Param updatedBy
* @return int
* @Author wangc
* @Date 2020.04.01 15:20
**/
int cancelHiddenOrCloseBatch(@Param("list")List<String> ids,@Param("updatedBy")String updatedBy,@Param("status")String status);
/**
* @Description 批量更新
* @Param List<ResiTopicEntity>
* @return int
* @Author wangc
* @Date 2020.04.01 15:21
**/
int updateBatch(List<ResiTopicEntity> list);
}

11
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicOperationDao.java

@ -30,5 +30,14 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ResiTopicOperationDao extends BaseDao<ResiTopicOperationEntity> {
/**
* @Description 重写Insert方法不需要传CreatedDate UpdatedBy UpdatedDate DelFlag Revision
* @Param topicOperationEntity
* @return int 受影响的行数
* @Author wangc
* @Date 2020.04.01 13:45
**/
int insertOne(ResiTopicOperationEntity topicOperationEntity);
}

4
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicOperationEntity.java

@ -48,4 +48,8 @@ public class ResiTopicOperationEntity extends BaseEpmetEntity {
*/
private String operationType;
/**
* 屏蔽理由非必填
* */
private String operationReason;
}

28
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicCommentService.java

@ -19,8 +19,13 @@ package com.epmet.modules.topic.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.modules.topic.entity.ResiTopicCommentEntity;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.modules.comment.entity.ResiTopicCommentEntity;
import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO;
import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO;
import com.epmet.resi.group.dto.topic.ResiTopicCommentDTO;
import com.epmet.resi.group.dto.topic.form.ResiPublishCommentFormDTO;
import java.util.List;
@ -93,4 +98,25 @@ public interface ResiTopicCommentService extends BaseService<ResiTopicCommentEnt
* @date 2020-03-31
*/
void delete(String[] ids);
/**
* @Description 评论话题
* @Param tokenDto
* @Param resiCommentFormDTO
* @return Result
* @Author wangc
* @Date 2020.03.31 17:36
**/
Result commentTopic(TokenDto tokenDto, ResiPublishCommentFormDTO resiCommentFormDTO);
/**
* @Description 得到某个话题的评论列表 分页
* @Param tokenDto
* @Param ResiQueryCommentFormDTO
* @return Result<List<ResiCommentResultDTO>>
* @Author wangc
* @Date 2020.04.01 17:15
**/
Result<List<ResiCommentResultDTO>> getCommentList(TokenDto tokenDto,ResiQueryCommentFormDTO commentFormDTO);
}

64
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java

@ -23,9 +23,11 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.modules.topic.entity.ResiTopicEntity;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.ResiCommentFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPublishFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
@ -110,16 +112,6 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
**/
Result createTopic(TokenDto tokenDto, ResiTopicPublishFormDTO resiTopicPublishFormDTO);
/**
* @Description 评论话题
* @Param tokenDto
* @Param resiCommentFormDTO
* @return Result
* @Author wangc
* @Date 2020.03.31 17:36
**/
Result commentTopic(TokenDto tokenDto, ResiCommentFormDTO resiCommentFormDTO);
/**
* @Description 查看组内最近十条话题
* @Param tokenDto
@ -139,4 +131,54 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
* @Date 2020.04.01 10:36
**/
Result<List<ResiTopicInfoResultDTO>> getPastTopicList(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO);
/**
* @Description 屏蔽话题
* @Param tokenDto
* @Param ResiTopicHiddenFormDTO.class
* @return Result
* @Author wangc
* @Date 2020.04.01 12:38
**/
Result hideTopic(TokenDto tokenDto,ResiTopicOperationFormDTO hiddenFormDTO);
/**
* @Description 批量取消屏蔽
* @Param tokenDto
* @Param topicIds
* @return Result
* @Author wangc
* @Date 2020.04.01 14:17
**/
Result cancelHiddenTopics(TokenDto tokenDto,List<String> topicIds);
/**
* @Description 关闭话题
* @Param tokenDto
* @Param ResiTopicOperationFormDTO.class
* @return Result.class
* @Author wangc
* @Date 2020.04.01 15:37
**/
Result closeTopic(TokenDto tokenDto,ResiTopicOperationFormDTO closeFormDTO);
/**
* @Description 查看话题详情
* @Param tokenDto
* @Param topicId
* @return ResiTopicDetailResultDTO
* @Author wangc
* @Date 2020.04.01 15:56
**/
Result<ResiTopicDetailResultDTO> getTopicDetail(TokenDto tokenDto, String topicId);
/**
* @Description 屏蔽话题列表查询
* @Param tokenDto
* @Param ResiTopicPageFormDTO.class
* @return List<ResiTopicInfoResultDTO>
* @Author wangc
* @Date 2020.04.01 16:45
**/
Result<List<ResiTopicInfoResultDTO>> getHiddenTopics(TokenDto tokenDto,ResiTopicPageFormDTO topicPageFormDTO);
}

79
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java

@ -20,15 +20,28 @@ package com.epmet.modules.topic.service.impl;
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.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.modules.comment.entity.ResiTopicCommentEntity;
import com.epmet.modules.member.service.ResiGroupMemberService;
import com.epmet.modules.topic.dao.ResiTopicCommentDao;
import com.epmet.modules.topic.entity.ResiTopicCommentEntity;
import com.epmet.modules.topic.service.ResiTopicCommentService;
import com.epmet.modules.topic.service.ResiTopicService;
import com.epmet.resi.group.constant.MemberStateConstant;
import com.epmet.resi.group.constant.TopicConstant;
import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO;
import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.topic.ResiTopicCommentDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.ResiPublishCommentFormDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -45,7 +58,11 @@ import java.util.Map;
@Service
public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommentDao, ResiTopicCommentEntity> implements ResiTopicCommentService {
@Autowired
ResiTopicService resiTopicService;
@Autowired
ResiGroupMemberService resiGroupMemberService;
@Override
public PageData<ResiTopicCommentDTO> page(Map<String, Object> params) {
@ -99,4 +116,64 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @Description 评论话题
* @Param tokenDto
* @Param resiCommentFormDTO
* @return Result
* @Author wangc
* @Date 2020.03.31 17:36
**/
@Override
public Result commentTopic(TokenDto tokenDto, ResiPublishCommentFormDTO resiCommentFormDTO) {
//1.判断当前用户是否被禁言
ResiTopicDTO topic = resiTopicService.get(resiCommentFormDTO.getTopicId());
if(null == topic){
return new Result().error();
}
ResiGroupMemberDTO resiGroupMemberDTO =
resiGroupMemberService.getResiGroupMember(tokenDto.getUserId() , topic.getGroupId());
//查看当前用户是否被禁言或者被移除
if(null != resiGroupMemberDTO){
if(MemberStateConstant.SILENT.equals(resiGroupMemberDTO.getStatus())){
//当前用户被禁言
return new Result().error();
}else if(MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())){
//当前用户已被移出群
return new Result().error();
}
}else{
//当前用户非组内成员
return new Result().error();
}
if(resiCommentFormDTO.getCommentContent().length() > TopicConstant.MAX_NUMBER_OF_COMMENT){
return new Result().error();
}
ResiTopicCommentEntity comment = ConvertUtils.sourceToTarget(resiCommentFormDTO,ResiTopicCommentEntity.class);
comment.setStatus(TopicConstant.PUBLISHMENT);
baseDao.insertOne(comment);
return new Result();
}
/**
* @Description 得到某个话题的评论列表 分页
* @Param tokenDto
* @Param ResiQueryCommentFormDTO
* @return Result<List<ResiCommentResultDTO>>
* @Author wangc
* @Date 2020.04.01 17:15
**/
@Override
public Result<List<ResiCommentResultDTO>> getCommentList(TokenDto tokenDto, ResiQueryCommentFormDTO commentFormDTO) {
commentFormDTO.setPageNo((commentFormDTO.getPageNo() - NumConstant.ONE) * commentFormDTO.getPageSize());
return new Result<List<ResiCommentResultDTO>>().ok(baseDao.getCommentList(commentFormDTO));
}
}

331
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

@ -20,21 +20,24 @@ package com.epmet.modules.topic.service.impl;
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.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.group.dao.ResiGroupDao;
import com.epmet.modules.group.entity.ResiGroupEntity;
import com.epmet.modules.member.dao.ResiGroupMemberDao;
import com.epmet.modules.member.service.ResiGroupMemberService;
import com.epmet.modules.topic.dao.ResiTopicAttachmentDao;
import com.epmet.modules.topic.dao.ResiTopicCommentDao;
import com.epmet.modules.topic.dao.ResiTopicDao;
import com.epmet.modules.topic.dao.ResiTopicOperationDao;
import com.epmet.modules.topic.entity.ResiTopicAttachmentEntity;
import com.epmet.modules.topic.entity.ResiTopicCommentEntity;
import com.epmet.modules.topic.entity.ResiTopicEntity;
import com.epmet.modules.topic.entity.ResiTopicOperationEntity;
import com.epmet.modules.topic.service.ResiTopicService;
@ -44,15 +47,18 @@ import com.epmet.resi.group.constant.TopicConstant;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.ResiCommentFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPublishFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -84,6 +90,9 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
@Autowired
ResiGroupDao resiGroupDao;
@Autowired
ResiGroupMemberDao resiGroupMemberDao;
@Override
public PageData<ResiTopicDTO> page(Map<String, Object> params) {
IPage<ResiTopicEntity> page = baseDao.selectPage(
@ -153,17 +162,9 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
ResiGroupMemberDTO resiGroupMemberDTO =
resiGroupMemberService.getResiGroupMember(tokenDto.getUserId() , resiTopicPublishFormDTO.getGroupId());
if(null != resiGroupMemberDTO){
if(MemberStateConstant.SILENT.equals(resiGroupMemberDTO.getStatus())){
//当前用户被禁言
return new Result().error();
}else if(MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())){
//当前用户已被移出群
return new Result().error();
}
}else{
//当前用户非组内成员
return new Result().error();
Result result = verifySilentOrRemoved(resiGroupMemberDTO);
if(!result.success()){
return result;
}
//2.创建话题
@ -173,7 +174,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
}
ResiTopicEntity topic = ConvertUtils.sourceToTarget(resiTopicPublishFormDTO,ResiTopicEntity.class);
topic.setCreatedBy(tokenDto.getUserId());
baseDao.insert(topic);
baseDao.insertOne(topic);
if(StringUtils.isBlank(topic.getId())){
//没有返回主键
return new Result().error();
@ -184,7 +185,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
attachment.setAttachmentUrl(url);
attachment.setTopicId(topic.getId());
attachment.setCreatedBy(tokenDto.getUnionId());
resiTopicAttachmentDao.insert(attachment);
resiTopicAttachmentDao.insertOne(attachment);
}
}
@ -192,101 +193,301 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
ResiTopicOperationEntity operation = new ResiTopicOperationEntity();
operation.setTopicId(topic.getId());
operation.setOperationType(TopicConstant.PUBLISHMENT);
resiTopicOperationDao.insert(operation);
resiTopicOperationDao.insertOne(operation);
return new Result();
}
/**
* @Description 评论话题
* @Description 查看组内最近十条话题
* @Param tokenDto
* @Param groupId
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc
* @Date 2020.04.01 08:59
**/
@Override
public Result<List<ResiTopicInfoResultDTO>> getLatestTenTopics(TokenDto tokenDto, String groupId) {
if(StringUtils.isBlank(groupId)){
return new Result<List<ResiTopicInfoResultDTO>>().error();
}
//1.查询话题列表
List<ResiTopicInfoResultDTO> lastestTenTopics =
baseDao.getLatestTenTopics(groupId,tokenDto.getUserId());
//2.遍历存储用户信息
ResiGroupEntity group = resiGroupDao.selectById(groupId);
if(null != group && ModuleConstant.DEL_FLAG.equals(group.getDelFlag())){
}
return new Result<List<ResiTopicInfoResultDTO>>().ok(lastestTenTopics);
}
/**
* @Description 查看历史话题(分页,允许状态筛选)
* @Param tokenDto
* @Param resiCommentFormDTO
* @Param ResiTopicPageFormDTO.class
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc
* @Date 2020.04.01 10:36
**/
@Override
public Result<List<ResiTopicInfoResultDTO>> getPastTopicList(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO) {
//1.查询历史话题列表
topicPageFormDTO.setUserId(tokenDto.getUserId());
topicPageFormDTO.setPageNo((topicPageFormDTO.getPageNo() - NumConstant.ONE) * topicPageFormDTO.getPageSize());
List<ResiTopicInfoResultDTO> pastTopics =
baseDao.getPastTopics(topicPageFormDTO);
//2.遍历用户信息
return new Result<List<ResiTopicInfoResultDTO>>().ok(pastTopics);
}
/**
* @Description 屏蔽话题
* @Param tokenDto
* @Param ResiTopicHiddenFormDTO.class
* @return Result
* @Author wangc
* @Date 2020.03.31 17:36
* @Date 2020.04.01 12:38
**/
@Override
public Result commentTopic(TokenDto tokenDto, ResiCommentFormDTO resiCommentFormDTO) {
public Result hideTopic(TokenDto tokenDto, ResiTopicOperationFormDTO hiddenFormDTO) {
//1.判断当前用户是否被禁言
ResiTopicDTO topic = get(resiCommentFormDTO.getTopicId());
if(null == topic){
return new Result().error();
//1.1拿到组Id
ResiTopicEntity topic = baseDao.selectById(hiddenFormDTO.getTopicId());
//1.2校验身份,是否是该话题所属群组的组长
Result verifyError = verifyLeader(topic,tokenDto.getUserId());
if(!verifyError.success()) {
return verifyError;
}
ResiGroupMemberDTO resiGroupMemberDTO =
resiGroupMemberService.getResiGroupMember(tokenDto.getUserId() , topic.getGroupId());
//2.屏蔽话题
ResiTopicEntity topicForUpdate = new ResiTopicEntity();
topicForUpdate.setId(hiddenFormDTO.getTopicId());
topicForUpdate.setUpdatedBy(tokenDto.getUserId());
topicForUpdate.setStatus(TopicConstant.HIDDEN);
baseDao.update(topicForUpdate);
//3.话题操作记录
ResiTopicOperationEntity operationRecord = new ResiTopicOperationEntity();
operationRecord.setTopicId(hiddenFormDTO.getTopicId());
operationRecord.setOperationReason(hiddenFormDTO.getOperateReason());
operationRecord.setOperationType(TopicConstant.HIDDEN);
operationRecord.setCreatedBy(tokenDto.getUserId());
resiTopicOperationDao.insertOne(operationRecord);
if(null != resiGroupMemberDTO){
if(MemberStateConstant.SILENT.equals(resiGroupMemberDTO.getStatus())){
//当前用户被禁言
return new Result().error();
}else if(MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())){
//当前用户已被移出群
return new Result().error();
}
}else{
//当前用户非组内成员
return new Result().error();
return new Result();
}
/**
* @Description 批量取消屏蔽
* @Param tokenDto
* @Param topicIds
* @return Result
* @Author wangc
* @Date 2020.04.01 14:17
**/
@Override
public Result cancelHiddenTopics(TokenDto tokenDto, List<String> topicIds) {
//1.1拿到组Id
ResiTopicEntity topic = baseDao.selectById(topicIds.get(0));
//1.2校验身份,是否是该话题所属群组的组长
Result verifyError = verifyLeader(topic,tokenDto.getUserId());
if(!verifyError.success()) {
return verifyError;
}
if(resiCommentFormDTO.getCommentContent().length() > TopicConstant.MAX_NUMBER_OF_COMMENT){
//2.批量取消屏蔽
baseDao.cancelHiddenOrCloseBatch(topicIds,tokenDto.getUserId(),TopicConstant.PUBLISHMENT);
return new Result().error();
//3.记录话题操作日志
for(String id : topicIds){
ResiTopicOperationEntity operation = new ResiTopicOperationEntity();
operation.setTopicId(id);
operation.setOperationType(TopicConstant.CANCEL_HIDDEN);
operation.setCreatedBy(tokenDto.getUserId());
resiTopicOperationDao.insertOne(operation);
}
ResiTopicCommentEntity comment = ConvertUtils.sourceToTarget(resiCommentFormDTO,ResiTopicCommentEntity.class);
comment.setStatus(TopicConstant.PUBLISHMENT);
resiTopicCommentDao.insert(comment);
return new Result();
}
/**
* @Description 查看组内最近十条话题
* @Description 关闭话题
* @Param tokenDto
* @Param groupId
* @return Result<List<ResiTopicInfoResultDTO>>
* @Param ResiTopicOperationFormDTO.class
* @return Result.class
* @Author wangc
* @Date 2020.04.01 08:59
* @Date 2020.04.01 15:37
**/
@Override
public Result<List<ResiTopicInfoResultDTO>> getLatestTenTopics(TokenDto tokenDto, String groupId) {
public Result closeTopic(TokenDto tokenDto, ResiTopicOperationFormDTO closeFormDTO) {
//1.查询话题列表
List<ResiTopicInfoResultDTO> lastestTenTopics =
baseDao.getLatestTenTopics(groupId);
//1.1拿到组Id
ResiTopicEntity topic = baseDao.selectById(tokenDto.getUserId());
//2.遍历放用户信息
ResiGroupEntity group = resiGroupDao.selectById(groupId);
if(null != group && ModuleConstant.DEL_FLAG.equals(group.getDelFlag())){
//1.2校验身份,是否是该话题所属群组的组长
Result verifyError = verifyLeader(topic,tokenDto.getUserId());
if(!verifyError.success()) {
return verifyError;
}
//2.关闭操作
List<String> id = new ArrayList<>();
id.add(closeFormDTO.getTopicId());
baseDao.cancelHiddenOrCloseBatch(id,tokenDto.getUserId(),TopicConstant.CLOSED);
//3.记录话题操作日志
ResiTopicOperationEntity operation = new ResiTopicOperationEntity();
operation.setTopicId(id.get(0));
operation.setOperationReason(closeFormDTO.getOperateReason());
operation.setCreatedBy(tokenDto.getUserId());
operation.setOperationType(TopicConstant.CLOSED);
resiTopicOperationDao.insertOne(operation);
return new Result();
}
/**
* @Description 查看话题详情
* @Param tokenDto
* @Param topicId
* @return ResiTopicDetailResultDTO
* @Author wangc
* @Date 2020.04.01 15:56
**/
@Override
public Result<ResiTopicDetailResultDTO> getTopicDetail(TokenDto tokenDto, String topicId) {
if(StringUtils.isBlank(topicId)){
return new Result<ResiTopicDetailResultDTO>().error();
}
for(ResiTopicInfoResultDTO obj:lastestTenTopics){
if(StringUtils.equals(tokenDto.getUserId(),obj.getUserId())){
obj.setReleaseUserFlag(TopicConstant.PUBLISHED_BY_MYSELF);
}else{
obj.setReleaseUserFlag(TopicConstant.PUBLISHED_BY_OTHER);
}
//1.获取话题基本信息
ResiTopicEntity topicDetail = baseDao.selectById(topicId);
ResiTopicDetailResultDTO resultDTO = new ResiTopicDetailResultDTO();
//2.查询话题附件
QueryWrapper<ResiTopicAttachmentEntity> wrapper = new QueryWrapper<>();
wrapper.eq(TopicConstant.TOPIC_ID,topicId);
wrapper.eq(TopicConstant.DEL_FLAG,NumConstant.ZERO_STR);
wrapper.orderByDesc(TopicConstant.CREATED_DATE);
List<ResiTopicAttachmentEntity> attachments = resiTopicAttachmentDao.selectList(wrapper);
List<String> attachmentUrls = new ArrayList<>();
for(ResiTopicAttachmentEntity attachment : attachments){
attachmentUrls.add(attachment.getAttachmentUrl());
}
return new Result<List<ResiTopicInfoResultDTO>>().ok(lastestTenTopics);
resultDTO.setTopicImgs(attachmentUrls);
resultDTO.setReleaseTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(topicDetail.getCreatedTime()));
resultDTO.setTopicContent(topicDetail.getTopicContent());
//3.拿取用户信息
ResiTopicDTO topic = get(topicId);
ResiGroupEntity group = resiGroupDao.selectById(topic.getGroupId());
UserResiInfoFormDTO userParam = new UserResiInfoFormDTO();
userParam.setUserId(tokenDto.getUserId());
userParam.setCustomerId(group.getCustomerId());
Result<UserResiInfoDTO> userInfo =
epmetUserFeignClient.getUserResiInfoDTO(userParam);
if(userInfo.success()){
resultDTO.setReleaseUserName(userInfo.getData().getSurname() + userInfo.getData().getName());
//TODO 调用EpmetUserFeign的查询用户微信信息的方法拉取头像信息
resultDTO.setReleaseUserHeadPhoto("");
}
return new Result<ResiTopicDetailResultDTO>().ok(resultDTO);
}
/**
* @Description 查看历史话题(分页,允许状态筛选)
* @Description 屏蔽话题列表查询
* @Param tokenDto
* @Param ResiTopicPageFormDTO.class
* @return Result<List<ResiTopicInfoResultDTO>>
* @return List<ResiTopicInfoResultDTO>
* @Author wangc
* @Date 2020.04.01 10:36
* @Date 2020.04.01 16:45
**/
@Override
public Result<List<ResiTopicInfoResultDTO>> getPastTopicList(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO) {
public Result<List<ResiTopicInfoResultDTO>> getHiddenTopics(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO) {
//1.查询屏蔽话题列表
topicPageFormDTO.setUserId(tokenDto.getUserId());
topicPageFormDTO.setPageNo((topicPageFormDTO.getPageNo() - NumConstant.ONE) * topicPageFormDTO.getPageSize());
topicPageFormDTO.setStatus(TopicConstant.HIDDEN);
List<ResiTopicInfoResultDTO> hiddenTopics =
baseDao.getPastTopics(topicPageFormDTO);
//2.遍历用户信息
return null;
return new Result<List<ResiTopicInfoResultDTO>>().ok(hiddenTopics);
}
/**
* @Description 查询当前组员在组内是否被禁言或已被移除
* @Param resiGroupMemberDTO
* @return Result.class
* @Author wangc
* @Date 2020.04.01 15:00
**/
private Result verifySilentOrRemoved(ResiGroupMemberDTO resiGroupMemberDTO){
if(null != resiGroupMemberDTO){
if(MemberStateConstant.SILENT.equals(resiGroupMemberDTO.getStatus())){
//当前用户被禁言
return new Result().error();
}else if(MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())){
//当前用户已被移出群
return new Result().error();
}else{
return new Result();
}
}else{
//当前用户非组内成员
return new Result().error();
}
}
/**
* @Description 校验当前用户是否是该小组组长
* @Param
* @return
* @Author wangc
* @Date 2020.04.01 14:55
**/
private Result verifyLeader(ResiTopicEntity topic,String userId){
if(null != topic){
ResiGroupMemberDTO leaderVerify = resiGroupMemberDao.selectLeaderMember(topic.getGroupId());
if(null != leaderVerify){
//1.2判断是否是组长
if(!StringUtils.equals(leaderVerify.getId(),userId)){
//非组长,无权限进行操作
return new Result().error();
}else{
return new Result();
}
}else{
return new Result().error();
}
}else{
return new Result().error();
}
}
}

59
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicAttachmentDao.xml

@ -3,7 +3,66 @@
<mapper namespace="com.epmet.modules.topic.dao.ResiTopicAttachmentDao">
<insert id="insertOne" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.epmet.modules.topic.entity.ResiTopicAttachmentEntity">
<selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE">
select replace(uuid(),'-','') AS APPROVAL_ID
</selectKey>
INSERT INTO resi_topic_attachment
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
topic_id,
</if>
<if test ='null != attachmentName'>
attachment_name,
</if>
<if test ='null != attachmentFormat'>
attachment_format,
</if>
<if test ='null != attachmentType'>
attachment_type,
</if>
<if test ='null != attachmentUrl'>
attachment_url,
</if>
<if test ='null != createdBy'>
created_by,
</if>
del_flag,
revision,
created_time,
updated_by,
updated_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
#{topicId},
</if>
<if test ='null != attachmentName'>
#{attachmentName},
</if>
<if test ='null != attachmentFormat'>
#{attachmentFormat},
</if>
<if test ='null != attachmentType'>
#{attachmentType},
</if>
<if test ='null != attachmentUrl'>
#{attachmentUrl},
</if>
<if test ='null != createdBy'>
#{createdBy},
</if>
'0',
'0',
now(),
'APP_USER',
now()
</trim>
</insert>
<!-- 批量插入 -->
<insert id="insertBatch" parameterType="java.util.List">
insert into user

62
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicCommentDao.xml

@ -3,7 +3,67 @@
<mapper namespace="com.epmet.modules.topic.dao.ResiTopicCommentDao">
<!-- 新增一条数据 : 一条评论-->
<insert id="insertOne" parameterType="com.epmet.modules.comment.entity.ResiTopicCommentEntity">
<selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE">
select replace(uuid(),'-','') AS APPROVAL_ID
</selectKey>
INSERT INTO resi_topic_operation
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
topic_id,
</if>
<if test ='null != commentContent'>
comment_content,
</if>
<if test='null != status'>
status,
</if>
<if test ='null != createdBy'>
created_by,
</if>
del_flag,
revision,
created_time,
updated_by,
updated_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
#{topicId},
</if>
<if test ='null != commentContent'>
#{commentContent},
</if>
<if test='null != status'>
#{status},
</if>
<if test ='null != createdBy'>
#{createdBy},
</if>
'0',
'0',
now(),
'APP_USER',
now()
</trim>
</insert>
<!-- 分页查询某个话题下的评论列表 -->
<select id="getCommentList" parameterType="com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO" resultType="com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO">
ID AS commentId,
COMMENT_CONTENT,
STATUS AS commentStatus,
CREATED_TIME AS commentTime,
CREATED_BY AS userId
FROM
RESI_TOPIC_COMMENT
WHERE
DEL_FLAG = '0'
AND
TOPIC_ID = #{topicId}
LIMIT
#{pageNo},#{pageSize}
</select>
</mapper>

117
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml

@ -3,8 +3,8 @@
<mapper namespace="com.epmet.modules.topic.dao.ResiTopicDao">
<insert id="insert" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.epmet.modules.topic.entity.ResiTopicEntity">
<!-- 新增话题 -->
<insert id="insertOne" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.epmet.modules.topic.entity.ResiTopicEntity">
<selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE">
select replace(uuid(),'-','') AS APPROVAL_ID
@ -88,13 +88,16 @@
</trim>
</insert>
<!-- 查询最近十条话题 -->
<select id="getLatestTenTopics" parameterType="string" resultType="com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO">
SELECT
ID,
GROUP_ID TOPIC_CONTENT,
GROUP_ID,
TOPIC_CONTENT,
STATUS,
CREATED_TIME AS releaseTime,
CREATED_BY AS userId
CREATED_BY AS userId,
DECODE(CREATED_BY,#{userId},'me','other') as releaseUserFlag
FROM
RESI_TOPIC
WHERE
@ -106,4 +109,110 @@
LIMIT 10
</select>
<!-- 查询历史话题,分页,参数查询 -->
<select id="getPastTopics" parameterType="com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO" resultType="com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO">
SELECT
ID,
GROUP_ID,
TOPIC_CONTENT,
STATUS,
CREATED_TIME AS releaseTime,
CREATED_BY AS userId,
DECODE(CREATED_BY,#{userId},'me','other') as releaseUserFlag
FROM
RESI_TOPIC
<where>
DEL_FLAG = '0'
<if test='"hidden" != status'>
AND <![CDATA[ STATUS <> 'hidden' ]]>
</if>
AND GROUP_ID = #{groupId}
<if test='null != status and "" != status'>
AND STATUS = #{status}
</if>
</where>
ORDER BY
CREATED_TIME DESC
LIMIT #{pageNo},#{pageSize}
</select>
<!-- 单条更新 -->
<update id="update" parameterType="com.epmet.modules.topic.entity.ResiTopicEntity">
UPDATE
RESI_TOPIC
<set>
<if test='null != status and "" != status'>
STATUS = #{status} ,
</if>
<if test='null != delFlag and "" != delFlag'>
DEL_FLAG = #{delFlag} ,
</if>
<if test='null != updatedBy and "" != updatedBy'>
UPDATED_BY = #{updatedBy} ,
</if>
<if test='null != topicContent and "" != topicContent'>
TOPIC_CONTENT = #{topicContent} ,
</if>
UPDATED_DATE = NOW()
</set>
WHERE
ID = #{id}
AND DEL_FLAG = '0'
</update>
<!-- 批量取消屏蔽 -->
<update id="cancelHiddenOrCloseBatch">
UPDATE
RESI_TOPIC
SET
STATUS = #{status},
UPDATED_DATE = NOW(),
UPDATED_BY = #{updatedBy}
WHERE
ID
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
${item}
</foreach>
AND
DEL_FLAG = '0'
AND
STATUS = 'hidden'
</update>
<!-- 批量更新 -->
<update id="updateBatch" parameterType="list">
update RESI_TOPIC
<trim prefix="set" suffixOverrides=",">
<trim prefix="topic_content= case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.topicContent!=null">
when id=#{i.id} then #{i.topicContent}
</if>
</foreach>
</trim>
<trim prefix=" status =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.status!=null">
when id=#{i.id} then #{i.status}
</if>
</foreach>
</trim>
<trim prefix="updated_by =case" suffix="end," >
<foreach collection="list" item="i" index="index">
<if test="i.updatedBy!=null">
when id=#{i.id} then #{i.updatedBy}
</if>
</foreach>
</trim>
</trim>
updated_date = now()
where
<foreach collection="list" separator="or" item="i" index="index" >
id=#{i.id}
</foreach>
</update>
</mapper>

47
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicOperationDao.xml

@ -3,6 +3,53 @@
<mapper namespace="com.epmet.modules.topic.dao.ResiTopicOperationDao">
<!-- 新增操作 -->
<insert id="insertOne" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.epmet.modules.topic.entity.ResiTopicOperationEntity">
<selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE">
select replace(uuid(),'-','') AS APPROVAL_ID
</selectKey>
INSERT INTO resi_topic_operation
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
topic_id,
</if>
<if test ='null != operationType'>
operation_type,
</if>
<if test='null != operationReason'>
operation_reason,
</if>
<if test ='null != createdBy'>
created_by,
</if>
del_flag,
revision,
created_time,
updated_by,
updated_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
#{topicId},
</if>
<if test ='null != operationType'>
#{operationType},
</if>
<if test='null != operationReason'>
#{operationReason},
</if>
<if test ='null != createdBy'>
#{createdBy},
</if>
'0',
'0',
now(),
'APP_USER',
now()
</trim>
</insert>
</mapper>

2
epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java

@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RequestBody;
* @Description 居民端陌生人导览 调用epmet-user服务
* @Author sun
*/
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallBack.class, url = "http://localhost:8087")
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallBack.class)
public interface EpmetUserFeignClient {
/**

6
epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/UserAccessServiceImpl.java

@ -1,5 +1,6 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.StrangerResiGuideConstant;
@ -44,6 +45,11 @@ public class UserAccessServiceImpl implements UserAccessService {
visitedFormDTO.setGridId(userInfoParams.getGridId());
visitedFormDTO.setCustomerId(userInfoParams.getCustomerId());
visitedFormDTO.setUserId(userInfoParams.getUserId());
if(null != userInfoResult.getData().getUserRoleList() && userInfoResult.getData().getUserRoleList().size() > 0){
visitedFormDTO.setIsReg(NumConstant.ONE_STR);
}else{
visitedFormDTO.setIsReg(NumConstant.ZERO_STR);
}
Result re = epmetUserFeignClient.saveVisitedRecord(visitedFormDTO);
if (!re.success()) {
log.warn(StrangerResiGuideConstant.EPMET_USER_EXCEPTION);

5
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitedFormDTO.java

@ -48,5 +48,10 @@ public class VisitedFormDTO implements Serializable {
@NotBlank(message = "用户ID不能为空")
private String userId;
/**
* 是否注册居民 1: 0
* */
private String isReg;
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java

@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.PostMapping;
* @Author sun
* @Date 2020/3/16
*/
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgFeignClientFallBack.class, url = "http://localhost:8092")
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgFeignClientFallBack.class)
public interface GovOrgFeignClient {
/**

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridVisitedServiceImpl.java

@ -158,7 +158,7 @@ public class GridVisitedServiceImpl extends BaseServiceImpl<GridVisitedDao, Grid
Date date = new Date();
GridVisitedDTO gridVisitedDTO = new GridVisitedDTO();
//TODO:预留方法 根据userId查询用户是否认证(注册)
gridVisitedDTO.setIsRegister(getRegisterByUserId(visitedFormDTO.getUserId()));
gridVisitedDTO.setIsRegister(Integer.parseInt(visitedFormDTO.getIsReg()));
gridVisitedDTO.setCustomerId(customerGridDTO.getCustomerId());
gridVisitedDTO.setGridId(customerGridDTO.getId());
gridVisitedDTO.setCustomerUserId(visitedFormDTO.getUserId());

14
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java

@ -189,9 +189,9 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
if(registerRecordWithSameCustAndDiffGrid.isPresent()){
//存在相同客户不同网格的注册记录
//参与用户
registerRelationToSave.setFirstRegister("0");
registerRelationToSave.setRegister("0");
registerRelationToSave.setParticipation("1");
registerRelationToSave.setFirstRegister(NumConstant.ZERO_STR);
registerRelationToSave.setRegister(NumConstant.ZERO_STR);
registerRelationToSave.setParticipation(NumConstant.ONE_STR);
baseDao.insert(registerRelationToSave);
}else{
@ -201,9 +201,9 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
if(registerRecordWithDiffCustAndGrid.isPresent()){
//如果存在不同客户不同网格的注册信息
//注册用户 参与用户
registerRelationToSave.setFirstRegister("0");
registerRelationToSave.setRegister("1");
registerRelationToSave.setParticipation("1");
registerRelationToSave.setFirstRegister(NumConstant.ZERO_STR);
registerRelationToSave.setRegister(NumConstant.ONE_STR);
registerRelationToSave.setParticipation(NumConstant.ONE_STR);
baseDao.insert(registerRelationToSave);
userCustomerDao.insert(userCustomer);
@ -211,7 +211,7 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
//如果不存在不同客户不同网格数据,说明在居民注册时没有成功记录register_relation信息
UserResiRegisterVisitDTO userResiRegisterVisitDTO = new UserResiRegisterVisitDTO();
userResiRegisterVisitDTO.setDelFlag(0);
userResiRegisterVisitDTO.setDelFlag(NumConstant.ZERO);
userResiRegisterVisitDTO.setUserId(enterGridFormDTO.getUserId());
List<UserResiRegisterVisitDTO> UserResiRegisterVisitRecord =
userResiRegisterVisitDao.selectUserResiRegisterVisit(userResiRegisterVisitDTO);

Loading…
Cancel
Save