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 68347c29f9..e37d7fe13d 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,6 +10,7 @@ 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","拉新用户") ; private String eventClass; diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/SharableIssueAndInviteeFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/SharableIssueAndInviteeFormDTO.java new file mode 100644 index 0000000000..9b1180cd61 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/SharableIssueAndInviteeFormDTO.java @@ -0,0 +1,29 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 议题分享链接和被邀请人传参DTO + * @ClassName SharableIssueAndInviteeFormDTO + * @Auth wangc + * @Date 2020-12-18 15:10 + */ +@Data +public class SharableIssueAndInviteeFormDTO implements Serializable { + private static final long serialVersionUID = -2777459178190245842L; + + /** + * 议题分享链接 + */ + @NotBlank(message = "分享链接不能为空") + private String shareLinkId; + + /** + * 通过链接进入议题页面用户的Id + */ + @NotBlank(message = "用户Id不能为空") + private String inviteeId; +} 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 a974ae1109..e5e68c8599 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 @@ -209,4 +209,18 @@ public interface GovIssueOpenFeignClient { **/ @PostMapping(value = "/gov/issue/issueapplication/queryuserpubauditingissues") Result> queryUserPubAuditingIssues(@RequestBody UserPubAuditingIssueFormDTO fomrDTO); + + /** + * @Description 检查邀请关系,如果确实存在邀请关系则返回邀请人Id + * 符合条件: + * ① 链接Id对应 + * ② 邀请人Id对应 + * ③ 邀请人在被邀请时的状态为陌生人 + * @param param + * @return com.epmet.commons.tools.utils.Result + * @author wangc + * @date 2020.12.18 14:53 + */ + @PostMapping("/gov/issue/issuesharelinkvisitrecord/checkinviterelationship") + Result checkInviteRelationship(@RequestBody SharableIssueAndInviteeFormDTO param); } 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 ea59c6d349..fe2142169e 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 @@ -193,4 +193,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result> queryUserPubAuditingIssues(UserPubAuditingIssueFormDTO fomrDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "queryUserPubAuditingIssues", fomrDTO); } + + @Override + public Result checkInviteRelationship(SharableIssueAndInviteeFormDTO param) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "checkInviteRelationship", param); + } } 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 cc84275f9a..db2ea0182e 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 @@ -8,6 +8,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.IssueShareLinkVisitRecordDTO; +import com.epmet.dto.form.SharableIssueAndInviteeFormDTO; import com.epmet.service.IssueShareLinkVisitRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -64,4 +65,21 @@ public class IssueShareLinkVisitRecordController { return new Result(); } + + /** + * @Description 检查邀请关系,如果确实存在邀请关系则返回邀请人Id + * 符合条件: + * ① 链接Id对应 + * ② 邀请人Id对应 + * ③ 邀请人在被邀请时的状态为陌生人 + * @param param + * @return com.epmet.commons.tools.utils.Result + * @author wangc + * @date 2020.12.18 14:53 + */ + @PostMapping("checkinviterelationship") + public Result checkInviteRelationship(@RequestBody SharableIssueAndInviteeFormDTO param){ + ValidatorUtils.validateEntity(param); + return new Result().ok(issueShareLinkVisitRecordService.checkInviteRelationship(param)); + } } \ 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 13eafce89f..c477de46bf 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 @@ -20,6 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.entity.IssueShareLinkVisitRecordEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 议题分享链接访问记录表 @@ -29,5 +30,24 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IssueShareLinkVisitRecordDao extends BaseDao { - + + /** + * @Description 根据邀请Id和邀请人Id查询邀请人的Id + * @param linkId + * @param invitee + * @return java.lang.String + * @author wangc + * @date 2020.12.18 15:50 + */ + String selectInviterIdByLinkIdAndInvitee(@Param("linkId") String linkId, @Param("invitee") String invitee); + + /** + * @Description 修改是否通过链接注册居民由0改为1 + * @param linkId + * @param invitee + * @return int + * @author wangc + * @date 2020.12.18 15:50 + */ + int updateInviteRegister(@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 1f7ec69f77..9a77c61d18 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 @@ -20,8 +20,8 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IssueShareLinkVisitRecordDTO; +import com.epmet.dto.form.SharableIssueAndInviteeFormDTO; import com.epmet.entity.IssueShareLinkVisitRecordEntity; - import java.util.List; import java.util.Map; @@ -92,4 +92,13 @@ public interface IssueShareLinkVisitRecordService extends BaseService + + + UPDATE + issue_share_link_visit_record + SET + is_invite_register = '1' + WHERE + del_flag = '0' + AND + share_link_rec_id = #{linkId} + 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/topic/form/SharableTopicAndInviteeFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/SharableTopicAndInviteeFormDTO.java new file mode 100644 index 0000000000..18d54716e0 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/SharableTopicAndInviteeFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.resi.group.dto.topic.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 话题分享链接和被邀请人入参Dto + * @ClassName SharableTopicAndInviteeFormDTO + * @Auth wangc + * @Date 2020-12-18 13:43 + */ +@Data +public class SharableTopicAndInviteeFormDTO implements Serializable { + + private static final long serialVersionUID = 4943940805360726855L; + + /** + * 话题分享链接 + */ + private String shareLinkId; + + /** + * 通过链接进入话题页面用户的Id + */ + private String inviteeId; +} 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 86b43f05ee..81ebebf97f 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 @@ -149,4 +149,18 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("resi/group/topicsharelink/topicbelonggroup") Result selectTopicBelongGroup(@RequestBody TopicBelongGroupFormDTO formDTO); + + /** + * @Description 检查邀请关系,如果确实存在邀请关系则返回邀请人Id + * 符合条件: + * ① 链接Id对应 + * ② 邀请人Id对应 + * ③ 邀请人在被邀请时的状态为陌生人 + * @param param + * @return com.epmet.commons.tools.utils.Result + * @author wangc + * @date 2020.12.18 14:53 + */ + @PostMapping("resi/group/topicsharelinkvisitrecord/checkinviterelationship") + Result checkInviteRelationship(@RequestBody SharableTopicAndInviteeFormDTO param); } 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 f445881445..17e89e25fa 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 @@ -105,4 +105,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result selectTopicBelongGroup(TopicBelongGroupFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "selectTopicBelongGroup",formDTO); } + + @Override + public Result checkInviteRelationship(SharableTopicAndInviteeFormDTO 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/topic/controller/TopicShareLinkVisitRecordController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/TopicShareLinkVisitRecordController.java index 2c482fb303..97e2f8d7ac 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 @@ -9,6 +9,7 @@ import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.modules.topic.service.TopicShareLinkVisitRecordService; import com.epmet.resi.group.dto.topic.TopicShareLinkVisitRecordDTO; +import com.epmet.resi.group.dto.topic.form.SharableTopicAndInviteeFormDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -64,4 +65,19 @@ public class TopicShareLinkVisitRecordController { return new Result(); } + /** + * @Description 检查邀请关系,如果确实存在邀请关系则返回邀请人Id + * 符合条件: + * ① 链接Id对应 + * ② 邀请人Id对应 + * ③ 邀请人在被邀请时的状态为陌生人 + * @param param + * @return com.epmet.commons.tools.utils.Result + * @author wangc + * @date 2020.12.18 14:53 + */ + @PostMapping("checkinviterelationship") + 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/TopicShareLinkVisitRecordDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/TopicShareLinkVisitRecordDao.java index 03157f911d..9ffe5d9723 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 @@ -3,6 +3,7 @@ package com.epmet.modules.topic.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.topic.entity.TopicShareLinkVisitRecordEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 话题分享链接访问记录表 @@ -12,5 +13,24 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface TopicShareLinkVisitRecordDao extends BaseDao { - + + /** + * @Description 根据邀请Id和邀请人Id查询邀请人的Id + * @param linkId + * @param invitee + * @return String + * @author wangc + * @date 2020.12.18 14:00 + */ + String selectByLinkIdAndInvitee(@Param("linkId") String linkId, @Param("invitee") String invitee); + + /** + * @Description 修改是否通过链接注册居民由0改为1 + * @param linkId + * @param invitee + * @return int + * @author wangc + * @date 2020.12.18 15:46 + */ + int updateInviteRegister(@Param("linkId") String linkId, @Param("invitee") 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/TopicShareLinkVisitRecordService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicShareLinkVisitRecordService.java index e09b2e3605..c8dcf98114 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicShareLinkVisitRecordService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicShareLinkVisitRecordService.java @@ -4,6 +4,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.modules.topic.entity.TopicShareLinkVisitRecordEntity; import com.epmet.resi.group.dto.topic.TopicShareLinkVisitRecordDTO; +import com.epmet.resi.group.dto.topic.form.SharableTopicAndInviteeFormDTO; import java.util.List; import java.util.Map; @@ -75,4 +76,13 @@ public interface TopicShareLinkVisitRecordService extends BaseService + + + UPDATE + topic_share_link_visit_record + SET + is_invite_register = '1' + WHERE + del_flag = '0' + AND + share_link_rec_id = #{linkId} + AND + invitee_user_id = #{invitee} + \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AfterRegisterResidentInSharableLinkFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AfterRegisterResidentInSharableLinkFormDTO.java new file mode 100644 index 0000000000..24c5735440 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AfterRegisterResidentInSharableLinkFormDTO.java @@ -0,0 +1,35 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 在链接中完成了注册居民之后的入参DTO 主要是为了给邀请人发送积分事件,并更改邀请关系中的"是否通过邀请注册的居民"标识 + * @ClassName AfterRegisterResidentInSharableLinkFormDTO + * @Auth wangc + * @Date 2020-12-18 16:25 + */ +@Data +public class AfterRegisterResidentInSharableLinkFormDTO implements Serializable { + private static final long serialVersionUID = 6921156923900693361L; + + /** + * 分享链接 + */ + @NotBlank(message = "链接Id不能为空") + private String shareLinkId; + + /** + * 链接类型 issue议题 topic话题 + */ + @NotBlank(message = "链接类型不能为空") + private String linkType; + + /** + * 受邀人Id + */ + @NotBlank(message = "用户Id不能为空") + private String inviteeId; +} diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml index 57707aec01..223a33fd4c 100644 --- a/epmet-user/epmet-user-server/pom.xml +++ b/epmet-user/epmet-user-server/pom.xml @@ -100,6 +100,18 @@ 2.0.0 compile + + com.epmet + resi-group-client + 2.0.0 + compile + + + com.epmet + gov-issue-client + 2.0.0 + compile + diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java index 604c8ac22b..e4f54f6aa7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java @@ -17,7 +17,9 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -31,6 +33,7 @@ import com.epmet.dto.result.IssueInitiatorResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.excel.UserResiInfoExcel; import com.epmet.service.UserResiInfoService; +import jdk.nashorn.internal.parser.Token; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -198,4 +201,12 @@ public class UserResiInfoController { userResiInfoService.editMobile(formDTO); return new Result(); } + + @PostMapping("submitinlink") + public Result submitInLink(@RequestBody AfterRegisterResidentInSharableLinkFormDTO param, @LoginUser TokenDto token){ + param.setInviteeId(token.getUserId()); + ValidatorUtils.validateEntity(param); + userResiInfoService.submitInLink(param); + return new Result(); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserCustomerDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserCustomerDao.java index 04473a7b88..5eed213440 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserCustomerDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserCustomerDao.java @@ -22,4 +22,13 @@ public interface UserCustomerDao extends BaseDao { * @return */ int updateRegistered(@Param("customerId") String customerId, @Param("userId") String userId); + + /** + * @Description 根据用户Id查询用户-客户关系 + * @param userId + * @return com.epmet.entity.UserCustomerEntity + * @author wangc + * @date 2020.12.18 18:05 + */ + UserCustomerEntity selectByUserId(@Param("userId") String userId); } 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 f0281dae5c..273accf305 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 @@ -175,4 +175,16 @@ public interface UserResiInfoService extends BaseService { * @return void */ void editMobile(EditMobileFormDTO formDTO); + + /** + * @Description 在分享链接之后完成注册居民之后调用的接口 + * 作用 + * ①给邀请人加积分 + * ②更改邀请浏览记录里"是否通过邀请链接注册居民" + * @param param + * @return void + * @author wangc + * @date 2020.12.18 16:34 + */ + void submitInLink(AfterRegisterResidentInSharableLinkFormDTO param); } 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 e8efe9816d..6b3d31b337 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 @@ -24,12 +24,17 @@ import com.epmet.common.token.util.UserUtil; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.EpmetRoleKeyConstant; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.MqConstant; import com.epmet.commons.tools.constant.NumConstant; +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.SmsTemplateConstant; import com.epmet.constant.UserRoleConstant; import com.epmet.dao.UserCustomerDao; @@ -46,8 +51,12 @@ import com.epmet.entity.UserBaseInfoEntity; import com.epmet.entity.UserResiInfoEntity; import com.epmet.entity.UserWechatEntity; import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.feign.GovIssueOpenFeignClient; import com.epmet.redis.UserResiInfoRedis; +import com.epmet.resi.group.dto.topic.form.SharableTopicAndInviteeFormDTO; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.service.*; +import com.epmet.util.ModuleConstant; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -88,6 +97,10 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl page(Map params) { @@ -396,4 +409,45 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl response; + + if(StringUtils.equals(ModuleConstant.SHARABLE_LINK_FROM_ISSUE,param.getLinkType())) + response = 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("拉新用户事件发送失败"); + } + } + + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/util/ModuleConstant.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/util/ModuleConstant.java index 706716aff6..f9890ec52b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/util/ModuleConstant.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/util/ModuleConstant.java @@ -46,4 +46,12 @@ public interface ModuleConstant { String BADGE_AUDIT_MESSAGE = "徽章审核消息"; + /** + * 链接类型- 话题 + */ + String SHARABLE_LINK_FROM_TOPIC = "topic"; + /** + * 链接类型- 议题 + */ + String SHARABLE_LINK_FROM_ISSUE = "issue"; } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserCustomerDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserCustomerDao.xml index 60348584a3..930f14ca25 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserCustomerDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserCustomerDao.xml @@ -7,4 +7,8 @@ update user_customer set IS_REGISTER = 1 where CUSTOMER_ID = #{customerId,jdbcType=VARCHAR} and USER_ID = #{userId,jdbcType=VARCHAR} + + \ No newline at end of file