| | |
| | | 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.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.erp.model.openapi.request.RoleListRequest; |
| | | import com.doumee.core.erp.model.openapi.response.DeviceListResponse; |
| | | import com.doumee.core.erp.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.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; |
| | | 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 org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.List; |
| | | |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 门禁角色信息表Service实现 |
| | |
| | | |
| | | @Autowired |
| | | private DeviceRoleMapper deviceRoleMapper; |
| | | @Autowired |
| | | private MemberService memberService; |
| | | |
| | | |
| | | @Override |
| | | public Integer create(DeviceRole deviceRole) { |
| | | deviceRoleMapper.insert(deviceRole); |
| | | return deviceRole.getId(); |
| | | |
| | | // 获取之前是否存在默认门禁组 |
| | | 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.setEditDate(new Date()); |
| | | insert.setIsdeleted(Constants.ZERO); |
| | | insert.setRemark(deviceRole.getRemark()); |
| | | insert.setName(deviceRole.getName()); |
| | | insert.setIsDefault(deviceRole.getIsDefault()); |
| | | 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 |
| | |
| | | |
| | | @Override |
| | | public void updateById(DeviceRole deviceRole) { |
| | | DeviceRole newDeviceRole = null; |
| | | if(null != deviceRole.getType()) { |
| | | newDeviceRole = getDeviceRole(deviceRole.getType()); |
| | | } |
| | | 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) { |
| | | // 获取之前是否存在默认门禁组 |
| | | DeviceRole newDeviceRole = null; |
| | | if(null != deviceRole.getType()) { |
| | | newDeviceRole = getDeviceRole(deviceRole.getType()); |
| | | } |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); |
| | | 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 |
| | |
| | | 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()); |
| | |
| | | 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()); |
| | |
| | | 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 |
| | |
| | | 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.ONE) |
| | | ); |
| | | List<DeviceRoleVO> deviceRoleVOList = new ArrayList<>(); |
| | | for (DeviceRole deviceRole:deviceRoleList) { |
| | | DeviceRoleVO deviceRoleVO = new DeviceRoleVO(); |
| | | BeanUtils.copyProperties(deviceRole,deviceRoleVO); |
| | | deviceRoleVOList.add(deviceRoleVO); |
| | | } |
| | | return deviceRoleVOList; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |