diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/LeaderFlagConstant.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/LeaderFlagConstant.java new file mode 100644 index 0000000000..e54a46fc5b --- /dev/null +++ b/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"; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/UserRoleDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/UserRoleDTO.java new file mode 100644 index 0000000000..fb2e922534 --- /dev/null +++ b/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; + } +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/AgreeApplyFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/AgreeApplyFormDTO.java new file mode 100644 index 0000000000..0ce98ffad5 --- /dev/null +++ b/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; + +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyJoinGroupFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/ApplyJoinGroupFormDTO.java similarity index 90% rename from epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyJoinGroupFormDTO.java rename to epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/ApplyJoinGroupFormDTO.java index 1974ae9080..26df86b648 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyJoinGroupFormDTO.java +++ b/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; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/ApplyingMemberFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/ApplyingMemberFormDTO.java new file mode 100644 index 0000000000..4ab61b072f --- /dev/null +++ b/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; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/DisagreeApplyFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/DisagreeApplyFormDTO.java new file mode 100644 index 0000000000..610397be20 --- /dev/null +++ b/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; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/GroupMemberListFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/GroupMemberListFormDTO.java new file mode 100644 index 0000000000..e42fdb7c1f --- /dev/null +++ b/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; + +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java new file mode 100644 index 0000000000..bdb19c1ec3 --- /dev/null +++ b/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; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java new file mode 100644 index 0000000000..82b3189d7b --- /dev/null +++ b/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; +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java index 83494f6e2c..06406fde04 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java +++ b/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 diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java index 1f61dd8ae9..b2a08f84ec 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java +++ b/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 { **/ 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 diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index 5f5f5ddaaa..bbdb28a20d 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/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> 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> + * @Author yinzuomei + * @Description 查看入群待审核列表 + * @Date 2020/3/30 21:37 + **/ + @PostMapping("getapplyingmember") + public Result> 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); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java index 9230184dd1..4ecf1f37ef 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java +++ b/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 { + /** + * @param groupMemberListFormDTO + * @return java.util.List + * @Author yinzuomei + * @Description 群成员列表查询 + * @Date 2020/3/30 21:24 + **/ + List selectListGroupMember(GroupMemberListFormDTO groupMemberListFormDTO); + + /** + * @param applyingMemberFormDTO + * @return java.util.List + * @Author yinzuomei + * @Description 查看入群待审核列表 + * @Date 2020/3/30 21:40 + **/ + List 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); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java index 40e6f22335..0744a4c689 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java +++ b/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> getGroupMemberList(GroupMemberListFormDTO groupMemberListFormDTO); + + /** + * @return com.epmet.commons.tools.utils.Result> + * @param applyingMemberFormDTO + * @Author yinzuomei + * @Description 查看入群待审核列表 + * @Date 2020/3/30 21:38 + **/ + Result> 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); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java index 83f73eaff0..4e1f7aa2ff 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java +++ b/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 implements ResiGroupMemberService { + private Logger logger = LoggerFactory.getLogger(getClass()); + @Autowired + private ResiGroupMemberRedis resiGroupMemberRedis; - @Autowired - private ResiGroupMemberRedis resiGroupMemberRedis; - - @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, ResiGroupMemberDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, ResiGroupMemberDTO.class); - } - - private QueryWrapper getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); - - QueryWrapper 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 wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(groupId), "RESI_GROUP_ID", groupId) - .eq(StringUtils.isNotBlank(userId), "CUSTOMER_USER_ID", userId); - List 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 page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, ResiGroupMemberDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, ResiGroupMemberDTO.class); + } + + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); + + QueryWrapper 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 wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(groupId), "RESI_GROUP_ID", groupId) + .eq(StringUtils.isNotBlank(userId), "CUSTOMER_USER_ID", userId); + List 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> getGroupMemberList(GroupMemberListFormDTO groupMemberListFormDTO) { + int pageIndex = (groupMemberListFormDTO.getPageNo() - NumConstant.ONE) * groupMemberListFormDTO.getPageSize(); + groupMemberListFormDTO.setPageNo(pageIndex); + List list = baseDao.selectListGroupMember(groupMemberListFormDTO); + return new Result>().ok(list); + } + + /** + * @param applyingMemberFormDTO + * @return com.epmet.commons.tools.utils.Result> + * @Author yinzuomei + * @Description 查看入群待审核列表 + * @Date 2020/3/30 21:38 + **/ + @Override + public Result> getApplyingMember(ApplyingMemberFormDTO applyingMemberFormDTO) { + int pageIndex = (applyingMemberFormDTO.getPageNo() - NumConstant.ONE) * applyingMemberFormDTO.getPageSize(); + applyingMemberFormDTO.setPageNo(pageIndex); + List list = baseDao.selectListApplyingMember(applyingMemberFormDTO); + return new Result>().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> userRoleListResult = epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO); + if (!userRoleListResult.success()) { + logger.info("获取用户角色feign调用失败" + userRoleListResult.getMsg()); + return userRoleDTO; + } + List 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; + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml index ce5cb22c93..c2b9626dc2 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml @@ -2,6 +2,59 @@ + + + + + + + UPDATE resi_group_statistical rgs + SET rgs.TOTAL_MEMBERS = rgs.TOTAL_MEMBERS + 1, + rgs.TOTAL_NORMAL_MEMEBERS = rgs.TOTAL_NORMAL_MEMEBERS + 1 + + ,rgs.TOTAL_PARTY_MEMBERS = rgs.TOTAL_PARTY_MEMBERS + 1 + + + ,rgs.TOTAL_EARNEST_MEMEBERS = rgs.TOTAL_EARNEST_MEMEBERS + 1 + + WHERE + rgs.RESI_GROUP_ID = #{groupId} + AND rgs.DEL_FLAG = '0' +