|
@ -29,7 +29,7 @@ import com.epmet.commons.tools.page.PageData; |
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
import com.epmet.commons.tools.utils.Result; |
|
|
import com.epmet.commons.tools.utils.Result; |
|
|
import com.epmet.constant.ReadFlagConstant; |
|
|
import com.epmet.constant.ReadFlagConstant; |
|
|
import com.epmet.dto.UserResiInfoDTO; |
|
|
import com.epmet.dto.form.UserInvitationFormDTO; |
|
|
import com.epmet.dto.form.UserMessageFormDTO; |
|
|
import com.epmet.dto.form.UserMessageFormDTO; |
|
|
import com.epmet.dto.form.UserResiInfoFormDTO; |
|
|
import com.epmet.dto.form.UserResiInfoFormDTO; |
|
|
import com.epmet.dto.result.UserResiInfoResultDTO; |
|
|
import com.epmet.dto.result.UserResiInfoResultDTO; |
|
@ -199,14 +199,15 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD |
|
|
**/ |
|
|
**/ |
|
|
@Override |
|
|
@Override |
|
|
public Result<LinkGroupInfoResultDTO> getLinkGroupInfo(LinkGroupInfoFormDTO formDTO) { |
|
|
public Result<LinkGroupInfoResultDTO> getLinkGroupInfo(LinkGroupInfoFormDTO formDTO) { |
|
|
//校验是否存在该邀请连接
|
|
|
//0、校验是否存在该邀请连接(判断是会否被删除连接、是否失效、群状态)
|
|
|
Result<GroupInvitationDTO> validResult = this.checkLinkValid(formDTO.getInvitationId()); |
|
|
Result<GroupInvitationDTO> validResult = this.checkLinkValid(formDTO.getInvitationId()); |
|
|
if (!validResult.success()) { |
|
|
if (!validResult.success()) { |
|
|
return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(), validResult.getMsg()); |
|
|
return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(), validResult.getMsg()); |
|
|
} |
|
|
} |
|
|
|
|
|
GroupInvitationDTO groupInvitationDTO=validResult.getData(); |
|
|
LinkGroupInfoResultDTO linkGroupInfoResultDTO = new LinkGroupInfoResultDTO(); |
|
|
LinkGroupInfoResultDTO linkGroupInfoResultDTO = new LinkGroupInfoResultDTO(); |
|
|
//1、查询是否在群内
|
|
|
//1、查询是否在群内
|
|
|
ResiGroupMemberDTO resiGroupMemberDTO = resiGroupMemberDao.selectGroupMemberInfo(validResult.getData().getResiGroupId(), formDTO.getUserId()); |
|
|
ResiGroupMemberDTO resiGroupMemberDTO = resiGroupMemberDao.selectGroupMemberInfo(groupInvitationDTO.getResiGroupId(), formDTO.getUserId()); |
|
|
if (null != resiGroupMemberDTO && !MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())) { |
|
|
if (null != resiGroupMemberDTO && !MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())) { |
|
|
linkGroupInfoResultDTO.setInGroup(Constant.YES); |
|
|
linkGroupInfoResultDTO.setInGroup(Constant.YES); |
|
|
return new Result<LinkGroupInfoResultDTO>().ok(linkGroupInfoResultDTO); |
|
|
return new Result<LinkGroupInfoResultDTO>().ok(linkGroupInfoResultDTO); |
|
@ -214,7 +215,7 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD |
|
|
linkGroupInfoResultDTO.setInGroup(Constant.NO); |
|
|
linkGroupInfoResultDTO.setInGroup(Constant.NO); |
|
|
} |
|
|
} |
|
|
//2、查询组信息
|
|
|
//2、查询组信息
|
|
|
LinkGroupInfoDTO groupInfo = baseDao.selectLinkGroupInfo(validResult.getData().getResiGroupId()); |
|
|
LinkGroupInfoDTO groupInfo = baseDao.selectLinkGroupInfo(groupInvitationDTO.getResiGroupId()); |
|
|
//3、获取组长信息
|
|
|
//3、获取组长信息
|
|
|
Result<UserResiInfoResultDTO> groupLeaderUserInfo = this.getGroupLeaderUserInfo(groupInfo.getGroupId()); |
|
|
Result<UserResiInfoResultDTO> groupLeaderUserInfo = this.getGroupLeaderUserInfo(groupInfo.getGroupId()); |
|
|
if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) { |
|
|
if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) { |
|
@ -223,9 +224,36 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD |
|
|
logger.info("组长注册信息查询失败" + groupLeaderUserInfo.getMsg()); |
|
|
logger.info("组长注册信息查询失败" + groupLeaderUserInfo.getMsg()); |
|
|
} |
|
|
} |
|
|
linkGroupInfoResultDTO.setGroupInfo(groupInfo); |
|
|
linkGroupInfoResultDTO.setGroupInfo(groupInfo); |
|
|
|
|
|
//4、记录用户邀请关系
|
|
|
|
|
|
this.saveUserInvitation(groupInvitationDTO,formDTO); |
|
|
return new Result<LinkGroupInfoResultDTO>().ok(linkGroupInfoResultDTO); |
|
|
return new Result<LinkGroupInfoResultDTO>().ok(linkGroupInfoResultDTO); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @param groupInvitationDTO |
|
|
|
|
|
* @param formDTO |
|
|
|
|
|
* @return com.epmet.commons.tools.utils.Result |
|
|
|
|
|
* @Author yinzuomei |
|
|
|
|
|
* @Description 记录用户邀请关系 |
|
|
|
|
|
* @Date 2020/4/10 1:01 |
|
|
|
|
|
**/ |
|
|
|
|
|
private Result saveUserInvitation(GroupInvitationDTO groupInvitationDTO, LinkGroupInfoFormDTO formDTO) { |
|
|
|
|
|
UserInvitationFormDTO userInvitationFormDTO = new UserInvitationFormDTO(); |
|
|
|
|
|
userInvitationFormDTO.setCustomerId(groupInvitationDTO.getInviterCustomerId()); |
|
|
|
|
|
userInvitationFormDTO.setGridId(groupInvitationDTO.getInviterGridId()); |
|
|
|
|
|
userInvitationFormDTO.setInviterUserId(groupInvitationDTO.getInviterUserId()); |
|
|
|
|
|
userInvitationFormDTO.setInviteeUserId(formDTO.getUserId()); |
|
|
|
|
|
userInvitationFormDTO.setInviteSource(formDTO.getInviteSource()); |
|
|
|
|
|
userInvitationFormDTO.setInviteSourceId(formDTO.getInvitationId()); |
|
|
|
|
|
Result result = epmetUserFeignClient.saveUserInvitation(userInvitationFormDTO); |
|
|
|
|
|
if (!result.success()) { |
|
|
|
|
|
logger.info("人员邀请关系记录失败" + result.getMsg()); |
|
|
|
|
|
} else { |
|
|
|
|
|
logger.info("人员邀请关系记录成功"); |
|
|
|
|
|
} |
|
|
|
|
|
return result; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* @param groupId |
|
|
* @param groupId |
|
|
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.UserResiInfoDTO> |
|
|
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.UserResiInfoDTO> |
|
@ -259,6 +287,17 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD |
|
|
if (null != groupInvitationDTO && !groupInvitationDTO.getValidEndTime().after(new Date())) { |
|
|
if (null != groupInvitationDTO && !groupInvitationDTO.getValidEndTime().after(new Date())) { |
|
|
return new Result<GroupInvitationDTO>().error(EpmetErrorCode.LOSE_EFFICACY.getValue(), EpmetErrorCode.LOSE_EFFICACY.getName()); |
|
|
return new Result<GroupInvitationDTO>().error(EpmetErrorCode.LOSE_EFFICACY.getValue(), EpmetErrorCode.LOSE_EFFICACY.getName()); |
|
|
} |
|
|
} |
|
|
|
|
|
ResiGroupEntity resiGroupEntity = resiGroupDao.selectById(groupInvitationDTO.getResiGroupId()); |
|
|
|
|
|
if (null == resiGroupEntity) { |
|
|
|
|
|
logger.info("组不存在"); |
|
|
|
|
|
//TODO
|
|
|
|
|
|
} else if (null != resiGroupEntity && GroupStateConstant.GROUP_CLOSED.equals(resiGroupEntity.getState())) { |
|
|
|
|
|
logger.info("组已经关闭"); |
|
|
|
|
|
//TODO
|
|
|
|
|
|
} else if (null != resiGroupEntity && GroupStateConstant.GROUP_HIDDEN.equals(resiGroupEntity.getState())) { |
|
|
|
|
|
logger.info("组已屏蔽"); |
|
|
|
|
|
//TODO
|
|
|
|
|
|
} |
|
|
return new Result<GroupInvitationDTO>().ok(groupInvitationDTO); |
|
|
return new Result<GroupInvitationDTO>().ok(groupInvitationDTO); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -276,8 +315,9 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD |
|
|
if (!validResult.success()) { |
|
|
if (!validResult.success()) { |
|
|
return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(), validResult.getMsg()); |
|
|
return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(), validResult.getMsg()); |
|
|
} |
|
|
} |
|
|
|
|
|
GroupInvitationDTO groupInvitationDTO=validResult.getData(); |
|
|
//2、校验是否已经注册居民
|
|
|
//2、校验是否已经注册居民
|
|
|
ResiGroupDTO resiGroupDTO = resiGroupService.get(validResult.getData().getResiGroupId()); |
|
|
ResiGroupDTO resiGroupDTO = resiGroupService.get(groupInvitationDTO.getResiGroupId()); |
|
|
if (null != resiGroupDTO) { |
|
|
if (null != resiGroupDTO) { |
|
|
UserRoleDTO userRoleDTO = resiGroupService.checkPartyMemberOrWarmHeated(formDTO.getApp(), |
|
|
UserRoleDTO userRoleDTO = resiGroupService.checkPartyMemberOrWarmHeated(formDTO.getApp(), |
|
|
formDTO.getUserId(), |
|
|
formDTO.getUserId(), |
|
@ -292,13 +332,12 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD |
|
|
groupMemeberOperation.setCustomerUserId(formDTO.getUserId()); |
|
|
groupMemeberOperation.setCustomerUserId(formDTO.getUserId()); |
|
|
groupMemeberOperation.setOperateStatus(MemberStateConstant.APPROVED); |
|
|
groupMemeberOperation.setOperateStatus(MemberStateConstant.APPROVED); |
|
|
groupMemeberOperation.setEnterGroupType(EnterGroupTypeConstant.INVITED); |
|
|
groupMemeberOperation.setEnterGroupType(EnterGroupTypeConstant.INVITED); |
|
|
groupMemeberOperation.setCreatedBy(formDTO.getUserId()); |
|
|
|
|
|
groupMemeberOperation.setOperateUserId(formDTO.getUserId()); |
|
|
groupMemeberOperation.setOperateUserId(formDTO.getUserId()); |
|
|
groupMemeberOperationService.save(groupMemeberOperation); |
|
|
groupMemeberOperationService.save(groupMemeberOperation); |
|
|
//4、直接加入群成员关系表
|
|
|
//4、直接加入群成员关系表
|
|
|
//如果是之前被移除的,则修改resi_group_member记录
|
|
|
//如果是之前被移除的,则修改resi_group_member记录
|
|
|
ResiGroupMemberDTO resiGroupMemberDTO = new ResiGroupMemberDTO(); |
|
|
ResiGroupMemberDTO resiGroupMemberDTO = new ResiGroupMemberDTO(); |
|
|
ResiGroupMemberDTO resiGroupMember = resiGroupMemberDao.selectGroupMemberInfo(validResult.getData().getResiGroupId(), formDTO.getUserId()); |
|
|
ResiGroupMemberDTO resiGroupMember = resiGroupMemberDao.selectGroupMemberInfo(groupInvitationDTO.getResiGroupId(), formDTO.getUserId()); |
|
|
if (null != resiGroupMember) { |
|
|
if (null != resiGroupMember) { |
|
|
resiGroupMemberDTO.setId(resiGroupMember.getId()); |
|
|
resiGroupMemberDTO.setId(resiGroupMember.getId()); |
|
|
} |
|
|
} |
|
@ -315,31 +354,28 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD |
|
|
resiGroupDTO.getCustomerId()); |
|
|
resiGroupDTO.getCustomerId()); |
|
|
resiGroupMemberDao.updateResiGroupStatistical(groupMemeberOperation.getGroupId(), userRoleDTO); |
|
|
resiGroupMemberDao.updateResiGroupStatistical(groupMemeberOperation.getGroupId(), userRoleDTO); |
|
|
//6、发送消息
|
|
|
//6、发送消息
|
|
|
this.sendMessageToLeader(formDTO, resiGroupDTO); |
|
|
this.sendMessageToLeader(formDTO, resiGroupDTO,groupInvitationDTO); |
|
|
return new Result(); |
|
|
return new Result(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* @param formDTO |
|
|
* @param formDTO 当前用户信息 |
|
|
* @param resiGroupDTO |
|
|
* @param resiGroupDTO 群组信息 |
|
|
|
|
|
* @param groupInvitationDTO 邀请信息 |
|
|
* @return void |
|
|
* @return void |
|
|
* @Author yinzuomei |
|
|
* @Author yinzuomei |
|
|
* @Description 用户通过邀请进群之后,通知群主:您的好友-【认证的居民名字 xxx路-王先生】通过邀请链接,加入了【组名】 |
|
|
* @Description 用户通过邀请进群之后,通知群主:您的好友-【认证的居民名字 xxx路-王先生】通过邀请链接,加入了【组名】 |
|
|
* @Date 2020/4/7 14:46 |
|
|
* @Date 2020/4/7 14:46 |
|
|
**/ |
|
|
**/ |
|
|
private void sendMessageToLeader(AccetInvitationFormDTO formDTO, ResiGroupDTO resiGroupDTO) { |
|
|
private Result sendMessageToLeader(AccetInvitationFormDTO formDTO, ResiGroupDTO resiGroupDTO, GroupInvitationDTO groupInvitationDTO) { |
|
|
//1、查询群主信息
|
|
|
//1、根据用户id用户认证注册信息
|
|
|
ResiGroupMemberDTO leader = resiGroupDao.selectGroupLeader(resiGroupDTO.getId()); |
|
|
|
|
|
if (null == leader) { |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
//2、根据用户id用户认证注册信息
|
|
|
|
|
|
UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO(); |
|
|
UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO(); |
|
|
userResiInfoFormDTO.setUserId(formDTO.getUserId()); |
|
|
userResiInfoFormDTO.setUserId(formDTO.getUserId()); |
|
|
userResiInfoFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); |
|
|
userResiInfoFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); |
|
|
Result<UserResiInfoResultDTO> userResiInfoDTOResult = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO); |
|
|
Result<UserResiInfoResultDTO> userResiInfoDTOResult = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO); |
|
|
if (!userResiInfoDTOResult.success() || null == userResiInfoDTOResult.getData()) { |
|
|
if (!userResiInfoDTOResult.success() || null == userResiInfoDTOResult.getData()) { |
|
|
return; |
|
|
logger.info("查询居民注册信息失败"); |
|
|
|
|
|
return new Result(); |
|
|
} |
|
|
} |
|
|
UserMessageFormDTO userMessage = new UserMessageFormDTO(); |
|
|
UserMessageFormDTO userMessage = new UserMessageFormDTO(); |
|
|
userMessage.setApp(AppClientConstant.APP_RESI); |
|
|
userMessage.setApp(AppClientConstant.APP_RESI); |
|
@ -350,8 +386,14 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD |
|
|
userMessage.setReadFlag(ReadFlagConstant.UN_READ); |
|
|
userMessage.setReadFlag(ReadFlagConstant.UN_READ); |
|
|
userMessage.setTitle(UserMessageConstant.GROUP_TITLE); |
|
|
userMessage.setTitle(UserMessageConstant.GROUP_TITLE); |
|
|
//通知群主
|
|
|
//通知群主
|
|
|
userMessage.setUserId(leader.getCustomerUserId()); |
|
|
userMessage.setUserId(groupInvitationDTO.getInviterUserId()); |
|
|
messageFeignClient.saveUserMessage(userMessage); |
|
|
Result result = messageFeignClient.saveUserMessage(userMessage); |
|
|
|
|
|
if (result.success()) { |
|
|
|
|
|
logger.info("通知群主有新成员入群成功"); |
|
|
|
|
|
} else { |
|
|
|
|
|
logger.info("通知群主有新成员入群失败" + result.getMsg()); |
|
|
|
|
|
} |
|
|
|
|
|
return result; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|