Browse Source

烟台楼院小组功能修改

dev
zhaoqifeng 3 years ago
parent
commit
6d43bc53d9
  1. 31
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/YtTopicPageFormDTO.java
  2. 2
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/YtTopicDetailResultDTO.java
  3. 1
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/YtTopicInfoResultDTO.java
  4. 5
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/YtTopicController.java
  5. 10
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/YtTopicEntity.java
  6. 29
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/YtTopicServiceImpl.java
  7. 2
      epmet-module/resi-group/resi-group-server/src/main/resources/db/migration/V0.0.28__yt_topic.sql
  8. 26
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/YtTopicDao.xml

31
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/YtTopicPageFormDTO.java

@ -13,9 +13,13 @@ import java.io.Serializable;
public class YtTopicPageFormDTO extends PageFormDTO implements Serializable{
private static final long serialVersionUID = 1L;
/**
* 组织Id
* */
private String agencyId;
/**
* 组Id
* 网格Idsource是居民端时必填
* */
@NotBlank(message = "网格Id不能为空")
private String gridId;
@ -29,4 +33,29 @@ public class YtTopicPageFormDTO extends PageFormDTO implements Serializable{
* 用户Id
* */
private String userId;
/**
* 请求来源0 居民端1 PC端
* */
private String source;
/**
* 话题内容
* */
private String topicContent;
/**
* 话题发表人
* */
private String userName;
/**
* 发布时间
* */
private String startDate;
/**
* 发布时间
* */
private String endDate;
}

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

@ -81,5 +81,5 @@ public class YtTopicDetailResultDTO implements Serializable {
* 投票反对数
* */
private String oppositionCount;
private String userName;
}

1
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/YtTopicInfoResultDTO.java

@ -29,6 +29,7 @@ public class YtTopicInfoResultDTO implements Serializable {
* 发布人名称
* */
private String releaseUserName;
private String userName;
/**
* 发布人头像

5
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/YtTopicController.java

@ -1,7 +1,9 @@
package com.epmet.modules.topic.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.MaskResponse;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
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.Result;
@ -76,9 +78,12 @@ public class YtTopicController {
* @Date 2023/1/30 16:55
*/
@PostMapping("topicList")
@MaskResponse(fieldNames = "userName", fieldsMaskType = {MaskResponse.MASK_TYPE_CHINESE_NAME})
public Result<PageData<YtTopicInfoResultDTO>> getTopicList(@LoginUser TokenDto tokenDto, @RequestBody YtTopicPageFormDTO topicPageFormDTO) {
topicPageFormDTO.setUserId(tokenDto.getUserId());
if (NumConstant.ZERO_STR.equals(topicPageFormDTO.getSource())) {
ValidatorUtils.validateEntity(topicPageFormDTO);
}
return new Result<PageData<YtTopicInfoResultDTO>>().ok(ytTopicService.getTopicList(tokenDto, topicPageFormDTO));
}

10
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/YtTopicEntity.java

@ -28,6 +28,11 @@ public class YtTopicEntity extends BaseEpmetEntity {
*/
private String gridId;
/**
* 网格所有上级组织ID
*/
private String pids;
/**
*
*/
@ -88,4 +93,9 @@ public class YtTopicEntity extends BaseEpmetEntity {
*/
private String locateLatitude;
/**
* 话题发表人姓名
*/
private String userName;
}

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

@ -3,10 +3,14 @@ package com.epmet.modules.topic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerResiUserRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.redis.common.bean.ResiUserInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
@ -71,20 +75,31 @@ public class YtTopicServiceImpl extends BaseServiceImpl<YtTopicDao, YtTopicEntit
throw new EpmetException(ModuleConstant.TOPIC_CONTENT_AND_VOICE_IS_NULL);
}
//1.保存话题草稿
if(formDTO.getTopicContent().length() > TopicConstant.MAX_NUMBER_OF_CONTENT){
//内容超过最大限制
log.error(ModuleConstant.TOPIC_CONTENT_NUMBER_OF_WORDS_EXCEEDED);
throw new EpmetException(ModuleConstant.TOPIC_CONTENT_NUMBER_OF_WORDS_EXCEEDED);
}
//1.保存话题
YtTopicEntity topic = ConvertUtils.sourceToTarget(formDTO, YtTopicEntity.class);
//如果只有语音,则话题内容为语音话题
if (CollectionUtils.isNotEmpty(formDTO.getVoiceList()) && StringUtils.isBlank(formDTO.getTopicContent())) {
topic.setTopicContent("语音话题");
}
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getGridId());
if (null == gridInfo) {
String msg = "获取网格信息失败";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg);
}
ResiUserInfoCache userInfo = CustomerResiUserRedis.getUserBaseInfo(tokenDto.getUserId());
if (null == userInfo) {
String msg = "获取用户信息失败";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg);
}
topic.setCustomerId(tokenDto.getCustomerId());
topic.setStatus(TopicConstant.PUBLISHMENT);
topic.setPids(gridInfo.getPids());
topic.setUserName(userInfo.getRealName());
baseDao.insert(topic);
//保存图片附件
@ -217,6 +232,16 @@ public class YtTopicServiceImpl extends BaseServiceImpl<YtTopicDao, YtTopicEntit
*/
@Override
public PageData<YtTopicInfoResultDTO> getTopicList(TokenDto tokenDto, YtTopicPageFormDTO topicPageFormDTO) {
if (NumConstant.ONE_STR.equals(topicPageFormDTO.getSource())) {
if (StringUtils.isBlank(topicPageFormDTO.getGridId())) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
if (null == staffInfo) {
String msg = "获取工作人员信息失败";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg);
}
topicPageFormDTO.setAgencyId(staffInfo.getAgencyId());
}
}
PageMethod.startPage(topicPageFormDTO.getPageNo(), topicPageFormDTO.getPageSize());
List<YtTopicInfoResultDTO> list = baseDao.selectTopicList(topicPageFormDTO);
PageInfo<YtTopicInfoResultDTO> pageInfo = new PageInfo<>(list);

2
epmet-module/resi-group/resi-group-server/src/main/resources/db/migration/V0.0.28__yt_topic.sql

@ -2,6 +2,7 @@ CREATE TABLE `yt_topic` (
`ID` varchar(64) NOT NULL COMMENT '主键',
`CUSTOMER_ID` varchar(64) DEFAULT NULL COMMENT '客户ID',
`GRID_ID` varchar(64) DEFAULT NULL COMMENT '网格ID',
`PIDS` varchar(255) DEFAULT NULL COMMENT '网格所有上级组织ID',
`TOPIC_CONTENT` text COMMENT '话题内容',
`STATUS` varchar(32) NOT NULL COMMENT '话题状态(讨论中 - discussing、 已屏蔽 - hidden、 已关闭 - closed)',
`CLOSED_STATUS` varchar(32) DEFAULT NULL COMMENT '关闭状态:已解决 resolved,未解决 unresolved',
@ -14,6 +15,7 @@ CREATE TABLE `yt_topic` (
`LOCATE_ADDRESS` varchar(255) DEFAULT NULL COMMENT '定位地址',
`LOCATE_LONGITUDE` varchar(32) DEFAULT NULL COMMENT '定位经度',
`LOCATE_LATITUDE` varchar(32) DEFAULT NULL COMMENT '定位维度',
`USER_NAME` varchar(20) DEFAULT NULL COMMENT '话题发表人姓名',
`DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标记 0:未删除,1:已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(32) NOT NULL COMMENT '创建人,发布人Id来源于user',

26
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/YtTopicDao.xml

@ -2,18 +2,34 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.modules.topic.dao.YtTopicDao">
<select id="selectTopicList" resultType = "com.epmet.resi.group.dto.topic.result.YtTopicInfoResultDTO">
SELECT
ID AS topicId,
<select id="selectTopicList" resultType="com.epmet.resi.group.dto.topic.result.YtTopicInfoResultDTO">
SELECT ID AS topicId,
TOPIC_CONTENT,
STATUS,
USER_NAME,
CREATED_BY AS userId,
CREATED_TIME AS releaseTime
FROM
yt_topic
FROM yt_topic
WHERE
DEL_FLAG = '0'
<if test="agencyId != null and agencyId.trim() != ''">
AND PIDS LIKE CONCAT('%', #{agencyId}, '%')
</if>
<if test="gridId != null and gridId.trim() != ''">
AND GRID_ID = #{gridId}
</if>
<if test="topicContent != null and topicContent.trim() != ''">
AND TOPIC_CONTENT LIKE CONCAT('%', #{topicContent}, '%')
</if>
<if test="userName != null and userName.trim() != ''">
AND USER_NAME LIKE CONCAT('%', #{userName}, '%')
</if>
<if test="startDate != null and startDate.trim() != ''">
AND DATE_FORMAT(CREATED_TIME, "%Y-%m-%d") &gt;= #{startDate}
</if>
<if test="endDate != null and endDate.trim() != ''">
AND DATE_FORMAT(CREATED_TIME, "%Y-%m-%d") &lt;= #{endDate}
</if>
ORDER BY CREATED_TIME DESC
</select>
</mapper>
Loading…
Cancel
Save