From 16e27b2490c94f40fa6876125ffed56cb59acfbc Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 17 十月 2023 17:39:58 +0800
Subject: [PATCH] 计价规则小程序

---
 server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java   |   48 ++++++++++++++++-------
 server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java         |    2 
 server/platform/src/main/java/com/doumee/service/impl/MqttSubServiceImpl.java                |    3 +
 server/services/src/main/resources/application-test.yml                                      |   27 +++++++++++--
 server/services/src/main/java/com/doumee/dao/business/model/Locks.java                       |    2 
 server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java |    2 
 server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesResponse.java  |    2 +
 server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java    |    4 ++
 server/platform/src/main/resources/application.yml                                           |    2 
 9 files changed, 68 insertions(+), 24 deletions(-)

diff --git a/server/platform/src/main/java/com/doumee/service/impl/MqttSubServiceImpl.java b/server/platform/src/main/java/com/doumee/service/impl/MqttSubServiceImpl.java
index a803fd3..c4d49cb 100644
--- a/server/platform/src/main/java/com/doumee/service/impl/MqttSubServiceImpl.java
+++ b/server/platform/src/main/java/com/doumee/service/impl/MqttSubServiceImpl.java
@@ -31,6 +31,7 @@
     @Override
     @PostConstruct
     public void startSubcribe() {
-        mqttToolService.subscribe(new String[]{ Constants.MqttTopic.sub_lockInfo, Constants.MqttTopic.sub_closeLock});
+        mqttToolService.subscribe(
+                new String[]{ Constants.MqttTopic.sub_lockInfo, Constants.MqttTopic.sub_closeLock});
     }
 }
diff --git a/server/platform/src/main/resources/application.yml b/server/platform/src/main/resources/application.yml
index b5c2c9e..7a60062 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/Locks.java b/server/services/src/main/java/com/doumee/dao/business/model/Locks.java
index e5cf83f..bb86ca0 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Locks.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Locks.java
@@ -82,7 +82,7 @@
     private String bikeType;
 
     @ApiModelProperty(value = "褰撳墠閿佸畾鑷杞︾紪鍙�")
-    @TableField(select = false)
+    @TableField(exist  = false)
     private Sites sites;
 
 }
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesResponse.java b/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesResponse.java
index fc9d167..629334e 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesResponse.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesResponse.java
@@ -35,6 +35,8 @@
     @ApiModelProperty(value = "璁¤垂鏃堕暱")
     private Integer duration;
 
+    @ApiModelProperty(value = "璁′环瑙勫垯")
+    private String priceRole;
     @ApiModelProperty(value = "杞﹀瀷")
     private String bikeType;
 
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 a342183..213d97e 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
@@ -295,6 +295,10 @@
                 memberRidesResponse.setBaseTime(memberRides.getBaseTime());
                 memberRidesResponse.setUnitTime(memberRides.getUnitTime());
                 memberRidesResponse.setUnitPrice(memberRides.getUnitPrice());
+                memberRidesResponse.setPriceRole(PricingDetailServiceImpl.getRoleNameByParam(
+                        memberRidesResponse.getBasePrice(),memberRidesResponse.getBaseTime(),
+                        memberRidesResponse.getUnitPrice()
+                        ,memberRidesResponse.getUnitTime()));
                 homeResponse.setMemberRidesResponse(memberRidesResponse);
             }
         }
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 05b0c97..4a85145 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
@@ -430,7 +430,7 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鎵爜鏃犳晥锛屾湭鏌ヨ鍒伴攣澶翠俊鎭�");
         }
         //鏌ヨ閿佸ご鏄惁瀛樺湪杞﹁締 浠ュ強鏄惁姝e父
-        if (!locks.getStatus().equals(Constants.ZERO)) {
+        if (Constants.formatIntegerNum(locks.getStatus())!=Constants.ZERO) {
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "褰撳墠鎵爜閿佸ご鐘舵�侀敊璇紝鏃犳硶杩涜寮�閿�");
         }
         if (StringUtils.isBlank(locks.getBikeCode())) {
@@ -541,8 +541,9 @@
      * @return
      */
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public  int mqttLockInfoEvent(Locks locks){
-        if(StringUtils.isBlank(locks.getId()) ||StringUtils.isBlank(locks.getSiteId())){
+        if(StringUtils.isBlank(locks.getCode()) ||StringUtils.isBlank(locks.getSiteId())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"閿佸ご淇℃伅涓婃姤鍙傛暟閿欒锛�");
         }
         //鍒ゆ柇妫�鏌ュ鐞嗙珯鐐归攣澶翠俊鎭�
@@ -554,14 +555,19 @@
             //濡傛灉鏄紑閿佷笟鍔★紝鍒ゆ柇鏄惁鏈夊紑閿佷腑鐨勪俊鎭�
             MemberRides memberRides = new MemberRides();
             memberRides.setStatus(Constants.MEMBER_RIDES_STATUS.LOCKING.getKey());
-            memberRides.setRentLockId(model.getId());
+            memberRides.setRentLockId(model.getCode());
+            memberRides.setRentSiteId(model.getSiteId());
             memberRides.setIsdeleted(Constants.ZERO);
             memberRides = findOne(memberRides);
             if(memberRides == null){
                 return 0;
             }
+            MemberRides  update = new MemberRides();
+            update.setStatus(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey());
+            update.setEditDate(new Date());
+            update.setId(memberRides.getId());
             //锛堟洿鏂拌姹傚紑閿佷腑鐨勯攣澶村叧鑱旂殑楠戣璁板綍锛�
-            memberRidesMapper.updateById( memberRides);
+            memberRidesMapper.updateById( update);
         }
         return 0;
     }
@@ -570,7 +576,7 @@
         QueryWrapper<Bikes> wrapper = new QueryWrapper<>();
         wrapper.lambda().eq(Bikes::getLockId, model.getCode());
         wrapper.lambda().eq(Bikes::getSiteId, model.getSiteId());
-        Bikes bikes = bikesMapper.selectOne(wrapper.last("last 1"));
+        Bikes bikes = bikesMapper.selectOne(wrapper.last("limit 1"));
         if(bikes != null ) {
             if (  StringUtils.equals(model.getBikeCode(), bikes.getCode())){
                 //濡傛灉缁戝畾杞﹁締淇℃伅鍙戠敓缂栧彿锛屾洿鎹㈢粦瀹氬叧绯�
@@ -582,6 +588,15 @@
                 bikesMapper.updateById(bikes);
             }
         }else{
+            if(StringUtils.isNotBlank(model.getBikeCode())){
+                UpdateWrapper<Bikes> updateWrapper = new UpdateWrapper<>();
+                updateWrapper.lambda().set(Bikes::getCode, null );
+                updateWrapper.lambda().set(Bikes::getParamId, null );
+                updateWrapper.lambda().set(Bikes::getEditDate, new Date() );
+                updateWrapper.lambda().eq(Bikes::getCode, model.getCode() );
+                //娓呯┖鍘熸潵鐨勮嚜琛岃溅缁戝畾鍏崇郴
+                bikesMapper.update(null, updateWrapper);
+            }
             bikes = new Bikes();
             bikes.setId(Constants.getUUID());
             bikes.setIsdeleted(Constants.ZERO);
@@ -615,7 +630,7 @@
         param.setSortnum(Integer.parseInt(type));
         param = baseParamMapper.selectOne(new QueryWrapper<>(param).lambda().last("limit 1" ));
         if(param == null){
-            return  null;
+            return  type;
         }
         return param.getId();
     }
@@ -635,6 +650,7 @@
             sites.setId(locks.getSiteId());
             sites.setCreateDate(date);
             sites.setStatus(Constants.ZERO);
+            sites.setEditDate(date);
             sites.setLockNum(1);
             //鏂板閿佸ご
             sitesMapper.insert(sites);
@@ -652,14 +668,15 @@
             model.setStatus(locks.getStatus());
             locksMapper.insert(model);
         }else{
-            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));
+            UpdateWrapper<Locks> updateWrapper = new UpdateWrapper<Locks>();
+            updateWrapper.lambda().eq(Locks::getCode, locks.getCode() );
+            updateWrapper.lambda().eq(Locks::getSiteId, locks.getSiteId() );
+            updateWrapper.lambda().set(Locks::getBikeCode, locks.getBikeCode() );
+            updateWrapper.lambda().set(Locks::getStatus, locks.getStatus() );
+            updateWrapper.lambda().set(Locks::getEditDate, new Date() );
+            updateWrapper.lambda().set(Locks::getIsdeleted, Constants.ZERO);
+
+            locksMapper.update(null,updateWrapper);
         }
         model.setSites(sites);
         return  model;
@@ -671,6 +688,7 @@
      * @return
      */
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public  int mqttCloseBikeEvent(MemberRides bikes){
         //鍏嶈垂楠戣鏃堕暱鏌ヨ锛屾暟鎹瓧鍏搁厤缃�
         if(StringUtils.isBlank(bikes.getBikeCode()) ||StringUtils.isBlank(bikes.getBackLockId())||StringUtils.isBlank(bikes.getBackSiteId())){
@@ -681,7 +699,7 @@
         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"));
+        MemberRides memberRides = memberRidesMapper.selectOne(wrapper.last("limit  1"));
         if(memberRides!=null){
             //杩涜
             dealMemberRidesBack(memberRides,bikes);
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java
index a2b0930..96e25b1 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java
@@ -90,7 +90,7 @@
         return pricingDetail.getId();
     }
 
-    private  String getRoleNameByParam(BigDecimal basePrice, Integer baseTime, BigDecimal unitPrice, Integer unitTime) {
+    public static  String getRoleNameByParam(BigDecimal basePrice, Integer baseTime, BigDecimal unitPrice, Integer unitTime) {
         String title = "";
         if(baseTime < 0){
             title = "瑙勫垯锛�"+Constants.translateMoney(basePrice).doubleValue()+"鍏冪晠楠戜竴鏁村ぉ";
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java
index 8ba5bf2..f05ef39 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java
@@ -215,7 +215,7 @@
 
         if (!CollectionUtils.isEmpty(sitesMonitorDTO.getRecords())){
             sitesMonitorDTO.getRecords().forEach(s->{
-                s.setRate(new BigDecimal(s.getBikeCount()).divide(new BigDecimal(s.getAllLockNum()),2));
+                s.setRate(new BigDecimal(s.getBikeCount()).divide(new BigDecimal(s.getAllLockNum()),BigDecimal.ROUND_UP).setScale(2));
             });
         }
 
diff --git a/server/services/src/main/resources/application-test.yml b/server/services/src/main/resources/application-test.yml
index 7c95b9d..2725372 100644
--- a/server/services/src/main/resources/application-test.yml
+++ b/server/services/src/main/resources/application-test.yml
@@ -1,7 +1,3 @@
-# WEB鏈嶅姟鍣ㄩ厤缃�
-server:
-  port: 10012
-
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
@@ -43,3 +39,26 @@
   enabled: true
   # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
   redirect-uri: /
+
+
+########################寰俊鏀粯鐩稿叧閰嶇疆########################
+wx:
+  pay:
+    appId: wxcd2b89fd2ff065f8
+    appSecret: 1ceb7c9dff3c4330d653adc3ca55ea24
+    mchId: 1229817002
+    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
+    #    notifyUrl: http://xiaopiqiu.natapp1.cc/api/wxPayNotify
+    notifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxPayNotify
+    #    keyPath: D:\DouMee\config\doumeeTest\apiclient_cert.p12
+    keyPath: /usr/local/apiclient_cert.p12
+########################mqtt鐩稿叧閰嶇疆########################
+mqtt:
+  host: tcp://175.27.187.84:1883
+  username: doumee1
+  password: doumee@168
+
+tencent:
+  map:
+    remoteHost: https://apis.map.qq.com
+    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ

--
Gitblit v1.9.3