From cf1d82548a1bd8155ffe9b486df8167aa9e63a7d Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 02 七月 2026 09:19:06 +0800
Subject: [PATCH] 功能开发
---
server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 100 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 73 insertions(+), 27 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..68a49e9 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
@@ -391,6 +391,7 @@
homeResponse.setTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_NOTICE).getCode());
homeResponse.setLeaseVideoUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_TIPS_VIDEO).getCode());
homeResponse.setStopServeTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_TIPS).getCode());
+ homeResponse.setDouyinExchangeTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.DOUYIN_EXCHANGE_TIPS).getCode());
homeResponse.setIsStopServe(this.checkTemporaryStop()?1:0);
homeResponse.setIsBusiness(this.checkBusiness()?0:1);
homeResponse.setUnBusinessTips("钀ヤ笟鏃堕棿涓�"+ systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_STARTTIME).getCode() +" ~ "+systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_ENDTIME).getCode()+"锛岃鍦ㄨ惀涓氭椂闂村唴浣跨敤鏈郴缁�");
@@ -481,6 +482,13 @@
}
}
}
+ // 褰撳墠浼氬憳鏈夋晥濂楅(status=0 姝e父 + isdeleted=0),鎸夎幏寰楁椂闂�(createDate)鍊掑簭,鏈�澶�10鏉�
+ homeResponse.setValidDiscountList(discountMemberMapper.selectList(new QueryWrapper<DiscountMember>().lambda()
+ .eq(DiscountMember::getMemberId, memberId)
+ .eq(DiscountMember::getStatus, Constants.ZERO)
+ .eq(DiscountMember::getIsdeleted, Constants.ZERO)
+ .orderByDesc(DiscountMember::getCreateDate)
+ .last(" limit 10 ")));
return homeResponse;
}
@@ -701,8 +709,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());
@@ -795,7 +819,8 @@
if(type == 0|| type ==1 || type==2){
//濡傛灉鏄樁娈甸��娆�
Goodsorder goodsorder = goodsorderMapper.selectById(refund.getObjId());
- closeGoodsorderDoneNoRefund(goodsorder,type,refund.getMoney(),refund.getId(),null);
+ List<MemberRides> memberRides = getMemberRidesForClose(goodsorder.getId());//鎵撹溅楠戣璁板綍
+ closeGoodsorderDoneNoRefund(goodsorder,type,refund.getMoney(),refund.getId(),memberRides);
}
}
@@ -839,14 +864,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 +916,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);
//璁$畻鎶垫墸閲戦
@@ -930,24 +983,17 @@
}
@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;
+ public void backGoodsorder(GoodsorderBackDTO goodsorderBackDTO) {
+ // platform 绔�:鐧诲綍浜轰粠 Shiro 涓婁笅鏂囧彇,濮旀墭缁欏甫 creator 鐨勯噸杞芥柟娉�
+ LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ if (Objects.isNull(principal) || StringUtils.isBlank(principal.getId())) {
+ throw new BusinessException(ResponseStatus.BE_OVERDUE);
+ }
+ backGoodsorder(goodsorderBackDTO, principal.getId());
}
@Override
- public void backGoodsorder(GoodsorderBackDTO goodsorderBackDTO) {
- LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ public void backGoodsorder(GoodsorderBackDTO goodsorderBackDTO, String creator) {
if(Objects.isNull(goodsorderBackDTO)
|| StringUtils.isBlank(goodsorderBackDTO.getOrderId())
|| Objects.isNull(goodsorderBackDTO.getBackType())
@@ -983,7 +1029,7 @@
refundDTO.setRefundAmount(goodsorderBackDTO.getMoney().multiply(new BigDecimal(100)));
refundDTO.setTotalAmount(goodsorder.getMoney());
refundDTO.setMemberId(goodsorder.getMemberId());
- refundDTO.setCreator(principal.getId());
+ refundDTO.setCreator(creator);
refundDTO.setReason(goodsorderBackDTO.getReason());
refundDTO.setType(Constants.REFUND_TYPE.BACK.getKey());
//閫�璐ч��娆� 鏌ョ湅濂楅璁㈠崟鐘舵�� 鏇存柊璁㈠崟淇℃伅
@@ -1003,7 +1049,7 @@
//鎿嶄綔鏃ュ織
DiscountLog discountLog = new DiscountLog();
discountLog.setIsdeleted(Constants.ZERO);
- discountLog.setCreator(principal.getId());
+ discountLog.setCreator(creator);
discountLog.setCreateDate(new Date());
discountLog.setDiscountMemberId(discountMember.getId());
discountLog.setType(Constants.ONE);
@@ -1114,7 +1160,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
@@ -1331,7 +1377,7 @@
request.setOutTradeNo(goodsorder.getId());
request.setNotifyUrl(WxMiniConfig.wxProperties.getNotifyUrl());//杩欎釜鍥炶皟url蹇呴』鏄痟ttps寮�澶寸殑
Amount amount = new Amount();
- amount.setTotal(goodsorder.getMoney().intValue());
+ amount.setTotal(1);//goodsorder.getMoney().intValue());
request.setAmount(amount);
// PrepayResponse res = WxMiniConfig.wxPayService.prepay(request);
// 璺熶箣鍓嶄笅鍗曠ず渚嬩竴鏍凤紝濉厖棰勪笅鍗曞弬鏁�
@@ -1716,10 +1762,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