Browse Source

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

dev
zxc 5 years ago
parent
commit
86b03e30a2
  1. 5
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/constant/IssueOpenConstant.java
  2. 13
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java
  3. 5
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml
  4. 1
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml
  5. 6
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java
  6. 6
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java
  7. 1
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyTopicsResultDTO.java
  8. 49
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  9. 26
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  10. 3
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml
  11. 36
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java
  12. 42
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.7__add_useradvice.sql

5
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/constant/IssueOpenConstant.java

@ -27,4 +27,9 @@ public interface IssueOpenConstant {
* 议题解决类型-未解决
*/
String ISSUE_UNRESOLVED = "unresolved";
/**
* 议题来源类型 eg:resi_topic
*/
String SOURCE_TYPE_RT="resi_topic";
}

13
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java

@ -17,9 +17,10 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
@ -143,4 +144,14 @@ public class IssueDTO implements Serializable {
*/
private Date updatedTime;
/**
* 转项目日期 服务间调用日期一致性
*/
private Long shiftedTimeStamp;
/**
* 关闭日期
*/
private Long closedTimeStamp;
}

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

@ -391,12 +391,15 @@
WHERE i.DEL_FLAG = '0'
AND i.ISSUE_STATUS = 'voting'
AND i.CREATED_BY = #{userId}
ORDER BY i.CREATED_TIME DESC
</select>
<!-- 查询我发起的议题(可根据状态查询)-->
<select id="selectMyPubIssues" parameterType="map" resultType="com.epmet.dto.IssueDTO">
SELECT
*
i.*,
UNIX_TIMESTAMP(i.CLOSED_TIME) AS closedTimeStamp,
UNIX_TIMESTAMP(i.SHIFTED_TIME) AS shiftedTimeStamp
FROM
issue i
WHERE

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

@ -85,5 +85,6 @@
WHERE i.DEL_FLAG = '0'
AND vd.DEL_FLAG = '0'
AND vd.CREATED_BY = #{userId}
ORDER BY i.CREATED_TIME DESC
</select>
</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 java.io.Serializable;
import java.util.List;
/**
* @Description
@ -45,4 +46,9 @@ public class ApplyingMemberResultDTO implements Serializable {
* 入群被拒 - rejected
*/
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 java.io.Serializable;
import java.util.List;
/**
* @Description
@ -43,4 +44,9 @@ public class GroupMemberListResultDTO implements Serializable {
* 审核通过 - approved 已禁言 - silent
*/
private String status;
/**
* 用户徽章列表
*/
private List<String> badgeList;
}

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

@ -9,6 +9,7 @@ public class MyTopicsResultDTO {
private Long releaseTime;
private String topicContent;
private String releaseGroupName;
private String releaseGridId;
private String releaseGridName;
}

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.Result;
import com.epmet.constant.ReadFlagConstant;
import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.modules.constant.GroupMemberConstant;
import com.epmet.modules.constant.UserMessageConstant;
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.ResiGroupMemberInfoRedisDTO;
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.GridVotableCountResultDTO;
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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* 群组成员关系表
@ -118,6 +119,8 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
private ResiGroupRedis resiGroupRedis;
@Autowired
private ResiGroupDao resiGroupDao;
@Autowired
private EpmetUserOpenFeignClient userOpenFeignClient;
@Override
public PageData<ResiGroupMemberDTO> page(Map<String, Object> params) {
@ -329,6 +332,24 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
userResiInfoDTOListResult.getCode(),
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;
}
@ -368,6 +389,26 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
}else{
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;
}

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

@ -37,12 +37,15 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.OrgInfoConstant;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CommonDataFilterResultDTO;
import com.epmet.dto.result.IssueInitiatorResultDTO;
import com.epmet.dto.result.OrgInfoResultDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.modules.constant.GroupMemberConstant;
import com.epmet.modules.constant.ResiGroupRedisKeys;
import com.epmet.modules.feign.EpmetUserFeignClient;
@ -141,6 +144,9 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
@Autowired
private GovOrgFeignClient govOrgFeignClient;
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private GovIssueFeignClient govIssueFeignClient;
@ -1386,7 +1392,25 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
public List<MyTopicsResultDTO> listMyTopics(String customerId, String userId, Integer pageNo, Integer pageSize) {
PageHelper.startPage(pageNo, pageSize);
List<MyTopicsResultDTO> myTopics = resiTopicDao.listMyTopics(userId, customerId);
// todo 查询网格名称,赋值
HashMap<String, String> gridIdAndNames = new HashMap<>();
Set<String> gridIds = myTopics.stream().map(c -> c.getReleaseGridId()).collect(Collectors.toSet());
OrgInfoFormDTO form = new OrgInfoFormDTO();
form.setOrgType(OrgInfoConstant.GRID);
form.setOrgIds(new ArrayList<>(gridIds));
Result<List<OrgInfoResultDTO>> gridInfoResult = govOrgOpenFeignClient.selectOrgInfo(form);
if (gridInfoResult.success()) {
List<OrgInfoResultDTO> grids = gridInfoResult.getData();
for (OrgInfoResultDTO grid : grids) {
gridIdAndNames.put(grid.getOrgId(), grid.getOrgName());
}
}
for (MyTopicsResultDTO myTopic : myTopics) {
myTopic.setReleaseGridName(gridIdAndNames.get(myTopic.getReleaseGridId()));
}
return myTopics;
}
}

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

@ -451,7 +451,8 @@
select t.id as topicId,
t.topic_content as topicContent,
unix_timestamp(t.created_time) as releaseTime,
g.GROUP_NAME as releaseGroupName
g.GROUP_NAME as releaseGroupName,
g.GRID_ID as releaseGridId
from resi_topic t
inner join resi_group g on (t.GROUP_ID = g.ID and g.CUSTOMER_ID = #{customerId})
where t.CREATED_BY = #{userId}

36
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java

@ -5,18 +5,23 @@ import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.IssueOpenConstant;
import com.epmet.constant.OrgInfoConstant;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.form.MyPartIssuesFormDTO;
import com.epmet.dto.form.MyPubIssuesAuditingFormDTO;
import com.epmet.dto.form.OrgInfoFormDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.GovProjectOpenFeignClient;
import com.epmet.modules.person.service.IssueService;
import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO;
import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO;
import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import lombok.extern.slf4j.Slf4j;
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;
@ -169,7 +174,34 @@ public class IssueServiceImpl implements IssueService {
if(null==issueResult||CollectionUtils.isEmpty(issueResult.getData())){
return new ArrayList<>();
}
//todo
return null;
//议题来源话题id集合
List<String> topicIds=new ArrayList<>();
issueResult.getData().forEach(issueDTO ->{
if(IssueOpenConstant.SOURCE_TYPE_RT.equals(issueDTO.getSourceType())&& StringUtils.isNotBlank(issueDTO.getSourceId())){
topicIds.add(issueDTO.getSourceId());
}
} );
//查询网格名称
Result<List<OrgInfoResultDTO>> gridNameList = govOrgOpenFeignClient.selectOrgInfo(new OrgInfoFormDTO(OrgInfoConstant.GRID, issueResult.getData().stream().map(m -> m.getGridId()).collect(Collectors.toList())));
if (!gridNameList.success()){
logger.error("查询议题来源网格名称失败......");
}
//查询话题来源小组名称
Result<List<GroupInfoResultDTO>> groupNameList = resiGroupOpenFeignClient.selectGroupInfo(new GroupInfoFormDTO(topicIds));
if (!groupNameList.success()){
logger.error("查询议题来源小组名称失败......");
}
List<MyPubIssuesClosedResultDTO> resultDTOList=new ArrayList<>();
for(IssueDTO issueDTO:issueResult.getData()){
MyPubIssuesClosedResultDTO resultDTO=new MyPubIssuesClosedResultDTO();
resultDTO.setIssueId(issueDTO.getId());
resultDTO.setIssueTitle(issueDTO.getIssueTitle());
resultDTO.setSuggestion(issueDTO.getSuggestion());
resultDTO.setClosedTime(issueDTO.getClosedTimeStamp());
gridNameList.getData().stream().filter(o -> issueDTO.getGridId().equals(o.getOrgId())).forEach(o -> resultDTO.setTopicReleaseGridName(o.getOrgName()));
groupNameList.getData().stream().filter(g -> issueDTO.getSourceId().equals(g.getTopicId())).forEach(g -> resultDTO.setTopicReleaseGroupName(g.getTopicGroupName()));
resultDTOList.add(resultDTO);
}
return resultDTOList;
}
}

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