|  |  | 
 |  |  | import com.doumee.core.model.PageWrap; | 
 |  |  | import com.doumee.core.utils.Constants; | 
 |  |  | import com.doumee.core.utils.Utils; | 
 |  |  | import com.doumee.dao.business.CarsMapper; | 
 |  |  | import com.doumee.dao.business.ParkBookMapper; | 
 |  |  | import com.doumee.dao.business.ParksMapper; | 
 |  |  | import com.doumee.dao.business.join.ParkBookJoinMapper; | 
 |  |  | import com.doumee.dao.business.model.*; | 
 |  |  | import com.doumee.service.business.ParkBookService; | 
 |  |  | 
 |  |  | import org.apache.shiro.SecurityUtils; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  | import org.springframework.util.CollectionUtils; | 
 |  |  |  | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.Objects; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * 车辆预约记录信息表Service实现 | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ParkBookMapper parkBookMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private CarsMapper carsMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private HkSyncParkServiceImpl hkSyncParkService; | 
 |  |  |     @Autowired | 
 |  |  |     private ParksMapper parksMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ParkBookJoinMapper parkBookJoinMapper; | 
 |  |  | 
 |  |  |        } | 
 |  |  |         hkSyncParkService.syncParkBookBySingleModel(model); | 
 |  |  |     } | 
 |  |  |     @Override | 
 |  |  |     @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
 |  |  |     public   String batchAuth(Cars cars) { | 
 |  |  |         if(cars.getIdList() == null || cars.getIdList() == null | 
 |  |  |                 ||cars.getAuthTimeType() == null | 
 |  |  |                 ||cars.getAuthTimeType()>2 | 
 |  |  |                 ||cars.getAuthTimeType()<0 ){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
 |  |  |         } | 
 |  |  |         MPJLambdaWrapper<Cars> queryWrapper = new MPJLambdaWrapper<>(); | 
 |  |  |         queryWrapper.selectAll(Cars.class); | 
 |  |  |         queryWrapper.selectAs(Member::getStartTime,Cars::getMemberStartTime); | 
 |  |  |         queryWrapper.selectAs(Member::getEndTime,Cars::getMemberEndTime); | 
 |  |  |         queryWrapper.selectAs(Member::getIsdeleted,Cars::getMemberDeleted); | 
 |  |  |         queryWrapper.selectAs(Member::getAuthStatus,Cars::getMemberAuthStatus); | 
 |  |  |         queryWrapper.leftJoin(Member.class,Member::getId,Cars::getMemberId); | 
 |  |  |         queryWrapper.eq(Cars::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .in(Cars::getId,cars.getIdList()); | 
 |  |  |         List<Cars> carsList = carsMapper.selectList( queryWrapper); | 
 |  |  |        if(carsList== null || carsList.size() ==0){ | 
 |  |  |            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"车辆信息有误,请返回刷新页面重试!"); | 
 |  |  |        } | 
 |  |  |         List<Parks> parksList = null; | 
 |  |  |        if(cars.getParkIdList()!=null && cars.getParkIdList().size() > 0){ | 
 |  |  |            MPJLambdaWrapper<Parks> queryWrapper1 = new MPJLambdaWrapper<>(); | 
 |  |  |            queryWrapper1.selectAll(Parks.class); | 
 |  |  |            queryWrapper1.eq(Parks::getIsdeleted,Constants.ZERO) | 
 |  |  |                    .in(Parks::getId,cars.getParkIdList()); | 
 |  |  |           parksList = parksMapper.selectList( queryWrapper1); | 
 |  |  |            if(parksList== null || parksList.size() ==0){ | 
 |  |  |                throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"停车场信息有误,请返回刷新页面重试!"); | 
 |  |  |            } | 
 |  |  |        } | 
 |  |  |  | 
 |  |  |         if(Constants.equalsInteger(cars.getAuthTimeType(),Constants.ONE)){ | 
 |  |  |             if( cars.getStartTime() ==null || cars.getEndTime() == null ){ | 
 |  |  |                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,请填写正确的有效期范围"); | 
 |  |  |             } | 
 |  |  |             if( cars.getEndTime().getTime() < System.currentTimeMillis()){ | 
 |  |  |                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"有效期截止日期不能小于当前时间!"); | 
 |  |  |             } | 
 |  |  |             if(cars.getEndTime().getTime() <= cars.getStartTime().getTime()){ | 
 |  |  |                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"有效期截止日期不能小于开始时间!"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |        Date date = new Date(); | 
 |  |  |        for(Cars model : carsList){ | 
 |  |  |            Date startTime = cars.getStartTime(); | 
 |  |  |            Date endTime = cars.getEndTime(); | 
 |  |  |            if(Constants.equalsInteger(cars.getAuthTimeType(),Constants.TWO)){ | 
 |  |  |                 if(!Constants.equalsInteger(model.getMemberAuthStatus(),Constants.ONE)){ | 
 |  |  |                     throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,车辆【"+model.getCode()+"】车主尚未授权门禁信息,授权无法【跟随车主】有效期!"); | 
 |  |  |                 } | 
 |  |  |                 startTime = model.getMemberStartTime(); | 
 |  |  |                 endTime=model.getMemberEndTime(); | 
 |  |  |            } | 
 |  |  |            model.setAuthTimeType(cars.getAuthTimeType()); | 
 |  |  |            model.setStartTime(startTime); | 
 |  |  |            model.setEndTime(endTime); | 
 |  |  |            dealCarAuthByModel(model,cars.getLoginUserInfo(),parksList,date); | 
 |  |  |            model.setAuthStatus(Constants.ONE);//已授权 | 
 |  |  |            carsMapper.update(null,new UpdateWrapper<Cars>().lambda() | 
 |  |  |                    .eq(Cars::getId,model.getId()) | 
 |  |  |                    .set(Cars::getEditDate,date) | 
 |  |  |                    .set(Cars::getEdirot,cars.getLoginUserInfo().getId()) | 
 |  |  |                    .set(Cars::getAuthStatus,Constants.ONE) | 
 |  |  |                    .set(Cars::getStartTime,startTime) | 
 |  |  |                    .set(Cars::getEndTime,endTime) | 
 |  |  |            ); | 
 |  |  |        } | 
 |  |  |        return  "授权成功"; | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private int dealCarAuthByModel(Cars model, LoginUserInfo loginUserInfo, List<Parks> parksList,Date date) { | 
 |  |  |         //删除车量库记录数据 | 
 |  |  |         parkBookMapper.update(null,new UpdateWrapper<ParkBook>().lambda() | 
 |  |  |                 .eq(ParkBook::getCarCode,model.getCode()) | 
 |  |  |                 .set(ParkBook::getIsdeleted,Constants.ONE) | 
 |  |  |                 .set(ParkBook::getHkStatus,Constants.ZERO) | 
 |  |  |         ); | 
 |  |  |         if(org.apache.commons.collections.CollectionUtils.isNotEmpty(parksList)){ | 
 |  |  |             List<ParkBook> parkBookList = new ArrayList<>(); | 
 |  |  |             for (Parks parks:parksList) { | 
 |  |  |                 ParkBook parkBook = new ParkBook(); | 
 |  |  |                 parkBook.setIsdeleted(Constants.ZERO); | 
 |  |  |                 parkBook.setCreateDate(date); | 
 |  |  |                 parkBook.setCreator(loginUserInfo.getId()); | 
 |  |  |                 parkBook.setEditor(loginUserInfo.getId()); | 
 |  |  |                 parkBook.setEditDate(date); | 
 |  |  |                 parkBook.setCarCode(model.getCode()); | 
 |  |  |                 parkBook.setParkId(parks.getId()); | 
 |  |  |                 parkBook.setOrigin(Constants.ZERO); | 
 |  |  |                 parkBook.setStartTime(model.getStartTime()); | 
 |  |  |                 parkBook.setEndTime(model.getEndTime()); | 
 |  |  |                 parkBook.setTimeType(model.getAuthTimeType()); | 
 |  |  |                 parkBook.setMemberId(model.getMemberId()); | 
 |  |  |                 parkBook.setHkStatus(Constants.ZERO); | 
 |  |  |                 parkBook.setRemark("待同步安防平台"); | 
 |  |  |                 parkBookList.add(parkBook); | 
 |  |  |             } | 
 |  |  |             parkBookMapper.insert(parkBookList); | 
 |  |  |         } | 
 |  |  |         return 0; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public ParkBook findOne(ParkBook parkBook) { |