Browse Source

批量生成网格党员群v2

dev
尹作梅 6 years ago
parent
commit
9ccaebb9ed
  1. 2
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
  2. 89
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupBatchCreateFormDTO.java
  3. 13
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/feign/UserFeignClient.java
  4. 6
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/feign/fallback/UserFeignClientFallback.java
  5. 53
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java
  6. 2
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/GroupDao.xml
  7. 62
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcGridUserResultDTO.java
  8. 12
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java
  9. 9
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java
  10. 9
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java
  11. 12
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
  12. 27
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

2
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml

@ -223,7 +223,7 @@
and gri.`name` like concat('%', #{grid}, '%')
</if>
<if test="gridList!=null and gridList.size()>0">
and gri.ID in
and gri.ID not in
<foreach collection="gridList" index="index" item="gridId" open="(" separator="," close=")">
#{gridId}
</foreach>

89
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<GroupUserFormDTO> groupUserFormDTOList;
}

13
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<UserDTO> getUserInfoById(@PathVariable("userId") String userId);
/**
* @param gridIdList
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.group.form.GroupUserFormDTO>>
* @Author yinzuomei
* @Description 查询当前网格下所有的用户
* @Date 2019/12/19 14:53
**/
@PostMapping(value="app-user/epdc-app/user/queryGroupUsers",consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<EpdcGridUserResultDTO>> queryGroupUsers(List<Long> gridIdList);
}

6
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<UserDTO> getUserInfoById(String userId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoById", userId);
}
@Override
public Result<List<EpdcGridUserResultDTO>> queryGroupUsers(List<Long> gridIdList) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "queryGroupUsers", gridIdList);
}
}

53
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<GroupDao, GroupEntity> imp
@Autowired
private GroupTopicUserReadService groupTopicUserReadService;
@Autowired
private UserFeignClient userFeignClient;
@Override
public PageData<GroupManagementDTO> page(Map<String, Object> params) {
IPage<GroupManagementDTO> page = getPage(params);
@ -379,11 +386,29 @@ public class GroupServiceImpl extends BaseServiceImpl<GroupDao, GroupEntity> 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<CompleteDeptDTO> deptList) {
if(CollUtil.isEmpty(deptList)){
return new Result().error("请选择网格");
}
//在创建党员群的时候,查询当前网格下的党员用户和网格长用户
List<Long> gridIdList=new ArrayList<>();
for(CompleteDeptDTO completeDeptDTO:deptList){
gridIdList.add(completeDeptDTO.getGridId());
}
Result<List<EpdcGridUserResultDTO>> gridUserList=userFeignClient.queryGroupUsers(gridIdList);
//将集合转为Map,key为网格id
Map<Long, List<EpdcGridUserResultDTO>> 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<GroupDao, GroupEntity> 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<GroupUserFormDTO> 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();
}

2
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/GroupDao.xml

@ -270,7 +270,7 @@
<!-- 查询已经建立党员群的网格id -->
<select id="listPartyMemberGridId" resultType="java.lang.String">
select eg.GRID_ID
select distinct eg.GRID_ID
from epdc_group eg
where eg.DEL_FLAG='0'
and eg.GROUP_CATEGORY='0'

62
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcGridUserResultDTO.java

@ -0,0 +1,62 @@
package com.elink.esua.epdc.dto.epdc.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @Author yinzuomei
* @Date 2019/12/19 14:59
*/
@Data
public class EpdcGridUserResultDTO implements Serializable {
private static final long serialVersionUID = 2535956656928050751L;
/**
* 用户ID
*/
private String userId;
/**
* 用户昵称
*/
private String nickname;
/**
* 用户头像
*/
private String userAvatar;
/**
* 用户手机号
*/
private String mobile;
/**
* 群主标识 01
*/
private String lordFlag;
/**
* 党员标识 01
*/
private String partyMember;
/**
* 状态 0待审核5审核不通过10审核通过15已退群20已移除
*/
private Integer state;
/**
* 处理意见
*/
private String auditOpinion;
/**
* 网格ID
*/
private Long gridId;
}

12
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java

@ -353,4 +353,16 @@ public class EpdcAppUserController {
public Result<EpdcUserRegisterInfoResultDTO> getUserLastSwitchGird(@PathVariable("openId") String openId) {
return userService.getUserLastSwitchGird(openId);
}
/**
* @param gridIdList
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcGridUserResultDTO>>
* @Author yinzuomei
* @Description 根据网格id查询网格下所有的用户
* @Date 2019/12/19 15:02
**/
@PostMapping("queryGroupUsers")
public Result<List<EpdcGridUserResultDTO>> queryGroupUsers(@RequestBody List<Long> gridIdList) {
return userService.listGridUserResultDTO(gridIdList);
}
}

9
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java

@ -156,4 +156,13 @@ public interface UserDao extends BaseDao<UserEntity> {
* @Date 2019/12/7 11:23
**/
List<EpdcWorkUserResultDTO> selectPartyAuthenticationFailedList(EpdcWorkUserFromDTO workUserFromDto);
/**
* @param gridIdList
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcGridUserResultDTO>
* @Author yinzuomei
* @Description 根据网格id查询网格下所有的用户
* @Date 2019/12/19 15:05
**/
List<EpdcGridUserResultDTO> selectListGridUserResultDTO(@Param("gridIdList") List<Long> gridIdList);
}

9
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java

@ -258,4 +258,13 @@ public interface UserService extends BaseService<UserEntity> {
* @Date 2019/12/7 13:58
**/
Result<UserDTO> queryUserDto(EpdcAppQueryUserInfoFormDTO formDTO);
/**
* @param gridIdList
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcGridUserResultDTO>>
* @Author yinzuomei
* @Description 根据网格id查询网格下所有的用户
* @Date 2019/12/19 15:03
**/
Result<List<EpdcGridUserResultDTO>> listGridUserResultDTO(List<Long> gridIdList);
}

12
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java

@ -761,6 +761,18 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
return new Result();
}
/**
* @param gridIdList
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcGridUserResultDTO>>
* @Author yinzuomei
* @Description 根据网格id查询网格下所有的用户
* @Date 2019/12/19 15:03
**/
@Override
public Result<List<EpdcGridUserResultDTO>> listGridUserResultDTO(List<Long> gridIdList) {
return new Result<List<EpdcGridUserResultDTO>>().ok(baseDao.selectListGridUserResultDTO(gridIdList));
}
/**
* 根据微信信息查询用户
*

27
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

@ -352,4 +352,31 @@
LIMIT #{pageIndex},#{pageSize}
</select>
<!-- 根据网格id查询网格下所有的用户 -->
<select id="selectListGridUserResultDTO" parameterType="map" resultType="com.elink.esua.epdc.dto.epdc.result.EpdcGridUserResultDTO">
SELECT
eu.id AS userId,
eu.NICKNAME,
eu.FACE_IMG AS userAvatar,
eu.MOBILE,
r.LEADER_FLAG AS lordFlag,
eu.PARTY_FLAG AS partyMember,
eu.STATE,
NULL AS auditOpinion,
r.GRID_ID AS gridId
FROM
epdc_user_grid_relation r
LEFT JOIN epdc_user eu ON r.USER_ID = eu.ID
WHERE
r.DEL_FLAG = '0'
AND eu.DEL_FLAG = '0'
and (eu.PARTY_FLAG='1' or r.LEADER_FLAG='1')
<if test="gridIdList!=null and gridIdList.size()>0">
AND r.GRID_ID in
<foreach collection="gridIdList" index="index" item="gridId" open="(" separator="," close=")">
#{gridId}
</foreach>
</if>
</select>
</mapper>

Loading…
Cancel
Save