Browse Source

Merge remote-tracking branch 'origin/dev_personal_center' into dev_personal_center

dev_shibei_match
yinzuomei 5 years ago
parent
commit
f56a7adf80
  1. 1
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml
  2. 1
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml
  3. 6
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java
  4. 6
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java
  5. 30
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/CustomerPageFormDTO.java
  6. 26
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ParticipatedTopicUnitResultDTO.java
  7. 11
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
  8. 7
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
  9. 49
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  10. 13
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
  11. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java
  12. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  13. 27
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  14. 21
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml
  15. 42
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.7__add_useradvice.sql

1
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml

@ -391,6 +391,7 @@
WHERE i.DEL_FLAG = '0' WHERE i.DEL_FLAG = '0'
AND i.ISSUE_STATUS = 'voting' AND i.ISSUE_STATUS = 'voting'
AND i.CREATED_BY = #{userId} AND i.CREATED_BY = #{userId}
ORDER BY i.CREATED_TIME DESC
</select> </select>
<!-- 查询我发起的议题(可根据状态查询)--> <!-- 查询我发起的议题(可根据状态查询)-->

1
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml

@ -85,5 +85,6 @@
WHERE i.DEL_FLAG = '0' WHERE i.DEL_FLAG = '0'
AND vd.DEL_FLAG = '0' AND vd.DEL_FLAG = '0'
AND vd.CREATED_BY = #{userId} AND vd.CREATED_BY = #{userId}
ORDER BY i.CREATED_TIME DESC
</select> </select>
</mapper> </mapper>

6
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java

@ -3,6 +3,7 @@ package com.epmet.resi.group.dto.member.result;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* @Description * @Description
@ -45,4 +46,9 @@ public class ApplyingMemberResultDTO implements Serializable {
* 入群被拒 - rejected * 入群被拒 - rejected
*/ */
private String status; private String status;
/**
* 用户徽章Url列表
*/
private List<String> badgeList;
} }

6
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java

@ -4,6 +4,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* @Description * @Description
@ -43,4 +44,9 @@ public class GroupMemberListResultDTO implements Serializable {
* 审核通过 - approved 已禁言 - silent * 审核通过 - approved 已禁言 - silent
*/ */
private String status; private String status;
/**
* 用户徽章列表
*/
private List<String> badgeList;
} }

30
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/CustomerPageFormDTO.java

@ -0,0 +1,30 @@
package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 客户Id 用户Id 分页
* @ClassName CustomerPageFormDTO
* @Auth wangc
* @Date 2020-11-11 23:15
*/
@Data
public class CustomerPageFormDTO implements Serializable {
private static final long serialVersionUID = 8678047078015445193L;
@NotBlank(message = "客户Id不能为空")
private String customerId;
@NotBlank(message = "用户Id不能为空")
private String userId;
@Min(1)
private Integer pageNo;
@Min(1)
private Integer pageSize;
}

26
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ParticipatedTopicUnitResultDTO.java

@ -0,0 +1,26 @@
package com.epmet.resi.group.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 个人中心 参与过的话题返参DTO
* @ClassName ParticipatedTopicUnitResultDTO
* @Auth wangc
* @Date 2020-11-11 23:00
*/
@Data
public class ParticipatedTopicUnitResultDTO implements Serializable {
private static final long serialVersionUID = 1392205563783715932L;
private String topicId;
private String topicReleaseGridName;
private String topicContent;
private Long releaseTime;
private String topicReleaseGroupName;
}

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

@ -4,7 +4,9 @@ import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO;
import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO;
import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO;
import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO;
import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO;
import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback; import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
@ -39,4 +41,13 @@ public interface ResiGroupOpenFeignClient {
@PostMapping("resi/group/group/groupinfo") @PostMapping("resi/group/group/groupinfo")
Result<List<GroupInfoResultDTO>> selectGroupInfo(@RequestBody GroupInfoFormDTO groupInfoFormDTO); Result<List<GroupInfoResultDTO>> selectGroupInfo(@RequestBody GroupInfoFormDTO groupInfoFormDTO);
/**
* @Description 个人中心-我参与过的话题
* @param param
* @return java.util.List<com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO>
* @author wangc
* @date 2020.11.11 23:20
*/
@PostMapping("resi/group/topic/my-part-topics")
Result<List<ParticipatedTopicUnitResultDTO>> myPartTopics(@RequestBody CustomerPageFormDTO param);
} }

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

@ -5,7 +5,9 @@ import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO;
import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO;
import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO;
import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO;
import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -31,4 +33,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "selectGroupInfo", groupInfoFormDTO); return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "selectGroupInfo", groupInfoFormDTO);
} }
@Override
public Result<List<ParticipatedTopicUnitResultDTO>> myPartTopics(CustomerPageFormDTO param) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "myPartTopics", param);
}
} }

49
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java

@ -31,12 +31,10 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.ReadFlagConstant; import com.epmet.constant.ReadFlagConstant;
import com.epmet.dto.form.UserMessageFormDTO; import com.epmet.dto.form.*;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.modules.constant.GroupMemberConstant; import com.epmet.modules.constant.GroupMemberConstant;
import com.epmet.modules.constant.UserMessageConstant; import com.epmet.modules.constant.UserMessageConstant;
import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.feign.EpmetUserFeignClient;
@ -65,6 +63,7 @@ import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO; import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO;
import com.epmet.resi.group.dto.member.form.*; import com.epmet.resi.group.dto.member.form.*;
import com.epmet.resi.group.dto.member.form.CommonGridIdListFormDTO;
import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO; import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO;
import com.epmet.resi.group.dto.member.result.GridVotableCountResultDTO; import com.epmet.resi.group.dto.member.result.GridVotableCountResultDTO;
import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO; import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO;
@ -75,10 +74,12 @@ import org.slf4j.LoggerFactory;
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.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 群组成员关系表 * 群组成员关系表
@ -118,6 +119,8 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
private ResiGroupRedis resiGroupRedis; private ResiGroupRedis resiGroupRedis;
@Autowired @Autowired
private ResiGroupDao resiGroupDao; private ResiGroupDao resiGroupDao;
@Autowired
private EpmetUserOpenFeignClient userOpenFeignClient;
@Override @Override
public PageData<ResiGroupMemberDTO> page(Map<String, Object> params) { public PageData<ResiGroupMemberDTO> page(Map<String, Object> params) {
@ -329,6 +332,24 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
userResiInfoDTOListResult.getCode(), userResiInfoDTOListResult.getCode(),
userResiInfoDTOListResult.getMsg())); userResiInfoDTOListResult.getMsg()));
} }
//徽章信息
ResiGroupEntity group = resiGroupDao.selectById(groupMemberListFormDTO.getGroupId());
if(null != group && StringUtils.isNotBlank(group.getCustomerId())){
Result<Map<String, List<UserBadgeUnitFormDTO>>> badgeR
= userOpenFeignClient.userShowBadge(new UserGroupFormDTO(group.getCustomerId(), userIdList));
if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){
Map<String, List<UserBadgeUnitFormDTO>> map = badgeR.getData();
list.forEach(member -> {
member.setBadgeList(
CollectionUtils.isEmpty(map.get(member.getUserId())) ?
Collections.EMPTY_LIST:
map.get(member.getUserId()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) );
});
}else{
list.forEach(member -> member.setBadgeList(Collections.EMPTY_LIST));
}
}
return list; return list;
} }
@ -368,6 +389,26 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
}else{ }else{
logger.warn(String.format("居民端组长【%s】查看入群待审核列表调用%s服务,获取用户头像显示昵称失败,错误码%s,错误提示%s",applyingMemberFormDTO.getUserId(), ServiceConstant.EPMET_USER_SERVER, userResiInfoDTOListResult.getCode(), userResiInfoDTOListResult.getMsg())); logger.warn(String.format("居民端组长【%s】查看入群待审核列表调用%s服务,获取用户头像显示昵称失败,错误码%s,错误提示%s",applyingMemberFormDTO.getUserId(), ServiceConstant.EPMET_USER_SERVER, userResiInfoDTOListResult.getCode(), userResiInfoDTOListResult.getMsg()));
} }
//徽章信息
ResiGroupEntity group = resiGroupDao.selectById(applyingMemberFormDTO.getGroupId());
if(null != group && StringUtils.isNotBlank(group.getCustomerId())){
Result<Map<String, List<UserBadgeUnitFormDTO>>> badgeR
= userOpenFeignClient.userShowBadge(new UserGroupFormDTO(group.getCustomerId(), userIdList));
if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){
Map<String, List<UserBadgeUnitFormDTO>> map = badgeR.getData();
list.forEach(member -> {
member.setBadgeList(
CollectionUtils.isEmpty(map.get(member.getApplyUserId())) ?
Collections.EMPTY_LIST:
map.get(member.getApplyUserId()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) );
});
}else{
list.forEach(member -> member.setBadgeList(Collections.EMPTY_LIST));
}
}
return list; return list;
} }

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

@ -272,5 +272,18 @@ public class ResiTopicController {
return new Result().ok(myTopics); return new Result().ok(myTopics);
} }
/**
* @Description 个人中心-我参与过的话题
* @param param
* @return java.util.List<com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO>
* @author wangc
* @date 2020.11.11 23:20
*/
@PostMapping("my-part-topics")
public Result<List<ParticipatedTopicUnitResultDTO>> myPartTopics(@RequestBody CustomerPageFormDTO param){
ValidatorUtils.validateEntity(param);
return new Result<List<ParticipatedTopicUnitResultDTO>>().ok(topicService.getParticipatedTopics(param));
}
} }

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

@ -161,4 +161,13 @@ public interface ResiTopicDao extends BaseDao<ResiTopicEntity> {
*/ */
List<IssueGridResultDTO> selectIssueList(@Param("topicList") List<String> topicList); List<IssueGridResultDTO> selectIssueList(@Param("topicList") List<String> topicList);
/**
* @Description 查询我参与过的话题
* @param customerId
* @param userId
* @return java.util.List<com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO>
* @author wangc
* @date 2020.11.11 23:08
*/
List<ParticipatedTopicUnitResultDTO> selectParticipatedTopics(@Param("customerId") String customerId,@Param("userId") String userId);
} }

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

@ -271,4 +271,13 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
* @date 2020.11.10 15:03 * @date 2020.11.10 15:03
*/ */
List<MyTopicsResultDTO> listMyTopics(String customerId, String userId, Integer pageNo, Integer pageSize); List<MyTopicsResultDTO> listMyTopics(String customerId, String userId, Integer pageNo, Integer pageSize);
/**
* @Description 个人中心-我参与过的话题
* @param param
* @return java.util.List<com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO>
* @author wangc
* @date 2020.11.11 23:20
*/
List<ParticipatedTopicUnitResultDTO> getParticipatedTopics(CustomerPageFormDTO param);
} }

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

@ -84,6 +84,7 @@ import com.epmet.resi.group.dto.topic.form.CheckTopicPublisherFormDTO;
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO;
import com.epmet.resi.group.dto.topic.result.*; import com.epmet.resi.group.dto.topic.result.*;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@ -1413,6 +1414,32 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
return myTopics; return myTopics;
} }
/**
* @Description 个人中心-我参与过的话题
* @param param
* @return java.util.List<com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO>
* @author wangc
* @date 2020.11.11 23:20
*/
@Override
public List<ParticipatedTopicUnitResultDTO> getParticipatedTopics(CustomerPageFormDTO param) {
PageInfo<ParticipatedTopicUnitResultDTO> page =
PageHelper.startPage(Optional.ofNullable(param.getPageNo()).orElse(NumConstant.ONE),
Optional.ofNullable(param.getPageSize()).orElse(NumConstant.ONE)).doSelectPageInfo(() ->
baseDao.selectParticipatedTopics(param.getCustomerId(),param.getUserId()));
List<ParticipatedTopicUnitResultDTO> result = page.getList();
if(CollectionUtils.isEmpty(result)) return Collections.EMPTY_LIST;
Result<List<OrgInfoResultDTO>> gridR = govOrgOpenFeignClient.selectOrgInfo(
new OrgInfoFormDTO(OrgInfoConstant.GRID,result.stream().map(ParticipatedTopicUnitResultDTO :: getTopicReleaseGridName).distinct().collect(Collectors.toList())));
if(gridR.success() && !CollectionUtils.isEmpty(gridR.getData())){
return result.stream().flatMap(topic -> gridR.getData().stream() .filter(grid -> StringUtils.equals(grid.getOrgId(),topic.getTopicReleaseGridName())).map(orgInfo -> {
topic.setTopicReleaseGridName(orgInfo.getOrgId());
return topic;
})).collect(Collectors.toList());
} return Collections.EMPTY_LIST;
}
} }

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

@ -474,5 +474,26 @@
</foreach> </foreach>
</select> </select>
<!-- 查询我参与过的话题 -->
<select id="selectParticipatedTopics" resultType="com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO">
SELECT
topic.id AS topicId,
topic.topic_content,
UNIX_TIMESTAMP(topic.created_time) AS releaseTime,
groupp.group_name AS topicReleaseGroupName,
groupp.grid_id AS topicReleaseGridName
FROM
resi_topic topic LEFT JOIN resi_group groupp ON topic.group_id = groupp.ID AND groupp.del_flag = '0' AND groupp.customer_id = #{customerId}
WHERE
topic.del_flag = '0'
AND
topic.id IN (
SELECT DISTINCT topic_id FROM resi_topic_comment WHERE
del_flag = '0' AND created_by = #{userId}
)
AND topic.created_by <![CDATA[ <> ]]> #{userId}
ORDER BY topic.created_time desc
</select>
</mapper> </mapper>

42
epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.7__add_useradvice.sql

@ -0,0 +1,42 @@
CREATE TABLE `user_advice` (
`ID` varchar(64) NOT NULL COMMENT '主键',
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID',
`CUSTOMER_NAME` varchar(64) NOT NULL COMMENT '客户名',
`AGENCY_ID` varchar(64) NOT NULL COMMENT '组织ID',
`AGENCY_NAME` varchar(64) NOT NULL COMMENT '组织名',
`GRID_ID` varchar(64) NOT NULL COMMENT '网格ID',
`GRID_NAME` varchar(64) NOT NULL COMMENT '网格名',
`USER_ID` varchar(64) NOT NULL COMMENT 'userid',
`USER_NAME` varchar(32) NOT NULL COMMENT '用户姓名',
`REG_PHONE` varchar(32) NOT NULL COMMENT '用户注册手机号',
`ADVICE_CONTENT` varchar(500) NOT NULL COMMENT '建议描述',
`PHONE` varchar(32) DEFAULT NULL COMMENT '填写手机号',
`ADVICE_TIME` datetime NOT NULL COMMENT '建议时间',
`ADVICE_TYPE` varchar(32) DEFAULT NULL COMMENT '问题分类(gov政府software软件,逗号分隔)',
`REPLY_CONTENT` varchar(500) DEFAULT NULL COMMENT '回复内容',
`REPLY_USER_ID` varchar(64) DEFAULT NULL COMMENT '回复人id',
`REPLY_USER_NAME` varchar(32) DEFAULT NULL COMMENT '回复人姓名',
`REPLY_TIME` datetime DEFAULT NULL COMMENT '回复时间',
`GOV_CONTENT` varchar(500) DEFAULT NULL COMMENT '政府存证文字',
`DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标志',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户建议表';
CREATE TABLE `user_advice_img` (
`ID` varchar(64) NOT NULL COMMENT '主键',
`ADVICE_ID` varchar(64) NOT NULL COMMENT '建议id',
`TYPE` varchar(10) NOT NULL COMMENT '图片类型,resi是用户上传的建议图片,oper是运营上传的代替政府回复的存证',
`IMG_URL` varchar(255) NOT NULL COMMENT '图片url',
`DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标志',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户建议图片';
Loading…
Cancel
Save