| | |
| | | if (memberRidesMapper.selectCount(new QueryWrapper<MemberRides>().eq("member_id", memberId).in("status", 0, 1)) > Constants.ZERO) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "存在骑行中车辆,无法扫码"); |
| | | } |
| | | ; |
| | | Locks locks = locksMapper.selectOne(new QueryWrapper<Locks>().eq("code", code).eq("isdeleted", Constants.ZERO).last("limit 1")); |
| | | if (Objects.isNull(locks)) { |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "扫码无效,未查询到锁头信息"); |
| | |
| | | if (StringUtils.isBlank(locks.getBikeCode())) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "当前扫码锁头无车辆信息,无法进行开锁"); |
| | | } |
| | | MemberRides memberRides = new MemberRides(); |
| | | //根据车型查询计价方案 |
| | | isValidePricingType(locks,memberRides) ; |
| | | MqttLog flag = deviceService.openLock(locks); |
| | | MemberRidesDetailResponse memberRidesDetailResponse = new MemberRidesDetailResponse(); |
| | | if (flag.getResult() == 0) { |
| | | //存储骑行记录 |
| | | MemberRides memberRides = new MemberRides(); |
| | | memberRides.setId(Constants.getUUID()); |
| | | memberRides.setIsdeleted(Constants.ZERO); |
| | | memberRides.setMemberId(memberId); |
| | |
| | | return memberRidesDetailResponse; |
| | | } |
| | | |
| | | private boolean isValidePricingType(Locks locks,MemberRides memberRides ) { |
| | | Bikes bike= new Bikes(); |
| | | bike.setLockId(locks.getId()); |
| | | bike.setSiteId(locks.getSiteId()); |
| | | //查询车辆信息 |
| | | bike = bikesMapper.selectOne(new QueryWrapper<>(bike).last("limit 1")); |
| | | if(bike == null && StringUtils.isBlank(bike.getParamId())){ |
| | | //如果车辆类型是空 |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), " 该车型暂时不能借车操作哦,请更换其他车型重试!"); |
| | | } |
| | | Date date =new Date(); |
| | | |
| | | QueryWrapper<PricingParam> param = new QueryWrapper<>(); |
| | | param.lambda().eq(PricingParam::getStatus,Constants.ZERO); |
| | | param.lambda().eq(PricingParam::getIsdeleted,Constants.ZERO); |
| | | param.lambda().le(PricingParam::getStartDate,date); |
| | | param.lambda().ge(PricingParam::getEndDate,date); |
| | | param.lambda().last(" limit 1" ) ; |
| | | param.lambda().orderByAsc(PricingParam::getSortnum); |
| | | //查询优先级最高(排序码最小的)可用配价方案 |
| | | PricingParam pp = pricingParamMapper.selectOne(param); |
| | | if(pp == null){ |
| | | //如果车辆未设置配价方案,提示开锁失败! |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), " 该车型暂时不能借车操作哦,请更换其他车型重试哦!"); |
| | | } |
| | | QueryWrapper<PricingDetail> detail = new QueryWrapper<>(); |
| | | detail.lambda().eq(PricingDetail::getPricePramId,bike.getParamId()); |
| | | detail.lambda().eq(PricingDetail::getIsdeleted,Constants.ZERO); |
| | | detail.lambda().last(" limit 1" ) ; |
| | | //查询优先级最高(排序码最小的)可用配价方案 |
| | | PricingDetail pricingDetail = pricingDetailMapper.selectOne(detail); |
| | | if(pricingDetail == null){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), " 该车型暂时不能借车操作哦,请更换其他车型重试哦~"); |
| | | } |
| | | String nowDate = DateUtil.getDateLong(date); |
| | | Holidays holidays = new Holidays(); |
| | | holidays.setHoliday(nowDate); |
| | | holidays.setIsdeleted(Constants.ZERO); |
| | | //检查是否节假日 |
| | | if(holidaysMapper.selectCount(new QueryWrapper<>(holidays)) >0){ |
| | | //如果是节假日 |
| | | memberRides.setBasePrice(pricingDetail.getHolidayBasePrice()); |
| | | memberRides.setBaseTime(pricingDetail.getHolidayBaseTime()); |
| | | memberRides.setUnitPrice(pricingDetail.getHolidayUnitPrice()); |
| | | memberRides.setUnitTime(pricingDetail.getHolidayUnitTime()); |
| | | memberRides.setIsHoliday(Constants.ONE); |
| | | }else{ |
| | | //如果是工作日 |
| | | memberRides.setBasePrice(pricingDetail.getBasePrice()); |
| | | memberRides.setBaseTime(pricingDetail.getBaseTime()); |
| | | memberRides.setUnitPrice(pricingDetail.getUnitPrice()); |
| | | memberRides.setUnitTime(pricingDetail.getUnitTime()); |
| | | memberRides.setIsHoliday(Constants.ZERO); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public MemberRidesDetailResponse refreshLock(String id){ |
| | | MemberRides memberRides = memberRidesMapper.selectById(id); |