jiangping
2025-02-14 c185de12314b8733f23ed7856e6d1e87ee95c1ca
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -477,6 +477,7 @@
                locks =new Locks();
                locks.setCode(Constants.formatIntegerFromStr(codes[1]));
                locks.setSiteId(codes[0]);
                locks.setId(codes[1]);
                deviceService.getLockInfo(locks);
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "当前车辆暂时无法使用,请稍后重试或更换其它车辆!");
            }
@@ -604,7 +605,7 @@
        //车辆记录
        Bikes bikes = dealBikesByParam(model);
        //状态,0闭合, 1打开,2运行中, 3异常
        if(locks.getStatus() == Constants.LockStatus.open){
        if(Constants.formatIntegerNum(locks.getStatus()) == Constants.LockStatus.open){
            //如果是开锁业务,判断是否有开锁中的信息
            MemberRides memberRides = new MemberRides();
            memberRides.setStatus(Constants.MEMBER_RIDES_STATUS.LOCKING.getKey());
@@ -621,7 +622,7 @@
            update.setId(memberRides.getId());
            //(更新请求开锁中的锁头关联的骑行记录)
            memberRidesMapper.updateById( update);
        }else   if(locks.getStatus() == Constants.LockStatus.closed ){
        }else   if(Constants.formatIntegerNum(locks.getStatus())  == Constants.LockStatus.closed ){
            //如果是关锁业务,判断触发还车
            if(StringUtils.isNotBlank(locks.getBikeCode())){
                MemberRides mbikes = new MemberRides();
@@ -657,6 +658,10 @@
    @Override
    public void autoRefreshLockStatus() {
//        memberRidesMapper.update(null,new UpdateWrapper<MemberRides>().lambda()
//                        .eq(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.LOCKING.getKey())
//                .apply(""  )
//                .set(MemberRides::getStatus, Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey()))
        QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
        wrapper.lambda()
@@ -665,10 +670,10 @@
        List<MemberRides> memberRides = memberRidesMapper.selectList(wrapper);
        if (!CollectionUtils.isEmpty(memberRides)){
            memberRides.forEach(s->{
                Integer between = DateUtil.between(s.getCreateDate(), new Date());
                // 大于阈值
                if (between >= 2){
                    s.setStatus(Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey());
                Integer between = DateUtil.betweenSeconds(s.getCreateDate(), new Date());
                // 大于阈值,自动设为开锁成功(如实际未开锁,联系站点管理员后台进行强制还车操作)
                if (between >= 20){
                    s.setStatus(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey());
                    s.setEditDate(new Date());
                    memberRidesMapper.updateById(s);
                }
@@ -792,7 +797,7 @@
            if(Objects.nonNull(sites)){
                Sites sites1 = new Sites();
                sites1.setId(sites.getId());
                sites1.setLockNum(sites.getLockNum()+1);
                sites1.setLockNum(Constants.formatIntegerNum(sites.getLockNum())+1);
                sitesMapper.updateById(sites1);
            }
        }else{