| | |
| | | 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.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | 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; |
| | |
| | | } |
| | | |
| | | @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().getId(),parksList,date,parkBookMapper); |
| | | 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 "授权成功"; |
| | | |
| | | } |
| | | |
| | | public static int dealCarAuthByModel(Cars model, Integer userId, List<Parks> parksList,Date date,ParkBookMapper parkBookMapper) { |
| | | //删除车量库记录数据 |
| | | 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(userId); |
| | | parkBook.setEditor(userId); |
| | | 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) { |
| | | QueryWrapper<ParkBook> wrapper = new QueryWrapper<>(parkBook); |
| | | return parkBookMapper.selectOne(wrapper); |
| | |
| | | queryWrapper.leftJoin(Parks.class,Parks::getId,ParkBook::getParkId); |
| | | queryWrapper.leftJoin(Member.class,Member::getId,ParkBook::getMemberId); |
| | | queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); |
| | | |
| | | LoginUserInfo userInfo =pageWrap.getModel().getLoginUserInfo(); |
| | | if(userInfo!=null && userInfo.getCompanyIdList()!=null){ |
| | | if( userInfo.getCompanyIdList().size() ==0){ |
| | | //只能看自己 |
| | | queryWrapper.eq(Member::getId,userInfo.getMemberId()); |
| | | }else{ |
| | | queryWrapper.in(Company::getId,userInfo.getCompanyIdList()); |
| | | } |
| | | } |
| | | //数据权限开始--------------------end---------------- |
| | | queryWrapper |
| | | // .eq(ParkBook::getIsdeleted, Constants.ZERO) |
| | | .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getPhone,pageWrap.getModel().getMemberName()) |