111
k94314517
2025-02-28 04dba6a17f836b5fbdf0eedff8a129c6785fd8a2
server/web/src/main/java/com/doumee/jtt808/web/service/Jtt808Service.java
@@ -151,7 +151,7 @@
                    if(bike.getSiteId() ==null){
                        throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,请按要求前往停车点停车!");
                    }
                    lockBikes(bike.getDeviceSn(),Constants.ZERO);//发起关锁指令请求
                    lockBikes(bike.getDeviceSn(),Constants.ONE);//发起关锁指令请求
                    backIds.add(rides.getId());
                    rides.setStatus(Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey());//已还车
                    rides.setBackSiteId(bike.getSiteId());//还车站点
@@ -171,6 +171,10 @@
        goodsorder.setEditDate(date);
        goodsorder.setEditor(null);
        goodsorderService.dealCloseGoodsorderBiz( goodsorder,Constants.REFUND_TYPE.NORMAL.getKey(),memberRides);
        //更新电动车车辆状态
        bikesMapper.update(null,new UpdateWrapper<Bikes>().lambda().set(Bikes::getStatus,Constants.ZERO).eq(Bikes::getType,Constants.ONE)
                .apply(" code in ( select m.bike_code from member_rides m where m.ordre_id = '"+goodsorder.getId()+"' ) ")
        );
    }
    private Bikes getElecBikeByCode(String bikeCode) {
@@ -217,6 +221,9 @@
        }
    }
    /**
     * 查询停车站点信息
     * @return
@@ -237,7 +244,7 @@
            if(array == null || array.size() ==0){
                continue;
            }
            if(PositionUtil.isInPolygon(lat,lng,array)){
            if(PositionUtil.isInPolygon(lng,lat,array)){
                //如果在停车点范围内;
                site = sites;
                break;
@@ -279,6 +286,7 @@
        Bikes bike = getElecBikeByCode(memberRides.getBikeCode());
        //查询停车位置是否符合停车位置规范
        checkPausePostionBiz(bike);
        lockBikes(bike.getDeviceSn(),Constants.ONE);//发起关锁指令请求
        memberRides.setPauseDate(new Date());
        memberRides.setEditDate(memberRides.getBackDate());
        memberRides.setStatus(Constants.MEMBER_RIDES_STATUS.RIDES_PAUSING.getKey());
@@ -292,7 +300,7 @@
            ruleType =Integer.parseInt( systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.PAUSE_BIKE_TYPE).getCode());
        }catch (Exception e){
        }
        if(ruleType == 0){
        if(ruleType == 1){
            //如果仅限于园区临时停车
            List<LocaltionDTO> array = new ArrayList<>();
            try {
@@ -303,7 +311,7 @@
            if(array == null || array.size() ==0){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,园区运营区域配置有误,请联系园区管理员处理!");
            }
            if( !PositionUtil.isInPolygon(bike.getLatitude().doubleValue(),bike.getLongitude().doubleValue(),array)){
            if( !PositionUtil.isInPolygon(bike.getLongitude().doubleValue(),bike.getLatitude().doubleValue(),array)){
                //如果在停车点范围内;
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,请按要求在园区运营区域范围内停车!");
            }
@@ -403,6 +411,9 @@
            //如果车辆类型是空
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), " 该车型暂时不能借车操作哦,请更换其他车型重试!");
        }
        if(!Constants.equalsInteger(bike.getStatus(),Constants.ZERO)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该车辆已被锁定借用,请尝试更换其他车辆!");
        }
        cacheOpenLock.put(openElecBikeRequest.getCode(), 1);
        try {
            //判断当前是否已支付押金
@@ -434,7 +445,7 @@
            //根据车型查询计价方案
            isValidePricingType(bike,memberRides) ;
            MemberRidesDetailResponse memberRidesDetailResponse = new MemberRidesDetailResponse();
            this.lockBikes(bike.getDeviceSn(),1);
            this.lockBikes(bike.getDeviceSn(),0);
            //存储骑行记录
            memberRides.setId(Constants.getUUID());
            memberRides.setIsdeleted(Constants.ZERO);
@@ -492,7 +503,7 @@
            //如果车辆类型是空
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "车型信息异常,请联系管理员");
        }
        this.lockBikes(bike.getDeviceSn(),1);
        this.lockBikes(bike.getDeviceSn(),0);
        //更新骑行状态为骑行中
        memberRides.setEditDate(memberRides.getBackDate());
        memberRides.setStatus(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey());
@@ -587,7 +598,7 @@
                                .eq(Bikes::getIsdeleted,Constants.ZERO)
                                .eq(Bikes::getCode,rides.getBikeCode())
                        );
                        lockBikes(bike.getDeviceSn(),Constants.ZERO);//发起关锁指令请求
                        lockBikes(bike.getDeviceSn(),Constants.ONE);//发起关锁指令请求
                        rides.setStatus(Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey());//已还车
                        rides.setBackSiteId(bike.getSiteId());//还车站点
                        rides.setBackDate(new Date());
@@ -605,6 +616,12 @@
            goodsorder.setEditDate(date);
            goodsorder.setEditor(null);
            goodsorderService.dealCloseGoodsorderBiz( goodsorder,Constants.REFUND_TYPE.NORMAL.getKey(),memberRides);
            //更新电动车车辆状态
            bikesMapper.update(null,new UpdateWrapper<Bikes>().lambda().set(Bikes::getStatus,Constants.ZERO).eq(Bikes::getType,Constants.ONE)
                    .apply(" code in ( select m.bike_code from member_rides m where m.ordre_id = '"+goodsorder.getId()+"' ) ")
            );
            //发送小程序通知
            Member member = memberMapper.selectById(goodsorder.getMemberId());
            if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenid())){
@@ -617,5 +634,9 @@
//    public void test(double lat,double lng){
//        this.getBackSiteByPostion(lat,lng);
//    }
}