k94314517
2023-11-02 38779e77618d173ee31fb5b10161140af64b7058
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -449,14 +449,26 @@
                .eq(Locks::getIsdeleted, Constants.ZERO)
                .last("limit 1"));
        if (Objects.isNull(locks)) {
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "扫码无效,未查询到锁头信息");
//            locks =new Locks();
//            locks.setCode(codes[1]);
//            locks.setSiteId(codes[0]);
//            deviceService.getLockInfo(locks);
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "扫码无效,该站点锁头暂不支持借出业务哦!");
        }
        //查询锁头是否存在车辆 以及是否正常
        if (Constants.formatIntegerNum(locks.getStatus())!=Constants.ZERO) {
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "当前扫码锁头状态错误,无法进行开锁");
            locks =new Locks();
            locks.setCode(codes[1]);
            locks.setSiteId(codes[0]);
            deviceService.getLockInfo(locks);
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "当前扫码锁头状态错误,已尝试更新锁头状态,请稍后重试!");
        }
        if (StringUtils.isBlank(locks.getBikeCode())) {
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "当前扫码锁头无车辆信息,无法进行开锁");
            locks =new Locks();
            locks.setCode(codes[1]);
            locks.setSiteId(codes[0]);
            deviceService.getLockInfo(locks);
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "当前扫码锁头无车辆信息,已尝试更新锁头状态,请稍后重试!");
        }
        MemberRides memberRides = new MemberRides();
        //根据车型查询计价方案
@@ -698,6 +710,7 @@
            sites.setStatus(Constants.ZERO);
            sites.setEditDate(date);
            sites.setLockNum(1);
            sites.setLastLinkDate(date);
            //新增锁头
            sitesMapper.insert(sites);
        }
@@ -751,13 +764,23 @@
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public  int mqttCloseBikeEvent(MemberRides bikes){
        Locks locks  = new Locks();
        locks.setSiteId(bikes.getBackSiteId());
        locks.setCode(bikes.getBackLockId());
        locks.setBikeCode(bikes.getBikeCode());
        locks.setInfo(bikes.getBackCommondId());
        //处理锁头数据
         mqttLockInfoEvent(locks);
        //免费骑行时长查询,数据字典配置
        if(StringUtils.isBlank(bikes.getBikeCode()) ||StringUtils.isBlank(bikes.getBackLockId())||StringUtils.isBlank(bikes.getBackSiteId())){
          throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"还车上报参数错误!");
        }
        QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
        List<Integer> statusList = new ArrayList<>();
        statusList.add(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey());
        statusList.add(Constants.MEMBER_RIDES_STATUS.LOCKING.getKey());
        wrapper.lambda().eq(MemberRides::getBikeCode, bikes.getBikeCode());
        wrapper.lambda().eq(MemberRides::getStatus, Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey());
        wrapper.lambda().in(MemberRides::getStatus, statusList);
        wrapper.lambda().eq(MemberRides::getIsdeleted, Constants.ZERO);
        //根据车辆编码查询骑行中的骑行记录信息,如果有进行还车操作
        MemberRides memberRides = memberRidesMapper.selectOne(wrapper.last("limit  1"));