From 11e47853b39c6c0acd7074bb1727e4295b70d643 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 15 九月 2025 13:36:43 +0800
Subject: [PATCH] 优化
---
server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 81 ++++++++++++++++++++++++++++------------
1 files changed, 56 insertions(+), 25 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 f04ec9f..74ead5c 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
@@ -252,7 +252,7 @@
if (!CollectionUtils.isEmpty(goodsorderExportVOIPage.getRecords())){
goodsorderExportVOIPage.getRecords().forEach(s->{
- s.setBikeType(s.getType()!=Constants.ZERO?s.getBikeType():Constants.ONE);
+ s.setBikeType(s.getType()==Constants.ZERO?s.getBikeType():Constants.ONE);
s.setMoney(Constants.translateMoney(s.getMoney()));
s.setRefundMoney(Constants.translateMoney(s.getRefundMoney()));
s.setCloseMoney(Constants.translateMoney(s.getCloseMoney()).compareTo(s.getMoney()) > 0 ? s.getMoney() : Constants.translateMoney(s.getCloseMoney()));
@@ -296,6 +296,7 @@
}
if (!CollectionUtils.isEmpty(goodsorderList)){
goodsorderList.forEach(s->{
+ s.setBikeType(s.getType()==Constants.ZERO?s.getBikeType():Constants.ONE);
s.setMoney(Constants.translateMoney(s.getMoney()));
s.setCloseMoney(Constants.translateMoney(s.getCloseMoney()).compareTo(s.getMoney()) > 0 ? s.getMoney() : Constants.translateMoney(s.getCloseMoney()));
s.setRefundMoney(Constants.translateMoney(s.getRefundMoney()));
@@ -323,6 +324,7 @@
if (Objects.nonNull(model.getEndDate())){
queryWrapper.le( Goodsorder::getPayDate, Utils.Date.getEnd(model.getEndDate()));
}
+ queryWrapper.eq(Objects.nonNull(model.getBikeType()),BaseParam::getType,model.getBikeType());
queryWrapper.eq(Constants.equalsInteger(model.getType(),Constants.ONE)&&model.getPayStatus() !=null,Goodsorder::getPayStatus,model.getPayStatus());
queryWrapper.like(model.getCode() !=null,Goodsorder::getCode,model.getCode());
queryWrapper.like(model.getId() !=null,Goodsorder::getId,model.getId());
@@ -699,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());
@@ -837,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());
@@ -861,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);
//璁$畻鎶垫墸閲戦
@@ -925,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
@@ -1112,7 +1142,7 @@
model.setRefundNum(Constants.formatIntegerNum(refund.getCountNum()));
model.setRefundMoney(Constants.translateMoney(Constants.formatDecimalNum(refund.getMoney())));
}
- model.setClosedMoney(model.getPayMoney().subtract(model.getRefundMoney()).subtract(model.getUnClosedMoney()));
+ model.setClosedMoney(model.getPayMoney().add(model.getDiscountMoney()).subtract(model.getRefundMoney()).subtract(model.getUnClosedMoney()));
return model;
}
@Override
@@ -1419,6 +1449,7 @@
public void autoCloseOrder( ) {
Goodsorder goodsorder = new Goodsorder();
goodsorder.setIsdeleted(Constants.ZERO);
+ goodsorder.setType(Constants.ZERO);
goodsorder.setStatus(Constants.goodsorderStatus.pay);
List<Goodsorder> list = findList(goodsorder);
if (!CollectionUtils.isEmpty(list)){
@@ -1435,8 +1466,8 @@
}
});
}
-
}
+
@Override
public void goodsOrderSettlement(String memberId) {
Goodsorder goodsorder = this.goodsorderMapper.selectOne(new QueryWrapper<Goodsorder>()
@@ -1713,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);
+ 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