jiaosong
2023-10-24 83c11693a3f6f238aff1de17ef6593d602ec245a
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -220,7 +220,9 @@
        queryWrapper.ge(model.getRentDateStart()!=null, MemberRides::getRentDate,model.getRentDateStart());
        queryWrapper.le(model.getRentDateEnd()!=null, MemberRides::getRentDate,model.getRentDateEnd());
        queryWrapper.eq(model.getCloseStatus()!=null,MemberRides::getCloseStatus, model.getCloseStatus());
        queryWrapper.eq(model.getStatus()!=null,MemberRides::getStatus, model.getStatus());
        queryWrapper.eq(model.getGoodsorderId()!=null,MemberRides::getOrdreId, model.getGoodsorderId());
//        queryWrapper.eq(MemberRides::getBackType, Constants.ZERO);
        queryWrapper.in(MemberRides::getStatus,
                Arrays.asList(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey(),Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey()));
        queryWrapper
@@ -271,7 +273,7 @@
            throw  new BusinessException( ResponseStatus.DATA_EMPTY );
        }
        if(Constants.formatIntegerNum(model.getStatus()) != Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey()||
        Constants.formatIntegerNum(model.getCloseStatus()) != Constants.ONE){
        Constants.formatIntegerNum(model.getCloseStatus()) != Constants.ZERO){
            throw  new BusinessException( ResponseStatus.NOT_ALLOWED.getCode(),"对不起,只能针对已还车且未结算的数据进行操作!" );
        }
        if(Constants.formatIntegerNum(memberRides.getDuration()) == Constants.formatIntegerNum(model.getDuration())){
@@ -304,12 +306,13 @@
        log.setUserId(user.getId());
        log.setUserType(Constants.ONE);
        log.setParam(JSONObject.toJSONString(memberRides ));
        log.setType(Constants.ActionLogObjType.memberrides);
        log.setObjType(Constants.ActionLogObjType.memberrides);
        log.setResult(Constants.ZERO);
        log.setObjId(model.getId());
        log.setObjType(Constants.ACTIONLOG_TYPE.UPDATE_DURATION.getKey());
        log.setType(Constants.ACTIONLOG_TYPE.UPDATE_DURATION.getKey());
        log.setContent(Constants.ACTIONLOG_TYPE.UPDATE_DURATION.getInfo());
        log.setTitle(Constants.ACTIONLOG_TYPE.UPDATE_DURATION.getName());
        log.setActInfo(memberRides.getInfo());
        //记录操作日志
        actionLogMapper.insert(log);
@@ -336,7 +339,7 @@
        }
        QueryWrapper<SystemDictData> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(SystemDictData::getLabel, Arrays.asList(Constants.FORCE_BACK_SITE,Constants.FORCE_BACK_LOCK));
                .in(SystemDictData::getLabel, Arrays.asList(Constants.FORCE_BACK_SITE,Constants.FORCE_BACK_LOCK,Constants.FREE_RENT_TIME));
        List<SystemDictData> systemDictData = systemDictDataMapper.selectList(wrapper);
        Map<String, SystemDictData> collect = systemDictData.stream().collect(Collectors.toMap(s -> s.getLabel(), s -> s));
@@ -352,8 +355,11 @@
        update.setStatus(Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey());
        update.setBackSiteId(collect.get(Constants.FORCE_BACK_SITE).getCode());
        update.setBackLockId(collect.get(Constants.FORCE_BACK_LOCK).getCode());
        Integer freeRentTime = Integer.valueOf(collect.get(Constants.FREE_RENT_TIME).getCode());
        Integer rideTime = DateUtil.betweenMin(model.getRentDate(), update.getBackDate());
        //计算骑行计费时长
        update.setDuration(DateUtil.betweenMin(model.getRentDate(), update.getBackDate()));
        update.setDuration( rideTime > freeRentTime  ? rideTime : 0 );
        //update.setDuration( freeRentTime > 0 ? rideTime - freeRentTime : rideTime);
        memberRidesMapper.updateById(update);
        //修改前
        String beforeContent = JSONObject.toJSONString(model);
@@ -385,14 +391,15 @@
        log.setUserId(user.getId());
        log.setUserType(Constants.ONE);
        log.setParam(JSONObject.toJSONString(memberRides ));
        log.setType(Constants.ActionLogObjType.memberrides);
        log.setObjType(Constants.ActionLogObjType.memberrides);
        log.setResult(Constants.ZERO);
        log.setObjId(model.getId());
        log.setObjType(Constants.ACTIONLOG_TYPE.FORCE_BACK.getKey());
        log.setType(Constants.ACTIONLOG_TYPE.FORCE_BACK.getKey());
        log.setContent(Constants.ACTIONLOG_TYPE.FORCE_BACK.getInfo());
        log.setTitle(Constants.ACTIONLOG_TYPE.FORCE_BACK.getName());
        log.setActInfo(memberRides.getBackInfo());
        log.setActReason(memberRides.getBackReason());
        log.setActInfo(memberRides.getInfo());
        //记录操作日志
        actionLogMapper.insert(log);
@@ -476,7 +483,6 @@
            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);
@@ -577,34 +583,36 @@
    }
    private Bikes dealBikesByParam(Locks model) {
        if(StringUtils.isNotBlank(model.getBikeCode())){
            UpdateWrapper<Bikes> updateWrapper = new UpdateWrapper<>();
            updateWrapper.lambda().set(Bikes::getCode, null );
            updateWrapper.lambda().set(Bikes::getParamId, null );
            updateWrapper.lambda().set(Bikes::getEditDate, new Date() );
            updateWrapper.lambda().eq(Bikes::getCode, model.getBikeCode() );
            //清空原来的自行车绑定关系
            bikesMapper.update(null, updateWrapper);
        }
        QueryWrapper<Bikes> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(Bikes::getLockId, model.getCode());
        wrapper.lambda().eq(Bikes::getSiteId, model.getSiteId());
        Bikes bikes = bikesMapper.selectOne(wrapper.last("limit 1"));
        if(bikes != null ) {
            if (  StringUtils.equals(model.getBikeCode(), bikes.getCode())){
            if ( !StringUtils.equals(model.getBikeCode(), bikes.getCode())){
                //如果绑定车辆信息发生编号,更换绑定关系
                UpdateWrapper<Bikes> updateWrapper = new UpdateWrapper<>();
                updateWrapper.lambda().set(Bikes::getId, bikes.getId());
                updateWrapper.lambda().eq(Bikes::getId, bikes.getId());
                updateWrapper.lambda().set(Bikes::getCode,model.getBikeCode());
                updateWrapper.lambda().set(Bikes::getParamId,getBileTypeByCode(model.getBikeCode()));
                //更新自行站点锁头绑定自行车信息
                bikesMapper.updateById(bikes);
                bikesMapper.update(null,updateWrapper);
            }
        }else{
            if(StringUtils.isNotBlank(model.getBikeCode())){
                UpdateWrapper<Bikes> updateWrapper = new UpdateWrapper<>();
                updateWrapper.lambda().set(Bikes::getCode, null );
                updateWrapper.lambda().set(Bikes::getParamId, null );
                updateWrapper.lambda().set(Bikes::getEditDate, new Date() );
                updateWrapper.lambda().eq(Bikes::getCode, model.getCode() );
                //清空原来的自行车绑定关系
                bikesMapper.update(null, updateWrapper);
            }
            bikes = new Bikes();
            bikes.setId(Constants.getUUID());
            bikes.setIsdeleted(Constants.ZERO);
            bikes.setCreateDate(new Date());
            bikes.setEditDate(bikes.getCreateDate());
            bikes.setSiteId(model.getSiteId());
            bikes.setLockId(model.getCode());
            bikes.setCode(model.getBikeCode());
@@ -625,7 +633,7 @@
            return  null;
        }
        String type = bikeCode.substring(0,1);
        if(Constants.BIKE_TYPE.contains(type)){
        if(!Constants.BIKE_TYPE.contains(type)){
            return null;
        }
        BaseParam param = new BaseParam();
@@ -653,6 +661,7 @@
            sites.setCode(locks.getSiteId());
            sites.setId(locks.getSiteId());
            sites.setCreateDate(date);
            sites.setEditDate(date);
            sites.setStatus(Constants.ZERO);
            sites.setEditDate(date);
            sites.setLockNum(1);
@@ -679,7 +688,6 @@
            updateWrapper.lambda().set(Locks::getStatus, locks.getStatus() );
            updateWrapper.lambda().set(Locks::getEditDate, new Date() );
            updateWrapper.lambda().set(Locks::getIsdeleted, Constants.ZERO);
            locksMapper.update(null,updateWrapper);
        }
        model.setSites(sites);
@@ -725,7 +733,9 @@
        update.setBackLockId(param.getBackLockId());
        update.setBackSiteId(param.getBackSiteId());
        update.setBackCommondId(param.getBackCommondId());
        int duration =DateUtil.betweenMin(memberRides.getRentDate(),date)-freeTime;
//        int duration =DateUtil.betweenMin(memberRides.getRentDate(),date)-freeTime;
        int min = DateUtil.betweenMin(memberRides.getRentDate(),date);//实际骑行时间
        int duration = min>freeTime?min:0;
        update.setDuration(duration>0?duration:0);
        update.setBackType(Constants.ONE);
        update.setBackInfo("用户正常还车");