| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | |
| | | import com.doumee.dao.business.DeviceRoleMapper; |
| | | import com.doumee.dao.business.model.Device; |
| | | import com.doumee.dao.business.model.DeviceRole; |
| | | import com.doumee.dao.business.model.Member; |
| | | 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 com.doumee.service.business.MemberService; |
| | | import io.swagger.models.auth.In; |
| | | import org.apache.commons.collections.CollectionUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | |
| | | |
| | | @Autowired |
| | | private DeviceRoleMapper deviceRoleMapper; |
| | | @Autowired |
| | | private MemberService memberService; |
| | | |
| | | |
| | | @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(),"同一个用户类型,只能有一个默认角色"); |
| | | // 获取之前是否存在默认门禁组 |
| | | DeviceRole newDeviceRole = null; |
| | | if(null != deviceRole.getType()) { |
| | | newDeviceRole = getDeviceRole(deviceRole.getType()); |
| | | } |
| | | |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); |
| | | if(null != newDeviceRole) { |
| | | DeviceRole updateDeviceRole = new DeviceRole(); |
| | | // 若现在新增数据设置默认门禁组;那么先把之前的默认门禁组状态改为不是默认的 |
| | | updateDeviceRole.setId(newDeviceRole.getId()); |
| | | updateDeviceRole.setEdirot(loginUserInfo.getId().toString()); |
| | | updateDeviceRole.setEditDate(new Date()); |
| | | updateDeviceRole.setIsDefault(Constants.ONE); |
| | | deviceRoleMapper.updateById(updateDeviceRole); |
| | | } |
| | | DeviceRole insert = new DeviceRole(); |
| | | |
| | | insert.setCreator(loginUserInfo.getId().toString()); |
| | | insert.setCreateDate(new Date()); |
| | | insert.setEdirot(loginUserInfo.getId().toString()); |
| | |
| | | insert.setIsdeleted(Constants.ZERO); |
| | | insert.setRemark(deviceRole.getRemark()); |
| | | insert.setName(deviceRole.getName()); |
| | | insert.setIsDefault(Constants.equalsInteger(Constants.ONE,deviceRole.getStatus()) ? 0 : 1); |
| | | insert.setIsDefault(deviceRole.getIsDefault()); |
| | | insert.setType(deviceRole.getType()); |
| | | insert.setDoorIds(deviceRole.getDoorIds()); |
| | | insert.setDoorNames(deviceRole.getDoorNames()); |
| | |
| | | |
| | | @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 newDeviceRole = null; |
| | | if(null != deviceRole.getType()) { |
| | | newDeviceRole = getDeviceRole(deviceRole.getType()); |
| | | } |
| | | deviceRole.setIsDefault(Constants.equalsInteger(Constants.ONE,deviceRole.getStatus()) ? 0 : 1); |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); |
| | | if(null != newDeviceRole) { |
| | | DeviceRole update = new DeviceRole(); |
| | | update.setEdirot(loginUserInfo.getId().toString()); |
| | | update.setEditDate(new Date()); |
| | | update.setId(newDeviceRole.getId()); |
| | | update.setIsDefault(Constants.ONE); |
| | | deviceRoleMapper.updateById(update); |
| | | } |
| | | 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(),"同一个用户类型,只能有一个默认角色"); |
| | | // 获取之前是否存在默认门禁组 |
| | | DeviceRole newDeviceRole = null; |
| | | if(null != deviceRole.getType()) { |
| | | newDeviceRole = getDeviceRole(deviceRole.getType()); |
| | | } |
| | | 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); |
| | | List<DeviceRole> deviceRoleList = new ArrayList<>(); |
| | | if(null != newDeviceRole) { |
| | | DeviceRole update = new DeviceRole(); |
| | | update.setEdirot(loginUserInfo.getId().toString()); |
| | | update.setEditDate(new Date()); |
| | | update.setId(newDeviceRole.getId()); |
| | | update.setStatus(newDeviceRole.getStatus()); |
| | | update.setIsDefault(Constants.ONE); |
| | | deviceRoleList.add(update); |
| | | } |
| | | DeviceRole updateTwo = new DeviceRole(); |
| | | updateTwo.setEdirot(loginUserInfo.getId().toString()); |
| | | updateTwo.setEditDate(new Date()); |
| | | updateTwo.setId(deviceRole.getId()); |
| | | updateTwo.setStatus(deviceRole.getStatus()); |
| | | updateTwo.setIsDefault(deviceRole.getIsDefault()); |
| | | deviceRoleList.add(updateTwo); |
| | | // 最多2条,所有就没有写批量修改了 |
| | | for (DeviceRole data:deviceRoleList) { |
| | | deviceRoleMapper.updateById(data); |
| | | } |
| | | } |
| | | |
| | | private DeviceRole getDeviceRole(String type) { |
| | | LambdaQueryWrapper<DeviceRole> query = new LambdaQueryWrapper<>(); |
| | | query.eq(DeviceRole::getIsdeleted,Constants.ZERO) |
| | | .eq(DeviceRole::getIsDefault,Constants.ZERO) |
| | | .eq(DeviceRole::getType,type); |
| | | // 查询是否有默认门禁组,只能有一组默认门禁组 |
| | | DeviceRole getDeviceRole = deviceRoleMapper.selectOne(query); |
| | | return getDeviceRole; |
| | | } |
| | | |
| | | @Override |
| | |
| | | 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 (StringUtils.isNotBlank(pageWrap.getModel().getType())) { |
| | | if(pageWrap.getModel().getType().length() > 1) { |
| | | String[] types = pageWrap.getModel().getType().split(","); |
| | | queryWrapper.lambda() |
| | | .eq(DeviceRole::getType, types[0]) |
| | | .or() |
| | | .eq(DeviceRole::getType, types[1]); |
| | | }else { |
| | | queryWrapper.lambda().eq(DeviceRole::getType, pageWrap.getModel().getType()); |
| | | } |
| | | } |
| | | if (pageWrap.getModel().getDoorIds() != null) { |
| | | queryWrapper.lambda().eq(DeviceRole::getDoorIds, pageWrap.getModel().getDoorIds()); |
| | |
| | | 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()); |
| | |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(deviceRoleMapper.selectPage(page, queryWrapper)); |
| | | IPage<DeviceRole> newPage = deviceRoleMapper.selectPage(page, queryWrapper); |
| | | if(null != newPage && newPage.getRecords().size() > 0) { |
| | | List<DeviceRole> deviceRoleList = newPage.getRecords(); |
| | | for (DeviceRole dto:deviceRoleList) { |
| | | Member member = new Member(); |
| | | member.setIsdeleted(Constants.ZERO); |
| | | member.setRoleIdParam("["+dto.getId()+"]"); |
| | | dto.setMemberNum((int) memberService.count(member)); |
| | | } |
| | | newPage.setRecords(deviceRoleList); |
| | | } |
| | | return PageData.from(newPage); |
| | | } |
| | | |
| | | @Override |
| | |
| | | List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() |
| | | .eq(DeviceRole::getType,type) |
| | | .eq(DeviceRole::getIsdeleted, Constants.ZERO) |
| | | .eq(DeviceRole::getStatus, Constants.ZERO) |
| | | .eq(DeviceRole::getStatus, Constants.ONE) |
| | | ); |
| | | List<DeviceRoleVO> deviceRoleVOList = new ArrayList<>(); |
| | | for (DeviceRole deviceRole:deviceRoleList) { |