jiangping
2025-02-17 5db5a84cee050795051a27181982bcc9a64ff19e
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -386,6 +386,7 @@
        Bikes bike = new Bikes();
        bike.setIsdeleted(Constants.ZERO);
        bike.setCode(model.getBikeCode());
        bike.setType(model.getType());
        bike.setSiteId(update.getBackSiteId());
        bike.setLockId(update.getBackLockId());
        if(bikesMapper.selectCount(new QueryWrapper<>(bike)) == 0){
@@ -393,6 +394,7 @@
            bike.setParamId(model.getParamId());
            bike.setLastBackDate(model.getRentDate());
            bike.setStatus(Constants.ZERO);
            bike.setType(Constants.ZERO);
            bike.setInfo("强制还车绑定");
            bikesMapper.insert(bike);
        }
@@ -477,6 +479,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(), "当前车辆暂时无法使用,请稍后重试或更换其它车辆!");
            }
@@ -495,10 +498,10 @@
                memberRides.setRentLockId(locks.getCode());
                memberRides.setOrdreId(goodsorder.getId());
                memberRides.setRentDate(new Date());
                memberRides.setType(Constants.ZERO);
                memberRides.setBalance(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode()));
                memberRides.setStatus(Constants.MEMBER_RIDES_STATUS.LOCKING.getKey());
                memberRides.setCloseStatus(Constants.ZERO);
                memberRidesMapper.insert(memberRides);
                BeanUtils.copyProperties(memberRides, memberRidesDetailResponse);
            }else{
@@ -604,7 +607,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 +624,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 +660,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 +672,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);
                }
@@ -712,6 +719,7 @@
            bikes.setEditDate(bikes.getCreateDate());
            bikes.setSiteId(model.getSiteId());
            bikes.setLockId(model.getCode());
            bikes.setType(Constants.ZERO);
            bikes.setCode(model.getBikeCode());
            bikes.setParamId(getBileTypeByCode(model.getBikeCode()));
            bikesMapper.insert(bikes);