diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/async/GroupTask.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/async/GroupTask.java index b209235e8..f6c07f806 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/async/GroupTask.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/async/GroupTask.java @@ -7,6 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; +import java.util.List; + /** * * 友邻社群模块 @@ -30,7 +32,7 @@ public class GroupTask { * @since 2019/11/21 10:21 */ @Async - public void joinGridPartyGroup(GroupUserFormDTO formDto) { + public void joinGridPartyGroup(List formDto) { groupFeignClient.joinGridPartyGroup(formDto); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/GroupFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/GroupFeignClient.java index 6769a96c3..20a5ff659 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/GroupFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/GroupFeignClient.java @@ -216,5 +216,5 @@ public interface GroupFeignClient { * @since 2019/11/21 10:35 */ @PostMapping(value = "group/epdc-app/group/joinPartyGroup", consumes = MediaType.APPLICATION_JSON_VALUE) - Result joinGridPartyGroup(@RequestBody GroupUserFormDTO formDto); + Result joinGridPartyGroup(@RequestBody List formDto); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/GroupFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/GroupFeignClientFallback.java index 364fdab45..8b7102133 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/GroupFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/GroupFeignClientFallback.java @@ -96,7 +96,7 @@ public class GroupFeignClientFallback implements GroupFeignClient { } @Override - public Result joinGridPartyGroup(GroupUserFormDTO formDto) { + public Result joinGridPartyGroup(List formDto) { return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "joinGridPartyGroup", formDto); } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index 897748f80..3e40ff3f7 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -51,6 +51,8 @@ import javax.servlet.http.HttpServletRequest; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; +import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.List; @@ -299,7 +301,7 @@ public class AppUserServiceImpl implements AppUserService { EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(tokenDto, newAppUser.getGrid(), AppUserStatesEnum.STATE_REGISTERED.value()); // 网格长加入网格党员群并设置为群主 - this.joinGridPartyGroup(newAppUser, newAppUser.getGridId(), NumConstant.ONE_STR); + this.joinGridPartyGroup(newAppUser, userGridList, NumConstant.ONE_STR); return new Result().ok(authorization); } @@ -727,7 +729,9 @@ public class AppUserServiceImpl implements AppUserService { registeredUser = userResult.getUserDTO(); // 用户已认证为党员,绑定网格时加入该网格党员群 if (NumConstant.ONE_STR.equals(registeredUser.getPartyFlag())) { - this.joinGridPartyGroup(registeredUser, userResult.getGridId(), NumConstant.ZERO_STR); + UserGridRelationDTO userGridRelationDto = new UserGridRelationDTO(); + userGridRelationDto.setGridId(userResult.getGridId()); + this.joinGridPartyGroup(registeredUser, Collections.singletonList(userGridRelationDto), NumConstant.ZERO_STR); } } @@ -1010,17 +1014,23 @@ public class AppUserServiceImpl implements AppUserService { * @author liuchuang * @since 2019/11/21 10:58 */ - private void joinGridPartyGroup(UserDTO userDto, Long gridId, String lordFlag) { - GroupUserFormDTO formDto = new GroupUserFormDTO(); - formDto.setUserId(userDto.getId()); - formDto.setNickname(userDto.getNickname()); - formDto.setUserAvatar(userDto.getFaceImg()); - formDto.setMobile(userDto.getMobile()); - formDto.setPartyMember(userDto.getPartyFlag()); - formDto.setState(GroupUserStateEnum.GROUP_USER_STATE_EXAMINATION_PASSED.getValue()); - formDto.setLordFlag(lordFlag); - formDto.setGridId(gridId); - groupFeignClient.joinGridPartyGroup(formDto); + private void joinGridPartyGroup(UserDTO userDto, List userGridList, String lordFlag) { + List formDTOList = new ArrayList<>(userGridList.size()); + for (UserGridRelationDTO dto: + userGridList) { + GroupUserFormDTO formDto = new GroupUserFormDTO(); + formDto.setUserId(userDto.getId()); + formDto.setNickname(userDto.getNickname()); + formDto.setUserAvatar(userDto.getFaceImg()); + formDto.setMobile(userDto.getMobile()); + formDto.setPartyMember(userDto.getPartyFlag()); + formDto.setState(GroupUserStateEnum.GROUP_USER_STATE_EXAMINATION_PASSED.getValue()); + formDto.setLordFlag(lordFlag); + formDto.setGridId(dto.getGridId()); + formDTOList.add(formDto); + } + + groupFeignClient.joinGridPartyGroup(formDTOList); // groupTask.joinGridPartyGroup(formDto); } diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/AppGroupController.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/AppGroupController.java index 7d99f0e4e..76ad2b77e 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/AppGroupController.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/AppGroupController.java @@ -255,8 +255,7 @@ public class AppGroupController { * @since 2019/11/21 10:35 */ @PostMapping("joinPartyGroup") - public Result joinGridPartyGroup(@RequestBody GroupUserFormDTO formDto) { - ValidatorUtils.validateEntity(formDto); + public Result joinGridPartyGroup(@RequestBody List formDto) { return groupService.joinGridPartyGroup(formDto); } diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java index b6225130b..9d4c15f9a 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java @@ -271,7 +271,7 @@ public interface GroupService extends BaseService { * @author liuchuang * @since 2019/11/21 10:39 */ - Result joinGridPartyGroup(GroupUserFormDTO formDto); + Result joinGridPartyGroup(List formDto); /** * 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 294fa3557..1399dc0fe 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 @@ -360,27 +360,42 @@ public class GroupServiceImpl extends BaseServiceImpl imp @Override @Transactional(rollbackFor = Exception.class) - public Result joinGridPartyGroup(GroupUserFormDTO formDto) { - // 获取网格党员群 - GroupDTO groupDto = this.getPartyGroupInfoByGridId(formDto.getGridId()); - if (null == groupDto) { - return new Result().error("网格党员群不存在"); - } - // 校验用户是否已加入党员群 - int[] states = {GroupUserStateEnum.GROUP_USER_STATE_EXAMINATION_PASSED.getValue()}; - UserGroupDTO userGroupDto = userGroupService.getGroupUserInfo(groupDto.getId(), formDto.getUserId(), states); - if (null == userGroupDto) { - UserGroupEntity userGroupEntity = ConvertUtils.sourceToTarget(formDto, UserGroupEntity.class); - userGroupEntity.setGroupId(groupDto.getId()); - userGroupService.insert(userGroupEntity); - } else { - // 更新用户为党员群群主 - if (NumConstant.ZERO_STR.equals(userGroupDto.getLordFlag()) && NumConstant.ONE_STR.equals(formDto.getLordFlag())) { - UserGroupEntity userGroupEntity = new UserGroupEntity(); - userGroupEntity.setId(userGroupDto.getId()); - userGroupEntity.setLordFlag(formDto.getLordFlag()); - userGroupService.updateById(userGroupEntity); + public Result joinGridPartyGroup(List formDtoList) { + List insertEntity = new ArrayList<>(); + List updateEntity = new ArrayList<>(); + for (GroupUserFormDTO formDto: + formDtoList) { + // 校验信息 + if (!this.checkGroupUserInfo(formDto)) { + continue; } + // 获取网格党员群 + GroupDTO groupDto = this.getPartyGroupInfoByGridId(formDto.getGridId()); + if (null == groupDto) { + continue; + } + // 校验用户是否已加入党员群 + int[] states = {GroupUserStateEnum.GROUP_USER_STATE_EXAMINATION_PASSED.getValue()}; + UserGroupDTO userGroupDto = userGroupService.getGroupUserInfo(groupDto.getId(), formDto.getUserId(), states); + if (null == userGroupDto) { + UserGroupEntity userGroupEntity = ConvertUtils.sourceToTarget(formDto, UserGroupEntity.class); + userGroupEntity.setGroupId(groupDto.getId()); + insertEntity.add(userGroupEntity); + } else { + // 更新用户为党员群群主 + if (NumConstant.ZERO_STR.equals(userGroupDto.getLordFlag()) && NumConstant.ONE_STR.equals(formDto.getLordFlag())) { + UserGroupEntity userGroupEntity = new UserGroupEntity(); + userGroupEntity.setId(userGroupDto.getId()); + userGroupEntity.setLordFlag(formDto.getLordFlag()); + updateEntity.add(userGroupEntity); + } + } + } + if (insertEntity.size() > 0) { + userGroupService.insertBatch(insertEntity); + } + if (updateEntity.size() > 0) { + userGroupService.updateBatchById(updateEntity); } return new Result(); @@ -458,4 +473,26 @@ public class GroupServiceImpl extends BaseServiceImpl imp public Result> listPartyMemberGridId() { return new Result>().ok(baseDao.listPartyMemberGridId()); } + + /** + * + * 校验信息 + * + * @params [formDto] + * @return boolean + * @author liuchuang + * @since 2019/12/19 16:39 + */ + private boolean checkGroupUserInfo(GroupUserFormDTO formDto) { + if (StringUtils.isEmpty(formDto.getUserId())) { + return false; + } + if (StringUtils.isEmpty(formDto.getNickname())) { + return false; + } + if (StringUtils.isEmpty(formDto.getUserAvatar())) { + return false; + } + return !StringUtils.isEmpty(formDto.getMobile()); + } }