...
|
...
|
@@ -118,7 +118,8 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> |
118
|
118
|
userRoleMapper.insert(userRole);
|
119
|
119
|
}
|
120
|
120
|
// 绑定用户和组织的关系
|
121
|
|
- organizationService.bindUserToOrganization(tenantId, user.getId(), userDTO.getOrganizationIds());
|
|
121
|
+ organizationService.bindUserToOrganization(
|
|
122
|
+ tenantId, user.getId(), userDTO.getOrganizationIds());
|
122
|
123
|
user.copyToDTO(userDTO, PASSWORD, ACTIVATE_TOKEN);
|
123
|
124
|
return userDTO;
|
124
|
125
|
}
|
...
|
...
|
@@ -148,6 +149,33 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> |
148
|
149
|
&& StringUtils.isAllBlank(userDTO.getPhoneNumber())) {
|
149
|
150
|
throw new YtDataValidationException(ErrorMessage.PHONE_NUMBER_OR_EMAIL_REQUIRED.getMessage());
|
150
|
151
|
}
|
|
152
|
+ boolean needCheck = false;
|
|
153
|
+ if (null != userDTO.getId()) {
|
|
154
|
+ User user = baseMapper.selectById(userDTO.getId());
|
|
155
|
+ if (!user.getPhoneNumber().equals(userDTO.getPhoneNumber())
|
|
156
|
+ || !user.getEmail().equals(userDTO.getEmail())) {
|
|
157
|
+ needCheck = true;
|
|
158
|
+ }
|
|
159
|
+ }
|
|
160
|
+ if (needCheck || null == userDTO.getId()) {
|
|
161
|
+ LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
|
|
162
|
+ if (null == userDTO.getId()) {
|
|
163
|
+ queryWrapper.eq(User::getPhoneNumber, userDTO.getPhoneNumber());
|
|
164
|
+ queryWrapper.or().eq(User::getEmail, userDTO.getEmail());
|
|
165
|
+ }
|
|
166
|
+ if (needCheck) {
|
|
167
|
+ queryWrapper.ne(User::getId, userDTO.getId());
|
|
168
|
+ queryWrapper.and(
|
|
169
|
+ (userQueryWrapper -> {
|
|
170
|
+ userQueryWrapper.eq(User::getPhoneNumber, userDTO.getPhoneNumber());
|
|
171
|
+ userQueryWrapper.or().eq(User::getEmail, userDTO.getEmail());
|
|
172
|
+ }));
|
|
173
|
+ }
|
|
174
|
+ List<User> existPhoneOrEmail = baseMapper.selectList(queryWrapper);
|
|
175
|
+ if (null != existPhoneOrEmail && existPhoneOrEmail.size() >0) {
|
|
176
|
+ throw new YtDataValidationException(ErrorMessage.PHONE_OR_EMAIL_HAS_REGISTER.getMessage());
|
|
177
|
+ }
|
|
178
|
+ }
|
151
|
179
|
}
|
152
|
180
|
|
153
|
181
|
@Override
|
...
|
...
|
@@ -245,14 +273,14 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> |
245
|
273
|
user.setEmail(userDTO.getEmail());
|
246
|
274
|
user.setAccountExpireTime(userDTO.getAccountExpireTime());
|
247
|
275
|
user.setRemark(userDTO.getRemark());
|
248
|
|
- if (userDTO.getPassword() !=null && !userDTO.getPassword().equals("******")) {
|
|
276
|
+ if (userDTO.getPassword() != null && !userDTO.getPassword().equals("******")) {
|
249
|
277
|
user.setPassword(passwordEncoder.encode(userDTO.getPassword()));
|
250
|
278
|
}
|
251
|
279
|
baseMapper.updateById(user);
|
252
|
|
- if(null != userDTO.getRoleIds()){
|
|
280
|
+ if (null != userDTO.getRoleIds()) {
|
253
|
281
|
deleteAndAddUserRole(user.getId(), Arrays.asList(userDTO.getRoleIds()));
|
254
|
282
|
userOrganizationMappingService.addOrUpdateUserOrganizationMapping(
|
255
|
|
- user.getId(), Arrays.asList(userDTO.getOrganizationIds()), true);
|
|
283
|
+ user.getId(), Arrays.asList(userDTO.getOrganizationIds()), true);
|
256
|
284
|
}
|
257
|
285
|
user.copyToDTO(userDTO, PASSWORD, ACTIVATE_TOKEN);
|
258
|
286
|
return userDTO;
|
...
|
...
|
@@ -260,33 +288,32 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> |
260
|
288
|
|
261
|
289
|
@Override
|
262
|
290
|
public YtPageData<UserDTO> page(
|
263
|
|
- Map<String, Object> queryMap,
|
264
|
|
- boolean isPtSysadmin,
|
265
|
|
- boolean isTenantAdmin) {
|
|
291
|
+ Map<String, Object> queryMap, boolean isPtSysadmin, boolean isTenantAdmin) {
|
266
|
292
|
String tenantId = (String) queryMap.get("tenantId");
|
267
|
293
|
IPage<UserDTO> userPage = null;
|
268
|
294
|
IPage<User> userIPage = getPage(queryMap, "create_time", false);
|
269
|
|
- String organizationId = queryMap.get("organizationId") != null ? (String) queryMap.get("organizationId") : null;
|
|
295
|
+ String organizationId =
|
|
296
|
+ queryMap.get("organizationId") != null ? (String) queryMap.get("organizationId") : null;
|
270
|
297
|
List<String> userIds = null;
|
271
|
|
- if(null != organizationId){
|
272
|
|
- userIds = userOrganizationMappingService.getUserIdByOrganizationIds(tenantId,organizationId);
|
273
|
|
- queryMap.put("userIds",userIds);
|
|
298
|
+ if (null != organizationId) {
|
|
299
|
+ userIds = userOrganizationMappingService.getUserIdByOrganizationIds(tenantId, organizationId);
|
|
300
|
+ queryMap.put("userIds", userIds);
|
274
|
301
|
}
|
275
|
302
|
if (isPtSysadmin) {
|
276
|
303
|
String roleType = (String) queryMap.get("roleType");
|
277
|
304
|
if (!StringUtils.isEmpty(roleType)) {
|
278
|
305
|
userPage = baseMapper.getTenantAdminPage(userIPage, tenantId);
|
279
|
306
|
} else {
|
280
|
|
- if(null != organizationId && (userIds.size()==FastIotConstants.MagicNumber.ZERO)){
|
|
307
|
+ if (null != organizationId && (userIds.size() == FastIotConstants.MagicNumber.ZERO)) {
|
281
|
308
|
userPage = new Page<>();
|
282
|
|
- }else{
|
|
309
|
+ } else {
|
283
|
310
|
userPage = baseMapper.getUserPage(userIPage, queryMap);
|
284
|
311
|
}
|
285
|
312
|
}
|
286
|
313
|
} else if (isTenantAdmin) {
|
287
|
|
- if(null != organizationId && (userIds.size()==FastIotConstants.MagicNumber.ZERO)){
|
|
314
|
+ if (null != organizationId && (userIds.size() == FastIotConstants.MagicNumber.ZERO)) {
|
288
|
315
|
userPage = new Page<>();
|
289
|
|
- }else{
|
|
316
|
+ } else {
|
290
|
317
|
userPage = baseMapper.getUserPage(userIPage, queryMap);
|
291
|
318
|
}
|
292
|
319
|
}
|
...
|
...
|
@@ -475,11 +502,11 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> |
475
|
502
|
|
476
|
503
|
@Override
|
477
|
504
|
public String findUserCustomerIdById(String id) {
|
478
|
|
- if(StringUtils.isAllEmpty(id)){
|
|
505
|
+ if (StringUtils.isAllEmpty(id)) {
|
479
|
506
|
throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
|
480
|
507
|
}
|
481
|
508
|
String customerId = baseMapper.findUserCustomerIdById(id);
|
482
|
|
- if(null == customerId){
|
|
509
|
+ if (null == customerId) {
|
483
|
510
|
throw new YtDataValidationException(ErrorMessage.USER_NOT_EXISTS.getMessage());
|
484
|
511
|
}
|
485
|
512
|
return customerId;
|
...
|
...
|
@@ -498,14 +525,16 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> |
498
|
525
|
}
|
499
|
526
|
|
500
|
527
|
@Override
|
501
|
|
- public List<UserDTO> getMyCustomers(String organizationId,String tenantId, boolean isTenantAdmin) {
|
502
|
|
- if(StringUtils.isEmpty(organizationId)){
|
|
528
|
+ public List<UserDTO> getMyCustomers(
|
|
529
|
+ String organizationId, String tenantId, boolean isTenantAdmin) {
|
|
530
|
+ if (StringUtils.isEmpty(organizationId)) {
|
503
|
531
|
throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
|
504
|
532
|
}
|
505
|
|
- if(isTenantAdmin){
|
506
|
|
- List<String> userList = userOrganizationMappingService.getUserIdsByOrganizationId(organizationId);
|
507
|
|
- if(null != userList && userList.size()>FastIotConstants.MagicNumber.ZERO){
|
508
|
|
- return baseMapper.getMyCustomers(tenantId, EntityId.NULL_UUID.toString(),userList);
|
|
533
|
+ if (isTenantAdmin) {
|
|
534
|
+ List<String> userList =
|
|
535
|
+ userOrganizationMappingService.getUserIdsByOrganizationId(organizationId);
|
|
536
|
+ if (null != userList && userList.size() > FastIotConstants.MagicNumber.ZERO) {
|
|
537
|
+ return baseMapper.getMyCustomers(tenantId, EntityId.NULL_UUID.toString(), userList);
|
509
|
538
|
}
|
510
|
539
|
}
|
511
|
540
|
return null;
|
...
|
...
|
@@ -513,16 +542,17 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> |
513
|
542
|
|
514
|
543
|
@Override
|
515
|
544
|
@Async
|
516
|
|
- public CompletableFuture<TsValue> findUsersAsyncByTs(LocalDateTime startTs, LocalDateTime endTs, long ts) {
|
|
545
|
+ public CompletableFuture<TsValue> findUsersAsyncByTs(
|
|
546
|
+ LocalDateTime startTs, LocalDateTime endTs, long ts) {
|
517
|
547
|
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
518
|
548
|
String startTime = df.format(startTs);
|
519
|
549
|
String endTime = df.format(endTs);
|
520
|
|
- List<UserDTO> list = baseMapper.findUsersAsyncByTs(startTime,endTime);
|
521
|
|
- return CompletableFuture.supplyAsync(()->new TsValue(ts,String.valueOf(list.size())));
|
|
550
|
+ List<UserDTO> list = baseMapper.findUsersAsyncByTs(startTime, endTime);
|
|
551
|
+ return CompletableFuture.supplyAsync(() -> new TsValue(ts, String.valueOf(list.size())));
|
522
|
552
|
}
|
523
|
553
|
|
524
|
554
|
@Override
|
525
|
|
- public UserDTO accountExist(String userName,String tenantId) {
|
|
555
|
+ public UserDTO accountExist(String userName, String tenantId) {
|
526
|
556
|
if (StringUtils.isEmpty(userName)) {
|
527
|
557
|
throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
|
528
|
558
|
}
|
...
|
...
|
@@ -534,17 +564,16 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> |
534
|
564
|
|
535
|
565
|
/**
|
536
|
566
|
* 判断手机号是否重复
|
537
|
|
- * @param phoneNumber
|
538
|
|
- * @param tenantId
|
|
567
|
+ *
|
|
568
|
+ * @param phoneNumber 手机号
|
539
|
569
|
* @return
|
540
|
570
|
*/
|
541
|
571
|
@Override
|
542
|
|
- public UserDTO findUserByPhoneNumber(String phoneNumber, String tenantId) {
|
|
572
|
+ public UserDTO findUserByPhoneNumber(String phoneNumber) {
|
543
|
573
|
if (StringUtils.isEmpty(phoneNumber)) {
|
544
|
574
|
throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
|
545
|
575
|
}
|
546
|
576
|
UserDTO userDTO = new UserDTO();
|
547
|
|
- userDTO.setTenantId(tenantId);
|
548
|
577
|
userDTO.setPhoneNumber(phoneNumber);
|
549
|
578
|
return baseMapper.findUserInfoByPhoneNumber(userDTO);
|
550
|
579
|
}
|
...
|
...
|
|