|
@@ -13,6 +13,7 @@ import org.dromara.common.core.utils.MapstructUtils;
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
+import org.dromara.common.redis.utils.RedisUtils;
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
import org.dromara.common.tenant.helper.TenantHelper;
|
|
|
import org.dromara.domain.houseInfo.HouseInfo;
|
|
@@ -203,13 +204,34 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean insertByBo(ResidentInfoBo bo) {
|
|
|
ResidentInfo add = MapstructUtils.convert(bo, ResidentInfo.class);
|
|
|
+ Long houseId = add.getHouseId();
|
|
|
+ String tenantId = add.getTenantId();
|
|
|
+ String residentPhone = add.getResidentPhone();
|
|
|
+ Long userId = LoginHelper.getUserId();
|
|
|
+ add.setUserId(userId);
|
|
|
//根据租户id houseId 手机号查询该居住人员是否存在
|
|
|
if (checkIdCardUnique(add)) {
|
|
|
- throw new UserException("resident.register.save.error", add.getResidentName());
|
|
|
+ ResidentInfoVo residentInfoVo = TenantHelper.ignore(() -> {
|
|
|
+ //如果存在可能是业主添加的家庭成员现在来注册
|
|
|
+ return baseMapper.selectVoOne(new LambdaQueryWrapper<ResidentInfo>()
|
|
|
+ .eq(houseId != null, ResidentInfo::getHouseId, houseId)
|
|
|
+ .eq(tenantId != null, ResidentInfo::getTenantId, tenantId)
|
|
|
+ .eq(StringUtils.isNotBlank(residentPhone), ResidentInfo::getResidentPhone, residentPhone));
|
|
|
+ });
|
|
|
+ if (residentInfoVo.getExamine().equals(FOR)) {
|
|
|
+ //待认证的居住人员数量,统计使用
|
|
|
+ if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
|
|
|
+ Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
|
|
|
+ RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Integer.parseInt(count.toString()) + 1);
|
|
|
+ } else {
|
|
|
+ RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, 1);
|
|
|
+ }
|
|
|
+ add.setExamine(ONE);
|
|
|
+ return baseMapper.updateById(add) > 0;
|
|
|
+ } else {
|
|
|
+ throw new UserException("resident.register.save.error", add.getResidentName());
|
|
|
+ }
|
|
|
}
|
|
|
- String tenantId = bo.getTenantId();
|
|
|
- Long userId = LoginHelper.getUserId();
|
|
|
- add.setUserId(userId);
|
|
|
String residentType = add.getResidentType();
|
|
|
String isHouseholder = add.getIsHouseholder();
|
|
|
//必须是业主和户主才能去新增房本信息
|
|
@@ -222,6 +244,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
+ //认证游客
|
|
|
if (THR.equals(residentType)) {
|
|
|
SysUserBo user = new SysUserBo();
|
|
|
user.setUserId(userId);
|
|
@@ -257,7 +280,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
if (useIds != null && !useIds.isEmpty()) {
|
|
|
if (!useIds.contains(userId))
|
|
|
userService.insertUserRole(user, false);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
userService.insertUserRole(user, false);
|
|
|
}
|
|
|
}
|
|
@@ -269,7 +292,42 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
userService.updateUserByIdNoTenantId(user);
|
|
|
}
|
|
|
}
|
|
|
+ //待认证的居住人员数量,统计使用
|
|
|
+ if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
|
|
|
+ Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
|
|
|
+ RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Integer.parseInt(count.toString()) + 1);
|
|
|
+ } else {
|
|
|
+ RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ boolean flag = baseMapper.insert(add) > 0;
|
|
|
+ if (flag) {
|
|
|
+ bo.setResidentId(add.getResidentId());
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 户主新增居住人员(只有户主能使用)
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Boolean addResidentInfoByHouseholder(ResidentInfoBo bo) {
|
|
|
+ ResidentInfo add = MapstructUtils.convert(bo, ResidentInfo.class);
|
|
|
+ //根据租户id houseId 手机号查询该居住人员是否存在
|
|
|
|
|
|
+ boolean exit = TenantHelper.ignore(() -> {
|
|
|
+ return
|
|
|
+ baseMapper.exists(new LambdaQueryWrapper<ResidentInfo>()
|
|
|
+ .eq(add.getHouseId() != null, ResidentInfo::getHouseId, add.getHouseId())
|
|
|
+ .eq(add.getTenantId() != null, ResidentInfo::getTenantId, add.getTenantId())
|
|
|
+ .eq(StringUtils.isNotBlank(add.getResidentPhone()), ResidentInfo::getResidentPhone, add.getResidentPhone())
|
|
|
+ .eq(StringUtils.isNotBlank(add.getResidentName()), ResidentInfo::getResidentName, add.getResidentName())
|
|
|
+ );
|
|
|
+ });
|
|
|
+ if (exit) {
|
|
|
+ throw new UserException("resident.register.save.error", add.getResidentName());
|
|
|
+ }
|
|
|
+ add.setExamine(FOR);
|
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
|
if (flag) {
|
|
|
bo.setResidentId(add.getResidentId());
|
|
@@ -340,7 +398,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
}
|
|
|
String userType = sysUserVo.getUserType();
|
|
|
if (!userType.contains(APP_USER.getUserType())) {
|
|
|
- userType = userType+ "," + APP_USER.getUserType();
|
|
|
+ userType = userType + "," + APP_USER.getUserType();
|
|
|
}
|
|
|
user.setUserType(userType);
|
|
|
userService.updateUserByIdNoTenantId(user);
|
|
@@ -392,7 +450,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
if (useIds != null && !useIds.isEmpty()) {
|
|
|
if (!useIds.contains(userId))
|
|
|
userService.insertUserRole(user, false);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
userService.insertUserRole(user, false);
|
|
|
}
|
|
|
}
|
|
@@ -412,16 +470,25 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
@Override
|
|
|
public Boolean updateByBo(ResidentInfoBo bo) {
|
|
|
ResidentInfo update = MapstructUtils.convert(bo, ResidentInfo.class);
|
|
|
- //如果未通过,改为待审核
|
|
|
- if (THR.equals(update.getExamine())){
|
|
|
- update.setExamine(ONE);
|
|
|
- }
|
|
|
validEntityBeforeSave(update);
|
|
|
/* //根据租户id houseId 手机号查询该居住人员是否存在
|
|
|
if (checkIdCardUnique(update)) {
|
|
|
throw new UserException("resident.register.save.error", update.getResidentName());
|
|
|
}*/
|
|
|
- update.setExamine(ONE);
|
|
|
+ String examine = update.getExamine();
|
|
|
+ //未通过的修改变成带审核
|
|
|
+ if (THR.equals(examine)) {
|
|
|
+ //待认证的居住人员数量,统计使用
|
|
|
+ if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
|
|
|
+ Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
|
|
|
+ RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Integer.parseInt(count.toString()) + 1);
|
|
|
+ } else {
|
|
|
+ RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!examine.equals(FOR)) {
|
|
|
+ update.setExamine(ONE);
|
|
|
+ }
|
|
|
String residentType = update.getResidentType();
|
|
|
String isHouseholder = update.getIsHouseholder();
|
|
|
//必须是业主和户主才能去修改房本信息
|
|
@@ -463,8 +530,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
baseMapper.exists(new LambdaQueryWrapper<ResidentInfo>()
|
|
|
.eq(entity.getHouseId() != null, ResidentInfo::getHouseId, entity.getHouseId())
|
|
|
.eq(entity.getTenantId() != null, ResidentInfo::getTenantId, entity.getTenantId())
|
|
|
- .eq(StringUtils.isNotBlank(entity.getResidentPhone()), ResidentInfo::getResidentPhone, entity.getResidentPhone())
|
|
|
- );
|
|
|
+ .eq(StringUtils.isNotBlank(entity.getResidentPhone()), ResidentInfo::getResidentPhone, entity.getResidentPhone()));
|
|
|
});
|
|
|
return exit;
|
|
|
}
|
|
@@ -515,7 +581,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
//查询该用户的用户类型
|
|
|
String userType = sysUserVo.getUserType();
|
|
|
if (!userType.contains(APP_USER.getUserType())) {
|
|
|
- userType = userType+ "," + APP_USER.getUserType();
|
|
|
+ userType = userType + "," + APP_USER.getUserType();
|
|
|
}
|
|
|
sysUser.setUserType(userType);
|
|
|
sysUser.setTenantId(tenantId);
|
|
@@ -558,7 +624,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
if (useIds != null && !useIds.isEmpty()) {
|
|
|
if (!useIds.contains(userId))
|
|
|
userService.insertUserRole(sysUser, false);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
userService.insertUserRole(sysUser, false);
|
|
|
}
|
|
|
}
|
|
@@ -574,6 +640,17 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
+ //居住人员待认证数量-1
|
|
|
+ if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
|
|
|
+ Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
|
|
|
+ RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Math.max(Integer.parseInt(count.toString()), 0));
|
|
|
+ }
|
|
|
+ } else if (THR.equals(residentInfo.getExamine())) {
|
|
|
+ //居住人员待认证数量-1
|
|
|
+ if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
|
|
|
+ Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
|
|
|
+ RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Math.max(Integer.parseInt(count.toString()), 0));
|
|
|
+ }
|
|
|
}
|
|
|
return baseMapper.updateById(residentInfo) > 0;
|
|
|
}
|
|
@@ -648,16 +725,16 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
sysUser.setIsAuthentication(THR);
|
|
|
sysUser.setTenantId(list.get(0).getTenantId());
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//一个居住人员都没有,说明该用户一个认证信息都没有提交
|
|
|
sysUser.setIsAuthentication(ONE);
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//说明还有认证过的员工信息
|
|
|
List<ResidentInfo> list = residentInfoList.stream().filter(e -> e.getExamine().equals(TWO)).toList();
|
|
|
if (!list.isEmpty()) {
|
|
|
sysUser.setTenantId(list.get(0).getTenantId());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//如果一个居住人员通过的都没有,去查询是否有员工认证通过的
|
|
|
List<StaffManageVo> infoByUserId = staffManageMapper.getInfoListByUserId(userId);
|
|
|
if (infoByUserId != null && !infoByUserId.isEmpty()) {
|
|
@@ -666,7 +743,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
sysUser.setIsAuthentication(THR);
|
|
|
sysUser.setTenantId(staffManageVoList.get(0).getTenantId());
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//一个居住人员都没有,说明该用户一个认证信息都没有提交
|
|
|
sysUser.setIsAuthentication(ONE);
|
|
|
}
|
|
@@ -676,6 +753,15 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
TenantHelper.ignore(() -> {
|
|
|
sysUserMapper.updateById(sysUser);
|
|
|
});
|
|
|
+ //判断是否是待认证
|
|
|
+ String examine = bo.getExamine();
|
|
|
+ if (ONE.equals(examine)) {
|
|
|
+ //居住人员待认证数量-1
|
|
|
+ if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
|
|
|
+ Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
|
|
|
+ RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Math.max(Integer.parseInt(count.toString()), 0));
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
|
|
|
}
|
|
@@ -683,24 +769,20 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 管理员修改住户管理(认证通过后)
|
|
|
+ * 管理员修改住户管理
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean editAuthentication(ResidentInfoBo bo) {
|
|
|
ResidentInfo residentInfo = MapstructUtils.convert(bo, ResidentInfo.class);
|
|
|
- //如果未通过,改为待审核
|
|
|
- if (THR.equals(residentInfo.getExamine())){
|
|
|
- residentInfo.setExamine(ONE);
|
|
|
- }
|
|
|
//判断是否修改了租户
|
|
|
- ResidentInfoVo residentInfoVo = baseMapper.selectVoById(residentInfo.getResidentId());
|
|
|
+ //ResidentInfoVo residentInfoVo = baseMapper.selectVoById(residentInfo.getResidentId());
|
|
|
//String tenantIdOld = residentInfoVo.getTenantId();
|
|
|
- String tenantIdNew = residentInfo.getTenantId();
|
|
|
- Long userId = residentInfoVo.getUserId();
|
|
|
+ //String tenantIdNew = residentInfo.getTenantId();
|
|
|
+ Long userId = residentInfo.getUserId();
|
|
|
SysUserBo sysUser = new SysUserBo();
|
|
|
sysUser.setUserId(userId);
|
|
|
- sysUser.setTenantId(tenantIdNew);
|
|
|
+ //sysUser.setTenantId(tenantIdNew);
|
|
|
/* if (!tenantIdOld.equals(tenantIdNew)) {
|
|
|
sysUserTenantMapper.update(new LambdaUpdateWrapper<SysUserTenant>()
|
|
|
.set(SysUserTenant::getTenantId, tenantIdNew)
|