package com.doumee.service.business.impl;
|
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.model.LoginUserInfo;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.model.openapi.request.RoleListRequest;
|
import com.doumee.core.model.openapi.response.DeviceListResponse;
|
import com.doumee.core.model.openapi.response.RoleListResponse;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.Utils;
|
import com.doumee.dao.business.DeviceMapper;
|
import com.doumee.dao.business.DeviceRoleMapper;
|
import com.doumee.dao.business.model.Device;
|
import com.doumee.dao.business.model.DeviceRole;
|
import com.doumee.dao.web.response.DeviceRoleVO;
|
import com.doumee.service.business.DeviceRoleService;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import io.swagger.models.auth.In;
|
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.shiro.SecurityUtils;
|
import org.checkerframework.checker.units.qual.C;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.stereotype.Service;
|
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* 门禁角色信息表Service实现
|
* @author 江蹄蹄
|
* @date 2023/11/30 15:33
|
*/
|
@Service
|
public class DeviceRoleServiceImpl implements DeviceRoleService {
|
|
@Autowired
|
private DeviceRoleMapper deviceRoleMapper;
|
|
|
@Override
|
public Integer create(DeviceRole deviceRole) {
|
|
QueryWrapper<DeviceRole> query = new QueryWrapper<>();
|
query.lambda()
|
.eq(DeviceRole::getIsdeleted,Constants.ZERO)
|
.eq(DeviceRole::getType,deviceRole.getType())
|
.eq(DeviceRole::getStatus,Constants.ONE);
|
List<DeviceRole> deviceRoles = deviceRoleMapper.selectList(query);
|
if (CollectionUtils.isNotEmpty(deviceRoles) && Constants.equalsInteger(Constants.ONE,deviceRole.getStatus())){
|
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"同一个用户类型,只能有一个默认角色");
|
}
|
|
LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
|
DeviceRole insert = new DeviceRole();
|
|
insert.setCreator(loginUserInfo.getId().toString());
|
insert.setCreateDate(new Date());
|
insert.setEdirot(loginUserInfo.getId().toString());
|
insert.setEditDate(new Date());
|
insert.setIsdeleted(Constants.ZERO);
|
insert.setRemark(deviceRole.getRemark());
|
insert.setName(deviceRole.getName());
|
insert.setIsDefault(Constants.equalsInteger(Constants.ONE,deviceRole.getStatus()) ? 0 : 1);
|
insert.setType(deviceRole.getType());
|
insert.setDoorIds(deviceRole.getDoorIds());
|
insert.setDoorNames(deviceRole.getDoorNames());
|
insert.setParkIds(deviceRole.getParkIds());
|
insert.setParkNames(deviceRole.getParkNames());
|
insert.setStatus(deviceRole.getStatus());
|
insert.setHkId(deviceRole.getHkId());
|
insert.setHkStatus(deviceRole.getHkStatus());
|
insert.setHkDate(deviceRole.getHkDate());
|
|
deviceRoleMapper.insert(insert);
|
return insert.getId();
|
}
|
|
@Override
|
public void deleteById(Integer id) {
|
deviceRoleMapper.deleteById(id);
|
}
|
|
@Override
|
public void delete(DeviceRole deviceRole) {
|
UpdateWrapper<DeviceRole> deleteWrapper = new UpdateWrapper<>(deviceRole);
|
deviceRoleMapper.delete(deleteWrapper);
|
}
|
|
@Override
|
public void deleteByIdInBatch(List<Integer> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return;
|
}
|
deviceRoleMapper.deleteBatchIds(ids);
|
}
|
|
@Override
|
public void updateById(DeviceRole deviceRole) {
|
|
QueryWrapper<DeviceRole> query = new QueryWrapper<>();
|
query.lambda()
|
.eq(DeviceRole::getIsdeleted,Constants.ZERO)
|
.eq(DeviceRole::getType,deviceRole.getType())
|
.eq(DeviceRole::getStatus,Constants.ONE);
|
List<DeviceRole> deviceRoles = deviceRoleMapper.selectList(query);
|
if (CollectionUtils.isNotEmpty(deviceRoles) && Constants.equalsInteger(Constants.ONE,deviceRole.getStatus())){
|
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"同一个用户类型,只能有一个默认角色");
|
}
|
deviceRole.setIsDefault(Constants.equalsInteger(Constants.ONE,deviceRole.getStatus()) ? 0 : 1);
|
deviceRoleMapper.updateById(deviceRole);
|
}
|
|
@Override
|
public void updateStatusById(DeviceRole deviceRole) {
|
QueryWrapper<DeviceRole> query = new QueryWrapper<>();
|
query.lambda()
|
.eq(DeviceRole::getIsdeleted,Constants.ZERO)
|
.eq(DeviceRole::getType,deviceRole.getType())
|
.eq(DeviceRole::getStatus,Constants.ONE);
|
List<DeviceRole> deviceRoles = deviceRoleMapper.selectList(query);
|
if (CollectionUtils.isNotEmpty(deviceRoles) && Constants.equalsInteger(Constants.ONE,deviceRole.getStatus())){
|
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"同一个用户类型,只能有一个默认角色");
|
}
|
LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
|
DeviceRole update = new DeviceRole();
|
update.setEdirot(loginUserInfo.getId().toString());
|
update.setEditDate(new Date());
|
update.setId(deviceRole.getId());
|
update.setStatus(deviceRole.getStatus());
|
update.setIsDefault(Constants.equalsInteger(Constants.ONE,deviceRole.getStatus()) ? 0 : 1);
|
deviceRoleMapper.updateById(update);
|
}
|
|
@Override
|
public void updateByIdInBatch(List<DeviceRole> deviceRoles) {
|
if (CollectionUtils.isEmpty(deviceRoles)) {
|
return;
|
}
|
for (DeviceRole deviceRole: deviceRoles) {
|
this.updateById(deviceRole);
|
}
|
}
|
|
@Override
|
public DeviceRole findById(Integer id) {
|
return deviceRoleMapper.selectById(id);
|
}
|
|
@Override
|
public DeviceRole findOne(DeviceRole deviceRole) {
|
QueryWrapper<DeviceRole> wrapper = new QueryWrapper<>(deviceRole);
|
return deviceRoleMapper.selectOne(wrapper);
|
}
|
|
@Override
|
public List<DeviceRole> findList(DeviceRole deviceRole) {
|
QueryWrapper<DeviceRole> wrapper = new QueryWrapper<>(deviceRole);
|
return deviceRoleMapper.selectList(wrapper);
|
}
|
|
@Override
|
public PageData<DeviceRole> findPage(PageWrap<DeviceRole> pageWrap) {
|
IPage<DeviceRole> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
|
QueryWrapper<DeviceRole> queryWrapper = new QueryWrapper<>();
|
Utils.MP.blankToNull(pageWrap.getModel());
|
if (pageWrap.getModel().getId() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getId, pageWrap.getModel().getId());
|
}
|
if (pageWrap.getModel().getCreator() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getCreator, pageWrap.getModel().getCreator());
|
}
|
if (pageWrap.getModel().getCreateDate() != null) {
|
queryWrapper.lambda().ge(DeviceRole::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
|
queryWrapper.lambda().le(DeviceRole::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
|
}
|
if (pageWrap.getModel().getEdirot() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getEdirot, pageWrap.getModel().getEdirot());
|
}
|
if (pageWrap.getModel().getEditDate() != null) {
|
queryWrapper.lambda().ge(DeviceRole::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
|
queryWrapper.lambda().le(DeviceRole::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
|
}
|
if (pageWrap.getModel().getIsdeleted() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getIsdeleted, pageWrap.getModel().getIsdeleted());
|
}
|
if (pageWrap.getModel().getRemark() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getRemark, pageWrap.getModel().getRemark());
|
}
|
if (pageWrap.getModel().getName() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getName, pageWrap.getModel().getName());
|
}
|
if (pageWrap.getModel().getIsDefault() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getIsDefault, pageWrap.getModel().getIsDefault());
|
}
|
if (pageWrap.getModel().getType() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getType, pageWrap.getModel().getType());
|
}
|
if (pageWrap.getModel().getDoorIds() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getDoorIds, pageWrap.getModel().getDoorIds());
|
}
|
if (pageWrap.getModel().getDoorNames() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getDoorNames, pageWrap.getModel().getDoorNames());
|
}
|
if (pageWrap.getModel().getParkIds() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getParkIds, pageWrap.getModel().getParkIds());
|
}
|
if (pageWrap.getModel().getParkNames() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getParkNames, pageWrap.getModel().getParkNames());
|
}
|
if (pageWrap.getModel().getStatus() != null) {
|
queryWrapper.lambda().eq(DeviceRole::getStatus, pageWrap.getModel().getStatus());
|
}
|
|
queryWrapper.select("t_aa.*," +
|
"(SELECT count(DISTINCT `KEY`) FROM `test` WHERE `test`.`key` = `t_aa`.id ) ");
|
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
|
if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
|
queryWrapper.orderByDesc(sortData.getProperty());
|
} else {
|
queryWrapper.orderByAsc(sortData.getProperty());
|
}
|
}
|
return PageData.from(deviceRoleMapper.selectPage(page, queryWrapper));
|
}
|
|
@Override
|
public long count(DeviceRole deviceRole) {
|
QueryWrapper<DeviceRole> wrapper = new QueryWrapper<>(deviceRole);
|
return deviceRoleMapper.selectCount(wrapper);
|
}
|
|
@Override
|
public List<DeviceRoleVO> findListByType(Integer type) {
|
List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
|
.eq(DeviceRole::getType,type)
|
.eq(DeviceRole::getIsdeleted, Constants.ZERO)
|
.eq(DeviceRole::getStatus, Constants.ZERO)
|
);
|
List<DeviceRoleVO> deviceRoleVOList = new ArrayList<>();
|
for (DeviceRole deviceRole:deviceRoleList) {
|
DeviceRoleVO deviceRoleVO = new DeviceRoleVO();
|
BeanUtils.copyProperties(deviceRole,deviceRoleVO);
|
deviceRoleVOList.add(deviceRoleVO);
|
}
|
return deviceRoleVOList;
|
}
|
|
|
|
|
|
|
|
}
|