From ee3d9c104fe8a8ce006dfcd4ab686097eaab7ff3 Mon Sep 17 00:00:00 2001 From: wangchao Date: Tue, 22 Dec 2020 15:08:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E8=BF=87=E5=88=86=E4=BA=AB=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=E7=94=B3=E8=AF=B7=E5=85=A5=E7=BE=A4=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/IssueShareLinkVisitRecordDTO.java | 2 +- .../epmet/feign/GovIssueOpenFeignClient.java | 15 +- .../GovIssueOpenFeignClientFallBack.java | 10 +- .../IssueShareLinkRecordController.java | 12 + .../IssueShareLinkVisitRecordEntity.java | 2 +- .../form/JoinGroupByShareLinkFormDTO.java | 32 +++ .../JoinGroupApplyRealTimeResultDTO.java | 21 ++ .../service/GroupInvitationService.java | 1 + .../impl/GroupInvitationServiceImpl.java | 4 + .../controller/ResiGroupMemberController.java | 16 ++ .../service/GroupMemeberOperationService.java | 11 + .../service/ResiGroupMemberService.java | 11 + .../GroupMemeberOperationServiceImpl.java | 248 +++++++++++++++++- .../impl/ResiGroupMemberServiceImpl.java | 8 +- .../epmet/modules/topic/dao/ResiTopicDao.java | 2 +- .../resources/mapper/topic/ResiTopicDao.xml | 9 +- 16 files changed, 382 insertions(+), 22 deletions(-) create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/JoinGroupByShareLinkFormDTO.java create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/JoinGroupApplyRealTimeResultDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueShareLinkVisitRecordDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueShareLinkVisitRecordDTO.java index f96068a38b..3ed4db4260 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueShareLinkVisitRecordDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueShareLinkVisitRecordDTO.java @@ -66,7 +66,7 @@ public class IssueShareLinkVisitRecordDTO implements Serializable { /** * 是否同意进组,1是0否,在注册完居民之后,是否同意入组,如果同意发送入组申请,不同意此项默认为0 */ - private Integer ifJoinGroup; + private Boolean ifJoinGroup; /** * 删除状态,0:正常,1:删除 diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index 3c4239eb6c..8f04ff87b0 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -2,10 +2,7 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.IssueDTO; -import com.epmet.dto.IssueApplicationDTO; -import com.epmet.dto.IssueShareLinkVisitRecordDTO; -import com.epmet.dto.IssueSuggestionDTO; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBack; @@ -234,4 +231,14 @@ public interface GovIssueOpenFeignClient { */ @PostMapping("/gov/issue/issuesharelinkvisitrecord/visitrecord") Result visitRecord(@RequestParam("linkId")String linkId,@RequestParam("invitee")String invitee); + + /** + * @Description 根据议题分享链接Id查询链接详情 + * @param shareLinkId + * @return com.epmet.commons.tools.utils.Result + * @author wangc + * @date 2020.12.22 10:53 + */ + @PostMapping("/gov/issue/issuesharelink/sharelinkinfo") + Result shareLinkInfo(@RequestParam String shareLinkId); } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index 3189da2461..50e37286e5 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java @@ -3,10 +3,7 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.IssueDTO; -import com.epmet.dto.IssueApplicationDTO; -import com.epmet.dto.IssueShareLinkVisitRecordDTO; -import com.epmet.dto.IssueSuggestionDTO; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.GovIssueOpenFeignClient; @@ -205,4 +202,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result visitRecord(String linkId,String invitee) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "visitRecord", linkId,invitee); } + + @Override + public Result shareLinkInfo(String shareLinkId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "shareLinkInfo", shareLinkId); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueShareLinkRecordController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueShareLinkRecordController.java index 055333c0a5..180c745b20 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueShareLinkRecordController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueShareLinkRecordController.java @@ -113,4 +113,16 @@ public class IssueShareLinkRecordController { return new Result().ok(issueShareLinkRecordService.issueVisit(formDTO,tokenDto)); } + /** + * @Description 根据议题分享链接Id查询链接详情 + * @param shareLinkId + * @return com.epmet.commons.tools.utils.Result + * @author wangc + * @date 2020.12.22 10:53 + */ + @PostMapping("sharelinkinfo") + public Result shareLinkInfo(@RequestParam String shareLinkId){ + return null; + } + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueShareLinkVisitRecordEntity.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueShareLinkVisitRecordEntity.java index 5860799b54..b4cea0c628 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueShareLinkVisitRecordEntity.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueShareLinkVisitRecordEntity.java @@ -66,5 +66,5 @@ public class IssueShareLinkVisitRecordEntity extends BaseEpmetEntity { /** * 是否同意进组,1是0否,在注册完居民之后,是否同意入组,如果同意发送入组申请,不同意此项默认为0 */ - private Integer ifJoinGroup; + private Boolean ifJoinGroup; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/JoinGroupByShareLinkFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/JoinGroupByShareLinkFormDTO.java new file mode 100644 index 0000000000..86740bcb0e --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/JoinGroupByShareLinkFormDTO.java @@ -0,0 +1,32 @@ +package com.epmet.resi.group.dto.member.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 通过链接入组申请传参DTO + * @ClassName JoinGroupByShareLinkFormDTO + * @Auth wangc + * @Date 2020-12-22 10:34 + */ +@Data +public class JoinGroupByShareLinkFormDTO implements Serializable { + private static final long serialVersionUID = -4402483318595770636L; + + /** + * 分享链接Id + */ + @NotBlank(message = "分享链接Id不能为空") + private String shareLinkId; + + /** + * topic | issue + */ + @NotBlank(message = "链接类型不能为空") + private String shareLinkType; + + @NotBlank(message = "用户Id不能为空") + private String userId; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/JoinGroupApplyRealTimeResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/JoinGroupApplyRealTimeResultDTO.java new file mode 100644 index 0000000000..986372b1c0 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/JoinGroupApplyRealTimeResultDTO.java @@ -0,0 +1,21 @@ +package com.epmet.resi.group.dto.member.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 申请入群实时结果 + * @ClassName JoinGroupApplyRealTimeResultDTO + * @Auth wangc + * @Date 2020-12-22 10:32 + */ +@Data +public class JoinGroupApplyRealTimeResultDTO implements Serializable { + private static final long serialVersionUID = 6251288539242747659L; + + /** + * entered(已入组) auditing(审核中) + */ + private String status; +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/GroupInvitationService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/GroupInvitationService.java index 44f61b26ec..4c8897c5f1 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/GroupInvitationService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/GroupInvitationService.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.modules.invitation.entity.GroupInvitationEntity; +import com.epmet.resi.group.dto.UserRoleDTO; import com.epmet.resi.group.dto.invitation.GroupInvitationDTO; import com.epmet.resi.group.dto.invitation.form.AccetInvitationFormDTO; import com.epmet.resi.group.dto.invitation.form.CreateGroupInvitationFormDTO; diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java index 39ab49fd00..e577907d89 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java @@ -602,6 +602,10 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl().ok(resiGroupMemberService.votableCount(gridList)); } + /** + * @Description 通过话题/议题分享链接申请入组 + * @param param + * @return com.epmet.resi.group.dto.member.result.JoinGroupApplyRealTimeResultDTO + * @author wangc + * @date 2020.12.22 10:36 + */ + @PostMapping("applyenterbylink") + public Result applyEnterByLink(@RequestBody JoinGroupByShareLinkFormDTO param){ + ValidatorUtils.validateEntity(param); + return new Result().ok(operationService.applyEnterByLink(param)); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/GroupMemeberOperationService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/GroupMemeberOperationService.java index ac04cf0742..32906be649 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/GroupMemeberOperationService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/GroupMemeberOperationService.java @@ -23,7 +23,9 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.modules.member.entity.GroupMemeberOperationEntity; import com.epmet.modules.member.entity.ResiGroupMemberEntity; import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO; +import com.epmet.resi.group.dto.member.form.JoinGroupByShareLinkFormDTO; import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO; +import com.epmet.resi.group.dto.member.result.JoinGroupApplyRealTimeResultDTO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -122,4 +124,13 @@ public interface GroupMemeberOperationService extends BaseService implements GroupMemeberOperationService { @Autowired private GroupMemeberOperationRedis groupMemeberOperationRedis; + @Autowired + private ResiGroupMemberDao resiGroupMemberDao; + @Autowired + private TopicShareLinkRecordDao topicShareLinkRecordDao; + @Autowired + private GovIssueOpenFeignClient issueOpenFeignClient; + @Autowired + private ResiTopicDao topicDao; + @Autowired + private GroupMemeberOperationDao operationDao; + @Autowired + private ResiGroupService groupService; + @Autowired + private ResiGroupMemberService memberService; + @Autowired + private ResiGroupRedis groupRedis; + @Autowired + private EpmetUserOpenFeignClient userClient; + @Autowired + private TopicShareLinkVisitRecordDao topicShareLinkVisitRecordDao; @Override public PageData page(Map params) { @@ -143,4 +199,190 @@ public class GroupMemeberOperationServiceImpl extends BaseServiceImpl response = issueOpenFeignClient.shareLinkInfo(param.getShareLinkId()); + if(response.success() && null != response.getData()){ + groupId = topicDao.selectGroupIdByIssueId(response.getData().getIssueId()); + inviter = response.getData().getShareUserId(); + } + } + if(StringUtils.isBlank(groupId)){ + throw new RenException("没有找到议题分享链接对应的组Id"); + } + //查询是否在群内 + ResiGroupMemberDTO groupMember = resiGroupMemberDao.selectGroupMemberInfo(groupId, param.getUserId()); + if (null != groupMember && !MemberStateConstant.REMOVED.equals(groupMember.getStatus())) { + log.info("已经在群内,直接返回成功,但是不发送积分事件"); + result.setStatus("entered"); + return result; + } + + //先判断用户是否有在审核的入组申请,有的话直接给提示 + GroupMemeberOperationDTO groupMemeberOperationDTO = operationDao.selectLatestRecord(groupId, param.getUserId()); + if (null != groupMemeberOperationDTO && MemberStateConstant.UNDER_AUDITTING.equals(groupMemeberOperationDTO.getOperateStatus())) { + log.info("已存在待审核入组申请,不能重复审核"); + result.setStatus("auditing"); + return result; + } + + ResiGroupDTO resiGroupDTO = groupService.get(groupId); + if(null == resiGroupDTO){ + log.error("没有找到对应的组,组Id:{}",groupId); + throw new RenException("没有找到对应的组"); + } + GetRoleKeyListFormDTO roleParam = new GetRoleKeyListFormDTO(); + roleParam.setFromApp("resi"); + roleParam.setUserId(param.getUserId()); + roleParam.setGridId(resiGroupDTO.getGridId()); + Result> userRoleResponse = userClient.getUserRoleKeyList(roleParam); + if(!userRoleResponse.success() || CollectionUtils.isEmpty(userRoleResponse.getData())){ + throw new RenException("未找到当前用户的有效身份信息"); + } + + + //进组是否需要审核的逻辑 + GroupMemeberOperationDTO groupMemeberOperation = new GroupMemeberOperationDTO(); + groupMemeberOperation.setGroupId(groupId); + groupMemeberOperation.setCustomerUserId(param.getUserId()); + groupMemeberOperation.setEnterGroupType(StringUtils.equals("topic",param.getShareLinkType()) ? ModuleConstant.ENTER_GROUP_TYPE_TOPIC_LINK : ModuleConstant.ENTER_GROUP_TYPE_ISSUE_LINK); + groupMemeberOperation.setGroupInvitationId(param.getShareLinkId()); + groupMemeberOperation.setOperateUserId(param.getUserId()); + groupMemeberOperation.setOperateDes(StringUtils.equals("topic",param.getShareLinkType()) ? "通过话题分享链接申请入组" : "通过议题分享链接申请入组"); + + //入组审核开关是开启状态则需要组长审核 + if (StringUtils.equals(GroupStateConstant.AUDIT_SWITCH_OPEN , resiGroupDTO.getAuditSwitch())) { + groupMemeberOperation.setOperateStatus(MemberStateConstant.UNDER_AUDITTING); + save(groupMemeberOperation); + //给组长推送站内信 + //memberService.sendMessageToGroupLeader(resiGroupDTO, param.getUserId()); + result.setStatus("auditing"); + return result; + } + + UserRoleDTO userRoleDTO = getUserRoleDTO(userRoleResponse.getData()); + //新增一条邀请入群、直接审核通过的入群记录 + groupMemeberOperation.setOperateStatus(MemberStateConstant.APPROVED); + groupMemeberOperation.setOperateDes("通过分享链接入组,入组审核开关关闭,直接入组"); + save(groupMemeberOperation); + result.setStatus("entered"); + //发送积分事件 + boolean isNew = false; + + if(StringUtils.equals("topic",param.getShareLinkType())){ + TopicShareLinkVisitRecordEntity record = topicShareLinkVisitRecordDao.selectRecordByLinkIdAndInvitee(param.getShareLinkId(), param.getUserId()); + if(null == record){ + log.error("【%s】该用户入组方式为话题分享链接入组,但未查询到链接访问记录,链接Id【%s】",param.getUserId(),param.getShareLinkId()); + throw new RenException("未找到链接访问记录"); + } + if(NumConstant.ZERO == record.getIsInviteRegister()) isNew = true; + }else{ + Result visitRecordResult = issueOpenFeignClient.visitRecord(param.getShareLinkId(), param.getUserId()); + if(!visitRecordResult.success() || null == visitRecordResult.getData()){ + log.error("【%s】该用户入组方式为议题分享链接入组,但未查询到链接访问记录,链接Id【%s】",param.getUserId(),param.getShareLinkId()); + throw new RenException("未找到链接访问记录"); + } + if(!visitRecordResult.getData().getIfJoinGroup()){ + log.error("【%s】该用户入组方式为议题分享链接入组,但并不是通过该链接发起的入群申请,链接Id【%s】",param.getUserId(),param.getShareLinkId()); + throw new RenException("用户并非通过当前链接申请入组"); + } + if(NumConstant.ZERO == visitRecordResult.getData().getIsInviteRegister()) isNew = true; + } + + if(StringUtils.isNotBlank(inviter)){ + //mq的事件类型 + MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO(); + //事件code + mqBaseMsgDTO.setEventTag(isNew ? EventEnum.INVITE_NEW_RESIDENT_INTO_GROUP.getEventTag() : EventEnum.INVITE_RESIDENT_INTO_GROUP.getEventTag()); + List pointEventMsgList = new ArrayList<>(); + BasePointEventMsg pointEventMsg = new BasePointEventMsg(); + pointEventMsg.setCustomerId(resiGroupDTO.getCustomerId()); + pointEventMsg.setUserId(inviter); + pointEventMsg.setActionFlag(MqConstant.PLUS); + pointEventMsg.setIsCommon(false); + pointEventMsg.setTargetDate(current); + pointEventMsgList.add(pointEventMsg); + + mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList)); + Result sendResult = SendMqMsgUtils.sendMsg(mqBaseMsgDTO); + if(!sendResult.success()){ + log.error((isNew ? "拉新用户入组事件发送失败" : "邀请已注册用户入组事件发送失败").concat(",参数:%s"),JSON.toJSONString(param)); + } + } + + //直接加入群成员关系表 + //如果是之前被移除的,则修改resi_group_member记录 + ResiGroupMemberDTO resiGroupMemberDTO = new ResiGroupMemberDTO(); + ResiGroupMemberDTO resiGroupMember = resiGroupMemberDao.selectGroupMemberInfo(groupId, param.getUserId()); + if (null != resiGroupMember) { + resiGroupMemberDTO.setId(resiGroupMember.getId()); + } + resiGroupMemberDTO.setCustomerUserId(groupMemeberOperation.getCustomerUserId()); + resiGroupMemberDTO.setResiGroupId(groupMemeberOperation.getGroupId()); + resiGroupMemberDTO.setGroupLeaderFlag(LeaderFlagConstant.GROUP_MEMBER); + resiGroupMemberDTO.setEnterGroupType(groupMemeberOperation.getEnterGroupType()); + resiGroupMemberDTO.setStatus(MemberStateConstant.APPROVED); + resiGroupMemberDTO.setCreatedBy(groupMemeberOperation.getCustomerUserId()); + memberService.saveOrUpdate(resiGroupMemberDTO); + //修改群统计值 + resiGroupMemberDao.updateResiGroupStatistical(groupMemeberOperation.getGroupId(), userRoleDTO); + ResiGroupInfoRedisDTO groupCache = + groupRedis.get(groupId); + if(null != groupCache && null != groupCache.getGroupStatisticalInfo()){ + groupCache.getGroupStatisticalInfo().setTotalMembers( + null == groupCache.getGroupStatisticalInfo().getTotalMembers() ? NumConstant.TWO : groupCache.getGroupStatisticalInfo().getTotalMembers() +NumConstant.ONE + ); + if(StringUtils.equals(userRoleDTO.getPartymemberFlag(),NumConstant.ONE_STR)) groupCache.getGroupStatisticalInfo().setTotalPartyMembers( + null == groupCache.getGroupStatisticalInfo().getTotalPartyMembers() ? NumConstant.ONE : groupCache.getGroupStatisticalInfo().getTotalPartyMembers()+NumConstant.ONE + ); + if(StringUtils.equals(userRoleDTO.getRegisteredResiFlag(),NumConstant.ONE_STR)) groupCache.getGroupStatisticalInfo().setTotalNormalMembers( + null == groupCache.getGroupStatisticalInfo().getTotalNormalMembers() ? NumConstant.TWO : groupCache.getGroupStatisticalInfo().getTotalNormalMembers()+NumConstant.ONE + ); + if(StringUtils.equals(userRoleDTO.getWarmHeartedFlag(),NumConstant.ONE_STR)) groupCache.getGroupStatisticalInfo().setTotalEarnestMembers( + null == groupCache.getGroupStatisticalInfo().getTotalEarnestMembers() ? NumConstant.ONE : groupCache.getGroupStatisticalInfo().getTotalEarnestMembers()+NumConstant.ONE + ); + groupRedis.set(groupCache); + } + //发送消息 + //this.sendMessageToLeader(formDTO, resiGroupDTO,groupInvitationDTO); + + return result; + } + + + private UserRoleDTO getUserRoleDTO(List userRoleList) { + UserRoleDTO userRoleDTO=new UserRoleDTO(); + for (String roleKey : userRoleList) { + if (EpmetRoleKeyConstant.PARTYMEMBER.equals(roleKey)) { + userRoleDTO.setPartymemberFlag(NumConstant.ONE_STR); + } + if (EpmetRoleKeyConstant.WARMHEARTED.equals(roleKey)) { + userRoleDTO.setWarmHeartedFlag(NumConstant.ONE_STR); + } + if (EpmetRoleKeyConstant.REGISTERED_RESI.equals(roleKey)) { + userRoleDTO.setRegisteredResiFlag(NumConstant.ONE_STR); + } + } + return userRoleDTO; + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java index 6ea30b293a..93d5579012 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java @@ -254,6 +254,7 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl inviterMap = null; String inviter = null; boolean isNew = false; //通过链接和访问记录查询出被邀请人是新用户还是已注册用户 if(StringUtils.equals(groupMemeberOperationDTO.getEnterGroupType(),ModuleConstant.ENTER_GROUP_TYPE_TOPIC_LINK)){ TopicShareLinkVisitRecordEntity visitRecord = topicShareLinkVisitRecordService.getByLinkIdAndInvitee(groupMemeberOperationDTO.getGroupInvitationId(), groupMemeberOperationDTO.getCustomerUserId()); if(null == visitRecord){ - logger.error("【%s】该用户入组方式为话题分享链接入组,但未查询到链接访问方式记录,链接Id【%s】",groupMemeberOperationDTO.getCustomerUserId(),groupMemeberOperationDTO.getGroupInvitationId()); + logger.error("【%s】该用户入组方式为话题分享链接入组,但未查询到链接访问记录,链接Id【%s】",groupMemeberOperationDTO.getCustomerUserId(),groupMemeberOperationDTO.getGroupInvitationId()); return; } if(NumConstant.ZERO == visitRecord.getIsInviteRegister()) isNew = true; @@ -510,14 +510,14 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl response = issueClient.visitRecord(groupMemeberOperationDTO.getGroupInvitationId(), groupMemeberOperationDTO.getCustomerUserId()); if(response.success() && null != response){ - if(NumConstant.ONE != response.getData().getIfJoinGroup()){ + if(!response.getData().getIfJoinGroup()){ logger.error("【%s】该用户入组方式为议题分享链接入组,但并不是通过该链接发起的入群申请,链接Id【%s】",groupMemeberOperationDTO.getCustomerUserId(),groupMemeberOperationDTO.getGroupInvitationId()); return; } if(NumConstant.ZERO == response.getData().getIsInviteRegister()) isNew = true; inviter = response.getData().getShareUserId(); }else{ - logger.error("【%s】该用户入组方式为议题分享链接入组,但未查询到链接访问方式记录,链接Id【%s】",groupMemeberOperationDTO.getCustomerUserId(),groupMemeberOperationDTO.getGroupInvitationId()); + logger.error("【%s】该用户入组方式为议题分享链接入组,但未查询到链接访问记录,链接Id【%s】",groupMemeberOperationDTO.getCustomerUserId(),groupMemeberOperationDTO.getGroupInvitationId()); return; } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java index dd53316d83..3281275e54 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java @@ -193,5 +193,5 @@ public interface ResiTopicDao extends BaseDao { */ List selectTopicIdsByGroup(@Param("groupId") String groupId); - List selectIssueIdsByGroupId(@Param("groupId")String groupId); + String selectGroupIdByIssueId(@Param("issueId") String issueId); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml index 8107666ae5..536f996f7f 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml @@ -527,18 +527,19 @@ AND GROUP_ID = #{groupId} AND STATUS != 'hidden' - - SELECT - issue_id + group_id FROM resi_topic WHERE del_flag = '0' AND - groupId = #{groupId} + issue_id = #{issueId} AND shift_issue = 1 +