diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/BasePointEventMsg.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/BasePointEventMsg.java index ec14e7c812..2ca431d70e 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/BasePointEventMsg.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/BasePointEventMsg.java @@ -3,6 +3,7 @@ package com.epmet.commons.tools.dto.form.mq.eventmsg; import lombok.Data; import java.io.Serializable; +import java.util.Date; /** * desc:积分相关事件消息体 @@ -57,4 +58,13 @@ public class BasePointEventMsg implements Serializable { * 业务id eg:活动id */ private String sourceId; -} + + /** + * 计算积分上限时的计算日期,可以为空 + * 场景: 通过分享链接申请入组,在组长审核完成后要给邀请人添加积分,若被邀请人是已注册居民, + * 给邀请人添加积分有上限,计算上限的日期不能是组长审核的日期,而是被邀请人发送入组审核的日期 + * 对应的事件编码为:invite_resident_into_group + * 只针对[邀请已注册的用户入组]事件生效 + */ + private Date targetDate; + } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java index e37d7fe13d..da6c7bfa50 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java @@ -10,7 +10,13 @@ public enum EventEnum { ACTIVE_SEND_POINT("active_send_point", "epmet_heart", "活动发放积分"), REGISTER_VOLUNTEER("register_volunteer", "epmet_heart", "认证志愿者"), ACTIVE_INSERT_LIVE("active_insert_live", "epmet_heart", "添加活动实况"), - PULL_NEW_RESIDENT("pull_new_resident","epmet_user","拉新用户") + INVITE_NEW_RESIDENT_INTO_GROUP("invite_new_resident_into_group","resi_group","拉新用户入组"), + INVITE_RESIDENT_INTO_GROUP("invite_resident_into_group","resi_group","邀请已注册的用户入组"), + PUBLISH_ONE_TOPIC("publish_one_topic","resi_group","发布话题"), + PARTICIPATE_ONE_TOPIC("participate_one_topic","resi_group","对小组内话题进行15字以上评论"), + TOPIC_SHIFTED_TO_ISSUE("topic_shifted_to_issue","resi_group","话题被转为议题(小组中发布的话题被组长转为议题)"), + SHIFT_TOPIC_TO_ISSUE("shift_topic_to_issue","resi_group","转话题为议题(将自建小组中话题转为议题)"), + TOPIC_SHIFTED_TO_PROJECT("topic_shifted_to_project","resi_group","话题被转为项目"), ; private String eventClass; diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java index 42d7cb404b..40c3277d6d 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java @@ -52,5 +52,5 @@ public interface UserPointActionLogDao extends BaseDao * @author wangc * @date 2020.07.31 15:11 **/ - Integer selectSumByEvent(@Param("userId") String userId, @Param("eventId") String eventId, @Param("sourceId") String sourceId, @Param("customerId") String customerId, @Param("dateCheck") Date dateCheck); + Integer selectSumByEvent(@Param("userId") String userId, @Param("eventId") String eventId, @Param("sourceId") String sourceId, @Param("customerId") String customerId, @Param("dateCheck") Date dateCheck,@Param("right")Date right); } \ No newline at end of file diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java index 543fd72ad3..61dea7998f 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java @@ -189,19 +189,24 @@ public class UserPointActionLogServiceImpl extends BaseServiceImpl【%s】", JSON.toJSON(event))); throw new RenException("无法识别事件类型与积分规则"); } PointRuleEntity ruleInfo = pointRuleService.getByEventCodeAndCustomerId(event.getCustomerId(),eventCode); if(null != ruleInfo && StringUtils.equals(NumConstant.ONE_STR,ruleInfo.getEnabledFlag())){ + //是否使用特定的上限日期检查日 + boolean ifPastTargetDate = StringUtils.equals(EventEnum.INVITE_RESIDENT_INTO_GROUP.getEventTag(),ruleInfo.getEventCode()); + Date dateCheck = null; Calendar calendar = Calendar.getInstance(); - calendar.setTime(new Date()); + calendar.setTime(ifPastTargetDate ? event.getTargetDate() :new Date()); calendar.set(Calendar.HOUR_OF_DAY, NumConstant.ZERO); calendar.set(Calendar.MINUTE, NumConstant.ZERO); calendar.set(Calendar.SECOND, NumConstant.ZERO); + + Date right = null; + //先判断周期,是否超过限值 RuleCycleEnum cycle = RuleCycleEnum.getEnum(ruleInfo.getRulePeriod()); switch(cycle){ @@ -215,24 +220,33 @@ public class UserPointActionLogServiceImpl extends BaseServiceImpl NumConstant.ZERO){ //不按照sourceId查询,查询指定日期内的相关积分规则的总和 - Integer sum = baseDao.selectSumByEvent(event.getUserId(),eventCode,null,event.getCustomerId(),dateCheck); + Integer sum = baseDao.selectSumByEvent(event.getUserId(),eventCode,null,event.getCustomerId(),dateCheck,right); if(null == sum) sum = NumConstant.ZERO; if(StringUtils.equals(ModuleConstant.OPERATION_TYPE_PLUS,ruleInfo.getOperateType())){ if(ruleInfo.getPoint() < NumConstant.ZERO){ @@ -270,7 +284,7 @@ public class UserPointActionLogServiceImpl extends BaseServiceImpl【%s】", JSON.toJSON(event))); + log.warn(String.format("该用户获取此类事件的积分已达上限,详细数据->【%s】", JSON.toJSON(event))); return ; } } @@ -290,7 +304,7 @@ public class UserPointActionLogServiceImpl extends BaseServiceImpl AND CREATED_TIME = ]]> #{dateCheck} - + + AND CREATED_TIME #{right} + \ No newline at end of file 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 5db5a897d6..f96068a38b 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 @@ -63,6 +63,11 @@ public class IssueShareLinkVisitRecordDTO implements Serializable { */ private Integer isInviteRegister; + /** + * 是否同意进组,1是0否,在注册完居民之后,是否同意入组,如果同意发送入组申请,不同意此项默认为0 + */ + private Integer 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 e5e68c8599..39253684cc 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 @@ -223,4 +223,14 @@ public interface GovIssueOpenFeignClient { */ @PostMapping("/gov/issue/issuesharelinkvisitrecord/checkinviterelationship") Result checkInviteRelationship(@RequestBody SharableIssueAndInviteeFormDTO param); + + /** + * @Description 通过被邀请人锁定其是通过哪一条链接进的组,查询出该链接的邀请人Id + * @param invitee + * @return Map key : new | registered + * @author wangc + * @date 2020.12.21 16:27 + */ + @PostMapping("/gov/issue/issuesharelinkvisitrecord/inviter") + Result> inviter(@RequestParam("invitee")String invitee,@RequestParam("issues")List issues); } 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 fe2142169e..2916fd9e85 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 @@ -198,4 +198,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result checkInviteRelationship(SharableIssueAndInviteeFormDTO param) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "checkInviteRelationship", param); } + + @Override + public Result> inviter(String invitee,List issues) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "inviter", invitee,issues); + } } 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 db2ea0182e..754b8767d8 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 @@ -13,6 +13,7 @@ import com.epmet.service.IssueShareLinkVisitRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Map; @@ -82,4 +83,16 @@ public class IssueShareLinkVisitRecordController { ValidatorUtils.validateEntity(param); return new Result().ok(issueShareLinkVisitRecordService.checkInviteRelationship(param)); } + + /** + * @Description 通过被邀请人锁定其是通过哪一条链接进的组,查询出该链接的邀请人Id + * @param invitee + * @return Map key : new | registered + * @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)); + } } \ 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 c477de46bf..cc91b19799 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 @@ -22,6 +22,8 @@ import com.epmet.entity.IssueShareLinkVisitRecordEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 议题分享链接访问记录表 * @@ -50,4 +52,24 @@ 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); } \ 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 4cab9430d7..5860799b54 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 @@ -63,4 +63,8 @@ public class IssueShareLinkVisitRecordEntity extends BaseEpmetEntity { */ private Integer isInviteRegister; + /** + * 是否同意进组,1是0否,在注册完居民之后,是否同意入组,如果同意发送入组申请,不同意此项默认为0 + */ + private Integer ifJoinGroup; } 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 9a77c61d18..b4c29b8f3f 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 @@ -101,4 +101,13 @@ public interface IssueShareLinkVisitRecordService extends BaseService key : new | registered + * @author wangc + * @date 2020.12.21 16:27 + */ + Map getInviter(String invitee,List issues); } \ 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 5221e0fd5d..0039e0e17c 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 @@ -33,6 +33,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -111,4 +112,24 @@ public class IssueShareLinkVisitRecordServiceImpl extends BaseServiceImpl key : new | registered + * @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; + } + } \ 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 e860796488..ee41fc5bb7 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 @@ -14,7 +14,7 @@ AND invitee_user_id = #{invitee} AND - is_invite_register = 0 + is_invite_register = 1 LIMIT 1 @@ -22,7 +22,7 @@ UPDATE issue_share_link_visit_record SET - is_invite_register = '1' + is_invite_register = 0 WHERE del_flag = '0' AND @@ -30,4 +30,46 @@ AND invitee_user_id = #{invitee} + + + + \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/GroupMemeberOperationDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/GroupMemeberOperationDTO.java index 751153861a..78f7c8fe77 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/GroupMemeberOperationDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/GroupMemeberOperationDTO.java @@ -62,7 +62,7 @@ public class GroupMemeberOperationDTO implements Serializable { private String operateStatus; /** - * 入群方式:(受邀请入群 - invited 、 主动加入 - join、created群主创建群自动进入群、扫码入群 - scancode) + * 入群方式:(受邀请入群 - invited 、 主动加入 - join、created群主创建群自动进入群、扫码入群 - scancode、话题分享链接 - topic_share_link、议题分享链接 - issue_share_link) */ private String enterGroupType; diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java index c6cd651968..f1832f7958 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java @@ -54,7 +54,7 @@ public class ResiGroupMemberDTO implements Serializable { private String groupLeaderFlag; /** - * 入群方式:(受邀请入群 - invited 、 主动加入 - join、created群主创建群自动进入群、扫码入群 - scancode) + * 入群方式:(受邀请入群 - invited 、 主动加入 - join、created群主创建群自动进入群、扫码入群 - scancode、话题分享链接 - topic_share_link、议题分享链接 - issue_share_link) */ private String enterGroupType; diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java index 915523354b..352499d9a4 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java @@ -48,7 +48,7 @@ public class ApplyingMemberResultDTO implements Serializable { private String status; /** - * invited:通过链接加入 ; join:申请加入;scancode通过扫码加入 + * invited:通过链接加入 ; join:申请加入;scancode通过扫码加入;话题分享链接 - topic_share_link、议题分享链接 - issue_share_link */ private String enterGroupType; diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 81ebebf97f..ad9a19903f 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -18,6 +18,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.HashMap; import java.util.List; diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 17e89e25fa..1b6f214fa0 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -108,6 +108,6 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien @Override public Result checkInviteRelationship(SharableTopicAndInviteeFormDTO param) { - return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "selectTopicBelongGroup",param); + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "selectTopicBelongGroup", param); } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/entity/GroupMemeberOperationEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/entity/GroupMemeberOperationEntity.java index fd7537370c..8483de6627 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/entity/GroupMemeberOperationEntity.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/entity/GroupMemeberOperationEntity.java @@ -62,7 +62,7 @@ Ps: 1) 入群被拒绝之后,如果再申请是插入一条新的审核中的 private String operateStatus; /** - * 入群方式:(受邀请入群 - invited 、 主动加入 - join、扫码入群 - scancode) + * 入群方式:(受邀请入群 - invited 、 主动加入 - join、扫码入群 - scancode、话题分享链接 - topic_share_link、议题分享链接 - issue_share_link) */ private String enterGroupType; diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/entity/ResiGroupMemberEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/entity/ResiGroupMemberEntity.java index 6dc7d21ad2..ebcceb9566 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/entity/ResiGroupMemberEntity.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/entity/ResiGroupMemberEntity.java @@ -54,7 +54,7 @@ public class ResiGroupMemberEntity extends BaseEpmetEntity { private String groupLeaderFlag; /** - * 入群方式:(受邀请入群 - invited 、 主动加入 - join、扫码入群 - scancode) + * 入群方式:(受邀请入群 - invited 、 主动加入 - join、扫码入群 - scancode、话题分享链接 - topic_share_link、议题分享链接 - issue_share_link) */ private String enterGroupType; 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 76ec2024c2..bb276de989 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 @@ -21,20 +21,22 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; -import com.epmet.commons.tools.constant.AppClientConstant; -import com.epmet.commons.tools.constant.FieldConstant; -import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.constant.*; +import com.epmet.commons.tools.dto.form.mq.MqBaseMsgDTO; +import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg; +import com.epmet.commons.tools.enums.EventEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; 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.form.*; import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.feign.GovIssueOpenFeignClient; import com.epmet.modules.constant.GroupMemberConstant; import com.epmet.modules.constant.UserMessageConstant; import com.epmet.modules.feign.EpmetUserFeignClient; @@ -48,7 +50,9 @@ import com.epmet.modules.member.entity.ResiGroupMemberEntity; 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.service.ResiTopicService; +import com.epmet.modules.topic.service.TopicShareLinkVisitRecordService; import com.epmet.modules.utils.ModuleConstant; import com.epmet.resi.group.constant.EnterGroupTypeConstant; import com.epmet.resi.group.constant.LeaderFlagConstant; @@ -111,7 +115,8 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl page(Map params) { @@ -484,6 +493,42 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl inviterMap = null; + if(StringUtils.equals(groupMemeberOperationDTO.getEnterGroupType(),ModuleConstant.ENTER_GROUP_TYPE_TOPIC_LINK)){ + inviterMap = topicShareLinkVisitRecordService.getInviter(groupMemeberOperationDTO.getCustomerUserId(),groupMemeberOperationDTO.getGroupId()); + }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(); + } + + } + if(!CollectionUtils.isEmpty(inviterMap)){ + //groupMemeberOperationDTO.getCreatedTime() + + boolean isNew = StringUtils.isBlank(inviterMap.get("new")); + + //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(groupCache.getCustomerId()); + pointEventMsg.setUserId(isNew ? inviterMap.get("new") : inviterMap.get("register")); + pointEventMsg.setActionFlag(MqConstant.PLUS); + pointEventMsg.setIsCommon(false); + if(!isNew) pointEventMsg.setTargetDate(groupMemeberOperationDTO.getCreatedTime()); + pointEventMsgList.add(pointEventMsg); + + mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList)); + Result result= SendMqMsgUtils.sendMsg(mqBaseMsgDTO); + if(!result.success()){ + logger.error((isNew ? "拉新用户入组事件发送失败" : "邀请已注册用户入组事件发送失败").concat(",参数:%s"),JSON.toJSONString(agreeApplyFormDTO)); + } + } } /** diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/TopicShareLinkVisitRecordController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/TopicShareLinkVisitRecordController.java index 97e2f8d7ac..cf134cfea6 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/TopicShareLinkVisitRecordController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/TopicShareLinkVisitRecordController.java @@ -80,4 +80,4 @@ public class TopicShareLinkVisitRecordController { public Result checkInviteRelationship(@RequestBody SharableTopicAndInviteeFormDTO param){ return new Result().ok(topicShareLinkVisitRecordService.checkInviteRelationship(param)); } -} \ No newline at end of file +} 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 6590732567..dd53316d83 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,4 +193,5 @@ public interface ResiTopicDao extends BaseDao { */ List selectTopicIdsByGroup(@Param("groupId") String groupId); + List selectIssueIdsByGroupId(@Param("groupId")String groupId); } \ No newline at end of file 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 9ffe5d9723..d4088374bb 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 @@ -33,4 +33,22 @@ public interface TopicShareLinkVisitRecordDao extends BaseDao key : new | registered + * @author wangc + * @date 2020.12.21 16:29 + */ + Map getInviter(String invitee,String groupId); } \ 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 9188e81ce7..d4a6dab08b 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 @@ -16,6 +16,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -94,4 +95,24 @@ public class TopicShareLinkVisitRecordServiceImpl extends BaseServiceImpl key : new | registered + * @author wangc + * @date 2020.12.21 16:29 + */ + @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; + } + } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java index bf0c3a741e..37f1a3b290 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java @@ -370,4 +370,14 @@ public interface ModuleConstant extends Constant { String CODE_INVITE_PAGE = "pages/group/group/invitation/invitation"; String TOPIC_CONTENT_AND_VOICE_IS_NULL = "请输入话题内容或语音"; + + /** + * 通过话题分享链接进组 + */ + String ENTER_GROUP_TYPE_TOPIC_LINK = "topic_share_link"; + + /** + * 通过议题分享链接进组 + */ + String ENTER_GROUP_TYPE_ISSUE_LINK = "issue_share_link"; } 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 f51b0f7216..8107666ae5 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,5 +527,18 @@ AND GROUP_ID = #{groupId} AND STATUS != 'hidden' + + 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 641a70a031..f596efce4d 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 @@ -14,7 +14,7 @@ AND invitee_user_id = #{invitee} AND - is_invite_register = 0 + is_invite_register = 1 LIMIT 1 @@ -22,7 +22,7 @@ UPDATE topic_share_link_visit_record SET - is_invite_register = '1' + is_invite_register = 0 WHERE del_flag = '0' AND @@ -30,4 +30,35 @@ AND invitee_user_id = #{invitee} + + + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java index 273accf305..30b73bd794 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java @@ -179,8 +179,8 @@ public interface UserResiInfoService extends BaseService { /** * @Description 在分享链接之后完成注册居民之后调用的接口 * 作用 - * ①给邀请人加积分 - * ②更改邀请浏览记录里"是否通过邀请链接注册居民" + * + * 更改邀请浏览记录里"是否通过邀请链接注册居民" * @param param * @return void * @author wangc diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java index 6b3d31b337..9c973e7b78 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java @@ -412,8 +412,8 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl response; if(StringUtils.equals(ModuleConstant.SHARABLE_LINK_FROM_ISSUE,param.getLinkType())) - response = govIssueClient.checkInviteRelationship(ConvertUtils.sourceToTarget(param,SharableIssueAndInviteeFormDTO.class)); + govIssueClient.checkInviteRelationship(ConvertUtils.sourceToTarget(param,SharableIssueAndInviteeFormDTO.class)); else - response = resiGroupClient.checkInviteRelationship(ConvertUtils.sourceToTarget(param, SharableTopicAndInviteeFormDTO.class)); - - if(null == response || !response.success() || StringUtils.isBlank(response.getData())){ - //mq的事件类型 - MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO(); - //事件code - mqBaseMsgDTO.setEventTag(EventEnum.PULL_NEW_RESIDENT.getEventTag()); - List pointEventMsgList = new ArrayList<>(); - BasePointEventMsg pointEventMsg = new BasePointEventMsg(); - pointEventMsg.setCustomerId(userCustomerDao.selectByUserId(response.getData()).getCustomerId()); - pointEventMsg.setUserId(response.getData()); - pointEventMsg.setActionFlag(MqConstant.PLUS); - pointEventMsg.setIsCommon(false); - pointEventMsgList.add(pointEventMsg); - - mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList)); - Result result= SendMqMsgUtils.sendMsg(mqBaseMsgDTO); - if(!result.success()){ - log.error("拉新用户事件发送失败"); - } - } - + resiGroupClient.checkInviteRelationship(ConvertUtils.sourceToTarget(param, SharableTopicAndInviteeFormDTO.class)); } }