Browse Source

评论列表、话题列表显示时间到分钟,用户信息获取,屏蔽话题与解除屏蔽对群组统计信息进行相应的补充

master
wangchao 5 years ago
parent
commit
0e25b27371
  1. 2
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/TopicConstant.java
  2. 8
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/result/ResiCommentResultDTO.java
  3. 65
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupInfoRedisDTO.java
  4. 52
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupStatisticalInfoRedisDTO.java
  5. 48
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberInfoRedisDTO.java
  6. 4
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java
  7. 5
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicInfoResultDTO.java
  8. 15
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java
  9. 73
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  10. 17
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java

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

@ -56,7 +56,7 @@ public interface TopicConstant {
/**
* 构造queryWrapper 创建日期列名
* */
String CREATED_DATE = "CREATED_TIME";
String CREATED_TIME = "CREATED_TIME";
/**
* 构造queryWrapper 小组Id

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

@ -1,10 +1,10 @@
package com.epmet.resi.group.dto.comment.result;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Description
@ -43,10 +43,10 @@ public class ResiCommentResultDTO implements Serializable {
private String userId;
/**
* 评论时间 yyyy-MM-dd HH:mm:ss
* 评论时间 yyyy-MM-dd HH:mm
* */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private String commentTime;
@JSONField(format="yyyy-MM-dd HH:mm")
private Date commentTime;
/**
* 评论状态

65
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupInfoRedisDTO.java

@ -0,0 +1,65 @@
package com.epmet.resi.group.dto.group;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 组信息缓存对象
* @ClassName ResiGroupInfoRedisDTO
* @Author wangc
* @date 2020.04.11 09:51
*/
@Data
public class ResiGroupInfoRedisDTO implements Serializable{
private static final long serialVersionUID = 1L;
/**
* 小组Id
* */
private String groupId;
/**
* 用户头像
* */
private String groupHeadPhoto;
/**
* 组名称
* */
private String groupName;
/**
* 组介绍
* */
private String groupIntroduction;
/**
* 客户Id
* */
private String customerId;
/**
* 网格Id
* */
private String gridId;
/**
* 组状态
* */
private String groupState;
/**
* 最新话题发布时间
* */
private String latestTopicPublishDate;
/**
* 组统计嘻嘻你系
* */
private ResiGroupStatisticalInfoRedisDTO groupStatisticalInfo;
}

52
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupStatisticalInfoRedisDTO.java

@ -0,0 +1,52 @@
package com.epmet.resi.group.dto.group;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 组数据统计信息缓存对象
* @ClassName ResiGroupStatisticalInfoRedisDTO
* @Author wangc
* @date 2020.04.11 10:58
*/
@Data
public class ResiGroupStatisticalInfoRedisDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 统计Id
* */
private String id;
/**
* 总成员数
* */
private Integer totalMembers;
/**
*总话题数
* */
private Integer totalTopics;
/**
* 总议题数
* */
private Integer totalIssues;
/**
* 党员总数
* */
private Integer totalPartyMembers;
/**
* 热心居民总数
* */
private Integer totalEarnestMembers ;
/**
* 注册居民总数
* */
private Integer totalNormalMembers;
}

48
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberInfoRedisDTO.java

@ -0,0 +1,48 @@
package com.epmet.resi.group.dto.member;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 组成员信息缓存对象
* @ClassName ResiGroupMemberInfoRedisDTO
* @Author wangc
* @date 2020.04.11 09:52
*/
@Data
public class ResiGroupMemberInfoRedisDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 用户Id
* */
private String userId;
/**
* 用户头像
* */
private String userHeadPhoto;
/**
* 用户显示昵称
* */
private String userShowName;
/**
* 组长标识
* */
private String groupLeaderFlag;
/**
* 进群方式
* */
private String enterGroupType;
/**
* 成员状态
* */
private String memberStatus;
}

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

@ -1,7 +1,5 @@
package com.epmet.resi.group.dto.topic.result;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
@ -36,8 +34,6 @@ public class ResiTopicDetailResultDTO implements Serializable {
/**
* 发布时间 yyyy-MM-dd HH:mm
* */
@JSONField(format="yyyy-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private String releaseTime;
/**

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

@ -1,10 +1,10 @@
package com.epmet.resi.group.dto.topic.result;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Description 查看历史话题返回对象
@ -41,8 +41,7 @@ public class ResiTopicInfoResultDTO implements Serializable{
* 发布时间 yyyy-MM-dd HH:mm
* */
@JSONField(format="yyyy-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private String releaseTime;
private Date releaseTime;
/**
* 话题内容

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

@ -44,8 +44,9 @@ 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 com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -73,6 +74,8 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
@Autowired
EpmetUserFeignClient epmetUserFeignClient;
private final Log logger = LogFactory.getLog(getClass());
@Override
public PageData<ResiTopicCommentDTO> page(Map<String, Object> params) {
IPage<ResiTopicCommentEntity> page = baseDao.selectPage(
@ -139,7 +142,8 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
//1.判断当前用户是否被禁言
ResiTopicDTO topic = resiTopicService.get(resiCommentFormDTO.getTopicId());
if(null == topic){
return new Result().error();
logger.warn(ModuleConstant.NO_SUCH_TOPIC);
return new Result().error(ModuleConstant.NO_SUCH_TOPIC);
}
ResiGroupMemberDTO resiGroupMemberDTO =
@ -148,19 +152,22 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
if(null != resiGroupMemberDTO){
if(MemberStateConstant.SILENT.equals(resiGroupMemberDTO.getStatus())){
//当前用户被禁言
logger.warn(ModuleConstant.SLIENT_MEMBER);
return new Result().error(ModuleConstant.SLIENT_MEMBER);
}else if(MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())){
//当前用户已被移出群
logger.warn(ModuleConstant.REMOVED_MEMBER);
return new Result().error(ModuleConstant.REMOVED_MEMBER);
}
}else{
//当前用户非组内成员
logger.warn(ModuleConstant.NOT_BELONG_TO_CURRENT_GROUP);
return new Result().error(ModuleConstant.NOT_BELONG_TO_CURRENT_GROUP);
}
if(resiCommentFormDTO.getCommentContent().length() > TopicConstant.MAX_NUMBER_OF_COMMENT){
logger.warn(ModuleConstant.COMMENT_NUMBER_OF_WORDS_EXCEEDED);
return new Result().error(ModuleConstant.COMMENT_NUMBER_OF_WORDS_EXCEEDED);
}
ResiTopicCommentEntity comment = ConvertUtils.sourceToTarget(resiCommentFormDTO,ResiTopicCommentEntity.class);
@ -204,6 +211,8 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
}
}
}
}else{
logger.warn(ModuleConstant.USER_INFO_LIST_NOT_FOUND);
}
}
return new Result<List<ResiCommentResultDTO>>().ok(comments);

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

@ -17,6 +17,7 @@
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;
@ -50,13 +51,15 @@ import com.epmet.resi.group.constant.MemberStateConstant;
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.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.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.bouncycastle.math.raw.Mod;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -100,6 +103,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
@Autowired
RedisUtils redisUtil;
private final Log logger = LogFactory.getLog(getClass());
@Override
public PageData<ResiTopicDTO> page(Map<String, Object> params) {
@ -190,6 +194,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
baseDao.insertOne(topic);
if(StringUtils.isBlank(topic.getId())){
//没有返回主键
logger.warn(ModuleConstant.NO_PRIMARY_KEY_RETURNED);
return new Result().error(ModuleConstant.NO_PRIMARY_KEY_RETURNED);
}
if(null != resiTopicPublishFormDTO.getAttachmentList() && resiTopicPublishFormDTO.getAttachmentList().size() > 0){
@ -199,7 +204,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
attachment.setAttachmentUrl(url);
attachment.setTopicId(topic.getId());
attachment.setCreatedBy(tokenDto.getUserId());
attachment.setAttachmentFormat(url.substring(url.lastIndexOf(".") + 1).toLowerCase());
attachment.setAttachmentFormat(url.substring(url.lastIndexOf(".") + NumConstant.ONE).toLowerCase());
attachment.setSort(sort++);
resiTopicAttachmentDao.insertOne(attachment);
}
@ -219,6 +224,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
List<ResiGroupStatisticalEntity> statistical = resiGroupStatisticalDao.selectList(wrapper);
if(null != statistical && statistical.size() >= NumConstant.ONE){
if(statistical.size() != NumConstant.ONE){
logger.warn(ModuleConstant.GROUP_STASTICAL_NOT_SINGLE);
return new Result().error(ModuleConstant.GROUP_STASTICAL_NOT_SINGLE);
}else{
ResiGroupStatisticalEntity statistical2Update = new ResiGroupStatisticalEntity();
@ -229,6 +235,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
resiGroupStatisticalDao.updateById(statistical2Update);
}
}else{
logger.warn(ModuleConstant.NO_SUCH_GROUP_STASTICAL_INFO);
return new Result().error(ModuleConstant.NO_SUCH_GROUP_STASTICAL_INFO);
}
@ -352,6 +359,20 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
operationRecord.setCreatedBy(tokenDto.getUserId());
resiTopicOperationDao.insertOne(operationRecord);
// 4.组话题数量-1 (对应的在解除屏蔽时组话题数量+1)
QueryWrapper<ResiGroupStatisticalEntity> statisticalWrapper = new QueryWrapper<>();
statisticalWrapper.eq(TopicConstant.RESI_GROUP_ID,topic.getGroupId());
statisticalWrapper.eq(FieldConstant.DEL_FLAG,NumConstant.ZERO_STR);
ResiGroupStatisticalEntity statistical = resiGroupStatisticalDao.selectOne(statisticalWrapper);
if(null != statistical && StringUtils.isNotBlank(statistical.getId()) && StringUtils.isNotBlank(statistical.getResiGroupId())){
ResiGroupStatisticalEntity statistical2Update = new ResiGroupStatisticalEntity();
statistical2Update.setId(statistical.getId());
statistical2Update.setTotalTopics(
null == statistical.getTotalTopics() || statistical.getTotalTopics() == 0 ? 0 : statistical.getTotalTopics() - NumConstant.ONE
);
resiGroupStatisticalDao.updateById(statistical2Update);
}
return new Result();
}
@ -391,6 +412,18 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
operation.setCreatedBy(tokenDto.getUserId());
resiTopicOperationDao.insertOne(operation);
}
QueryWrapper<ResiGroupStatisticalEntity> statisticalWrapper = new QueryWrapper<>();
statisticalWrapper.eq(TopicConstant.RESI_GROUP_ID,topic.getGroupId());
statisticalWrapper.eq(FieldConstant.DEL_FLAG,NumConstant.ZERO_STR);
ResiGroupStatisticalEntity statistical = resiGroupStatisticalDao.selectOne(statisticalWrapper);
if(null != statistical && StringUtils.isNotBlank(statistical.getId())){
ResiGroupStatisticalEntity statistical2Update = new ResiGroupStatisticalEntity();
statistical2Update.setId(statistical.getId());
statistical2Update.setTotalTopics(
statistical.getTotalTopics() == null ? 0 : statistical.getTotalTopics() + topicIds.size()
);
resiGroupStatisticalDao.updateById(statistical2Update);
}
return new Result();
}
@ -442,14 +475,10 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
**/
@Override
public Result<ResiTopicDetailResultDTO> getTopicDetail(TokenDto tokenDto, String topicId) {
if(StringUtils.isBlank(topicId)){
return new Result<ResiTopicDetailResultDTO>().error();
}
//1.获取话题基本信息
ResiTopicEntity topicDetail = baseDao.selectById(topicId);
if(null == topicDetail || !StringUtils.equals(topicDetail.getId(),topicId)){
logger.warn(ModuleConstant.NO_SUCH_TOPIC);
return new Result().error(ModuleConstant.NO_SUCH_TOPIC);
}
ResiTopicDetailResultDTO resultDTO = new ResiTopicDetailResultDTO();
@ -483,7 +512,8 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
resultDTO.setReleaseUserHeadPhoto(userInfo.getData().getHeadPhoto());
}
}else{
logger.warn(ModuleConstant.USER_INFO_LIST_NOT_FOUND);
}
@ -501,6 +531,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
**/
@Override
public Result<List<ResiTopicInfoResultDTO>> getHiddenTopics(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO) {
//1.查询屏蔽话题列表
topicPageFormDTO.setUserId(tokenDto.getUserId());
topicPageFormDTO.setPageNo((topicPageFormDTO.getPageNo() - NumConstant.ONE) * topicPageFormDTO.getPageSize());
@ -510,7 +541,17 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
baseDao.getPastTopics(topicPageFormDTO);
//2.遍历用户信息
if (null != hiddenTopics && hiddenTopics.size() > 0) {
List<String> userIdList = new ArrayList<>();
for (ResiTopicInfoResultDTO topic : hiddenTopics) {
userIdList.add(topic.getUserId());
}
UserResiInfoListFormDTO formDTO = new UserResiInfoListFormDTO();
formDTO.setUserIdList(userIdList);
Result<List<UserResiInfoResultDTO>> userResiInfoDTOListResult = epmetUserFeignClient.getUserResiInfoList(formDTO);
setUserInfo(userResiInfoDTOListResult, hiddenTopics);
}
return new Result<List<ResiTopicInfoResultDTO>>().ok(hiddenTopics);
}
@ -526,15 +567,18 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
if(null != resiGroupMemberDTO){
if(MemberStateConstant.SILENT.equals(resiGroupMemberDTO.getStatus())){
//当前用户被禁言
logger.error(ModuleConstant.SLIENT_MEMBER);
return new Result().error(ModuleConstant.SLIENT_MEMBER);
}else if(MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())){
//当前用户已被移出群
logger.error(ModuleConstant.REMOVED_MEMBER);
return new Result().error(ModuleConstant.REMOVED_MEMBER);
}else{
return new Result();
}
}else{
//当前用户非组内成员
logger.error(ModuleConstant.NOT_BELONG_TO_CURRENT_GROUP);
return new Result().error(ModuleConstant.NOT_BELONG_TO_CURRENT_GROUP);
}
}
@ -553,6 +597,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
//1.2判断是否是组长
if(!StringUtils.equals(leaderVerify.getCustomerUserId(),userId)){
//非组长,无权限进行操作
logger.warn(ModuleConstant.NO_TEAMLEADER_AUTH);
return new Result().error(ModuleConstant.NO_TEAMLEADER_AUTH);
}else{
//是组长
@ -560,14 +605,24 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
}
}else{
//未找到当前用户的成员信息
logger.warn(ModuleConstant.NOT_BELONG_TO_CURRENT_GROUP);
return new Result().error(ModuleConstant.NOT_BELONG_TO_CURRENT_GROUP);
}
}else{
//未能识别该话题基本信息
logger.warn(ModuleConstant.NO_SUCH_TOPIC);
return new Result().error(ModuleConstant.NO_SUCH_TOPIC);
}
}
/**
* @Description 将用户信息(头像昵称)遍历到返回的查询话题结果中 TODO 后期要改到缓存中
* @Param Result<List<UserResiInfoResultDTO>>
* @Param List<ResiTopicInfoResultDTO>
* @return void
* @Author wangc
* @Date 2020.04.10 17:47
**/
public void setUserInfo(Result<List<UserResiInfoResultDTO>> userResiInfoDTOListResult,List<ResiTopicInfoResultDTO> topics){
if(userResiInfoDTOListResult.success() && null != userResiInfoDTOListResult.getData()){
if(userResiInfoDTOListResult.getData().size() > 0){
@ -581,6 +636,8 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
}
}
}
}else{
logger.warn(ModuleConstant.USER_INFO_LIST_NOT_FOUND);
}
}
}

17
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java

@ -71,7 +71,7 @@ public interface ModuleConstant extends Constant {
/**
* 当前用户并非该组组员
* */
String NOT_BELONG_TO_CURRENT_GROUP="当前用户并非该组员";
String NOT_BELONG_TO_CURRENT_GROUP="当前用户并非该组员";
/**
* 逻辑删除标识 未删除
@ -121,17 +121,17 @@ public interface ModuleConstant extends Constant {
/**
* 当前用户被禁言
* */
String SLIENT_MEMBER = "您已被禁言";
String SLIENT_MEMBER = "当前用户被禁言";
/**
* 当前用户被移出群
* */
String REMOVED_MEMBER = "您已被移除群";
String REMOVED_MEMBER = "当前用户被移出小组";
/**
* 当前用户不是组长
* */
String NO_TEAMLEADER_AUTH = "没有组长权限";
String NO_TEAMLEADER_AUTH = "当前用户没有组长权限";
/**
* 话题Id集合不能为空
@ -141,10 +141,15 @@ public interface ModuleConstant extends Constant {
/**
* 一个组找到多个统计信息
* */
String GROUP_STASTICAL_NOT_SINGLE = "一个组找到多个统计信息";
String GROUP_STASTICAL_NOT_SINGLE = "找到多个统计信息";
/**
* 未找到对应的小组统计信息
* */
String NO_SUCH_GROUP_STASTICAL_INFO = "未找到对应的小组统计信息";
String NO_SUCH_GROUP_STASTICAL_INFO = "未找到对应小组的统计信息";
/**
* 没有找到用户列表信息
* */
String USER_INFO_LIST_NOT_FOUND = "没有找到用户列表信息";
}

Loading…
Cancel
Save