Browse Source

所有信息查询工作端

dev
zxc 4 years ago
parent
commit
502e52eef1
  1. 16
      epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/controller/ResiTopicController.java
  2. 10
      epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/ResiTopicService.java
  3. 29
      epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/impl/ResiTopicServiceImpl.java
  4. 32
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/AllMessagesFormDTO.java
  5. 78
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/AllMessagesResultDTO.java
  6. 10
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
  7. 5
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
  8. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java
  9. 13
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
  10. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  11. 50
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  12. 67
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml

16
epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/controller/ResiTopicController.java

@ -6,8 +6,10 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO; import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO;
import com.epmet.resi.group.dto.comment.result.GovCommentResultDTO; import com.epmet.resi.group.dto.comment.result.GovCommentResultDTO;
import com.epmet.resi.group.dto.topic.form.AllMessagesFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicDetailFormDTO; import com.epmet.resi.group.dto.topic.form.ResiTopicDetailFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO; import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.result.AllMessagesResultDTO;
import com.epmet.resi.group.dto.topic.result.GovHiddenTopicInfoResultDTO; import com.epmet.resi.group.dto.topic.result.GovHiddenTopicInfoResultDTO;
import com.epmet.resi.group.dto.topic.result.GovTopicInfoResultDTO; import com.epmet.resi.group.dto.topic.result.GovTopicInfoResultDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO; import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO;
@ -70,6 +72,18 @@ public class ResiTopicController {
return resiTopicService.topicDetail(topicDetailFormDTO); return resiTopicService.topicDetail(topicDetailFormDTO);
} }
/**
* @Description 小组内所有历史消息话题通知活动
* @Param tokenDto
* @Param topicPageFormDTO
* @author zxc
* @date 2021/4/28 上午10:41
*/
@PostMapping("allmessages")
public Result<List<AllMessagesResultDTO>> allMessages(@LoginUser TokenDto tokenDto, @RequestBody AllMessagesFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, AllMessagesFormDTO.AllMessagesForm.class);
formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result<List<AllMessagesResultDTO>>().ok(resiTopicService.allMessages(formDTO));
}
} }

10
epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/ResiTopicService.java

@ -3,8 +3,10 @@ package com.epmet.service;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO; import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO;
import com.epmet.resi.group.dto.comment.result.GovCommentResultDTO; import com.epmet.resi.group.dto.comment.result.GovCommentResultDTO;
import com.epmet.resi.group.dto.topic.form.AllMessagesFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicDetailFormDTO; import com.epmet.resi.group.dto.topic.form.ResiTopicDetailFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO; import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.result.AllMessagesResultDTO;
import com.epmet.resi.group.dto.topic.result.GovHiddenTopicInfoResultDTO; import com.epmet.resi.group.dto.topic.result.GovHiddenTopicInfoResultDTO;
import com.epmet.resi.group.dto.topic.result.GovTopicInfoResultDTO; import com.epmet.resi.group.dto.topic.result.GovTopicInfoResultDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO; import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO;
@ -53,5 +55,13 @@ public interface ResiTopicService {
**/ **/
Result<List<GovCommentResultDTO>> topicComments(ResiQueryCommentFormDTO queryCommentFormDTO); Result<List<GovCommentResultDTO>> topicComments(ResiQueryCommentFormDTO queryCommentFormDTO);
/**
* @Description 小组内所有历史消息话题通知活动
* @Param formDTO
* @author zxc
* @date 2021/4/28 下午1:29
*/
List<AllMessagesResultDTO> allMessages(AllMessagesFormDTO formDTO);
} }

29
epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/impl/ResiTopicServiceImpl.java

@ -1,20 +1,21 @@
package com.epmet.service.impl; package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.feign.ResiGroupFeignClient; import com.epmet.feign.ResiGroupFeignClient;
import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO; import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO;
import com.epmet.resi.group.dto.comment.result.GovCommentResultDTO; import com.epmet.resi.group.dto.comment.result.GovCommentResultDTO;
import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO; import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO;
import com.epmet.resi.group.dto.topic.form.AllMessagesFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicDetailFormDTO; import com.epmet.resi.group.dto.topic.form.ResiTopicDetailFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO; import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.result.GovHiddenTopicInfoResultDTO; import com.epmet.resi.group.dto.topic.result.*;
import com.epmet.resi.group.dto.topic.result.GovTopicInfoResultDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
import com.epmet.service.ResiTopicService; import com.epmet.service.ResiTopicService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -24,6 +25,8 @@ public class ResiTopicServiceImpl implements ResiTopicService {
@Autowired @Autowired
private ResiGroupFeignClient resiGroupFeignClient; private ResiGroupFeignClient resiGroupFeignClient;
@Autowired
private ResiGroupOpenFeignClient resiGroupOpenFeignClient;
/** /**
* @Description 政府端群组管理-屏蔽话题列表查询 * @Description 政府端群组管理-屏蔽话题列表查询
@ -125,4 +128,22 @@ public class ResiTopicServiceImpl implements ResiTopicService {
return new Result<List<GovCommentResultDTO>>().ok(commentsResult); return new Result<List<GovCommentResultDTO>>().ok(commentsResult);
} }
/**
* @Description 小组内所有历史消息话题通知活动
* @Param formDTO
* @author zxc
* @date 2021/4/28 下午1:29
*/
@Override
public List<AllMessagesResultDTO> allMessages(AllMessagesFormDTO formDTO) {
Result<List<AllMessagesResultDTO>> listResult = resiGroupOpenFeignClient.allMessages(formDTO);
if (!listResult.success()){
throw new RenException(listResult.getMsg());
}
if (CollectionUtils.isEmpty(listResult.getData())){
return new ArrayList<>();
}
return listResult.getData();
}
} }

32
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/AllMessagesFormDTO.java

@ -0,0 +1,32 @@
package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/4/28 上午10:43
* @DESC
*/
@Data
public class AllMessagesFormDTO implements Serializable {
private static final long serialVersionUID = -2658793886922936733L;
public interface AllMessagesForm{}
@NotBlank(message = "小组ID不能为空",groups = AllMessagesForm.class)
private String groupId;
@NotNull(message = "pageNo不能为空",groups = AllMessagesForm.class)
private Integer pageNo;
@NotNull(message = "pageSize不能为空",groups = AllMessagesForm.class)
private Integer pageSize;
private String customerId;
}

78
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/AllMessagesResultDTO.java

@ -0,0 +1,78 @@
package com.epmet.resi.group.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxc
* @DateTime 2021/4/28 上午10:51
* @DESC
*/
@Data
public class AllMessagesResultDTO implements Serializable {
private static final long serialVersionUID = -4123381714064953276L;
/**
* 话题通知活动Id
*/
private String id;
/**
* 发布者的全称街道-姓氏先生/女士专项组显示真实名
*/
private String userNickName;
/**
* 发布者的头像Url
*/
private String userHeadPhoto;
/**
* 发布时间yyyy-MM-dd
*/
private String releaseTime;
/**
* 内容
*/
private String content;
/**
* 话题状态discussing进行中closed已关闭
*/
private String status;
/**
* 数据类型(topic:话题 notice:通知 act:活动)
*/
private String contentType;
/**
* 徽章Url集合
*/
private List<String> badgeList = new ArrayList<>();
/**
* 通知是否过期(true: false:)
*/
private Boolean isExpirat;
/**
* 是否变更yesno
*/
private String isChange = "no";
/**
* 发布者ID
*/
private String userId;
/**
* 第一张图
*/
private String firstPhoto;
}

10
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java

@ -216,4 +216,14 @@ public interface ResiGroupOpenFeignClient {
**/ **/
@PostMapping(value = "/resi/group/topic/topicattachmentlist") @PostMapping(value = "/resi/group/topic/topicattachmentlist")
Result<TopicAttachmentResultDTO> topicAttachmentList(@RequestBody TopicAttachmentFormDTO formDTO); Result<TopicAttachmentResultDTO> topicAttachmentList(@RequestBody TopicAttachmentFormDTO formDTO);
/**
* @Description 小组内所有历史消息话题通知活动
* @Param tokenDto
* @Param topicPageFormDTO
* @author zxc
* @date 2021/4/28 上午10:41
*/
@PostMapping("/resi/group/topic/allmessages")
Result<List<AllMessagesResultDTO>> allMessages(@RequestBody AllMessagesFormDTO formDTO);
} }

5
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java

@ -157,4 +157,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien
public Result<TopicAttachmentResultDTO> topicAttachmentList(TopicAttachmentFormDTO formDTO) { public Result<TopicAttachmentResultDTO> topicAttachmentList(TopicAttachmentFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicAttachmentList", formDTO); return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicAttachmentList", formDTO);
} }
@Override
public Result<List<AllMessagesResultDTO>> allMessages(AllMessagesFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "allMessages", formDTO);
}
} }

9
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java

@ -26,6 +26,7 @@ import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.notice.result.ReadStatusResultDTO; import com.epmet.resi.group.dto.notice.result.ReadStatusResultDTO;
import com.epmet.resi.group.dto.notice.result.UnReadListResultDTO; import com.epmet.resi.group.dto.notice.result.UnReadListResultDTO;
import com.epmet.resi.group.dto.topic.result.AllMessagesResultDTO;
import com.epmet.resi.group.dto.topic.result.GetPastTopicListV2ResultDTO; import com.epmet.resi.group.dto.topic.result.GetPastTopicListV2ResultDTO;
import com.epmet.resi.group.dto.topic.result.LatestTenResultDTO; import com.epmet.resi.group.dto.topic.result.LatestTenResultDTO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -306,6 +307,14 @@ public interface ResiGroupDao extends BaseDao<ResiGroupEntity> {
*/ */
List<GetPastTopicListV2ResultDTO> getPastTopicListV2ByIds(@Param("ids")List<String> ids); List<GetPastTopicListV2ResultDTO> getPastTopicListV2ByIds(@Param("ids")List<String> ids);
/**
* @Description 根据IDs查询 topicactnotice信息工作端
* @Param ids
* @author zxc
* @date 2021/4/28 下午1:56
*/
List<AllMessagesResultDTO> getAllMessagesOrg(@Param("ids")List<String> ids);
/** /**
* @Description 根据用户ID和活动通知ID查询阅读状态 * @Description 根据用户ID和活动通知ID查询阅读状态
* @Param ids * @Param ids

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

@ -470,4 +470,17 @@ public class ResiTopicController {
formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result<List<GetPastTopicListV2ResultDTO>>().ok(topicService.getPastTopicListV2(formDTO)); return new Result<List<GetPastTopicListV2ResultDTO>>().ok(topicService.getPastTopicListV2(formDTO));
} }
/**
* @Description 小组内所有历史消息话题通知活动
* @Param tokenDto
* @Param topicPageFormDTO
* @author zxc
* @date 2021/4/28 上午10:41
*/
@PostMapping("allmessages")
public Result<List<AllMessagesResultDTO>> allMessages(@RequestBody AllMessagesFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, GetPastTopicListV2FormDTO.GetPastTopicListV2Form.class);
return new Result<List<AllMessagesResultDTO>>().ok(topicService.allMessages(formDTO));
}
} }

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

@ -380,4 +380,13 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
* @date 2021/4/27 下午1:50 * @date 2021/4/27 下午1:50
*/ */
List<UserInfoResultDTO> disPoseUserInfo(String groupType, List<String> userIds); List<UserInfoResultDTO> disPoseUserInfo(String groupType, List<String> userIds);
/**
* @Description 小组内所有历史消息话题通知活动
* @Param tokenDto
* @Param topicPageFormDTO
* @author zxc
* @date 2021/4/28 上午10:41
*/
List<AllMessagesResultDTO> allMessages(AllMessagesFormDTO formDTO);
} }

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

@ -2475,6 +2475,56 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
return result; return result;
} }
/**
* @Description 小组内所有历史消息话题通知活动
* @Param topicPageFormDTO
* @author zxc
* @date 2021/4/28 上午10:41
*/
@Override
public List<AllMessagesResultDTO> allMessages(AllMessagesFormDTO formDTO) {
PageInfo<String> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> groupMessageDao.selectNeedIds(formDTO.getGroupId()));
List<String> ids = pageInfo.getList();
if (CollectionUtils.isEmpty(ids)){
return new ArrayList<>();
}
// 根据IDs查询 topic,act,notice信息
List<AllMessagesResultDTO> allMessages = resiGroupDao.getAllMessagesOrg(ids);
if (CollectionUtils.isEmpty(allMessages)){
return new ArrayList<>();
}
// 查询小组类型
ResiGroupEntity resiGroup = resiGroupDao.selectById(formDTO.getGroupId());
List<String> userIds = allMessages.stream().map(m -> m.getUserId()).distinct().collect(Collectors.toList());
// 查询用户头像,姓名
List<UserInfoResultDTO> userInfos = disPoseUserInfo(resiGroup.getGroupType(), userIds);
if (CollectionUtils.isEmpty(userInfos)){
throw new RenException("未查询到用户信息");
}
Result<List<UserBadgesResultDTO>> badgeResult = epmetUserOpenFeignClient.userBadges(new UserBadgesFormDTO(formDTO.getCustomerId(),userIds));
if (!badgeResult.success()){
throw new RenException(ModuleConstant.GET_BADGE_INFO_ERR);
}
allMessages.forEach(a -> {
// 用户头像姓名赋值
userInfos.forEach(u -> {
if (a.getUserId().equals(u.getUserId())){
a.setUserNickName(u.getReleaseUserName());
a.setUserHeadPhoto(u.getReleaseUserHeadPhoto());
}
});
// 徽章
if (!CollectionUtils.isEmpty(badgeResult.getData())){
badgeResult.getData().forEach(b -> {
if (a.getUserId().equals(b.getUserId())){
a.setBadgeList(b.getBadgeIcons());
}
});
}
});
return allMessages;
}
} }

67
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml

@ -870,4 +870,71 @@
) )
</select> </select>
<!-- 根据IDs查询 topic,act,notice信息【工作端】 -->
<select id="getAllMessagesOrg" resultType="com.epmet.resi.group.dto.topic.result.AllMessagesResultDTO">
SELECT id,userId,releaseTime,content,status,contentType,isExpirat,isChange,firstPhoto FROM
((SELECT
t.ID,
t.CREATED_BY AS userId,
DATE_FORMAT(t.CREATED_TIME,'%Y-%m-%d %H:%i:%s') AS releaseTime,
t.TOPIC_CONTENT AS content,
t.`STATUS` AS status,
'topic' AS contentType,
false AS isExpirat,
'no' AS isChange,
IFNULL(ta.ATTACHMENT_URL,'') AS firstPhoto
FROM resi_topic t
LEFT JOIN resi_topic_attachment ta ON ta.TOPIC_ID = t.ID AND ta.ATTACHMENT_TYPE = 'image' AND ta.DEL_FLAG = '0' AND ta.SORT = 0
WHERE t.DEL_FLAG = '0'
AND t.`STATUS` != 'hidden'
AND (
<foreach collection="ids" item="id" separator=" OR ">
t.id = #{id}
</foreach>
)
)
UNION ALL
(SELECT
ai.ID,
ai.CREATED_BY AS userId,
DATE_FORMAT(ai.CHANGED_TIME,'%Y-%m-%d %H:%i:%s') AS releaseTime,
IFNULL(ai.TITLE,'') AS content,
ai.`STATUS` AS status,
'act' AS contentType,
false AS isExpirat,
'no' AS isChange,
IFNULL(ac2.CONTENT,'') AS firstPhoto
FROM group_act_info ai
LEFT JOIN group_act_content ac2 ON ac2.GROUP_ACT_ID = ai.ID AND ac2.CONTENT_TYPE = 'img' AND ac2.SORT = 1
WHERE ai.DEL_FLAG = '0'
AND (
<foreach collection="ids" item="id" separator=" OR ">
ai.id = #{id}
</foreach>
)
)
UNION ALL
(SELECT
n.ID,
n.CREATED_BY AS userId,
DATE_FORMAT(n.CREATED_TIME,'%Y-%m-%d %H:%i:%s') AS releaseTime,
n.TITLE AS content,
'' AS status,
'notice' AS contentType,
(CASE WHEN UNIX_TIMESTAMP(n.EXPIRATION_TIME) <![CDATA[ < ]]> UNIX_TIMESTAMP(NOW()) THEN TRUE ELSE FALSE END) AS isExpirat,
n.IS_CHANGE,
IFNULL(na.ATTACHMENT_URL,'') AS firstPhoto
FROM notice n
LEFT JOIN notice_attachment na ON na.NOTICE_ID = n.ID AND na.DEL_FLAG = '0' AND na.ATTACHMENT_TYPE = 'image' AND na.SORT = 0
WHERE n.DEL_FLAG = '0'
AND (
<foreach collection="ids" item="id" separator=" OR ">
n.id = #{id}
</foreach>
)
)
)temp
ORDER BY releaseTime DESC
</select>
</mapper> </mapper>

Loading…
Cancel
Save