From 456f5851153ee20960e796de0ce37e0d2cb9a41a Mon Sep 17 00:00:00 2001 From: wangchao Date: Tue, 22 Dec 2020 10:21:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E5=85=A5=E7=BE=A4=E5=8F=91?= =?UTF-8?q?=E9=80=81=E7=A7=AF=E5=88=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/feign/GovIssueOpenFeignClient.java | 11 ++--- .../GovIssueOpenFeignClientFallBack.java | 6 ++- .../IssueShareLinkVisitRecordController.java | 12 ++--- .../dao/IssueShareLinkVisitRecordDao.java | 22 +++------- .../IssueShareLinkVisitRecordService.java | 8 ++-- .../IssueShareLinkVisitRecordServiceImpl.java | 19 +++----- .../mapper/IssueShareLinkVisitRecordDao.xml | 42 +++--------------- .../impl/ResiGroupMemberServiceImpl.java | 40 +++++++++++------ .../dao/TopicShareLinkVisitRecordDao.java | 28 +++++------- .../TopicShareLinkVisitRecordService.java | 11 ++--- .../TopicShareLinkVisitRecordServiceImpl.java | 19 +++----- .../topic/TopicShareLinkVisitRecordDao.xml | 44 ++++++------------- 12 files changed, 99 insertions(+), 163 deletions(-) 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 39253684cc..3c4239eb6c 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 @@ -4,6 +4,7 @@ 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.form.*; import com.epmet.dto.result.*; @@ -225,12 +226,12 @@ public interface GovIssueOpenFeignClient { Result checkInviteRelationship(@RequestBody SharableIssueAndInviteeFormDTO param); /** - * @Description 通过被邀请人锁定其是通过哪一条链接进的组,查询出该链接的邀请人Id - * @param invitee - * @return Map key : new | registered + * @Description 通过链接Id查询分享人和被邀请人的信息 + * @param + * @return * @author wangc * @date 2020.12.21 16:27 */ - @PostMapping("/gov/issue/issuesharelinkvisitrecord/inviter") - Result> inviter(@RequestParam("invitee")String invitee,@RequestParam("issues")List issues); + @PostMapping("/gov/issue/issuesharelinkvisitrecord/visitrecord") + Result visitRecord(@RequestParam("linkId")String linkId,@RequestParam("invitee")String invitee); } 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 2916fd9e85..3189da2461 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 @@ -5,6 +5,7 @@ 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.form.*; import com.epmet.dto.result.*; @@ -20,6 +21,7 @@ import com.epmet.resi.group.dto.group.result.*; import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO; import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO; import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; @@ -200,7 +202,7 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient } @Override - public Result> inviter(String invitee,List issues) { - return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "inviter", invitee,issues); + public Result visitRecord(String linkId,String invitee) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "visitRecord", linkId,invitee); } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueShareLinkVisitRecordController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueShareLinkVisitRecordController.java index 754b8767d8..64f90774fb 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueShareLinkVisitRecordController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueShareLinkVisitRecordController.java @@ -85,14 +85,14 @@ public class IssueShareLinkVisitRecordController { } /** - * @Description 通过被邀请人锁定其是通过哪一条链接进的组,查询出该链接的邀请人Id - * @param invitee - * @return Map key : new | registered + * @Description 通过链接Id查询分享人和被邀请人的信息 + * @param + * @return * @author wangc * @date 2020.12.21 16:27 */ - @PostMapping("inviter") - public Result> inviter(@RequestParam("invitee")String invitee,@RequestParam("issues") List issues){ - return new Result>().ok(issueShareLinkVisitRecordService.getInviter(invitee,issues)); + @PostMapping("visitrecord") + public Result visitRecord(@RequestParam("linkId")String linkId,@RequestParam("invitee")String invitee){ + return new Result().ok(issueShareLinkVisitRecordService.getVisitRecord(linkId,invitee)); } } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueShareLinkVisitRecordDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueShareLinkVisitRecordDao.java index cc91b19799..a23b73a03c 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueShareLinkVisitRecordDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueShareLinkVisitRecordDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IssueShareLinkVisitRecordDTO; import com.epmet.entity.IssueShareLinkVisitRecordEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -54,22 +55,11 @@ public interface IssueShareLinkVisitRecordDao extends BaseDao issues); - - /** - * @Description 通过被邀请人锁定其是通过哪一条链接进的组,查询出该链接的邀请人Id - * @param invitee - * @param issues 同一个组下的所有议题Id - * @return java.lang.String - * @author wangc - * @date 2020.12.21 16:27 - */ - String selectInviterByRegisteredInvitee(@Param("invitee") String invitee,@Param("issues") List issues); + IssueShareLinkVisitRecordDTO selectRecordByLinkIdAndInvitee(@Param("linkId") String linkId, @Param("invitee") String invitee); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueShareLinkVisitRecordService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueShareLinkVisitRecordService.java index b4c29b8f3f..2f1becfbe2 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueShareLinkVisitRecordService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueShareLinkVisitRecordService.java @@ -103,11 +103,11 @@ public interface IssueShareLinkVisitRecordService extends BaseService key : new | registered + * @Description 通过链接Id查询分享人和被邀请人的信息 + * @param + * @return * @author wangc * @date 2020.12.21 16:27 */ - Map getInviter(String invitee,List issues); + IssueShareLinkVisitRecordDTO getVisitRecord(String linkId,String invitee); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueShareLinkVisitRecordServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueShareLinkVisitRecordServiceImpl.java index 0039e0e17c..cbefa389e9 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueShareLinkVisitRecordServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueShareLinkVisitRecordServiceImpl.java @@ -113,23 +113,14 @@ public class IssueShareLinkVisitRecordServiceImpl extends BaseServiceImpl key : new | registered + * @Description 通过链接Id查询分享人和被邀请人的信息 + * @param + * @return * @author wangc * @date 2020.12.21 16:27 */ @Override - public Map getInviter(String invitee,List issues) { - Map result = new HashMap<>(); - String inviterInvitedNewResident = baseDao.selectInviterByNewInvitee(invitee,issues); - if(StringUtils.isNotBlank(inviterInvitedNewResident)) result.put("new",inviterInvitedNewResident); - else{ - String inviterInvitedRegisteredResident = baseDao.selectInviterByRegisteredInvitee(invitee,issues); - if(StringUtils.isNotBlank(inviterInvitedRegisteredResident)) result.put("registered",inviterInvitedRegisteredResident); - } - - return result; + public IssueShareLinkVisitRecordDTO getVisitRecord(String linkId, String invitee) { + return baseDao.selectRecordByLinkIdAndInvitee(linkId, invitee); } - } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueShareLinkVisitRecordDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueShareLinkVisitRecordDao.xml index ee41fc5bb7..b91f65bba4 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueShareLinkVisitRecordDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueShareLinkVisitRecordDao.xml @@ -31,45 +31,17 @@ invitee_user_id = #{invitee} - SELECT - visit.share_user_id - FROM issue_share_link_visit_record visit - INNER JOIN issue_share_link_record link - ON visit.shareLinkRecId = link.ID AND link.del_flag = '0' - - link.issue_id = #{issueId} - - INNER - WHERE - visit.del_flag = '0' - AND - visit.invitee_user_id = #{invitee} - AND - visit.is_invite_register = 0 - AND - visit.if_join_group = 1 - LIMIT 1 - - - \ No newline at end of file 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 3d94d2597f..6ea30b293a 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 @@ -32,6 +32,7 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.SendMqMsgUtils; import com.epmet.constant.ReadFlagConstant; +import com.epmet.dto.IssueShareLinkVisitRecordDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.feign.EpmetMessageOpenFeignClient; @@ -51,6 +52,7 @@ import com.epmet.modules.member.redis.ResiGroupMemberRedis; import com.epmet.modules.member.service.GroupMemeberOperationService; import com.epmet.modules.member.service.ResiGroupMemberService; import com.epmet.modules.topic.dao.ResiTopicDao; +import com.epmet.modules.topic.entity.TopicShareLinkVisitRecordEntity; import com.epmet.modules.topic.service.ResiTopicService; import com.epmet.modules.topic.service.TopicShareLinkVisitRecordService; import com.epmet.modules.utils.ModuleConstant; @@ -116,8 +118,6 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl inviterMap = null; + String inviter = null; + boolean isNew = false; + //通过链接和访问记录查询出被邀请人是新用户还是已注册用户 if(StringUtils.equals(groupMemeberOperationDTO.getEnterGroupType(),ModuleConstant.ENTER_GROUP_TYPE_TOPIC_LINK)){ - inviterMap = topicShareLinkVisitRecordService.getInviter(groupMemeberOperationDTO.getCustomerUserId(),groupMemeberOperationDTO.getGroupId()); + TopicShareLinkVisitRecordEntity visitRecord = topicShareLinkVisitRecordService.getByLinkIdAndInvitee(groupMemeberOperationDTO.getGroupInvitationId(), groupMemeberOperationDTO.getCustomerUserId()); + if(null == visitRecord){ + logger.error("【%s】该用户入组方式为话题分享链接入组,但未查询到链接访问方式记录,链接Id【%s】",groupMemeberOperationDTO.getCustomerUserId(),groupMemeberOperationDTO.getGroupInvitationId()); + return; + } + if(NumConstant.ZERO == visitRecord.getIsInviteRegister()) isNew = true; + inviter = visitRecord.getShareUserId(); }else if(StringUtils.equals(groupMemeberOperationDTO.getEnterGroupType(),ModuleConstant.ENTER_GROUP_TYPE_ISSUE_LINK)){ - List issues = topicDao.selectIssueIdsByGroupId(groupMemeberOperationDTO.getGroupId()); - if(!CollectionUtils.isEmpty(issues)){ - Result> inviterResult = issueClient.inviter(groupMemeberOperationDTO.getCustomerUserId(),issues); - if(inviterResult.success() && !CollectionUtils.isEmpty(inviterResult.getData())) inviterMap = inviterResult.getData(); + Result response = issueClient.visitRecord(groupMemeberOperationDTO.getGroupInvitationId(), groupMemeberOperationDTO.getCustomerUserId()); + if(response.success() && null != response){ + if(NumConstant.ONE != 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()); + return; } - } - if(!CollectionUtils.isEmpty(inviterMap)){ - //groupMemeberOperationDTO.getCreatedTime() - - boolean isNew = StringUtils.isBlank(inviterMap.get("new")); - + if(StringUtils.isNotBlank(inviter)){ //mq的事件类型 MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO(); //事件code @@ -517,7 +529,7 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl pointEventMsgList = new ArrayList<>(); BasePointEventMsg pointEventMsg = new BasePointEventMsg(); pointEventMsg.setCustomerId(groupCache.getCustomerId()); - pointEventMsg.setUserId(isNew ? inviterMap.get("new") : inviterMap.get("register")); + pointEventMsg.setUserId(inviter); pointEventMsg.setActionFlag(MqConstant.PLUS); pointEventMsg.setIsCommon(false); pointEventMsg.setTargetDate(groupMemeberOperationDTO.getCreatedTime()); diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/TopicShareLinkVisitRecordDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/TopicShareLinkVisitRecordDao.java index d4088374bb..a59d4427a0 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/TopicShareLinkVisitRecordDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/TopicShareLinkVisitRecordDao.java @@ -23,6 +23,16 @@ public interface TopicShareLinkVisitRecordDao extends BaseDao key : new | registered + * @return com.epmet.modules.topic.entity.TopicShareLinkVisitRecordEntity * @author wangc - * @date 2020.12.21 16:29 - */ - Map getInviter(String invitee,String groupId); + * @date 2020.12.22 09:20 + */ + TopicShareLinkVisitRecordEntity getByLinkIdAndInvitee(String linkId,String invitee); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicShareLinkVisitRecordServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicShareLinkVisitRecordServiceImpl.java index d4a6dab08b..34d9be5bb5 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicShareLinkVisitRecordServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicShareLinkVisitRecordServiceImpl.java @@ -96,23 +96,16 @@ public class TopicShareLinkVisitRecordServiceImpl extends BaseServiceImpl key : new | registered + * @return com.epmet.modules.topic.entity.TopicShareLinkVisitRecordEntity * @author wangc - * @date 2020.12.21 16:29 + * @date 2020.12.22 09:20 */ @Override - public Map getInviter(String invitee,String groupId) { - Map result = new HashMap<>(); - String inviterInvitedNewResident = baseDao.selectInviterByNewInvitee(invitee,groupId); - if(StringUtils.isBlank(inviterInvitedNewResident)){ - String inviterInvitedRegisteredResident = baseDao.selectInviterByRegisteredInvitee(invitee,groupId); - if(StringUtils.isNotBlank(inviterInvitedRegisteredResident)) - result.put("registered",inviterInvitedRegisteredResident); - }else - result.put("new",inviterInvitedNewResident); - return result; + public TopicShareLinkVisitRecordEntity getByLinkIdAndInvitee(String linkId, String invitee) { + return baseDao.selectRecordByLinkIdAndInvitee(linkId,invitee); } } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/TopicShareLinkVisitRecordDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/TopicShareLinkVisitRecordDao.xml index f596efce4d..01343324ee 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/TopicShareLinkVisitRecordDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/TopicShareLinkVisitRecordDao.xml @@ -18,47 +18,29 @@ LIMIT 1 - - UPDATE - topic_share_link_visit_record - SET - is_invite_register = 0 + - SELECT - visit.share_user_id - FROM topic_share_link_visit_record visit - INNER JOIN topic_share_link_record link - ON visit.share_link_rec_id = link.ID AND link.del_flag = '0' AND link.group_id = #{groupId} - WHERE - visit.del_flag = '0' - AND - visit.invitee_user_id = #{invitee} - AND - visit.is_invite_register = 0 LIMIT 1 - + invitee_user_id = #{invitee} + \ No newline at end of file