From 687d0fc2de844e09864cc2ea2b24550069a50546 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 26 十月 2023 16:00:38 +0800
Subject: [PATCH] Merge branch 'dev' of http://139.186.142.91:10010/r/productDev/parkBike into dev

---
 server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java         |   19 ++-
 server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java    |    4 
 server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java     |    2 
 server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java   |   40 +++++++
 server/services/src/main/resources/mappers/SystemUserMapper.xml                              |    9 +
 server/services/src/main/java/com/doumee/core/constants/Constants.java                       |    2 
 server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java              |    2 
 server/services/src/main/java/com/doumee/dao/business/web/response/BikeLogDTO.java           |    4 
 server/services/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java              |    4 
 server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java  |    4 
 server/services/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java              |   10 +
 server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java |   10 +-
 server/services/src/main/java/com/doumee/service/business/MemberRidesService.java            |    2 
 server/platform/src/main/java/com/doumee/config/shiro/ShiroRealm.java                        |    6 +
 server/services/src/main/java/com/doumee/dao/business/web/request/MemberRidesQuery.java      |   16 ++-
 server/services/src/main/resources/application-dev.yml                                       |    4 
 server/web/src/main/java/com/doumee/api/web/AccountApi.java                                  |    2 
 server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesDTO.java       |    6 
 server/services/src/main/java/com/doumee/core/utils/DateUtil.java                            |   10 ++
 server/services/src/main/java/com/doumee/dao/business/model/Sites.java                       |    2 
 server/platform/src/main/java/com/doumee/task/ScheduleTool.java                              |   18 +++
 server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java                  |   19 ++-
 server/services/src/main/java/com/doumee/dao/business/vo/GoodsorderExportVO.java             |    8 
 server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java    |   61 +++++++++---
 server/web/src/main/resources/application.yml                                                |    2 
 server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java  |    4 
 26 files changed, 203 insertions(+), 67 deletions(-)

diff --git a/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java b/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java
index facb6c4..bd350df 100644
--- a/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java
@@ -89,6 +89,8 @@
     @PostMapping("/getTotalData")
     @RequiresPermissions("business:goodsorder:query")
     public ApiResponse<GoodsorderTotalDataVO> getTotalData (@RequestBody Goodsorder pageWrap) {
+
+        pageWrap.setEndDate(pageWrap.getEndDate() != null ? pageWrap.getEndDate():pageWrap.getStartDate());
         return ApiResponse.success(goodsorderService.getTotalData(pageWrap));
     }
 
diff --git a/server/platform/src/main/java/com/doumee/config/shiro/ShiroRealm.java b/server/platform/src/main/java/com/doumee/config/shiro/ShiroRealm.java
index b824008..94a7e98 100644
--- a/server/platform/src/main/java/com/doumee/config/shiro/ShiroRealm.java
+++ b/server/platform/src/main/java/com/doumee/config/shiro/ShiroRealm.java
@@ -26,6 +26,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 鑷畾涔塕ealm锛屽鐞嗚璇佸拰鏉冮檺
@@ -71,7 +72,7 @@
      * @date 2022/03/15 09:54
      */
     @Override
-    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException{
+    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
         // 鑾峰彇鐢ㄦ埛鍚�
         String username = authenticationToken.getPrincipal().toString();
         // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
@@ -82,6 +83,9 @@
         if(user == null){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璐﹀彿鎴栧瘑鐮佷笉姝g‘锛�");
         }
+        if(Objects.equals(user.getStatus(),Constants.ONE)){
+            throw new AuthenticationException("鐢ㄦ埛宸茶绂佺敤锛岃鑱旂郴绠$悊鍛�");
+        }
         // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
         List<SystemRole> roles = systemRoleService.findByUserId(user.getId());
         List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId());
diff --git a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
index 71b740e..44151a4 100644
--- a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
+++ b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
@@ -7,6 +7,7 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.dao.business.model.Goodsorder;
 import com.doumee.service.business.GoodsorderService;
+import com.doumee.service.business.MemberRidesService;
 import com.doumee.service.business.WxBillService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +40,10 @@
 
     @Autowired
     private GoodsorderService goodsorderService;
+
+
+    @Autowired
+    private MemberRidesService memberRidesService;
     /**
      * @throws Exception
      */
@@ -60,4 +65,17 @@
         log.info("=====================缁撴潫姣忓ぉ鑷姩缁撶畻=======================");
 
     }
+
+    /**
+     * 瀹氭椂鍒锋柊楠戣涓殑鏁板厖鍊兼湭寮�閿佸け璐�
+     * 30 绉掑埛鏂颁竴娆�
+     * @throws Exception
+     */
+    @Scheduled(cron = "0/30 * * * * ? ")
+    public void autoRefreshLockStatus() throws Exception {
+        log.info("=====================寮�濮嬫瘡澶╄嚜鍔ㄧ粨绠�=======================");
+        memberRidesService.autoRefreshLockStatus();
+        log.info("=====================缁撴潫姣忓ぉ鑷姩缁撶畻=======================");
+
+    }
 }
diff --git a/server/services/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java b/server/services/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
index a3f1165..2c0cb31 100644
--- a/server/services/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
+++ b/server/services/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -20,6 +20,7 @@
 import com.doumee.service.system.SystemPositionUserService;
 import com.doumee.service.system.SystemUserRoleService;
 import com.doumee.service.system.SystemUserService;
+import com.google.common.base.Objects;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
@@ -56,6 +57,9 @@
         }
         if (Constants.formatIntegerNum(user.getFixed())==Constants.ONE ) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇峰嬁鍒犻櫎" + user.getUsername() + "锛屽洜涓鸿繖鏄浐瀹氱敤鎴�");
+        }
+        if ("admin".equals(user.getUsername())){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "瓒呯骇绠$悊鍛樿处鍙蜂笉鍏佽鍒犻櫎");
         }
         systemUserService.deleteById(id);
     }
@@ -117,7 +121,7 @@
         queryUserDto.setUsername(systemUser.getMobile());
         SystemUser user = systemUserService.findOne(queryUserDto);
         if (user != null) {
-            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鐢ㄦ埛鍚嶅凡瀛樺湪");
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙风爜宸插瓨鍦�");
         }
          // 楠岃瘉宸ュ彿
         if (StringUtils.isNotBlank(systemUser.getEmpNo())) {
@@ -165,6 +169,7 @@
     public void updateById(CreateSystemUserDTO systemUser) {
         // 楠岃瘉鐢ㄦ埛鍚�
         SystemUser queryUserDto = new SystemUser();
+        queryUserDto.setId(systemUser.getId());
         queryUserDto.setUsername(systemUser.getUsername());
         queryUserDto.setDeleted(Constants.ZERO);
         SystemUser user = systemUserService.findOne(queryUserDto);
@@ -182,6 +187,9 @@
                 throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "宸ュ彿宸插瓨鍦�");
             }
         }
+        if ("admin".equals(user.getUsername()) && Objects.equal(systemUser.getStatus(),1)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "瓒呯骇绠$悊鍛樿处鍙蜂笉鍏佽绂佺敤");
+        }
         // 淇敼鐢ㄦ埛
         systemUserService.updateById(systemUser);
         // 璁剧疆閮ㄩ棬
diff --git a/server/services/src/main/java/com/doumee/core/constants/Constants.java b/server/services/src/main/java/com/doumee/core/constants/Constants.java
index 78c83fb..8a7dc38 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -38,6 +38,8 @@
     public static final String  BIKE_TYPE ="1,2,3,4,5,6,7,8" ;
     public static String REDIS_DEBUG_STR="test_";
     public static final String AD = "AD";
+    public static String REPAIR = "REPAIR";
+
     public  interface MqttTopic{
 
         String topic_index = "device/lock/";
diff --git a/server/services/src/main/java/com/doumee/core/utils/DateUtil.java b/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
index 0507d29..dec08d8 100644
--- a/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -3021,6 +3021,16 @@
         return (int)diff + 1 ;
     }
 
+    public static Integer between(Date begin, Date end) {
+        if(begin ==null ){
+            return  0;
+        }
+        long createTime =begin.getTime();//鑾峰彇鍒涘缓鏃堕棿鐨勬椂闂存埑
+        long currentTime =Objects.isNull(end)?System.currentTimeMillis():end.getTime();//鑾峰彇褰撳墠鏃堕棿鐨勬椂闂存埑
+        long diff=(currentTime-createTime)/1000/60;//鑾峰彇涓や釜鏃堕棿鐩稿樊鐨勫垎閽�
+        return (int)diff;
+    }
+
 
     /**
      * 璁$畻鑰楁椂
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java b/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java
index 379c34f..6482088 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java
@@ -25,7 +25,7 @@
 public class Goodsorder {
 
     @ApiModelProperty(value = "缂栫爜")
-    @ExcelColumn(name="璁㈠崟缂栧彿",width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="璁㈠崟缂栧彿",index = 2,width = 10,align = HorizontalAlignment.CENTER)
     private String id;
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
@@ -61,7 +61,7 @@
     private String memberName;
 
     @ApiModelProperty(value = "浜ゆ槗閲戦")
-    @ExcelColumn(name="鎶奸噾锛堝厓锛�",width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="鎶奸噾锛堝厓锛�",index = 4,width = 10,align = HorizontalAlignment.CENTER)
     private BigDecimal money;
 
     @ApiModelProperty(value = "鐘舵�� 0寰呮敮浠� 1宸叉敮浠� 2宸插彇娑� 3鏀粯澶辫触 4宸茬粨绠�")
@@ -71,7 +71,7 @@
     private String preOrderid;
 
     @ApiModelProperty(value = "鍦ㄧ嚎浜ゆ槗鍗曞彿")
-    @ExcelColumn(name="浜ゆ槗鍗曞彿",width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="浜ゆ槗鍗曞彿",index = 3,width = 10,align = HorizontalAlignment.CENTER)
     private String onlineOrderid;
     @ApiModelProperty(value = "鏀粯鐘舵�� 0寰呮敮浠� 1宸叉敮浠�")
     private Integer payStatus;
@@ -80,21 +80,21 @@
     private Integer payWay;
 
     @ApiModelProperty(value = "鏀粯鏃堕棿")
-    @ExcelColumn(name="浜ゆ娂閲戞椂闂�",width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="浜ゆ娂閲戞椂闂�",index = 5,width = 10,align = HorizontalAlignment.CENTER)
     private Date payDate;
 
     @ApiModelProperty(value = "浜ゆ槗绫诲瀷 0绉熻溅鎶奸噾")
     private Integer type;
 
     @ApiModelProperty(value = "缁撶畻閲戦(鍒嗭級")
-    @ExcelColumn(name="缁撶畻閲戦",width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="缁撶畻閲戦(鍏�)",index = 7,width = 10,align = HorizontalAlignment.CENTER)
     private BigDecimal closeMoney;
 
     @ApiModelProperty(value = "缁撶畻閫�娆惧崟鍙�(鍏宠仈refund)")
     private String closeId;
 
     @ApiModelProperty(value = "缁撶畻鏃堕棿")
-//    @ExcelColumn(name="閫�娆剧粨绠楁椂闂�",width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="缁撶畻鏃堕棿",index = 8,width = 10,align = HorizontalAlignment.CENTER)
     private Date closeDate;
     @ApiModelProperty(value = "缁撶畻澶囨敞")
     private String closeInfo;
@@ -107,7 +107,9 @@
 
     @ApiModelProperty(value = "鐢ㄦ埛openid" )
     @TableField(exist = false)
+    @ExcelColumn(name="鐢ㄦ埛",index = 1 ,width = 10,align = HorizontalAlignment.CENTER)
     private String openid;
+
     @ApiModelProperty(value = "鏌ヨ寮�濮嬫棩鏈燂紙鍖呭惈锛�", example = "2023-10-01 15:12:01")
     @TableField(exist = false)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -119,14 +121,15 @@
     @ApiModelProperty(value = "浜ゆ槗绗旀暟", example = "0")
     @TableField(exist = false)
     private int countNum;
+
     @ApiModelProperty(value = "閫�娆炬�婚(鍒嗭級")
     @TableField(exist = false)
-    @ExcelColumn(name="閫�娆炬�婚锛堝厓锛�",width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="閫�鎶奸噾(鍏�)",index = 6,width = 10,align = HorizontalAlignment.CENTER)
     private BigDecimal refundMoney;
 
     @ApiModelProperty(value = "鏈�鍚庨��娆炬椂闂�")
     @TableField(exist = false)
-    @ExcelColumn(name="閫�娆剧粨绠楁椂闂�",width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="閫�娆剧粨绠楁椂闂�",index = 9,width = 10,align = HorizontalAlignment.CENTER)
     private Date refundDate;
 
     @ApiModelProperty(value = "鏈�杩戦獞琛岀姸鎬�")
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Sites.java b/server/services/src/main/java/com/doumee/dao/business/model/Sites.java
index a969ae0..f7b0b64 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Sites.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Sites.java
@@ -44,7 +44,7 @@
 
     @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "1")
     @ExcelColumn(name="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�")
-    @TableLogic
+//    @TableLogic
     private Integer isdeleted;
 
     @ApiModelProperty(value = "澶囨敞")
diff --git a/server/services/src/main/java/com/doumee/dao/business/vo/GoodsorderExportVO.java b/server/services/src/main/java/com/doumee/dao/business/vo/GoodsorderExportVO.java
index 5fa2ea2..12f64b8 100644
--- a/server/services/src/main/java/com/doumee/dao/business/vo/GoodsorderExportVO.java
+++ b/server/services/src/main/java/com/doumee/dao/business/vo/GoodsorderExportVO.java
@@ -30,7 +30,7 @@
     private String code;
     @ApiModelProperty(value = "鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級")
     @ExcelColumn(name="鐢ㄦ埛",width = 10,index = 2,align = HorizontalAlignment.CENTER)
-    private String memberOpenid;
+    private String openid;
 
     @ApiModelProperty(value = "浜ゆ槗閲戦")
     @ExcelColumn(name="鏀粯閲戦",width = 10,index = 3,align = HorizontalAlignment.CENTER)
@@ -38,7 +38,7 @@
 
 
     @ApiModelProperty(value = "鏀粯鏃堕棿")
-    @ExcelColumn(name="鏀粯鏃堕棿",width = 10,index = 4,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="鏀粯鏃堕棿",width = 10,index = 4,align = HorizontalAlignment.CENTER,dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date payDate;
 
     @ApiModelProperty(value = "缁撶畻閲戦(鍒嗭級")
@@ -46,7 +46,7 @@
     private BigDecimal closeMoney;
 
     @ApiModelProperty(value = "缁撶畻鏃堕棿")
-    @ExcelColumn(name="缁撶畻鏃堕棿",width = 10,index = 6,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="缁撶畻鏃堕棿",width = 10,index = 6,align = HorizontalAlignment.CENTER,dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date closeDate;
 
     @ApiModelProperty(value = "閫�娆鹃噾棰�(鍒嗭級")
@@ -54,7 +54,7 @@
     private BigDecimal refundMoney;
 
     @ApiModelProperty(value = "閫�娆炬椂闂�")
-    @ExcelColumn(name="閫�娆炬椂闂�",width = 10,index = 8,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="閫�娆炬椂闂�",width = 10,index = 8,align = HorizontalAlignment.CENTER,dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date refundDate;
 
 }
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/request/MemberRidesQuery.java b/server/services/src/main/java/com/doumee/dao/business/web/request/MemberRidesQuery.java
index 029f2f5..d151067 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/request/MemberRidesQuery.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/request/MemberRidesQuery.java
@@ -31,11 +31,11 @@
     @ExcelColumn(name="鐘舵�� ", valueMapping = "0=璇锋眰寮�閿佷腑;1=楠戣涓�;2=宸茶繕杞�;3=寮�閿佸け璐�;" ,index = 4,width = 10,align = HorizontalAlignment.CENTER)
     private Integer status;
 
-    @ApiModelProperty(value = "鍊熷嚭鏃堕棿璧峰")
-    private Date rentDateStart;
-
-    @ApiModelProperty(value = "鍊熷嚭鏃堕棿缁撴潫")
-    private Date rentDateEnd;
+//    @ApiModelProperty(value = "鍊熷嚭鏃堕棿璧峰")
+//    private Date rentDateStart;
+//
+//    @ApiModelProperty(value = "鍊熷嚭鏃堕棿缁撴潫")
+//    private Date rentDateEnd;
 
     @ApiModelProperty(value = "鏄惁褰掕繕 [杞﹁締鍙栬繕璁板綍(绔欑偣) 鍏ュ弬]")
     private Boolean hasBack;
@@ -44,4 +44,10 @@
 
     @ApiModelProperty(value = "杩樿溅绫诲瀷 0姝e父杩樿溅 1寮哄埗杩樿溅")
     private Integer backType;
+
+    @ApiModelProperty(value = "鍊熷嚭鏃堕棿璧峰")
+    private Date startDate;
+
+    @ApiModelProperty(value = "鍊熷嚭鏃堕棿缁撴潫")
+    private Date endDate;
 }
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/BikeLogDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/response/BikeLogDTO.java
index 59f9e16..513d3ec 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/response/BikeLogDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/BikeLogDTO.java
@@ -60,10 +60,10 @@
     private Date backDate;
 
     @ApiModelProperty(value = "鐘舵�� 0璇锋眰寮�閿佷腑 1楠戣涓� 2宸茶繕杞�  3寮�閿佸け璐�")
-    @ExcelColumn(name="鐘舵�� ", valueMapping = "0=璇锋眰寮�閿佷腑;1=楠戣涓�;2=宸茶繕杞�;3=寮�閿佸け璐�;" ,index = 5,width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="鐘舵�� ", valueMapping = "0=璇锋眰寮�閿佷腑;1=楠戣涓�;2=宸茶繕杞�;3=寮�閿佸け璐�;" ,width = 10,align = HorizontalAlignment.CENTER)
     private Integer status;
 
     @ApiModelProperty(value = "缁撶畻鐘舵��")
-    @ExcelColumn(name="缁撶畻鐘舵�� ", valueMapping = "0=鏈粨绠�;1=宸茬粨绠�;" ,index = 4,width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="缁撶畻鐘舵�� ", valueMapping = "0=鏈粨绠�;1=宸茬粨绠�;" ,width = 10,align = HorizontalAlignment.CENTER)
     private Integer closeStatus;
 }
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesDTO.java
index 2b678ec..3600841 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesDTO.java
@@ -34,7 +34,7 @@
     private Integer closeStatus;
 
     @ApiModelProperty(value = "鐘舵�� 0璇锋眰寮�閿佷腑 1楠戣涓� 2宸茶繕杞�  3寮�閿佸け璐�")
-    @ExcelColumn(name="鐘舵�� ", valueMapping = "0=璇锋眰寮�閿佷腑;1=楠戣涓�;2=宸茶繕杞�;3=寮�閿佸け璐�;" ,index = 5,width = 10,align = HorizontalAlignment.CENTER)
+//    @ExcelColumn(name="鐘舵�� ", valueMapping = "0=璇锋眰寮�閿佷腑;1=楠戣涓�;2=宸茶繕杞�;3=寮�閿佸け璐�;" ,index = 5,width = 10,align = HorizontalAlignment.CENTER)
     private Integer status;
 
     @ApiModelProperty(value = "楠戣鏃堕暱")
@@ -46,11 +46,11 @@
     private Integer duration;
 
     @ApiModelProperty(value = "绉熻溅鏃堕棿")
-    @ExcelColumn(name="绉熻溅鏃堕棿",index = 8,width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="绉熻溅鏃堕棿",index = 8,width = 10,align = HorizontalAlignment.CENTER,dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date rentDate;
 
     @ApiModelProperty(value = "杩樿溅鏃堕棿")
-    @ExcelColumn(name="杩樿溅鏃堕棿",index = 9,width = 10,align = HorizontalAlignment.CENTER)
+    @ExcelColumn(name="杩樿溅鏃堕棿",index = 9,width = 10,align = HorizontalAlignment.CENTER,dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date backDate;
 
     @ApiModelProperty(value = "绉熻溅绔欑偣缂栫爜")
diff --git a/server/services/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java b/server/services/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java
index 84785c1..799d553 100644
--- a/server/services/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java
@@ -36,5 +36,9 @@
     @ApiModelProperty(value = "鎵嬫満鍙风爜")
     private String mobile;
 
+    @ApiModelProperty(value = "鐢ㄦ埛鐘舵��")
+    private Integer status;
 
+    @ApiModelProperty(value = "鐢ㄦ埛瑙掕壊")
+    private Integer roleId;
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/MemberRidesService.java b/server/services/src/main/java/com/doumee/service/business/MemberRidesService.java
index c9ec41d..bd381c4 100644
--- a/server/services/src/main/java/com/doumee/service/business/MemberRidesService.java
+++ b/server/services/src/main/java/com/doumee/service/business/MemberRidesService.java
@@ -139,4 +139,6 @@
     int mqttCloseBikeEvent(MemberRides bikes);
 
     int mqttLockInfoEvent(Locks locks);
+
+    void autoRefreshLockStatus();
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java
index 0c6eb9d..97d6f6a 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java
@@ -122,7 +122,7 @@
                     .selectAs(BikeRepair::getBinkeId,BikeRepairDTO::getBikeCode)
                     .selectAs(BaseParam::getName,BikeRepairDTO::getBikeTypeName);
         queryWrapper.like(StringUtils.isNotEmpty(pageWrap.getModel().getOpenid()),Member::getOpenid,pageWrap.getModel().getOpenid())
-                    .like(StringUtils.isNotEmpty(pageWrap.getModel().getBikeCode()),Bikes::getCode,pageWrap.getModel().getBikeCode())
+                    .like(StringUtils.isNotEmpty(pageWrap.getModel().getBikeCode()),BikeRepair::getBinkeId,pageWrap.getModel().getBikeCode())
                     .eq( pageWrap.getModel().getStatus() !=null,BikeRepair::getStatus,pageWrap.getModel().getStatus())
                     .ge(Objects.nonNull(pageWrap.getModel().getStartDate()),BikeRepair::getCreateDate,pageWrap.getModel().getStartDate())
                     .le(Objects.nonNull(pageWrap.getModel().getEndDate()),BikeRepair::getCreateDate,pageWrap.getModel().getEndDate());
@@ -138,7 +138,7 @@
                 .eq(Multifile::getIsdeleted,Constants.ZERO);
         List<Multifile> multifiles = multifileMapper.selectList(wrapper);
         //TODO 闇�瑕佷慨鏀�
-        String path =systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ systemDictDataBiz.queryByCode(Constants.OSS, Constants.PROJECT_FILE).getCode();
+        String path =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.FILE_DIR).getCode()+ systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.REPAIR).getCode();
         if (!CollectionUtils.isEmpty(multifiles)){
             multifiles.forEach(s->{
                 if(StringUtils.isNotBlank(s.getFileurl())){
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 95ab98a..189e8c6 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
@@ -26,6 +26,7 @@
 import com.doumee.dao.business.model.MemberRides;
 import com.doumee.dao.business.vo.GoodsorderExportVO;
 import com.doumee.dao.business.vo.GoodsorderTotalDataVO;
+import com.doumee.dao.business.web.request.BikeRepairDTO;
 import com.doumee.dao.business.web.request.GoodsorderCanBanlanceDTO;
 import com.doumee.dao.business.web.request.MemberRidesQuery;
 import com.doumee.dao.business.web.request.RefundDTO;
@@ -170,13 +171,27 @@
         IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         pageWrap.getModel().setPayStatus(Constants.ONE); //鍙煡璇㈡敮浠樻垚鍔熺殑
         MPJLambdaWrapper<Goodsorder> queryWrapper = initQueryParamByModel(pageWrap.getModel());
-        return PageData.from(goodsorderJoinMapper.selectJoinPage(page, GoodsorderExportVO.class,queryWrapper));
+        IPage<GoodsorderExportVO> goodsorderExportVOIPage = goodsorderJoinMapper.selectJoinPage(page, GoodsorderExportVO.class, queryWrapper);
+        if (!CollectionUtils.isEmpty(goodsorderExportVOIPage.getRecords())){
+            goodsorderExportVOIPage.getRecords().forEach(s->{
+                s.setMoney(Constants.translateMoney(s.getMoney()));
+                s.setRefundMoney(Constants.translateMoney(s.getRefundMoney()));
+            });
+        }
+        return PageData.from(goodsorderExportVOIPage);
     }
     @Override
     public   List<GoodsorderExportVO> findExportAccountDetailPage(Goodsorder model){
         model.setPayStatus(Constants.ONE); //鍙煡璇㈡敮浠樻垚鍔熺殑
         MPJLambdaWrapper<Goodsorder> queryWrapper = initQueryParamByModel(model);
         List<GoodsorderExportVO> goodsorderList = goodsorderJoinMapper.selectJoinList(GoodsorderExportVO.class,queryWrapper);
+        if (!CollectionUtils.isEmpty(goodsorderList)){
+            goodsorderList.forEach(s->{
+                s.setMoney(Constants.translateMoney(s.getMoney()));
+                s.setCloseMoney(Constants.translateMoney(s.getCloseMoney()));
+                s.setRefundMoney(Constants.translateMoney(s.getRefundMoney()));
+            });
+        }
        /*   List<GoodsorderExportVO> list = new ArrayList<>();
         if(goodsorderList!=null){
             for(Goodsorder order : goodsorderList){
@@ -394,6 +409,8 @@
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     @Override
     public void closeGoodsorder( Goodsorder goodsorder ,int type ) {
+
+//
         List<MemberRides> memberRides = getMemberRidesForClose(goodsorder.getId());
         //榛樿缁撶畻涓烘娂閲戦噾棰�
         BigDecimal closeMoney = new BigDecimal(0.00);
@@ -424,6 +441,8 @@
         if(Constants.REFUND_TYPE.PLAT_FORCE.getKey() == type){
             //濡傛灉鏄己鍒剁粨绠�
             update.setCloseType(Constants.ONE);
+            LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+            update.setEditor(principal.getId());
         }else  if(Constants.REFUND_TYPE.NORMAL.getKey() == type){
             //濡傛灉鏄嚜琛岀祼绠�
             update.setCloseType(Constants.ZERO);
@@ -441,6 +460,7 @@
             refundDTO.setTotalAmount(goodsorder.getMoney());
             refundDTO.setMemberId(goodsorder.getMemberId());
             refundDTO.setReason(Constants.REFUND_TYPE.get(type).getName());
+            refundDTO.setCreator(update.getEditor());
             refundDTO.setType(type);
             Refund refund = wxMiniUtilService.wxRefund(refundDTO);
             update.setCloseId(refund.getId());
@@ -529,7 +549,7 @@
         BigDecimal refundMoney = total == null?new BigDecimal(0):Constants.formatDecimalNum(total.getMoney());
         //鍙��鍓╀綑 鍗曚綅鍏�
         BigDecimal canBalance =Constants.translateMoney(Constants.formatDecimalNum(goodsorder.getMoney()).subtract(refundMoney));
-        if(canBalance.compareTo(money) > Constants.ZERO){
+        if(canBalance.compareTo(money) >= Constants.ZERO){
             RefundDTO refundDTO = new RefundDTO();
             refundDTO.setOrderId(orderId);
             refundDTO.setCanBalance(canBalance);
@@ -565,7 +585,7 @@
         BigDecimal reduce =  total!=null?Constants.formatDecimalNum(total.getMoney()):new BigDecimal(0);
         goodsorderCanBanlanceDTO.setHasRefundMoney(Constants.translateMoney(reduce));
 
-        BigDecimal subtract = Constants.translateMoney(goodsorder.getMoney()).subtract(goodsorderCanBanlanceDTO.getCloseMoney()).subtract(goodsorderCanBanlanceDTO.getHasRefundMoney());
+        BigDecimal subtract = Constants.translateMoney(goodsorder.getMoney()).subtract(goodsorderCanBanlanceDTO.getHasRefundMoney());
         goodsorderCanBanlanceDTO.setCanBanlanceMoney(subtract.compareTo(new BigDecimal("0")) > 0 ? subtract : new BigDecimal("0"));
         return goodsorderCanBanlanceDTO;
     }
@@ -583,35 +603,39 @@
             model.setPayNum(0);
             model.setRefundNum(0);
             QueryWrapper<Goodsorder> queryWrapper = new QueryWrapper<>();
-            queryWrapper.lambda().ge(param.getStartDate() !=null,Goodsorder::getPayDate,DateUtil.getShortDateStr(param.getStartDate()));
-            queryWrapper.lambda().le(param.getEndDate() !=null,Goodsorder::getPayDate,DateUtil.getShortDateStr(param.getEndDate()));
+            if(Objects.nonNull(param.getStartDate())){
+                queryWrapper.lambda().ge(param.getStartDate() !=null,Goodsorder::getPayDate, Utils.Date.getStart(param.getStartDate()));
+            }
+            if(Objects.nonNull(param.getEndDate())) {
+                queryWrapper.lambda().le(param.getEndDate() != null, Goodsorder::getPayDate, Utils.Date.getEnd(param.getEndDate()));
+            }
             queryWrapper.lambda().eq(Goodsorder::getPayStatus, Constants.ONE);//宸叉敮浠�
             queryWrapper.lambda().eq(Goodsorder::getIsdeleted, Constants.ZERO);
             queryWrapper.lambda().groupBy(Goodsorder::getStatus);
-            queryWrapper.select( "count(id) as count_num"
-                    ,"sum(money) as money" );
+            queryWrapper.select( "status ","count(id) as count_num"
+                    ,"sum(money) as money","sum(close_money) as close_money" );
             //鎸夎鍗曠姸鎬佸垎缁勭粺璁�
             List<Goodsorder> detailList = goodsorderMapper.selectList(queryWrapper);
             for(Goodsorder goodsorder : detailList){
                 if(Constants.formatIntegerNum(goodsorder.getStatus()) == Constants.GOODSORDER_STATUS.CLOSE.getKey()){
                     //宸茬粨绠�
                     model.setClosedNum(model.getClosedNum()+goodsorder.getCountNum());
-                    model.setClosedMoney(model.getClosedMoney().add(Constants.formatDecimalNum(goodsorder.getCloseMoney())));
+                    model.setClosedMoney(model.getClosedMoney().add(Constants.translateMoney(goodsorder.getCloseMoney())));
 
                     model.setPayNum(model.getPayNum()+goodsorder.getCountNum());
-                    model.setPayMoney(model.getPayMoney().add(Constants.formatDecimalNum(goodsorder.getMoney())));
+                    model.setPayMoney(model.getPayMoney().add(Constants.translateMoney(goodsorder.getMoney())));
                 }else  if(Constants.formatIntegerNum(goodsorder.getStatus()) == Constants.GOODSORDER_STATUS.HAVING_PAY.getKey()){
                     //宸叉敮浠樻湭缁撶畻
                     model.setUnClosedNum(model.getUnClosedNum()+goodsorder.getCountNum());
-                    model.setUnClosedMoney(model.getUnClosedMoney().add(Constants.formatDecimalNum(goodsorder.getMoney())));
+                    model.setUnClosedMoney(model.getUnClosedMoney().add(Constants.translateMoney(goodsorder.getMoney())));
 
                     model.setPayNum(model.getPayNum()+goodsorder.getCountNum());
-                    model.setPayMoney(model.getPayMoney().add(Constants.formatDecimalNum(goodsorder.getMoney())));
+                    model.setPayMoney(model.getPayMoney().add(Constants.translateMoney(goodsorder.getMoney())));
                 }
             }
         QueryWrapper<Refund> queryWrapper2 = new QueryWrapper<>();
-        queryWrapper2.lambda().ge(param.getStartDate() !=null,Refund::getDoneDate,DateUtil.getShortDateStr(param.getStartDate()));
-        queryWrapper2.lambda().le(param.getEndDate() !=null,Refund::getDoneDate,DateUtil.getShortDateStr(param.getEndDate()));
+        queryWrapper2.lambda().ge(param.getStartDate() !=null,Refund::getDoneDate,Utils.Date.getStart(param.getStartDate()));
+        queryWrapper2.lambda().le(param.getEndDate() !=null,Refund::getDoneDate,Utils.Date.getEnd(param.getEndDate()));
         queryWrapper2.lambda().eq(Refund::getIsdeleted, Constants.ZERO);
         queryWrapper2.select( "count(id) as count_num"
                 ,"sum(money) as money" );
@@ -619,7 +643,7 @@
         Refund  refund = refundMapper.selectOne(queryWrapper2.last("limit 1"));
         if(refund !=null){
             model.setRefundNum(Constants.formatIntegerNum(refund.getCountNum()));
-            model.setRefundMoney( Constants.formatDecimalNum(refund.getMoney()));
+            model.setRefundMoney(Constants.translateMoney(Constants.formatDecimalNum(refund.getMoney())));
         }
         return  model;
     }
@@ -630,8 +654,13 @@
             throw  new BusinessException(ResponseStatus.DATA_EMPTY);
         }
 
-        List<MemberRides> memberRides = memberRidesJoinMapper.selectList(new QueryWrapper<MemberRides>()
-                .lambda().eq(MemberRides::getOrdreId,id).orderByDesc(MemberRides::getCreateDate));
+        List<MemberRides> memberRides = memberRidesJoinMapper.selectJoinList(MemberRides.class,new MPJLambdaWrapper<MemberRides>()
+                .selectAll(MemberRides.class)
+                .selectAs(BaseParam::getName,MemberRides::getParamName)
+                .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())
+                .orderByDesc(MemberRides::getCreateDate));
         if (!CollectionUtils.isEmpty(memberRides)){
             //棰勮缁撶畻浠锋牸鍜岃绠楁椂闀�
             int freeTime = 0;
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 ee172b3..cb690aa 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
@@ -217,8 +217,12 @@
                 .leftJoin(BaseParam.class,BaseParam::getId,MemberRides::getParamId)
                 .like(StringUtils.isNotBlank(model.getOpenid()),Member::getOpenid,model.getOpenid())
                 .like(StringUtils.isNotBlank(model.getBikeCode()),MemberRides::getBikeCode,model.getBikeCode());
-        queryWrapper.ge(model.getRentDateStart()!=null, MemberRides::getRentDate,model.getRentDateStart());
-        queryWrapper.le(model.getRentDateEnd()!=null, MemberRides::getRentDate,model.getRentDateEnd());
+        if (Objects.nonNull(model.getStartDate())) {
+            queryWrapper.ge(MemberRides::getRentDate, Utils.Date.getStart(model.getStartDate()));
+        }
+        if (Objects.nonNull(model.getEndDate())) {
+            queryWrapper.le(MemberRides::getRentDate, Utils.Date.getStart(model.getEndDate()));
+        }
         queryWrapper.eq(model.getCloseStatus()!=null,MemberRides::getCloseStatus, model.getCloseStatus());
         queryWrapper.eq(model.getStatus()!=null,MemberRides::getStatus, model.getStatus());
         queryWrapper.eq(model.getGoodsorderId()!=null,MemberRides::getOrdreId, model.getGoodsorderId());
@@ -299,7 +303,7 @@
         log.setActInfo(memberRides.getBackInfo());
         log.setActReason(memberRides.getBackReason());
         log.setIsdeleted(Constants.ZERO);
-        log.setCreateDate(update.getBackDate());
+        log.setCreateDate(new Date());
         log.setCreator(user.getId());
         log.setBeforeContent(beforeContent);
         log.setAfterContent(after);
@@ -383,7 +387,7 @@
         ActionLog log = new ActionLog();
         log.setId(Constants.getUUID());
         log.setIsdeleted(Constants.ZERO);
-        log.setCreateDate(update.getBackDate());
+        log.setCreateDate(new Date());
         log.setCreator(user.getId());
         log.setBeforeContent(beforeContent);
         log.setAfterContent(after);
@@ -580,6 +584,27 @@
         return 0;
     }
 
+
+    @Override
+    public void autoRefreshLockStatus() {
+
+        QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
+        wrapper.lambda()
+                .eq(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.LOCKING.getKey())
+                .eq(MemberRides::getIsdeleted,Constants.ZERO);
+        List<MemberRides> memberRides = memberRidesMapper.selectList(wrapper);
+        if (!CollectionUtils.isEmpty(memberRides)){
+            memberRides.forEach(s->{
+                Integer between = DateUtil.between(s.getCreateDate(), new Date());
+                // 澶т簬闃堝��
+                if (between > 2){
+                    s.setStatus(Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey());
+                    memberRidesMapper.updateById(s);
+                }
+            });
+        }
+    }
+
     private Bikes dealBikesByParam(Locks model) {
         if(StringUtils.isNotBlank(model.getBikeCode())){
             UpdateWrapper<Bikes> updateWrapper = new UpdateWrapper<>();
@@ -688,6 +713,13 @@
             model.setCreateDate(date);
             model.setStatus(locks.getStatus());
             locksMapper.insert(model);
+            //鏇存柊 绔欑偣閿佸ご鏁伴噺
+            if(Objects.nonNull(sites)){
+                Sites sites1 = new Sites();
+                sites1.setId(sites.getId());
+                sites1.setLockNum(sites.getLockNum()+1);
+                sitesMapper.updateById(sites1);
+            }
         }else{
             UpdateWrapper<Locks> updateWrapper = new UpdateWrapper<Locks>();
             updateWrapper.lambda().eq(Locks::getCode, locks.getCode() );
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 300ce2f..024712f 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
@@ -82,8 +82,8 @@
         insert.setHolidayBasePrice(Constants.formatDecimalNum(pricingDetail.getHolidayBasePrice()).multiply(new BigDecimal(100)));
         insert.setHolidayUnitPrice(Constants.formatDecimalNum(pricingDetail.getHolidayUnitPrice()).multiply(new BigDecimal(100)));
         insert.setInfo(pricingDetail.getInfo());
-        String title = getRoleNameByParam(pricingDetail.getBasePrice(),pricingDetail.getBaseTime(),pricingDetail.getUnitPrice(),pricingDetail.getUnitTime());
-        String info = getRoleNameByParam(pricingDetail.getHolidayBasePrice(),pricingDetail.getHolidayBaseTime(),pricingDetail.getHolidayUnitPrice(),pricingDetail.getHolidayUnitTime());;
+        String title = getRoleNameByParam(insert.getBasePrice(),insert.getBaseTime(),insert.getUnitPrice(),insert.getUnitTime());
+        String info = getRoleNameByParam(insert.getHolidayBasePrice(),insert.getHolidayBaseTime(),insert.getHolidayUnitPrice(),insert.getHolidayUnitTime());;
         insert.setTitle(title);//宸ヤ綔鏃ヨ浠烽厤缃鍒�
         insert.setInfo(info);//鑺傚亣鏃ヨ浠烽厤缃鍒�
         pricingDetailMapper.insert(insert);
@@ -93,7 +93,7 @@
     public static  String getRoleNameByParam(BigDecimal basePrice, Integer baseTime, BigDecimal unitPrice, Integer unitTime) {
         String title = "璁¤垂瑙勫垯锛�";
         if(baseTime < 0){
-            title = basePrice.doubleValue()+"鍏冪晠楠戜竴鏁村ぉ";
+            title = (basePrice.divide(new BigDecimal(100))).doubleValue()+"鍏冪晠楠戜竴鏁村ぉ";
         }else {
             title = "璧锋";
             int time = baseTime / 60;
@@ -104,8 +104,8 @@
             if(min >0){
                 title += min+"鍒嗛挓";
             }
-            title += basePrice.doubleValue()
-                    +"鍏冿紝瓒呰繃鍚�"+unitPrice.doubleValue()+"鍏�/"
+            title += basePrice.divide(new BigDecimal(100)).doubleValue()
+                    +"鍏冿紝瓒呰繃鍚�"+unitPrice.divide(new BigDecimal(100)).doubleValue()+"鍏�/"
                     +unitTime+"鍒嗛挓";
         }
         return  title;
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
index 53664f0..d7d1f1f 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
@@ -118,9 +118,9 @@
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇ュ畾浠锋柟妗堜笅娌℃湁閰嶇疆浠锋牸");
             }
             List<String> collect = pricingDetails.stream().map(s -> s.getBikeTypeId()).collect(Collectors.toList());
-            boolean b = baseParams.stream().map(s -> s.getId()).anyMatch(s -> collect.contains(s));
+            boolean b = baseParams.stream().map(s -> s.getId()).allMatch(s -> collect.contains(s));
 
-            if (b){
+            if (!b){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇ュ畾浠锋柟妗堜笅娌℃湁閰嶇疆瀹屾暣");
             }
             PricingParam pricingParam1 = new PricingParam();
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 d3c549d..804bfcd 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
@@ -64,6 +64,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"绔欑偣缂栧彿宸插瓨鍦�");
         }
         Sites insert = new Sites();
+        insert.setId(sites.getCode());
         insert.setCreateDate(new Date());
         insert.setCreator(principal.getId());
         insert.setEditDate(new Date());
@@ -72,10 +73,10 @@
         insert.setInfo(sites.getInfo());
         insert.setName(sites.getName());
         insert.setCode(sites.getCode());
-        insert.setStatus(sites.getStatus());
+        insert.setStatus(Constants.ZERO);
         insert.setLockNum(sites.getLockNum());
         insert.setIp(sites.getIp());
-        sitesMapper.insert(sites);
+        sitesMapper.insert(insert);
         return sites.getId();
     }
 
@@ -101,7 +102,15 @@
     @Override
     public void updateById(Sites sites) {
         LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        QueryWrapper<Sites> wrapper = new QueryWrapper<>();
+        wrapper.lambda()
+                .eq(Sites::getCode,sites.getCode());
+        Sites count = sitesMapper.selectOne(wrapper);
+        if (Objects.nonNull(count) && !count.getId().equals(sites.getId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"绔欑偣缂栧彿宸插瓨鍦�");
+        }
         Sites update = new Sites();
+        update.setId(sites.getId());
         update.setCreateDate(new Date());
         update.setEditor(principal.getId());
         update.setName(sites.getName());
@@ -206,16 +215,16 @@
         QueryWrapper<Sites> queryWrapper = new QueryWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
         queryWrapper.select("*,(select count(r.id) from locks r where r.site_id = sites.id) as all_lock_num" +
-         ",(select count(r.bike_code) from locks r where r.site_id = sites.id and r.bike_code is null and r.bike_code !='' ) as bikeCount");
+         ",(select count(l.bike_code) from locks l where l.site_id = sites.id and l.bike_code IS NOT NULL and l.bike_code !='' ) as bikeCount");
 //        Page<SitesMonitorDTO> sitesMonitorDTO = sitesMapper.getSitesMonitorDTO(page, pageWrap.getModel().getCode(), pageWrap.getModel().getName());
         queryWrapper.lambda().like(StringUtils.isNotBlank(pageWrap.getModel().getCode()),Sites::getCode,pageWrap.getModel().getCode());
-        queryWrapper.lambda().like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Sites::getCode,pageWrap.getModel().getName());
+        queryWrapper.lambda().like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Sites::getName,pageWrap.getModel().getName());
         queryWrapper.lambda().orderByAsc(Sites::getCode);
         IPage<Sites> sitesMonitorDTO = sitesMapper.selectPage(page, queryWrapper);
         if (!CollectionUtils.isEmpty(sitesMonitorDTO.getRecords())){
             sitesMonitorDTO.getRecords().forEach(s->{
                 if(Constants.formatIntegerNum(s.getAllLockNum()) >0){
-                    s.setRate(new BigDecimal(s.getBikeCount()).divide(new BigDecimal(s.getAllLockNum()),BigDecimal.ROUND_UP).setScale(2));
+                    s.setRate(new BigDecimal(s.getBikeCount()).divide(new BigDecimal(s.getAllLockNum()),2,BigDecimal.ROUND_HALF_UP));
                 }else{
                     s.setRate(new BigDecimal(0.0));
                 }
diff --git a/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java b/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
index 54931bf..53a5c43 100644
--- a/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
@@ -142,13 +142,13 @@
             String jasonStr = MiniProgrammeDTO.toUnderlineJSONString(miniProgrammeDTO);
             JSONObject parse = (JSONObject) JSONObject.parse(jasonStr);
             parse.entrySet().forEach(s->{
-                if (StringUtils.isNotBlank((String)s.getValue())){
+//                if (StringUtils.isNotBlank((String)s.getValue())){
                     UpdateWrapper<SystemDictData> wrapper = new UpdateWrapper<>();
                     wrapper.lambda()
                             .eq(SystemDictData::getLabel,s.getKey().toUpperCase())
                             .set(SystemDictData::getCode,s.getValue());
                     systemDictDataMapper.update(null,wrapper);
-                }
+//                }
             });
         } catch (JsonProcessingException e) {
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀛楀吀鍊艰В鏋愭湁璇�");
diff --git a/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index 6df9cbf..2c509ff 100644
--- a/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -120,7 +120,7 @@
             loginLog.setReason(e.getMessage().length() > 200 ? (e.getMessage().substring(0, 190) + "...") : e.getMessage());
             loginLog.setSuccess(Constants.ONE);
             systemLoginLogService.create(loginLog);
-            throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
+            throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT.getCode(),e.getCause().getMessage());
         }
     }
 
diff --git a/server/services/src/main/resources/application-dev.yml b/server/services/src/main/resources/application-dev.yml
index 5f66561..38a3e17 100644
--- a/server/services/src/main/resources/application-dev.yml
+++ b/server/services/src/main/resources/application-dev.yml
@@ -50,8 +50,8 @@
     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
+#    keyPath: D:\DouMee\config\doumeeTest\apiclient_cert.p12
+    keyPath: /usr/local/apiclient_cert.p12
 ########################mqtt鐩稿叧閰嶇疆########################
 mqtt:
   host: tcp://175.27.187.84:1883
diff --git a/server/services/src/main/resources/mappers/SystemUserMapper.xml b/server/services/src/main/resources/mappers/SystemUserMapper.xml
index 4e3503d..9ae4ea2 100644
--- a/server/services/src/main/resources/mappers/SystemUserMapper.xml
+++ b/server/services/src/main/resources/mappers/SystemUserMapper.xml
@@ -63,12 +63,13 @@
     select
     distinct
     usr.id, usr.birthday, usr.email, usr.emp_no, usr.mobile, usr.avatar, usr.username, usr.realname, usr.sex, usr.fixed, usr.create_time, usr.update_time,
-    usr.nickname,
+    usr.nickname,usr.status,
     create_user.id create_user_id, create_user.username create_user_name,
     update_user.id updete_user_id, update_user.username update_user_name
     from "system_user" usr
     left join "system_user" create_user on create_user.id = usr.create_user
     left join "system_user" update_user on update_user.id = usr.update_user
+    left join "system_user_role" sur on sur.user_id = usr.id
     <where>
       usr.deleted = 0
       <if test="dto.username != null and dto.username != ''">
@@ -80,6 +81,12 @@
       <if test="dto.mobile != null and dto.mobile != ''">
         AND usr.mobile  LIKE '%'||#{dto.mobile}||'%'
       </if>
+      <if test="dto.status != null ">
+        AND usr.status  = #{dto.status}
+      </if>
+      <if test="dto.roleId != null and dto.roleId != ''">
+        AND sur.role_id  = #{dto.roleId}
+      </if>
 
     </where>
   </select>
diff --git a/server/web/src/main/java/com/doumee/api/web/AccountApi.java b/server/web/src/main/java/com/doumee/api/web/AccountApi.java
index db5c45b..4bb78d8 100644
--- a/server/web/src/main/java/com/doumee/api/web/AccountApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/AccountApi.java
@@ -67,7 +67,7 @@
 
 
     public static void main(String[] args) {
-        JwtPayLoad payLoad = new JwtPayLoad("d0a92489d26d43e182a1b8b75e1d9836");
+        JwtPayLoad payLoad = new JwtPayLoad("07a9f07178864e57bf1fb34e7a321f08");
         System.out.println(JwtTokenUtil.generateToken(payLoad));
     }
 
diff --git a/server/web/src/main/resources/application.yml b/server/web/src/main/resources/application.yml
index 8664b05..05e2417 100644
--- a/server/web/src/main/resources/application.yml
+++ b/server/web/src/main/resources/application.yml
@@ -9,7 +9,7 @@
 #  application:
 #    name: parkbike
   profiles:
-    active: dev
+    active: test
   # JSON杩斿洖閰嶇疆
   jackson:
     # 榛樿鏃跺尯

--
Gitblit v1.9.3