Browse Source

小组历史数据查询,未完待续

dev
zxc 4 years ago
parent
commit
795a159078
  1. 5
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/GetPastTopicListV2FormDTO.java
  2. 4
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/GetPastTopicListV2ResultDTO.java
  3. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/GroupMessageDao.java
  4. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java
  5. 43
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  6. 5
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java
  7. 10
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupMessageDao.xml
  8. 59
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml

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

@ -18,11 +18,6 @@ public class GetPastTopicListV2FormDTO implements Serializable {
public interface GetPastTopicListV2Form{}
/**
* null默认查询讨论中已关闭dicussing讨论中closed关闭
*/
private String status;
@NotBlank(message = "小组ID不能为空",groups = GetPastTopicListV2Form.class)
private String groupId;

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

@ -1,5 +1,6 @@
package com.epmet.resi.group.dto.topic.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
@ -74,4 +75,7 @@ public class GetPastTopicListV2ResultDTO implements Serializable {
* 徽章Url集合
*/
private List<String> badgeList;
@JsonIgnore
private String userId;
}

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

@ -20,6 +20,9 @@ package com.epmet.modules.group.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.group.entity.GroupMessageEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 组内消息(话题通知活动)记录表
@ -31,4 +34,12 @@ import org.apache.ibatis.annotations.Mapper;
public interface GroupMessageDao extends BaseDao<GroupMessageEntity> {
GroupMessageEntity selectByMessageId(String messageId);
/**
* @Description 按条件获取分页后的ID
* @Param groupId
* @author zxc
* @date 2021/4/22 下午2:37
*/
List<String> selectNeedIds(@Param("groupId") String groupId);
}

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

@ -25,6 +25,7 @@ import com.epmet.resi.group.dto.group.form.*;
import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.notice.result.UnReadListResultDTO;
import com.epmet.resi.group.dto.topic.result.GetPastTopicListV2ResultDTO;
import com.epmet.resi.group.dto.topic.result.LatestTenResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -295,4 +296,12 @@ public interface ResiGroupDao extends BaseDao<ResiGroupEntity> {
* @date 2021/4/21 下午5:08
*/
List<UnReadListResultDTO> selectUnReadInfos(@Param("ids")List<String> ids);
/**
* @Description 根据IDs查询 topicactnotice信息
* @Param ids
* @author zxc
* @date 2021/4/22 下午2:59
*/
List<GetPastTopicListV2ResultDTO> getPastTopicListV2ByIds(@Param("ids")List<String> ids);
}

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

@ -57,6 +57,7 @@ import com.epmet.modules.constant.WxmpSubscribeConstant;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.feign.GovIssueFeignClient;
import com.epmet.modules.feign.GovOrgFeignClient;
import com.epmet.modules.group.dao.GroupMessageDao;
import com.epmet.modules.group.dao.ResiGroupDao;
import com.epmet.modules.group.dao.ResiGroupStatisticalDao;
import com.epmet.modules.group.entity.ResiGroupEntity;
@ -183,6 +184,9 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
@Autowired
private LoginUserUtil loginUserUtil;
@Autowired
private GroupMessageDao groupMessageDao;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}")
@ -2273,7 +2277,44 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
*/
@Override
public List<GetPastTopicListV2ResultDTO> getPastTopicListV2(GetPastTopicListV2FormDTO formDTO) {
return null;
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<GetPastTopicListV2ResultDTO> infos = resiGroupDao.getPastTopicListV2ByIds(ids);
if (CollectionUtils.isEmpty(infos)){
return new ArrayList<>();
}
ResiGroupEntity resiGroup = resiGroupDao.selectById(formDTO.getGroupId());
List<String> userIds = infos.stream().map(m -> m.getUserId()).collect(Collectors.toList());
// 用户信息
List<UserInfoResultDTO> userInfos = this.disPoseUserInfo(resiGroup.getGroupType(), userIds);
// 各字段赋值
infos.forEach(i -> {
// 用户头像,姓名赋值
if (!CollectionUtils.isEmpty(userInfos)){
userInfos.forEach(u -> {
if (i.getUserId().equals(u.getUserId())){
i.setReleaseUserName(u.getReleaseUserName());
i.setReleaseUserHeadPhoto(u.getReleaseUserHeadPhoto());
}
});
}
// 是否是本人赋值
i.setReleaseUserFlag(formDTO.getUserId().equals(i.getUserId()));
// 是否转议题赋值
i.setShiftIssueFlag(StringUtils.isNotEmpty(i.getIssueId()));
if (i.getReleaseUserFlag()==true){
// 如果此贴是自己发布的,肯定是已读
i.setReadOrUnRead(ModuleConstant.READ_FLAG_YES);
}else {
// TODO 不是自己发布的
}
});
return infos;
}
/**

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

@ -397,4 +397,9 @@ public interface ModuleConstant extends Constant {
String GET_USER_INFO_ERR = "查询用户信息失败了";
/**
* 已读
*/
String READ_FLAG_YES = "read";
}

10
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupMessageDao.xml

@ -9,4 +9,14 @@
AND gm.MESSAGE_ID=#{messageId}
</select>
<select id="selectNeedIds" resultType="java.lang.String">
SELECT
message_id
FROM group_message
WHERE DEL_FLAG = '0'
AND GROUP_ID = #{groupId}
order by created_time desc
</select>
</mapper>

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

@ -767,4 +767,63 @@
)temp
</select>
<!-- 根据IDs查询 topic,act,notice信息 -->
<select id="getPastTopicListV2ByIds" resultType="com.epmet.resi.group.dto.topic.result.GetPastTopicListV2ResultDTO">
SELECT id,userId,releaseTime,content,status,issueId,contentType FROM
((SELECT
t.ID,
t.CREATED_BY AS userId,
DATE_FORMAT(t.CREATED_TIME,'%Y-%m-%d %H:%m:%s') AS releaseTime,
t.TOPIC_CONTENT AS content,
t.`STATUS` AS status,
IFNULL(t.ISSUE_ID,'') AS issueId,
'topic' AS contentType
FROM resi_topic t
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.CREATED_TIME,'%Y-%m-%d %H:%m:%s') AS releaseTime,
IFNULL(ac.CONTENT,'') AS content,
ai.`STATUS` AS status,
'' AS issueId,
'act' AS contentType
FROM group_act_info ai
LEFT JOIN group_act_content ac ON ac.GROUP_ACT_ID = ai.ID AND ac.CONTENT_TYPE = 'text'
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:%m:%s') AS releaseTime,
n.CONTENT AS content,
'' AS status,
'' AS issueId,
'notice' AS contentType
FROM notice n
WHERE n.DEL_FLAG = '0'
AND (
<foreach collection="ids" item="id" separator=" OR ">
n.id = #{id}
</foreach>
)
)
)temp
ORDER BY releaseTime DESC
</select>
</mapper>

Loading…
Cancel
Save