From 996154fb8fab5468cdfc99efbab606605fb762e1 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 14 七月 2025 17:40:34 +0800
Subject: [PATCH] 前端

---
 admin/.env                                                                                   |    2 
 server/services/src/main/java/com/doumee/service/business/impl/MemberRevenueServiceImpl.java |   17 
 .idea/libraries/Maven__org_bouncycastle_bcpkix_jdk18on_1_78_1.xml                            |   13 
 .idea/libraries/Maven__com_github_binarywang_weixin_java_common_4_7_0.xml                    |   13 
 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_2_5_RELEASE.xml    |   13 
 .idea/libraries/Maven__com_github_wechatpay_apiv3_wechatpay_java_0_2_12.xml                  |   13 
 .idea/encodings.xml                                                                          |    3 
 .idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml                                   |   13 
 admin/package-lock.json                                                                      |  162 ++--
 .idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_18_0.xml              |   13 
 admin/src/components/business/OperaMemberDetailWindow.vue                                    |  503 +++++++++++++
 server/services/src/main/java/com/doumee/core/constants/Constants.java                       |   55 +
 .idea/libraries/Maven__com_huaweicloud_esdk_obs_java_bundle_3_23_9.xml                       |   13 
 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_cache_2_2_5_RELEASE.xml  |   13 
 admin/src/views/business/memberRevenue.vue                                                   |    1 
 .idea/libraries/Maven__com_google_j2objc_j2objc_annotations_2_8.xml                          |   13 
 admin/.env.development                                                                       |    2 
 server/admin/src/main/resources/application.yml                                              |    1 
 admin/src/api/business/member.js                                                             |    6 
 .idea/libraries/Maven__io_github_x_stream_mxparser_1_2_2.xml                                 |   13 
 .idea/libraries/Maven__commons_logging_commons_logging_1_2.xml                               |   13 
 .idea/libraries/Maven__com_google_zxing_core_3_2_1.xml                                       |   13 
 .idea/libraries/Maven__org_jodd_jodd_core_5_2_0.xml                                          |   13 
 server/services/src/main/java/com/doumee/api/common/PublicCloudController.java               |   73 ++
 .idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml                                           |   13 
 admin/package.json                                                                           |    2 
 .idea/libraries/Maven__com_github_ben_manes_caffeine_caffeine_2_8_1.xml                      |   13 
 .idea/libraries/Maven__org_bouncycastle_bcutil_jdk18on_1_78_1.xml                            |   13 
 .idea/libraries/Maven__com_github_wechatpay_apiv3_wechatpay_java_core_0_2_12.xml             |   13 
 admin/src/views/business/category.vue                                                        |   41 -
 admin/src/views/business/member.vue                                                          |  231 ++----
 admin/src/views/index.vue                                                                    |    2 
 .idea/libraries/Maven__com_jamesmurty_utils_java_xmlbuilder_1_1.xml                          |   13 
 .idea/libraries/Maven__org_dom4j_dom4j_2_1_3.xml                                             |   13 
 server/services/src/main/java/com/doumee/core/utils/huaweiOBS/ObsUtil.java                   |  162 ++++
 .idea/libraries/Maven__com_huaweicloud_esdk_obs_java_3_19_7.xml                              |   13 
 .idea/compiler.xml                                                                           |   10 
 admin/public/index.html                                                                      |    2 
 admin/src/router/index.js                                                                    |   14 
 .idea/libraries/Maven__com_squareup_okio_okio_1_14_0.xml                                     |   13 
 admin/src/components/common/Menu.vue                                                         |    2 
 .idea/libraries/Maven__com_github_binarywang_weixin_java_miniapp_4_7_0.xml                   |   13 
 .idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_5.xml                                   |   13 
 admin/src/views/business/withdrawalOrders.vue                                                |   34 
 .idea/libraries/Maven__com_github_binarywang_qrcode_utils_1_1.xml                            |   13 
 .idea/modules.xml                                                                            |    3 
 admin/src/views/business/orders.vue                                                          |  148 ----
 .idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_13.xml                         |   13 
 admin/src/views/business/orderLog.vue                                                        |    1 
 .idea/libraries/Maven__org_apache_httpcomponents_httpmime_4_5_11.xml                         |   13 
 .idea/libraries/Maven__org_checkerframework_checker_qual_3_1_0.xml                           |   13 
 .idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_12_1.xml                        |   13 
 .idea/libraries/Maven__org_bouncycastle_bcprov_jdk18on_1_78_1.xml                            |   13 
 .idea/libraries/Maven__com_squareup_okhttp3_okhttp_3_14_7.xml                                |   13 
 .idea/libraries/Maven__com_google_guava_guava_32_1_2_jre.xml                                 |   13 
 admin/src/views/login.vue                                                                    |    2 
 admin/src/views/business/identityInfo.vue                                                    |   61 -
 .idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_11.xml                       |   13 
 admin/src/views/business/receiveWeight.vue                                                   |   47 -
 /dev/null                                                                                    |   13 
 .idea/libraries/Maven__org_checkerframework_checker_qual_3_33_0.xml                          |   13 
 .idea/libraries/Maven__com_github_binarywang_weixin_java_pay_4_1_0.xml                       |   13 
 server/pom.xml                                                                               |   17 
 .idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_3_4.xml               |   13 
 .idea/libraries/Maven__org_jodd_jodd_util_6_0_0.xml                                          |   13 
 server/services/src/main/java/com/doumee/dao/business/model/MemberRevenue.java               |   18 
 server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java        |   13 
 .idea/libraries/Maven__org_jodd_jodd_http_5_2_0.xml                                          |   13 
 .idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_21.xml                           |   13 
 admin/src/components/base/BaseTable.vue                                                      |    2 
 server/services/src/main/java/com/doumee/dao/business/model/Member.java                      |    8 
 71 files changed, 1,551 insertions(+), 601 deletions(-)

diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 836d2d2..0561265 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -7,22 +7,30 @@
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
         <outputRelativeToContentRoot value="true" />
-        <module name="jinkuai" />
+        <module name="admin" />
+        <module name="services" />
         <module name="lianghelihua" />
         <module name="dmttwebsite" />
+        <module name="web" />
       </profile>
     </annotationProcessing>
     <bytecodeTargetLevel>
+      <module name="admin" target="1.8" />
       <module name="dmttwebsite" target="1.8" />
       <module name="jinkuai" target="1.8" />
       <module name="lianghelihua" target="1.8" />
+      <module name="services" target="1.8" />
+      <module name="web" target="1.8" />
     </bytecodeTargetLevel>
   </component>
   <component name="JavacSettings">
     <option name="ADDITIONAL_OPTIONS_OVERRIDE">
+      <module name="admin" options="-parameters" />
       <module name="dmttwebsite" options="-parameters" />
       <module name="jinkuai" options="-parameters" />
       <module name="lianghelihua" options="-parameters" />
+      <module name="services" options="-parameters" />
+      <module name="web" options="-parameters" />
     </option>
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index 2c23a59..2f914bc 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -1,7 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="Encoding">
+    <file url="file://$PROJECT_DIR$/server/admin/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/server/services/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/server/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/server/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/server/web/src/main/java" charset="UTF-8" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_ben_manes_caffeine_caffeine_2_8_1.xml b/.idea/libraries/Maven__com_github_ben_manes_caffeine_caffeine_2_8_1.xml
new file mode 100644
index 0000000..e93c8c7
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_ben_manes_caffeine_caffeine_2_8_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/ben-manes/caffeine/caffeine/2.8.1/caffeine-2.8.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/ben-manes/caffeine/caffeine/2.8.1/caffeine-2.8.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/ben-manes/caffeine/caffeine/2.8.1/caffeine-2.8.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_binarywang_qrcode_utils_1_1.xml b/.idea/libraries/Maven__com_github_binarywang_qrcode_utils_1_1.xml
new file mode 100644
index 0000000..2866046
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_binarywang_qrcode_utils_1_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.github.binarywang:qrcode-utils:1.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/qrcode-utils/1.1/qrcode-utils-1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/qrcode-utils/1.1/qrcode-utils-1.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/qrcode-utils/1.1/qrcode-utils-1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_binarywang_weixin_java_common_4_7_0.xml b/.idea/libraries/Maven__com_github_binarywang_weixin_java_common_4_7_0.xml
new file mode 100644
index 0000000..2a82df6
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_binarywang_weixin_java_common_4_7_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.github.binarywang:weixin-java-common:4.7.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/weixin-java-common/4.7.0/weixin-java-common-4.7.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/weixin-java-common/4.7.0/weixin-java-common-4.7.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/weixin-java-common/4.7.0/weixin-java-common-4.7.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_binarywang_weixin_java_miniapp_4_7_0.xml b/.idea/libraries/Maven__com_github_binarywang_weixin_java_miniapp_4_7_0.xml
new file mode 100644
index 0000000..7e40be3
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_binarywang_weixin_java_miniapp_4_7_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.github.binarywang:weixin-java-miniapp:4.7.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/weixin-java-miniapp/4.7.0/weixin-java-miniapp-4.7.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/weixin-java-miniapp/4.7.0/weixin-java-miniapp-4.7.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/weixin-java-miniapp/4.7.0/weixin-java-miniapp-4.7.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_binarywang_weixin_java_pay_4_1_0.xml b/.idea/libraries/Maven__com_github_binarywang_weixin_java_pay_4_1_0.xml
new file mode 100644
index 0000000..99cfb9d
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_binarywang_weixin_java_pay_4_1_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.github.binarywang:weixin-java-pay:4.1.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/weixin-java-pay/4.1.0/weixin-java-pay-4.1.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/weixin-java-pay/4.1.0/weixin-java-pay-4.1.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/binarywang/weixin-java-pay/4.1.0/weixin-java-pay-4.1.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_wechatpay_apiv3_wechatpay_java_0_2_12.xml b/.idea/libraries/Maven__com_github_wechatpay_apiv3_wechatpay_java_0_2_12.xml
new file mode 100644
index 0000000..5ee20a5
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_wechatpay_apiv3_wechatpay_java_0_2_12.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.github.wechatpay-apiv3:wechatpay-java:0.2.12">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/wechatpay-apiv3/wechatpay-java/0.2.12/wechatpay-java-0.2.12.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/wechatpay-apiv3/wechatpay-java/0.2.12/wechatpay-java-0.2.12-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/wechatpay-apiv3/wechatpay-java/0.2.12/wechatpay-java-0.2.12-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_wechatpay_apiv3_wechatpay_java_core_0_2_12.xml b/.idea/libraries/Maven__com_github_wechatpay_apiv3_wechatpay_java_core_0_2_12.xml
new file mode 100644
index 0000000..5236f43
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_wechatpay_apiv3_wechatpay_java_core_0_2_12.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.github.wechatpay-apiv3:wechatpay-java-core:0.2.12">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/wechatpay-apiv3/wechatpay-java-core/0.2.12/wechatpay-java-core-0.2.12.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/wechatpay-apiv3/wechatpay-java-core/0.2.12/wechatpay-java-core-0.2.12-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/wechatpay-apiv3/wechatpay-java-core/0.2.12/wechatpay-java-core-0.2.12-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml b/.idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml
new file mode 100644
index 0000000..e119d20
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.google.code.gson:gson:2.8.6">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/code/gson/gson/2.8.6/gson-2.8.6-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/code/gson/gson/2.8.6/gson-2.8.6-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_18_0.xml b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_18_0.xml
new file mode 100644
index 0000000..c2be960
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_18_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.google.errorprone:error_prone_annotations:2.18.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/errorprone/error_prone_annotations/2.18.0/error_prone_annotations-2.18.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/errorprone/error_prone_annotations/2.18.0/error_prone_annotations-2.18.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/errorprone/error_prone_annotations/2.18.0/error_prone_annotations-2.18.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_2_0.xml b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_2_0.xml
deleted file mode 100644
index a57a93c..0000000
--- a/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_2_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: com.google.errorprone:error_prone_annotations:2.2.0">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/errorprone/error_prone_annotations/2.2.0/error_prone_annotations-2.2.0.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/errorprone/error_prone_annotations/2.2.0/error_prone_annotations-2.2.0-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/errorprone/error_prone_annotations/2.2.0/error_prone_annotations-2.2.0-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_3_4.xml b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_3_4.xml
new file mode 100644
index 0000000..0144bac
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_3_4.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.google.errorprone:error_prone_annotations:2.3.4">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_guava_guava_27_0_1_android.xml b/.idea/libraries/Maven__com_google_guava_guava_27_0_1_android.xml
deleted file mode 100644
index 2450bf3..0000000
--- a/.idea/libraries/Maven__com_google_guava_guava_27_0_1_android.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: com.google.guava:guava:27.0.1-android">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/guava/guava/27.0.1-android/guava-27.0.1-android.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/guava/guava/27.0.1-android/guava-27.0.1-android-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/guava/guava/27.0.1-android/guava-27.0.1-android-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_guava_guava_32_1_2_jre.xml b/.idea/libraries/Maven__com_google_guava_guava_32_1_2_jre.xml
new file mode 100644
index 0000000..2987e72
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_guava_guava_32_1_2_jre.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.google.guava:guava:32.1.2-jre">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/guava/guava/32.1.2-jre/guava-32.1.2-jre.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/guava/guava/32.1.2-jre/guava-32.1.2-jre-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/guava/guava/32.1.2-jre/guava-32.1.2-jre-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_1.xml b/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_1.xml
deleted file mode 100644
index 1bbfe98..0000000
--- a/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: com.google.j2objc:j2objc-annotations:1.1">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_2_8.xml b/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_2_8.xml
new file mode 100644
index 0000000..e329926
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_2_8.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.google.j2objc:j2objc-annotations:2.8">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/j2objc/j2objc-annotations/2.8/j2objc-annotations-2.8.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/j2objc/j2objc-annotations/2.8/j2objc-annotations-2.8-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/j2objc/j2objc-annotations/2.8/j2objc-annotations-2.8-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_zxing_core_3_2_1.xml b/.idea/libraries/Maven__com_google_zxing_core_3_2_1.xml
new file mode 100644
index 0000000..e37e666
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_zxing_core_3_2_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.google.zxing:core:3.2.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/zxing/core/3.2.1/core-3.2.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/zxing/core/3.2.1/core-3.2.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/google/zxing/core/3.2.1/core-3.2.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_huaweicloud_esdk_obs_java_3_19_7.xml b/.idea/libraries/Maven__com_huaweicloud_esdk_obs_java_3_19_7.xml
new file mode 100644
index 0000000..cb65cf5
--- /dev/null
+++ b/.idea/libraries/Maven__com_huaweicloud_esdk_obs_java_3_19_7.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.huaweicloud:esdk-obs-java:3.19.7">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/huaweicloud/esdk-obs-java/3.19.7/esdk-obs-java-3.19.7.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/huaweicloud/esdk-obs-java/3.19.7/esdk-obs-java-3.19.7-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/huaweicloud/esdk-obs-java/3.19.7/esdk-obs-java-3.19.7-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_huaweicloud_esdk_obs_java_bundle_3_23_9.xml b/.idea/libraries/Maven__com_huaweicloud_esdk_obs_java_bundle_3_23_9.xml
new file mode 100644
index 0000000..0c402d4
--- /dev/null
+++ b/.idea/libraries/Maven__com_huaweicloud_esdk_obs_java_bundle_3_23_9.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.9">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/huaweicloud/esdk-obs-java-bundle/3.23.9/esdk-obs-java-bundle-3.23.9.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/huaweicloud/esdk-obs-java-bundle/3.23.9/esdk-obs-java-bundle-3.23.9-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/huaweicloud/esdk-obs-java-bundle/3.23.9/esdk-obs-java-bundle-3.23.9-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_jamesmurty_utils_java_xmlbuilder_1_1.xml b/.idea/libraries/Maven__com_jamesmurty_utils_java_xmlbuilder_1_1.xml
new file mode 100644
index 0000000..e90c0c8
--- /dev/null
+++ b/.idea/libraries/Maven__com_jamesmurty_utils_java_xmlbuilder_1_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.jamesmurty.utils:java-xmlbuilder:1.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/jamesmurty/utils/java-xmlbuilder/1.1/java-xmlbuilder-1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/jamesmurty/utils/java-xmlbuilder/1.1/java-xmlbuilder-1.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/jamesmurty/utils/java-xmlbuilder/1.1/java-xmlbuilder-1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_3_14_7.xml b/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_3_14_7.xml
new file mode 100644
index 0000000..3e5b4b4
--- /dev/null
+++ b/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_3_14_7.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.squareup.okhttp3:okhttp:3.14.7">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/squareup/okhttp3/okhttp/3.14.7/okhttp-3.14.7.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/squareup/okhttp3/okhttp/3.14.7/okhttp-3.14.7-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/squareup/okhttp3/okhttp/3.14.7/okhttp-3.14.7-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_squareup_okio_okio_1_14_0.xml b/.idea/libraries/Maven__com_squareup_okio_okio_1_14_0.xml
new file mode 100644
index 0000000..1316be8
--- /dev/null
+++ b/.idea/libraries/Maven__com_squareup_okio_okio_1_14_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.squareup.okio:okio:1.14.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/squareup/okio/okio/1.14.0/okio-1.14.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/squareup/okio/okio/1.14.0/okio-1.14.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/squareup/okio/okio/1.14.0/okio-1.14.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_21.xml b/.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_21.xml
new file mode 100644
index 0000000..195c6d9
--- /dev/null
+++ b/.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_21.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.thoughtworks.xstream:xstream:1.4.21">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/thoughtworks/xstream/xstream/1.4.21/xstream-1.4.21.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/thoughtworks/xstream/xstream/1.4.21/xstream-1.4.21-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/thoughtworks/xstream/xstream/1.4.21/xstream-1.4.21-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml b/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml
new file mode 100644
index 0000000..6fa70d8
--- /dev/null
+++ b/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: commons-logging:commons-logging:1.2">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/commons-logging/commons-logging/1.2/commons-logging-1.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_github_x_stream_mxparser_1_2_2.xml b/.idea/libraries/Maven__io_github_x_stream_mxparser_1_2_2.xml
new file mode 100644
index 0000000..091c57a
--- /dev/null
+++ b/.idea/libraries/Maven__io_github_x_stream_mxparser_1_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.github.x-stream:mxparser:1.2.2">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/github/x-stream/mxparser/1.2.2/mxparser-1.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/github/x-stream/mxparser/1.2.2/mxparser-1.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/github/x-stream/mxparser/1.2.2/mxparser-1.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_11.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_11.xml
new file mode 100644
index 0000000..36a7882
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_11.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.apache.httpcomponents:httpclient:4.5.11">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/httpcomponents/httpclient/4.5.11/httpclient-4.5.11.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/httpcomponents/httpclient/4.5.11/httpclient-4.5.11-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/httpcomponents/httpclient/4.5.11/httpclient-4.5.11-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_13.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_13.xml
new file mode 100644
index 0000000..684e2c1
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_13.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.apache.httpcomponents:httpcore:4.4.13">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpmime_4_5_11.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpmime_4_5_11.xml
new file mode 100644
index 0000000..4d629e5
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpmime_4_5_11.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.apache.httpcomponents:httpmime:4.5.11">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/httpcomponents/httpmime/4.5.11/httpmime-4.5.11.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/httpcomponents/httpmime/4.5.11/httpmime-4.5.11-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/httpcomponents/httpmime/4.5.11/httpmime-4.5.11-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_12_1.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_12_1.xml
new file mode 100644
index 0000000..67c912b
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_12_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.apache.logging.log4j:log4j-core:2.12.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/logging/log4j/log4j-core/2.12.1/log4j-core-2.12.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/logging/log4j/log4j-core/2.12.1/log4j-core-2.12.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/apache/logging/log4j/log4j-core/2.12.1/log4j-core-2.12.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_5.xml b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_5.xml
new file mode 100644
index 0000000..3003b93
--- /dev/null
+++ b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_5.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.aspectj:aspectjweaver:1.9.5">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/aspectj/aspectjweaver/1.9.5/aspectjweaver-1.9.5.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/aspectj/aspectjweaver/1.9.5/aspectjweaver-1.9.5-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/aspectj/aspectjweaver/1.9.5/aspectjweaver-1.9.5-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk18on_1_78_1.xml b/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk18on_1_78_1.xml
new file mode 100644
index 0000000..c5a20b4
--- /dev/null
+++ b/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk18on_1_78_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.bouncycastle:bcpkix-jdk18on:1.78.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/bouncycastle/bcpkix-jdk18on/1.78.1/bcpkix-jdk18on-1.78.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/bouncycastle/bcpkix-jdk18on/1.78.1/bcpkix-jdk18on-1.78.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/bouncycastle/bcpkix-jdk18on/1.78.1/bcpkix-jdk18on-1.78.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk18on_1_78_1.xml b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk18on_1_78_1.xml
new file mode 100644
index 0000000..993108b
--- /dev/null
+++ b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk18on_1_78_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.bouncycastle:bcprov-jdk18on:1.78.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/bouncycastle/bcprov-jdk18on/1.78.1/bcprov-jdk18on-1.78.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/bouncycastle/bcprov-jdk18on/1.78.1/bcprov-jdk18on-1.78.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/bouncycastle/bcprov-jdk18on/1.78.1/bcprov-jdk18on-1.78.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_bouncycastle_bcutil_jdk18on_1_78_1.xml b/.idea/libraries/Maven__org_bouncycastle_bcutil_jdk18on_1_78_1.xml
new file mode 100644
index 0000000..245f8d8
--- /dev/null
+++ b/.idea/libraries/Maven__org_bouncycastle_bcutil_jdk18on_1_78_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.bouncycastle:bcutil-jdk18on:1.78.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/bouncycastle/bcutil-jdk18on/1.78.1/bcutil-jdk18on-1.78.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/bouncycastle/bcutil-jdk18on/1.78.1/bcutil-jdk18on-1.78.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/bouncycastle/bcutil-jdk18on/1.78.1/bcutil-jdk18on-1.78.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_checkerframework_checker_compat_qual_2_5_2.xml b/.idea/libraries/Maven__org_checkerframework_checker_compat_qual_2_5_2.xml
deleted file mode 100644
index 2b77c80..0000000
--- a/.idea/libraries/Maven__org_checkerframework_checker_compat_qual_2_5_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: org.checkerframework:checker-compat-qual:2.5.2">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/checkerframework/checker-compat-qual/2.5.2/checker-compat-qual-2.5.2.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/checkerframework/checker-compat-qual/2.5.2/checker-compat-qual-2.5.2-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/checkerframework/checker-compat-qual/2.5.2/checker-compat-qual-2.5.2-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_checkerframework_checker_qual_3_1_0.xml b/.idea/libraries/Maven__org_checkerframework_checker_qual_3_1_0.xml
new file mode 100644
index 0000000..1d7d6dd
--- /dev/null
+++ b/.idea/libraries/Maven__org_checkerframework_checker_qual_3_1_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.checkerframework:checker-qual:3.1.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/checkerframework/checker-qual/3.1.0/checker-qual-3.1.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/checkerframework/checker-qual/3.1.0/checker-qual-3.1.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/checkerframework/checker-qual/3.1.0/checker-qual-3.1.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_checkerframework_checker_qual_3_33_0.xml b/.idea/libraries/Maven__org_checkerframework_checker_qual_3_33_0.xml
new file mode 100644
index 0000000..2ed333e
--- /dev/null
+++ b/.idea/libraries/Maven__org_checkerframework_checker_qual_3_33_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.checkerframework:checker-qual:3.33.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/checkerframework/checker-qual/3.33.0/checker-qual-3.33.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/checkerframework/checker-qual/3.33.0/checker-qual-3.33.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/checkerframework/checker-qual/3.33.0/checker-qual-3.33.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_codehaus_mojo_animal_sniffer_annotations_1_17.xml b/.idea/libraries/Maven__org_codehaus_mojo_animal_sniffer_annotations_1_17.xml
deleted file mode 100644
index 5d53b68..0000000
--- a/.idea/libraries/Maven__org_codehaus_mojo_animal_sniffer_annotations_1_17.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_dom4j_dom4j_2_1_3.xml b/.idea/libraries/Maven__org_dom4j_dom4j_2_1_3.xml
new file mode 100644
index 0000000..a489b8c
--- /dev/null
+++ b/.idea/libraries/Maven__org_dom4j_dom4j_2_1_3.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.dom4j:dom4j:2.1.3">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/dom4j/dom4j/2.1.3/dom4j-2.1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/dom4j/dom4j/2.1.3/dom4j-2.1.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/dom4j/dom4j/2.1.3/dom4j-2.1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jodd_jodd_core_5_2_0.xml b/.idea/libraries/Maven__org_jodd_jodd_core_5_2_0.xml
new file mode 100644
index 0000000..e31300f
--- /dev/null
+++ b/.idea/libraries/Maven__org_jodd_jodd_core_5_2_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.jodd:jodd-core:5.2.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/jodd/jodd-core/5.2.0/jodd-core-5.2.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/jodd/jodd-core/5.2.0/jodd-core-5.2.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/jodd/jodd-core/5.2.0/jodd-core-5.2.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jodd_jodd_http_5_2_0.xml b/.idea/libraries/Maven__org_jodd_jodd_http_5_2_0.xml
new file mode 100644
index 0000000..96171a9
--- /dev/null
+++ b/.idea/libraries/Maven__org_jodd_jodd_http_5_2_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.jodd:jodd-http:5.2.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/jodd/jodd-http/5.2.0/jodd-http-5.2.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/jodd/jodd-http/5.2.0/jodd-http-5.2.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/jodd/jodd-http/5.2.0/jodd-http-5.2.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jodd_jodd_util_6_0_0.xml b/.idea/libraries/Maven__org_jodd_jodd_util_6_0_0.xml
new file mode 100644
index 0000000..5fbd38c
--- /dev/null
+++ b/.idea/libraries/Maven__org_jodd_jodd_util_6_0_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.jodd:jodd-util:6.0.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/jodd/jodd-util/6.0.0/jodd-util-6.0.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/jodd/jodd-util/6.0.0/jodd-util-6.0.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/jodd/jodd-util/6.0.0/jodd-util-6.0.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_2_5_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_2_5_RELEASE.xml
new file mode 100644
index 0000000..3a8524a
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework.boot:spring-boot-starter-aop:2.2.5.RELEASE">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/springframework/boot/spring-boot-starter-aop/2.2.5.RELEASE/spring-boot-starter-aop-2.2.5.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/springframework/boot/spring-boot-starter-aop/2.2.5.RELEASE/spring-boot-starter-aop-2.2.5.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/springframework/boot/spring-boot-starter-aop/2.2.5.RELEASE/spring-boot-starter-aop-2.2.5.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_cache_2_2_5_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_cache_2_2_5_RELEASE.xml
new file mode 100644
index 0000000..769a6b5
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_cache_2_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework.boot:spring-boot-starter-cache:2.2.5.RELEASE">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/springframework/boot/spring-boot-starter-cache/2.2.5.RELEASE/spring-boot-starter-cache-2.2.5.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/springframework/boot/spring-boot-starter-cache/2.2.5.RELEASE/spring-boot-starter-cache-2.2.5.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/springframework/boot/spring-boot-starter-cache/2.2.5.RELEASE/spring-boot-starter-cache-2.2.5.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml b/.idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml
new file mode 100644
index 0000000..9002c33
--- /dev/null
+++ b/.idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: xmlpull:xmlpull:1.1.3.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index c1f36af..1184857 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,9 +2,12 @@
 <project version="4">
   <component name="ProjectModuleManager">
     <modules>
+      <module fileurl="file://$PROJECT_DIR$/server/admin/admin.iml" filepath="$PROJECT_DIR$/server/admin/admin.iml" />
       <module fileurl="file://$PROJECT_DIR$/server/dmttwebsite.iml" filepath="$PROJECT_DIR$/server/dmttwebsite.iml" />
       <module fileurl="file://$PROJECT_DIR$/server/jinkuai.iml" filepath="$PROJECT_DIR$/server/jinkuai.iml" />
       <module fileurl="file://$PROJECT_DIR$/server/lianghelihua.iml" filepath="$PROJECT_DIR$/server/lianghelihua.iml" />
+      <module fileurl="file://$PROJECT_DIR$/server/services/services.iml" filepath="$PROJECT_DIR$/server/services/services.iml" />
+      <module fileurl="file://$PROJECT_DIR$/server/web/web.iml" filepath="$PROJECT_DIR$/server/web/web.iml" />
     </modules>
   </component>
 </project>
\ No newline at end of file
diff --git a/admin/.env b/admin/.env
index 109d1b1..82257a1 100644
--- a/admin/.env
+++ b/admin/.env
@@ -7,7 +7,7 @@
 VUE_APP_ROUTER_MODE = 'hash'
 
 # 椤圭洰涓婁笅鏂囪矾寰�
-VUE_APP_CONTEXT_PATH = '/lianhelihua_admin'
+VUE_APP_CONTEXT_PATH = '/'
 
 # 鎺ュ彛鍓嶇紑
 VUE_APP_API_PREFIX = ''
diff --git a/admin/.env.development b/admin/.env.development
index 315734b..0d5ccaa 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -1,3 +1,3 @@
 # 寮�鍙戠幆澧冮厤缃�
 NODE_ENV = 'development'
-VUE_APP_API_URL  = 'http://192.168.0.129:10040'
+VUE_APP_API_URL  = 'http://localhost:10010'
diff --git a/admin/package-lock.json b/admin/package-lock.json
index bf071db..58e4f64 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -1,5 +1,5 @@
 {
-  "name": "lianhelihua",
+  "name": "jinkuai",
   "version": "1.0.0",
   "lockfileVersion": 1,
   "requires": true,
@@ -1871,63 +1871,6 @@
           "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",
@@ -1935,28 +1878,6 @@
           "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"
           }
         }
       }
@@ -13696,6 +13617,87 @@
         }
       }
     },
+    "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"
+      },
+      "dependencies": {
+        "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"
+          }
+        },
+        "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-router": {
       "version": "3.5.1",
       "resolved": "https://registry.nlark.com/vue-router/download/vue-router-3.5.1.tgz?cache=0&sync_timestamp=1620899536020&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-3.5.1.tgz",
diff --git a/admin/package.json b/admin/package.json
index 92b3c5a..81a4b79 100644
--- a/admin/package.json
+++ b/admin/package.json
@@ -1,5 +1,5 @@
 {
-  "name": "lianhelihua",
+  "name": "jinkuai",
   "version": "1.0.0",
   "private": true,
   "scripts": {
diff --git a/admin/public/index.html b/admin/public/index.html
index 72f6767..339846b 100644
--- a/admin/public/index.html
+++ b/admin/public/index.html
@@ -5,7 +5,7 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-    <title>璞嗙背璺宠烦瀹樼綉鍚庡彴绠$悊</title>
+    <title>杩戝揩鍚庡彴绠$悊绯荤粺</title>
   </head>
   <body>
     <div id="app"></div>
diff --git a/admin/src/api/business/member.js b/admin/src/api/business/member.js
index a78e2c2..84bef63 100644
--- a/admin/src/api/business/member.js
+++ b/admin/src/api/business/member.js
@@ -11,6 +11,9 @@
 export function create (data) {
   return request.post('/business/member/create', data)
 }
+export function updateStatus (data) {
+  return request.post('/business/member/updateStatus', data)
+}
 
 // 淇敼
 export function updateById (data) {
@@ -21,6 +24,9 @@
 export function deleteById (id) {
   return request.get(`/business/member/delete/${id}`)
 }
+export function getById (id) {
+  return request.get(`/business/member/${id}`)
+}
 
 // 鎵归噺鍒犻櫎
 export function deleteByIdInBatch (ids) {
diff --git a/admin/src/components/base/BaseTable.vue b/admin/src/components/base/BaseTable.vue
index 515df9e..aa7a44d 100644
--- a/admin/src/components/base/BaseTable.vue
+++ b/admin/src/components/base/BaseTable.vue
@@ -103,7 +103,7 @@
       this.search()
     },
     refresh () {
-     window.location.reload()
+      window.location.reload()
     },
     /**
      * 椤靛閲忓彉鏇村鐞嗭紙鍒囨崲椤靛閲忔椂瑙﹀彂锛�
diff --git a/admin/src/components/business/OperaMemberDetailWindow.vue b/admin/src/components/business/OperaMemberDetailWindow.vue
new file mode 100644
index 0000000..09b4047
--- /dev/null
+++ b/admin/src/components/business/OperaMemberDetailWindow.vue
@@ -0,0 +1,503 @@
+<template>
+  <GlobalWindow
+    :title="title"
+    :visible.sync="visible"
+    :withFooter="false"
+    width="calc(100% - 250px)"
+    :confirm-working="isWorking"
+    @close="close"
+    @confirm="confirm">
+    <div style="width: 100%; position: sticky;padding: 12px 16px; top: 0px; left: 0; z-index: 999; background-color: white">
+      <div style="display: flex;background: #e4ecfe;padding: 20px">
+        <div style="width: 60px;">
+          <div class="home_title" v-if="info">
+            <el-image v-if="info.imgurlFull" style="width: 50px; height: 50px;border-radius: 50%;margin-right: 10px" :src="info.imgurlFull"
+                      :preview-src-list="[info.imgurlFull]">
+            </el-image>
+            <el-image v-else style="width: 50px; height: 50px;border-radius: 50%;margin-right: 10px" src="avatar/man.png" >
+            </el-image>
+          </div>
+        </div>
+        <div style="width: calc(100% - 60px);">
+          <div class="home_title" v-if="info">
+            <div class="left">
+              <span class="m10">鏄电О锛歿{info.nickName }}</span>
+              <span class="mr10 bluebtn" :title="'濮撳悕锛�'+(info.name||'鏈缃鍚�')"  >({{(info.name||'鏈缃鍚�') }})</span>
+              <el-tag type="primary" class="mr10 tag1">鍙戝崟鏂�</el-tag>
+              <el-tag type="success" class="mr10 tag1" v-if="info.workerIdentity == 2 || info.driverIdentity == 2 || info.chefIdentity == 2">鎺ュ崟鏂�</el-tag>
+            </div>
+          </div>
+          <div class="remark" v-if="info">
+            <el-button  class="bluebtn" icon="el-icon-phone" title="鎵嬫満鍙�"> {{info.telephone||'鏈缃�' }}</el-button>
+            <el-button  class="yellowbtn" icon="el-icon-star-on"  title="骞冲潎璇勫垎"> {{info.score||'0' }}鍒�</el-button>
+            <el-button  class="redbtn" icon="el-icon-coin"  title="璐﹀彿浣欓(鍏冿級"> {{(info.amount||0).toFixed(2)}}鍏�</el-button>
+          </div>
+        </div>
+      </div>
+      <div class="tabs">
+        <div class="tab" :class="{ active: activeTabs === 0 }" @click="tabsClick(0)">浣欓鏄庣粏</div>
+        <div class="tab" :class="{ active: activeTabs === 1 }" @click="tabsClick(1)">璇勪环璁板綍</div>
+        <div class="tab" :class="{ active: activeTabs === 2 }" @click="tabsClick(2)">璁よ瘉淇℃伅</div>
+      </div>
+    </div>
+    <div class="main" v-if="activeTabs === 0 && info">
+      <div class="title" >
+        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+          <el-form-item label="浜ゆ槗娴佹按鍙�"  style="width: 200px;" label-width="100px" prop="telephone">
+            <el-input v-model="searchForm.telephone" style="width: 100px"  clearable placeholder="璇疯緭鍏�" ></el-input>
+          </el-form-item>
+          <el-form-item label="鏀舵敮绫诲瀷" prop="type"  style="width: 200px;" label-width="100px" >
+            <el-select v-model="searchForm.optType"  style="width: 100px"  clearable placeholder="璇烽�夋嫨绫诲瀷"  >
+              <el-option :value="1" label="鏀跺叆"></el-option>
+              <el-option :value="-1" label="鏀嚭"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="鏀舵敮鏃堕棿" prop="eventType"  style="width: 330px;" label-width="100px" >
+            <el-date-picker type="datetime"  style="width: 100px"  v-model="searchForm.startTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
+                            placeholder="寮�濮嬫椂闂�" />-
+            <el-date-picker type="datetime"  style="width: 100px"  v-model="searchForm.endTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
+                            placeholder="缁撴潫鏃堕棿" />
+          </el-form-item>
+          <section  style="width: 200px;display: inline-block" >
+            <el-button type="primary" @click="handleCurrentChange0(0)">鎼滅储</el-button>
+            <el-button @click="reset0">閲嶇疆</el-button>
+            <el-button @click="exportExcel0">閲嶇疆</el-button>
+          </section>
+        </el-form>
+      </div>
+      <el-table
+          v-loading="isWorking.search"
+          :data="tableData.records"
+          stripe
+      >
+        <el-table-column prop="type" label="鏀跺叆/鏀嚭"  width="80px" align="center" >
+          <template slot-scope="{row}">
+            <span style="cursor: pointer;color: #3acf18" v-if="row.optType ==1">鏀跺叆</span>
+            <span style="cursor: pointer;color: #a10e0e" v-else>鏀嚭</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="telephone" label="閲戦锛堝厓锛�" width="120px"  align="center">
+          <template slot-scope="{row}">
+            <span class="yellowbtn">{{ ((row.amount || 0)/100).toFixed(2) }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="createTime" label="鏀舵敮鏃堕棿" min-width="150px"  align="center"></el-table-column>
+        <el-table-column prop="typeName" label="涓氬姟绫诲瀷" min-width="100px"  align="center"></el-table-column>
+        <el-table-column prop="transactionNo" label="璁㈠崟/浜ゆ槗鍙�" min-width="100px"  align="center">  </el-table-column>
+      </el-table>
+      <el-pagination
+          @current-change="handleCurrentChange0"
+          :current-page="page0"
+          :page-size="pageSize"
+          layout="total, prev, pager, next, jumper"
+          :total="tableData.total">
+      </el-pagination>
+    </div>
+    <div class="main" v-if="activeTabs === 1 && info">
+      <el-radio-group v-model="type" @change="changeType" style="margin-bottom: 20px;">
+        <el-radio-button :label="0">鏀跺埌鐨勮瘎浠�</el-radio-button>
+        <el-radio-button :label="1">鍙戝竷鐨勮瘎浠�</el-radio-button>
+      </el-radio-group>
+      <el-table
+        :data="tableData"
+        border
+        v-loading="loading"
+        style="width: 100%">
+        <el-table-column
+          width="150"
+          label="璐﹀崟缂栧彿">
+        </el-table-column>
+        <el-table-column
+          label="璐圭敤绫诲瀷">
+        </el-table-column>
+        <el-table-column
+          prop="totleFee"
+          label="璐﹀崟閲戦">
+        </el-table-column>
+        <el-table-column
+          :key="Date.now()"
+          prop="receivableFee"
+          :label="`搴�${type === 0 ? '鏀�' : '浠�'}閲戦`">
+        </el-table-column>
+        <el-table-column
+          prop="actReceivableFee"
+          :label="`瀹�${type === 0 ? '鏀�' : '浠�'}閲戦`">
+        </el-table-column>
+        <el-table-column
+          :label="`闇�${type === 0 ? '鏀�' : '浠�'}閲戦`">
+          <template slot-scope="{row}">
+            <template v-if="type === 0">
+              <el-tag type="success" v-if="row.needReceivableFee > 0">鏀�</el-tag>
+              <el-tag type="warning" v-else-if="row.needReceivableFee < 0">浠�</el-tag>
+            </template>
+            <template v-else>
+              <el-tag type="warning" v-if="row.needReceivableFee !== 0">浠�</el-tag>
+            </template>
+            <span style="margin-left: 10px;">{{Math.abs(row.needReceivableFee)}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="璐﹀崟鏉ユ簮">
+          <template slot-scope="{row}">
+            <span v-if="row.type === 0">鍚堝悓璐﹀崟</span>
+            <span v-else>鑷缓璐﹀崟</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          width="200"
+          label="璁¤垂鍛ㄦ湡">
+          <template slot-scope="{row}">
+            {{ row.startDate }} ~ {{ row.endDate }}
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="planPayDate"
+          label="搴旀敹鏃ユ湡">
+        </el-table-column>
+        <el-table-column
+          label="鏄惁閫炬湡">
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          label="鐘舵��">
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="page"
+        :page-sizes="[10, 15, 20, 25]"
+        :page-size="pageSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+      </el-pagination>
+    </div>
+    <div class="main" v-if="activeTabs === 2 && info">
+      <div class="title">鎿嶄綔璁板綍</div>
+      <el-table
+        :data="info.logList"
+        border
+        style="width: 100%">
+        <el-table-column
+          :key="Date.now()"
+          width="200"
+          prop="param1"
+          label="鎿嶄綔浜�">
+        </el-table-column>
+        <el-table-column
+          :key="Date.now()"
+          width="200"
+          prop="createDate"
+          label="鎿嶄綔鏃堕棿">
+        </el-table-column>
+        <el-table-column
+          :key="Date.now()"
+          width="150"
+          label="鎿嶄綔">
+          <template slot-scope="{row}">
+            <span v-if="row.objType === 0">宸ュ崟鍒涘缓</span>
+            <span v-if="row.objType === 1">鎸囨淳</span>
+            <span v-if="row.objType === 2">澶勭悊</span>
+            <span v-if="row.objType === 3">鍚堝悓鍒涘缓</span>
+            <span v-if="row.objType === 4">鍚堝悓鍙樻洿</span>
+            <span v-if="row.objType === 5">鍚堝悓閫�绉�</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          :key="Date.now()"
+          prop="content"
+          label="鎿嶄綔鍐呭">
+        </el-table-column>
+      </el-table>
+    </div>
+  </GlobalWindow>
+</template>
+
+<script>
+import GlobalWindow from '@/components/common/GlobalWindow'
+import BaseOpera from '@/components/base/BaseOpera'
+import { getById } from '@/api/business/member'
+import { fetchList as yueList } from '@/api/business/memberRevenue'
+import { commentList } from '@/api/business/orders'
+import { fetchList as renzhengList } from '@/api/business/identityInfo'
+export default {
+  components: {
+    GlobalWindow
+  },
+  extends: BaseOpera,
+  data () {
+    return {
+      id: '',
+      visible: false,
+      activeTabs: 0,
+      type: 0,
+      info: {},
+      pageSize: 10,
+      page: 1,
+      total: 0,
+      tableData: {},
+      page0: 1,
+      totalPage0: 0,
+      total0: 0,
+      loading: false,
+      searchForm: {
+        type: 0,
+        startTime: null,
+        endTime: null,
+        optType: null,
+        transactionNo: null
+      }
+    }
+  },
+  methods: {
+    open (title, id) {
+      this.title = title
+      this.visible = true
+      this.activeTabs = 0
+      this.type = 0
+      this.page0 = 1
+      this.totalPage0 = 0
+      this.total0 = 0
+      this.pageSize = 10
+      this.tableData = {}
+      this.id = id
+      this.getData()
+    },
+    getData () {
+      getById(this.id)
+        .then(res => {
+          this.info = res
+          this.visible = true
+          this.handleCurrentChange0(0)
+        })
+    },
+    exportExcel0 (page) {
+      this.page0 = page
+      this.getYueList()
+    },
+    reset0 () {
+      this.searchForm.startTime = null
+      this.searchForm.endTime = null
+      this.searchForm.optType = null
+      this.searchForm.transactionNo = null
+      this.page0 = 0
+      this.getYueList()
+    },
+    handleCurrentChange0 (page) {
+      this.page0 = page
+      this.getYueList()
+    },
+    getYueList () {
+      this.loading = true
+      yueList({
+        capacity: this.pageSize,
+        page: this.page0,
+        model: {
+          memberId: this.info.id || -1,
+          startTime: this.searchForm.startTime,
+          endTime: this.searchForm.endTime,
+          optType: this.searchForm.optType,
+          transactionNo: this.searchForm.transactionNo
+        }
+      }).then(res => {
+        this.loading = false
+        this.tableData = res
+        this.total0 = res.total
+        this.totalPage0 = res.total
+        console.log(this.tableData)
+      }).catch(e => {
+        this.$tip.apiFailed(e)
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+    close () {
+
+    },
+    getRenzhengList () {
+      this.loading = true
+      renzhengList({
+        capacity: this.pageSize,
+        page: this.page,
+        model: {
+          startTime: this.searchForm.startTime,
+          endTime: this.searchForm.endTime,
+          optType: this.searchForm.optType,
+          transactionNo: this.searchForm.transactionNo
+        }
+      }).then(res => {
+        this.loading = false
+        this.tableData = res.records
+        this.total = res.total
+      }).catch(e => {
+        this.$tip.apiFailed(e)
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+    getCommentList () {
+      this.loading = true
+      commentList({
+        capacity: this.pageSize,
+        page: this.page,
+        model: {
+          status: 0,
+          billType: this.type,
+          contractId: this.info.id
+        }
+      }).then(res => {
+        this.loading = false
+        this.tableData = res.records
+        this.total = res.total
+      })
+    },
+    changeType (e) {
+      this.type = e
+      this.page = 1
+      this.pageSize = 10
+      this.tableData = []
+      this.getList()
+    },
+    tabsClick (val) {
+      this.activeTabs = val
+    },
+    getDetail () {
+
+    },
+    handleSizeChange (e) {
+      this.pageSize = e
+      this.getList()
+    },
+    handleCurrentChange (e) {
+      this.page = e
+      this.getList()
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import '@/assets/style/variables.scss';
+.home_title {
+  .mr10{
+    margin-right: 10px;
+  }
+  .m10{
+    margin: 10px;
+  }
+  .bluebtn{
+    color: #2985f7;
+  }
+  .tag1{
+    border-radius: 10px;
+    font-size: 10px;
+    padding: 0px 15px;
+    height: 24px;
+  }
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  .left {
+    font-weight: 500;
+    font-size: 14px;
+    margin-right: 10px;
+    display: flex;
+    align-items: center;
+    .status {
+      padding: 0 6px;
+      height: 22px;
+      line-height: 22px;
+      border-radius: 2px;
+      border: 1px solid #00BA92;
+      color: #00BA92;
+      font-weight: 400;
+      font-size: 12px;
+      color: #00BA92;
+    }
+  }
+}
+.tab{
+  width: 20%;
+}
+.remark {
+  //background: #E8EBF7;
+  border-radius: 2px;
+  font-size: 14px;
+  margin: 10px 10px 0px -10px;
+  button{
+    border: none;
+    cursor: default;
+    margin-right: 20px;
+    background: #e4ecfe;
+  }
+}
+.bluebtn{
+  font-weight: bold;
+  color: #2985f7;
+}
+
+.redbtn{
+  font-weight: bold;
+  color: #ff1b1b;
+}
+.yellowbtn{
+  font-weight: bold;
+  color: #fc9d20;
+}
+
+.tabs {
+  border-bottom: 1px solid #DFE2E8;
+  display: flex;
+  margin-bottom: 20px;
+  .tab {
+    height: 58px;
+    line-height: 58px;
+    font-size: 14px;
+    color: #666666;
+    margin-right: 30px;
+    cursor: pointer;
+  }
+
+  .active {
+    font-weight: 500;
+    color: $primary-color;
+    border-bottom: 2px solid $primary-color;
+  }
+}
+
+.main {
+  padding: 12px 16px;
+  .title {
+    font-weight: 500;
+    font-size: 12px;
+    color: $primary-color;
+    margin-bottom: 15px;
+  }
+  /deep/ .el-form-item__label{
+    font-size: 12px;
+  }
+  .list {
+    display: flex;
+    flex-wrap: wrap;
+    /*background: #F7F7F7;*/
+    border-radius: 2px;
+    /*padding: 15px 20px;*/
+    margin-bottom: 20px;
+
+    .item {
+      font-size: 14px;
+      width: 25%;
+      margin-bottom: 16px;
+
+      .la {
+        color: #7f7f7f;
+        margin-bottom: 10px;
+      }
+    }
+  }
+}
+
+/deep/ .window__body {
+  padding: 0px !important;
+}
+</style>
diff --git a/admin/src/components/common/Menu.vue b/admin/src/components/common/Menu.vue
index ba8acec..44d89d3 100644
--- a/admin/src/components/common/Menu.vue
+++ b/admin/src/components/common/Menu.vue
@@ -2,7 +2,7 @@
   <div class="menu" :class="{collapse: menuData.collapse}">
     <div class="logo">
       <div><img src="@/assets/logo.png"></div>
-      <h1 :class="{hidden: menuData.collapse}">璞嗙背璺宠烦瀹樼綉鍚庡彴绠$悊</h1>
+      <h1 :class="{hidden: menuData.collapse}">杩戝揩鍚庡彴绠$悊绯荤粺</h1>
     </div>
     <scrollbar>
       <el-menu
diff --git a/admin/src/router/index.js b/admin/src/router/index.js
index c8bf2a8..93daf95 100644
--- a/admin/src/router/index.js
+++ b/admin/src/router/index.js
@@ -105,15 +105,11 @@
   // console.log('beforeEach========================锛�' + height)
   const height13 = getEleHeghtByClassName('common-header', 0)
   const height4 = getEleHeghtByClassName('table-pagination', 0,-20)
-  const height5 = document.getElementsByTagName('thead') && document.getElementsByTagName('thead')[0] ? document.getElementsByTagName('thead')[0].clientHeight : 0
-    // console.log('tableLayout========================')
-    const height1 = getEleHeghtByClassName('table-search-form', 40, 16)
-    const height3 = getEleHeghtByClassName('main-header', 0)
-    // const height4 = getEleHeghtByClassName('table-pagination', 0,-20)
-    const height2 = getEleHeghtByClassName('toolbar', 0)
-    // console.log('defualtlength', document.getElementsByClassName('table-search-form').length)
-    router.app.$store.commit('setTableHeightNew', height - height4 - height3 - height2 - height1 - height5 - height13)
-    // console.log('gableHeightNew', router.app.$store.state.tableHeightNew)
+  const height1 = getEleHeghtByClassName('table-search-form', 40, 16)
+  const height3 = getEleHeghtByClassName('main-header', 0)
+  const height2 = getEleHeghtByClassName('toolbar', 0)
+  const height5 = getEleHeghtByClassName('status-bar', 0)
+  router.app.$store.commit('setTableHeightNew', height - height4 - height3 - height2 - height1 -  height13-height5)
 }
 
 function getEleHeghtByClassName (name, dv, margin) {
diff --git a/admin/src/views/business/category.vue b/admin/src/views/business/category.vue
index 3dd7cbc..66c2d14 100644
--- a/admin/src/views/business/category.vue
+++ b/admin/src/views/business/category.vue
@@ -2,44 +2,8 @@
   <TableLayout :permissions="['business:category:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="涓婚敭" prop="id">
-        <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
-        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐘舵��:0=鍚敤锛�1=绂佺敤锛�" prop="status">
-        <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬�:0=鍚敤锛�1=绂佺敤锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
-        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
-        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
-        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
-        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍗曚綅鍚嶇О" prop="name">
-        <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ崟浣嶅悕绉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="绫诲瀷:0=鍝佺閰嶇疆锛�1=杞﹁締绫诲瀷閰嶇疆锛�2=椁愭爣閰嶇疆锛�3=鎵嬬画璐归厤缃紱" prop="type">
-        <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ョ被鍨�:0=鍝佺閰嶇疆锛�1=杞﹁締绫诲瀷閰嶇疆锛�2=椁愭爣閰嶇疆锛�3=鎵嬬画璐归厤缃紱" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍐呭锛堣溅杈嗚鏍笺�侀鏍囥�佹墜缁垂姣斾緥锛�" prop="detail">
-        <el-input v-model="searchForm.detail" placeholder="璇疯緭鍏ュ唴瀹癸紙杞﹁締瑙勬牸銆侀鏍囥�佹墜缁垂姣斾緥锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍥炬爣锛堣溅杈嗙被鍨嬩娇鐢級" prop="icon">
-        <el-input v-model="searchForm.icon" placeholder="璇疯緭鍏ュ浘鏍囷紙杞﹁締绫诲瀷浣跨敤锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁鍥哄畾杞﹁締锛堣溅杈嗙被鍨嬩娇鐢級:0=鍚︼紱1=鏄紱" prop="isFixed">
-        <el-input v-model="searchForm.isFixed" placeholder="璇疯緭鍏ユ槸鍚﹀浐瀹氳溅杈嗭紙杞﹁締绫诲瀷浣跨敤锛�:0=鍚︼紱1=鏄紱" @keypress.enter.native="search"></el-input>
+      <el-form-item label="鍚嶇О" prop="name">
+        <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
       </el-form-item>
       <section>
         <el-button type="primary" @click="search">鎼滅储</el-button>
@@ -53,6 +17,7 @@
         <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">鍒犻櫎</el-button></li>
       </ul>
       <el-table
+          :height="tableHeightNew"
         v-loading="isWorking.search"
         :data="tableData.list"
         stripe
diff --git a/admin/src/views/business/identityInfo.vue b/admin/src/views/business/identityInfo.vue
index a63a6bc..da67bcb 100644
--- a/admin/src/views/business/identityInfo.vue
+++ b/admin/src/views/business/identityInfo.vue
@@ -2,32 +2,8 @@
   <TableLayout :permissions="['business:identityinfo:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="涓婚敭" prop="id">
-        <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
-        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
-        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
-        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
-        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
-        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
       <el-form-item label="绫诲瀷:0=鐢ㄥ伐韬唤锛�1=璐ц繍韬唤锛�2=渚涢韬唤锛�" prop="type">
         <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ョ被鍨�:0=鐢ㄥ伐韬唤锛�1=璐ц繍韬唤锛�2=渚涢韬唤锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="浼氬憳閫愭笎" prop="memberId">
-        <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ヤ細鍛橀�愭笎" @keypress.enter.native="search"></el-input>
       </el-form-item>
       <el-form-item label="璁よ瘉绫诲瀷:0=涓汉锛�1=浼佷笟" prop="authType">
         <el-input v-model="searchForm.authType" placeholder="璇疯緭鍏ヨ璇佺被鍨�:0=涓汉锛�1=浼佷笟" @keypress.enter.native="search"></el-input>
@@ -44,42 +20,6 @@
       <el-form-item label="鍗曚綅鍚嶇О" prop="companyName">
         <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ュ崟浣嶅悕绉�" @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="绾害" prop="lat">
-        <el-input v-model="searchForm.lat" placeholder="璇疯緭鍏ョ含搴�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="缁忓害" prop="lgt">
-        <el-input v-model="searchForm.lgt" placeholder="璇疯緭鍏ョ粡搴�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="韬唤璇佷汉鍍忛潰" prop="identityFront">
-        <el-input v-model="searchForm.identityFront" placeholder="璇疯緭鍏ヨ韩浠借瘉浜哄儚闈�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="韬唤璇佸浗寰介潰" prop="identityBack">
-        <el-input v-model="searchForm.identityBack" placeholder="璇疯緭鍏ヨ韩浠借瘉鍥藉窘闈�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="钀ヤ笟鎵х収锛堜紒涓氱被浣跨敤锛�" prop="businessLicense">
-        <el-input v-model="searchForm.businessLicense" placeholder="璇疯緭鍏ヨ惀涓氭墽鐓э紙浼佷笟绫讳娇鐢級" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍏朵粬璁よ瘉璧勬枡锛堜紒涓氱被浣跨敤锛�" prop="otherFile">
-        <el-input v-model="searchForm.otherFile" placeholder="璇疯緭鍏ュ叾浠栬璇佽祫鏂欙紙浼佷笟绫讳娇鐢級" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="閬撹矾杩愯緭缁忛獙璁稿彲璇侊紙浼佷笟绫昏揣杩愯韩浠戒娇鐢級" prop="transportFile">
-        <el-input v-model="searchForm.transportFile" placeholder="璇疯緭鍏ラ亾璺繍杈撶粡楠岃鍙瘉锛堜紒涓氱被璐ц繍韬唤浣跨敤锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="椋熷搧缁忚惀璁稿彲璇侊紙浼佷笟绫讳緵椁愯韩浠戒娇鐢級" prop="foodBusinessFile">
-        <el-input v-model="searchForm.foodBusinessFile" placeholder="璇疯緭鍏ラ鍝佺粡钀ヨ鍙瘉锛堜紒涓氱被渚涢韬唤浣跨敤锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="浠庝笟浜哄憳鍋ュ悍璇�" prop="healthFile">
-        <el-input v-model="searchForm.healthFile" placeholder="璇疯緭鍏ヤ粠涓氫汉鍛樺仴搴疯瘉" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璁よ瘉瀹℃壒鐘舵��:1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="auditStatus">
-        <el-input v-model="searchForm.auditStatus" placeholder="璇疯緭鍏ヨ璇佸鎵圭姸鎬�:1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璁よ瘉瀹℃壒鏃堕棿" prop="auditTime">
-        <el-date-picker v-model="searchForm.auditTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヨ璇佸鎵规椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="璁よ瘉瀹℃壒澶囨敞" prop="auditRemark">
-        <el-input v-model="searchForm.auditRemark" placeholder="璇疯緭鍏ヨ璇佸鎵瑰娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
       <section>
         <el-button type="primary" @click="search">鎼滅储</el-button>
         <el-button @click="reset">閲嶇疆</el-button>
@@ -92,6 +32,7 @@
         <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:identityinfo:delete']">鍒犻櫎</el-button></li>
       </ul>
       <el-table
+          :height="tableHeightNew"
         v-loading="isWorking.search"
         :data="tableData.list"
         stripe
diff --git a/admin/src/views/business/member.vue b/admin/src/views/business/member.vue
index 1de7a6d..07e943a 100644
--- a/admin/src/views/business/member.vue
+++ b/admin/src/views/business/member.vue
@@ -2,95 +2,30 @@
   <TableLayout :permissions="['business:member:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="涓婚敭" prop="id">
-        <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
+      <el-form-item label="鎵嬫満鍙�" prop="telephone">
+        <el-input v-model="searchForm.telephone" clearable placeholder="璇疯緭鍏ユ墜鏈哄彿" @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
-        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+      <el-form-item label="鐪熷疄濮撳悕" prop="name">
+        <el-input v-model="searchForm.name" clearable placeholder="璇疯緭鍏ョ湡瀹炲鍚�" @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
-        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
-        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
-        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
-        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="澶村儚" prop="coverImage">
-        <el-input v-model="searchForm.coverImage" placeholder="璇疯緭鍏ュご鍍�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="openid" prop="openid">
-        <el-input v-model="searchForm.openid" placeholder="璇疯緭鍏penid" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄电О" prop="nickName">
-        <el-input v-model="searchForm.nickName" placeholder="璇疯緭鍏ユ樀绉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鑱旂郴鐢佃瘽" prop="telephone">
-        <el-input v-model="searchForm.telephone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="濮撳悕" prop="name">
-        <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ鍚�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐢ㄥ伐韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="workerIdentity">
-        <el-input v-model="searchForm.workerIdentity" placeholder="璇疯緭鍏ョ敤宸ヨ韩浠�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璐ц繍韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="driverIdentity">
-        <el-input v-model="searchForm.driverIdentity" placeholder="璇疯緭鍏ヨ揣杩愯韩浠�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="渚涢寰堢矇:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="chefIdentity">
-        <el-input v-model="searchForm.chefIdentity" placeholder="璇疯緭鍏ヤ緵椁愬緢绮�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="褰撳墠浣欓(鍗曚綅:鍒�)" prop="amount">
-        <el-input v-model="searchForm.amount" placeholder="璇疯緭鍏ュ綋鍓嶄綑棰�(鍗曚綅:鍒�)" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍘嗗彶鎬婚噾棰�(鍗曚綅:鍒�)" prop="totalAmount">
-        <el-input v-model="searchForm.totalAmount" placeholder="璇疯緭鍏ュ巻鍙叉�婚噾棰�(鍗曚綅:鍒�)" @keypress.enter.native="search"></el-input>
+      <el-form-item label="绫诲瀷" prop="type">
+        <el-select v-model="searchForm.type" clearable placeholder="璇烽�夋嫨绫诲瀷" @change="search">
+            <el-option :value="0" label="鍙戝崟鏂�"></el-option>
+            <el-option :value="1" label="鎺ュ崟鏂�"></el-option>
+        </el-select>
       </el-form-item>
       <el-form-item label="鐘舵��" prop="status">
-        <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬�" @keypress.enter.native="search"></el-input>
+        <el-select v-model="searchForm.status"  @keypress.enter.native="search" clearable placeholder="鐘舵��">
+          <el-option label="鍚敤" value="0"></el-option>
+          <el-option label="绂佺敤" value="1"></el-option>
+        </el-select>
       </el-form-item>
-      <el-form-item label="鏈�鍚庣櫥褰曟椂闂�" prop="loginTime">
-        <el-date-picker v-model="searchForm.loginTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶鍚庣櫥褰曟椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鎬荤櫥褰曟鏁�" prop="loginTimes">
-        <el-input v-model="searchForm.loginTimes" placeholder="璇疯緭鍏ユ�荤櫥褰曟鏁�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鎬绘帴鍗曢噺" prop="reciveNum">
-        <el-input v-model="searchForm.reciveNum" placeholder="璇疯緭鍏ユ�绘帴鍗曢噺" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鎬诲彂鍗曢噺" prop="publishNum">
-        <el-input v-model="searchForm.publishNum" placeholder="璇疯緭鍏ユ�诲彂鍗曢噺" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璇勫垎" prop="score">
-        <el-input v-model="searchForm.score" placeholder="璇疯緭鍏ヨ瘎鍒�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="瀹氫綅鍦板潃" prop="localtion">
-        <el-input v-model="searchForm.localtion" placeholder="璇疯緭鍏ュ畾浣嶅湴鍧�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="绾害" prop="lat">
-        <el-input v-model="searchForm.lat" placeholder="璇疯緭鍏ョ含搴�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="缁忓害" prop="lgt">
-        <el-input v-model="searchForm.lgt" placeholder="璇疯緭鍏ョ粡搴�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐪佷唤" prop="province">
-        <el-input v-model="searchForm.province" placeholder="璇疯緭鍏ョ渷浠�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍩庡競" prop="city">
-        <el-input v-model="searchForm.city" placeholder="璇疯緭鍏ュ煄甯�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍖哄幙" prop="area">
-        <el-input v-model="searchForm.area" placeholder="璇疯緭鍏ュ尯鍘�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁鎺ュ彈鑷姩娲惧崟:0=鍚︼紱1=鏄紱" prop="autoReciveStatus">
-        <el-input v-model="searchForm.autoReciveStatus" placeholder="璇疯緭鍏ユ槸鍚︽帴鍙楄嚜鍔ㄦ淳鍗�:0=鍚︼紱1=鏄紱" @keypress.enter.native="search"></el-input>
+
+      <el-form-item label="娉ㄥ唽鏃堕棿" prop="eventType">
+        <el-date-picker type="datetime" v-model="searchForm.startTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
+                        placeholder="璇烽�夋嫨寮�濮嬫椂闂�" />-
+        <el-date-picker type="datetime" v-model="searchForm.endTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
+                        placeholder="璇烽�夋嫨缁撴潫鏃堕棿" />
       </el-form-item>
       <section>
         <el-button type="primary" @click="search">鎼滅储</el-button>
@@ -104,48 +39,50 @@
         <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button></li>
       </ul>
       <el-table
+          :height="tableHeightNew"
         v-loading="isWorking.search"
         :data="tableData.list"
         stripe
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
-        <el-table-column prop="deleted" label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" min-width="100px"></el-table-column>
-        <el-table-column prop="createUser" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
-        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
-        <el-table-column prop="updateUser" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
-        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
-        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
-        <el-table-column prop="coverImage" label="澶村儚" min-width="100px"></el-table-column>
-        <el-table-column prop="openid" label="openid" min-width="100px"></el-table-column>
+        <el-table-column prop="openid" label="openid" min-width="100px">
+          <template slot-scope="{row}">
+           <span style="cursor: pointer;color: #2E68EC" @click="openDetail(row)">{{row.openid}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="telephone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
         <el-table-column prop="nickName" label="鏄电О" min-width="100px"></el-table-column>
-        <el-table-column prop="telephone" label="鑱旂郴鐢佃瘽" min-width="100px"></el-table-column>
-        <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
-        <el-table-column prop="workerIdentity" label="鐢ㄥ伐韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" min-width="100px"></el-table-column>
-        <el-table-column prop="driverIdentity" label="璐ц繍韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" min-width="100px"></el-table-column>
-        <el-table-column prop="chefIdentity" label="渚涢寰堢矇:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" min-width="100px"></el-table-column>
-        <el-table-column prop="amount" label="褰撳墠浣欓(鍗曚綅:鍒�)" min-width="100px"></el-table-column>
-        <el-table-column prop="totalAmount" label="鍘嗗彶鎬婚噾棰�(鍗曚綅:鍒�)" min-width="100px"></el-table-column>
-        <el-table-column prop="status" label="鐘舵��" min-width="100px"></el-table-column>
-        <el-table-column prop="loginTime" label="鏈�鍚庣櫥褰曟椂闂�" min-width="100px"></el-table-column>
-        <el-table-column prop="loginTimes" label="鎬荤櫥褰曟鏁�" min-width="100px"></el-table-column>
-        <el-table-column prop="reciveNum" label="鎬绘帴鍗曢噺" min-width="100px"></el-table-column>
-        <el-table-column prop="publishNum" label="鎬诲彂鍗曢噺" min-width="100px"></el-table-column>
-        <el-table-column prop="score" label="璇勫垎" min-width="100px"></el-table-column>
-        <el-table-column prop="localtion" label="瀹氫綅鍦板潃" min-width="100px"></el-table-column>
-        <el-table-column prop="lat" label="绾害" min-width="100px"></el-table-column>
-        <el-table-column prop="lgt" label="缁忓害" min-width="100px"></el-table-column>
-        <el-table-column prop="province" label="鐪佷唤" min-width="100px"></el-table-column>
-        <el-table-column prop="city" label="鍩庡競" min-width="100px"></el-table-column>
-        <el-table-column prop="area" label="鍖哄幙" min-width="100px"></el-table-column>
-        <el-table-column prop="autoReciveStatus" label="鏄惁鎺ュ彈鑷姩娲惧崟:0=鍚︼紱1=鏄紱" min-width="100px"></el-table-column>
-        <el-table-column
-          v-if="containPermissions(['business:member:update', 'business:member:delete'])"
-          label="鎿嶄綔"
-          min-width="120"
-          fixed="right"
-        >
+        <el-table-column prop="name" label="鐪熷疄濮撳悕" min-width="100px"></el-table-column>
+        <el-table-column prop="workerIdentity" label="韬唤" min-width="100px">
+          <template slot-scope="{row}">
+            鍙戝崟鏂�<span v-if="row.workerIdentity == 2 || row.driverIdentity == 2 || row.chefIdentity == 2">{{'  |  鎺ュ崟鏂�'}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="amount" label="褰撳墠浣欓(鍏�)" min-width="100px">
+          <template slot-scope="{row}">
+            {{((row.amount || 0)/100).toFixed(2)}}
+          </template>
+        </el-table-column>
+        <el-table-column prop="createTime" label="娉ㄥ唽鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="autoReciveStatus" label="鎺ュ彈鑷姩娲惧崟" min-width="100px">
+            <template slot-scope="{row}">
+              {{row.autoReciveStatus ==1?"鏄�":"鍚�"}}
+            </template>
+        </el-table-column>
+        <el-table-column label="鐘舵��">
+          <template slot-scope="{row}">
+            <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66"
+                       inactive-color="#ff4949" :active-value="0" :inactive-value="1">
+            </el-switch>
+          </template>
+        </el-table-column>
+       <el-table-column
+              v-if="containPermissions(['business:member:update', 'business:member:delete'])"
+              label="鎿嶄綔"
+              min-width="120"
+              fixed="right"
+            >
           <template slot-scope="{row}">
             <el-button type="text" @click="$refs.operaMemberWindow.open('缂栬緫浼氬憳淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:member:update']">缂栬緫</el-button>
             <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button>
@@ -160,6 +97,7 @@
       </pagination>
     </template>
     <!-- 鏂板缓/淇敼 -->
+    <OperaMemberDetailWindow ref="OperaMemberDetailWindow" />
     <OperaMemberWindow ref="operaMemberWindow" @success="handlePageChange"/>
   </TableLayout>
 </template>
@@ -169,44 +107,21 @@
 import TableLayout from '@/layouts/TableLayout'
 import Pagination from '@/components/common/Pagination'
 import OperaMemberWindow from '@/components/business/OperaMemberWindow'
+import OperaMemberDetailWindow from '@/components/business/OperaMemberDetailWindow'
 export default {
   name: 'Member',
   extends: BaseTable,
-  components: { TableLayout, Pagination, OperaMemberWindow },
+  components: { TableLayout, Pagination,OperaMemberDetailWindow, OperaMemberWindow },
   data () {
     return {
       // 鎼滅储
       searchForm: {
-        id: '',
-        deleted: '',
-        createUser: '',
-        createTime: '',
-        updateUser: '',
-        updateTime: '',
-        remark: '',
-        coverImage: '',
-        openid: '',
-        nickName: '',
+        type: 0,
+        startTime: '',
+        endTime: '',
         telephone: '',
         name: '',
-        workerIdentity: '',
-        driverIdentity: '',
-        chefIdentity: '',
-        amount: '',
-        totalAmount: '',
-        status: '',
-        loginTime: '',
-        loginTimes: '',
-        reciveNum: '',
-        publishNum: '',
-        score: '',
-        localtion: '',
-        lat: '',
-        lgt: '',
-        province: '',
-        city: '',
-        area: '',
-        autoReciveStatus: ''
+        status: ''
       }
     }
   },
@@ -218,6 +133,26 @@
       'field.main': 'id'
     })
     this.search()
+  },
+  methods: {
+    openDetail (row) {
+      this.$refs.OperaMemberDetailWindow.open('鐢ㄦ埛璇︽儏', row.id)
+    },
+    changeStatus (e, row) {
+      this.working = true
+      this.api.updateStatus({ id: row.id, workStatus: e })
+        .then(res => {
+          this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
+          this.search()
+        })
+        .catch(e => {
+          this.$tip.apiFailed(e)
+        })
+        .finally(() => {
+          this.working = false
+        })
+        .catch(() => { })
+    }
   }
 }
 </script>
diff --git a/admin/src/views/business/memberRevenue.vue b/admin/src/views/business/memberRevenue.vue
index 4cb3d17..cd8a473 100644
--- a/admin/src/views/business/memberRevenue.vue
+++ b/admin/src/views/business/memberRevenue.vue
@@ -62,6 +62,7 @@
         <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:memberrevenue:delete']">鍒犻櫎</el-button></li>
       </ul>
       <el-table
+          :height="tableHeightNew"
         v-loading="isWorking.search"
         :data="tableData.list"
         stripe
diff --git a/admin/src/views/business/orderLog.vue b/admin/src/views/business/orderLog.vue
index 2bff094..e0c4d29 100644
--- a/admin/src/views/business/orderLog.vue
+++ b/admin/src/views/business/orderLog.vue
@@ -59,6 +59,7 @@
         <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:orderlog:delete']">鍒犻櫎</el-button></li>
       </ul>
       <el-table
+          :height="tableHeightNew"
         v-loading="isWorking.search"
         :data="tableData.list"
         stripe
diff --git a/admin/src/views/business/orders.vue b/admin/src/views/business/orders.vue
index 76589a1..7da2350 100644
--- a/admin/src/views/business/orders.vue
+++ b/admin/src/views/business/orders.vue
@@ -2,47 +2,8 @@
   <TableLayout :permissions="['business:orders:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="涓婚敭" prop="id">
-        <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
-        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
-        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
-        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
-        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
-        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
       <el-form-item label="鍙戝崟鏂�" prop="releaseMemberId">
         <el-input v-model="searchForm.releaseMemberId" placeholder="璇疯緭鍏ュ彂鍗曟柟" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="绫诲瀷:0=鐢ㄥ伐锛�1=杩愯揣锛�2=璁㈤" prop="type">
-        <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ョ被鍨�:0=鐢ㄥ伐锛�1=杩愯揣锛�2=璁㈤" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="寮�濮嬫椂闂� yyyy-MM-dd" prop="startDate">
-        <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫椂闂� yyyy-MM-dd" @change="search"/>
-      </el-form-item>
-      <el-form-item label="缁撴潫鏃堕棿 yyyy-MM-dd" prop="endDate">
-        <el-date-picker v-model="searchForm.endDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨鏉熸椂闂� yyyy-MM-dd" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鍦扮偣淇℃伅/鐢ㄨ溅璧风偣/鐢ㄩ鍦扮偣" prop="location">
-        <el-input v-model="searchForm.location" placeholder="璇疯緭鍏ュ湴鐐逛俊鎭�/鐢ㄨ溅璧风偣/鐢ㄩ鍦扮偣" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍦扮偣鎻忚堪" prop="locationRemark">
-        <el-input v-model="searchForm.locationRemark" placeholder="璇疯緭鍏ュ湴鐐规弿杩�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="缁忓害" prop="lat">
-        <el-input v-model="searchForm.lat" placeholder="璇疯緭鍏ョ粡搴�" @keypress.enter.native="search"></el-input>
       </el-form-item>
       <el-form-item label="鐪佷唤" prop="province">
         <el-input v-model="searchForm.province" placeholder="璇疯緭鍏ョ渷浠�" @keypress.enter.native="search"></el-input>
@@ -52,114 +13,6 @@
       </el-form-item>
       <el-form-item label="鍖哄幙" prop="area">
         <el-input v-model="searchForm.area" placeholder="璇疯緭鍏ュ尯鍘�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="绾害" prop="lgt">
-        <el-input v-model="searchForm.lgt" placeholder="璇疯緭鍏ョ含搴�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="闇�姹傜被鍨嬶紙杩愯揣/鐢ㄥ伐)锛氬叧鑱� category" prop="categoryId">
-        <el-input v-model="searchForm.categoryId" placeholder="璇疯緭鍏ラ渶姹傜被鍨嬶紙杩愯揣/鐢ㄥ伐)锛氬叧鑱� category" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐢ㄥ伐绫诲瀷:0=閲囨憳宸ワ紱1=鍒嗘嫞宸ワ紱2=鍖呰宸ワ紱锛堢敤宸ヨ鍗曪級" prop="workType">
-        <el-input v-model="searchForm.workType" placeholder="璇疯緭鍏ョ敤宸ョ被鍨�:0=閲囨憳宸ワ紱1=鍒嗘嫞宸ワ紱2=鍖呰宸ワ紱锛堢敤宸ヨ鍗曪級" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璁′环鏁伴噺1(澶╂暟/鐢ㄨ溅娆℃暟)" prop="priceNum1">
-        <el-input v-model="searchForm.priceNum1" placeholder="璇疯緭鍏ヨ浠锋暟閲�1(澶╂暟/鐢ㄨ溅娆℃暟)" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璁′环鏁伴噺2(鐢ㄥ伐鏁伴噺/閲囨憳鏁伴噺/鐢ㄨ溅鏁伴噺/)" prop="priceNum2">
-        <el-input v-model="searchForm.priceNum2" placeholder="璇疯緭鍏ヨ浠锋暟閲�2(鐢ㄥ伐鏁伴噺/閲囨憳鏁伴噺/鐢ㄨ溅鏁伴噺/)" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="闇�姹傝ˉ鍏�" prop="supplement">
-        <el-input v-model="searchForm.supplement" placeholder="璇疯緭鍏ラ渶姹傝ˉ鍏�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璐圭敤鏍囧噯" prop="price">
-        <el-input v-model="searchForm.price" placeholder="璇疯緭鍏ヨ垂鐢ㄦ爣鍑�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="棰勪及璐圭敤" prop="estimatedAccount">
-        <el-input v-model="searchForm.estimatedAccount" placeholder="璇疯緭鍏ラ浼拌垂鐢�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="瀹為檯鏀粯璐圭敤" prop="payAccount">
-        <el-input v-model="searchForm.payAccount" placeholder="璇疯緭鍏ュ疄闄呮敮浠樿垂鐢�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="瀹炴敹璐圭敤" prop="reviceAccount">
-        <el-input v-model="searchForm.reviceAccount" placeholder="璇疯緭鍏ュ疄鏀惰垂鐢�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璐圭敤璇存槑" prop="priceRemark">
-        <el-input v-model="searchForm.priceRemark" placeholder="璇疯緭鍏ヨ垂鐢ㄨ鏄�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐢ㄨ溅绫诲瀷(杩愯揣浣跨敤):0=澶╋紱1=娆�" prop="carType">
-        <el-input v-model="searchForm.carType" placeholder="璇疯緭鍏ョ敤杞︾被鍨�(杩愯揣浣跨敤):0=澶╋紱1=娆�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="杩愯緭鍝佺(杩愯揣浣跨敤) 鍏宠仈category琛�" prop="transportTypeId">
-        <el-input v-model="searchForm.transportTypeId" placeholder="璇疯緭鍏ヨ繍杈撳搧绉�(杩愯揣浣跨敤) 鍏宠仈category琛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="杩愯緭閲嶉噺/鏁伴噺" prop="transportNum">
-        <el-input v-model="searchForm.transportNum" placeholder="璇疯緭鍏ヨ繍杈撻噸閲�/鏁伴噺" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="杩愯緭鍗曚綅(涓�/鏂�)" prop="transportUnit">
-        <el-input v-model="searchForm.transportUnit" placeholder="璇疯緭鍏ヨ繍杈撳崟浣�(涓�/鏂�)" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐢ㄨ溅缁堢偣鍦板潃" prop="locationEnd">
-        <el-input v-model="searchForm.locationEnd" placeholder="璇疯緭鍏ョ敤杞︾粓鐐瑰湴鍧�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐢ㄨ溅缁堢偣缁忓害" prop="latEnd">
-        <el-input v-model="searchForm.latEnd" placeholder="璇疯緭鍏ョ敤杞︾粓鐐圭粡搴�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐢ㄨ溅缁堢偣绾害" prop="lgtEnd">
-        <el-input v-model="searchForm.lgtEnd" placeholder="璇疯緭鍏ョ敤杞︾粓鐐圭含搴�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="閫旂粡鐐�/椁愭爣淇℃伅" prop="wayInfo">
-        <el-input v-model="searchForm.wayInfo" placeholder="璇疯緭鍏ラ�旂粡鐐�/椁愭爣淇℃伅" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璁㈠崟缂栧彿" prop="code">
-        <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璁㈠崟鐘舵��:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" prop="status">
-        <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ヨ鍗曠姸鎬�:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鎺ュ崟鏃堕棿" prop="acceptTime">
-        <el-date-picker v-model="searchForm.acceptTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ帴鍗曟椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鎺ュ崟浜�" prop="acceptMemberId">
-        <el-input v-model="searchForm.acceptMemberId" placeholder="璇疯緭鍏ユ帴鍗曚汉" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鎺ュ崟绫诲瀷:0=鎵嬪姩鎺ュ崟锛�1=绯荤粺娲惧崟锛�" prop="acceptType">
-        <el-input v-model="searchForm.acceptType" placeholder="璇疯緭鍏ユ帴鍗曠被鍨�:0=鎵嬪姩鎺ュ崟锛�1=绯荤粺娲惧崟锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="寮�濮嬩綔涓氭椂闂�" prop="workStartTime">
-        <el-date-picker v-model="searchForm.workStartTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬩綔涓氭椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="瀹屾垚鏃堕棿" prop="finishTime">
-        <el-date-picker v-model="searchForm.finishTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ畬鎴愭椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="骞冲彴鎻愭垚姣斾緥" prop="platformRata">
-        <el-input v-model="searchForm.platformRata" placeholder="璇疯緭鍏ュ钩鍙版彁鎴愭瘮渚�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="寰俊骞冲彴浜ゆ槗璁㈠崟鍙�" prop="wxExternalNo">
-        <el-input v-model="searchForm.wxExternalNo" placeholder="璇疯緭鍏ュ井淇″钩鍙颁氦鏄撹鍗曞彿" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁璇勪环:0=鍚︼紱1=鏄�" prop="commentStatus">
-        <el-input v-model="searchForm.commentStatus" placeholder="璇疯緭鍏ユ槸鍚﹁瘎浠�:0=鍚︼紱1=鏄�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璇勪环鍐呭" prop="commentInfo">
-        <el-input v-model="searchForm.commentInfo" placeholder="璇疯緭鍏ヨ瘎浠峰唴瀹�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璇勪环鏄熺骇1-5" prop="commentLevel">
-        <el-input v-model="searchForm.commentLevel" placeholder="璇疯緭鍏ヨ瘎浠锋槦绾�1-5" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璇勪环鏃堕棿" prop="commentTime">
-        <el-date-picker v-model="searchForm.commentTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヨ瘎浠锋椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="璇勪环绫诲瀷:0=鎵嬪姩璇勪环锛�1=绯荤粺鑷姩璇勪环锛�" prop="commentType">
-        <el-input v-model="searchForm.commentType" placeholder="璇疯緭鍏ヨ瘎浠风被鍨�:0=鎵嬪姩璇勪环锛�1=绯荤粺鑷姩璇勪环锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍙栨秷鏃堕棿" prop="cancelTime">
-        <el-date-picker v-model="searchForm.cancelTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ彇娑堟椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鏄惁宸蹭慨鏀�:0=鍚︼紱1=鏄紱" prop="isUpdate">
-        <el-input v-model="searchForm.isUpdate" placeholder="璇疯緭鍏ユ槸鍚﹀凡淇敼:0=鍚︼紱1=鏄紱" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鎺ュ崟鏂归粦鍚嶅崟member:id 澶氫釜浠�,鍒嗗壊" prop="blackRecive">
-        <el-input v-model="searchForm.blackRecive" placeholder="璇疯緭鍏ユ帴鍗曟柟榛戝悕鍗昺ember:id 澶氫釜浠�,鍒嗗壊" @keypress.enter.native="search"></el-input>
       </el-form-item>
       <section>
         <el-button type="primary" @click="search">鎼滅储</el-button>
@@ -173,6 +26,7 @@
         <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:orders:delete']">鍒犻櫎</el-button></li>
       </ul>
       <el-table
+          :height="tableHeightNew"
         v-loading="isWorking.search"
         :data="tableData.list"
         stripe
diff --git a/admin/src/views/business/receiveWeight.vue b/admin/src/views/business/receiveWeight.vue
index 07f7dd6..64ea7dd 100644
--- a/admin/src/views/business/receiveWeight.vue
+++ b/admin/src/views/business/receiveWeight.vue
@@ -1,51 +1,5 @@
 <template>
   <TableLayout :permissions="['business:receiveweight:query']">
-    <!-- 鎼滅储琛ㄥ崟 -->
-    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="涓婚敭" prop="id">
-        <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
-        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐘舵��:0=鍚敤锛�1=绂佺敤锛�" prop="status">
-        <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬�:0=鍚敤锛�1=绂佺敤锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
-        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
-        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
-        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
-        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏈�澶ф帴鍗曢噺" prop="receiveMax">
-        <el-input v-model="searchForm.receiveMax" placeholder="璇疯緭鍏ユ渶澶ф帴鍗曢噺" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏈�灏忔帴鍗曢噺" prop="receiveMin">
-        <el-input v-model="searchForm.receiveMin" placeholder="璇疯緭鍏ユ渶灏忔帴鍗曢噺" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="浼樺厛绾�" prop="level">
-        <el-input v-model="searchForm.level" placeholder="璇疯緭鍏ヤ紭鍏堢骇" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璁㈠崟鏌ョ湅寤惰繜鏃堕棿" prop="delayTime">
-        <el-input v-model="searchForm.delayTime" placeholder="璇疯緭鍏ヨ鍗曟煡鐪嬪欢杩熸椂闂�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鎺掑簭鐮�" prop="sortnum">
-        <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <section>
-        <el-button type="primary" @click="search">鎼滅储</el-button>
-        <el-button @click="reset">閲嶇疆</el-button>
-      </section>
-    </el-form>
     <!-- 琛ㄦ牸鍜屽垎椤� -->
     <template v-slot:table-wrap>
       <ul class="toolbar" v-permissions="['business:receiveweight:create', 'business:receiveweight:delete']">
@@ -53,6 +7,7 @@
         <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:receiveweight:delete']">鍒犻櫎</el-button></li>
       </ul>
       <el-table
+          :height="tableHeightNew"
         v-loading="isWorking.search"
         :data="tableData.list"
         stripe
diff --git a/admin/src/views/business/withdrawalOrders.vue b/admin/src/views/business/withdrawalOrders.vue
index 6d71c1b..da1dfce 100644
--- a/admin/src/views/business/withdrawalOrders.vue
+++ b/admin/src/views/business/withdrawalOrders.vue
@@ -2,44 +2,11 @@
   <TableLayout :permissions="['business:withdrawalorders:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="涓婚敭" prop="id">
-        <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
-        <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
-        <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
-        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
-        <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
-        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
       <el-form-item label="浼氬憳涓婚敭" prop="memberId">
         <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ヤ細鍛樹富閿�" @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="鎻愮幇閲戦(鍗曚綅:鍒�)" prop="amount">
-        <el-input v-model="searchForm.amount" placeholder="璇疯緭鍏ユ彁鐜伴噾棰�(鍗曚綅:鍒�)" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="寰俊骞冲彴浜ゆ槗璁㈠崟鍙�" prop="wxExternalNo">
-        <el-input v-model="searchForm.wxExternalNo" placeholder="璇疯緭鍏ュ井淇″钩鍙颁氦鏄撹鍗曞彿" @keypress.enter.native="search"></el-input>
-      </el-form-item>
       <el-form-item label="鐘舵��:0=鎻愮幇鐢宠涓�:1=鎻愮幇鎴愬姛锛�2=鎻愮幇澶辫触锛�" prop="status">
         <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬�:0=鎻愮幇鐢宠涓�:1=鎻愮幇鎴愬姛锛�2=鎻愮幇澶辫触锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鎻愮幇瀹屾垚鏃堕棿" prop="doneTime">
-        <el-date-picker v-model="searchForm.doneTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ彁鐜板畬鎴愭椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="瀹屾垚澶囨敞" prop="doneInfo">
-        <el-input v-model="searchForm.doneInfo" placeholder="璇疯緭鍏ュ畬鎴愬娉�" @keypress.enter.native="search"></el-input>
       </el-form-item>
       <section>
         <el-button type="primary" @click="search">鎼滅储</el-button>
@@ -53,6 +20,7 @@
         <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:withdrawalorders:delete']">鍒犻櫎</el-button></li>
       </ul>
       <el-table
+          :height="tableHeightNew"
         v-loading="isWorking.search"
         :data="tableData.list"
         stripe
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index 11c5aa1..c05ce02 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -3,7 +3,7 @@
     <div class="home_header">
       <div class="mb10 fs17">涓嬪崍濂斤紝{{ userInfo.realname }}</div>
       <div class="fs13">
-        浠婂ぉ鏄� {{ nowDate }} {{ nowWeek }}锛屾杩庤闂眴绫宠烦璺冲畼缃戝悗鍙扮鐞嗗钩鍙�
+        浠婂ぉ鏄� {{ nowDate }} {{ nowWeek }}锛屾杩庤闂繎蹇悗鍙扮鐞嗙郴缁�
       </div>
     </div>
   </div>
diff --git a/admin/src/views/login.vue b/admin/src/views/login.vue
index 65d9460..9d4a68c 100644
--- a/admin/src/views/login.vue
+++ b/admin/src/views/login.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="wrap">
     <div class="introduce">
-      <h2>璞嗙背璺宠烦瀹樼綉鍚庡彴绠$悊</h2>
+      <h2>杩戝揩鍚庡彴绠$悊绯荤粺</h2>
       <h3></h3>
     </div>
     <div class="login">
diff --git a/server/admin/src/main/resources/application.yml b/server/admin/src/main/resources/application.yml
index f84faf7..fdfac5f 100644
--- a/server/admin/src/main/resources/application.yml
+++ b/server/admin/src/main/resources/application.yml
@@ -62,7 +62,6 @@
     key: qklpNODl6JjmgcT+
     iv: 7rnE4rm3h/hcfqN2
 
-
 # 鏃ュ織閰嶇疆
 logback:
   level: ERROR
diff --git a/server/pom.xml b/server/pom.xml
index 38b3e63..3c9dcf4 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -55,7 +55,7 @@
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
-    <!--  <exclusions>
+    <!--<exclusions>
         <exclusion>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-tomcat</artifactId>
@@ -65,7 +65,6 @@
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-tomcat</artifactId>
-      <scope>provided</scope>
     </dependency>
     <!-- Redis -->
     <dependency>
@@ -121,6 +120,20 @@
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-quartz</artifactId>
     </dependency>
+    <!--鍗庝负OBS -->
+    <dependency>
+      <groupId>com.huaweicloud</groupId>
+      <artifactId>esdk-obs-java-bundle</artifactId>
+      <version>3.23.9</version>
+    </dependency>
+
+    <!--鍗庝负OBS -->
+    <dependency>
+      <groupId>com.huaweicloud</groupId>
+      <artifactId>esdk-obs-java</artifactId>
+      <version>3.19.7</version>
+    </dependency>
+
     <!-- 杩炴帴姹� -->
     <dependency>
       <groupId>com.alibaba</groupId>
diff --git a/server/services/src/main/java/com/doumee/api/common/PublicCloudController.java b/server/services/src/main/java/com/doumee/api/common/PublicCloudController.java
index 6a8ff19..c265fb7 100644
--- a/server/services/src/main/java/com/doumee/api/common/PublicCloudController.java
+++ b/server/services/src/main/java/com/doumee/api/common/PublicCloudController.java
@@ -14,6 +14,7 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.FtpUtil;
 import com.doumee.core.utils.azure.AzureBlobUtil;
+import com.doumee.core.utils.huaweiOBS.ObsUtil;
 import com.doumee.core.utils.qiyeweixin.QywxUtil;
 import com.doumee.core.utils.qiyeweixin.model.response.QywxUploadMediaResponse;
 import com.doumee.dao.system.model.SystemDictData;
@@ -66,6 +67,78 @@
                 systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.FILE_DIR).getCode());
 
     }
+    @ApiOperation(value = "涓婁紶OBS", notes = "涓婁紶OBS", httpMethod = "POST", position = 6)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "file", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
+    })
+    @PostMapping(value = "/upload", headers = "content-type=multipart/form-data")
+    @ResponseBody
+    public void upload(HttpServletRequest request, HttpServletResponse response, String folder) throws Exception {
+        Date d1 = new Date();
+        log.error("鎬诲緱涓婁紶鏂囦欢鎴愬姛=============寮�濮�========="+DateUtil.getPlusTime2(d1));
+        SystemDictData folderData =  systemDictDataBiz.queryByCode(Constants.FTP,folder);
+        if(Objects.isNull(folderData)||StringUtils.isBlank(folderData.getCode())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐩爣鏂囦欢澶归敊璇�");
+        }
+        folder =folderData.getCode().replace("/", "");
+        String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode();
+        InputStream is = null;
+        response.setCharacterEncoding("UTF-8");
+        response.setContentType("text/html;charset=UTF-8");
+        Map<String, Object> context = new HashMap<>();
+        try {
+            CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
+            if (multipartResovler.isMultipart(request)) {
+                MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+                Iterator<String> it = multipartRequest.getFileNames();
+                while (it.hasNext()) {
+                    MultipartFile file = multipartRequest.getFile(it.next());
+                    System.out.println(file.getSize());
+                    String originname = file.getOriginalFilename();
+                    is = file.getInputStream();
+                    String endType = ".jpg";
+                    if(originname.indexOf(".")>0){
+                        endType=originname.substring(originname.lastIndexOf("."),originname.length());
+                    }
+                    String date = DateUtil.getNowShortDate();
+                    String fName =  date+"/"+ UUID.randomUUID()+endType;
+                    String fileName = folder+"/"+fName;
+                    boolean r =false;
+                    ObsUtil obsUtil = new ObsUtil( systemDictDataBiz.queryByCode(Constants.HWY_OBS,Constants.HWY_OBS_ACCESSID).getCode(),
+                            systemDictDataBiz.queryByCode(Constants.HWY_OBS,Constants.HWY_OBS_ACCESSKEY).getCode(),
+                            systemDictDataBiz.queryByCode(Constants.HWY_OBS,Constants.HWY_OBS_ENDPOINT).getCode());
+                    r = obsUtil.uploadFile( systemDictDataBiz.queryByCode(Constants.HWY_OBS,Constants.HWY_OBS_BUCKET).getCode(),is,fileName);//涓婁紶
+                    if(r){
+                        context.put("success", true);
+                        context.put("code", 200);
+                        context.put("errno",0);
+                        JSONObject fileJSON = new JSONObject();
+//                        fileJSON.put("prefixPath", prefixPath);
+//                        fileJSON.put("folder", folder);
+                        fileJSON.put("url", prefixPath+fileName);
+                        fileJSON.put("imgaddr", fName);
+                        fileJSON.put("imgname", fileName);
+                        fileJSON.put("originname", originname);
+                        context.put("data",fileJSON);
+                        context.put("message","璇锋眰鎴愬姛");
+                        writerJson(response, context);
+                        Date d2= new Date();
+                        log.error("鎬荤殑涓婁紶鏂囦欢鎴愬姛=============缁撴潫========="+DateUtil.getPlusTime2(d2) +"鑰楁椂绉掞細"+( (d2.getTime()-d1.getTime()) /1000));
+                        return;
+                    }
+                }
+            }
+        } catch (Exception e) {
+            log.error("銆愪笂浼燜TP澶辫触銆�======================"+e.getMessage());
+        }
+        context.put("code", 0);
+        context.put("message", "涓婁紶澶辫触");
+        context.put("errno",0);
+        writerJson(response, context);
+        return;
+    }
+
 
     public void uploadFileLocal(HttpServletRequest request,  HttpServletResponse response, String rootPath,String dir) throws Exception {
         response.setCharacterEncoding("UTF-8");
diff --git a/server/services/src/main/java/com/doumee/core/constants/Constants.java b/server/services/src/main/java/com/doumee/core/constants/Constants.java
index 7fa6160..f801c57 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -12,11 +12,11 @@
  */
 public class Constants {
 
-    public static final String AZURE_BLOB ="AZURE_BLOB" ;
-    public static final String AZURE_BLOB_ACCESSNAME ="AZURE_BLOB_ACCESSNAME" ;
-    public static final String AZURE_BLOB_ACCESSKEY ="AZURE_BLOB_ACCESSKEY" ;
-    public static final String AZURE_BLOB_ENDPOINT ="AZURE_BLOB_ENDPOINT" ;
-    public static final String AZURE_BLOB_CONTAINER ="AZURE_BLOB_CONTAINER" ;
+    public static final String HWY_OBS ="HWY_OBS" ;
+    public static final String HWY_OBS_ACCESSID ="HWY_OBS_ACCESSID" ;
+    public static final String HWY_OBS_ACCESSKEY ="HWY_OBS_ACCESSKEY" ;
+    public static final String HWY_OBS_ENDPOINT ="HWY_OBS_ENDPOINT" ;
+    public static final String HWY_OBS_BUCKET ="HWY_OBS_BUCKET" ;
     public static final String FTP ="FTP" ;
     public static final String FTP_HOST ="FTP_HOST" ;
     public static final String FTP_PORT ="FTP_PORT" ;
@@ -336,4 +336,49 @@
             this.noticeContent = noticeContent;
         }
     }
+
+    /**
+     * 鐢ㄦ埛鏀舵敮涓氬姟绫诲瀷
+     * 鍙樺姩绫诲瀷:0=鐢ㄥ伐鍗曟敹鍏ワ紱1=璐ц繍鍗曟敹鍏ワ紱2=渚涢鍗曟敹鍏ワ紱3=鎻愮幇鐢宠锛�
+     */
+    @Getter
+    public enum RevenueType {
+
+        YGD_INCOME(  0, "鐢ㄥ伐鍗曟敹鍏�","鐢ㄥ伐鍗曟敹鍏�" ,0),
+        HYD_INCOME(  1, "璐ц繍鍗曟敹鍏�","璐ц繍鍗曟敹鍏�" ,0),
+        GCD_INCOME(2, "渚涢鍗曟敹鍏�","渚涢鍗曟敹鍏�" ,0),
+        WITHDRAW_APPLY(3, "鎻愮幇鐢宠","鎻愮幇鐢宠" ,0),
+        REFUND(  4, "鎻愮幇鐢宠閫�鍥�","鎻愮幇鐢宠閫�鍥�" ,0)
+        ;
+
+        private int key;
+        private String name;
+        private  String info;
+        private int navIndex;
+
+        RevenueType(int key, String name, String info,int navIndex) {
+            this.info = info;
+            this.key = key;
+            this.name = name;
+            this.navIndex = navIndex;
+        }
+        public static RevenueType getObj(int index) {
+            for (RevenueType c : RevenueType.values()) {
+                if (c.getKey() == index) {
+                    return c;
+                }
+            }
+            return null;
+        }
+        public static String getObjName(int index) {
+            for (RevenueType c : RevenueType.values()) {
+                if (c.getKey() == index) {
+                    return c.getName();
+                }
+            }
+            return null;
+        }
+
+
+    }
 }
diff --git a/server/services/src/main/java/com/doumee/core/utils/huaweiOBS/ObsUtil.java b/server/services/src/main/java/com/doumee/core/utils/huaweiOBS/ObsUtil.java
new file mode 100644
index 0000000..5d24461
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/core/utils/huaweiOBS/ObsUtil.java
@@ -0,0 +1,162 @@
+package com.doumee.core.utils.huaweiOBS;
+
+import com.azure.storage.blob.BlobContainerClient;
+import com.azure.storage.blob.BlobServiceClient;
+import com.azure.storage.blob.BlobServiceClientBuilder;
+import com.obs.services.BasicObsCredentialsProvider;
+import com.obs.services.ObsClient;
+import com.obs.services.exception.ObsException;
+import com.obs.services.model.*;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.List;
+
+/**
+ * @date 2020/4/28
+ */
+public class ObsUtil {
+
+    public ObsClient obsClient;
+    public     String accessKey;
+    public   String accessId;
+    public    String endpoint;
+
+    public BlobContainerClient blobContainerClient ;
+
+    public ObsUtil(String accessId, String accessKey, String endpoint){
+        try {
+            this.accessId = accessId;
+            this.accessKey = accessKey;
+            this.endpoint = endpoint;
+            this.obsClient = new ObsClient(new BasicObsCredentialsProvider(accessId, accessKey), this.endpoint);
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+    private void initClient() {
+        this.obsClient = new ObsClient(new BasicObsCredentialsProvider(this.accessId, this.accessKey), this.endpoint);
+    }
+
+
+    /**
+     * 涓婁紶鏂囦欢
+     * @param is
+     * @param objectKey
+     * @return
+     * @throws IOException
+     */
+    public  boolean uploadFile(String bucketName,InputStream is, String objectKey) throws Exception {
+        if(this.obsClient == null){
+            initClient();
+        }
+
+        try {
+            // 涓婁紶瀛楃涓诧紙byte鏁扮粍锛�
+            obsClient.putObject(bucketName, objectKey, is);
+            System.out.println("putObject successfully");
+        } catch (ObsException e) {
+            System.out.println("putObject failed");
+            // 璇锋眰澶辫触,鎵撳嵃http鐘舵�佺爜
+            System.out.println("HTTP Code:" + e.getResponseCode());
+            // 璇锋眰澶辫触,鎵撳嵃鏈嶅姟绔敊璇爜
+            System.out.println("Error Code:" + e.getErrorCode());
+            // 璇锋眰澶辫触,鎵撳嵃璇︾粏閿欒淇℃伅
+            System.out.println("Error Message:" + e.getErrorMessage());
+            // 璇锋眰澶辫触,鎵撳嵃璇锋眰id
+            System.out.println("Request ID:" + e.getErrorRequestId());
+            System.out.println("Host ID:" + e.getErrorHostId());
+           return false;
+        } catch (Exception e) {
+            System.out.println("putObject failed");
+            // 鍏朵粬寮傚父淇℃伅鎵撳嵃
+            e.printStackTrace();
+            return false;
+        }finally {
+            if(this.obsClient!=null){
+                this.obsClient.close();
+            }
+        }
+
+       return true;
+    }
+
+
+    public static  Integer uploadNetFile(ObsClient obsClient,String bucketName,String url, String objectKey) throws IOException {
+        InputStream is = new URL(url).openStream();
+        if(is != null){
+            Boolean flag = obsClient.doesObjectExist(bucketName, objectKey);
+            PutObjectResult result = null;
+            result = obsClient.putObject(bucketName, objectKey, is);
+            obsClient.close();
+            return result.getStatusCode();
+        }
+        //鍚屽悕鏂囦欢鍙兘琚鐩�
+        return null;
+    }
+
+    /**
+     * 鑾峰緱鎵�鏈夋枃浠�
+     * @return
+     * @throws IOException
+     */
+    public List<ObsObject> getAllFileInfo( ObsClient obsClient,String bucketName) throws IOException {
+        ObjectListing objectList = obsClient.listObjects(bucketName);
+        List<ObsObject> list = objectList.getObjects();
+        obsClient.close();
+        return list;
+    }
+
+    /**
+     * 鍒犻櫎鏂囦欢
+     * @param objectKey
+     * @return
+     * @throws IOException
+     */
+    public Boolean removeFile(ObsClient obsClient,String bucketName,String objectKey) throws IOException {
+        boolean exist = obsClient.doesObjectExist(bucketName, objectKey);
+        DeleteObjectResult result = null;
+        if (exist) {
+            result = obsClient.deleteObject(bucketName, objectKey);
+        }
+        obsClient.close();
+        //鏄惁鍙互琚爣璁颁负鍒犻櫎
+        return result.isDeleteMarker();
+    }
+
+    /**
+     * 鑾峰彇鏂囦欢瀵硅薄-涓嬭浇
+     * @param objectKey
+     * @return
+     */
+    public ObsObject getFile(ObsClient obsClient,String bucketName,String objectKey) {
+        boolean exist = obsClient.doesObjectExist(bucketName, objectKey);
+        if (exist) {
+            ObsObject object = obsClient.getObject(bucketName, objectKey);
+            return object;
+        }
+        return null;
+    }
+
+    /**
+     * 棰勮鎺堟潈璁块棶-鏀寔娴佸紡鏂囦欢
+     * 濡傛灉鏄祦寮忔枃浠讹紝杩斿洖鐨勯摼鎺ュ彲浠ュ湪娴忚鍣ㄩ瑙�
+     * 濡傛灉鏄潪娴佸紡鏂囦欢锛岃繑鍥炵殑閾炬帴鍙互鍦ㄦ祻瑙堝櫒閲屼笅杞芥枃浠�
+     * @param objectKey
+     * @return
+     * @throws IOException
+     */
+    public String preview(ObsClient obsClient,String bucketName,String objectKey) throws IOException {
+        //300鏈夋晥鏃堕棿
+        TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.GET, 300);
+        request.setBucketName(bucketName);
+        request.setObjectKey(objectKey);
+        TemporarySignatureResponse response = obsClient.createTemporarySignature(request);
+        obsClient.close();
+        return response.getSignedUrl();
+    }
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Member.java b/server/services/src/main/java/com/doumee/dao/business/model/Member.java
index 6e5d6c4..8ded3a7 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Member.java
@@ -38,7 +38,6 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createTime;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -155,6 +154,11 @@
     @ApiModelProperty(value = "鎴戠殑 - 鏁版嵁淇℃伅", example = "1")
     @TableField(exist = false)
     private UserCenterVO userCenterVO;
-
+    @ApiModelProperty(value = "鍙樻煡璇㈠紑濮嬫椂闂�", example = "1")
+    @TableField(exist = false)
+    private Date startTime;
+    @ApiModelProperty(value = "鍙樻煡璇㈢粨鏉熸椂闂�", example = "1")
+    @TableField(exist = false)
+    private Date endTime;
 
 }
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/MemberRevenue.java b/server/services/src/main/java/com/doumee/dao/business/model/MemberRevenue.java
index de8488d..5369aea 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/MemberRevenue.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/MemberRevenue.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -27,7 +28,7 @@
 
     @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "1")
     @ExcelColumn(name="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�")
-    private Byte deleted;
+    private Integer deleted;
 
     @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
     @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
@@ -35,7 +36,6 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createTime;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -44,7 +44,6 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date updateTime;
 
     @ApiModelProperty(value = "澶囨敞")
@@ -86,5 +85,18 @@
     @ApiModelProperty(value = "涓氬姟鐘舵��:0=鎴愬姛锛�1=澶辫触锛�2=澶勭悊涓紱", example = "1")
     @ExcelColumn(name="涓氬姟鐘舵��:0=鎴愬姛锛�1=澶辫触锛�2=澶勭悊涓紱")
     private Integer status;
+    @ApiModelProperty(value = "鍙樺姩绫诲瀷:0=鐢ㄥ伐鍗曟敹鍏ワ紱1=璐ц繍鍗曟敹鍏ワ紱2=渚涢鍗曟敹鍏ワ紱3=鎻愮幇鐢宠锛�", example = "1")
+    @TableField(exist = false)
+    @ExcelColumn(name="鍙樺姩绫诲瀷:0=鐢ㄥ伐鍗曟敹鍏ワ紱1=璐ц繍鍗曟敹鍏ワ紱2=渚涢鍗曟敹鍏ワ紱3=鎻愮幇鐢宠锛�")
+    private String typeName;
+    @ApiModelProperty(value = "寰俊浜ゆ槗娴佹按鍙�", example = "1")
+    @ExcelColumn(name="寰俊浜ゆ槗娴佹按鍙�")
+    private String transactionNo;
 
+    @ApiModelProperty(value = "鍙樻煡璇㈠紑濮嬫椂闂�", example = "1")
+    @TableField(exist = false)
+    private Date startTime;
+    @ApiModelProperty(value = "鍙樻煡璇㈢粨鏉熸椂闂�", example = "1")
+    @TableField(exist = false)
+    private Date endTime;
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberRevenueServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberRevenueServiceImpl.java
index adc8a7d..fee0839 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberRevenueServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberRevenueServiceImpl.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.core.constants.Constants;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
@@ -10,6 +11,7 @@
 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.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -89,6 +91,7 @@
         IPage<MemberRevenue> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         QueryWrapper<MemberRevenue> queryWrapper = new QueryWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
+        pageWrap.getModel().setDeleted(Constants.ZERO);
         if (pageWrap.getModel().getId() != null) {
             queryWrapper.lambda().eq(MemberRevenue::getId, pageWrap.getModel().getId());
         }
@@ -139,6 +142,12 @@
         if (pageWrap.getModel().getStatus() != null) {
             queryWrapper.lambda().eq(MemberRevenue::getStatus, pageWrap.getModel().getStatus());
         }
+        if (StringUtils.isNotBlank(pageWrap.getModel().getTransactionNo())) {
+            queryWrapper.lambda().like(MemberRevenue::getTransactionNo, pageWrap.getModel().getTransactionNo());
+        }
+        queryWrapper.lambda().ge(pageWrap.getModel().getStartTime()!=null,MemberRevenue::getCreateTime,pageWrap.getModel().getStartTime());
+        queryWrapper.lambda().ne(pageWrap.getModel().getEndTime()!=null,MemberRevenue::getCreateTime,pageWrap.getModel().getEndTime());
+
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                 queryWrapper.orderByDesc(sortData.getProperty());
@@ -146,7 +155,13 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-        return PageData.from(memberRevenueMapper.selectPage(page, queryWrapper));
+        PageData<MemberRevenue> result =  PageData.from(memberRevenueMapper.selectPage(page, queryWrapper));
+        if(result!=null && result.getRecords()!=null){
+            for(MemberRevenue model :result.getRecords()){
+                model.setTypeName(Constants.RevenueType.getObjName(model.getType()));
+            }
+        }
+        return result;
     }
 
     @Override
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index ec42cb3..9548463 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -16,6 +16,7 @@
 import com.doumee.dao.business.OrdersMapper;
 import com.doumee.dao.business.model.IdentityInfo;
 import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.MemberRevenue;
 import com.doumee.dao.business.model.Orders;
 import com.doumee.dao.dto.WxPhoneRequest;
 import com.doumee.dao.vo.AccountResponse;
@@ -126,6 +127,7 @@
         IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
+        pageWrap.getModel().setDeleted(Constants.ZERO);
         if (pageWrap.getModel().getId() != null) {
             queryWrapper.lambda().eq(Member::getId, pageWrap.getModel().getId());
         }
@@ -153,16 +155,16 @@
             queryWrapper.lambda().eq(Member::getCoverImage, pageWrap.getModel().getCoverImage());
         }
         if (pageWrap.getModel().getOpenid() != null) {
-            queryWrapper.lambda().eq(Member::getOpenid, pageWrap.getModel().getOpenid());
+            queryWrapper.lambda().like(Member::getOpenid, pageWrap.getModel().getOpenid());
         }
         if (pageWrap.getModel().getNickName() != null) {
-            queryWrapper.lambda().eq(Member::getNickName, pageWrap.getModel().getNickName());
+            queryWrapper.lambda().like(Member::getNickName, pageWrap.getModel().getNickName());
         }
         if (pageWrap.getModel().getTelephone() != null) {
-            queryWrapper.lambda().eq(Member::getTelephone, pageWrap.getModel().getTelephone());
+            queryWrapper.lambda().like(Member::getTelephone, pageWrap.getModel().getTelephone());
         }
         if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().eq(Member::getName, pageWrap.getModel().getName());
+            queryWrapper.lambda().like(Member::getName, pageWrap.getModel().getName());
         }
         if (pageWrap.getModel().getWorkerIdentity() != null) {
             queryWrapper.lambda().eq(Member::getWorkerIdentity, pageWrap.getModel().getWorkerIdentity());
@@ -210,6 +212,9 @@
         if (pageWrap.getModel().getArea() != null) {
             queryWrapper.lambda().eq(Member::getArea, pageWrap.getModel().getArea());
         }
+        queryWrapper.lambda().ge(pageWrap.getModel().getStartTime()!=null, Member::getCreateTime,pageWrap.getModel().getStartTime());
+        queryWrapper.lambda().ne(pageWrap.getModel().getEndTime()!=null,Member::getCreateTime,pageWrap.getModel().getEndTime());
+
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                 queryWrapper.orderByDesc(sortData.getProperty());

--
Gitblit v1.9.3