| | |
| | | homeResponse.setDeposit(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode())); |
| | | homeResponse.setTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.TIPS).getCode()); |
| | | homeResponse.setLeaseVideoUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_TIPS_VIDEO).getCode()); |
| | | homeResponse.setPricingRules(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PRICING_RULE).getCode()); |
| | | homeResponse.setStopServeTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_TIPS).getCode()); |
| | | homeResponse.setIsStopServe(this.checkTemporaryStop()?1:0); |
| | | homeResponse.setIsBusiness(this.checkBusiness()?0:1); |
| | |
| | | .eq("isdeleted",Constants.ZERO) |
| | | .eq("status",Constants.ZERO) |
| | | .orderByDesc("create_date") |
| | | )); |
| | | //查询是否存在 已支付的 押金订单 |
| | | Integer status = this.goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>() |
| | | .eq("member_id",memberId) |
| | | .eq("status",Constants.goodsorderStatus.pay)); |
| | | homeResponse.setDepositStatus(status); |
| | | ));; |
| | | homeResponse.setRideStatus(-1); |
| | | if(homeResponse.getDepositStatus()==Constants.goodsorderStatus.pay) { |
| | | //查询是否存在 已支付的 押金订单 |
| | | Goodsorder goodsorder = this.goodsorderMapper.selectOne(new QueryWrapper<Goodsorder>() |
| | | .eq("member_id",memberId) |
| | | .eq("status",Constants.goodsorderStatus.pay) |
| | | .last(" limit 1 ")); |
| | | if(!Objects.isNull(goodsorder)&&goodsorder.getStatus().equals(Constants.goodsorderStatus.pay)){ |
| | | homeResponse.setDepositStatus(Constants.goodsorderStatus.pay); |
| | | homeResponse.setGoodsOrderId(goodsorder.getId()); |
| | | //查询当前骑行状态 |
| | | MemberRides memberRides = memberRidesJoinMapper.selectOne(new QueryWrapper<MemberRides>().eq("member_id", memberId) |
| | | .orderByDesc(" create_date ") |
| | | MemberRides memberRides = memberRidesJoinMapper.selectOne(new QueryWrapper<MemberRides>().lambda() |
| | | .eq(MemberRides::getMemberId, memberId) |
| | | .eq(MemberRides::getOrdreId,goodsorder.getId()) |
| | | .orderByDesc(MemberRides::getCreateDate) |
| | | .last(" limit 1 ")); |
| | | if (!Objects.isNull(memberRides)) { |
| | | homeResponse.setRideStatus(memberRides.getStatus()); |
| | |
| | | if(!Objects.isNull(baseParam)){ |
| | | memberRidesResponse.setBikeType(baseParam.getName()); |
| | | } |
| | | memberRidesResponse.setRideId(memberRides.getId()); |
| | | memberRidesResponse.setRideStartTime(memberRides.getRentDate()); |
| | | memberRidesResponse.setRideEndTime(memberRides.getBackDate()); |
| | | memberRidesResponse.setRideTime(DateUtil.betweenMin(memberRidesResponse.getRideStartTime(),memberRidesResponse.getRideEndTime())); |
| | | memberRidesResponse.setBikeCode(memberRides.getBikeCode()); |
| | | memberRidesResponse.setBasePrice(memberRides.getBasePrice()); |
| | | memberRidesResponse.setBaseTime(memberRides.getBaseTime()); |
| | | memberRidesResponse.setUnitTime(memberRidesResponse.getUnitTime()); |
| | | memberRidesResponse.setUnitPrice(memberRidesResponse.getUnitPrice()); |
| | | memberRidesResponse.setUnitTime(memberRides.getUnitTime()); |
| | | memberRidesResponse.setUnitPrice(memberRides.getUnitPrice()); |
| | | homeResponse.setMemberRidesResponse(memberRidesResponse); |
| | | } |
| | | } |
| | |
| | | transactions.setCreateDate(new Date()); |
| | | transactions.setIsdeleted(Constants.ZERO); |
| | | transactions.setOrderId(goodsorder.getId()); |
| | | transactions.setMoney(goodsorder.getMoney()); |
| | | transactions.setMoney(goodsorder.getMoney().subtract(new BigDecimal(refundMoney))); |
| | | transactions.setType(Constants.TRANSACTIONS_TYPE.CONSUMPTION.getKey()); |
| | | transactions.setDoneDate(new Date()); |
| | | transactions.setTitle(Constants.TRANSACTIONS_TYPE.CONSUMPTION.getName()); |
| | |
| | | BigDecimal closeMoney = new BigDecimal(0.00); |
| | | int durationSum = 0; |
| | | //取最高车型计算方案结算订单 |
| | | MemberRides topRides =null; |
| | | for(MemberRides rides : memberRides){ |
| | | if ( isClose && Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey()!=(Constants.formatIntegerNum(rides.getStatus()))){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前订单有未完成的骑行,无法强制结算"); |
| | | } |
| | | durationSum += Constants.formatIntegerNum(rides.getDuration());//累计骑行(计费)时长 |
| | | } |
| | | MemberRides topRides =memberRides.get(0); |
| | | if(durationSum > 0 && topRides != null){ |
| | | int baseTime =Constants.formatIntegerNum(topRides.getBaseTime()); |
| | | closeMoney = Constants.formatDecimalNum(topRides.getBasePrice()); |
| | |
| | | int finalFreeTime = freeTime; |
| | | List<MemberRidesResponse> collect = memberRides.stream().map(s -> { |
| | | MemberRidesResponse memberRidesResponse = new MemberRidesResponse(); |
| | | Date endTime =memberRidesResponse.getRideEndTime(); |
| | | if ( Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey()!=(Constants.formatIntegerNum(s.getStatus()))){ |
| | | //如果是骑行中 |
| | | endTime = new Date(); |
| | | } |
| | | Date endTime =s.getBackDate(); |
| | | int rideTime =DateUtil.betweenMin(s.getRentDate(), endTime); |
| | | memberRidesResponse.setRideStartTime(s.getRentDate()); |
| | | memberRidesResponse.setRideEndTime(endTime); |
| | |
| | | memberRidesResponse.setBikeCode(s.getBikeCode()); |
| | | memberRidesResponse.setBasePrice(s.getBasePrice()); |
| | | memberRidesResponse.setBaseTime(s.getBaseTime()); |
| | | memberRidesResponse.setUnitPrice(s.getUnitTime()); |
| | | memberRidesResponse.setUnitPrice(s.getUnitPrice()); |
| | | memberRidesResponse.setUnitTime(s.getUnitTime()); |
| | | if ( Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey()!=(Constants.formatIntegerNum(s.getStatus()))){ |
| | | //如果是骑行中 |
| | |
| | | return memberRidesResponse; |
| | | }).collect(Collectors.toList()); |
| | | //累计和预算结算金额 |
| | | RidesDetailResponse ridesDetailResponse = getCloseMoneyByRides(memberRides,false);; |
| | | RidesDetailResponse ridesDetailResponse = getCloseMoneyByRides(memberRides,false);; |
| | | if(Constants.formatIntegerNum(goodsorder.getStatus())!= Constants.goodsorderStatus.pay){ |
| | | //如果非已支付但未结算,使用订单金额 |
| | | ridesDetailResponse.setAmount(goodsorder.getCloseMoney()); |