123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- package com.care.bms.service;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.collection.CollUtil;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.care.common.entity.*;
- import com.care.common.enums.UserRoleEnum;
- import com.care.common.exception.BDException;
- import com.care.common.service.*;
- import com.care.common.util.MyBeanUtils;
- import com.care.common.vo.PageReqVO;
- import com.care.common.vo.UserLogindConvertVO;
- import com.care.common.vo.device.DeviceVO;
- import com.care.common.vo.sysuser.CareSysUserVO;
- import org.apache.commons.codec.digest.DigestUtils;
- import org.springframework.beans.BeanUtils;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * 安全管家表(CareSysUser)表服务实现类
- *
- * @author makejava
- * @since 2021-05-21 00:08:38
- */
- @Service
- public class BmsSysUserService{
- @Resource
- private CareOrganizationService careOrganizationService;
- @Resource
- private CareStationService careStationService;
- @Resource
- private CareSysUserService careSysUserService;
- @Resource
- private CareDeviceService careDeviceService;
- @Resource
- private CareEventOrderChambService careEventOrderChambService;
- @Resource
- private CareHouseService careHouseService;
- public UserLogindConvertVO getLoginUser(String orgCode, String phone,String password) {
- UserLogindConvertVO userLogindConvertVO = null;
- /*QueryWrapper<CareOrganization> organizationQueryWrapper = new QueryWrapper<>();
- organizationQueryWrapper.lambda().eq(CareOrganization::getOrgCode,orgCode);
- CareOrganization org = this.careOrganizationService.getOne(organizationQueryWrapper);
- if (org == null){
- return null;
- }*/
- QueryWrapper<CareSysUser> userQueryWrapper = new QueryWrapper<>();
- userQueryWrapper.lambda() //.eq(CareSysUser::getOrgId,org.getId())
- .eq(CareSysUser::getPhone,phone);
- CareSysUser user = this.careSysUserService.getOne(userQueryWrapper);
- if (user != null){
- CareOrganization org = careOrganizationService.getById(user.getOrgId());
- userLogindConvertVO = new UserLogindConvertVO();
- BeanUtil.copyProperties(user,userLogindConvertVO);
- userLogindConvertVO.setOrgName(org.getName());
- userLogindConvertVO.setSystemName(org.getSystemName());
- userLogindConvertVO.setLogo(org.getLogo());
- String md5Password = DigestUtils.md5Hex(password);
- if (!md5Password.equalsIgnoreCase(user.getPassword())) {
- throw new BDException("用户名或密码错误");
- }
- }
- return userLogindConvertVO;
- }
- /**
- * 查询某服务站下的 安全管家列表
- * @param stationId
- * @return
- */
- public List<CareSysUserVO> queryKeeperListByStationId(Long stationId){
- List<CareSysUserVO> datas = new ArrayList<>();
- QueryWrapper<CareSysUser> userQueryWrapper = new QueryWrapper<>();
- userQueryWrapper.lambda().eq(stationId != null,CareSysUser::getStationId,stationId)
- .eq(CareSysUser::getRole, UserRoleEnum.CHANMB.getValue())
- .orderByAsc(CareSysUser::getName);
- List<CareSysUser> users = this.careSysUserService.list(userQueryWrapper);
- if (users != null){
- users.forEach(item -> {
- CareSysUserVO vo = new CareSysUserVO();
- BeanUtil.copyProperties(item,vo);
- datas.add(vo);
- });
- }
- return datas;
- }
- /**
- * 查询安全管家列表
- * @param stationId
- * @return
- */
- public IPage<CareSysUserVO> listCareSysUser(String name,String phone, Long stationId,UserLogindConvertVO loginUser, PageReqVO pageReqVo) {
- IPage<CareSysUser> page = new Page<>(pageReqVo.getCurrent(), pageReqVo.getPageSize());
- QueryWrapper<CareSysUser> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().like(StrUtil.isNotEmpty(name),CareSysUser::getName,name)
- .like(StrUtil.isNotEmpty(phone),CareSysUser::getPhone,phone)
- .eq(CareSysUser::getOrgId,loginUser.getOrgId())
- .eq(loginUser.getStationId()!=null,CareSysUser::getStationId,loginUser.getStationId())
- .eq(stationId!=null,CareSysUser::getStationId,stationId)
- .eq(CareSysUser::getRole,UserRoleEnum.CHANMB.getValue())
- .orderByAsc(CareSysUser::getName);
- IPage<CareSysUser> pageRes = this.careSysUserService.page(page, queryWrapper);
- IPage<CareSysUserVO> results = new Page<>(pageRes.getCurrent(),pageRes.getSize(),pageRes.getTotal());
- if(CollUtil.isNotEmpty(pageRes.getRecords())){
- List<CareSysUserVO> list = new ArrayList<>();
- pageRes.getRecords().forEach(item -> {
- CareSysUserVO resVO = new CareSysUserVO();
- BeanUtils.copyProperties(item,resVO);
- //服务设备数量
- QueryWrapper<CareDevice> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.lambda().eq(CareDevice::getChambId,resVO.getId());
- resVO.setDevCount(this.careDeviceService.count(queryWrapper1));
- //服务次数
- QueryWrapper<CareEventOrderChamb> queryWrapper2 = new QueryWrapper<>();
- queryWrapper2.lambda().eq(CareEventOrderChamb::getChambId,resVO.getId()).ne(CareEventOrderChamb::getStatus,"3");
- resVO.setServeCount(this.careEventOrderChambService.count(queryWrapper2));
- CareStation station = this.careStationService.getById(resVO.getStationId());
- if (station!=null){
- resVO.setStationName(station.getShortName());
- }
- list.add(resVO);
- });
- results.setRecords(list);
- }
- return results;
- }
- /**
- * 删除管家
- * @param id
- * @return
- */
- public boolean deleteById(Long id){
- return this.careSysUserService.removeById(id);
- }
- /**
- * 详情
- * @param id
- * @return
- */
- public CareSysUserVO getCareSysUserById(Long id){
- CareSysUser careSysUser = this.careSysUserService.getById(id);
- if (careSysUser!=null){
- CareSysUserVO resVO = new CareSysUserVO();
- BeanUtil.copyProperties(careSysUser,resVO);
- //服务设备数量和列表
- QueryWrapper<CareDevice> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.lambda().eq(CareDevice::getChambId,resVO.getId());
- List<CareDevice> hasDeviceList = this.careDeviceService.list(queryWrapper1);
- if(CollUtil.isNotEmpty(hasDeviceList)){
- List<DeviceVO> hasDeviceVOList = new ArrayList<>();
- hasDeviceList.forEach(item ->{
- DeviceVO deviceVO = new DeviceVO();
- BeanUtil.copyProperties(item,deviceVO);
- deviceVO.setHouseAddr(careHouseService.getById(deviceVO.getHouseId()).getAddr());
- hasDeviceVOList.add(deviceVO);
- });
- resVO.setHasDeviceVOList(hasDeviceVOList);
- resVO.setDevCount(hasDeviceVOList.size());
- } else {
- resVO.setDevCount(0);
- }
- //服务次数
- QueryWrapper<CareEventOrderChamb> queryWrapper2 = new QueryWrapper<>();
- queryWrapper2.lambda().eq(CareEventOrderChamb::getChambId,resVO.getId()).ne(CareEventOrderChamb::getStatus,"3");
- resVO.setServeCount(this.careEventOrderChambService.count(queryWrapper2));
- CareStation station = this.careStationService.getById(resVO.getStationId());
- if (station!=null){
- resVO.setStationName(station.getShortName());
- }
- //空闲设备列表
- resVO.setFreeDeviceVOList(getFreeDeviceVOList());
- return resVO;
- }
- return null;
- }
- /**
- * 获取空闲设备列表
- * @return
- */
- public List<DeviceVO> getFreeDeviceVOList(){
- QueryWrapper<CareDevice> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().isNull(CareDevice::getChambId);
- List<CareDevice> freeDeviceList = this.careDeviceService.list(queryWrapper);
- List<DeviceVO> freeDeviceVOList = new ArrayList<>();
- if(CollUtil.isNotEmpty(freeDeviceList)){
- freeDeviceList.forEach(item ->{
- DeviceVO deviceVO = new DeviceVO();
- BeanUtil.copyProperties(item,deviceVO);
- deviceVO.setHouseAddr(careHouseService.getById(deviceVO.getHouseId()).getAddr());
- freeDeviceVOList.add(deviceVO);
- });
- }
- return freeDeviceVOList;
- }
- /**
- * 保存管家
- * @param vo
- */
- @Transactional(rollbackFor = Exception.class)
- public int createCareSysUser(CareSysUserVO vo,UserLogindConvertVO loginUser){
- QueryWrapper<CareSysUser> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().eq(CareSysUser::getPhone,vo.getPhone());
- if(careSysUserService.count(queryWrapper) > 0){
- return 1;
- }
- //保存管家
- CareSysUser careSysUser = new CareSysUser();
- BeanUtil.copyProperties(vo,careSysUser);
- careSysUser.setCreateTime(new Date());
- careSysUser.setRole(UserRoleEnum.CHANMB.getValue());
- careSysUser.setStationId(loginUser.getStationId());
- careSysUser.setOrgId(loginUser.getOrgId());
- this.careSysUserService.save(careSysUser);
- //更新设备
- List<DeviceVO> hasDeviceVOList = vo.getHasDeviceVOList();
- if (CollUtil.isNotEmpty(hasDeviceVOList)) {
- hasDeviceVOList.forEach(item -> {
- CareDevice careDevice = new CareDevice();
- BeanUtil.copyProperties(item,careDevice);
- careDevice.setChambId(careSysUser.getId());
- careDeviceService.updateById(careDevice);
- });
- }
- return 0;
- }
- /**
- * 修改管家
- * @param vo
- */
- @Transactional(rollbackFor = Exception.class)
- public void updateCareSysUser(CareSysUserVO vo){
- //保存管家
- CareSysUser careSysUser = this.careSysUserService.getById(vo.getId());
- MyBeanUtils.copyProperties(vo,careSysUser);
- careSysUser.setModifyTime(new Date());
- this.careSysUserService.updateById(careSysUser);
- List<DeviceVO> hasDeviceVOList = vo.getHasDeviceVOList();
- //查找原来拥有的设备
- QueryWrapper<CareDevice> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().eq(CareDevice::getChambId,vo.getId());
- List<CareDevice> hasDeviceListOld = this.careDeviceService.list(queryWrapper);
- if (CollUtil.isNotEmpty(hasDeviceListOld)) {
- for(CareDevice careDevice : hasDeviceListOld){
- boolean has = false;
- for(DeviceVO deviceVO : hasDeviceVOList) {
- if(careDevice.getId().equals(deviceVO.getId())){
- has = true;
- break;
- }
- }
- if(!has) {
- //将不再拥有的设备的管家id置空
- this.careDeviceService.updateDevChamb(careDevice.getId());
- }
- }
- }
- //更新拥有的设备
- if (CollUtil.isNotEmpty(hasDeviceVOList)) {
- hasDeviceVOList.forEach(item -> {
- CareDevice careDevice = new CareDevice();
- BeanUtil.copyProperties(item,careDevice);
- careDevice.setChambId(careSysUser.getId());
- careDeviceService.updateById(careDevice);
- });
- }
- }
- }
|