|
@@ -46,16 +46,14 @@ public class SysNoticeServiceImpl extends AbstractBaseService<SysNoticeMapper, S |
|
@@ -46,16 +46,14 @@ public class SysNoticeServiceImpl extends AbstractBaseService<SysNoticeMapper, S |
46
|
|
46
|
|
47
|
@Override
|
47
|
@Override
|
48
|
public YtPageData<SysNoticeDTO> page(Map<String, Object> queryMap) {
|
48
|
public YtPageData<SysNoticeDTO> page(Map<String, Object> queryMap) {
|
49
|
- IPage<SysNotice> page =
|
|
|
50
|
- getPage(queryMap, FastIotConstants.DefaultOrder.CREATE_TIME, true);
|
49
|
+ IPage<SysNotice> page = getPage(queryMap, FastIotConstants.DefaultOrder.CREATE_TIME, true);
|
51
|
IPage<SysNoticeDTO> pageDto = baseMapper.page(page, queryMap);
|
50
|
IPage<SysNoticeDTO> pageDto = baseMapper.page(page, queryMap);
|
52
|
return getPageData(pageDto, SysNoticeDTO.class);
|
51
|
return getPageData(pageDto, SysNoticeDTO.class);
|
53
|
}
|
52
|
}
|
54
|
|
53
|
|
55
|
@Override
|
54
|
@Override
|
56
|
- public SysNoticeDTO get(String id,String tenantId) {
|
|
|
57
|
- return baseMapper
|
|
|
58
|
- .get(id, tenantId);
|
55
|
+ public SysNoticeDTO get(String id, String tenantId) {
|
|
|
56
|
+ return baseMapper.get(id, tenantId);
|
59
|
}
|
57
|
}
|
60
|
|
58
|
|
61
|
@Override
|
59
|
@Override
|
|
@@ -68,21 +66,17 @@ public class SysNoticeServiceImpl extends AbstractBaseService<SysNoticeMapper, S |
|
@@ -68,21 +66,17 @@ public class SysNoticeServiceImpl extends AbstractBaseService<SysNoticeMapper, S |
68
|
}
|
66
|
}
|
69
|
|
67
|
|
70
|
@Override
|
68
|
@Override
|
71
|
- public SysNoticeDTO save(SysNoticeDTO sysNoticeDTO,String tenantId) {
|
69
|
+ public SysNoticeDTO save(SysNoticeDTO sysNoticeDTO, String tenantId) {
|
72
|
SysNotice sysNotice = sysNoticeDTO.getEntity(SysNotice.class);
|
70
|
SysNotice sysNotice = sysNoticeDTO.getEntity(SysNotice.class);
|
73
|
// 设置为草稿
|
71
|
// 设置为草稿
|
74
|
- sysNotice.setTenantId(tenantId);
|
72
|
+ sysNotice.setTenantId(tenantId);
|
75
|
// 拼接需要发送的名单
|
73
|
// 拼接需要发送的名单
|
76
|
- //ReceiverType为空,getPointId有值,也抛异常
|
|
|
77
|
- //ReceiverType,getPointId同时为空,抛异常
|
|
|
78
|
- //ReceiverType为其他任何值都抛异常
|
|
|
79
|
- if(sysNoticeDTO.getReceiverType() == null){
|
|
|
80
|
- throw new EntityCreationException(ErrorMessage.SEND_DESTINATION_NOT_FOUND.name());
|
|
|
81
|
- }
|
|
|
82
|
- //ReceiverType为0,同时PointId为空,不让抛异常
|
|
|
83
|
- else if("0".equals(sysNoticeDTO.getReceiverType())){
|
|
|
84
|
-
|
|
|
85
|
- }else if (sysNoticeDTO.getPointId() == null){
|
74
|
+ // ReceiverType为空,getPointId有值,也抛异常
|
|
|
75
|
+ // ReceiverType,getPointId同时为空,抛异常
|
|
|
76
|
+ // ReceiverType为其他任何值都抛异常
|
|
|
77
|
+ if (sysNoticeDTO.getReceiverType() == null
|
|
|
78
|
+ || (!sysNoticeDTO.getReceiverType().equals(FastIotConstants.ReceiverType.ALL)
|
|
|
79
|
+ && sysNoticeDTO.getPointId() == null)) {
|
86
|
throw new EntityCreationException(ErrorMessage.SEND_DESTINATION_NOT_FOUND.name());
|
80
|
throw new EntityCreationException(ErrorMessage.SEND_DESTINATION_NOT_FOUND.name());
|
87
|
}
|
81
|
}
|
88
|
LambdaQueryWrapper<User> wrapper =
|
82
|
LambdaQueryWrapper<User> wrapper =
|
|
@@ -90,31 +84,22 @@ public class SysNoticeServiceImpl extends AbstractBaseService<SysNoticeMapper, S |
|
@@ -90,31 +84,22 @@ public class SysNoticeServiceImpl extends AbstractBaseService<SysNoticeMapper, S |
90
|
switch (sysNotice.getReceiverType()) {
|
84
|
switch (sysNotice.getReceiverType()) {
|
91
|
case FastIotConstants.ReceiverType.ALL:
|
85
|
case FastIotConstants.ReceiverType.ALL:
|
92
|
// 全部
|
86
|
// 全部
|
93
|
- sysNotice.setReceiverTypeIds(
|
87
|
+ sysNotice.setReceiverTypeIds(
|
94
|
userMapper.selectList(wrapper).stream()
|
88
|
userMapper.selectList(wrapper).stream()
|
95
|
.map(User::getId)
|
89
|
.map(User::getId)
|
96
|
.collect(Collectors.joining(",")));
|
90
|
.collect(Collectors.joining(",")));
|
97
|
break;
|
91
|
break;
|
98
|
case FastIotConstants.ReceiverType.ORGANIZATION:
|
92
|
case FastIotConstants.ReceiverType.ORGANIZATION:
|
99
|
// 组织内
|
93
|
// 组织内
|
100
|
- sysNotice.setReceiverTypeIds(
|
|
|
101
|
- userOrganizationMappingService
|
|
|
102
|
- .getUserIdByOrganizationIds(tenantId,sysNoticeDTO.getPointId().toArray(String[]::new))
|
|
|
103
|
- .stream()
|
|
|
104
|
- .collect(Collectors.joining(",")));
|
94
|
+ sysNotice.setReceiverTypeIds(
|
|
|
95
|
+ String.join(",", userOrganizationMappingService
|
|
|
96
|
+ .getUserIdByOrganizationIds(
|
|
|
97
|
+ tenantId, sysNoticeDTO.getPointId().toArray(String[]::new))));
|
105
|
break;
|
98
|
break;
|
106
|
- // case FastIotConstants.ReceiverType.DEPARTMENT:
|
|
|
107
|
- // // 部门
|
|
|
108
|
- // entity.setReceiverTypeIds(
|
|
|
109
|
- // userMapper.selectList(wrapper.in(User::getDeptId,
|
|
|
110
|
- // sysNoticeDTO.getPointId())).stream()
|
|
|
111
|
- // .map(User::getId)
|
|
|
112
|
- // .collect(Collectors.joining(",")));
|
|
|
113
|
- // break;
|
|
|
114
|
case FastIotConstants.ReceiverType.PERSONAL:
|
99
|
case FastIotConstants.ReceiverType.PERSONAL:
|
115
|
// 个人
|
100
|
// 个人
|
116
|
- sysNotice.setReceiverTypeIds(
|
|
|
117
|
- sysNoticeDTO.getPointId().stream().collect(Collectors.joining(",")));
|
101
|
+ sysNotice.setReceiverTypeIds(
|
|
|
102
|
+ String.join(",", sysNoticeDTO.getPointId()));
|
118
|
break;
|
103
|
break;
|
119
|
default:
|
104
|
default:
|
120
|
throw new EntityCreationException(ErrorMessage.SEND_DESTINATION_NOT_FOUND.name());
|
105
|
throw new EntityCreationException(ErrorMessage.SEND_DESTINATION_NOT_FOUND.name());
|
|
@@ -122,43 +107,41 @@ public class SysNoticeServiceImpl extends AbstractBaseService<SysNoticeMapper, S |
|
@@ -122,43 +107,41 @@ public class SysNoticeServiceImpl extends AbstractBaseService<SysNoticeMapper, S |
122
|
if (StringUtils.isEmpty(sysNotice.getReceiverTypeIds())) {
|
107
|
if (StringUtils.isEmpty(sysNotice.getReceiverTypeIds())) {
|
123
|
throw new EntityCreationException(ErrorMessage.SEND_DESTINATION_NOT_FOUND.name());
|
108
|
throw new EntityCreationException(ErrorMessage.SEND_DESTINATION_NOT_FOUND.name());
|
124
|
}
|
109
|
}
|
125
|
- //如果为空,则新增
|
110
|
+ // 如果为空,则新增
|
126
|
if (sysNotice.getId() == null) {
|
111
|
if (sysNotice.getId() == null) {
|
127
|
baseMapper.insert(sysNotice);
|
112
|
baseMapper.insert(sysNotice);
|
128
|
- sysNotice.copyToDTO(sysNoticeDTO);
|
|
|
129
|
- return sysNoticeDTO;
|
|
|
130
|
} else {
|
113
|
} else {
|
131
|
baseMapper.updateById(sysNotice);
|
114
|
baseMapper.updateById(sysNotice);
|
132
|
- sysNotice.copyToDTO(sysNoticeDTO);
|
|
|
133
|
- return sysNoticeDTO;
|
|
|
134
|
}
|
115
|
}
|
|
|
116
|
+ sysNotice.copyToDTO(sysNoticeDTO);
|
|
|
117
|
+ return sysNoticeDTO;
|
135
|
}
|
118
|
}
|
136
|
|
119
|
|
137
|
@Override
|
120
|
@Override
|
138
|
@Transactional
|
121
|
@Transactional
|
139
|
- public SysNoticeDTO send(SysNoticeDTO sysNoticeDTO,String tenantId,String currentUserId,String currentUserName) {
|
122
|
+ public SysNoticeDTO send(
|
|
|
123
|
+ SysNoticeDTO sysNoticeDTO, String tenantId, String currentUserId, String currentUserName) {
|
140
|
|
124
|
|
141
|
- SysNotice sysNotice =sysNoticeDTO.getEntity(SysNotice.class);
|
125
|
+ SysNotice sysNotice;
|
142
|
// 如果通知为空,则新增
|
126
|
// 如果通知为空,则新增
|
143
|
- sysNotice = save(sysNoticeDTO,tenantId).getEntity(SysNotice.class);
|
127
|
+ sysNotice = save(sysNoticeDTO, tenantId).getEntity(SysNotice.class);
|
144
|
sysNotice.setSenderName(currentUserName);
|
128
|
sysNotice.setSenderName(currentUserName);
|
145
|
sysNotice.setCreator(currentUserId);
|
129
|
sysNotice.setCreator(currentUserId);
|
146
|
sysNotice.setSenderDate(LocalDateTime.now());
|
130
|
sysNotice.setSenderDate(LocalDateTime.now());
|
147
|
- int update =
|
|
|
148
|
- baseMapper.update(
|
|
|
149
|
- sysNotice,
|
|
|
150
|
- new LambdaQueryWrapper<SysNotice>()
|
|
|
151
|
- .eq(SysNotice::getId, sysNoticeDTO.getId())
|
|
|
152
|
- .eq(SysNotice::getTenantId, tenantId));
|
131
|
+ int update =
|
|
|
132
|
+ baseMapper.update(
|
|
|
133
|
+ sysNotice,
|
|
|
134
|
+ new LambdaQueryWrapper<SysNotice>()
|
|
|
135
|
+ .eq(SysNotice::getId, sysNoticeDTO.getId())
|
|
|
136
|
+ .eq(SysNotice::getTenantId, tenantId));
|
153
|
|
137
|
|
154
|
if (update > 0) {
|
138
|
if (update > 0) {
|
155
|
// 发送消息
|
139
|
// 发送消息
|
156
|
- //TODO sysNotice.getReceiverTypeIds()有可能为null
|
|
|
157
|
String[] split = sysNotice.getReceiverTypeIds().split(",");
|
140
|
String[] split = sysNotice.getReceiverTypeIds().split(",");
|
158
|
List<SysNoticeUser> list = new ArrayList<>(split.length);
|
141
|
List<SysNoticeUser> list = new ArrayList<>(split.length);
|
159
|
- for (int i = 0; i < split.length; i++) {
|
142
|
+ for (String s : split) {
|
160
|
SysNoticeUser sysNoticeUser = new SysNoticeUser();
|
143
|
SysNoticeUser sysNoticeUser = new SysNoticeUser();
|
161
|
- sysNoticeUser.setReceiverId(split[i]);
|
144
|
+ sysNoticeUser.setReceiverId(s);
|
162
|
sysNoticeUser.setNoticeId(sysNotice.getId());
|
145
|
sysNoticeUser.setNoticeId(sysNotice.getId());
|
163
|
sysNoticeUser.setTenantId(sysNotice.getTenantId());
|
146
|
sysNoticeUser.setTenantId(sysNotice.getTenantId());
|
164
|
sysNoticeUser.setReadStatus(FastIotConstants.ReadState.UNREAD);
|
147
|
sysNoticeUser.setReadStatus(FastIotConstants.ReadState.UNREAD);
|