Browse Source

根据链接查询群组信息接口修改添加inGroup返参

master
yinzuomei 6 years ago
parent
commit
44986e5aac
  1. 10
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java
  2. 50
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/LinkGroupInfoDTO.java
  3. 33
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/LinkGroupInfoResultDTO.java
  4. 5
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/dao/GroupInvitationDao.java
  5. 67
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java
  6. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java
  7. 37
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  8. 2
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/invitation/GroupInvitationDao.xml

10
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java

@ -108,4 +108,14 @@ public interface Constant {
* 版本控制用
*/
String VERSION_CONTROL = "/{version}";
/**
*
*/
String YES="yes";
/**
*
*/
String NO="no";
}

50
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/LinkGroupInfoDTO.java

@ -0,0 +1,50 @@
package com.epmet.resi.group.dto.invitation.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 点击链接查看组信息返参DTO
* @Author yinzuomei
* @Date 2020/4/8 11:22
*/
@Data
public class LinkGroupInfoDTO implements Serializable {
private static final long serialVersionUID = 6136787210623326830L;
/**
* 群组id
*/
private String groupId;
/**
* 群组头像
*/
private String groupHeadPhoto;
/**
* 组长名称
* 暂定街道-姓名
*/
private String leaderName;
/**
* 群组名称
*/
private String groupName;
/**
* 组介绍
*/
private String groupIntroduction;
/**
* 成员总数
*/
private Integer totalMember;
/**
* 党员总数
*/
private Integer totalPartyMember;
}

33
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/LinkGroupInfoResultDTO.java

@ -14,38 +14,13 @@ public class LinkGroupInfoResultDTO implements Serializable {
private static final long serialVersionUID = 8860336693592035343L;
/**
* 群组id
* 是否在群内标志已经在群内yes 不在群内no
*/
private String groupId;
private String inGroup;
/**
* 群组头像
* 小组相关信息
*/
private String groupHeadPhoto;
private LinkGroupInfoDTO groupInfo;
/**
* 组长名称
* 暂定街道-姓名
*/
private String leaderName;
/**
* 群组名称
*/
private String groupName;
/**
* 组介绍
*/
private String groupIntroduction;
/**
* 成员总数
*/
private Integer totalMember;
/**
* 党员总数
*/
private Integer totalPartyMember;
}

5
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/dao/GroupInvitationDao.java

@ -19,8 +19,7 @@ package com.epmet.modules.invitation.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.invitation.entity.GroupInvitationEntity;
import com.epmet.resi.group.dto.invitation.form.LinkGroupInfoFormDTO;
import com.epmet.resi.group.dto.invitation.result.LinkGroupInfoResultDTO;
import com.epmet.resi.group.dto.invitation.result.LinkGroupInfoDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -40,5 +39,5 @@ public interface GroupInvitationDao extends BaseDao<GroupInvitationEntity> {
* @Description 根据群邀请连接查询群基本信息
* @Date 2020/3/31 23:22
**/
LinkGroupInfoResultDTO selectLinkGroupInfo(@Param("groupId") String groupId);
LinkGroupInfoDTO selectLinkGroupInfo(@Param("groupId") String groupId);
}

67
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java

@ -21,6 +21,7 @@ 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.Constant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
@ -56,6 +57,7 @@ import com.epmet.resi.group.dto.invitation.form.AccetInvitationFormDTO;
import com.epmet.resi.group.dto.invitation.form.CreateGroupInvitationFormDTO;
import com.epmet.resi.group.dto.invitation.form.LinkGroupInfoFormDTO;
import com.epmet.resi.group.dto.invitation.result.CreateGroupInvitationResultDTO;
import com.epmet.resi.group.dto.invitation.result.LinkGroupInfoDTO;
import com.epmet.resi.group.dto.invitation.result.LinkGroupInfoResultDTO;
import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
@ -169,7 +171,7 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
}
//2、审核通过(讨论中)的群才可以分享邀请连接
ResiGroupDTO resiGroupDTO = resiGroupService.get(formDTO.getGroupId());
if(!GroupStateConstant.GROUP_APPROVED.equals(resiGroupDTO.getState())){
if (!GroupStateConstant.GROUP_APPROVED.equals(resiGroupDTO.getState())) {
return new Result<CreateGroupInvitationResultDTO>().error(ModuleConstant.CANNOT_SHARED);
}
//3、插入一条邀请记录
@ -199,17 +201,28 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
public Result<LinkGroupInfoResultDTO> getLinkGroupInfo(LinkGroupInfoFormDTO formDTO) {
//校验是否存在该邀请连接
Result<GroupInvitationDTO> validResult = this.checkLinkValid(formDTO.getInvitationId());
if(!validResult.success()){
return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(),validResult.getMsg());
if (!validResult.success()) {
return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(), validResult.getMsg());
}
LinkGroupInfoResultDTO linkGroupInfoResultDTO = baseDao.selectLinkGroupInfo(validResult.getData().getResiGroupId());
//获取组长信息
Result<UserResiInfoResultDTO> groupLeaderUserInfo = this.getGroupLeaderUserInfo(linkGroupInfoResultDTO.getGroupId());
LinkGroupInfoResultDTO linkGroupInfoResultDTO = new LinkGroupInfoResultDTO();
//1、查询是否在群内
ResiGroupMemberDTO resiGroupMemberDTO = resiGroupMemberDao.selectGroupMemberInfo(validResult.getData().getResiGroupId(), formDTO.getUserId());
if (null != resiGroupMemberDTO && !MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())) {
linkGroupInfoResultDTO.setInGroup(Constant.YES);
return new Result<LinkGroupInfoResultDTO>().ok(linkGroupInfoResultDTO);
} else {
linkGroupInfoResultDTO.setInGroup(Constant.NO);
}
//2、查询组信息
LinkGroupInfoDTO groupInfo = baseDao.selectLinkGroupInfo(validResult.getData().getResiGroupId());
//3、获取组长信息
Result<UserResiInfoResultDTO> groupLeaderUserInfo = this.getGroupLeaderUserInfo(groupInfo.getGroupId());
if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) {
linkGroupInfoResultDTO.setLeaderName(groupLeaderUserInfo.getData().getShowName());
groupInfo.setLeaderName(groupLeaderUserInfo.getData().getShowName());
} else {
logger.info("组长注册信息查询失败" + groupLeaderUserInfo.getMsg());
}
linkGroupInfoResultDTO.setGroupInfo(groupInfo);
return new Result<LinkGroupInfoResultDTO>().ok(linkGroupInfoResultDTO);
}
@ -236,15 +249,15 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
return epmetUserFeignClient.getUserResiInfoDTO(resiUserInfoFormDTO);
}
private Result<GroupInvitationDTO> checkLinkValid(String invitationId){
private Result<GroupInvitationDTO> checkLinkValid(String invitationId) {
//校验是否存在该邀请连接
GroupInvitationDTO groupInvitationDTO = this.get(invitationId);
//Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时,返回false;
if (null == groupInvitationDTO) {
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());
}
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());
}
return new Result<GroupInvitationDTO>().ok(groupInvitationDTO);
}
@ -260,8 +273,8 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
public Result accetInvitation(AccetInvitationFormDTO formDTO) {
//1、申请是否有效
Result<GroupInvitationDTO> validResult = this.checkLinkValid(formDTO.getInvitationId());
if(!validResult.success()){
return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(),validResult.getMsg());
if (!validResult.success()) {
return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(), validResult.getMsg());
}
//2、校验是否已经注册居民
ResiGroupDTO resiGroupDTO = resiGroupService.get(validResult.getData().getResiGroupId());
@ -270,65 +283,69 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
formDTO.getUserId(),
resiGroupDTO.getCustomerId());
if (NumConstant.ZERO_STR.equals(userRoleDTO.getRegisteredResiFlag())) {
return new Result().error(EpmetErrorCode.CANNOT_JOIN_GROUP.getValue(),EpmetErrorCode.CANNOT_JOIN_GROUP.getName());
return new Result().error(EpmetErrorCode.CANNOT_JOIN_GROUP.getValue(), EpmetErrorCode.CANNOT_JOIN_GROUP.getName());
}
}
//3、新增一条邀请入群、直接审核通过的入群记录
GroupMemeberOperationDTO groupMemeberOperation = new GroupMemeberOperationDTO();
groupMemeberOperation.setGroupId(resiGroupDTO.getId());
groupMemeberOperation.setCustomerUserId(formDTO.getUserId());
groupMemeberOperation.setGroupId(resiGroupDTO.getId());
groupMemeberOperation.setOperateStatus(MemberStateConstant.APPROVED);
groupMemeberOperation.setEnterGroupType(EnterGroupTypeConstant.INVITED);
groupMemeberOperation.setCreatedBy(formDTO.getUserId());
groupMemeberOperation.setOperateUserId(formDTO.getUserId());
groupMemeberOperationService.save(groupMemeberOperation);
//4、直接加入群成员关系表
//如果是之前被移除的,则修改resi_group_member记录
ResiGroupMemberDTO resiGroupMemberDTO = new ResiGroupMemberDTO();
ResiGroupMemberDTO resiGroupMember = resiGroupMemberDao.selectGroupMemberInfo(validResult.getData().getResiGroupId(), formDTO.getUserId());
if (null != resiGroupMember) {
resiGroupMemberDTO.setId(resiGroupMember.getId());
}
resiGroupMemberDTO.setCustomerUserId(groupMemeberOperation.getCustomerUserId());
resiGroupMemberDTO.setResiGroupId(groupMemeberOperation.getGroupId());
resiGroupMemberDTO.setGroupLeaderFlag(LeaderFlagConstant.GROUP_MEMBER);
resiGroupMemberDTO.setEnterGroupType(groupMemeberOperation.getEnterGroupType());
resiGroupMemberDTO.setStatus(MemberStateConstant.APPROVED);
resiGroupMemberDTO.setCreatedBy(groupMemeberOperation.getCustomerUserId());
resiGroupMemberService.save(resiGroupMemberDTO);
resiGroupMemberService.saveOrUpdate(resiGroupMemberDTO);
//5、修改群统计值
UserRoleDTO userRoleDTO = resiGroupService.checkPartyMemberOrWarmHeated(formDTO.getApp(),
formDTO.getUserId(),
resiGroupDTO.getCustomerId());
resiGroupMemberDao.updateResiGroupStatistical(groupMemeberOperation.getGroupId(), userRoleDTO);
//6、发送消息
this.sendMessageToLeader(formDTO,resiGroupDTO);
this.sendMessageToLeader(formDTO, resiGroupDTO);
return new Result();
}
/**
* @return void
* @param formDTO
* @param resiGroupDTO
* @return void
* @Author yinzuomei
* @Description 用户通过邀请进群之后通知群主您的好友-认证的居民名字 xxx路-王先生通过邀请链接加入了组名
* @Date 2020/4/7 14:46
**/
private void sendMessageToLeader(AccetInvitationFormDTO formDTO, ResiGroupDTO resiGroupDTO) {
//1、查询群主信息
ResiGroupMemberDTO leader=resiGroupDao.selectGroupLeader(resiGroupDTO.getId());
if(null==leader){
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.setCustomerId(resiGroupDTO.getCustomerId());
Result<UserResiInfoResultDTO> userResiInfoDTOResult=epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO);
if(!userResiInfoDTOResult.success()||null==userResiInfoDTOResult.getData()){
return ;
Result<UserResiInfoResultDTO> userResiInfoDTOResult = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO);
if (!userResiInfoDTOResult.success() || null == userResiInfoDTOResult.getData()) {
return;
}
UserMessageFormDTO userMessage=new UserMessageFormDTO();
UserMessageFormDTO userMessage = new UserMessageFormDTO();
userMessage.setApp(AppClientConstant.APP_RESI);
userMessage.setCustomerId(resiGroupDTO.getCustomerId());
userMessage.setGridId(resiGroupDTO.getGridId());
String messageContent=String.format(UserMessageConstant.INVITED_JOIN_GROUP,userResiInfoDTOResult.getData().getShowName(),resiGroupDTO.getGroupName());
String messageContent = String.format(UserMessageConstant.INVITED_JOIN_GROUP, userResiInfoDTOResult.getData().getShowName(), resiGroupDTO.getGroupName());
userMessage.setMessageContent(messageContent);
userMessage.setReadFlag(ReadFlagConstant.UN_READ);
userMessage.setTitle(UserMessageConstant.GROUP_TITLE);

9
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java

@ -151,4 +151,13 @@ public interface ResiGroupMemberService extends BaseService<ResiGroupMemberEntit
* @Date 2020/3/30 22:07
**/
Result disAgreeApply(DisagreeApplyFormDTO disagreeApplyFormDTO);
/**
* @param resiGroupMemberDTO
* @return void
* @Author yinzuomei
* @Description 保存或更新resi_group_member
* @Date 2020/4/8 12:37
**/
void saveOrUpdate(ResiGroupMemberDTO resiGroupMemberDTO);
}

37
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java

@ -281,35 +281,40 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
@Override
public Result agreeApply(AgreeApplyFormDTO agreeApplyFormDTO) {
GroupMemeberOperationDTO groupMemeberOperationDTO = groupMemeberOperationService.get(agreeApplyFormDTO.getApplyId());
//当前申请单是否是待审核
//1、当前申请单是否是待审核
if (null == groupMemeberOperationDTO || !MemberStateConstant.UNDER_AUDITTING.equals(groupMemeberOperationDTO.getOperateStatus())) {
return new Result().error(ModuleConstant.APPLY_NOEXISTS);
}
//只有群主才可以审批入群申请
//2、只有群主才可以审批入群申请
ResiGroupMemberDTO leaderMember = baseDao.selectGroupMemberInfo(groupMemeberOperationDTO.getGroupId(), agreeApplyFormDTO.getUserId());
if (!LeaderFlagConstant.GROUP_LEADER.equals(leaderMember.getGroupLeaderFlag())) {
return new Result().error(ModuleConstant.CANNOT_AUDIT_APPLY);
}
//修改操作状态
//3、修改操作状态
groupMemeberOperationDTO.setOperateStatus(MemberStateConstant.APPROVED);
groupMemeberOperationDTO.setUpdatedBy(agreeApplyFormDTO.getUserId());
groupMemeberOperationDTO.setOperateUserId(agreeApplyFormDTO.getUserId());
groupMemeberOperationService.update(groupMemeberOperationDTO);
//加入群成员关系表
//4、加入群成员关系表
//4.1如果是之前被移除的,则修改resi_group_member记录
ResiGroupMemberDTO resiGroupMemberDTO = new ResiGroupMemberDTO();
ResiGroupMemberDTO resiGroupMember = baseDao.selectGroupMemberInfo(groupMemeberOperationDTO.getGroupId(), groupMemeberOperationDTO.getCustomerUserId());
if (null != resiGroupMember) {
resiGroupMemberDTO.setId(resiGroupMember.getId());
}
resiGroupMemberDTO.setCustomerUserId(groupMemeberOperationDTO.getCustomerUserId());
resiGroupMemberDTO.setResiGroupId(groupMemeberOperationDTO.getGroupId());
resiGroupMemberDTO.setGroupLeaderFlag(LeaderFlagConstant.GROUP_MEMBER);
resiGroupMemberDTO.setEnterGroupType(groupMemeberOperationDTO.getEnterGroupType());
resiGroupMemberDTO.setStatus(MemberStateConstant.APPROVED);
resiGroupMemberDTO.setCreatedBy(groupMemeberOperationDTO.getCustomerUserId());
resiGroupMemberService.save(resiGroupMemberDTO);
//修改群统计值
resiGroupMemberService.saveOrUpdate(resiGroupMemberDTO);
//5、修改群统计值
UserRoleDTO userRoleDTO = resiGroupService.checkPartyMemberOrWarmHeated(agreeApplyFormDTO.getApp(),
groupMemeberOperationDTO.getCustomerUserId(),
agreeApplyFormDTO.getCustomerId());
baseDao.updateResiGroupStatistical(groupMemeberOperationDTO.getGroupId(), userRoleDTO);
//给用户发送消息
//6、给用户发送消息
this.sendUserApprovedMessage(resiGroupMemberDTO);
return new Result();
}
@ -347,26 +352,36 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
@Override
public Result disAgreeApply(DisagreeApplyFormDTO disagreeApplyFormDTO) {
GroupMemeberOperationDTO groupMemeberOperationDTO = groupMemeberOperationService.get(disagreeApplyFormDTO.getApplyId());
//当前申请单是否是待审核
//1、当前申请单是否是待审核
if (null == groupMemeberOperationDTO || !MemberStateConstant.UNDER_AUDITTING.equals(groupMemeberOperationDTO.getOperateStatus())) {
return new Result().error(ModuleConstant.APPLY_NOEXISTS);
}
//只有群主才可以审批入群申请
//2、只有群主才可以审批入群申请
ResiGroupMemberDTO leaderMember = baseDao.selectGroupMemberInfo(groupMemeberOperationDTO.getGroupId(), disagreeApplyFormDTO.getUserId());
if (!LeaderFlagConstant.GROUP_LEADER.equals(leaderMember.getGroupLeaderFlag())) {
return new Result().error(ModuleConstant.CANNOT_AUDIT_APPLY);
}
//修改操作状态
//3、修改操作状态
groupMemeberOperationDTO.setOperateStatus(MemberStateConstant.REJECTED);
groupMemeberOperationDTO.setOperateDes(disagreeApplyFormDTO.getOperateDesc());
groupMemeberOperationDTO.setUpdatedBy(disagreeApplyFormDTO.getUserId());
groupMemeberOperationDTO.setOperateUserId(disagreeApplyFormDTO.getUserId());
groupMemeberOperationService.update(groupMemeberOperationDTO);
//给用户发送消息
//4、给用户发送消息
this.sendUserRejectedMessage(groupMemeberOperationDTO,disagreeApplyFormDTO);
return new Result();
}
@Override
public void saveOrUpdate(ResiGroupMemberDTO resiGroupMemberDTO) {
ResiGroupMemberEntity entity = ConvertUtils.sourceToTarget(resiGroupMemberDTO, ResiGroupMemberEntity.class);
if(StringUtils.isNotBlank(entity.getId())){
updateById(entity);
}else{
insert(entity);
}
}
/**
* @return void
* @param groupMemeberOperationDTO

2
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/invitation/GroupInvitationDao.xml

@ -4,7 +4,7 @@
<mapper namespace="com.epmet.modules.invitation.dao.GroupInvitationDao">
<!-- 根据群邀请连接查询群基本信息 -根据groupId 查询群基本信息 -->
<select id="selectLinkGroupInfo" parameterType="map" resultType="com.epmet.resi.group.dto.invitation.result.LinkGroupInfoResultDTO">
<select id="selectLinkGroupInfo" parameterType="map" resultType="com.epmet.resi.group.dto.invitation.result.LinkGroupInfoDTO">
SELECT
rg.id AS groupId,
rg.GROUP_HEAD_PHOTO AS groupHeadPhoto,

Loading…
Cancel
Save