From 7d14164d6eb63881290e8cdffb00b16bf3dc51a9 Mon Sep 17 00:00:00 2001 From: jiaosong <jiaosong6760@dingtalk.com> Date: 星期二, 17 十月 2023 10:43:07 +0800 Subject: [PATCH] #订单默认获取已支付的 --- server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 85 ++++++++++++++++++++++++++---------------- 1 files changed, 52 insertions(+), 33 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 4630a8e..a27f44c 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 @@ -57,6 +57,8 @@ import java.net.UnknownHostException; import java.sql.Ref; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -196,20 +198,26 @@ MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(model); queryWrapper.selectAll(Goodsorder.class); - queryWrapper.selectAs(Member::getOpenid, Goodsorder::getMemberOpenid); + queryWrapper.selectAs(Member::getOpenid, Goodsorder::getOpenid); queryWrapper.leftJoin(Member.class, Member::getId ,Goodsorder::getMemberId); queryWrapper.select("(select max(r.done_date) from refund r where r.obj_id=t.id and r.status=2 ) as refund_date"); queryWrapper.select("(select sum(r.money) from refund r where r.obj_id=t.id and r.status=2) as refund_money"); //鏃堕棿娈电瓫閫� - queryWrapper.ge(model.getStartDate()!=null, Goodsorder::getPayDate, model.getStartDate()); - queryWrapper.le(model.getEndDate()!=null, Goodsorder::getPayDate, model.getEndDate()); + if (Objects.nonNull(model.getStartDate())){ + queryWrapper.ge(Goodsorder::getPayDate, Utils.Date.getStart(model.getStartDate())); + } + if (Objects.nonNull(model.getEndDate())){ + queryWrapper.le( Goodsorder::getPayDate, Utils.Date.getEnd(model.getEndDate())); + } queryWrapper.eq(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()); queryWrapper.eq(model.getStatus() !=null,Goodsorder::getStatus,model.getStatus()); queryWrapper.like(model.getOnlineOrderid() !=null,Goodsorder::getOnlineOrderid,model.getOnlineOrderid()); - queryWrapper.like(model.getMemberOpenid() !=null,Member::getOpenid,model.getMemberOpenid()); + queryWrapper.like(model.getOpenid() !=null,Member::getOpenid,model.getOpenid()); queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO); + queryWrapper.eq(Goodsorder::getStatus,Constants.ONE); + queryWrapper.eq(Goodsorder::getPayStatus,Constants.ONE); queryWrapper.orderByDesc(Goodsorder::getPayDate); return queryWrapper; } @@ -241,24 +249,29 @@ 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(Constants.ZERO); + 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()+"锛岃鍦ㄨ惀涓氭椂闂村唴浣跨敤鏈郴缁�"); homeResponse.setAdList(adMapper.selectList(new QueryWrapper<Ad>() .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()); @@ -267,14 +280,15 @@ 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); } } @@ -302,6 +316,7 @@ payOrderDTO.setPayWay(goodsorder.getPayWay()); payOrderDTO.setMoney(Constants.translateMoney(goodsorder.getMoney())); payOrderDTO.setPayDate(goodsorder.getPayDate()); + payOrderDTO.setRefundType(99); payOrderDTO.setOnlineorderId(goodsorder.getOnlineOrderid()); payOrderDTOList.add(0,payOrderDTO); if (!CollectionUtils.isEmpty(refunds)){ @@ -406,7 +421,7 @@ 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()); @@ -425,13 +440,13 @@ 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()); @@ -587,11 +602,7 @@ 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); @@ -601,7 +612,7 @@ 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()))){ //濡傛灉鏄獞琛屼腑 @@ -611,7 +622,7 @@ 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()); @@ -637,9 +648,13 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸叉敮浠樿繃瀹氶噾锛屾棤娉曢噸澶嶈鎿嶄綔"); } //鏄惁澶勪簬灏忕▼搴忓仠姝㈡湇鍔℃椂闂村唴 - this.checkTemporaryStop(); + if(this.checkTemporaryStop()){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_TIPS).getCode()); + }; //鏄惁澶勪簬钀ヤ笟鏃堕棿 - this.checkBusiness(); + if(this.checkBusiness()){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"钀ヤ笟鏃堕棿涓�"+ systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_STARTTIME).getCode() +" ~ "+systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_ENDTIME).getCode()+"锛岃鍦ㄨ惀涓氭椂闂村唴浣跨敤鏈郴缁�"); + }; Goodsorder goodsorder = new Goodsorder(); goodsorder.setId(Constants.getUUID()); goodsorder.setCreateDate(new Date()); @@ -675,21 +690,24 @@ * 楠岃瘉钀ヤ笟鏃堕棿 */ @Override - public void checkBusiness(){ + public Boolean checkBusiness(){ String businessStartTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_STARTTIME).getCode(); String businessEndTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_ENDTIME).getCode(); - String nowTime = DateUtil.getDate(new Date(),"HH:mm"); + LocalTime currentTime = LocalTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm"); + String nowTime = currentTime.format(formatter); if(Integer.valueOf(nowTime.replace(":",""))<= Integer.valueOf(businessStartTime.replace(":","")) ||Integer.valueOf(nowTime.replace(":","")) > Integer.valueOf(businessEndTime.replace(":",""))){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"钀ヤ笟鏃堕棿涓�06:00 ~ 23:59锛岃鍦ㄨ惀涓氭椂闂村唴浣跨敤鏈郴缁�"); + return true; } + return false; } /** * 涓存椂鍋滄鏈嶅姟 鏈氦鎶奸噾鐨勭敤鎴凤紝鏃犳硶鎵溅浣跨敤锛涘凡缁忎氦杩囨娂閲戠殑鐢ㄦ埛鍙互缁х画鎵爜楠戣锛� */ @Override - public void checkTemporaryStop(){ + public Boolean checkTemporaryStop(){ if(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.IS_STOP_SERVE).getCode().equals(Constants.ONE)){ String stopServeStartTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_STARTTIME).getCode(); String stopServeEndTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_ENDTIME).getCode(); @@ -697,9 +715,10 @@ long s = DateUtil.StringToDate(stopServeStartTime).getTime(); long e = DateUtil.StringToDate(stopServeEndTime).getTime(); if(e>System.currentTimeMillis()&&s<=System.currentTimeMillis()){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_TIPS).getCode()); + return true; } } + return false; } -- Gitblit v1.9.3