|
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
4
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
4
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
5
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
5
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
6
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
6
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
|
|
7
|
+import lombok.RequiredArgsConstructor;
|
7
|
import org.apache.commons.lang3.StringUtils;
|
8
|
import org.apache.commons.lang3.StringUtils;
|
8
|
import org.springframework.stereotype.Service;
|
9
|
import org.springframework.stereotype.Service;
|
9
|
import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
|
10
|
import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
|
|
@@ -14,6 +15,7 @@ import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; |
|
@@ -14,6 +15,7 @@ import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; |
14
|
import org.thingsboard.server.dao.yunteng.entities.SysNoticeUser;
|
15
|
import org.thingsboard.server.dao.yunteng.entities.SysNoticeUser;
|
15
|
import org.thingsboard.server.dao.yunteng.entities.User;
|
16
|
import org.thingsboard.server.dao.yunteng.entities.User;
|
16
|
import org.thingsboard.server.dao.yunteng.mapper.SysNoticeUserMapper;
|
17
|
import org.thingsboard.server.dao.yunteng.mapper.SysNoticeUserMapper;
|
|
|
18
|
+import org.thingsboard.server.dao.yunteng.mapper.UserMapper;
|
17
|
import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
|
19
|
import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
|
18
|
import org.thingsboard.server.dao.yunteng.service.SysNoticeUserService;
|
20
|
import org.thingsboard.server.dao.yunteng.service.SysNoticeUserService;
|
19
|
|
21
|
|
|
@@ -29,93 +31,101 @@ import java.util.stream.Collectors; |
|
@@ -29,93 +31,101 @@ import java.util.stream.Collectors; |
29
|
* @date: 2021/12/2-20:43
|
31
|
* @date: 2021/12/2-20:43
|
30
|
*/
|
32
|
*/
|
31
|
@Service
|
33
|
@Service
|
|
|
34
|
+@RequiredArgsConstructor
|
32
|
public class SysNoticeUserServiceImpl
|
35
|
public class SysNoticeUserServiceImpl
|
33
|
- extends AbstractBaseService<SysNoticeUserMapper, SysNoticeUser>
|
|
|
34
|
- implements SysNoticeUserService {
|
36
|
+ extends AbstractBaseService<SysNoticeUserMapper, SysNoticeUser>
|
|
|
37
|
+ implements SysNoticeUserService {
|
|
|
38
|
+ private final UserMapper userMapper;
|
35
|
|
39
|
|
36
|
- @Override
|
|
|
37
|
- public YtPageData<SysNoticeUserDTO> page(Map<String, Object> queryMap) {
|
|
|
38
|
- return getPage(queryMap);
|
|
|
39
|
- }
|
40
|
+ @Override
|
|
|
41
|
+ public YtPageData<SysNoticeUserDTO> page(Map<String, Object> queryMap) {
|
|
|
42
|
+ return getPage(queryMap);
|
|
|
43
|
+ }
|
40
|
|
44
|
|
41
|
- @Override
|
|
|
42
|
- public YtPageData<SysNoticeUserDTO> pageByNoticeId(Map<String, Object> queryMap) {
|
|
|
43
|
- return getPage(queryMap);
|
|
|
44
|
- }
|
45
|
+ @Override
|
|
|
46
|
+ public YtPageData<SysNoticeUserDTO> pageByNoticeId(Map<String, Object> queryMap) {
|
|
|
47
|
+ return getPage(queryMap);
|
|
|
48
|
+ }
|
45
|
|
49
|
|
46
|
- @Override
|
|
|
47
|
- public YtPageData<SysNoticeUserDTO> read(Map<String, Object> queryMap, String currentUserId) {
|
|
|
48
|
- queryMap.put("creator", currentUserId);
|
|
|
49
|
- return getPage(queryMap);
|
|
|
50
|
- }
|
50
|
+ @Override
|
|
|
51
|
+ public YtPageData<SysNoticeUserDTO> read(Map<String, Object> queryMap, String currentUserId) {
|
|
|
52
|
+ queryMap.put("creator", currentUserId);
|
|
|
53
|
+ return getPage(queryMap);
|
|
|
54
|
+ }
|
51
|
|
55
|
|
52
|
- @Override
|
|
|
53
|
- public SysNoticeUserDTO get(String id, String tenantId) {
|
|
|
54
|
- SysNoticeUser sysNoticeUser = baseMapper.get(id, tenantId).getEntity(SysNoticeUser.class);
|
|
|
55
|
- if (!FastIotConstants.ReadState.READ.equals(sysNoticeUser.getReadStatus())
|
|
|
56
|
- || sysNoticeUser.getReadDate() == null) {
|
|
|
57
|
- // 设置已读
|
|
|
58
|
- sysNoticeUser.setReadStatus(FastIotConstants.ReadState.READ);
|
|
|
59
|
- sysNoticeUser.setReadDate(LocalDateTime.now());
|
|
|
60
|
- baseMapper.update(
|
|
|
61
|
- null,
|
|
|
62
|
- new LambdaUpdateWrapper<SysNoticeUser>()
|
|
|
63
|
- .eq(SysNoticeUser::getId, sysNoticeUser.getId())
|
|
|
64
|
- .set(SysNoticeUser::getReadStatus, sysNoticeUser.getReadStatus())
|
|
|
65
|
- .set(SysNoticeUser::getReadDate, sysNoticeUser.getReadDate()));
|
56
|
+ @Override
|
|
|
57
|
+ public SysNoticeUserDTO get(String id, String tenantId) {
|
|
|
58
|
+ SysNoticeUser sysNoticeUser = baseMapper.get(id, tenantId).getEntity(SysNoticeUser.class);
|
|
|
59
|
+ if (!FastIotConstants.ReadState.READ.equals(sysNoticeUser.getReadStatus())
|
|
|
60
|
+ || sysNoticeUser.getReadDate() == null) {
|
|
|
61
|
+ // 设置已读
|
|
|
62
|
+ sysNoticeUser.setReadStatus(FastIotConstants.ReadState.READ);
|
|
|
63
|
+ sysNoticeUser.setReadDate(LocalDateTime.now());
|
|
|
64
|
+ baseMapper.update(
|
|
|
65
|
+ null,
|
|
|
66
|
+ new LambdaUpdateWrapper<SysNoticeUser>()
|
|
|
67
|
+ .eq(SysNoticeUser::getId, sysNoticeUser.getId())
|
|
|
68
|
+ .set(SysNoticeUser::getReadStatus, sysNoticeUser.getReadStatus())
|
|
|
69
|
+ .set(SysNoticeUser::getReadDate, sysNoticeUser.getReadDate()));
|
|
|
70
|
+ }
|
|
|
71
|
+ return sysNoticeUser.getDTO(SysNoticeUserDTO.class);
|
66
|
}
|
72
|
}
|
67
|
- return sysNoticeUser.getDTO(SysNoticeUserDTO.class);
|
|
|
68
|
- }
|
|
|
69
|
|
73
|
|
70
|
- @Override
|
|
|
71
|
- public void saveSysNoticeUser(
|
|
|
72
|
- List<String> userIds, String tenantId, String noticeId, String status) {
|
|
|
73
|
- List<SysNoticeUser> sysNoticeUserList = new ArrayList<>();
|
|
|
74
|
- userIds.forEach(
|
|
|
75
|
- userId -> {
|
|
|
76
|
- SysNoticeUser sysNoticeUser = new SysNoticeUser();
|
|
|
77
|
- sysNoticeUser.setNoticeId(noticeId);
|
|
|
78
|
- sysNoticeUser.setStatus(status);
|
|
|
79
|
- sysNoticeUser.setTenantId(tenantId);
|
|
|
80
|
- sysNoticeUser.setReadStatus(FastIotConstants.ReadState.UNREAD);
|
|
|
81
|
- sysNoticeUser.setReceiverId(userId);
|
|
|
82
|
- sysNoticeUserList.add(sysNoticeUser);
|
|
|
83
|
- });
|
|
|
84
|
- insertBatch(sysNoticeUserList, sysNoticeUserList.size());
|
|
|
85
|
- }
|
74
|
+ @Override
|
|
|
75
|
+ public void saveSysNoticeUser(
|
|
|
76
|
+ List<String> userIds, String tenantId, String noticeId, String status) {
|
|
|
77
|
+ List<User> userList = userMapper
|
|
|
78
|
+ .selectList(
|
|
|
79
|
+ new LambdaQueryWrapper<User>().in(User::getId, userIds))
|
|
|
80
|
+ .stream()
|
|
|
81
|
+ .collect(Collectors.toList());
|
|
|
82
|
+ List<SysNoticeUser> sysNoticeUserList = new ArrayList<>();
|
|
|
83
|
+ userList.forEach(
|
|
|
84
|
+ user -> {
|
|
|
85
|
+ SysNoticeUser sysNoticeUser = new SysNoticeUser();
|
|
|
86
|
+ sysNoticeUser.setNoticeId(noticeId);
|
|
|
87
|
+ sysNoticeUser.setStatus(status);
|
|
|
88
|
+ sysNoticeUser.setTenantId(tenantId);
|
|
|
89
|
+ sysNoticeUser.setReadStatus(FastIotConstants.ReadState.UNREAD);
|
|
|
90
|
+ sysNoticeUser.setReceiverId(user.getId());
|
|
|
91
|
+ sysNoticeUser.setReceiverName(user.getRealName());
|
|
|
92
|
+ sysNoticeUserList.add(sysNoticeUser);
|
|
|
93
|
+ });
|
|
|
94
|
+ insertBatch(sysNoticeUserList, sysNoticeUserList.size());
|
|
|
95
|
+ }
|
86
|
|
96
|
|
87
|
- @Override
|
|
|
88
|
- public List<String> getSysNoticeUserIdsByNoticeId(String noticeId) {
|
|
|
89
|
- if (StringUtils.isAllEmpty(noticeId)) {
|
|
|
90
|
- throw new YtDataValidationException(ErrorMessage.INTERNAL_ERROR.name());
|
97
|
+ @Override
|
|
|
98
|
+ public List<String> getSysNoticeUserIdsByNoticeId(String noticeId) {
|
|
|
99
|
+ if (StringUtils.isAllEmpty(noticeId)) {
|
|
|
100
|
+ throw new YtDataValidationException(ErrorMessage.INTERNAL_ERROR.name());
|
|
|
101
|
+ }
|
|
|
102
|
+ return baseMapper
|
|
|
103
|
+ .selectList(
|
|
|
104
|
+ new LambdaQueryWrapper<SysNoticeUser>().eq(SysNoticeUser::getNoticeId, noticeId))
|
|
|
105
|
+ .stream()
|
|
|
106
|
+ .map(SysNoticeUser::getId)
|
|
|
107
|
+ .collect(Collectors.toList());
|
91
|
}
|
108
|
}
|
92
|
- return baseMapper
|
|
|
93
|
- .selectList(
|
|
|
94
|
- new LambdaQueryWrapper<SysNoticeUser>().eq(SysNoticeUser::getNoticeId, noticeId))
|
|
|
95
|
- .stream()
|
|
|
96
|
- .map(SysNoticeUser::getId)
|
|
|
97
|
- .collect(Collectors.toList());
|
|
|
98
|
- }
|
|
|
99
|
|
109
|
|
100
|
- @Override
|
|
|
101
|
- public boolean updateSysNoticeUsersStatusByNoticeId(String id, String status) {
|
|
|
102
|
- if (StringUtils.isAllEmpty(id) || StringUtils.isAllEmpty(status)) {
|
|
|
103
|
- throw new YtDataValidationException(ErrorMessage.INTERNAL_ERROR.name());
|
110
|
+ @Override
|
|
|
111
|
+ public boolean updateSysNoticeUsersStatusByNoticeId(String id, String status) {
|
|
|
112
|
+ if (StringUtils.isAllEmpty(id) || StringUtils.isAllEmpty(status)) {
|
|
|
113
|
+ throw new YtDataValidationException(ErrorMessage.INTERNAL_ERROR.name());
|
|
|
114
|
+ }
|
|
|
115
|
+ return baseMapper.updateSysNoticeUsersStatusByNoticeId(id, status);
|
104
|
}
|
116
|
}
|
105
|
- return baseMapper.updateSysNoticeUsersStatusByNoticeId(id, status);
|
|
|
106
|
- }
|
|
|
107
|
|
117
|
|
108
|
- @Override
|
|
|
109
|
- public boolean deleteNoticUserByNoticeId(List<String> noticeId) {
|
118
|
+ @Override
|
|
|
119
|
+ public boolean deleteNoticUserByNoticeId(List<String> noticeId) {
|
110
|
|
120
|
|
111
|
- return baseMapper.delete(
|
|
|
112
|
- new LambdaQueryWrapper<SysNoticeUser>().in(SysNoticeUser::getNoticeId, noticeId))
|
|
|
113
|
- > 0;
|
|
|
114
|
- }
|
121
|
+ return baseMapper.delete(
|
|
|
122
|
+ new LambdaQueryWrapper<SysNoticeUser>().in(SysNoticeUser::getNoticeId, noticeId))
|
|
|
123
|
+ > 0;
|
|
|
124
|
+ }
|
115
|
|
125
|
|
116
|
- private YtPageData<SysNoticeUserDTO> getPage(Map<String, Object> queryMap) {
|
|
|
117
|
- IPage<SysNoticeUser> page = getPage(queryMap, FastIotConstants.DefaultOrder.CREATE_TIME, false);
|
|
|
118
|
- IPage<SysNoticeUserDTO> pageDto = baseMapper.page(page, queryMap);
|
|
|
119
|
- return getPageData(pageDto, SysNoticeUserDTO.class);
|
|
|
120
|
- }
|
126
|
+ private YtPageData<SysNoticeUserDTO> getPage(Map<String, Object> queryMap) {
|
|
|
127
|
+ IPage<SysNoticeUser> page = getPage(queryMap, FastIotConstants.DefaultOrder.CREATE_TIME, false);
|
|
|
128
|
+ IPage<SysNoticeUserDTO> pageDto = baseMapper.page(page, queryMap);
|
|
|
129
|
+ return getPageData(pageDto, SysNoticeUserDTO.class);
|
|
|
130
|
+ }
|
121
|
} |
131
|
} |