From dff12cddd41f96e296cb652b0cf3c8c9ce43426f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 13 十月 2023 10:06:52 +0800
Subject: [PATCH] 整理

---
 server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 46 insertions(+), 2 deletions(-)

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 0ec50d7..cb8a72b 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
@@ -334,7 +334,6 @@
         //淇敼鍚�
         String after = JSONObject.toJSONString(update);
 
-
         ActionLog log = new ActionLog();
         log.setId(Constants.getUUID());
         log.setIsdeleted(Constants.ZERO);
@@ -509,6 +508,9 @@
      */
     @Override
     public  int mqttLockInfoEvent(Locks locks){
+        if(StringUtils.isBlank(locks.getId()) ||StringUtils.isBlank(locks.getSiteId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"閿佸ご淇℃伅涓婃姤鍙傛暟閿欒锛�");
+        }
         //鍒ゆ柇妫�鏌ュ鐞嗙珯鐐归攣澶翠俊鎭�
         Locks model = dealLockAndSite(locks);
         //杞﹁締璁板綍
@@ -525,7 +527,6 @@
             if(memberRides == null){
                 return 0;
             }
-
             //锛堟洿鏂拌姹傚紑閿佷腑鐨勯攣澶村叧鑱旂殑楠戣璁板綍锛�
             memberRidesMapper.updateById( memberRides);
         }
@@ -611,9 +612,52 @@
         return  model;
     }
 
+    /**
+     * 杩樿溅璁㈤槄娑堟伅涓氬姟澶勭悊
+     * @param bikes
+     * @return
+     */
     @Override
     public  int mqttCloseBikeEvent(MemberRides bikes){
+        //鍏嶈垂楠戣鏃堕暱鏌ヨ锛屾暟鎹瓧鍏搁厤缃�
+        if(StringUtils.isBlank(bikes.getBikeCode()) ||StringUtils.isBlank(bikes.getRentLockId())){
+          throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"杩樿溅涓婃姤鍙傛暟閿欒锛�");
+        }
+        QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(MemberRides::getBikeCode, bikes.getBikeCode());
+        wrapper.lambda().eq(MemberRides::getStatus, Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey());
+        wrapper.lambda().eq(MemberRides::getIsdeleted, Constants.ZERO);
+        //鏍规嵁杞﹁締缂栫爜鏌ヨ楠戣涓殑楠戣璁板綍淇℃伅锛屽鏋滄湁杩涜杩樿溅鎿嶄綔
+        MemberRides memberRides = memberRidesMapper.selectOne(wrapper.last("last 1"));
+        if(memberRides!=null){
+            //杩涜
+            dealMemberRidesBack(memberRides,bikes);
+        }
+
         return  0;
 
     }
+
+    private void dealMemberRidesBack(MemberRides memberRides,MemberRides param) {
+
+        int freeTime = 0;
+        try {
+            freeTime = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME, Constants.FREE_RENT_TIME).getCode());
+        }catch (Exception e){
+        }
+        Date date = new Date();
+        MemberRides update = new MemberRides();
+        update.setEditDate(date);
+        update.setStatus(Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey());
+        update.setBackDate(date);
+        update.setBackLockId(param.getBackLockId());
+        update.setBackSiteId(param.getBackSiteId());
+        update.setBackCommondId(param.getBackCommondId());
+        int duration =DateUtil.betweenMin(memberRides.getRentDate(),date)-freeTime;
+        update.setDuration(duration>0?duration:0);
+        update.setBackType(Constants.ONE);
+        update.setBackInfo("鐢ㄦ埛姝e父杩樿溅");
+        //鏇存柊杩樿溅璁板綍涓哄凡杩樿溅
+        memberRidesMapper.updateById(update);
+    }
 }

--
Gitblit v1.9.3