From 697775ce76037e4ec4a2f7de59395fc873070c71 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 12 十月 2023 17:35:25 +0800
Subject: [PATCH] 修改

---
 server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java |  147 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 142 insertions(+), 5 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 0f68927..9a9669f 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
@@ -13,9 +13,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.ActionLogMapper;
-import com.doumee.dao.business.LocksMapper;
-import com.doumee.dao.business.MemberRidesMapper;
+import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.MemberRidesJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.web.request.MemberRidesQuery;
@@ -59,6 +57,10 @@
 
     @Autowired
     private LocksMapper locksMapper;
+    @Autowired
+    private SitesMapper sitesMapper;
+    @Autowired
+    private BikesMapper bikesMapper;
 
     @Autowired
     private GoodsorderService goodsorderService;
@@ -366,8 +368,8 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪楠戣涓溅杈嗭紝鏃犳硶鎵爜");
         };
         Locks locks = locksMapper.selectOne(new QueryWrapper<Locks>().eq("code",code).eq("isdeleted", Constants.ZERO).last("limit 1"));
-        Boolean flag = deviceService.openLock(locks);
-        if(!flag){
+        MqttLog flag = deviceService.openLock(locks);
+        if(flag.getResult() == 0){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寮�閿佸け璐�");
         }
         //瀛樺偍楠戣璁板綍
@@ -397,4 +399,139 @@
         return memberRidesDetailResponse;
 
     }
+
+    /**
+     * 閿佸ご淇℃伅涓婃姤
+     * @param locks
+     * @return
+     */
+    @Override
+    public  int mqttLockInfoEvent(Locks locks){
+        //鍒ゆ柇妫�鏌ュ鐞嗙珯鐐归攣澶翠俊鎭�
+        Locks model = dealLockAndSite(locks);
+        //杞﹁締璁板綍
+        Bikes bikes = dealBikesByParam(model);
+
+        //鐘舵�侊紝0闂悎, 1鎵撳紑锛�2杩愯涓�, 3寮傚父
+        if(model.getStatus() == Constants.LockStatus.open){
+            //濡傛灉鏄紑閿佷笟鍔★紝鍒ゆ柇鏄惁鏈夊紑閿佷腑鐨勪俊鎭�
+            if(StringUtils.isNotBlank(locks.getBikeCode())){
+
+            }
+            MemberRides memberRides = new MemberRides();
+            memberRides.setBikeCode(model.getBikeCode());
+
+
+        }
+        return 0;
+    }
+
+    private Bikes dealBikesByParam(Locks model) {
+        QueryWrapper<Bikes> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(Bikes::getLockId, model.getId());
+        wrapper.lambda().eq(Bikes::getSiteId, model.getSiteId());
+        Bikes bikes = bikesMapper.selectOne(wrapper.last("last 1"));
+        if(bikes != null ) {
+            if (  StringUtils.equals(model.getBikeCode(), bikes.getCode())){
+                //濡傛灉缁戝畾杞﹁締淇℃伅鍙戠敓缂栧彿锛屾洿鎹㈢粦瀹氬叧绯�
+                bikes.setCode(model.getBikeCode());
+                bikes.setParamId(getBileTypeByCode(model.getBikeCode()));
+                UpdateWrapper<Bikes> updateWrapper = new UpdateWrapper<>();
+                updateWrapper.lambda().set(Bikes::getId, bikes.getId());
+
+                //鏇存柊鑷绔欑偣閿佸ご缁戝畾鑷杞︿俊鎭�
+                bikesMapper.updateById(bikes);
+            }
+        }else{
+            bikes = new Bikes();
+            bikes.setId(Constants.getUUID());
+            bikes.setIsdeleted(Constants.ZERO);
+            bikes.setCreateDate(new Date());
+            bikes.setSiteId(model.getSiteId());
+            bikes.setLockId(model.getId());
+            bikes.setCode(model.getBikeCode());
+            bikes.setParamId(getBileTypeByCode(model.getBikeCode()));
+            bikesMapper.insert(bikes);
+        }
+        return  bikes;
+
+    }
+
+    //TODO-----JP------------鏍规嵁杞﹁締code鍒嗘瀽杞﹁締绫诲瀷锛屽緟纭鏂规-------------------
+    private String getBileTypeByCode(String bikeCode) {
+        return null;
+    }
+
+    private Locks dealLockAndSite(Locks locks) {
+        Locks model =   locksMapper.selectById(locks.getId());
+        Date date =new Date();
+        //妫�鏌ョ珯鐐逛俊鎭紝涓嶅瓨鍦ㄥ垯鏂板
+//        boolean newSite =false;
+        Sites sites = sitesMapper.selectById(locks.getSiteId());
+        if(sites == null){
+            sites = new Sites();
+            sites.setIsdeleted(Constants.ZERO);
+            sites.setCode(locks.getSiteId());
+            sites.setId(locks.getSiteId());
+            sites.setCreateDate(date);
+            sites.setStatus(Constants.ZERO);
+            sites.setLockNum(1);
+            //鏂板閿佸ご
+            sitesMapper.insert(sites);
+//            newSite =true;
+        }
+
+        if(model == null){
+            //濡傛灉閿佸ご涓嶅瓨鍦紝鍒ゆ柇瀛樺偍
+            model = new Locks();
+            model.setId(locks.getId());
+            model.setSiteId(locks.getSiteId());
+            model.setIsdeleted(Constants.ZERO);
+            model.setCode(locks.getCode());
+            model.setSiteId(locks.getSiteId());
+            model.setBikeCode(locks.getBikeCode());
+            model.setCreateDate(date);
+            model.setStatus(locks.getStatus());
+            locksMapper.insert(model);
+         /*   UpdateWrapper<Sites> wrapper = new UpdateWrapper();
+            wrapper.eq("id",sites.getId());
+            wrapper.lambda().setSql("lock_num = COALESCE(lock_num,0)  + 1");
+            wrapper.lambda().set(Sites::getEditDate,date);
+            sitesMapper.update(null,wrapper);//绱閿佸ご鏁伴噺*/
+        }else{
+          /*  if(!StringUtils.equals(model.getId(),locks.getId())){
+                //濡傛灉绔欑偣鍙戠敓鍙樺寲锛屽師鏉ョ殑绔欑偣閿佸ご鏁伴噺-1
+                UpdateWrapper<Sites> wrapper = new UpdateWrapper();
+                wrapper.eq("id",model.getId());
+                wrapper.lambda().setSql("lock_num = COALESCE(lock_num,0)  - 1");
+                wrapper.lambda().set(Sites::getEditDate,date);
+                sitesMapper.update(null,wrapper);//绱閿佸ご鏁伴噺
+            }
+            if(!newSite){
+                //濡傛灉绔欑偣鏈彂鐢熷彉鍖栵紝 骞朵笖涓嶆槸鏂扮珯鐐癸紝绔欑偣閿佸ご+1
+                UpdateWrapper<Sites> wrapper = new UpdateWrapper();
+                wrapper.eq("id",model.getId());
+                wrapper.lambda().setSql("lock_num = COALESCE(lock_num,0)  - 1");
+                wrapper.lambda().set(Sites::getEditDate,date);
+                sitesMapper.update(null,wrapper);//绱閿佸ご鏁伴噺
+            }*/
+            model.setSiteId(locks.getSiteId());
+            model.setIsdeleted(Constants.ZERO);
+            model.setCode(locks.getCode());
+            model.setId(locks.getSiteId());
+            model.setEditDate(date);
+            model.setBikeCode(locks.getBikeCode());
+            model.setStatus(locks.getStatus());
+            locksMapper.update(null, new QueryWrapper<>(model));
+
+        }
+        model.setSites(sites);
+        return  model;
+    }
+
+    @Override
+    public  int mqttCloseBikeEvent(MemberRides bikes){
+        return  0;
+
+    }
 }

--
Gitblit v1.9.3