jiangping
2025-02-18 0683b116ec62b4dff8570dba196b0ad749581a8a
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -244,6 +244,8 @@
                Arrays.asList(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey(),Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey()));
        queryWrapper
                .selectAs(MemberRides::getId,MemberRidesDTO::getId)
                .selectAs(MemberRides::getDiscountPrice,MemberRidesDTO::getDiscountPrice)
                .selectAs(MemberRides::getType,MemberRidesDTO::getType)
                .selectAs(Member::getOpenid,MemberRidesDTO::getOpenid)
                .selectAs(MemberRides::getBikeCode,MemberRidesDTO::getBikeCode)
                .selectAs(MemberRides::getCloseStatus,MemberRidesDTO::getCloseStatus)
@@ -386,6 +388,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 +396,7 @@
            bike.setParamId(model.getParamId());
            bike.setLastBackDate(model.getRentDate());
            bike.setStatus(Constants.ZERO);
            bike.setType(Constants.ZERO);
            bike.setInfo("强制还车绑定");
            bikesMapper.insert(bike);
        }
@@ -477,6 +481,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 +500,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 +609,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 +626,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();
@@ -670,9 +675,9 @@
        if (!CollectionUtils.isEmpty(memberRides)){
            memberRides.forEach(s->{
                Integer between = DateUtil.betweenSeconds(s.getCreateDate(), new Date());
                // 大于阈值
                // 大于阈值,自动设为开锁成功(如实际未开锁,联系站点管理员后台进行强制还车操作)
                if (between >= 20){
                    s.setStatus(Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey());
                    s.setStatus(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey());
                    s.setEditDate(new Date());
                    memberRidesMapper.updateById(s);
                }
@@ -716,6 +721,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);