|
@@ -1,5 +1,6 @@
|
|
|
package com.inspur.customer.service.org;
|
|
package com.inspur.customer.service.org;
|
|
|
|
|
|
|
|
|
|
+import com.alibaba.cola.dto.MultiResponse;
|
|
|
import com.alibaba.cola.dto.PageResponse;
|
|
import com.alibaba.cola.dto.PageResponse;
|
|
|
import com.alibaba.cola.dto.Response;
|
|
import com.alibaba.cola.dto.Response;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -12,10 +13,7 @@ import com.inspur.customer.client.org.SmsbMessageGroupMemberService;
|
|
|
import com.inspur.customer.infrastructure.mapper.org.SmsbMessageGroupMemberMapper;
|
|
import com.inspur.customer.infrastructure.mapper.org.SmsbMessageGroupMemberMapper;
|
|
|
import com.inspur.customer.infrastructure.object.org.SmsbMessageGroupMemberDO;
|
|
import com.inspur.customer.infrastructure.object.org.SmsbMessageGroupMemberDO;
|
|
|
import com.inspur.customer.object.keycloak.KeycloakUserCO;
|
|
import com.inspur.customer.object.keycloak.KeycloakUserCO;
|
|
|
-import com.inspur.customer.object.org.SmsbMessageGroupQuery;
|
|
|
|
|
-import com.inspur.customer.object.org.SmsbMessageMemberAddDto;
|
|
|
|
|
-import com.inspur.customer.object.org.SmsbMessageMemberCO;
|
|
|
|
|
-import com.inspur.customer.object.org.SmsbMessageMemberUpdateDto;
|
|
|
|
|
|
|
+import com.inspur.customer.object.org.*;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.apache.dubbo.config.annotation.DubboService;
|
|
import org.apache.dubbo.config.annotation.DubboService;
|
|
@@ -66,11 +64,20 @@ public class SmsbMessageGroupMemberServiceImpl extends ServiceImpl<SmsbMessageGr
|
|
|
member.setEnabled(memberMap.get(member.getId()).getEnabled());
|
|
member.setEnabled(memberMap.get(member.getId()).getEnabled());
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+ smsbMessageMemberCOS = smsbMessageMemberCOS.stream()
|
|
|
|
|
+ .sorted(Comparator.comparing(SmsbMessageMemberCO::getRecipientType))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
return PageResponse.of(smsbMessageMemberCOS, (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent());
|
|
return PageResponse.of(smsbMessageMemberCOS, (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Response addMember(SmsbMessageMemberAddDto addDto) {
|
|
public Response addMember(SmsbMessageMemberAddDto addDto) {
|
|
|
|
|
+ // 新增抄送人时,要保证当前分组下已经有收件人了
|
|
|
|
|
+ if (addDto.getRecipientType() == 2 && Boolean.FALSE.equals(isLeagle(addDto.getGroupId()))) {
|
|
|
|
|
+ return Response.buildFailure("400","请先添加收件人");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
List<Long> addDepartmentUserIds = addDto.getIdList();
|
|
List<Long> addDepartmentUserIds = addDto.getIdList();
|
|
|
|
|
|
|
|
// 查询当前group下的所有用户,移除掉重复部分,避免重复新增
|
|
// 查询当前group下的所有用户,移除掉重复部分,避免重复新增
|
|
@@ -80,7 +87,21 @@ public class SmsbMessageGroupMemberServiceImpl extends ServiceImpl<SmsbMessageGr
|
|
|
.stream()
|
|
.stream()
|
|
|
.map(SmsbMessageGroupMemberDO::getDepartmentUserId)
|
|
.map(SmsbMessageGroupMemberDO::getDepartmentUserId)
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
- addDepartmentUserIds.removeAll(curIds);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 找出重复的成员,并进行报错提示,请勿重复添加使用者名为:... 的账号
|
|
|
|
|
+ List<Long> intersection = new ArrayList<>(addDepartmentUserIds);
|
|
|
|
|
+ intersection.retainAll(curIds);
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(intersection)) {
|
|
|
|
|
+ List<String> userName = smsbDepartmentUserService.listByIds(intersection)
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .map(SmsbMessageMemberCO::getUserName)
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ MultiResponse<String> response = MultiResponse.of(userName);
|
|
|
|
|
+ response.setErrCode("400");
|
|
|
|
|
+ response.setSuccess(false);
|
|
|
|
|
+ return response;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
|
|
|
|
|
List<SmsbMessageGroupMemberDO> addList = new ArrayList<>();
|
|
List<SmsbMessageGroupMemberDO> addList = new ArrayList<>();
|
|
@@ -105,21 +126,55 @@ public class SmsbMessageGroupMemberServiceImpl extends ServiceImpl<SmsbMessageGr
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Response updateByDepartmentUserId(SmsbMessageMemberUpdateDto updateDto) {
|
|
public Response updateByDepartmentUserId(SmsbMessageMemberUpdateDto updateDto) {
|
|
|
|
|
+ // 获取有效的主送人信息
|
|
|
|
|
+ List<SmsbMessageGroupMemberDO> curList = lambdaQuery()
|
|
|
|
|
+ .eq(SmsbMessageGroupMemberDO::getGroupId, updateDto.getGroupId())
|
|
|
|
|
+ .eq(SmsbMessageGroupMemberDO::getEnabled, 1)
|
|
|
|
|
+ .eq(SmsbMessageGroupMemberDO::getRecipientType, 1)
|
|
|
|
|
+ .list();
|
|
|
|
|
+
|
|
|
|
|
+ // 修改用户状态、主抄送类型时,如果修改的是将主送修改成抄送,则要判断该用户是否是唯一的主送,如果是,则报错提示
|
|
|
|
|
+ if (Objects.equals(curList.size(), 1) && Objects.equals(updateDto.getDepartmentUserId(), curList.get(0).getDepartmentUserId())) {
|
|
|
|
|
+ if (Objects.nonNull(updateDto.getRecipientType()) && updateDto.getRecipientType() == 2) {
|
|
|
|
|
+ return Response.buildFailure("400","请至少保留一个收件人");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (Objects.nonNull(updateDto.getEnabled()) && updateDto.getEnabled() == 0) {
|
|
|
|
|
+ return Response.buildFailure("400","请至少保留一个启用的收件人");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
boolean update = this.update(new LambdaUpdateWrapper<SmsbMessageGroupMemberDO>()
|
|
boolean update = this.update(new LambdaUpdateWrapper<SmsbMessageGroupMemberDO>()
|
|
|
.eq(SmsbMessageGroupMemberDO::getDepartmentUserId, updateDto.getDepartmentUserId())
|
|
.eq(SmsbMessageGroupMemberDO::getDepartmentUserId, updateDto.getDepartmentUserId())
|
|
|
.eq(SmsbMessageGroupMemberDO::getGroupId, updateDto.getGroupId())
|
|
.eq(SmsbMessageGroupMemberDO::getGroupId, updateDto.getGroupId())
|
|
|
- .set(SmsbMessageGroupMemberDO::getEnabled, updateDto.getEnabled())
|
|
|
|
|
- .set(SmsbMessageGroupMemberDO::getRecipientType, updateDto.getRecipientType())
|
|
|
|
|
|
|
+ .set(Objects.nonNull(updateDto.getEnabled()), SmsbMessageGroupMemberDO::getEnabled, updateDto.getEnabled())
|
|
|
|
|
+ .set(Objects.nonNull(updateDto.getRecipientType()), SmsbMessageGroupMemberDO::getRecipientType, updateDto.getRecipientType())
|
|
|
.set(SmsbMessageGroupMemberDO::getUpdateTime, LocalDateTime.now()));
|
|
.set(SmsbMessageGroupMemberDO::getUpdateTime, LocalDateTime.now()));
|
|
|
|
|
|
|
|
return update ? Response.buildSuccess() : Response.buildFailure("400", "更新失败");
|
|
return update ? Response.buildSuccess() : Response.buildFailure("400", "更新失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
- public Response deleteByDepartmentUserIds(SmsbMessageMemberUpdateDto updateDto) {
|
|
|
|
|
|
|
+ public Response deleteByDepartmentUserIds(SmsbMessageMemberDeleteDto deleteDto) {
|
|
|
|
|
+ // 获取当前group下的主送人用户部门id
|
|
|
|
|
+ List<Long> curList = lambdaQuery()
|
|
|
|
|
+ .eq(SmsbMessageGroupMemberDO::getGroupId, deleteDto.getGroupId())
|
|
|
|
|
+ .list()
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .filter(member -> member.getRecipientType() == 1)
|
|
|
|
|
+ .map(SmsbMessageGroupMemberDO::getDepartmentUserId)
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ // 获取要删除的用户部门id
|
|
|
|
|
+ Set<Long> deleteSet = deleteDto.getDepartmentUserIds()
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .map(Long::valueOf)
|
|
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
|
+ if (deleteSet.containsAll(curList)) {
|
|
|
|
|
+ return Response.buildFailure("400","请至少保留一个收件人");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
boolean success = this.remove(new LambdaUpdateWrapper<SmsbMessageGroupMemberDO>()
|
|
boolean success = this.remove(new LambdaUpdateWrapper<SmsbMessageGroupMemberDO>()
|
|
|
- .eq(SmsbMessageGroupMemberDO::getGroupId, updateDto.getGroupId())
|
|
|
|
|
- .in(SmsbMessageGroupMemberDO::getDepartmentUserId, updateDto.getDepartmentUserIds()));
|
|
|
|
|
|
|
+ .eq(SmsbMessageGroupMemberDO::getGroupId, deleteDto.getGroupId())
|
|
|
|
|
+ .in(SmsbMessageGroupMemberDO::getDepartmentUserId, deleteDto.getDepartmentUserIds()));
|
|
|
return success ? Response.buildSuccess() : Response.buildFailure("400","删除失败");
|
|
return success ? Response.buildSuccess() : Response.buildFailure("400","删除失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -160,4 +215,13 @@ public class SmsbMessageGroupMemberServiceImpl extends ServiceImpl<SmsbMessageGr
|
|
|
return resultMap;
|
|
return resultMap;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 新增、修改、删除组员时要保证组内必须至少有一个收件人
|
|
|
|
|
+ private Boolean isLeagle (Long groupId){
|
|
|
|
|
+ return lambdaQuery().eq(SmsbMessageGroupMemberDO::getGroupId, groupId)
|
|
|
|
|
+ .list()
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .map(SmsbMessageGroupMemberDO::getRecipientType)
|
|
|
|
|
+ .anyMatch(recipientType -> recipientType == 1);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|