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 f9b97bfb9f..5ae3c98d8f 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 @@ -59,6 +59,11 @@ public interface UserMessageConstant { */ String CREATION_OF_GROUP_MESSAGE_TEMPLATE = "%s%s申请创建小组【%s】,请审核。"; + /** + * 变更组信息时的消息模板 + */ + String EDIT_OF_GROUP_MESSAGE_TEMPLATE = "%s%s申请变更小组【%s】,请审核。"; + /** * 组长审核入组申请时的微信订阅behavior */ 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 979462d3f3..b3bb7d4a5e 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 @@ -32,6 +32,7 @@ import com.epmet.commons.tools.scan.param.ImgTaskDTO; import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.result.SyncScanResult; +import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; @@ -77,6 +78,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; import java.util.*; @@ -134,6 +136,9 @@ public class ResiGroupServiceImpl extends BaseServiceImpl resiRoles = getResiRoles(app, customerId, userId, gridId); + boolean isPartymember = false; + boolean isWarmhearted = false; + for (UserRoleResultDTO role : resiRoles) { + if (EpmetRoleKeyConstant.WARMHEARTED.equals(role.getRoleKey())) { + isWarmhearted = true; + } + if (EpmetRoleKeyConstant.PARTYMEMBER.equals(role.getRoleKey())) { + isPartymember = true; + } + } + if (!isWarmhearted && isPartymember) { + throw new RenException(EpmetErrorCode.CANNOT_CREATE_GROUP.getCode(), "只有党员和热心居民才能创建和编辑小组"); + } + String roleName = ""; + if (isPartymember) { + roleName = ModuleConstant.PARTYMEMBER; + } else if (isWarmhearted) { + roleName = ModuleConstant.WAREMHEARTED_RESI; + } + + //3.获取居民注册信息 + UserResiInfoFormDTO resiParam = new UserResiInfoFormDTO(); + resiParam.setCustomerId(customerId); + resiParam.setUserId(userId); + Result resiResult = + epmetUserFeignClient.getUserResiInfoDTO(resiParam); + String userName = ""; + if (resiResult.success() && null != resiResult.getData()) { + userName = (StringUtils.isBlank(resiResult.getData().getSurname()) ? "" : resiResult.getData().getSurname()) + + (StringUtils.isBlank(resiResult.getData().getName()) ? "" : resiResult.getData().getName()); + } + userName = StringUtils.isBlank(userName) ? ModuleConstant.UNKNOWN : userName; + return String.format(UserMessageConstant.EDIT_OF_GROUP_MESSAGE_TEMPLATE, roleName, userName, groupName); + } + + /** + * 查询居民的角色列表 + * @param app + * @param customerId + * @param userId + * @param gridId + * @return + */ + private List getResiRoles(String app, String customerId, String userId, String gridId) { + UserRoleFormDTO userRoleFormDTO = new UserRoleFormDTO(); + userRoleFormDTO.setApp(app); + userRoleFormDTO.setCustomerId(customerId); + userRoleFormDTO.setUserId(userId); + userRoleFormDTO.setGridId(gridId); + Result> rolesResult = epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO); + + if (! rolesResult.success()) { + logger.error("修改组信息:查询居民角色失败,详情:{}", rolesResult.getInternalMsg()); + throw new RenException(EpmetErrorCode.GROUP_EDIT_ERROR.getCode(), "查询居民角色失败"); + } else { + List roles = rolesResult.getData(); + if (CollectionUtils.isEmpty(roles)) { + roles = new ArrayList<>(); + } + return roles; + } + } + /** * 内容检查 * @param groupName @@ -1084,12 +1169,12 @@ public class ResiGroupServiceImpl extends BaseServiceImpl textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); if (!textSyncScanResult.success()) { @@ -1104,6 +1189,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl