|
|
@@ -25,6 +25,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import org.springblade.common.constant.CommonConstant;
|
|
|
import org.springblade.core.mp.support.Condition;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
+import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.core.tool.utils.StringUtil;
|
|
|
import org.springblade.device.entity.DoorDevice;
|
|
|
@@ -47,6 +48,7 @@ import org.springblade.third.doordevice.dto.UserDeviceDTO;
|
|
|
import org.springblade.third.doordevice.feign.IDoorDeviceButtClient;
|
|
|
import org.springblade.third.dto.DeviceDTO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
@@ -82,7 +84,8 @@ public class UserAccessPermissionsServiceImpl extends BaseServiceImpl<UserAccess
|
|
|
public R generateUserAccessPermissions(AuthorizeRecordsDTO authorizeRecordsDTO) {
|
|
|
UserAccessPermissions permissions = null;
|
|
|
List<UserAccessPermissions> permissionsList = this.getByCondition(authorizeRecordsDTO.getDeviceSerialNum(), authorizeRecordsDTO.getUserId());
|
|
|
- if(permissionsList.size() > 0){
|
|
|
+ long facePermissionsCount = permissionsList.stream().filter(p -> p.getPermissions() == 3).count();
|
|
|
+ if(facePermissionsCount > 0){
|
|
|
permissions = permissionsList.get(0);
|
|
|
}else{
|
|
|
permissions = new UserAccessPermissions();
|
|
|
@@ -147,6 +150,7 @@ public class UserAccessPermissionsServiceImpl extends BaseServiceImpl<UserAccess
|
|
|
String serialNum = doorDevice.getSerialNum();
|
|
|
String deviceFactory = doorDevice.getDeviceFactory();
|
|
|
List<UserAccessPermissions> permissionsList = this.getByCondition(serialNum, userAccessPermissionsDTO.getUserId());
|
|
|
+ long facePermissionsCount = permissionsList.stream().filter(userAccessPermissions -> userAccessPermissions.getPermissions() == 3).count();
|
|
|
UserDeviceDTO userDeviceDTO = new UserDeviceDTO();
|
|
|
userDeviceDTO.setSerialNum(serialNum);
|
|
|
userDeviceDTO.setTargetType(userAccessPermissionsDTO.getTargetType());
|
|
|
@@ -160,7 +164,7 @@ public class UserAccessPermissionsServiceImpl extends BaseServiceImpl<UserAccess
|
|
|
userDeviceDTO.setStartTime(sdf.format(userAccessPermissionsDTO.getBeginTime()));
|
|
|
userDeviceDTO.setEndTime(sdf.format(userAccessPermissionsDTO.getEndTime()));
|
|
|
}
|
|
|
- if (permissionsList.size() > 0) {
|
|
|
+ if (facePermissionsCount > 0) {
|
|
|
userDeviceDTO.setAddOrUpdate(2); //更新
|
|
|
} else {
|
|
|
userDeviceDTO.setAddOrUpdate(1); //新增
|
|
|
@@ -185,6 +189,7 @@ public class UserAccessPermissionsServiceImpl extends BaseServiceImpl<UserAccess
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Async
|
|
|
public R autoPushPermissions(UserAccessPermissionsDTO userAccessPermissionsDTO) {
|
|
|
R<List<DictBiz>> dictListR = dictBizClient.getList("default_user_access_permissions");
|
|
|
List<DictBiz> dictList = dictListR.getData();
|
|
|
@@ -199,16 +204,21 @@ public class UserAccessPermissionsServiceImpl extends BaseServiceImpl<UserAccess
|
|
|
return R.status(true);
|
|
|
}else{
|
|
|
for(DoorDeviceVO doorDeviceVO : doorDeviceVOList){
|
|
|
- userAccessPermissionsDTO.setDeviceName(doorDeviceVO.getName());
|
|
|
- userAccessPermissionsDTO.setDeviceSerialNum(doorDeviceVO.getSerialNum());
|
|
|
- userAccessPermissionsDTO.setDeviceAddress(doorDeviceVO.getAddress());
|
|
|
- userAccessPermissionsDTO.setAgencyId(doorDeviceVO.getAgencyId());
|
|
|
- userAccessPermissionsDTO.setResidentialId(doorDeviceVO.getResidentialId());
|
|
|
- userAccessPermissionsDTO.setBuildingId(doorDeviceVO.getBuildingId());
|
|
|
- userAccessPermissionsDTO.setUnitId(doorDeviceVO.getUnitId());
|
|
|
- userAccessPermissionsDTO.setRoomId(doorDeviceVO.getRoomId());
|
|
|
- userAccessPermissionsDTO.setPermissions(Integer.parseInt(dict.getDictValue()));
|
|
|
- this.save(userAccessPermissionsDTO);
|
|
|
+ UserAccessPermissions userAccessPermissions = BeanUtil.copy(userAccessPermissionsDTO, UserAccessPermissions.class);
|
|
|
+ userAccessPermissions.setId(null);
|
|
|
+ userAccessPermissions.setDeviceName(doorDeviceVO.getName());
|
|
|
+ userAccessPermissions.setDeviceSerialNum(doorDeviceVO.getSerialNum());
|
|
|
+ userAccessPermissions.setDeviceAddress(doorDeviceVO.getAddress());
|
|
|
+ userAccessPermissions.setAgencyId(doorDeviceVO.getAgencyId());
|
|
|
+ userAccessPermissions.setResidentialId(doorDeviceVO.getResidentialId());
|
|
|
+ userAccessPermissions.setBuildingId(doorDeviceVO.getBuildingId());
|
|
|
+ userAccessPermissions.setUnitId(doorDeviceVO.getUnitId());
|
|
|
+ userAccessPermissions.setRoomId(doorDeviceVO.getRoomId());
|
|
|
+ userAccessPermissions.setDeviceAddress(doorDeviceVO.getAddress());
|
|
|
+ userAccessPermissions.setDeviceFactory(doorDeviceVO.getDeviceFactory());
|
|
|
+ userAccessPermissions.setPermissions(Integer.parseInt(dict.getDictKey()));
|
|
|
+ userAccessPermissions.setUserFace(null);
|
|
|
+ this.save(userAccessPermissions);
|
|
|
}
|
|
|
}
|
|
|
}
|