|  |  |  | 
|---|
|  |  |  | 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.insertBatchSomeColumn(parkBookList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ParkBook findOne(ParkBook parkBook) { | 
|---|