| | |
| | | }catch (Exception e){ |
| | | } |
| | | //最高价格车型的骑行记录 |
| | | MemberRides topRides = this.getMaxRides(memberRides,durationSum,freeTime,true); |
| | | |
| | | //MemberRides topRides = this.getMaxRides(memberRides,durationSum,freeTime,true); |
| | | MemberRides topRides =null; |
| | | for(MemberRides rides : memberRides){ |
| | | if ( true && Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey()!=(Constants.formatIntegerNum(rides.getStatus()))){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前订单有未完成的骑行,无法强制结算"); |
| | | } |
| | | durationSum += Constants.formatIntegerNum(rides.getDuration());//累计骑行(计费)时长 |
| | | if(durationSum-freeTime > 0 ){//只算超出免费时长的数据 |
| | | if(topRides == null ||( Constants.formatIntegerNum(topRides.getSortnum())<Constants.formatIntegerNum(rides.getSortnum()) |
| | | && Constants.formatIntegerNum(rides.getDuration())>0)){ |
| | | topRides = rides; |
| | | } |
| | | } |
| | | } |
| | | //无超过免费时长的骑行记录 查询最后一条记录 |
| | | if(Objects.isNull(topRides)){ |
| | | topRides = memberRidesJoinMapper.selectOne(new QueryWrapper<MemberRides>().lambda().eq(MemberRides::getOrdreId,goodsorder.getId()).orderByDesc(MemberRides::getCreateDate).last("limit 1")); |
| | | } |
| | | // BigDecimal closeMoney =( Constants.formatDecimalNum(goodsorder.getMoney()).subtract(refund.getMoney())); |
| | | //退款乐行 |
| | | // int type =Constants.formatIntegerNum(refund.getType()); |
| | |
| | | transactionsMapper.insert(transactions); |
| | | } |
| | | |
| | | @Override |
| | | public List<MemberRides> getMemberRidesForClose(String id) { |
| | | MPJLambdaWrapper<MemberRides> wrapper = new MPJLambdaWrapper<>(); |
| | | wrapper.eq(MemberRides::getOrdreId,id); |
| | | wrapper.ne(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey()); |
| | | wrapper.selectAll(MemberRides.class) |
| | | .selectAs(BaseParam::getSortnum, MemberRides::getSortnum) |
| | | .selectAs(BaseParam::getName, MemberRides::getParamName); |
| | | wrapper.leftJoin(BaseParam.class, BaseParam::getId, MemberRides::getParamId); |
| | | wrapper.orderByDesc(BaseParam::getSortnum); |
| | | //取最高车型作为计价方案 |
| | | //查询所有骑行记录 |
| | | List<MemberRides> memberRides = memberRidesJoinMapper.selectJoinList(MemberRides.class,wrapper); |
| | | return memberRides; |
| | | } |
| | | |
| | | private RidesDetailResponse getCloseMoneyByRides(List<MemberRides> memberRides,int freeTime,boolean isClose,BigDecimal yjMoney,String memberId,Boolean unOver) { |
| | | RidesDetailResponse ridesDetailResponse = new RidesDetailResponse(); |
| | | ridesDetailResponse.setHaveDisCount(Constants.ZERO); |
| | | BigDecimal closeMoney = new BigDecimal(0.00); |
| | | int durationSum = 0; |
| | | //最高价格车型的骑行记录 |
| | | MemberRides topRides = this.getMaxRides(memberRides,durationSum,freeTime,isClose); |
| | | |
| | | //MemberRides topRides = this.getMaxRides(memberRides,durationSum,freeTime,isClose); |
| | | 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());//累计骑行(计费)时长 |
| | | if(durationSum-freeTime > 0 ){//只算超出免费时长的数据 |
| | | if(topRides == null ||( Constants.formatIntegerNum(topRides.getSortnum())<Constants.formatIntegerNum(rides.getSortnum()) |
| | | && Constants.formatIntegerNum(rides.getDuration())>0)){ |
| | | topRides = rides; |
| | | } |
| | | } |
| | | } |
| | | //计算应付金额 |
| | | if( topRides != null){ |
| | | int baseTime =Constants.formatIntegerNum(topRides.getBaseTime()); |
| | |
| | | ridesDetailResponse.setAmount(closeMoney); |
| | | ridesDetailResponse.setBikeType(topRides!=null?topRides.getParamName():"-"); |
| | | return ridesDetailResponse; |
| | | } |
| | | |
| | | @Override |
| | | public List<MemberRides> getMemberRidesForClose(String id) { |
| | | MPJLambdaWrapper<MemberRides> wrapper = new MPJLambdaWrapper<>(); |
| | | wrapper.eq(MemberRides::getOrdreId,id); |
| | | wrapper.ne(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey()); |
| | | wrapper.selectAll(MemberRides.class) |
| | | .selectAs(BaseParam::getSortnum, MemberRides::getSortnum) |
| | | .selectAs(BaseParam::getName, MemberRides::getParamName); |
| | | wrapper.leftJoin(BaseParam.class, BaseParam::getId, MemberRides::getParamId); |
| | | wrapper.orderByDesc(BaseParam::getSortnum); |
| | | //取最高车型作为计价方案 |
| | | //查询所有骑行记录 |
| | | List<MemberRides> memberRides = memberRidesJoinMapper.selectJoinList(MemberRides.class,wrapper); |
| | | return memberRides; |
| | | } |
| | | |
| | | @Override |
| | |
| | | BigDecimal amount = goodsorderList.stream() |
| | | .filter(i->StringUtils.isNotBlank(i.getParamId())&&DateUtil.getShortDateStr(date).equals(DateUtil.getShortDateStr(i.getCreateDate()))&&baseParam.getId().equals(i.getParamId())) |
| | | .map(i->i.getCloseMoney()).reduce(BigDecimal.ZERO,BigDecimal::add); |
| | | dataChildList.add(amount.divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP).toString()); |
| | | amount = amount.divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP); |
| | | dataChildList.add(amount.toString()); |
| | | totalAmount = amount.add(totalAmount); |
| | | } |
| | | BikeIncomeDetailReportVO detail = new BikeIncomeDetailReportVO(); |
| | | dataChildList.add("¥"+totalAmount); |
| | | parentList.add(dataChildList); |
| | | } |