From 9ccaebb9ed2c1a232ca6145c37a1f92c15939d64 Mon Sep 17 00:00:00 2001 From: yinzuomei Date: Thu, 19 Dec 2019 16:25:41 +0800 Subject: [PATCH] =?UTF-8?q?=20=E6=89=B9=E9=87=8F=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=85=9A=E5=91=98=E7=BE=A4v2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/SysDeptDao.xml | 2 +- .../group/form/GroupBatchCreateFormDTO.java | 89 +++++++++++++++++++ .../modules/feign/UserFeignClient.java | 13 +++ .../fallback/UserFeignClientFallback.java | 6 ++ .../group/service/impl/GroupServiceImpl.java | 53 ++++++++++- .../main/resources/mapper/group/GroupDao.xml | 2 +- .../epdc/result/EpdcGridUserResultDTO.java | 62 +++++++++++++ .../controller/EpdcAppUserController.java | 12 +++ .../java/com/elink/esua/epdc/dao/UserDao.java | 9 ++ .../elink/esua/epdc/service/UserService.java | 9 ++ .../epdc/service/impl/UserServiceImpl.java | 12 +++ .../src/main/resources/mapper/UserDao.xml | 27 ++++++ 12 files changed, 292 insertions(+), 4 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupBatchCreateFormDTO.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcGridUserResultDTO.java diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml index 607679d02..1302aab78 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml @@ -223,7 +223,7 @@ and gri.`name` like concat('%', #{grid}, '%') - and gri.ID in + and gri.ID not in #{gridId} diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupBatchCreateFormDTO.java b/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupBatchCreateFormDTO.java new file mode 100644 index 000000000..451e8cd60 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupBatchCreateFormDTO.java @@ -0,0 +1,89 @@ +package com.elink.esua.epdc.dto.group.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.io.Serializable; +import java.util.List; + +/** + * + * 批量生成党员群DTO + * @Author: yinzuomei + * @Date: 2019-12-19 + */ +@Data +public class GroupBatchCreateFormDTO implements Serializable { + private static final long serialVersionUID = 2948200217356354599L; + + /** + * 社群名称 + */ + @NotBlank(message = "社群名称不能为空且在10个字以内") + @Size(min = 1, max = 10, message = "社群名称不能为空且在10个字以内") + private String groupName; + + /** + * 社群头像 + */ + @NotBlank(message = "社群头像不能为空") + private String groupAvatar; + + /** + * 社群介绍 + */ + @NotBlank(message = "社群介绍不能为空且在500个字以内") + @Size(min = 1, max = 500, message = "社群介绍不能为空且在500个字以内") + private String groupIntroduction; + + /** + * 社群类别 0:党员群,1:自建群 + */ + private String groupCategory; + + + /** + * 网格 + */ + private String grid; + + /** + * 网格ID + */ + @NotNull(message = "用户网格ID不能为空") + private Long gridId; + + /** + * 父所有部门ID + */ + @NotNull(message = "父所有部门ID不能为空") + private String parentDeptIds; + + /** + * 父所有部门 + */ + private String parentDeptNames; + + /** + * 所有部门ID + */ + @NotNull(message = "所有部门ID不能为空") + private String allDeptIds; + + /** + * 所有部门 + */ + private String allDeptNames; + + /** + * 社群状态 + */ + private Integer state; + + /** + * 用户信息 + */ + private List groupUserFormDTOList; +} diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/feign/UserFeignClient.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/feign/UserFeignClient.java index db7a812b1..648d6ea13 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/feign/UserFeignClient.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/feign/UserFeignClient.java @@ -5,11 +5,14 @@ import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserGridRelationDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcGridUserResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO; import com.elink.esua.epdc.modules.feign.fallback.UserFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @@ -56,4 +59,14 @@ public interface UserFeignClient { **/ @GetMapping("app-user/epdc-app/user/getById/{userId}") Result getUserInfoById(@PathVariable("userId") String userId); + + /** + * @param gridIdList + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author yinzuomei + * @Description 查询当前网格下所有的用户 + * @Date 2019/12/19 14:53 + **/ + @PostMapping(value="app-user/epdc-app/user/queryGroupUsers",consumes = MediaType.APPLICATION_JSON_VALUE) + Result> queryGroupUsers(List gridIdList); } diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/feign/fallback/UserFeignClientFallback.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/feign/fallback/UserFeignClientFallback.java index 3ec85aaaf..670fd0c38 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/feign/fallback/UserFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/feign/fallback/UserFeignClientFallback.java @@ -6,6 +6,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserGridRelationDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcGridUserResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO; import com.elink.esua.epdc.modules.feign.UserFeignClient; import org.springframework.stereotype.Component; @@ -33,4 +34,9 @@ public class UserFeignClientFallback implements UserFeignClient { public Result getUserInfoById(String userId) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoById", userId); } + + @Override + public Result> queryGroupUsers(List gridIdList) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "queryGroupUsers", gridIdList); + } } diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java index 3e1580ea1..294fa3557 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java @@ -17,6 +17,7 @@ package com.elink.esua.epdc.modules.group.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; @@ -29,12 +30,14 @@ import com.elink.esua.epdc.dto.CompleteDeptDTO; import com.elink.esua.epdc.dto.constant.GroupConstant; import com.elink.esua.epdc.dto.constant.GroupNoticeConstant; import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcGridUserResultDTO; import com.elink.esua.epdc.dto.group.*; import com.elink.esua.epdc.dto.enums.GroupStateEnum; import com.elink.esua.epdc.dto.enums.GroupUserStateEnum; import com.elink.esua.epdc.dto.group.form.*; import com.elink.esua.epdc.dto.group.result.*; import com.elink.esua.epdc.modules.async.NewsTask; +import com.elink.esua.epdc.modules.feign.UserFeignClient; import com.elink.esua.epdc.modules.group.dao.GroupDao; import com.elink.esua.epdc.modules.group.entity.GroupEntity; import com.elink.esua.epdc.modules.group.entity.UserGroupEntity; @@ -50,6 +53,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 社群表 社群表 @@ -69,6 +73,9 @@ public class GroupServiceImpl extends BaseServiceImpl imp @Autowired private GroupTopicUserReadService groupTopicUserReadService; + @Autowired + private UserFeignClient userFeignClient; + @Override public PageData page(Map params) { IPage page = getPage(params); @@ -379,11 +386,29 @@ public class GroupServiceImpl extends BaseServiceImpl imp return new Result(); } + /** + * @param deptList + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author yinzuomei + * @Description 批量生成网格党员群 + * @Date 2019/12/19 14:41 + **/ @Override public Result savePartyGroups(List deptList) { + if(CollUtil.isEmpty(deptList)){ + return new Result().error("请选择网格"); + } + //在创建党员群的时候,查询当前网格下的党员用户和网格长用户 + List gridIdList=new ArrayList<>(); + for(CompleteDeptDTO completeDeptDTO:deptList){ + gridIdList.add(completeDeptDTO.getGridId()); + } + Result> gridUserList=userFeignClient.queryGroupUsers(gridIdList); + //将集合转为Map,key为网格id + Map> map=gridUserList.getData().stream().collect(Collectors.groupingBy(EpdcGridUserResultDTO::getGridId)); for (CompleteDeptDTO dept : deptList) { - GroupCreateFormDTO groupCreateFormDto = ConvertUtils.sourceToTarget(dept, GroupCreateFormDTO.class); + GroupBatchCreateFormDTO groupCreateFormDto = ConvertUtils.sourceToTarget(dept, GroupBatchCreateFormDTO.class); groupCreateFormDto.setGroupName(dept.getCommunity().concat(dept.getGrid()).concat(GroupConstant.PARTY_GROUP_NAME_SUFFIX)); groupCreateFormDto.setGroupAvatar(GroupConstant.PARTY_GROUP_AVATAR); groupCreateFormDto.setGroupIntroduction(dept.getStreet().concat(dept.getCommunity()).concat(dept.getGrid())); @@ -393,9 +418,33 @@ public class GroupServiceImpl extends BaseServiceImpl imp groupCreateFormDto.setAllDeptNames(dept.getDistrict() + "-" + dept.getStreet() + "-" + dept.getCommunity() + "-" + dept.getGrid()); groupCreateFormDto.setParentDeptIds(dept.getDistrictId() + "," + dept.getStreetId() + "," + dept.getCommunityId()); groupCreateFormDto.setParentDeptNames(dept.getDistrict() + "-" + dept.getStreet() + "-" + dept.getCommunity()); - this.saveGroup(groupCreateFormDto); + List groupUserFormDTOList=ConvertUtils.sourceToTarget(map.get(dept.getGridId()), GroupUserFormDTO.class); + groupCreateFormDto.setGroupUserFormDTOList(groupUserFormDTOList); + this.saveGroups(groupCreateFormDto); } + return new Result(); + } + @Transactional(rollbackFor = Exception.class) + public Result saveGroups(GroupBatchCreateFormDTO formDto) { + // 去掉社群名称中的空白 + formDto.setGroupName(formDto.getGroupName().replaceAll("\\s*", "")); + // 校验社群名称是否已存在 + Long amount = baseDao.selectListOfRepeatGroupName(formDto.getGridId(), formDto.getGroupName()); + if (amount > 0) { + return new Result().error("群名称已存在,请修改!"); + } + GroupEntity entity = ConvertUtils.sourceToTarget(formDto, GroupEntity.class); + if (insert(entity)) { + if(null!=formDto.getGroupUserFormDTOList()){ + for(GroupUserFormDTO groupUserFormDTO:formDto.getGroupUserFormDTOList()) { + // 保存用户 + UserGroupDTO userGroupDTO = ConvertUtils.sourceToTarget(groupUserFormDTO, UserGroupDTO.class); + userGroupDTO.setGroupId(entity.getId()); + userGroupService.save(userGroupDTO); + } + } + } return new Result(); } diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/GroupDao.xml b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/GroupDao.xml index 05bfedcfb..450dd47d9 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/GroupDao.xml +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/GroupDao.xml @@ -270,7 +270,7 @@ + + +