From 8b536f150e233b9bbd756b999254a58468a6bc5c Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期四, 20 三月 2025 15:03:51 +0800 Subject: [PATCH] 111 --- server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 74 +++++++++++++++++++++++++----------- 1 files changed, 51 insertions(+), 23 deletions(-) diff --git a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java index 4d9ad97..9b2de01 100644 --- a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java +++ b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java @@ -701,8 +701,24 @@ }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()); @@ -839,14 +855,42 @@ 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()); @@ -863,7 +907,7 @@ topRides.setActualPrice(closeMoney); //2025骞�3鏈�18鏃�11:28:38 杩斿洖楠戣浠锋牸鏈�楂樼殑杞﹀瀷 ridesDetailResponse.setParamId(topRides.getParamId()); - } + } //鏌ヨ鏄惁瀛樺湪濂楅淇℃伅 DiscountMember discountMember = this.getUseDiscount(memberId,durationSum,Objects.nonNull(topRides)?topRides.getType():null); //璁$畻鎶垫墸閲戦 @@ -927,22 +971,6 @@ 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 @@ -1716,10 +1744,10 @@ 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); } -- Gitblit v1.9.3