|
|
@@ -16,16 +16,12 @@
|
|
|
*/
|
|
|
package org.springblade.estate.service.impl;
|
|
|
|
|
|
-import cn.hutool.core.date.DateTime;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springblade.common.constant.CommonConstant;
|
|
|
import org.springblade.common.constant.OperationConstant;
|
|
|
import org.springblade.community.entity.Room;
|
|
|
-import org.springblade.community.feign.IAgencyClient;
|
|
|
import org.springblade.community.feign.ICommunityClient;
|
|
|
import org.springblade.community.feign.IRoomClient;
|
|
|
-import org.springblade.core.secure.BladeUser;
|
|
|
-import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.core.tool.utils.StringUtil;
|
|
|
@@ -47,11 +43,11 @@ import org.springblade.person.feign.IHouseUserClient;
|
|
|
import org.springblade.person.feign.IMemberClient;
|
|
|
import org.springblade.system.expand.entity.Conf;
|
|
|
import org.springblade.system.expand.feign.IConfClient;
|
|
|
+import org.springblade.system.feign.IDictBizClient;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.util.Assert;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -72,11 +68,12 @@ public class ApplyUserServiceImpl extends BaseServiceImpl<ApplyUserMapper, Apply
|
|
|
private final IDoorDeviceClient doorDeviceClient;
|
|
|
private final IRoomClient roomClient;
|
|
|
private final IUserAccessPermissionsService userAccessPermissionsService;
|
|
|
+ private final IDictBizClient dictBizClient;
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
public ApplyUserServiceImpl(IMemberClient memberClient, IHouseUserClient houseUserClient
|
|
|
- , ICommunityClient communityClient, IConfClient confClient, IDoorDeviceClient doorDeviceClient, IRoomClient roomClient, IUserAccessPermissionsService userAccessPermissionsService) {
|
|
|
+ , ICommunityClient communityClient, IConfClient confClient, IDoorDeviceClient doorDeviceClient, IRoomClient roomClient, IUserAccessPermissionsService userAccessPermissionsService, IDictBizClient dictBizClient) {
|
|
|
this.memberClient = memberClient;
|
|
|
this.houseUserClient = houseUserClient;
|
|
|
this.communityClient = communityClient;
|
|
|
@@ -84,6 +81,7 @@ public class ApplyUserServiceImpl extends BaseServiceImpl<ApplyUserMapper, Apply
|
|
|
this.doorDeviceClient = doorDeviceClient;
|
|
|
this.roomClient = roomClient;
|
|
|
this.userAccessPermissionsService = userAccessPermissionsService;
|
|
|
+ this.dictBizClient = dictBizClient;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -208,7 +206,8 @@ public class ApplyUserServiceImpl extends BaseServiceImpl<ApplyUserMapper, Apply
|
|
|
//往user增加faceEnable并设置为0
|
|
|
// user.setFaceEnable(OperationConstant.ZERO);
|
|
|
//新增一个user
|
|
|
- houseUser = this.houseUserClient.applySave(houseUser);
|
|
|
+ R<HouseUser> houseUserR = this.houseUserClient.applySave(houseUser);
|
|
|
+ houseUser = houseUserR.getData();
|
|
|
applyUser.setUserId(houseUser.getId());
|
|
|
result = this.updateById(applyUser);
|
|
|
//新增人数
|
|
|
@@ -281,140 +280,101 @@ public class ApplyUserServiceImpl extends BaseServiceImpl<ApplyUserMapper, Apply
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean updateCheckState(ApplyUser condition) {
|
|
|
- Boolean result = false;
|
|
|
- ApplyUser applyUser = this.getById(condition.getId());
|
|
|
-
|
|
|
+ public R appUpdateAuditStatus(ApplyUserDTO applyUserDTO) {
|
|
|
+ ApplyUser applyUser = this.getById(applyUserDTO.getId());
|
|
|
if (applyUser.getAuditStatus() == OperationConstant.ZERO) {
|
|
|
//更新记录状态
|
|
|
- condition.setFaceUrl(confClient.removePrefix(condition.getFaceUrl()));
|
|
|
- condition.setCheckDate(new Date());
|
|
|
- result = this.updateById(condition);
|
|
|
- //更新会员状态--认证类型的记录才需要修改
|
|
|
- Member member = new Member();
|
|
|
- member.setId(applyUser.getMemberId());
|
|
|
- //当操作是审核通过操作
|
|
|
- if (result && condition.getAuditStatus() == 1) {
|
|
|
- //认证状态:{ 0:未认证,1:待审核,2:已认证 }
|
|
|
- member.setState(OperationConstant.TWO);
|
|
|
- HouseUser oldUser = null;
|
|
|
-
|
|
|
- if (applyUser.getUserId() != null) {//编辑
|
|
|
- HouseUser searchUser = new HouseUser();
|
|
|
- searchUser.setId(applyUser.getUserId());
|
|
|
- oldUser = this.houseUserClient.detail(searchUser);
|
|
|
- }
|
|
|
-
|
|
|
- HouseUser houseUser = null;
|
|
|
- //存在住户信息
|
|
|
-
|
|
|
- if (oldUser != null) {
|
|
|
- boolean isUpdate = false;
|
|
|
- houseUser = new HouseUser();
|
|
|
- houseUser.setFaceEnable(oldUser.getFaceEnable());
|
|
|
- houseUser.setId(oldUser.getId());
|
|
|
- //替换身份
|
|
|
- if (applyUser.getType() != null && !applyUser.getType().equals(oldUser.getType())) {
|
|
|
- houseUser.setType(applyUser.getType());
|
|
|
- isUpdate = true;
|
|
|
- }
|
|
|
- //替换手机
|
|
|
- if (StringUtils.isNotBlank(applyUser.getPhone()) && !applyUser.getPhone().equals(oldUser.getPhone())) {
|
|
|
- houseUser.setPhone(applyUser.getPhone());
|
|
|
- isUpdate = true;
|
|
|
- }
|
|
|
- //替换身份证
|
|
|
- if (StringUtils.isNotBlank(applyUser.getIdCard()) && !applyUser.getIdCard().equals(oldUser.getIdCard())) {
|
|
|
- houseUser.setIdCard(applyUser.getIdCard());
|
|
|
- isUpdate = true;
|
|
|
- }
|
|
|
- //人脸替换
|
|
|
- if (StringUtils.isNotBlank(applyUser.getFaceUrl())) {
|
|
|
- houseUser.setFaceUrl(applyUser.getFaceUrl());
|
|
|
- houseUser.setImageMd5(applyUser.getImageMd5());
|
|
|
- if (oldUser.getAuditStatus() == null || oldUser.getAuditStatus() != 1) {
|
|
|
- houseUser.setAuditStatus(1);
|
|
|
- }
|
|
|
- if (oldUser.getFaceEnable() == null || oldUser.getFaceEnable() == -1) {
|
|
|
- houseUser.setFaceEnable(0);
|
|
|
- }
|
|
|
- isUpdate = true;
|
|
|
- }
|
|
|
- //房间
|
|
|
- if (applyUser.getRoomId() != null && !applyUser.getRoomId().equals(oldUser.getRoomId())) {
|
|
|
- houseUser.setRoomId(applyUser.getRoomId());
|
|
|
- isUpdate = true;
|
|
|
- }
|
|
|
- //性别
|
|
|
- if (applyUser.getSex() != null && !applyUser.getSex().equals(oldUser.getSex())) {
|
|
|
- houseUser.setSex(applyUser.getSex());
|
|
|
- isUpdate = true;
|
|
|
- }
|
|
|
- //国籍
|
|
|
- if (applyUser.getNationality() != null && !applyUser.getNationality().equals(oldUser.getNationality())) {
|
|
|
- houseUser.setNationality(applyUser.getNationality());
|
|
|
- isUpdate = true;
|
|
|
- }
|
|
|
- //护照
|
|
|
- if (StringUtils.isNotBlank(applyUser.getPassportImgUri()) && !applyUser.getPassportImgUri().equals(oldUser.getPassportImgUri())) {
|
|
|
- houseUser.setPassportImgUri(applyUser.getPassportImgUri());
|
|
|
- isUpdate = true;
|
|
|
- }
|
|
|
- //护照
|
|
|
- if (StringUtils.isNotBlank(applyUser.getEntryImgUri()) && !applyUser.getEntryImgUri().equals(oldUser.getEntryImgUri())) {
|
|
|
- houseUser.setEntryImgUri(applyUser.getEntryImgUri());
|
|
|
- isUpdate = true;
|
|
|
- }
|
|
|
- if (isUpdate) {
|
|
|
- //更新之前user信息
|
|
|
- result = this.houseUserClient.update(houseUser);
|
|
|
- }
|
|
|
- } else {
|
|
|
+ applyUserDTO.setFaceUrl(confClient.removePrefix(applyUserDTO.getFaceUrl()));
|
|
|
+ applyUserDTO.setPassportImgUri(confClient.removePrefix(applyUserDTO.getPassportImgUri()));
|
|
|
+ applyUserDTO.setEntryImgUri(confClient.removePrefix(applyUserDTO.getEntryImgUri()));
|
|
|
+ applyUserDTO.setCheckDate(new Date());
|
|
|
+ boolean applyUpdate = this.updateById(applyUserDTO);
|
|
|
+ if(applyUpdate){
|
|
|
+ Member member = new Member();
|
|
|
+ member.setId(applyUser.getMemberId());
|
|
|
+ if(applyUserDTO.getAuditStatus() == 1){ //通过
|
|
|
//申请记录转User
|
|
|
- houseUser = this.applyUserToUser(applyUser);
|
|
|
- Date beginDate = new Date();
|
|
|
- Calendar cd = Calendar.getInstance();
|
|
|
- cd.setTime(beginDate);
|
|
|
- cd.add(Calendar.YEAR, 20);
|
|
|
- houseUser.setMemberId(applyUser.getMemberId());
|
|
|
- houseUser.setFaceBeginDate(beginDate);
|
|
|
- houseUser.setFaceEndDate(cd.getTime());
|
|
|
- //往user增加faceEnable并设置为0
|
|
|
-// user.setFaceEnable(OperationConstant.ZERO);
|
|
|
- //新增一个user
|
|
|
- houseUser = this.houseUserClient.applySave(houseUser);
|
|
|
- condition.setUserId(houseUser.getId());
|
|
|
- result = this.updateById(condition);
|
|
|
- //新增人数
|
|
|
- this.communityClient.addPersonNum(houseUser.getAgencyId(), houseUser.getResidentialId()
|
|
|
- , houseUser.getBuildingId(), houseUser.getUnitId(), houseUser.getFloorId(), houseUser.getRoomId());
|
|
|
-
|
|
|
+ HouseUser houseUser = this.applyUserToUser(applyUser);
|
|
|
+ R r = this.houseUserClient.applySave(houseUser);
|
|
|
+ if(r.isSuccess()){
|
|
|
+ member.setState(OperationConstant.TWO);
|
|
|
+ this.memberClient.update(member);
|
|
|
+ //下发默认开门权限
|
|
|
+ UserAccessPermissionsDTO userAccessPermissionsDTO = new UserAccessPermissionsDTO();
|
|
|
+ userAccessPermissionsDTO.setUserId(Func.toStr(houseUser.getId()));
|
|
|
+ userAccessPermissionsDTO.setUserType(CommonConstant.UserFlag.HOUSE_USER_FLAG.getValue());
|
|
|
+ userAccessPermissionsDTO.setTargetType(1);
|
|
|
+ userAccessPermissionsDTO.setResidentialId(houseUser.getResidentialId());
|
|
|
+ userAccessPermissionsDTO.setUnitId(houseUser.getUnitId());
|
|
|
+ userAccessPermissionsDTO.setRoomId(houseUser.getRoomId());
|
|
|
+ userAccessPermissionsDTO.setUserFace(confClient.addPrefix(applyUserDTO.getFaceUrl()));
|
|
|
+ userAccessPermissionsDTO.setTenantId(houseUser.getTenantId());
|
|
|
+ userAccessPermissionsService.authPushPermissions(userAccessPermissionsDTO);
|
|
|
+ }else{
|
|
|
+ return R.fail("住户新增失败");
|
|
|
+ }
|
|
|
+ //新增小区入住人数
|
|
|
+ this.communityClient.addPersonNum(houseUser.getAgencyId(), houseUser.getResidentialId(), houseUser.getBuildingId(), houseUser.getUnitId(), houseUser.getFloorId(), houseUser.getRoomId());
|
|
|
+ }else if(applyUserDTO.getAuditStatus() == 2){ //不通过
|
|
|
+ member.setState(OperationConstant.ZERO);
|
|
|
+ this.memberClient.update(member);
|
|
|
}
|
|
|
+ return R.success("审核成功");
|
|
|
+ }else{
|
|
|
+ return R.fail("申请记录更新失败");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ return R.fail("已审核记录不能重复审核");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- //---------------------------------------------------------------------------
|
|
|
- //下发人脸
|
|
|
- if (oldUser != null) {
|
|
|
- if (houseUser.getFaceEnable() == 2) {
|
|
|
- // 人脸已禁用
|
|
|
- } else {
|
|
|
- pushFace(houseUser, 1);
|
|
|
+ @Override
|
|
|
+ public R updateAuditStatus(ApplyUserDTO applyUserDTO) {
|
|
|
+ ApplyUser applyUser = this.getById(applyUserDTO.getId());
|
|
|
+ if (applyUser.getAuditStatus() == OperationConstant.ZERO) {
|
|
|
+ //更新记录状态
|
|
|
+ applyUserDTO.setFaceUrl(confClient.removePrefix(applyUserDTO.getFaceUrl()));
|
|
|
+ applyUserDTO.setPassportImgUri(confClient.removePrefix(applyUserDTO.getPassportImgUri()));
|
|
|
+ applyUserDTO.setEntryImgUri(confClient.removePrefix(applyUserDTO.getEntryImgUri()));
|
|
|
+ applyUserDTO.setCheckDate(new Date());
|
|
|
+ boolean applyUpdate = this.updateById(applyUserDTO);
|
|
|
+ if(applyUpdate){
|
|
|
+ Member member = new Member();
|
|
|
+ member.setId(applyUser.getMemberId());
|
|
|
+ if(applyUserDTO.getAuditStatus() == 1){ //通过
|
|
|
+ //申请记录转User
|
|
|
+ HouseUser houseUser = this.applyUserToUser(applyUser);
|
|
|
+ R r = this.houseUserClient.applySave(houseUser);
|
|
|
+ if(r.isSuccess()){
|
|
|
+ member.setState(OperationConstant.TWO);
|
|
|
+ this.memberClient.update(member);
|
|
|
+ //下发默认开门权限
|
|
|
+ UserAccessPermissionsDTO userAccessPermissionsDTO = new UserAccessPermissionsDTO();
|
|
|
+ userAccessPermissionsDTO.setUserId(Func.toStr(houseUser.getId()));
|
|
|
+ userAccessPermissionsDTO.setUserType(CommonConstant.UserFlag.HOUSE_USER_FLAG.getValue());
|
|
|
+ userAccessPermissionsDTO.setTargetType(1);
|
|
|
+ userAccessPermissionsDTO.setResidentialId(houseUser.getResidentialId());
|
|
|
+ userAccessPermissionsDTO.setUnitId(houseUser.getUnitId());
|
|
|
+ userAccessPermissionsDTO.setRoomId(houseUser.getRoomId());
|
|
|
+ userAccessPermissionsDTO.setUserFace(confClient.addPrefix(applyUserDTO.getFaceUrl()));
|
|
|
+ userAccessPermissionsDTO.setTenantId(houseUser.getTenantId());
|
|
|
+ userAccessPermissionsService.authPushPermissions(userAccessPermissionsDTO);
|
|
|
+ }else{
|
|
|
+ return R.fail("住户新增失败");
|
|
|
}
|
|
|
- } else {
|
|
|
- pushFace(houseUser, 1);
|
|
|
+ //新增小区入住人数
|
|
|
+ this.communityClient.addPersonNum(houseUser.getAgencyId(), houseUser.getResidentialId(), houseUser.getBuildingId(), houseUser.getUnitId(), houseUser.getFloorId(), houseUser.getRoomId());
|
|
|
+ }else if(applyUserDTO.getAuditStatus() == 2){ //不通过
|
|
|
+ member.setState(OperationConstant.ZERO);
|
|
|
+ this.memberClient.update(member);
|
|
|
}
|
|
|
-
|
|
|
- } else {//审核不通过
|
|
|
- //认证状态:{ 0:未认证,1:待审审核,2:已认证 }
|
|
|
- member.setState(OperationConstant.ZERO);
|
|
|
- }
|
|
|
- //申请的记录类型 0--认证类型 1--新增类型 2--编辑类型
|
|
|
- if (applyUser.getRecordType() == null || applyUser.getRecordType() == 0) {
|
|
|
- //认证类型的记录须修改会员的状态
|
|
|
- result = this.memberClient.update(member);
|
|
|
+ return R.success("审核成功");
|
|
|
+ }else{
|
|
|
+ return R.fail("申请记录更新失败");
|
|
|
}
|
|
|
-
|
|
|
+ }else{
|
|
|
+ return R.fail("已审核记录不能重复审核");
|
|
|
}
|
|
|
- return result;
|
|
|
}
|
|
|
|
|
|
private HouseUser applyUserToUser(ApplyUser applyUser) {
|