diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/RemoveMemberFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/RemoveMemberFormDTO.java new file mode 100644 index 0000000000..93e8292e05 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/RemoveMemberFormDTO.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 sun + */ +@Data +public class RemoveMemberFormDTO implements Serializable { + private static final long serialVersionUID = 1626650057895049665L; + + /** + * 群组成员关系表 + */ + @NotBlank(message = "成员Id不能为空") + private String memerId; + + /** + * 显示是否要屏蔽该成员的全部话题,1是0否 + */ + @NotBlank(message = "是否屏蔽成员话题不能为空") + private String hideFlag; + + /** + * 当前登录用户id + */ + private String userId; + + /** + * 所属app + */ + private String app; + +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java index b72cc890cb..9f979acedf 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java @@ -6,24 +6,35 @@ package com.epmet.modules.constant; * @Date 2020/4/7 15:55 */ public interface UserMessageConstant { - /** - * 消息标题 - */ - String GROUP_TITLE="您有一条小组消息"; + /** + * 消息标题 + */ + String GROUP_TITLE = "您有一条小组消息"; - /** - * 组长同意入群申请,用户会收到:您有一条小组消息。 您加入的【组名】已通过审核,请查看。 - */ - String AGREE_APPLY="您加入的【%s】已通过审核,请查看"; + /** + * 组长同意入群申请,用户会收到:您有一条小组消息。 您加入的【组名】已通过审核,请查看。 + */ + String AGREE_APPLY = "您加入的【%s】已通过审核,请查看"; - /** - * 组长拒绝入群申请,用户会收到:您在【组名】的入组申请被拒绝。原因:【组长拒绝审核时输入的备注】 - */ - String DISAGREE_APPLY="您在【%s】的入组申请被拒绝。原因:【%s】"; + /** + * 组长拒绝入群申请,用户会收到:您在【组名】的入组申请被拒绝。原因:【组长拒绝审核时输入的备注】 + */ + String DISAGREE_APPLY = "您在【%s】的入组申请被拒绝。原因:【%s】"; + + /** + * 成员通过链接同意进群后,组长会收到:您的好友-【认证的居民名字 xxx路-王先生】通过邀请链接,加入了【组名】 + */ + String INVITED_JOIN_GROUP = "您的好友-【%s】通过邀请连接,加入了【%s】"; + + String DATA_ACQUISITION_FAILED = "数据库数据获取失败"; + + String DELETE_SUCCESS = "组成员删除成功"; + + String DELETE_FAILED = "组成员删除失败"; /** - * 成员通过链接同意进群后,组长会收到:您的好友-【认证的居民名字 xxx路-王先生】通过邀请链接,加入了【组名】 + * 删除组成员时对应话题操作日志表设置默认的屏蔽理由 */ - String INVITED_JOIN_GROUP="您的好友-【%s】通过邀请连接,加入了【%s】"; + String DELETE_MEMBER_REASON = "删除组成员,屏蔽该成员话题"; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupStatisticalDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupStatisticalDao.java index 5c0cec19a2..f323ce4168 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupStatisticalDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupStatisticalDao.java @@ -20,14 +20,22 @@ package com.epmet.modules.group.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.group.entity.ResiGroupStatisticalEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 群组统计信息表 * - * @author generator generator@elink-cn.com + * @author generator generator@elink-cn.comH * @since v1.0.0 2020-03-31 */ @Mapper public interface ResiGroupStatisticalDao extends BaseDao { + /** + * 根据组Id查询群组统计信息表数据 + * @param resiGroupId + * @return + * @author sun + */ + ResiGroupStatisticalEntity selectByResiGroupId(@Param("resiGroupId") String resiGroupId); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupStatisticalService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupStatisticalService.java index 3cba82c496..160c9eea05 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupStatisticalService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupStatisticalService.java @@ -19,8 +19,11 @@ package com.epmet.modules.group.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.group.entity.ResiGroupStatisticalEntity; +import com.epmet.modules.member.entity.ResiGroupMemberEntity; import com.epmet.resi.group.dto.group.ResiGroupStatisticalDTO; +import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO; import java.util.List; import java.util.Map; @@ -92,4 +95,12 @@ public interface ResiGroupStatisticalService extends BaseService implements ResiGroupStatisticalService { + @Autowired + private ResiGroupServiceImpl resiGroupServiceImpl; + @Autowired + private EpmetUserFeignClient epmetUserFeignClient; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -60,8 +76,8 @@ public class ResiGroupStatisticalServiceImpl extends BaseServiceImpl getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + 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); @@ -96,4 +112,54 @@ public class ResiGroupStatisticalServiceImpl extends BaseServiceImpl> resultList = epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO); + if (!resultList.success()) { + result.error(UserMessageConstant.DATA_ACQUISITION_FAILED); + return result; + } + for (UserRoleResultDTO userRole : resultList.getData()) { + if (EpmetRoleKeyConstant.WARMHEARTED.equals(userRole.getRoleKey())) { + //热心居民总数 + entity.setTotalEarnestMemebers(entity.getTotalEarnestMemebers() - NumConstant.ONE); + break; + } else if (EpmetRoleKeyConstant.WARMHEARTED.equals(userRole.getRoleKey())) { + //党员总数 + entity.setTotalPartyMembers(entity.getTotalPartyMembers() - NumConstant.ONE); + break; + } + } + baseDao.updateById(entity); + return result; + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java index 50bad72d0a..39d0d3d689 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java @@ -122,4 +122,17 @@ public class ResiGroupMemberController { ValidatorUtils.validateEntity(disagreeApplyFormDTO); return resiGroupMemberService.disAgreeApply(disagreeApplyFormDTO); } + + /** + * @Author sun + * @Description 楼院小组--删除组成员 + **/ + @PostMapping("removemember") + public Result removeMember(@LoginUser TokenDto tokenDto, @RequestBody RemoveMemberFormDTO removeMemberFormDTO) { + removeMemberFormDTO.setUserId(tokenDto.getUserId()); + removeMemberFormDTO.setApp(tokenDto.getApp()); + ValidatorUtils.validateEntity(removeMemberFormDTO); + return resiGroupMemberService.removeMember(removeMemberFormDTO); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/GroupMemeberOperationService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/GroupMemeberOperationService.java index a1422f5e8d..21bac5fe39 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/GroupMemeberOperationService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/GroupMemeberOperationService.java @@ -19,8 +19,11 @@ 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.GroupMemeberOperationEntity; +import com.epmet.modules.member.entity.ResiGroupMemberEntity; import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO; +import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO; import java.util.List; import java.util.Map; @@ -92,4 +95,14 @@ public interface GroupMemeberOperationService extends BaseService getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + 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); @@ -101,4 +105,18 @@ public class GroupMemeberOperationServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -405,4 +413,43 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl { * @Date 2020.04.01 15:21 **/ int updateBatch(List list); + + /** + * @Description 批量更新 + * @Param List + * @return int + * @Author wangc + * @Date 2020.04.01 15:21 + **/ + List selectTopicList(ResiTopicDTO resiTopicDTO); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java index 2c5b14fa8a..9bfd82fe86 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java @@ -21,7 +21,9 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; +import com.epmet.modules.member.entity.ResiGroupMemberEntity; import com.epmet.modules.topic.entity.ResiTopicEntity; +import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO; @@ -103,82 +105,88 @@ public interface ResiTopicService extends BaseService { void delete(String[] ids); /** + * @return Result * @Description 创建话题接口,具体逻辑包括:1.身份校验 2.创建话题 3.话题操作记录 * @Param tokenDto * @Param resiTopicPublishFormDTO - * @return Result * @Author wangc * @Date 2020.03.31 13:19 **/ Result createTopic(TokenDto tokenDto, ResiTopicPublishFormDTO resiTopicPublishFormDTO); /** + * @return Result> * @Description 查看组内最近十条话题 * @Param tokenDto * @Param groupId - * @return Result> * @Author wangc * @Date 2020.04.01 08:59 **/ - Result> getLatestTopics(TokenDto tokenDto,String groupId); + Result> getLatestTopics(TokenDto tokenDto, String groupId); /** - * @Description 查看历史话题(分页,允许状态筛选) + * @return Result> + * @Description 查看历史话题(分页, 允许状态筛选) * @Param tokenDto * @Param ResiTopicPageFormDTO.class - * @return Result> * @Author wangc * @Date 2020.04.01 10:36 **/ Result> getPastTopicList(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO); /** + * @return Result * @Description 屏蔽话题 * @Param tokenDto * @Param ResiTopicHiddenFormDTO.class - * @return Result * @Author wangc * @Date 2020.04.01 12:38 **/ - Result hideTopic(TokenDto tokenDto,ResiTopicOperationFormDTO hiddenFormDTO); + Result hideTopic(TokenDto tokenDto, ResiTopicOperationFormDTO hiddenFormDTO); /** + * @return Result * @Description 批量取消屏蔽 * @Param tokenDto * @Param topicIds - * @return Result * @Author wangc * @Date 2020.04.01 14:17 **/ - Result cancelHiddenTopics(TokenDto tokenDto,List topicIds); + Result cancelHiddenTopics(TokenDto tokenDto, List topicIds); /** + * @return Result.class * @Description 关闭话题 * @Param tokenDto * @Param ResiTopicOperationFormDTO.class - * @return Result.class * @Author wangc * @Date 2020.04.01 15:37 **/ - Result closeTopic(TokenDto tokenDto,ResiTopicOperationFormDTO closeFormDTO); + Result closeTopic(TokenDto tokenDto, ResiTopicOperationFormDTO closeFormDTO); /** + * @return ResiTopicDetailResultDTO * @Description 查看话题详情 * @Param tokenDto * @Param topicId - * @return ResiTopicDetailResultDTO * @Author wangc * @Date 2020.04.01 15:56 **/ Result getTopicDetail(TokenDto tokenDto, String topicId); /** + * @return List * @Description 屏蔽话题列表查询 * @Param tokenDto * @Param ResiTopicPageFormDTO.class - * @return List * @Author wangc * @Date 2020.04.01 16:45 **/ - Result> getHiddenTopics(TokenDto tokenDto,ResiTopicPageFormDTO topicPageFormDTO); + Result> getHiddenTopics(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO); + + /** + * @Description 删除组成员--根据前端传过来的屏蔽标志更新话题状态 + * @Author sun + **/ + Result upResiTopic(RemoveMemberFormDTO removeMemberFormDTO, ResiGroupMemberEntity entity); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index 4e7096910c..5d01893296 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -30,12 +30,14 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.UserResiInfoFormDTO; import com.epmet.dto.form.UserResiInfoListFormDTO; import com.epmet.dto.result.UserResiInfoResultDTO; +import com.epmet.modules.constant.UserMessageConstant; import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.group.dao.ResiGroupDao; import com.epmet.modules.group.dao.ResiGroupStatisticalDao; import com.epmet.modules.group.entity.ResiGroupEntity; import com.epmet.modules.group.entity.ResiGroupStatisticalEntity; import com.epmet.modules.member.dao.ResiGroupMemberDao; +import com.epmet.modules.member.entity.ResiGroupMemberEntity; import com.epmet.modules.member.service.ResiGroupMemberService; import com.epmet.modules.topic.dao.ResiTopicAttachmentDao; import com.epmet.modules.topic.dao.ResiTopicCommentDao; @@ -44,11 +46,13 @@ import com.epmet.modules.topic.dao.ResiTopicOperationDao; import com.epmet.modules.topic.entity.ResiTopicAttachmentEntity; import com.epmet.modules.topic.entity.ResiTopicEntity; import com.epmet.modules.topic.entity.ResiTopicOperationEntity; +import com.epmet.modules.topic.service.ResiTopicOperationService; import com.epmet.modules.topic.service.ResiTopicService; import com.epmet.modules.utils.ModuleConstant; import com.epmet.resi.group.constant.MemberStateConstant; import com.epmet.resi.group.constant.TopicConstant; import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; +import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO; @@ -100,6 +104,9 @@ public class ResiTopicServiceImpl extends BaseServiceImpl page(Map params) { @@ -583,4 +590,42 @@ public class ResiTopicServiceImpl extends BaseServiceImpl list = baseDao.selectTopicList(resiTopicDTO); + if (null == list || list.size() < 1) { + return result; + } + //2:批量更新话题状态 + List ids = new ArrayList<>(); + List topicOperationList = new ArrayList<>(); + ResiTopicOperationEntity resiTopicOperationEntity = null; + for (ResiTopicDTO dto : list) { + ids.add(dto.getId()); + resiTopicOperationEntity = new ResiTopicOperationEntity(); + resiTopicOperationEntity.setTopicId(dto.getId()); + resiTopicOperationEntity.setOperationType(TopicConstant.HIDDEN); + resiTopicOperationEntity.setOperationReason(UserMessageConstant.DELETE_MEMBER_REASON); + resiTopicOperationEntity.setDelFlag(NumConstant.ZERO_STR); + resiTopicOperationEntity.setRevision(NumConstant.ZERO); + resiTopicOperationEntity.setCreatedBy(removeMemberFormDTO.getUserId()); + resiTopicOperationEntity.setUpdatedBy(removeMemberFormDTO.getUserId()); + topicOperationList.add(resiTopicOperationEntity); + } + baseDao.cancelHiddenOrCloseBatch(ids, removeMemberFormDTO.getUserId(),TopicConstant.HIDDEN); + //3:批量新增对应的话题操作日志 + resiTopicOperationService.insertBatch(topicOperationList); + return result; + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupStatisticalDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupStatisticalDao.xml new file mode 100644 index 0000000000..82b67e2a34 --- /dev/null +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupStatisticalDao.xml @@ -0,0 +1,31 @@ + + + + + + + rgs.id AS "id", + rgs.resi_group_id AS "resiGroupId", + rgs.total_members AS "totalMembers", + rgs.total_topics AS "totalTopics", + rgs.total_issues AS "totalIssues", + rgs.total_party_members AS "totalPartyMembers", + rgs.total_earnest_memebers AS "totalEarnestMemebers", + rgs.total_normal_memebers AS "totalNormalMemebers", + rgs.del_flag AS "delFlag", + rgs.revision AS "revision", + rgs.created_by AS "createdBy", + rgs.created_time AS "createdTime", + rgs.updated_by AS "updatedBy", + rgs.updated_time AS "updatedTime" + + + + + diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml index 0baa4f4771..57ba94d5b6 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml @@ -3,6 +3,24 @@ + + rt.id AS "id", + rt.group_id AS "groupId", + rt.topic_content AS "topicContent", + rt.status AS "status", + rt.province AS "province", + rt.city AS "city", + rt.area AS "area", + rt.address AS "address", + rt.longitude AS "longitude", + rt.dimension AS "dimension", + rt.del_flag AS "delFlag", + rt.revision AS "revision", + rt.created_by AS "createdBy", + rt.created_time AS "createdTime", + rt.updated_by AS "updatedBy", + rt.updated_time AS "updatedTime" + @@ -177,6 +195,19 @@ + +