From 61190752c2edf563ebce2f7c94653b6a91cf8c5e Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 07 十一月 2023 15:43:36 +0800
Subject: [PATCH] ss

---
 server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java |   47 ++++++++++++++++++++---
 server/services/src/main/resources/application-test.yml                                    |    2 
 server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java               |    3 +
 server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java  |   21 ++++++++--
 server/platform/src/main/resources/application.yml                                         |    2 
 5 files changed, 62 insertions(+), 13 deletions(-)

diff --git a/server/platform/src/main/resources/application.yml b/server/platform/src/main/resources/application.yml
index e56a8ac..82e580e 100644
--- a/server/platform/src/main/resources/application.yml
+++ b/server/platform/src/main/resources/application.yml
@@ -9,7 +9,7 @@
 #  application:
 #    name: parkbike
   profiles:
-    active: dev
+    active: test
   # JSON杩斿洖閰嶇疆
   jackson:
     # 榛樿鏃跺尯
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java b/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java
index a39fb50..d41374d 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java
@@ -153,5 +153,8 @@
     @ApiModelProperty(value = "楠戣鏃堕暱")
     @TableField(exist = false)
     private Integer rideTime;
+    @ApiModelProperty(value = "鎺掑簭鐮侊紙鍗囧簭锛�", example = "1")
+    @TableField(exist = false)
+    private Integer sortnum;
 
 }
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 a5e4e76..3c2fab6 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
@@ -483,7 +483,7 @@
         BigDecimal closeMoney = new BigDecimal(0.00);
         if (!CollectionUtils.isEmpty(memberRides)){
             //楠戣鎬绘椂闀�
-            closeMoney = getCloseMoneyByRides(memberRides,true).getAmount();
+            closeMoney = getCloseMoneyByRides(memberRides,true,goodsorder.getMoney()).getAmount();
             //瀹為檯缁撶畻浠锋牸锛岃褰曞湪鏈�楂樿溅鍨嬭褰曚笂
             memberRides.get(0).setActualPrice(closeMoney);
             for(MemberRides model :memberRides){
@@ -552,18 +552,22 @@
         goodsorderMapper.updateById(update);
     }
 
-    private RidesDetailResponse    getCloseMoneyByRides(List<MemberRides> memberRides,boolean isClose) {
+    private RidesDetailResponse    getCloseMoneyByRides(List<MemberRides> memberRides,boolean isClose,BigDecimal yjMoney) {
         RidesDetailResponse ridesDetailResponse = new RidesDetailResponse();
         BigDecimal closeMoney = new BigDecimal(0.00);
         int durationSum = 0;
+        MemberRides topRides =memberRides.get(0);
         //鍙栨渶楂樿溅鍨嬭绠楁柟妗堢粨绠楄鍗�
         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(Constants.formatIntegerNum(topRides.getSortnum())<Constants.formatIntegerNum(rides.getSortnum())){
+                topRides = rides;
+            }
         }
-        MemberRides topRides =memberRides.get(0);
+//        MemberRides topRides =memberRides.get(0);
         if(durationSum > 0 && topRides != null){
             int baseTime =Constants.formatIntegerNum(topRides.getBaseTime());
             closeMoney = Constants.formatDecimalNum(topRides.getBasePrice());
@@ -577,6 +581,10 @@
                 }
             }
         }
+        //濡傛灉璁㈠崟浠锋牸灏侀《浜嗭紝鍙栬鍗� 浠锋牸
+        if(Constants.compareBigdecimal(closeMoney, yjMoney) ==1){
+            closeMoney = yjMoney;
+        }
         ridesDetailResponse.setDuration(durationSum);
         ridesDetailResponse.setAmount(closeMoney);
         ridesDetailResponse.setBikeType(topRides.getParamName());
@@ -588,7 +596,9 @@
         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::getName, MemberRides::getParamName);
+        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);
         //鍙栨渶楂樿溅鍨嬩綔涓鸿浠锋柟妗�
@@ -731,6 +741,7 @@
         List<MemberRides> memberRides = memberRidesJoinMapper.selectJoinList(MemberRides.class,new MPJLambdaWrapper<MemberRides>()
                 .selectAll(MemberRides.class)
                 .selectAs(BaseParam::getName,MemberRides::getParamName)
+                .selectAs(BaseParam::getSortnum,MemberRides::getSortnum)
                 .leftJoin(BaseParam.class,BaseParam::getId,MemberRides::getParamId)
                 .eq(MemberRides::getOrdreId,id)
                 .in(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey(),Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey())
@@ -769,7 +780,7 @@
                 return memberRidesResponse;
             }).collect(Collectors.toList());
             //绱鍜岄绠楃粨绠楅噾棰�
-            RidesDetailResponse ridesDetailResponse = getCloseMoneyByRides(memberRides,false);;
+            RidesDetailResponse ridesDetailResponse = getCloseMoneyByRides(memberRides,false,goodsorder.getMoney());
             if(Constants.formatIntegerNum(goodsorder.getStatus())!= Constants.goodsorderStatus.pay){
                 //濡傛灉闈炲凡鏀粯浣嗘湭缁撶畻锛屼娇鐢ㄨ鍗曢噾棰�
                 ridesDetailResponse.setAmount(goodsorder.getCloseMoney());
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
index 8cf75ff..e42647e 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -603,6 +603,35 @@
             update.setId(memberRides.getId());
             //锛堟洿鏂拌姹傚紑閿佷腑鐨勯攣澶村叧鑱旂殑楠戣璁板綍锛�
             memberRidesMapper.updateById( update);
+        }else   if(locks.getStatus() == Constants.LockStatus.closed ){
+            //濡傛灉鏄叧閿佷笟鍔★紝鍒ゆ柇瑙﹀彂杩樿溅
+            if(StringUtils.isNotBlank(locks.getBikeCode())){
+                MemberRides mbikes = new MemberRides();
+                mbikes.setBackLockId(locks.getCode());
+                mbikes.setBackSiteId(locks.getSiteId());
+                mbikes.setBikeCode(locks.getBikeCode());
+                mqttCloseBikeEventDo(mbikes);
+               /* if(StringUtils.isBlank(locks.getBikeCode()) ||StringUtils.isBlank(locks.getCode())
+                        ||StringUtils.isBlank(bikes.getSiteId())){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"杩樿溅涓婃姤鍙傛暟閿欒锛�");
+                }
+                QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
+                List<Integer> statusList = new ArrayList<>();
+                statusList.add(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey());
+                statusList.add(Constants.MEMBER_RIDES_STATUS.LOCKING.getKey());
+                wrapper.lambda().eq(MemberRides::getBikeCode, locks.getBikeCode());
+                wrapper.lambda().in(MemberRides::getStatus, statusList);
+                wrapper.lambda().eq(MemberRides::getIsdeleted, Constants.ZERO);
+                //鏍规嵁杞﹁締缂栫爜鏌ヨ楠戣涓殑楠戣璁板綍淇℃伅锛屽鏋滄湁杩涜杩樿溅鎿嶄綔
+                List<MemberRides> list = memberRidesMapper.selectList(wrapper);
+//        MemberRides memberRides = memberRidesMapper.selectOne(wrapper.last("limit  1"));
+                if(list!=null){
+                    //杩涜
+                    for(MemberRides memberRides : list){
+                        dealMemberRidesBack(memberRides,bikes);
+                    }
+                }*/
+            }
         }
         return 0;
     }
@@ -780,9 +809,13 @@
         locks.setStatus(bikes.getStatus());
         //澶勭悊閿佸ご鏁版嵁
          mqttLockInfoEvent(locks);
-        //鍏嶈垂楠戣鏃堕暱鏌ヨ锛屾暟鎹瓧鍏搁厤缃�
+         mqttCloseBikeEventDo(bikes);
+        return  0;
+    }
+
+    private void mqttCloseBikeEventDo(MemberRides bikes) {
         if(StringUtils.isBlank(bikes.getBikeCode()) ||StringUtils.isBlank(bikes.getBackLockId())||StringUtils.isBlank(bikes.getBackSiteId())){
-          throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"杩樿溅涓婃姤鍙傛暟閿欒锛�");
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"杩樿溅涓婃姤鍙傛暟閿欒锛�");
         }
         QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
         List<Integer> statusList = new ArrayList<>();
@@ -792,12 +825,14 @@
         wrapper.lambda().in(MemberRides::getStatus, statusList);
         wrapper.lambda().eq(MemberRides::getIsdeleted, Constants.ZERO);
         //鏍规嵁杞﹁締缂栫爜鏌ヨ楠戣涓殑楠戣璁板綍淇℃伅锛屽鏋滄湁杩涜杩樿溅鎿嶄綔
-        MemberRides memberRides = memberRidesMapper.selectOne(wrapper.last("limit  1"));
-        if(memberRides!=null){
+        List<MemberRides> list = memberRidesMapper.selectList(wrapper);
+//        MemberRides memberRides = memberRidesMapper.selectOne(wrapper.last("limit  1"));
+        if(list!=null){
             //杩涜
-            dealMemberRidesBack(memberRides,bikes);
+            for(MemberRides memberRides : list){
+                dealMemberRidesBack(memberRides,bikes);
+            }
         }
-        return  0;
     }
 
     private void dealMemberRidesBack(MemberRides memberRides,MemberRides param) {
diff --git a/server/services/src/main/resources/application-test.yml b/server/services/src/main/resources/application-test.yml
index 0d87a8c..1d97529 100644
--- a/server/services/src/main/resources/application-test.yml
+++ b/server/services/src/main/resources/application-test.yml
@@ -57,7 +57,7 @@
   host: tcp://175.27.187.84:1883
   username: doumee1
   password: doumee@168
-  version: 002
+  version: 005
 
 tencent:
   map:

--
Gitblit v1.9.3