Browse Source

新增群成员列表、待审核成员列表、同意入群、拒绝入群

dev_shibei_match
yinzuomei 5 years ago
parent
commit
074c07ef3f
  1. 15
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/LeaderFlagConstant.java
  2. 25
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/UserRoleDTO.java
  3. 38
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/AgreeApplyFormDTO.java
  4. 4
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/ApplyJoinGroupFormDTO.java
  5. 28
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/ApplyingMemberFormDTO.java
  6. 35
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/DisagreeApplyFormDTO.java
  7. 29
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/GroupMemberListFormDTO.java
  8. 40
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java
  9. 46
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java
  10. 16
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java
  11. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java
  12. 29
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  13. 91
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java
  14. 35
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java
  15. 49
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java
  16. 321
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  17. 53
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml

15
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/LeaderFlagConstant.java

@ -0,0 +1,15 @@
package com.epmet.resi.group.constant;
/**
* @Description 群主群成员标志常量
* @Author yinzuomei
* @Date 2020/3/30 22:18
*/
public interface LeaderFlagConstant {
/**
* member成员leader群主
*/
String GROUP_MEMBER = "member";
String GROUP_LEADER = "leader";
}

25
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/UserRoleDTO.java

@ -0,0 +1,25 @@
package com.epmet.resi.group.dto;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 用户角色标志
* @Author yinzuomei
* @Date 2020/3/30 22:27
*/
@Data
public class UserRoleDTO implements Serializable {
private static final long serialVersionUID = 946621162133879608L;
private String partymemberFlag;
private String warmHeartedFlag;
private String registeredResiFlag;
public UserRoleDTO() {
this.partymemberFlag = NumConstant.ZERO_STR;
this.registeredResiFlag = NumConstant.ZERO_STR;
this.registeredResiFlag = NumConstant.ZERO_STR;
}
}

38
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/AgreeApplyFormDTO.java

@ -0,0 +1,38 @@
package com.epmet.resi.group.dto.member.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 组长同意入群入参
* @Author yinzuomei
* @Date 2020/3/30 21:58
*/
@Data
public class AgreeApplyFormDTO implements Serializable {
private static final long serialVersionUID = 1626650057895049665L;
/**
* 申请单id
*/
@NotBlank(message = "申请单id不能为空")
private String applyId;
/**
* 当前登录用户id
*/
@NotBlank(message = "当前登录用户id不能为空")
private String userId;
/**
* 当前网格所属客户id
*/
@NotBlank(message = "当前网格所属客户id不能为空")
private String customerId;
@NotBlank(message = "app不能为空")
private String app;
}

4
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyJoinGroupFormDTO.java → epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/ApplyJoinGroupFormDTO.java

@ -1,4 +1,4 @@
package com.epmet.resi.group.dto.group.form;
package com.epmet.resi.group.dto.member.form;
import lombok.Data;
@ -31,4 +31,6 @@ public class ApplyJoinGroupFormDTO implements Serializable {
*/
@NotBlank(message="入群理由不能为空")
private String operateDes;
private String app;
}

28
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/ApplyingMemberFormDTO.java

@ -0,0 +1,28 @@
package com.epmet.resi.group.dto.member.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 待审核列表查询入参dto
* @Author yinzuomei
* @Date 2020/3/30 21:34
*/
@Data
public class ApplyingMemberFormDTO implements Serializable {
private static final long serialVersionUID = 6390928527584224059L;
/**
* 群组id
*/
@NotBlank(message="群组id为空")
private String groupId;
@Min(1)
private Integer pageNo;
private Integer pageSize=20;
}

35
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/DisagreeApplyFormDTO.java

@ -0,0 +1,35 @@
package com.epmet.resi.group.dto.member.form;
import lombok.Data;
import javax.validation.constraints.NegativeOrZero;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 拒绝用户入群入参DTO
* @Author yinzuomei
* @Date 2020/3/30 22:03
*/
@Data
public class DisagreeApplyFormDTO implements Serializable {
private static final long serialVersionUID = 7490311907300741995L;
/**
* 申请单id
*/
@NotBlank(message = "申请单id不能为空")
private String applyId;
/**
* 当前登录用户id
*/
@NotBlank(message = "当前登录用户id不能为空")
private String userId;
/**
* 拒绝理由
*/
@NotBlank(message = "拒绝理由必填")
private String operateDesc;
}

29
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/GroupMemberListFormDTO.java

@ -0,0 +1,29 @@
package com.epmet.resi.group.dto.member.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 群成员里列表查询入参DTO
* @Author yinzuomei
* @Date 2020/3/30 21:12
*/
@Data
public class GroupMemberListFormDTO implements Serializable {
private static final long serialVersionUID = -5687483304784604637L;
/**
* 群组id
*/
@NotBlank(message="群组id为空")
private String groupId;
@Min(1)
private Integer pageNo;
private Integer pageSize=20;
}

40
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java

@ -0,0 +1,40 @@
package com.epmet.resi.group.dto.member.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @Author yinzuomei
* @Date 2020/3/30 21:35
*/
@Data
public class ApplyingMemberResultDTO implements Serializable {
private static final long serialVersionUID = 561793539007514078L;
/**
* 申请单id
*/
private String applyId;
/**
* 申请用户id
*/
private String applyUserId;
/**
* 申请用户头像
*/
private String applyUserHeadPhoto;
/**
* 申请用户显示名称
*/
private String applyUserName;
/**
* 入群理由
*/
private String applyReason;
}

46
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java

@ -0,0 +1,46 @@
package com.epmet.resi.group.dto.member.result;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description
* @Author yinzuomei
* @Date 2020/3/30 21:15
*/
@Data
public class GroupMemberListResultDTO implements Serializable {
private static final long serialVersionUID = 1341997768667518825L;
/**
* 成员id
*/
private String memeberId;
/**
* 用户id
*/
private String userId;
/**
* 成员头像
*/
private String headPhoto;
/**
* 成员的显示名称
*/
private String userShowName;
/**
* leader群主member成员
*/
private String leaderFlag;
/**
* 审核通过 - approved 已禁言 - silent
*/
private String status;
}

16
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java

@ -142,22 +142,6 @@ public class ResiGroupController {
return resiGroupService.applyCreateGroup(applyCreateGroupFormDTO);
}
/**
* @return com.epmet.commons.tools.utils.Result
* @param tokenDto
* @param applyJoinGroupFormDTO
* @Author yinzuomei
* @Description 申请加入小组
* @Date 2020/3/29 20:01
**/
@PostMapping("applyjoingroup")
public Result applyJoinGroup(@LoginUser TokenDto tokenDto,
@RequestBody ApplyJoinGroupFormDTO applyJoinGroupFormDTO){
applyJoinGroupFormDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(applyJoinGroupFormDTO);
return resiGroupService.applyJoinGroup(applyJoinGroupFormDTO);
}
/**
* @param tokenDto
* @return com.epmet.commons.tools.utils.Result

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

@ -156,15 +156,6 @@ public interface ResiGroupService extends BaseService<ResiGroupEntity> {
**/
Result applyCreateGroup(ApplyCreateGroupFormDTO applyCreateGroupFormDTO);
/**
* @param applyJoinGroupFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 申请加入小组
* @Date 2020/3/29 20:01
**/
Result applyJoinGroup(ApplyJoinGroupFormDTO applyJoinGroupFormDTO);
/**
* @param resiUserInfoFormDTO
* @return com.epmet.commons.tools.utils.Result

29
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

@ -37,13 +37,10 @@ import com.epmet.modules.group.dao.ResiGroupDao;
import com.epmet.modules.group.entity.ResiGroupEntity;
import com.epmet.modules.group.service.ResiGroupOperationService;
import com.epmet.modules.group.service.ResiGroupService;
import com.epmet.modules.member.service.GroupMemeberOperationService;
import com.epmet.modules.member.service.ResiGroupMemberService;
import com.epmet.modules.utils.ModuleConstant;
import com.epmet.redis.ResiGroupRedis;
import com.epmet.resi.group.constant.EnterGroupTypeConstant;
import com.epmet.resi.group.constant.GroupStateConstant;
import com.epmet.resi.group.constant.MemberStateConstant;
import com.epmet.resi.group.dto.group.ResiGroupDTO;
import com.epmet.resi.group.dto.group.ResiGroupOperationDTO;
import com.epmet.resi.group.dto.group.form.*;
@ -51,7 +48,6 @@ import com.epmet.resi.group.dto.group.result.CreatedResultDTO;
import com.epmet.resi.group.dto.group.result.GroupSummarizeResultDTO;
import com.epmet.resi.group.dto.group.result.MyGroupResultDTO;
import com.epmet.resi.group.dto.group.result.RecommendGroupResultDTO;
import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -82,9 +78,6 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
@Autowired
private ResiGroupOperationService resiGroupOperationService;
@Autowired
private GroupMemeberOperationService groupMemeberOperationService;
@Autowired
private EpmetUserFeignClient epmetUserFeignClient;
@ -299,28 +292,6 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
return list;
}
/**
* @param applyJoinGroupFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 申请加入小组
* @Date 2020/3/29 20:01
**/
@Override
public Result applyJoinGroup(ApplyJoinGroupFormDTO applyJoinGroupFormDTO) {
//插入一条待审核的记录
GroupMemeberOperationDTO groupMemeberOperation = new GroupMemeberOperationDTO();
groupMemeberOperation.setGroupId(applyJoinGroupFormDTO.getGroupId());
groupMemeberOperation.setCustomerUserId(applyJoinGroupFormDTO.getUserId());
groupMemeberOperation.setGroupId(applyJoinGroupFormDTO.getGroupId());
groupMemeberOperation.setOperateDes(applyJoinGroupFormDTO.getOperateDes());
groupMemeberOperation.setOperateStatus(MemberStateConstant.UNDER_AUDITTING);
groupMemeberOperation.setEnterGroupType(EnterGroupTypeConstant.JOIN);
groupMemeberOperation.setCreatedBy(applyJoinGroupFormDTO.getUserId());
groupMemeberOperationService.save(groupMemeberOperation);
return new Result();
}
/**
* @param resiUserInfoFormDTO
* @return com.epmet.commons.tools.utils.Result

91
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java

@ -17,8 +17,18 @@
package com.epmet.modules.member.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.modules.member.service.ResiGroupMemberService;
import com.epmet.resi.group.dto.member.form.*;
import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO;
import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
@ -30,5 +40,86 @@ import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("member")
public class ResiGroupMemberController {
@Autowired
private ResiGroupMemberService resiGroupMemberService;
/**
* @param tokenDto
* @param applyJoinGroupFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 申请加入小组
* @Date 2020/3/29 20:01
**/
@PostMapping("applyjoingroup")
public Result applyJoinGroup(@LoginUser TokenDto tokenDto,
@RequestBody ApplyJoinGroupFormDTO applyJoinGroupFormDTO) {
applyJoinGroupFormDTO.setUserId(tokenDto.getUserId());
applyJoinGroupFormDTO.setApp(tokenDto.getApp());
ValidatorUtils.validateEntity(applyJoinGroupFormDTO);
return resiGroupMemberService.applyJoinGroup(applyJoinGroupFormDTO);
}
/**
* @param tokenDto
* @param groupMemberListFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 群成员列表
* @Date 2020/3/30 21:14
**/
@PostMapping("getgroupmember")
public Result<List<GroupMemberListResultDTO>> getGroupMemberList(@LoginUser TokenDto tokenDto,
@RequestBody GroupMemberListFormDTO groupMemberListFormDTO) {
ValidatorUtils.validateEntity(groupMemberListFormDTO);
return resiGroupMemberService.getGroupMemberList(groupMemberListFormDTO);
}
/**
* @param tokenDto
* @param applyingMemberFormDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO>>
* @Author yinzuomei
* @Description 查看入群待审核列表
* @Date 2020/3/30 21:37
**/
@PostMapping("getapplyingmember")
public Result<List<ApplyingMemberResultDTO>> getApplyingMember(@LoginUser TokenDto tokenDto,
@RequestBody ApplyingMemberFormDTO applyingMemberFormDTO) {
ValidatorUtils.validateEntity(applyingMemberFormDTO);
return resiGroupMemberService.getApplyingMember(applyingMemberFormDTO);
}
/**
* @param tokenDto
* @param agreeApplyFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 组长同意入群
* @Date 2020/3/30 22:07
**/
@PostMapping("agreeapply")
public Result agreeApply(@LoginUser TokenDto tokenDto,
@RequestBody AgreeApplyFormDTO agreeApplyFormDTO) {
agreeApplyFormDTO.setUserId(tokenDto.getUserId());
agreeApplyFormDTO.setApp(tokenDto.getApp());
ValidatorUtils.validateEntity(agreeApplyFormDTO);
return resiGroupMemberService.agreeApply(agreeApplyFormDTO);
}
/**
* @param tokenDto
* @param disagreeApplyFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 组长拒绝入群
* @Date 2020/3/30 22:07
**/
@PostMapping("disagreeapply")
public Result disAgreeApply(@LoginUser TokenDto tokenDto,
@RequestBody DisagreeApplyFormDTO disagreeApplyFormDTO) {
disagreeApplyFormDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(disagreeApplyFormDTO);
return resiGroupMemberService.disAgreeApply(disagreeApplyFormDTO);
}
}

35
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java

@ -19,7 +19,15 @@ package com.epmet.modules.member.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.resi.group.dto.UserRoleDTO;
import com.epmet.resi.group.dto.member.form.ApplyingMemberFormDTO;
import com.epmet.resi.group.dto.member.form.GroupMemberListFormDTO;
import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO;
import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 群组成员关系表
@ -30,4 +38,31 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ResiGroupMemberDao extends BaseDao<ResiGroupMemberEntity> {
/**
* @param groupMemberListFormDTO
* @return java.util.List<com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO>
* @Author yinzuomei
* @Description 群成员列表查询
* @Date 2020/3/30 21:24
**/
List<GroupMemberListResultDTO> selectListGroupMember(GroupMemberListFormDTO groupMemberListFormDTO);
/**
* @param applyingMemberFormDTO
* @return java.util.List<com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO>
* @Author yinzuomei
* @Description 查看入群待审核列表
* @Date 2020/3/30 21:40
**/
List<ApplyingMemberResultDTO> selectListApplyingMember(ApplyingMemberFormDTO applyingMemberFormDTO);
/**
* @return int
* @param groupId
* @param userRoleDTO
* @Author yinzuomei
* @Description 同意进群后修改统计数
* @Date 2020/3/30 22:40
**/
int updateResiGroupStatistical(@Param("groupId") String groupId, @Param("userRoleDTO") UserRoleDTO userRoleDTO);
}

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

@ -19,8 +19,12 @@ package com.epmet.modules.member.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.member.form.*;
import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO;
import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO;
import java.util.List;
import java.util.Map;
@ -102,4 +106,49 @@ public interface ResiGroupMemberService extends BaseService<ResiGroupMemberEntit
* @Date 2020/3/29 18:28
**/
ResiGroupMemberDTO getResiGroupMember(String groupId, String userId);
/**
* @param applyJoinGroupFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 申请加入小组
* @Date 2020/3/29 20:01
**/
Result applyJoinGroup(ApplyJoinGroupFormDTO applyJoinGroupFormDTO);
/**
* @return com.epmet.commons.tools.utils.Result
* @param groupMemberListFormDTO
* @Author yinzuomei
* @Description
* @Date 2020/3/30 21:15
**/
Result<List<GroupMemberListResultDTO>> getGroupMemberList(GroupMemberListFormDTO groupMemberListFormDTO);
/**
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO>>
* @param applyingMemberFormDTO
* @Author yinzuomei
* @Description 查看入群待审核列表
* @Date 2020/3/30 21:38
**/
Result<List<ApplyingMemberResultDTO>> getApplyingMember(ApplyingMemberFormDTO applyingMemberFormDTO);
/**
* @param agreeApplyFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 组长同意入群
* @Date 2020/3/30 22:07
**/
Result agreeApply(AgreeApplyFormDTO agreeApplyFormDTO);
/**
* @param disagreeApplyFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 组长拒绝入群
* @Date 2020/3/30 22:07
**/
Result disAgreeApply(DisagreeApplyFormDTO disagreeApplyFormDTO);
}

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

@ -20,15 +20,35 @@ package com.epmet.modules.member.service.impl;
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.EpmetRoleKeyConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.UserRoleFormDTO;
import com.epmet.dto.result.UserRoleResultDTO;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.group.service.ResiGroupService;
import com.epmet.modules.member.dao.ResiGroupMemberDao;
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.resi.group.constant.EnterGroupTypeConstant;
import com.epmet.resi.group.constant.LeaderFlagConstant;
import com.epmet.resi.group.constant.MemberStateConstant;
import com.epmet.resi.group.dto.UserRoleDTO;
import com.epmet.resi.group.dto.group.ResiGroupDTO;
import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.member.form.*;
import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO;
import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -45,80 +65,233 @@ import java.util.Map;
*/
@Service
public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberDao, ResiGroupMemberEntity> implements ResiGroupMemberService {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private ResiGroupMemberRedis resiGroupMemberRedis;
@Autowired
private ResiGroupMemberRedis resiGroupMemberRedis;
@Override
public PageData<ResiGroupMemberDTO> page(Map<String, Object> params) {
IPage<ResiGroupMemberEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, ResiGroupMemberDTO.class);
}
@Override
public List<ResiGroupMemberDTO> list(Map<String, Object> params) {
List<ResiGroupMemberEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, ResiGroupMemberDTO.class);
}
private QueryWrapper<ResiGroupMemberEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<ResiGroupMemberEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public ResiGroupMemberDTO get(String id) {
ResiGroupMemberEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, ResiGroupMemberDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(ResiGroupMemberDTO dto) {
ResiGroupMemberEntity entity = ConvertUtils.sourceToTarget(dto, ResiGroupMemberEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(ResiGroupMemberDTO dto) {
ResiGroupMemberEntity entity = ConvertUtils.sourceToTarget(dto, ResiGroupMemberEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @param groupId
* @param userId
* @return com.epmet.resi.group.dto.member.ResiGroupMemberDTO
* @Author yinzuomei
* @Description 根据群id, 用户id查询成员信息
* @Date 2020/3/29 18:28
**/
@Override
public ResiGroupMemberDTO getResiGroupMember(String groupId, String userId) {
QueryWrapper<ResiGroupMemberEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(groupId), "RESI_GROUP_ID", groupId)
.eq(StringUtils.isNotBlank(userId), "CUSTOMER_USER_ID", userId);
List<ResiGroupMemberEntity> list = baseDao.selectList(wrapper);
if (null == list || list.size() == 0) {
return null;
}
return ConvertUtils.sourceToTarget(list.get(0), ResiGroupMemberDTO.class);
}
@Autowired
private GroupMemeberOperationService groupMemeberOperationService;
@Autowired
private ResiGroupService resiGroupService;
@Autowired
private ResiGroupMemberService resiGroupMemberService;
@Autowired
private EpmetUserFeignClient epmetUserFeignClient;
@Override
public PageData<ResiGroupMemberDTO> page(Map<String, Object> params) {
IPage<ResiGroupMemberEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, ResiGroupMemberDTO.class);
}
@Override
public List<ResiGroupMemberDTO> list(Map<String, Object> params) {
List<ResiGroupMemberEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, ResiGroupMemberDTO.class);
}
private QueryWrapper<ResiGroupMemberEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<ResiGroupMemberEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public ResiGroupMemberDTO get(String id) {
ResiGroupMemberEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, ResiGroupMemberDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(ResiGroupMemberDTO dto) {
ResiGroupMemberEntity entity = ConvertUtils.sourceToTarget(dto, ResiGroupMemberEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(ResiGroupMemberDTO dto) {
ResiGroupMemberEntity entity = ConvertUtils.sourceToTarget(dto, ResiGroupMemberEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @param groupId
* @param userId
* @return com.epmet.resi.group.dto.member.ResiGroupMemberDTO
* @Author yinzuomei
* @Description 根据群id, 用户id查询成员信息
* @Date 2020/3/29 18:28
**/
@Override
public ResiGroupMemberDTO getResiGroupMember(String groupId, String userId) {
QueryWrapper<ResiGroupMemberEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(groupId), "RESI_GROUP_ID", groupId)
.eq(StringUtils.isNotBlank(userId), "CUSTOMER_USER_ID", userId);
List<ResiGroupMemberEntity> list = baseDao.selectList(wrapper);
if (null == list || list.size() == 0) {
return null;
}
return ConvertUtils.sourceToTarget(list.get(0), ResiGroupMemberDTO.class);
}
/**
* @param applyJoinGroupFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 申请加入小组
* @Date 2020/3/29 20:01
**/
@Override
public Result applyJoinGroup(ApplyJoinGroupFormDTO applyJoinGroupFormDTO) {
//校验是否已经注册
ResiGroupDTO resiGroupDTO = resiGroupService.get(applyJoinGroupFormDTO.getGroupId());
if (null != resiGroupDTO) {
UserRoleDTO userRoleDTO = this.checkPartyMemberOrWarmHeated(applyJoinGroupFormDTO.getApp(),
applyJoinGroupFormDTO.getUserId(),
resiGroupDTO.getCustomerId());
if (NumConstant.ZERO_STR.equals(userRoleDTO.getRegisteredResiFlag())) {
Result errorResult = new Result();
errorResult.setCode(EpmetErrorCode.CANNOT_CREATE_GROUP.getValue());
errorResult.setMsg(EpmetErrorCode.CANNOT_CREATE_GROUP.getName());
return errorResult;
}
}
//插入一条待审核的记录
GroupMemeberOperationDTO groupMemeberOperation = new GroupMemeberOperationDTO();
groupMemeberOperation.setGroupId(applyJoinGroupFormDTO.getGroupId());
groupMemeberOperation.setCustomerUserId(applyJoinGroupFormDTO.getUserId());
groupMemeberOperation.setGroupId(applyJoinGroupFormDTO.getGroupId());
groupMemeberOperation.setOperateDes(applyJoinGroupFormDTO.getOperateDes());
groupMemeberOperation.setOperateStatus(MemberStateConstant.UNDER_AUDITTING);
groupMemeberOperation.setEnterGroupType(EnterGroupTypeConstant.JOIN);
groupMemeberOperation.setCreatedBy(applyJoinGroupFormDTO.getUserId());
groupMemeberOperationService.save(groupMemeberOperation);
return new Result();
}
/**
* @param groupMemberListFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description
* @Date 2020/3/30 21:15
**/
@Override
public Result<List<GroupMemberListResultDTO>> getGroupMemberList(GroupMemberListFormDTO groupMemberListFormDTO) {
int pageIndex = (groupMemberListFormDTO.getPageNo() - NumConstant.ONE) * groupMemberListFormDTO.getPageSize();
groupMemberListFormDTO.setPageNo(pageIndex);
List<GroupMemberListResultDTO> list = baseDao.selectListGroupMember(groupMemberListFormDTO);
return new Result<List<GroupMemberListResultDTO>>().ok(list);
}
/**
* @param applyingMemberFormDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO>>
* @Author yinzuomei
* @Description 查看入群待审核列表
* @Date 2020/3/30 21:38
**/
@Override
public Result<List<ApplyingMemberResultDTO>> getApplyingMember(ApplyingMemberFormDTO applyingMemberFormDTO) {
int pageIndex = (applyingMemberFormDTO.getPageNo() - NumConstant.ONE) * applyingMemberFormDTO.getPageSize();
applyingMemberFormDTO.setPageNo(pageIndex);
List<ApplyingMemberResultDTO> list = baseDao.selectListApplyingMember(applyingMemberFormDTO);
return new Result<List<ApplyingMemberResultDTO>>().ok(list);
}
/**
* @param agreeApplyFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 组长同意入群
* @Date 2020/3/30 22:07
**/
@Override
public Result agreeApply(AgreeApplyFormDTO agreeApplyFormDTO) {
//修改操作状态
GroupMemeberOperationDTO groupMemeberOperationDTO = groupMemeberOperationService.get(agreeApplyFormDTO.getApplyId());
groupMemeberOperationDTO.setOperateStatus(MemberStateConstant.APPROVED);
groupMemeberOperationDTO.setUpdatedBy(agreeApplyFormDTO.getUserId());
groupMemeberOperationService.update(groupMemeberOperationDTO);
//加入群成员关系表
ResiGroupMemberDTO resiGroupMemberDTO = new ResiGroupMemberDTO();
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);
//修改群统计值
UserRoleDTO userRoleDTO = checkPartyMemberOrWarmHeated(agreeApplyFormDTO.getApp(),
groupMemeberOperationDTO.getCustomerUserId(),
agreeApplyFormDTO.getCustomerId());
baseDao.updateResiGroupStatistical(groupMemeberOperationDTO.getGroupId(), userRoleDTO);
return new Result();
}
/**
* @param disagreeApplyFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 组长拒绝入群
* @Date 2020/3/30 22:07
**/
@Override
public Result disAgreeApply(DisagreeApplyFormDTO disagreeApplyFormDTO) {
GroupMemeberOperationDTO groupMemeberOperationDTO = groupMemeberOperationService.get(disagreeApplyFormDTO.getApplyId());
groupMemeberOperationDTO.setOperateStatus(MemberStateConstant.REJECTED);
groupMemeberOperationDTO.setOperateDes(disagreeApplyFormDTO.getOperateDesc());
groupMemeberOperationDTO.setUpdatedBy(disagreeApplyFormDTO.getUserId());
groupMemeberOperationService.update(groupMemeberOperationDTO);
return new Result();
}
private UserRoleDTO checkPartyMemberOrWarmHeated(String app, String userId, String customerId) {
UserRoleDTO userRoleDTO = new UserRoleDTO();
UserRoleFormDTO userRoleFormDTO = new UserRoleFormDTO();
userRoleFormDTO.setApp(app);
userRoleFormDTO.setCustomerId(customerId);
userRoleFormDTO.setUserId(userId);
Result<List<UserRoleResultDTO>> userRoleListResult = epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO);
if (!userRoleListResult.success()) {
logger.info("获取用户角色feign调用失败" + userRoleListResult.getMsg());
return userRoleDTO;
}
List<UserRoleResultDTO> userRoleList = userRoleListResult.getData();
if (null == userRoleList || userRoleList.size() == 0) {
return userRoleDTO;
}
for (UserRoleResultDTO userRoleResultDTO : userRoleList) {
if (EpmetRoleKeyConstant.PARTYMEMBER.equals(userRoleResultDTO.getRoleKey())) {
userRoleDTO.setPartymemberFlag(NumConstant.ONE_STR);
}
if (EpmetRoleKeyConstant.WARMHEARTED.equals(userRoleResultDTO.getRoleKey())) {
userRoleDTO.setWarmHeartedFlag(NumConstant.ONE_STR);
}
if (EpmetRoleKeyConstant.REGISTERED_RESI.equals(userRoleResultDTO.getRoleKey())) {
userRoleDTO.setRegisteredResiFlag(NumConstant.ONE_STR);
}
}
return userRoleDTO;
}
}

53
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml

@ -2,6 +2,59 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.modules.member.dao.ResiGroupMemberDao">
<!-- 群成员列表查询 -->
<select id="selectListGroupMember" parameterType="com.epmet.resi.group.dto.member.form.GroupMemberListFormDTO"
resultType="com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO">
SELECT
rgm.id AS memberId,
rgm.CUSTOMER_USER_ID AS userId,
NULL AS headPhoto,
NULL userShowName,
rgm.GROUP_LEADER_FLAG AS leaderFlag,
rgm.`STATUS`
FROM
resi_group_member rgm
WHERE
rgm.DEL_FLAG = '0'
AND rgm.`STATUS` IN ( 'approved', 'silent' )
AND rgm.RESI_GROUP_ID = #{groupId}
order by rgm.GROUP_LEADER_FLAG asc,rgm.CREATED_TIME asc
LIMIT #{pageNo},#{pageSize}
</select>
<!-- 查看入群待审核列表 -->
<select id="selectListApplyingMember" parameterType="com.epmet.resi.group.dto.member.form.ApplyingMemberFormDTO"
resultType="com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO">
SELECT
gmo.id AS applyId,
gmo.CUSTOMER_USER_ID AS applyUserId,
NULL AS applyUserHeadPhoto,
NULL AS applyUserName,
gmo.OPERATE_DES AS applyReason
FROM
group_memeber_operation gmo
WHERE
gmo.DEL_FLAG = '0'
AND gmo.GROUP_ID = #{groupId}
AND gmo.OPERATE_STATUS IN ( 'under_auditting', 'approved', 'rejected' )
ORDER BY
gmo.CREATED_TIME DESC
LIMIT #{pageNo},#{pageSize}
</select>
<!-- 同意进群之后修改统计值 -->
<update id="updateResiGroupStatistical" parameterType="map">
UPDATE resi_group_statistical rgs
SET rgs.TOTAL_MEMBERS = rgs.TOTAL_MEMBERS + 1,
rgs.TOTAL_NORMAL_MEMEBERS = rgs.TOTAL_NORMAL_MEMEBERS + 1
<if test="userRoleDTO.partymemberFlag != null and userRoleDTO.partymemberFlag== '1'">
,rgs.TOTAL_PARTY_MEMBERS = rgs.TOTAL_PARTY_MEMBERS + 1
</if>
<if test="userRoleDTO.warmHeartedFlag != null and userRoleDTO.warmHeartedFlag== '1'">
,rgs.TOTAL_EARNEST_MEMEBERS = rgs.TOTAL_EARNEST_MEMEBERS + 1
</if>
WHERE
rgs.RESI_GROUP_ID = #{groupId}
AND rgs.DEL_FLAG = '0'
</update>
</mapper>

Loading…
Cancel
Save