Browse Source

审核入群发送积分修改

master
wangchao 5 years ago
parent
commit
456f585115
  1. 11
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java
  2. 6
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java
  3. 12
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueShareLinkVisitRecordController.java
  4. 22
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueShareLinkVisitRecordDao.java
  5. 8
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueShareLinkVisitRecordService.java
  6. 19
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueShareLinkVisitRecordServiceImpl.java
  7. 42
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueShareLinkVisitRecordDao.xml
  8. 40
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  9. 28
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/TopicShareLinkVisitRecordDao.java
  10. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicShareLinkVisitRecordService.java
  11. 19
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicShareLinkVisitRecordServiceImpl.java
  12. 44
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/TopicShareLinkVisitRecordDao.xml

11
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<String> checkInviteRelationship(@RequestBody SharableIssueAndInviteeFormDTO param);
/**
* @Description 通过被邀请人锁定其是通过哪一条链接进的组查询出该链接的邀请人Id
* @param invitee
* @return Map<String,String> key : new | registered
* @Description 通过链接Id查询分享人和被邀请人的信息
* @param
* @return
* @author wangc
* @date 2020.12.21 16:27
*/
@PostMapping("/gov/issue/issuesharelinkvisitrecord/inviter")
Result<Map<String,String>> inviter(@RequestParam("invitee")String invitee,@RequestParam("issues")List<String> issues);
@PostMapping("/gov/issue/issuesharelinkvisitrecord/visitrecord")
Result<IssueShareLinkVisitRecordDTO> visitRecord(@RequestParam("linkId")String linkId,@RequestParam("invitee")String invitee);
}

6
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<Map<String,String>> inviter(String invitee,List<String> issues) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "inviter", invitee,issues);
public Result<IssueShareLinkVisitRecordDTO> visitRecord(String linkId,String invitee) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "visitRecord", linkId,invitee);
}
}

12
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<String,String> key : new | registered
* @Description 通过链接Id查询分享人和被邀请人的信息
* @param
* @return
* @author wangc
* @date 2020.12.21 16:27
*/
@PostMapping("inviter")
public Result<Map<String,String>> inviter(@RequestParam("invitee")String invitee,@RequestParam("issues") List<String> issues){
return new Result<Map<String,String>>().ok(issueShareLinkVisitRecordService.getInviter(invitee,issues));
@PostMapping("visitrecord")
public Result<IssueShareLinkVisitRecordDTO> visitRecord(@RequestParam("linkId")String linkId,@RequestParam("invitee")String invitee){
return new Result<IssueShareLinkVisitRecordDTO>().ok(issueShareLinkVisitRecordService.getVisitRecord(linkId,invitee));
}
}

22
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<IssueShareLinkVisi
int updateInviteRegister(@Param("linkId") String linkId, @Param("invitee") String invitee);
/**
* @Description 通过被邀请人锁定其是通过哪一条链接进的组查询出该链接的邀请人Id
* @param invitee
* @param issues 同一个组下的所有议题Id
* @return java.lang.String
* @Description 根据邀请Id和被邀请人Id查询查询链接浏览记录
* @param
* @return com.epmet.dto.IssueShareLinkVisitRecordDTO
* @author wangc
* @date 2020.12.21 16:27
* @date 2020.12.22 09:53
*/
String selectInviterByNewInvitee(@Param("invitee") String invitee,@Param("issues") List<String> 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<String> issues);
IssueShareLinkVisitRecordDTO selectRecordByLinkIdAndInvitee(@Param("linkId") String linkId, @Param("invitee") String invitee);
}

8
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueShareLinkVisitRecordService.java

@ -103,11 +103,11 @@ public interface IssueShareLinkVisitRecordService extends BaseService<IssueShare
String checkInviteRelationship(SharableIssueAndInviteeFormDTO param);
/**
* @Description 通过被邀请人锁定其是通过哪一条链接进的组查询出该链接的邀请人Id
* @param invitee
* @return Map<String,String> key : new | registered
* @Description 通过链接Id查询分享人和被邀请人的信息
* @param
* @return
* @author wangc
* @date 2020.12.21 16:27
*/
Map<String,String> getInviter(String invitee,List<String> issues);
IssueShareLinkVisitRecordDTO getVisitRecord(String linkId,String invitee);
}

19
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<IssueS
}
/**
* @Description 通过被邀请人锁定其是通过哪一条链接进的组查询出该链接的邀请人Id
* @param invitee
* @return Map<String,String> key : new | registered
* @Description 通过链接Id查询分享人和被邀请人的信息
* @param
* @return
* @author wangc
* @date 2020.12.21 16:27
*/
@Override
public Map<String,String> getInviter(String invitee,List<String> issues) {
Map<String,String> 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);
}
}

42
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueShareLinkVisitRecordDao.xml

@ -31,45 +31,17 @@
invitee_user_id = #{invitee}
</update>
<select id="selectInviterByNewInvitee" resultType="string">
<select id="selectRecordByLinkIdAndInvitee"
resultType="com.epmet.dto.IssueShareLinkVisitRecordDTO">
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'
<foreach collection="issues" item="issueId" open="AND (" separator=" OR " close=" )">
link.issue_id = #{issueId}
</foreach>
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
</select>
<select id="selectInviterByRegisteredInvitee" resultType="string">
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'
<foreach collection="issues" item="issueId" open="AND (" separator=" OR " close=" )">
link.issue_id = #{issueId}
</foreach>
INNER
*
FROM issue_share_link_visit_record
WHERE
visit.del_flag = '0'
AND
visit.invitee_user_id = #{invitee}
del_flag = '0'
AND
visit.is_invite_register = 1
share_link_rec_id = #{linkId}
AND
visit.if_join_group = 1
invitee_user_id = #{invitee}
LIMIT 1
</select>
</mapper>

40
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<ResiGroupMemberD
@Autowired
private ResiTopicService resiTopicService;
@Autowired
private ResiTopicDao topicDao;
@Autowired
private ResiGroupMemberRedis resiGroupMemberRedis;
@Autowired
@ -494,22 +494,34 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
resiGroupRedis.set(groupCache);
}
//9、查询当前入组申请人是否是通过话题/议题链接入组,如果是,要给邀请人发送积分事件
Map<String,String> 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<String> issues = topicDao.selectIssueIdsByGroupId(groupMemeberOperationDTO.getGroupId());
if(!CollectionUtils.isEmpty(issues)){
Result<Map<String,String>> inviterResult = issueClient.inviter(groupMemeberOperationDTO.getCustomerUserId(),issues);
if(inviterResult.success() && !CollectionUtils.isEmpty(inviterResult.getData())) inviterMap = inviterResult.getData();
Result<IssueShareLinkVisitRecordDTO> 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<ResiGroupMemberD
List<BasePointEventMsg> 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());

28
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/TopicShareLinkVisitRecordDao.java

@ -25,30 +25,22 @@ public interface TopicShareLinkVisitRecordDao extends BaseDao<TopicShareLinkVisi
String selectByLinkIdAndInvitee(@Param("linkId") String linkId, @Param("invitee") String invitee);
/**
* @Description 修改是否通过链接注册居民由0改为1
* @Description 根据邀请Id和邀请人Id查询邀请人的Id
* @param linkId
* @param invitee
* @return int
* @return String
* @author wangc
* @date 2020.12.18 15:46
*/
int updateInviteRegister(@Param("linkId") String linkId, @Param("invitee") String invitee);
* @date 2020.12.18 14:00
*/
TopicShareLinkVisitRecordEntity selectRecordByLinkIdAndInvitee(@Param("linkId") String linkId, @Param("invitee") String invitee);
/**
* @Description 通过被邀请人锁定其是通过哪一条链接进的组查询出该链接的邀请人Id
* @Description 修改是否通过链接注册居民由0改为1
* @param linkId
* @param invitee
* @return java.lang.String
* @return int
* @author wangc
* @date 2020.12.21 16:29
* @date 2020.12.18 15:46
*/
String selectInviterByNewInvitee(@Param("invitee") String invitee,@Param("groupId")String groupId);
/**
* @Description 通过被邀请人锁定其是通过哪一条链接进的组查询出该链接的邀请人Id
* @param invitee
* @return java.lang.String
* @author wangc
* @date 2020.12.21 16:29
*/
String selectInviterByRegisteredInvitee(@Param("invitee") String invitee,@Param("groupId")String groupId);
int updateInviteRegister(@Param("linkId") String linkId, @Param("invitee") String invitee);
}

11
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicShareLinkVisitRecordService.java

@ -87,11 +87,12 @@ public interface TopicShareLinkVisitRecordService extends BaseService<TopicShare
String checkInviteRelationship(SharableTopicAndInviteeFormDTO param);
/**
* @Description 通过被邀请人锁定其是通过哪一条链接进的组查询出该链接的邀请人Id
* @Description 通过邀请链接Id和被邀请人Id查询出访问记录
* @param linkId
* @param invitee
* @return Map<String,String> key : new | registered
* @return com.epmet.modules.topic.entity.TopicShareLinkVisitRecordEntity
* @author wangc
* @date 2020.12.21 16:29
*/
Map<String,String> getInviter(String invitee,String groupId);
* @date 2020.12.22 09:20
*/
TopicShareLinkVisitRecordEntity getByLinkIdAndInvitee(String linkId,String invitee);
}

19
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<TopicS
}
/**
* @Description 通过被邀请人锁定其是通过哪一条链接进的组查询出该链接的邀请人Id
* @Description 通过邀请链接Id和被邀请人Id查询出访问记录
* @param linkId
* @param invitee
* @return Map<String,String> 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<String,String> getInviter(String invitee,String groupId) {
Map<String,String> 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);
}
}

44
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/TopicShareLinkVisitRecordDao.xml

@ -18,47 +18,29 @@
LIMIT 1
</select>
<update id="updateInviteRegister">
UPDATE
topic_share_link_visit_record
SET
is_invite_register = 0
<select id="selectRecordByLinkIdAndInvitee" resultType="com.epmet.modules.topic.entity.TopicShareLinkVisitRecordEntity">
SELECT
*
FROM topic_share_link_visit_record
WHERE
del_flag = '0'
AND
share_link_rec_id = #{linkId}
AND
invitee_user_id = #{invitee}
</update>
<select id="selectInviterByNewInvitee" resultType="string">
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
</select>
<select id="selectInviterByRegisteredInvitee" resultType="string">
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}
<update id="updateInviteRegister">
UPDATE
topic_share_link_visit_record
SET
is_invite_register = 0
WHERE
visit.del_flag = '0'
del_flag = '0'
AND
visit.invitee_user_id = #{invitee}
share_link_rec_id = #{linkId}
AND
visit.is_invite_register = 1
LIMIT 1
</select>
invitee_user_id = #{invitee}
</update>
</mapper>
Loading…
Cancel
Save