From 39ddb6cdeefad6489e79cd49dfa94fdaf359dcdc Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期一, 20 五月 2024 16:57:10 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 server/system_service/src/main/java/com/doumee/config/cloudfilter/CustomHttpServletRequestWrapper.java  |   58 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceEvent.java              |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java        |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarDriverMapper.java                |    3 
 server/system_service/src/main/java/com/doumee/config/cloudfilter/RequestWrapperFilter.java             |   26 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/FormParam.java                |    3 
 admin/package-lock.json                                                                                 |  160 +++++-----
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java                |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java |   47 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java                 |    3 
 server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java          |  123 ++++++++
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarDriverController.java              |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Problems.java                 |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java            |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerParam.java        |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java     |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarDriverServiceImpl.java  |   70 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java             |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java                    |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java              |    3 
 server/system_service/src/main/java/com/doumee/config/cloudfilter/CloudWebConfig.java                   |   14 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java                  |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java                 |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarParks.java                 |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java               |   37 +
 admin/src/views/business/visitorSources.vue                                                             |   24 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java                |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ProblemLog.java               |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java                   |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblemLog.java          |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarDriver.java                |   19 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java          |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Tasks.java                    |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InterfaceLog.java             |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblems.java            |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java                   |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java                |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visitor.java                  |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java                     |    3 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarDriverCloudController.java          |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java                 |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarDriverService.java           |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java            |    3 
 admin/src/components/business/OperaInternalCompanyWindow.vue                                            |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveTempl.java             |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java              |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java                  |    3 
 /dev/null                                                                                               |  135 ---------
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarUseBookMapper.java               |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java               |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java             |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java               |    3 
 52 files changed, 555 insertions(+), 288 deletions(-)

diff --git a/admin/package-lock.json b/admin/package-lock.json
index f4e509d..485d39d 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -1876,6 +1876,63 @@
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         },
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true,
+          "optional": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
         "ssri": {
           "version": "8.0.1",
           "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -1883,6 +1940,28 @@
           "dev": true,
           "requires": {
             "minipass": "^3.1.1"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        },
+        "vue-loader-v16": {
+          "version": "npm:vue-loader@16.8.3",
+          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
+          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "chalk": "^4.1.0",
+            "hash-sum": "^2.0.0",
+            "loader-utils": "^2.0.0"
           }
         }
       }
@@ -13868,87 +13947,6 @@
           "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
           "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
           "dev": true
-        }
-      }
-    },
-    "vue-loader-v16": {
-      "version": "npm:vue-loader@16.8.3",
-      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
-      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "chalk": "^4.1.0",
-        "hash-sum": "^2.0.0",
-        "loader-utils": "^2.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "optional": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
-          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
         }
       }
     },
diff --git a/admin/src/components/business/OperaInternalCompanyWindow.vue b/admin/src/components/business/OperaInternalCompanyWindow.vue
index 5b0d8e1..89d1a18 100644
--- a/admin/src/components/business/OperaInternalCompanyWindow.vue
+++ b/admin/src/components/business/OperaInternalCompanyWindow.vue
@@ -16,7 +16,7 @@
                 <el-input v-model="form.name" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" v-trim/>
             </el-form-item>
           <el-form-item label="缁勭粐绫诲瀷" prop="type">
-            <el-radio-group v-model="form.type" :disabled="form.parentType ==0">
+            <el-radio-group v-model="form.type" :disabled="form.parentType == 0">
               <el-radio :label="0">鐩稿叧鏂圭粍缁�</el-radio>
               <el-radio :label="1">鍐呴儴缁勭粐</el-radio>
             </el-radio-group>
@@ -79,7 +79,7 @@
         parentId: null,
         disable: false,
         parentName: '',
-        parentType:0
+        parentType:null
       }
       if (target != null) {
         this.form.parentId = target.id
diff --git a/admin/src/views/business/visitorSources.vue b/admin/src/views/business/visitorSources.vue
index f7aaf88..6833446 100644
--- a/admin/src/views/business/visitorSources.vue
+++ b/admin/src/views/business/visitorSources.vue
@@ -1,6 +1,13 @@
 <template>
     <div class="box">
         <el-form :model="form" ref="form" label-width="140px">
+            <div><span style="font-size: 15px;font-weight: bold">浜哄憳鎺堟潈閰嶇疆锛�</span></div>
+          <el-form-item label="" prop="frezzDays" label-width="50px">
+            浜哄憳闂ㄧ鎺堟潈鍐荤粨锛氳繛缁�
+            <el-input style="width: 50px;" type="text" v-model="form.frezzDays" placeholder="" v-trim/>
+            澶╋紝鏃犻棬绂�/杞﹁締闂告満浜嬩欢
+          </el-form-item>
+            <div><span style="font-size: 15px;font-weight: bold">璁垮閰嶇疆锛�</span></div>
             <el-form-item label="鏉ヨ棰勭害鏂瑰紡:" prop="reservationWay">
                 <el-radio-group v-model="form.reservationWay">
                     <el-radio :label="0">棰勭害鍏嶇櫥璁�</el-radio>
@@ -45,6 +52,12 @@
             </el-form-item>
             <el-form-item label="鍏ュ巶椤荤煡:" prop="visitNotice">
                 <el-tiptap style="width: 50%;" v-model="form.visitNotice" :extensions="extensions" />
+            </el-form-item>
+            <el-form-item label="璁垮棰勭害鎸囧崡:" prop="visitNotice">
+                <el-tiptap style="width: 50%;" v-model="form.visitTips" :extensions="extensions" />
+            </el-form-item>
+            <el-form-item label="璁垮鍏ュ洯瀵艰鍥�:" prop="visitNotice">
+                <el-tiptap style="width: 50%;" v-model="form.visitMap" :extensions="extensions" />
             </el-form-item>
             <el-form-item>
                 <el-button type="primary" @click="submit">淇濆瓨閰嶇疆椤�</el-button>
@@ -94,7 +107,10 @@
         doorsVisitRequired: '',
         theme: '',
         description: '',
-        visitNotice: ''
+        visitNotice: '',
+        visitMap: '',
+        visitTips: '',
+        frezzDays: null
       },
       extensions: [
         new Doc(),
@@ -147,6 +163,9 @@
           this.form.theme = res.theme
           this.form.doorsVisitRequired = res.doorsVisitRequired
           this.form.visitNotice = res.visitNotice
+          this.form.visitTips = res.visitTips
+          this.form.visitMap = res.visitMap
+          this.form.frezzDays = res.frezzDays
         })
     },
     submit () {
@@ -158,6 +177,9 @@
         description: this.form.description,
         theme: this.form.theme,
         visitNotice: this.form.visitNotice,
+        visitTips: this.form.visitTips,
+        frezzDays: this.form.frezzDays,
+        visitMap: this.form.visitMap,
         doorsVisitRequired: this.form.doorsVisitRequired
       }).then(res => {
         this.$message.success('淇濆瓨鎴愬姛')
diff --git a/server/system_service/src/main/java/com/doumee/config/cloudfilter/CloudWebConfig.java b/server/system_service/src/main/java/com/doumee/config/cloudfilter/CloudWebConfig.java
index a8dc5a7..45a5047 100644
--- a/server/system_service/src/main/java/com/doumee/config/cloudfilter/CloudWebConfig.java
+++ b/server/system_service/src/main/java/com/doumee/config/cloudfilter/CloudWebConfig.java
@@ -2,10 +2,14 @@
 
 import com.doumee.core.utils.Constants;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import javax.servlet.Filter;
 
 @Configuration
 public class CloudWebConfig implements WebMvcConfigurer {
@@ -16,4 +20,14 @@
         registry.addInterceptor(new LoginHandlerInterceptor(stringRedisTemplate))
                 .addPathPatterns(Constants.CLOUD_SERVICE_URL_INDEX+"/**");
     }
+
+//    @Bean
+    public FilterRegistrationBean addRequestWrapperFilter() {
+        FilterRegistrationBean<Filter> registration = new FilterRegistrationBean<>();
+        registration.setFilter(new RequestWrapperFilter());
+        registration.setName("RequestWrapperFilter");
+        registration.addUrlPatterns(Constants.CLOUD_SERVICE_URL_INDEX+"/*");
+        registration.setOrder(1);
+        return registration;
+    }
 }
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/config/cloudfilter/CustomHttpServletRequestWrapper.java b/server/system_service/src/main/java/com/doumee/config/cloudfilter/CustomHttpServletRequestWrapper.java
new file mode 100644
index 0000000..056137b
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/config/cloudfilter/CustomHttpServletRequestWrapper.java
@@ -0,0 +1,58 @@
+package com.doumee.config.cloudfilter;
+
+import javax.servlet.ReadListener;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
+
+public class CustomHttpServletRequestWrapper extends HttpServletRequestWrapper {
+    private   String body;
+    public CustomHttpServletRequestWrapper(HttpServletRequest request ) {
+        super(request);
+        this.body = body;
+    }
+
+    @Override
+    public ServletInputStream getInputStream() throws IOException {
+        final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body.getBytes(StandardCharsets.UTF_8));
+        ServletInputStream servletInputStream = new ServletInputStream() {
+            @Override
+            public boolean isFinished() {
+                return false;
+            }
+
+            @Override
+            public boolean isReady() {
+                return false;
+            }
+
+            @Override
+            public void setReadListener(ReadListener readListener) {
+            }
+
+            @Override
+            public int read() throws IOException {
+                return byteArrayInputStream.read();
+            }
+        };
+        return servletInputStream;
+    }
+
+    @Override
+    public BufferedReader getReader() throws IOException {
+        return new BufferedReader(new InputStreamReader(this.getInputStream()));
+    }
+
+    public String getBody() {
+        return body;
+    }
+
+    public void setBody(String body) {
+        this.body = body;
+    }
+}
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java b/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java
index f06ee51..bc48e9f 100644
--- a/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java
+++ b/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java
@@ -13,12 +13,17 @@
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.util.ContentCachingRequestWrapper;
 
+import javax.servlet.ServletInputStream;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Arrays;
-import java.util.Enumeration;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.*;
 
 public class LoginHandlerInterceptor implements HandlerInterceptor {
 
@@ -69,6 +74,17 @@
                         }
 
                     }
+                    /*try {
+                        CustomHttpServletRequestWrapper requestWrapper = (CustomHttpServletRequestWrapper)request;
+                        String body = requestWrapper.getBody();
+                        JSONObject object = JSONObject.parseObject(body);
+                        if(object!=null){
+                            object.put("loginUserinfo",user);
+                            requestWrapper.setBody( JSONObject.toJSONString(object));
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }*/
                 } else {
                     throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
                 }
@@ -78,6 +94,30 @@
         }
 
         return true;
+    }
+
+    private String getRequestBody(HttpServletRequest request) {
+        // 瀹炵幇浠巖equest鑾峰彇璇锋眰浣撶殑閫昏緫
+        String body = null;
+        ServletInputStream inputStream = null;
+        try {
+            inputStream = request.getInputStream();
+            String charset = request.getCharacterEncoding(); // 鍙兘涓簄ull
+            if (charset == null) {
+                charset = "UTF-8"; // 榛樿缂栫爜
+            }
+            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset));
+            StringBuilder stringBuilder = new StringBuilder();
+            String line = null;
+            while ((line = reader.readLine()) != null) {
+                stringBuilder.append(line + "\n");
+            }
+            body = stringBuilder.toString();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+
+        return body;
     }
 
     private LoginUserInfo checkLogin(String token) {
@@ -96,8 +136,87 @@
         return  user;
     }
 
+
+
     //    @Override
     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
 //        UserContext.removeUser();
     }
+
+    class RSARequestWrapper extends HttpServletRequestWrapper {
+        private Map<String, String[]> params = new HashMap<>();
+        /**
+         * 蹇呴』瑕佸疄鐜扮殑鏋勯�犳柟娉�
+         * @param request
+         */
+        public RSARequestWrapper(HttpServletRequest request) {
+            super(request);
+            //灏嗗弬鏁拌〃锛岃祴浜堢粰褰撳墠鐨凪ap浠ヤ究浜庢寔鏈塺equest涓殑鍙傛暟
+            this.params.putAll(request.getParameterMap());
+        }
+        /**
+         * 閲嶈浇鏋勯�犳柟娉�
+         * @param request
+         * @param extendParams
+         */
+        public RSARequestWrapper(HttpServletRequest request, Map<String, Object> extendParams) {
+            this(request);
+            //杩欓噷灏嗘墿灞曞弬鏁板啓鍏ュ弬鏁拌〃
+            addAllParameters(extendParams);
+        }
+        /**
+         * 鍦ㄨ幏鍙栨墍鏈夌殑鍙傛暟鍚�,蹇呴』閲嶅啓姝ゆ柟娉曪紝鍚﹀垯瀵硅薄涓弬鏁板�兼槧灏勪笉涓�
+         * @return
+         */
+        @SuppressWarnings({ "unchecked", "rawtypes" })
+        @Override
+        public Enumeration<String> getParameterNames() {
+            return new Vector(params.keySet()).elements();
+        }
+        /**
+         * 澧炲姞澶氫釜鍙傛暟
+         * @param otherParams 澧炲姞鐨勫涓弬鏁�
+         */
+        public void addAllParameters(Map<String, Object> otherParams) {
+            for (Map.Entry<String, Object> entry : otherParams.entrySet()) {
+                addParameter(entry.getKey(), entry.getValue());
+            }
+        }
+        /**
+         * 澧炲姞鍙傛暟
+         * getParameterMap()涓殑绫诲瀷鏄�<String,String[]>绫诲瀷鐨勶紝鎵�浠ヨ繖閲岃灏嗗叾value杞负String[]绫诲瀷
+         * @param name 鍙傛暟鍚�
+         * @param value 鍙傛暟鍊�
+         */
+        public void addParameter(String name, Object value) {
+            if (value != null) {
+                if (value instanceof String[]) {
+                    params.put(name, (String[]) value);
+                } else if (value instanceof String) {
+                    params.put(name, new String[]{(String) value});
+                } else {
+                    params.put(name, new String[]{String.valueOf(value)});
+                }
+            }
+        }
+        @Override
+        public String[] getParameterValues(String name) {
+            String[] access_token_user_id = params.get("access_token_user_id");
+            String[] values = params.get(name);//getValue(name);
+            if (values == null || access_token_user_id==null){
+                return null;
+            }
+            return values;
+        }
+
+        @Override
+        public String getParameter(String name) {
+            String[] access_token_user_id = params.get("access_token_user_id");
+            String[] values = params.get(name);//getValue(name);
+            if (values == null || access_token_user_id==null){
+                return null;
+            }
+            return values[0];
+        }
+    }
 }
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/config/cloudfilter/RequestWrapperFilter.java b/server/system_service/src/main/java/com/doumee/config/cloudfilter/RequestWrapperFilter.java
new file mode 100644
index 0000000..97c2353
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/config/cloudfilter/RequestWrapperFilter.java
@@ -0,0 +1,26 @@
+package com.doumee.config.cloudfilter;
+
+import lombok.extern.slf4j.Slf4j;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+
+@Slf4j
+public class RequestWrapperFilter implements Filter {
+
+    @Override
+    public void init(FilterConfig config) {
+        log.info("==>RequestWrapperFilter鍚姩");
+    }
+
+    @Override
+    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
+            throws java.io.IOException, ServletException {
+        CustomHttpServletRequestWrapper requestWrapper = new CustomHttpServletRequestWrapper((HttpServletRequest) request);
+        chain.doFilter(requestWrapper, response);
+    }
+
+    @Override
+    public void destroy() {
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarBookController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarBookController.java
deleted file mode 100644
index 179966f..0000000
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarBookController.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.doumee.api.business;
-
-import com.doumee.core.annotation.excel.ExcelExporter;
-import com.doumee.core.annotation.pr.PreventRepeat;
-import com.doumee.core.model.ApiResponse;
-import com.doumee.core.model.PageWrap;
-import com.doumee.core.model.PageData;
-import com.doumee.dao.business.model.CarBook;
-import com.doumee.service.business.CarBookService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;    
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import javax.servlet.http.HttpServletResponse;
-import com.doumee.api.BaseController;
-
-/**
- * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
- */
-@Api(tags = "杞﹁締棰勭害璁板綍淇℃伅琛�")
-@RestController
-@RequestMapping("/business/carBook")
-public class CarBookController extends BaseController {
-
-    @Autowired
-    private CarBookService carBookService;
-
-    @PreventRepeat
-    @ApiOperation("鏂板缓")
-    @PostMapping("/create")
-    @RequiresPermissions("business:carbook:create")
-    public ApiResponse create(@RequestBody CarBook carBook) {
-        return ApiResponse.success(carBookService.create(carBook));
-    }
-
-    @ApiOperation("鏍规嵁ID鍒犻櫎")
-    @GetMapping("/delete/{id}")
-    @RequiresPermissions("business:carbook:delete")
-    public ApiResponse deleteById(@PathVariable Integer id) {
-        carBookService.deleteById(id);
-        return ApiResponse.success(null);
-    }
-
-    @ApiOperation("鎵归噺鍒犻櫎")
-    @GetMapping("/delete/batch")
-    @RequiresPermissions("business:carbook:delete")
-    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
-        carBookService.deleteByIdInBatch(this.getIdList(ids));
-        return ApiResponse.success(null);
-    }
-
-    @ApiOperation("鏍规嵁ID淇敼")
-    @PostMapping("/updateById")
-    @RequiresPermissions("business:carbook:update")
-    public ApiResponse updateById(@RequestBody CarBook carBook) {
-        carBookService.updateById(carBook);
-        return ApiResponse.success(null);
-    }
-
-    @ApiOperation("鍒嗛〉鏌ヨ")
-    @PostMapping("/page")
-    @RequiresPermissions("business:carbook:query")
-    public ApiResponse<PageData<CarBook>> findPage (@RequestBody PageWrap<CarBook> pageWrap) {
-        return ApiResponse.success(carBookService.findPage(pageWrap));
-    }
-
-    @ApiOperation("瀵煎嚭Excel")
-    @PostMapping("/exportExcel")
-    @RequiresPermissions("business:carbook:exportExcel")
-    public void exportExcel (@RequestBody PageWrap<CarBook> pageWrap, HttpServletResponse response) {
-        ExcelExporter.build(CarBook.class).export(carBookService.findPage(pageWrap).getRecords(), "杞﹁締棰勭害璁板綍淇℃伅琛�", response);
-    }
-
-    @ApiOperation("鏍规嵁ID鏌ヨ")
-    @GetMapping("/{id}")
-    @RequiresPermissions("business:carbook:query")
-    public ApiResponse findById(@PathVariable Integer id) {
-        return ApiResponse.success(carBookService.findById(id));
-    }
-}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarDriverController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarDriverController.java
index 126be66..83108c2 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarDriverController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarDriverController.java
@@ -39,7 +39,7 @@
     @GetMapping("/delete/{id}")
     @RequiresPermissions("business:cardriver:delete")
     public ApiResponse deleteById(@PathVariable Integer id) {
-        carDriverService.deleteById(id);
+        carDriverService.deleteById(id,this.getLoginUser(null));
         return ApiResponse.success(null);
     }
 
@@ -47,7 +47,7 @@
     @GetMapping("/delete/batch")
     @RequiresPermissions("business:cardriver:delete")
     public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
-        carDriverService.deleteByIdInBatch(this.getIdList(ids));
+        carDriverService.deleteByIdInBatch(this.getIdList(ids),this.getLoginUser(null));
         return ApiResponse.success(null);
     }
 
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarBookCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarBookCloudController.java
deleted file mode 100644
index 42c72b5..0000000
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarBookCloudController.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.doumee.cloud.admin;
-
-import com.doumee.api.BaseController;
-import com.doumee.config.annotation.CloudRequiredPermission;
-import com.doumee.core.annotation.excel.ExcelExporter;
-import com.doumee.core.annotation.pr.PreventRepeat;
-import com.doumee.core.model.ApiResponse;
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Constants;
-import com.doumee.dao.business.model.CarBook;
-import com.doumee.service.business.CarBookService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
- */
-@Api(tags = "杞﹁締棰勭害璁板綍淇℃伅琛�")
-@RestController
-@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/carBook")
-public class CarBookCloudController extends BaseController {
-
-    @Autowired
-    private CarBookService carBookService;
-
-    @PreventRepeat
-    @ApiOperation("鏂板缓")
-    @PostMapping("/create")
-    @CloudRequiredPermission("business:carbook:create")
-    public ApiResponse create(@RequestBody CarBook carBook,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        return ApiResponse.success(carBookService.create(carBook));
-    }
-
-    @ApiOperation("鏍规嵁ID鍒犻櫎")
-    @GetMapping("/delete/{id}")
-    @CloudRequiredPermission("business:carbook:delete")
-    public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        carBookService.deleteById(id);
-        return ApiResponse.success(null);
-    }
-
-    @ApiOperation("鎵归噺鍒犻櫎")
-    @GetMapping("/delete/batch")
-    @CloudRequiredPermission("business:carbook:delete")
-    public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        carBookService.deleteByIdInBatch(this.getIdList(ids));
-        return ApiResponse.success(null);
-    }
-
-    @ApiOperation("鏍规嵁ID淇敼")
-    @PostMapping("/updateById")
-    @CloudRequiredPermission("business:carbook:update")
-    public ApiResponse updateById(@RequestBody CarBook carBook,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        carBookService.updateById(carBook);
-        return ApiResponse.success(null);
-    }
-
-    @ApiOperation("鍒嗛〉鏌ヨ")
-    @PostMapping("/page")
-    @CloudRequiredPermission("business:carbook:query")
-    public ApiResponse<PageData<CarBook>> findPage (@RequestBody PageWrap<CarBook> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        return ApiResponse.success(carBookService.findPage(pageWrap));
-    }
-
-    @ApiOperation("瀵煎嚭Excel")
-    @PostMapping("/exportExcel")
-    @CloudRequiredPermission("business:carbook:exportExcel")
-    public void exportExcel (@RequestBody PageWrap<CarBook> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        ExcelExporter.build(CarBook.class).export(carBookService.findPage(pageWrap).getRecords(), "杞﹁締棰勭害璁板綍淇℃伅琛�", response);
-    }
-
-    @ApiOperation("鏍规嵁ID鏌ヨ")
-    @GetMapping("/{id}")
-    @CloudRequiredPermission("business:carbook:query")
-    public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        return ApiResponse.success(carBookService.findById(id));
-    }
-}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarDriverCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarDriverCloudController.java
index cd8be02..7f31c24 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarDriverCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarDriverCloudController.java
@@ -34,6 +34,7 @@
     @PostMapping("/create")
     @CloudRequiredPermission("business:cardriver:create")
     public ApiResponse create(@RequestBody CarDriver carDriver,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        carDriver.setLoginUserInfo(this.getLoginUser(token));
         return ApiResponse.success(carDriverService.create(carDriver));
     }
 
@@ -41,7 +42,7 @@
     @GetMapping("/delete/{id}")
     @CloudRequiredPermission("business:cardriver:delete")
     public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        carDriverService.deleteById(id);
+        carDriverService.deleteById(id,this.getLoginUser(token));
         return ApiResponse.success(null);
     }
 
@@ -49,7 +50,7 @@
     @GetMapping("/delete/batch")
     @CloudRequiredPermission("business:cardriver:delete")
     public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        carDriverService.deleteByIdInBatch(this.getIdList(ids));
+        carDriverService.deleteByIdInBatch(this.getIdList(ids),this.getLoginUser(token));
         return ApiResponse.success(null);
     }
 
@@ -57,6 +58,7 @@
     @PostMapping("/updateById")
     @CloudRequiredPermission("business:cardriver:update")
     public ApiResponse updateById(@RequestBody CarDriver carDriver,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        carDriver.setLoginUserInfo(this.getLoginUser(token));
         carDriverService.updateById(carDriver);
         return ApiResponse.success(null);
     }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarBookMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarBookMapper.java
deleted file mode 100644
index e516069..0000000
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarBookMapper.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.doumee.dao.business;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.doumee.dao.business.model.CarBook;
-
-/**
- * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
- */
-public interface CarBookMapper extends BaseMapper<CarBook> {
-
-}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarDriverMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarDriverMapper.java
index 5e4b919..578a926 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarDriverMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarDriverMapper.java
@@ -2,11 +2,12 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.CarDriver;
+import com.github.yulichang.base.MPJBaseMapper;
 
 /**
  * @author 姹熻箘韫�
  * @since 2024/04/28 16:06
  */
-public interface CarDriverMapper extends BaseMapper<CarDriver> {
+public interface CarDriverMapper extends MPJBaseMapper<CarDriver> {
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarUseBookMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarUseBookMapper.java
index 406cf2f..e2e41b2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarUseBookMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarUseBookMapper.java
@@ -2,11 +2,12 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.CarUseBook;
+import com.github.yulichang.base.MPJBaseMapper;
 
 /**
  * @author 姹熻箘韫�
  * @since 2024/04/28 16:06
  */
-public interface CarUseBookMapper extends BaseMapper<CarUseBook> {
+public interface CarUseBookMapper extends MPJBaseMapper<CarUseBook> {
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java
index 22747d4..05d9e2e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("瀹℃壒淇℃伅璁板綍琛�")
 @TableName("`approve`")
-public class Approve {
+public class Approve  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java
index d38c87d..fa3de7e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("瀹℃壒妯$増閰嶇疆淇℃伅琛�")
 @TableName("`approve_param`")
-public class ApproveParam {
+public class ApproveParam  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveTempl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveTempl.java
index 452f499..43980aa 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveTempl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveTempl.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("瀹℃壒妯$増淇℃伅琛�")
 @TableName("`approve_templ`")
-public class ApproveTempl {
+public class ApproveTempl  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarBook.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarBook.java
deleted file mode 100644
index ebdb631..0000000
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarBook.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package com.doumee.dao.business.model;
-
-import com.doumee.core.annotation.excel.ExcelColumn;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import java.util.Date;
-
-/**
- * 杞﹁締棰勭害璁板綍淇℃伅琛�
- * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
- */
-@Data
-@ApiModel("杞﹁締棰勭害璁板綍淇℃伅琛�")
-@TableName("`car_book`")
-public class CarBook {
-
-    @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "涓婚敭", example = "1")
-    @ExcelColumn(name="涓婚敭")
-    private Integer id;
-
-    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�")
-    @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
-    private String creator;
-
-    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-    @ExcelColumn(name="鍒涘缓鏃堕棿")
-    private Date createDate;
-
-    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�")
-    @ExcelColumn(name="鏇存柊浜虹紪鐮�")
-    private String edirot;
-
-    @ApiModelProperty(value = "鏇存柊鏃堕棿")
-    @ExcelColumn(name="鏇存柊鏃堕棿")
-      private Date editDate;
-
-    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
-    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
-    private Integer isdeleted;
-
-    @ApiModelProperty(value = "澶囨敞")
-    @ExcelColumn(name="澶囨敞")
-    private String remark;
-
-    @ApiModelProperty(value = "棰勭害鏍囪瘑", example = "1")
-    @ExcelColumn(name="棰勭害鏍囪瘑")
-    private Integer hkId;
-
-    @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
-    @ExcelColumn(name="鎺掑簭鐮�")
-    private Integer sortnum;
-
-    @ApiModelProperty(value = "璁垮鐢宠璁板綍", example = "1")
-    @ExcelColumn(name="璁垮鐢宠璁板綍")
-    private Integer visitId;
-
-    @ApiModelProperty(value = "杞︾墝鍙�")
-    @ExcelColumn(name="杞︾墝鍙�")
-    private String carCode;
-
-    @ApiModelProperty(value = "杞﹀簱缂栫爜锛堝叧鑱攑arks)", example = "1")
-    @ExcelColumn(name="杞﹀簱缂栫爜锛堝叧鑱攑arks)")
-    private Integer parkId;
-
-    @ApiModelProperty(value = "绫诲瀷 0鍐呴儴浜哄憳鍥哄畾杞﹁締 1鍔冲姟璁垮鐢宠闅忕▼杞﹁締 2璁垮鐢宠闅忕▼杞﹁締", example = "1")
-    @ExcelColumn(name="绫诲瀷 0鍐呴儴浜哄憳鍥哄畾杞﹁締 1鍔冲姟璁垮鐢宠闅忕▼杞﹁締 2璁垮鐢宠闅忕▼杞﹁締")
-    private Integer origin;
-
-    @ApiModelProperty(value = "寮�濮嬫椂闂�")
-    @ExcelColumn(name="寮�濮嬫椂闂�")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date startTime;
-
-    @ApiModelProperty(value = "缁撴潫鏃堕棿")
-    @ExcelColumn(name="缁撴潫鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date endTime;
-
-    @ApiModelProperty(value = "浜哄憳缂栫爜", example = "1")
-    @ExcelColumn(name="浜哄憳缂栫爜")
-    private Integer memberId;
-
-    @ApiModelProperty(value = "鏃堕棿绫诲瀷 0闀挎湡鏈夋晥 1鏃堕棿娈�", example = "1")
-    @ExcelColumn(name="鏃堕棿绫诲瀷 0闀挎湡鏈夋晥 1鏃堕棿娈�")
-    private Integer timeType;
-
-    @ApiModelProperty(value = "娴峰悍鏍囪瘑", example = "1")
-    @ExcelColumn(name="娴峰悍鏍囪瘑")
-    private Integer hkId2;
-
-    @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0寰呬笅鍙� 1涓嬪彂鎴愬姛 2涓嬪彂澶辫触 3鍙栨秷涓嬪彂", example = "1")
-    @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0寰呬笅鍙� 1涓嬪彂鎴愬姛 2涓嬪彂澶辫触 3鍙栨秷涓嬪彂")
-    private Integer hkStatus;
-
-    @ApiModelProperty(value = "娴峰悍鏈�杩戝悓姝ユ椂闂�")
-    @ExcelColumn(name="娴峰悍鏈�杩戝悓姝ユ椂闂�")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date hkDate;
-
-    @ApiModelProperty(value = "灏濊瘯涓嬪彂娆℃暟", example = "1")
-    @ExcelColumn(name="灏濊瘯涓嬪彂娆℃暟")
-    private Integer tryNum;
-
-}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarDriver.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarDriver.java
index 31a6630..697a993 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarDriver.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarDriver.java
@@ -1,6 +1,8 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +20,7 @@
 @Data
 @ApiModel("鍙告満淇℃伅琛�")
 @TableName("`car_driver`")
-public class CarDriver {
+public class CarDriver extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
@@ -27,7 +29,7 @@
 
     @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�")
     @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
-    private String creator;
+    private Integer creator;
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
@@ -36,7 +38,7 @@
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�")
     @ExcelColumn(name="鏇存柊浜虹紪鐮�")
-    private String edirot;
+    private Integer edirot;
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
@@ -67,4 +69,15 @@
     @ExcelColumn(name="浜哄憳缂栫爜锛堝叧鑱攎ember琛�)")
     private Integer memberId;
 
+    @ApiModelProperty(value = "鍙告満濮撳悕", example = "1")
+    @TableField(exist = false)
+    private String memberName;
+    @ApiModelProperty(value = "鍙告満缁勭粐鍚嶇О", example = "1")
+    @TableField(exist = false)
+    private String companyName;
+    @ApiModelProperty(value = "鍙告満鎵嬫満鍙�", example = "1")
+    @TableField(exist = false)
+    private String memberPhone;
+
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java
index 439f378..4a32b5d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -20,7 +21,7 @@
 @Data
 @ApiModel("鍋滆溅鍦轰簨浠舵帹閫佽褰曡〃")
 @TableName("`car_event`")
-public class CarEvent {
+public class CarEvent  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarParks.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarParks.java
index 6072d09..1747d16 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarParks.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarParks.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("鍋滆溅搴撲俊鎭〃")
 @TableName("`car_parks`")
-public class CarParks {
+public class CarParks  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
index e8bc62b..36e6a6f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
@@ -1,6 +1,8 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -9,6 +11,7 @@
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 杞﹁締_鐢ㄨ溅鐢宠淇℃伅琛�
@@ -18,7 +21,7 @@
 @Data
 @ApiModel("杞﹁締_鐢ㄨ溅鐢宠淇℃伅琛�")
 @TableName("`car_use_book`")
-public class CarUseBook {
+public class CarUseBook extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
@@ -59,12 +62,10 @@
 
     @ApiModelProperty(value = "寮�濮嬫椂闂�")
     @ExcelColumn(name="寮�濮嬫椂闂�")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date startTime;
 
     @ApiModelProperty(value = "缁撴潫鏃堕棿")
     @ExcelColumn(name="缁撴潫鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date endTime;
 
     @ApiModelProperty(value = "棰勮鍑哄彂鏃堕棿")
@@ -117,7 +118,7 @@
 
     @ApiModelProperty(value = "涔樿溅浜虹紪鐮侀泦鍚堬紝澶氫釜鑻辨枃閫楀彿闅斿紑", example = "1")
     @ExcelColumn(name="涔樿溅浜虹紪鐮侀泦鍚堬紝澶氫釜鑻辨枃閫楀彿闅斿紑")
-    private Integer memberIds;
+    private String memberIds;
 
     @ApiModelProperty(value = "涔樿溅浜哄鍚嶉泦鍚堬紝澶氫釜鑻辨枃閫楀彿闅斿紑")
     @ExcelColumn(name="涔樿溅浜哄鍚嶉泦鍚堬紝澶氫釜鑻辨枃閫楀彿闅斿紑")
@@ -139,8 +140,28 @@
     @ExcelColumn(name="鍙告満缂栫爜锛堝叧鑱攃ar_driver锛�")
     private Integer driverId;
 
-    @ApiModelProperty(value = "鐢ㄨ溅浜哄憳", example = "1")
-    @ExcelColumn(name="鐢ㄨ溅浜哄憳")
-    private Integer memberNum;
-
+    @ApiModelProperty(value = "鍙告満濮撳悕", example = "1")
+    @TableField(exist = false)
+    private String driverName;
+    @ApiModelProperty(value = "鍙告満鎵嬫満鍙�", example = "1")
+    @TableField(exist = false)
+    private String driverPhone;
+    @ApiModelProperty(value = "鐢宠浜哄鍚�", example = "1")
+    @TableField(exist = false)
+    private String memberName;
+    @ApiModelProperty(value = "鐢宠浜烘墍灞炵粍缁囧悕绉�", example = "1")
+    @TableField(exist = false)
+    private String companyName;
+    @ApiModelProperty(value = "鐢宠浜烘墜鏈哄彿", example = "1")
+    @TableField(exist = false)
+    private String memberPhone;
+    @ApiModelProperty(value = "涔樿溅浜洪泦鍚�", example = "1")
+    @TableField(exist = false)
+    private List<Member> memberList;
+    @ApiModelProperty(value = "鏌ヨ寮�濮嬫椂闂达紙鍩轰簬鍒涘缓鏃堕棿锛�", example = "2024-05-20 11:48:50")
+    @TableField(exist = false)
+    private Date queryStartTime;
+    @ApiModelProperty(value = "鏌ヨ鎴濮嬫椂闂达紙鍩轰簬鍒涘缓鏃堕棿锛�", example = "2024-05-20 11:48:46")
+    @TableField(exist = false)
+    private Date queryEndTime;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
index cbc9720..64e0ec4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("杞﹁締淇℃伅琛�")
 @TableName("`cars`")
-public class Cars {
+public class Cars  extends LoginUserModel {
 
     @TableId(value = "id",type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
index 93fd1bf..8b3eb02 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("璁惧淇℃伅琛�")
 @TableName("`device`")
-public class Device {
+public class Device  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceEvent.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceEvent.java
index 39632b7..3342563 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceEvent.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceEvent.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("闂ㄧ浜嬩欢鎺ㄩ�佽褰曡〃")
 @TableName("`device_event`")
-public class DeviceEvent {
+public class DeviceEvent  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
index 476a335..4e03612 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("浜哄憳鎺堟潈瀵煎叆璁板綍")
 @TableName("`empower`")
-public class Empower {
+public class Empower  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/FormParam.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/FormParam.java
index 16bd393..3075eb7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/FormParam.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/FormParam.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("琛ㄥ崟閰嶇疆淇℃伅琛�")
 @TableName("`form_param`")
-public class FormParam {
+public class FormParam  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java
index 2ab44d4..71f37dc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("闅愭偅淇℃伅琛�")
 @TableName("`hidden_danger`")
-public class HiddenDanger {
+public class HiddenDanger  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java
index 4b3230a..abc5612 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("鐞嗚碃鎿嶄綔鍘嗗彶琛�")
 @TableName("`hidden_danger_log`")
-public class HiddenDangerLog {
+public class HiddenDangerLog  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerParam.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerParam.java
index 0ef1e7f..3836f49 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerParam.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerParam.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("闅愭偅鍖哄煙閰嶇疆绫诲瀷淇℃伅琛�")
 @TableName("`hidden_danger_param`")
-public class HiddenDangerParam {
+public class HiddenDangerParam  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InterfaceLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InterfaceLog.java
index e6ef8f7..a955ab7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InterfaceLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InterfaceLog.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("涓夋柟骞冲彴鎺ュ彛浜や簰璁板綍")
 @TableName("`interface_log`")
-public class InterfaceLog {
+public class InterfaceLog  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
index 708a41a..417ca14 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("杞﹁締棰勭害璁板綍淇℃伅琛�")
 @TableName("`park_book`")
-public class ParkBook {
+public class ParkBook  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java
index bcab11a..0bd1c1a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("鍋滆溅搴撲俊鎭〃")
 @TableName("`parks`")
-public class Parks {
+public class Parks  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
index 64b8655..6790608 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("鏈堝彴淇℃伅琛�")
 @TableName("`platform`")
-public class Platform {
+public class Platform  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
index 519ccee..bf2d6ac 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("鏈堝彴_鍒嗙粍淇℃伅琛�")
 @TableName("`platform_group`")
-public class PlatformGroup {
+public class PlatformGroup  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java
index 5fe4a7a..116f9b0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍")
 @TableName("`platform_interface_log`")
-public class PlatformInterfaceLog {
+public class PlatformInterfaceLog  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
index 087be1d..6038402 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("鏈堝彴璋冨害浣滀笟淇℃伅琛�")
 @TableName("`platform_job`")
-public class PlatformJob {
+public class PlatformJob  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
index 1ae3037..cb741cd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�")
 @TableName("`platform_log`")
-public class PlatformLog {
+public class PlatformLog  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java
index 85e93fe..daf98c0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("鏈堝彴_鍙彿鎺掗槦淇℃伅琛�")
 @TableName("`platform_queue`")
-public class PlatformQueue {
+public class PlatformQueue  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java
index e1129fd..f6bbf54 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�")
 @TableName("`platform_show_param`")
-public class PlatformShowParam {
+public class PlatformShowParam  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ProblemLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ProblemLog.java
index d8b3069..980c631 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ProblemLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ProblemLog.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.config.mybatis.JSONObjectHandler;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -22,7 +23,7 @@
 @Data
 @ApiModel("璁垮绛旈璁板綍琛�")
 @TableName(value = "`problem_log`",autoResultMap = true)
-public class ProblemLog {
+public class ProblemLog  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Problems.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Problems.java
index 79d0248..0a8a532 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Problems.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Problems.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import com.doumee.dao.admin.request.OptionsObject;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -22,7 +23,7 @@
 @Data
 @ApiModel("璇曢淇℃伅琛�")
 @TableName("`problems`")
-public class Problems {
+public class Problems  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java
index 8a10521..8004aed 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("鍦ㄥ巶浜哄憳淇℃伅 琛紙婊炵暀锛�")
 @TableName("`retention`")
-public class Retention {
+public class Retention  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Tasks.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Tasks.java
index 3d12b4e..49cd331 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Tasks.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Tasks.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("瀹夐槻涓嬪彂骞冲彴浠诲姟淇℃伅琛�")
 @TableName("`tasks`")
-public class Tasks {
+public class Tasks  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java
index 748f04f..323741e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("浜哄憳鍩硅鏈夋晥鏈熻褰�")
 @TableName("`train_time`")
-public class TrainTime {
+public class TrainTime  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java
index 404f684..a18a979 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("浜哄憳鎿嶄綔璁板綍鏃ュ織")
 @TableName("`user_action`")
-public class UserAction {
+public class UserAction  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
index cae7ab9..caa2824 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("璁垮浜嬩欢鎺ㄩ�佽褰曡〃")
 @TableName("`visit_event`")
-public class VisitEvent {
+public class VisitEvent  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java
index 3923e9a..62bdfb4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
 @Data
 @ApiModel("璁垮鎶ュ鍋滆溅搴撳叧鑱旇〃")
 @TableName("`visit_park`")
-public class VisitPark {
+public class VisitPark  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblemLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblemLog.java
index 64e2db7..df9ee7e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblemLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblemLog.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("璁垮绛旈璁板綍琛�")
 @TableName("`visit_problem_log`")
-public class VisitProblemLog {
+public class VisitProblemLog  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblems.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblems.java
index fb8ddd3..6b1d2d3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblems.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblems.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("璇曢淇℃伅琛�")
 @TableName("`visit_problems`")
-public class VisitProblems {
+public class VisitProblems  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visitor.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visitor.java
index 18e9a2f..9365943 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visitor.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visitor.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
 @Data
 @ApiModel("璁垮淇℃伅琛�")
 @TableName("`visitor`")
-public class Visitor {
+public class Visitor  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
index 15fb5e9..077a8ad 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -22,7 +23,7 @@
 @Data
 @ApiModel("璁垮鐢宠淇℃伅琛�")
 @TableName("`visits`")
-public class Visits {
+public class Visits  extends LoginUserModel {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarBookService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarBookService.java
deleted file mode 100644
index 9733270..0000000
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarBookService.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.doumee.service.business;
-
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.dao.business.model.CarBook;
-import java.util.List;
-
-/**
- * 杞﹁締棰勭害璁板綍淇℃伅琛⊿ervice瀹氫箟
- * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
- */
-public interface CarBookService {
-
-    /**
-     * 鍒涘缓
-     * 
-     * @param carBook 瀹炰綋瀵硅薄
-     * @return Integer
-     */
-    Integer create(CarBook carBook);
-
-    /**
-     * 涓婚敭鍒犻櫎
-     *
-     * @param id 涓婚敭
-     */
-    void deleteById(Integer id);
-
-    /**
-     * 鍒犻櫎
-     *
-     * @param carBook 瀹炰綋瀵硅薄
-     */
-    void delete(CarBook carBook);
-
-    /**
-     * 鎵归噺涓婚敭鍒犻櫎
-     *
-     * @param ids 涓婚敭闆�
-     */
-    void deleteByIdInBatch(List<Integer> ids);
-
-    /**
-     * 涓婚敭鏇存柊
-     *
-     * @param carBook 瀹炰綋瀵硅薄
-     */
-    void updateById(CarBook carBook);
-
-    /**
-     * 鎵归噺涓婚敭鏇存柊
-     *
-     * @param carBooks 瀹炰綋闆�
-     */
-    void updateByIdInBatch(List<CarBook> carBooks);
-
-    /**
-     * 涓婚敭鏌ヨ
-     *
-     * @param id 涓婚敭
-     * @return CarBook
-     */
-    CarBook findById(Integer id);
-
-    /**
-     * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     *
-     * @param carBook 瀹炰綋瀵硅薄
-     * @return CarBook
-     */
-    CarBook findOne(CarBook carBook);
-
-    /**
-     * 鏉′欢鏌ヨ
-     *
-     * @param carBook 瀹炰綋瀵硅薄
-     * @return List<CarBook>
-     */
-    List<CarBook> findList(CarBook carBook);
-  
-    /**
-     * 鍒嗛〉鏌ヨ
-     *
-     * @param pageWrap 鍒嗛〉瀵硅薄
-     * @return PageData<CarBook>
-     */
-    PageData<CarBook> findPage(PageWrap<CarBook> pageWrap);
-
-    /**
-     * 鏉′欢缁熻
-     *
-     * @param carBook 瀹炰綋瀵硅薄
-     * @return long
-     */
-    long count(CarBook carBook);
-}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarDriverService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarDriverService.java
index 3d15f0d..c9a8a88 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarDriverService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarDriverService.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business;
 
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.CarDriver;
@@ -25,7 +26,7 @@
      *
      * @param id 涓婚敭
      */
-    void deleteById(Integer id);
+    void deleteById(Integer id, LoginUserInfo user);
 
     /**
      * 鍒犻櫎
@@ -39,7 +40,7 @@
      *
      * @param ids 涓婚敭闆�
      */
-    void deleteByIdInBatch(List<Integer> ids);
+    void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user);
 
     /**
      * 涓婚敭鏇存柊
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarBookServiceImpl.java
deleted file mode 100644
index 75bd3a5..0000000
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarBookServiceImpl.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package com.doumee.service.business.impl;
-
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.CarBookMapper;
-import com.doumee.dao.business.model.CarBook;
-import com.doumee.service.business.CarBookService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import java.util.List;
-
-/**
- * 杞﹁締棰勭害璁板綍淇℃伅琛⊿ervice瀹炵幇
- * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
- */
-@Service
-public class CarBookServiceImpl implements CarBookService {
-
-    @Autowired
-    private CarBookMapper carBookMapper;
-
-    @Override
-    public Integer create(CarBook carBook) {
-        carBookMapper.insert(carBook);
-        return carBook.getId();
-    }
-
-    @Override
-    public void deleteById(Integer id) {
-        carBookMapper.deleteById(id);
-    }
-
-    @Override
-    public void delete(CarBook carBook) {
-        UpdateWrapper<CarBook> deleteWrapper = new UpdateWrapper<>(carBook);
-        carBookMapper.delete(deleteWrapper);
-    }
-
-    @Override
-    public void deleteByIdInBatch(List<Integer> ids) {
-        if (CollectionUtils.isEmpty(ids)) {
-            return;
-        }
-        carBookMapper.deleteBatchIds(ids);
-    }
-
-    @Override
-    public void updateById(CarBook carBook) {
-        carBookMapper.updateById(carBook);
-    }
-
-    @Override
-    public void updateByIdInBatch(List<CarBook> carBooks) {
-        if (CollectionUtils.isEmpty(carBooks)) {
-            return;
-        }
-        for (CarBook carBook: carBooks) {
-            this.updateById(carBook);
-        }
-    }
-
-    @Override
-    public CarBook findById(Integer id) {
-        return carBookMapper.selectById(id);
-    }
-
-    @Override
-    public CarBook findOne(CarBook carBook) {
-        QueryWrapper<CarBook> wrapper = new QueryWrapper<>(carBook);
-        return carBookMapper.selectOne(wrapper);
-    }
-
-    @Override
-    public List<CarBook> findList(CarBook carBook) {
-        QueryWrapper<CarBook> wrapper = new QueryWrapper<>(carBook);
-        return carBookMapper.selectList(wrapper);
-    }
-  
-    @Override
-    public PageData<CarBook> findPage(PageWrap<CarBook> pageWrap) {
-        IPage<CarBook> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<CarBook> queryWrapper = new QueryWrapper<>();
-        Utils.MP.blankToNull(pageWrap.getModel());
-        queryWrapper.lambda()
-                .eq(pageWrap.getModel().getId() != null, CarBook::getId, pageWrap.getModel().getId())
-                .eq(pageWrap.getModel().getCreator() != null, CarBook::getCreator, pageWrap.getModel().getCreator())
-                .ge(pageWrap.getModel().getCreateDate() != null, CarBook::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
-                .le(pageWrap.getModel().getCreateDate() != null, CarBook::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()))
-                .eq(pageWrap.getModel().getEdirot() != null, CarBook::getEdirot, pageWrap.getModel().getEdirot())
-                .ge(pageWrap.getModel().getEditDate() != null, CarBook::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()))
-                .le(pageWrap.getModel().getEditDate() != null, CarBook::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
-                .eq(pageWrap.getModel().getIsdeleted() != null, CarBook::getIsdeleted, pageWrap.getModel().getIsdeleted())
-                .eq(pageWrap.getModel().getRemark() != null, CarBook::getRemark, pageWrap.getModel().getRemark())
-                .eq(pageWrap.getModel().getHkId() != null, CarBook::getHkId, pageWrap.getModel().getHkId())
-                .eq(pageWrap.getModel().getSortnum() != null, CarBook::getSortnum, pageWrap.getModel().getSortnum())
-                .eq(pageWrap.getModel().getVisitId() != null, CarBook::getVisitId, pageWrap.getModel().getVisitId())
-                .eq(pageWrap.getModel().getCarCode() != null, CarBook::getCarCode, pageWrap.getModel().getCarCode())
-                .eq(pageWrap.getModel().getParkId() != null, CarBook::getParkId, pageWrap.getModel().getParkId())
-                .eq(pageWrap.getModel().getOrigin() != null, CarBook::getOrigin, pageWrap.getModel().getOrigin())
-                .ge(pageWrap.getModel().getStartTime() != null, CarBook::getStartTime, Utils.Date.getStart(pageWrap.getModel().getStartTime()))
-                .le(pageWrap.getModel().getStartTime() != null, CarBook::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTime()))
-                .ge(pageWrap.getModel().getEndTime() != null, CarBook::getEndTime, Utils.Date.getStart(pageWrap.getModel().getEndTime()))
-                .le(pageWrap.getModel().getEndTime() != null, CarBook::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTime()))
-                .eq(pageWrap.getModel().getMemberId() != null, CarBook::getMemberId, pageWrap.getModel().getMemberId())
-                .eq(pageWrap.getModel().getTimeType() != null, CarBook::getTimeType, pageWrap.getModel().getTimeType())
-                .eq(pageWrap.getModel().getHkId2() != null, CarBook::getHkId2, pageWrap.getModel().getHkId2())
-                .eq(pageWrap.getModel().getHkStatus() != null, CarBook::getHkStatus, pageWrap.getModel().getHkStatus())
-                .ge(pageWrap.getModel().getHkDate() != null, CarBook::getHkDate, Utils.Date.getStart(pageWrap.getModel().getHkDate()))
-                .le(pageWrap.getModel().getHkDate() != null, CarBook::getHkDate, Utils.Date.getEnd(pageWrap.getModel().getHkDate()))
-                .eq(pageWrap.getModel().getTryNum() != null, CarBook::getTryNum, pageWrap.getModel().getTryNum())
-        ;
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
-        return PageData.from(carBookMapper.selectPage(page, queryWrapper));
-    }
-
-    @Override
-    public long count(CarBook carBook) {
-        QueryWrapper<CarBook> wrapper = new QueryWrapper<>(carBook);
-        return carBookMapper.selectCount(wrapper);
-    }
-}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarDriverServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarDriverServiceImpl.java
index 662a111..b8558f1 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarDriverServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarDriverServiceImpl.java
@@ -1,19 +1,32 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.CarDriverMapper;
+import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.model.CarDriver;
+import com.doumee.dao.business.model.CarUseBook;
+import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.Member;
 import com.doumee.service.business.CarDriverService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.extern.java.Log;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import javax.smartcardio.Card;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -26,15 +39,38 @@
 
     @Autowired
     private CarDriverMapper carDriverMapper;
+    @Autowired
+    private MemberMapper memberMapper;
 
     @Override
     public Integer create(CarDriver carDriver) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(loginUserInfo == null){
+            loginUserInfo = carDriver.getLoginUserInfo();
+        }
+        Member member = memberMapper.selectById(carDriver.getMemberId());
+        if(member == null
+                ||Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)
+                ||!Constants.equalsInteger(member.getType(),Constants.TWO)){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇ュ徃鏈轰俊鎭笉瀛樺湪锛岃杩斿洖鍒锋柊椤甸潰閲嶈瘯锛�");
+        }
+        if(carDriverMapper.selectCount(new QueryWrapper<CarDriver>().lambda()
+                .eq(CarDriver::getMemberId,carDriver.getMemberId())
+                .eq(CarDriver::getIsdeleted, Constants.ZERO))>0){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇ュ徃鏈哄凡缁忛厤缃紝鏃犻渶閲嶆柊閰嶇疆锛�");
+        }
+        carDriver.setCreateDate(new Date());
+        carDriver.setCreator(loginUserInfo.getId());
+        carDriver.setEditDate(new Date());
+        carDriver.setEdirot(loginUserInfo.getId());
+        carDriver.setCompanyId(member.getCompanyId());
+        carDriver.setStatus(Constants.ZERO);
         carDriverMapper.insert(carDriver);
         return carDriver.getId();
     }
 
     @Override
-    public void deleteById(Integer id) {
+    public void deleteById(Integer id, LoginUserInfo user) {
         carDriverMapper.deleteById(id);
     }
 
@@ -45,7 +81,7 @@
     }
 
     @Override
-    public void deleteByIdInBatch(List<Integer> ids) {
+    public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
         if (CollectionUtils.isEmpty(ids)) {
             return;
         }
@@ -54,6 +90,12 @@
 
     @Override
     public void updateById(CarDriver carDriver) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(loginUserInfo == null){
+              loginUserInfo = carDriver.getLoginUserInfo();
+        }
+        carDriver.setEditDate(new Date());
+        carDriver.setEdirot(loginUserInfo.getId());
         carDriverMapper.updateById(carDriver);
     }
 
@@ -69,7 +111,16 @@
 
     @Override
     public CarDriver findById(Integer id) {
-        return carDriverMapper.selectById(id);
+        MPJLambdaWrapper<CarDriver> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(CarDriver.class);
+        queryWrapper.selectAs(Member::getName,CarDriver::getMemberName);
+        queryWrapper.selectAs(Member::getPhone,CarDriver::getMemberPhone);
+        queryWrapper.selectAs(Company::getCompanyNamePath,CarDriver::getCompanyName);
+        queryWrapper.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
+                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
+                .eq(CarDriver::getId,id)
+                .last("limit 1");
+        return carDriverMapper.selectJoinOne(CarDriver.class,queryWrapper);
     }
 
     @Override
@@ -87,9 +138,15 @@
     @Override
     public PageData<CarDriver> findPage(PageWrap<CarDriver> pageWrap) {
         IPage<CarDriver> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<CarDriver> queryWrapper = new QueryWrapper<>();
+        MPJLambdaWrapper<CarDriver> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        queryWrapper.lambda()
+        queryWrapper.selectAll(CarDriver.class);
+        queryWrapper.selectAs(Member::getName,CarDriver::getMemberName);
+        queryWrapper.selectAs(Member::getPhone,CarDriver::getMemberPhone);
+        queryWrapper.selectAs(Company::getCompanyNamePath,CarDriver::getCompanyName);
+        queryWrapper.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
+                .leftJoin(Company.class,Company::getId,Member::getCompanyId);
+        queryWrapper
                 .eq(pageWrap.getModel().getId() != null, CarDriver::getId, pageWrap.getModel().getId())
                 .eq(pageWrap.getModel().getCreator() != null, CarDriver::getCreator, pageWrap.getModel().getCreator())
                 .ge(pageWrap.getModel().getCreateDate() != null, CarDriver::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -103,6 +160,7 @@
                 .eq(pageWrap.getModel().getCompanyId() != null, CarDriver::getCompanyId, pageWrap.getModel().getCompanyId())
                 .eq(pageWrap.getModel().getStatus() != null, CarDriver::getStatus, pageWrap.getModel().getStatus())
                 .eq(pageWrap.getModel().getMemberId() != null, CarDriver::getMemberId, pageWrap.getModel().getMemberId())
+                .orderByDesc(CarDriver::getCreateDate );
         ;
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -111,7 +169,7 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-        return PageData.from(carDriverMapper.selectPage(page, queryWrapper));
+        return PageData.from(carDriverMapper.selectJoinPage(page,CarDriver.class, queryWrapper));
     }
 
     @Override
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
index 8e5d6f7..52ee70b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -2,19 +2,25 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DESUtil;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.CarUseBookMapper;
-import com.doumee.dao.business.model.CarUseBook;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.CarUseBookService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 杞﹁締_鐢ㄨ溅鐢宠淇℃伅琛⊿ervice瀹炵幇
@@ -69,7 +75,20 @@
 
     @Override
     public CarUseBook findById(Integer id) {
-        return carUseBookMapper.selectById(id);
+        MPJLambdaWrapper<CarUseBook>  queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(CarUseBook.class);
+        queryWrapper.select("t1.name",CarUseBook::getMemberName);
+        queryWrapper.select("t1.phone",CarUseBook::getMemberPhone);
+        queryWrapper.select("t2.name",CarUseBook::getDriverName);
+        queryWrapper.select("t3.phone",CarUseBook::getDriverPhone);
+        queryWrapper.select("t4.company_name_path",CarUseBook::getCompanyName);
+        queryWrapper.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
+                .leftJoin("company t4 on t1.company_id=t4.id")
+                .leftJoin(Member.class,Member::getId,CarUseBook::getDriverId)
+                .eq(CarUseBook::getId,id)
+                .last("limit 1"  );
+        CarUseBook model = carUseBookMapper.selectJoinOne(CarUseBook.class,queryWrapper);
+        return  model;
     }
 
     @Override
@@ -87,9 +106,19 @@
     @Override
     public PageData<CarUseBook> findPage(PageWrap<CarUseBook> pageWrap) {
         IPage<CarUseBook> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<CarUseBook> queryWrapper = new QueryWrapper<>();
+        MPJLambdaWrapper<CarUseBook>  queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        queryWrapper.lambda()
+        pageWrap.getModel().setIsdeleted(Constants.ZERO);
+        queryWrapper.selectAll(CarUseBook.class);
+        queryWrapper.select("t1.name",CarUseBook::getMemberName);
+        queryWrapper.select("t1.phone",CarUseBook::getMemberPhone);
+        queryWrapper.select("t2.name",CarUseBook::getDriverName);
+        queryWrapper.select("t3.phone",CarUseBook::getDriverPhone);
+        queryWrapper.select("t4.company_name_path",CarUseBook::getCompanyName);
+        queryWrapper.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
+                    .leftJoin("company t4 on t1.company_id=t4.id")
+                    .leftJoin(Member.class,Member::getId,CarUseBook::getDriverId);
+        queryWrapper
                 .eq(pageWrap.getModel().getId() != null, CarUseBook::getId, pageWrap.getModel().getId())
                 .eq(pageWrap.getModel().getCreator() != null, CarUseBook::getCreator, pageWrap.getModel().getCreator())
                 .ge(pageWrap.getModel().getCreateDate() != null, CarUseBook::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -99,7 +128,7 @@
                 .le(pageWrap.getModel().getEditDate() != null, CarUseBook::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
                 .eq(pageWrap.getModel().getIsdeleted() != null, CarUseBook::getIsdeleted, pageWrap.getModel().getIsdeleted())
                 .eq(pageWrap.getModel().getRemark() != null, CarUseBook::getRemark, pageWrap.getModel().getRemark())
-                .eq(pageWrap.getModel().getCarCode() != null, CarUseBook::getCarCode, pageWrap.getModel().getCarCode())
+                .like(pageWrap.getModel().getCarCode() != null, CarUseBook::getCarCode, pageWrap.getModel().getCarCode())
                 .eq(pageWrap.getModel().getCarId() != null, CarUseBook::getCarId, pageWrap.getModel().getCarId())
                 .ge(pageWrap.getModel().getStartTime() != null, CarUseBook::getStartTime, Utils.Date.getStart(pageWrap.getModel().getStartTime()))
                 .le(pageWrap.getModel().getStartTime() != null, CarUseBook::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTime()))
@@ -126,7 +155,11 @@
                 .eq(pageWrap.getModel().getAddr() != null, CarUseBook::getAddr, pageWrap.getModel().getAddr())
                 .eq(pageWrap.getModel().getMemberId() != null, CarUseBook::getMemberId, pageWrap.getModel().getMemberId())
                 .eq(pageWrap.getModel().getDriverId() != null, CarUseBook::getDriverId, pageWrap.getModel().getDriverId())
-                .eq(pageWrap.getModel().getMemberNum() != null, CarUseBook::getMemberNum, pageWrap.getModel().getMemberNum())
+                .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName())
+                        .or().like(Member::getPhone,pageWrap.getModel().getMemberName()))
+                .ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), Empower::getCreateDate,pageWrap.getModel().getQueryStartTime())
+                .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()),Empower::getCreateDate,pageWrap.getModel().getQueryEndTime())
+                .orderByDesc(Visits::getCreateDate)
         ;
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -135,7 +168,7 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-        return PageData.from(carUseBookMapper.selectPage(page, queryWrapper));
+        return PageData.from(carUseBookMapper.selectJoinPage(page, CarUseBook.class, queryWrapper));
     }
 
     @Override

--
Gitblit v1.9.3