From 1c08cdb19aa0531dc77665dbbde052133dff9ceb Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期二, 31 十月 2023 14:10:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java                            |    2 
 cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js                               |   11 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorUserService.java             |   12 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AntMerchantExpandIndirectImageUpload.java |  155 +++++
 cloud-server-management/src/main/java/com/dsh/ManagementApplication.java                                        |    3 
 cloud-server-management/src/main/resources/TOperatorUserMapper.xml                                              |    5 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/WeChatUtil.java                          |  168 ++++++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html           |   52 ++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java   |   24 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java       |    9 
 cloud-server-management/pom.xml                                                                                 |   14 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/MgtShopAuthDto.java                     |  204 +++++++
 .idea/workspace.xml                                                                                             |  169 +++---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OBSUploadUtil.java                       |    9 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html                      |  600 ++++++++++++++++++----
 cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js                      |   32 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java    |   91 +++
 17 files changed, 1,360 insertions(+), 200 deletions(-)

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 6ed129d..4a094d1 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -25,11 +25,24 @@
     <select />
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="商户认证">
-      <change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
+    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="">
+      <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/MgtShopAuthDto.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/WeChatUtil.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/ManagementApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/ManagementApplication.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AntMerchantExpandIndirectImageUpload.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AntMerchantExpandIndirectImageUpload.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorUserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorUserService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OBSUploadUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OBSUploadUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/resources/TOperatorUserMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/resources/TOperatorUserMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -116,6 +129,8 @@
       <recent name="E:\PlayPai\cloud-server-management\src\main\java\com\dsh\guns\modular\system\model" />
     </key>
     <key name="CopyClassDialog.RECENTS_KEY">
+      <recent name="com.dsh.guns.modular.system.util" />
+      <recent name="com.dsh.guns.modular.system.model" />
       <recent name="com.dsh.course.feignClient.account.model" />
       <recent name="com.dsh.guns.modular.system.model.dto" />
       <recent name="com.dsh.course.mapper" />
@@ -148,7 +163,7 @@
       </list>
     </option>
   </component>
-  <component name="RunManager" selected="Spring Boot.ManagementApplication">
+  <component name="RunManager" selected="Application.AntMerchantExpandIndirectImageUpload">
     <configuration default="true" type="JUnit" factoryName="JUnit">
       <shortenClasspath name="MANIFEST" />
       <option name="TEST_OBJECT" value="class" />
@@ -201,19 +216,6 @@
         <option name="Make" enabled="true" />
       </method>
     </configuration>
-    <configuration name="BigDecimalToChineseWords" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
-      <option name="MAIN_CLASS_NAME" value="com.dsh.guns.modular.system.util.BigDecimalToChineseWords" />
-      <module name="mb-cloud-management" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="com.dsh.guns.modular.system.util.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
     <configuration name="OperatorController" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
       <option name="MAIN_CLASS_NAME" value="com.dsh.guns.modular.system.controller.code.OperatorController" />
       <module name="mb-cloud-management" />
@@ -233,6 +235,19 @@
       <extension name="coverage">
         <pattern>
           <option name="PATTERN" value="com.dsh.guns.modular.system.api.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="WeChatUtil" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+      <option name="MAIN_CLASS_NAME" value="com.dsh.guns.modular.system.util.WeChatUtil" />
+      <module name="mb-cloud-management" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.dsh.guns.modular.system.util.*" />
           <option name="ENABLED" value="true" />
         </pattern>
       </extension>
@@ -412,7 +427,12 @@
       </method>
     </configuration>
     <list>
+      <item itemvalue="Application.AccountApplicationTests" />
       <item itemvalue="Application.BigDecimalToChineseWords" />
+      <item itemvalue="Application.OperatorController" />
+      <item itemvalue="Application.AntMerchantExpandIndirectImageUpload" />
+      <item itemvalue="Application.SaticScheduleTask" />
+      <item itemvalue="Application.WeChatUtil" />
       <item itemvalue="JUnit.AccountApplicationTests.contextLoads" />
       <item itemvalue="Spring Boot.CourseApplication" />
       <item itemvalue="Spring Boot.AuthApplication" />
@@ -422,14 +442,12 @@
       <item itemvalue="Spring Boot.OtherApplication" />
       <item itemvalue="Spring Boot.ActivityApplication" />
       <item itemvalue="Spring Boot.CompetitionApplication" />
-      <item itemvalue="Application.OperatorController" />
-      <item itemvalue="Application.AntMerchantExpandIndirectImageUpload" />
-      <item itemvalue="Application.SaticScheduleTask" />
     </list>
     <recent_temporary>
       <list>
-        <item itemvalue="Application.SaticScheduleTask" />
         <item itemvalue="Application.AntMerchantExpandIndirectImageUpload" />
+        <item itemvalue="Application.WeChatUtil" />
+        <item itemvalue="Application.SaticScheduleTask" />
         <item itemvalue="Application.OperatorController" />
         <item itemvalue="JUnit.AccountApplicationTests.contextLoads" />
       </list>
@@ -443,17 +461,12 @@
           <expand>
             <path>
               <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
-              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@f1b22ae" type="7427dc5b:ServiceModel$ServiceGroupNode" />
+              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@89aeeae2" type="7427dc5b:ServiceModel$ServiceGroupNode" />
             </path>
             <path>
               <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
-              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@f1b22ae" type="7427dc5b:ServiceModel$ServiceGroupNode" />
-              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@d892f522" type="7427dc5b:ServiceModel$ServiceGroupNode" />
-            </path>
-            <path>
-              <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
-              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@f1b22ae" type="7427dc5b:ServiceModel$ServiceGroupNode" />
-              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@4c3d359f" type="7427dc5b:ServiceModel$ServiceGroupNode" />
+              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@89aeeae2" type="7427dc5b:ServiceModel$ServiceGroupNode" />
+              <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@5fffee20" type="7427dc5b:ServiceModel$ServiceGroupNode" />
             </path>
           </expand>
           <select />
@@ -551,55 +564,9 @@
       <workItem from="1698194264793" duration="36754000" />
       <workItem from="1698280994018" duration="26917000" />
       <workItem from="1698316299057" duration="8429000" />
-      <workItem from="1698325880893" duration="32759000" />
-    </task>
-    <task id="LOCAL-00039" summary="10.8">
-      <option name="closed" value="true" />
-      <created>1696749061197</created>
-      <option name="number" value="00039" />
-      <option name="presentableId" value="LOCAL-00039" />
-      <option name="project" value="LOCAL" />
-      <updated>1696749061197</updated>
-    </task>
-    <task id="LOCAL-00040" summary="10.8。1">
-      <option name="closed" value="true" />
-      <created>1696753188954</created>
-      <option name="number" value="00040" />
-      <option name="presentableId" value="LOCAL-00040" />
-      <option name="project" value="LOCAL" />
-      <updated>1696753188954</updated>
-    </task>
-    <task id="LOCAL-00041" summary="10.11">
-      <option name="closed" value="true" />
-      <created>1696932564568</created>
-      <option name="number" value="00041" />
-      <option name="presentableId" value="LOCAL-00041" />
-      <option name="project" value="LOCAL" />
-      <updated>1696932564568</updated>
-    </task>
-    <task id="LOCAL-00042" summary="10.12">
-      <option name="closed" value="true" />
-      <created>1696989564532</created>
-      <option name="number" value="00042" />
-      <option name="presentableId" value="LOCAL-00042" />
-      <option name="project" value="LOCAL" />
-      <updated>1696989564532</updated>
-    </task>
-    <task id="LOCAL-00043" summary="10.12">
-      <option name="closed" value="true" />
-      <created>1696990659189</created>
-      <option name="number" value="00043" />
-      <option name="presentableId" value="LOCAL-00043" />
-      <option name="project" value="LOCAL" />
-      <updated>1696990659189</updated>
-    </task>
-    <task id="LOCAL-00044" summary="10.11">
-      <option name="closed" value="true" />
-      <created>1696993684991</created>
-      <option name="number" value="00044" />
-      <option name="presentableId" value="LOCAL-00044" />
-      <option name="project" value="LOCAL" />
-      <updated>1696993684991</updated>
+      <workItem from="1698325880893" duration="54542000" />
+      <workItem from="1698455150596" duration="11287000" />
+      <workItem from="1698627531587" duration="2092000" />
     </task>
     <task id="LOCAL-00045" summary="10.12">
       <option name="closed" value="true" />
@@ -931,7 +898,49 @@
       <option name="project" value="LOCAL" />
       <updated>1698383333283</updated>
     </task>
-    <option name="localTasksCounter" value="88" />
+    <task id="LOCAL-00088" summary="商户认证">
+      <created>1698383355441</created>
+      <option name="number" value="00088" />
+      <option name="presentableId" value="LOCAL-00088" />
+      <option name="project" value="LOCAL" />
+      <updated>1698383355441</updated>
+    </task>
+    <task id="LOCAL-00089" summary="商户认证">
+      <created>1698383380121</created>
+      <option name="number" value="00089" />
+      <option name="presentableId" value="LOCAL-00089" />
+      <option name="project" value="LOCAL" />
+      <updated>1698383380121</updated>
+    </task>
+    <task id="LOCAL-00090" summary="商户认证">
+      <created>1698383394712</created>
+      <option name="number" value="00090" />
+      <option name="presentableId" value="LOCAL-00090" />
+      <option name="project" value="LOCAL" />
+      <updated>1698383394712</updated>
+    </task>
+    <task id="LOCAL-00091" summary="商户认证">
+      <created>1698383409580</created>
+      <option name="number" value="00091" />
+      <option name="presentableId" value="LOCAL-00091" />
+      <option name="project" value="LOCAL" />
+      <updated>1698383409580</updated>
+    </task>
+    <task id="LOCAL-00092" summary="商户认证">
+      <created>1698384180115</created>
+      <option name="number" value="00092" />
+      <option name="presentableId" value="LOCAL-00092" />
+      <option name="project" value="LOCAL" />
+      <updated>1698384180115</updated>
+    </task>
+    <task id="LOCAL-00093" summary="商户认证">
+      <created>1698394471402</created>
+      <option name="number" value="00093" />
+      <option name="presentableId" value="LOCAL-00093" />
+      <option name="project" value="LOCAL" />
+      <updated>1698394471402</updated>
+    </task>
+    <option name="localTasksCounter" value="94" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
diff --git a/cloud-server-management/pom.xml b/cloud-server-management/pom.xml
index ff89142..a02d0ad 100644
--- a/cloud-server-management/pom.xml
+++ b/cloud-server-management/pom.xml
@@ -229,6 +229,20 @@
             <version>4.38.10.ALL</version>
             <scope>compile</scope>
         </dependency>
+        <!-- 小程序统一服务 -->
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-miniapp</artifactId>
+            <version>4.5.0</version>
+        </dependency>
+        <!-- 微信 -->
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-pay</artifactId>
+            <version>4.5.0</version>
+        </dependency>
+
+
     </dependencies>
 
     <build>
diff --git a/cloud-server-management/src/main/java/com/dsh/ManagementApplication.java b/cloud-server-management/src/main/java/com/dsh/ManagementApplication.java
index aeb92e0..350becc 100644
--- a/cloud-server-management/src/main/java/com/dsh/ManagementApplication.java
+++ b/cloud-server-management/src/main/java/com/dsh/ManagementApplication.java
@@ -8,9 +8,11 @@
 import org.springframework.boot.web.servlet.ServletComponentScan;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Import;
 import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
 import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.stereotype.Component;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
 import javax.annotation.PostConstruct;
@@ -26,6 +28,7 @@
 @MapperScan("com.dsh.course.mapper")
 @ServletComponentScan
 @EnableScheduling
+@ComponentScan(basePackages = {"com.dsh.*","com.github.binarywang.wxpay.service"})
 public class ManagementApplication {
     public static void main(String[] args) {
         try{
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java
index 56043ed..b87b6b6 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dsh.guns.modular.system.model.OperatorAuth;
 import com.dsh.guns.modular.system.model.TTurn;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -13,6 +14,7 @@
  * @author administrator
  * @since 2023-09-19
  */
+@Mapper
 public interface TOperatorAuthMapper extends BaseMapper<OperatorAuth> {
 
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AntMerchantExpandIndirectImageUpload.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AntMerchantExpandIndirectImageUpload.java
index 077dad8..e1e40bb 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AntMerchantExpandIndirectImageUpload.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AntMerchantExpandIndirectImageUpload.java
@@ -6,12 +6,167 @@
 import com.alipay.api.CertAlipayRequest;
 import com.alipay.api.AlipayConfig;
 import com.alipay.api.request.AntMerchantExpandIndirectImageUploadRequest;
+import com.alipay.api.request.AntMerchantExpandIndirectZftCreateRequest;
 import com.alipay.api.response.AntMerchantExpandIndirectImageUploadResponse;
 import com.alipay.api.FileItem;
+import com.alipay.api.response.AntMerchantExpandIndirectZftCreateResponse;
+
 import java.util.Base64;
 import java.util.ArrayList;
 import java.util.List;
 
 public class AntMerchantExpandIndirectImageUpload {
 
+//    public static void main(String[] args) throws AlipayApiException {
+//        String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCSsmylIHe0j0pRQrB9p5ljryk9Qg2Z/JgIh+gtZES1TDo35YVw24aRRt7pkY7oHIZqpMRmSsWND1t63LVuNlpq532LG0iEJVJS53GzpRoHDD3iD01GmUoNjkCL36NCrbY0hTDDw7GZnYuJ8194Sss7OEoi7Mghg/XUreX4awwpWngTepCF7zs0S4YJQWyGY4JI6ooGraW23siBVY5MUI9XXLL6UKIExUfKe7zRihs8SrTHNnXtDT6EKYYo8P6M90Xuk173QsK2Xguk1FQ5Blh2ts7UvZVjP+WoQwDvrnqruve5kzDD9gwnAYUvhY66mtlxeub9nf5LLTtCliXeUZpNAgMBAAECggEAaPShSM9e9d9jM5p8PZqw4yJKZhqhMqAHgmsCUZ+gjPn52U4s198oez5ydDgBP85Q2XIDVpB+oPrw34mTgUQAEuaG6wTdMDannMscjYQ9h/dZOyjph+5ajjJNugWKgEVazF7S0e1sXtTaJhvrHVyd5UPTvwMb+Oa59q1okQC91cNa2vJzXiC7dfqWXZW/otmmOpcIcCN8dVDG3YhAuc5ZiT78Ca8x9GHWfw7cw1FRewRZlp/YnD2fJeWEesfvGCV36zCksrJrZz5MFMdf1Qh6+tHxK+E5sPNGdbooviTRnNWrsgyS9NcXFSQItOZQHsbLVID/Bs0kxkYPzbsfX1vRXQKBgQDsBDNZxpmSZJZ/4HfCOfHytWAkH/GHE3GOYH4TdHKLXfxRCinU23OtdrU2Sy8tBZvaajDKkWvMkjWT2w+56+z+xTprTf2PL/LS9zWCc8LPKbif6NfnwaOE8pIBrvkBskGKwbIE2fFVT0B4hNsR80TbPxvvAfCKjUj67qrTXSal+wKBgQCfHiuq/gLuSD2fuplzCwu0Rm/wr56bUpxhq9WNGaPOybR6EPq/wTKp0ow+f9uSuTm2NZhi/TWTXHOizy9vcZChRpj03a7NYwUOw36zvW7SHuF0Uhsp8TrZTyCj1XdhdLyJ9JMyL2DTRpGtLUR01ZSrdXPax7/Xu+OHubijqRD2VwKBgFqCveKm7AwdMS43OhYtPKE0d3tDGNARX9IXJSJ23Nqfn3zApgwwYKtcQ+BfcucUKJHZeX6lyC56v7tFHkHRvWBy6JVwIlZAMCJBla7CkCn8OQZyOCJzuy7oC6BDptDEuKfq4kdEAW4S54mQgabfoT9nc2H0X3fy+NLqpm5KYeDzAoGAYerlIILUNuKJ2aOxDpS7jSLTfB/20MqTpZ9i+UPQBE8oGv4b8Kjpjowc9dEkxDPsCe8Nac08jQSVvJkXLdOLF1QkiHtrOMU4tY8kh2OJsRCD2Vs1kCf8+QGyql+Q6Y43AAZcFsQFJ78Dorh6qhNNO/45X2cQ7aeYK0vlDgHaiF0CgYA4k9Q1tc8sU67TgT9cmMM6hG7/Rf3cU3PIdYuojs1EIG+1BJ7TlEiNAHoPtphlGFFeDP3SVnf59RfYH+BbLiz1JX9p/KFKRRkoXtfd6bySVWHvj4x2WiVpKFvHxhxc3LRubx0ryLGR/tpUJzxp+9luanU/WgSRFKiEZJZqFjjDzw==";
+//        String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCzq4BIE4gMdEXxIAAUbiMpSytkzp+LVLVsBtji87rFGfWUcnrr3NKftaw0WtRu+36d1nDVOWW4CmgsOPyj1GOFoTcJOR/BqyIriwyLxpuMS8qgOqGJZXi+W4Nw2AJL6iMVwY2eI8F1G10gACK2I9TNJRzHh3tMTA6ItysbGoekRDtn6Xrkh5V6cyHQjLw0Q6MJK/68XT6/LWzarDEEYrSnIevOydMY32ptAgm5fp/h08M2khCmI6CuMWKmc87dPpd2krGVTALqprAQvB74AIqO+5DE0fN4LoitOYXAtWDCEF4kHN0hQUygIEGCwtMgEVzkf92VLlCX35YtDhWd1yQIDAQAB";
+//        AlipayConfig alipayConfig = new AlipayConfig();
+//        alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
+//        alipayConfig.setAppId("2021004123692417");
+//        alipayConfig.setPrivateKey(privateKey);
+//        alipayConfig.setFormat("json");
+//        alipayConfig.setAlipayPublicKey(alipayPublicKey);
+//        alipayConfig.setCharset("UTF8");
+//        alipayConfig.setSignType("RSA2");
+//        AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
+//        // 这是一个1x1像素的图片流
+//        String imageBase64 = "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAEUlEQVR42mP4TyRgGFVIX4UAI/uOgGWVNeQAAAAASUVORK5CYII=";
+//        // 下列FileItem中也可用直接读取本地文件的方式来获取文件
+//        // FileItem imageContent = new FileItem("本地文件的绝对路径");
+//        AntMerchantExpandIndirectImageUploadRequest request = new AntMerchantExpandIndirectImageUploadRequest();
+//        FileItem imageContent = new FileItem("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/73d85c4b522f4077bda8d20f51439a33.JPG", Base64.getDecoder().decode(imageBase64));
+//        request.setImageContent(imageContent);
+//        request.setImageType("jpg");
+//        AntMerchantExpandIndirectImageUploadResponse response = alipayClient.execute(request);
+//        System.out.println(response.getBody());
+//        if (response.isSuccess()) {
+//            System.out.println("调用成功");
+//        } else {
+//            System.out.println("调用失败");
+//        }
+//    }
+    public static void main(String[] args) {
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+                "2021004124642138",
+                "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC8Jqz8JmnbbggpEqdIyimlk1z7uq0W/rexxMZsh5f7LjSafci1/Gce3USgp1L2rVxEJPfL85rYXiLwnqUUPqi1P5MoymOU9GtK99dzlbkU8IPYKJWYWCtdnq5IdGLf4Kcs6ghYvTwbNHw5vl5QevtfEW8kzYxPrYkfO1i38i8zT8OTLHP2T+lRbfRvLMgScv+kiCWlI4k411yeeLxWm5ikg3M3zMjTl05VOqVhp45N3aglGzMMN3b6Ior73PzBUARmMeDQ73YX0l24acIpy1qNYkjZnvs0ghxd2eowgYgmaJBpfRZfD8NDFe20g/RQSK+mdJslxcdaFjW4OVUU8rdvAgMBAAECggEAeq1Q/vtg7BTbN0SVVC2UaAQkjXGTKDoetccShXMHklv3KoA3HQmchxBIjeNrgbFZRolAFHgaj1cZuwAFrKSKRdtU7TTBJz8SsgfVL+UAj3mezZLwrytV4y3yfwV77nNBLVTO6mVASpC3KsNIJXt6aOsqJ7np8Y25qWZ9mzpKsk4CPaSSPMj9KXZN1ivjfd4rscT9jPnzuTtcUwH2DBn4ykDsc1bnwRO/6IUwo7FJGK5IY7WRrmYFPqdqXpfmKZAMzBoRLJtBp+sbBkSjXHjVpsEJJYTgYqVaTc+iX3SjLi0a/7GieVd2U8OWVVmvbdJgawKWK1kEjCDIOVjOUzFI0QKBgQDlq+LiDPSjt2l+eosR1w82LdfaAyhh5Bhg3C9Or7GoP/PHvk/R3TfDR8yx1JJk1tM2PNg7gsx0KBnu8IKJviBNNvZ8ftMYL3Z3L+4SvUlD7sN01TUA1vPtWsMGEc73eqYy8a88H+rhUTSm6eHiq2sZGLKid+/ShLf+pXvHE5YRqQKBgQDRuE0ltOFbJHdDjP1W9xCZWbx3mDsSs/pZv761CLRKY0TVGq3QgakBJpjSX7OYJ4Cg2j+8R8PJjHsE1pnrRbiF63ypbCm2j5knCqgqFpctAqQ4fQk0263GORw+9FRPuVbL1zyFzFJTeOkwpK+p61tA0JAdDnymUKLdDuNZAl1fVwKBgQDZGPJdFTwGqW/p43IjyfMSFqFr7gI1DkRRArEhIwi+7rzEOcv/p6l3SR5fln1PHpYGNdt73Xbf8awZ5XSvOW4VLvgt1EA8I1lK7p6PTie8NCzD+mmgwo9O9LVWvmyyGFiT3Ur0fYMruvQXNwuTlM+mqGbrFo42o8e8yLZJBuWbCQKBgQCn901KmuE3BzDCGIS7ByvzNkzdGD6Pzzf+c7UA91S2k2UIrNJzQbWjJ0+UhnOntFOwALy1RmEH5oyMpngmV/PexmlUpD2QathFzaI7+1XfBdOTLomWHS/Dp+/4d+Wi6JUcs2lU2/0/v4I8pFnQ5KB0e9ZAf17UMZcPJ6Jsopk4BwKBgQCNnSK8b1xG/WMOae2HaHDjgwRCFJn5gS3NsLcj0zdFb9VfpaoxBd2vpR/kNO3VCEM6pZMOAGTYxaaS/27Wbavbu+m5oAZs1IwCjAryM9jSevwF59AX+OxOi8r4UYiEXMdmlSoNseIAe8U8X1/ZCGuLiS1p7k7nSkkCLBvWnzNKfA==","json","GBK",
+                "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCzq4BIE4gMdEXxIAAUbiMpSytkzp+LVLVsBtji87rFGfWUcnrr3NKftaw0WtRu+36d1nDVOWW4CmgsOPyj1GOFoTcJOR/BqyIriwyLxpuMS8qgOqGJZXi+W4Nw2AJL6iMVwY2eI8F1G10gACK2I9TNJRzHh3tMTA6ItysbGoekRDtn6Xrkh5V6cyHQjLw0Q6MJK/68XT6/LWzarDEEYrSnIevOydMY32ptAgm5fp/h08M2khCmI6CuMWKmc87dPpd2krGVTALqprAQvB74AIqO+5DE0fN4LoitOYXAtWDCEF4kHN0hQUygIEGCwtMgEVzkf92VLlCX35YtDhWd1yQIDAQAB","RSA2");
+        AntMerchantExpandIndirectZftCreateRequest request = new AntMerchantExpandIndirectZftCreateRequest();
+        request.setBizContent("{" +
+                "  \"in_door_images\":[" +
+                "    \"c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg\"" +
+                "  ]," +
+                "  \"external_id\":\"105290059990194\"," +
+                "  \"merchant_type\":\"01\"," +
+                "  \"name\":\"蚂蚁金服(杭州)网络技术有限公司\"," +
+                "  \"alias_name\":\"支付宝\"," +
+                "  \"mcc\":\"B0007\"," +
+                "  \"cert_no\":\"9133010608210550XR\"," +
+                "  \"cert_type\":\"201\"," +
+                "  \"cert_image\":\"c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg\"," +
+                "  \"cert_image_back\":\"25a10d04-ca9c-41aa-896f-3e0904bec470.jpg\"," +
+                "  \"legal_name\":\"马云\"," +
+                "  \"legal_cert_no\":\"100100198811110001\"," +
+                "  \"legal_cert_front_image\":\"25a10d04-ca9c-41aa-896f-3e0904bec470.jpg\"," +
+                "  \"legal_cert_back_image\":\"25a10d04-ca9c-41aa-896f-3e0904bec470.jpg\"," +
+                "  \"business_address\":{" +
+                "    \"city_code\":\"371000\"," +
+                "    \"district_code\":\"371002\"," +
+                "    \"address\":\"万塘路18号黄龙时代广场B座\"," +
+                "    \"province_code\":\"370000\"," +
+                "    \"poiid\":\"B0FFIVU189\"," +
+                "    \"longitude\":\"120.760001\"," +
+                "    \"latitude\":\"60.270001\"" +
+                "  }," +
+                "  \"service_phone\":\"0571-85022088\"," +
+                "  \"contact_infos\":[" +
+                "    {" +
+                "      \"name\":\"张三\"," +
+                "      \"phone\":\"0571-85022088\"," +
+                "      \"mobile\":\"13888888888\"," +
+                "      \"email\":\"user@domain.com\"," +
+                "      \"id_card_no\":\"110000199001011234\"" +
+                "    }" +
+                "  ]," +
+                "  \"biz_cards\":[" +
+                "    {" +
+                "      \"account_holder_name\":\"张三\"," +
+                "      \"account_no\":\"621485*****10408\"," +
+                "      \"account_inst_province\":\"浙江省\"," +
+                "      \"account_inst_city\":\"杭州市\"," +
+                "      \"account_branch_name\":\"招商银行杭州高新支行\"," +
+                "      \"usage_type\":\"01\"," +
+                "      \"account_type\":\"DC\"," +
+                "      \"account_inst_name\":\"招商银行\"," +
+                "      \"account_inst_id\":\"CMB\"," +
+                "      \"bank_code\":\"103290003044\"" +
+                "    }" +
+                "  ]," +
+                "  \"qualifications\":[" +
+                "    {" +
+                "      \"industry_qualification_type\":\"B0099\"," +
+                "      \"industry_qualification_image\":\"c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg\"" +
+                "    }" +
+                "  ]," +
+                "  \"out_door_images\":[" +
+                "    \"c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg\"" +
+                "  ]," +
+                "  \"license_auth_letter_image\":\"c6c0c7a1-b9d5-4e5d-b9d4-9eed39f00e65.jpg\"," +
+                "  \"service\":[" +
+                "    \"当面付\"" +
+                "  ]," +
+                "  \"sign_time_with_isv\":\"2015-04-15\"," +
+                "  \"alipay_logon_id\":\"qwert@163.com\"," +
+                "  \"sites\":[" +
+                "    {" +
+                "      \"site_type\":\"01\"," +
+                "      \"site_url\":\"www.xxx.com\"," +
+                "      \"site_name\":\"XXX网站\"," +
+                "      \"account\":\"测试账号\"," +
+                "      \"password\":\"测试密码\"" +
+                "    }" +
+                "  ]," +
+                "  \"invoice_info\":{" +
+                "    \"auto_invoice\":true," +
+                "    \"accept_electronic\":true," +
+                "    \"tax_payer_qualification\":\"01\"," +
+                "    \"title\":\"蚂蚁金服(杭州)信息技术有限公司\"," +
+                "    \"tax_no\":\"51010482542598631219\"," +
+                "    \"tax_payer_valid\":\"19981011\"," +
+                "    \"address\":\"浙江省杭州市*****路蚂蚁金服\"," +
+                "    \"telephone\":\"0571****8888\"," +
+                "    \"bank_account\":\"1234567******678123\"," +
+                "    \"mail_name\":\"张*\"," +
+                "    \"mail_address\":{" +
+                "      \"city_code\":\"371000\"," +
+                "      \"district_code\":\"371002\"," +
+                "      \"address\":\"万塘路18号黄龙时代广场B座\"," +
+                "      \"province_code\":\"370000\"," +
+                "      \"poiid\":\"B0FFIVU189\"," +
+                "      \"longitude\":\"120.760001\"," +
+                "      \"latitude\":\"60.270001\"," +
+                "      \"type\":\"BUSINESS_ADDRESS\"" +
+                "    }," +
+                "    \"mail_telephone\":\"0571****8888\"," +
+                "    \"bank_name\":\"中国银行\"" +
+                "  }," +
+                "  \"cert_name\":\"xxxx小卖铺\"," +
+                "  \"binding_alipay_logon_id\":\"asdf@163.com\"," +
+                "  \"legal_cert_type\":\"100\"," +
+                "  \"default_settle_rule\":{" +
+                "    \"default_settle_type\":\"alipayAccount\"," +
+                "    \"default_settle_target\":\"myalipay@alipay.com\"" +
+                "  }" +
+                "}");
+        AntMerchantExpandIndirectZftCreateResponse response = null;
+        try {
+            response = alipayClient.execute(request);
+        } catch (AlipayApiException e) {
+            e.printStackTrace();
+        }
+        if(response.isSuccess()){
+            System.out.println("调用成功");
+        } else {
+            System.out.println("调用失败");
+        }
+    }
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
index cfe4f46..3751fd5 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
@@ -433,6 +433,15 @@
         data.setStatus(1);
         data.setState(1);
         operatorService.save(data);
+        // 添加运营商认证数据
+        OperatorUser operatorUser = new OperatorUser();
+        operatorUser.setUserId(user.getId());
+        operatorUser.setAlipay("支付宝");
+        operatorUser.setWechat("微信");
+        operatorUser.setAlipayType(3);
+        operatorUser.setWechatType(3);
+        operatorUser.setOperatorId(data.getId());
+        operatorUserService.save(operatorUser);
         user.setObjectId(data.getId());
         userService.updateById(user);
         if (SinataUtil.isNotEmpty(comArr)){
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
index 3b37641..8615a01 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
@@ -7,25 +7,31 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.R;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.course.feignClient.account.StoreStaffClient;
 import com.dsh.course.feignClient.account.model.TStoreStaff;
+import com.dsh.guns.config.UserExt;
 import com.dsh.guns.core.base.controller.BaseController;
+import com.dsh.guns.core.base.tips.SuccessTip;
 import com.dsh.guns.core.common.constant.factory.PageFactory;
 import com.dsh.guns.core.util.SinataUtil;
 import com.dsh.guns.modular.system.model.*;
 import com.dsh.guns.modular.system.service.*;
 import com.dsh.guns.modular.system.service.impl.TOperatorUserServiceImpl;
 import com.dsh.guns.modular.system.util.ResultUtil;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 
@@ -69,10 +75,20 @@
     @RequestMapping(value = "/listAll")
     @ResponseBody
     public Object listAll(String province,String city,String userName, String phone,Integer platform,Integer type,Integer state) {
-        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
-        List<Map<String,Object>> list =  operatorUserService.listAll(page,province,city,userName,phone,platform,type,state);
-        page.setRecords(list);
-        return super.packForBT(page);
+
+        List<Map<String,Object>> list =  operatorUserService.listAll(new Page<>(),province,city,userName,phone,platform,type,state);
+        return list;
+    }
+
+    @RequestMapping(value = "/mgtShopAuth", method = RequestMethod.POST)
+    @ApiOperation(value = "平台商户进件")
+    @ResponseBody
+    public Object mgtShopAuth() {
+        MgtShopAuthDto mgtShopAuthDto = new MgtShopAuthDto();
+        Integer userId = Objects.requireNonNull(UserExt.getUser()).getId();
+        mgtShopAuthDto.setUserId(userId);
+        operatorUserService.mgtShopAuth(mgtShopAuthDto);
+        return SUCCESS_TIP;
     }
 
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/MgtShopAuthDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/MgtShopAuthDto.java
new file mode 100644
index 0000000..6c9dca1
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/MgtShopAuthDto.java
@@ -0,0 +1,204 @@
+package com.dsh.guns.modular.system.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @ClassName Mgt
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/19 10:57
+ * @Version 1.0
+ */
+@Data
+public class MgtShopAuthDto implements Serializable {
+
+    @ApiModelProperty(value = "userId",hidden = true)
+    private Integer userId;
+
+    @ApiModelProperty(value = "审核id")
+    @NotNull(message = "审核id不能为空")
+    private String authId;
+    /**
+     * 商户id
+     */
+    @ApiModelProperty(value = "商户id")
+    private Long shopId;
+
+    @ApiModelProperty(value = "商户名称")
+    private String shopName;
+
+    @ApiModelProperty(value="店主姓名")
+    private String shopownerName;
+
+    @ApiModelProperty(value="店主联系方式")
+    private String shopownerPhone;
+
+    /**
+     * 主题类型1个人2企业
+     */
+    @ApiModelProperty(value = "主题类型1个人2企业")
+    private Integer mainType;
+    /**
+     * 营业执照商户名称
+     */
+    @ApiModelProperty(value = "营业执照商户名称")
+    private String blShopName;
+    /**
+     * 营业执照编号
+     */
+    @ApiModelProperty(value = "营业执照编号")
+    private String blNumber;
+    /**
+     * 营业执照法人姓名
+     */
+    @ApiModelProperty(value = "营业执照法人姓名")
+    private String blCorporateName;
+    /**
+     * 营业执照注册地址
+     */
+    @ApiModelProperty(value = "营业执照注册地址")
+    private String blRegisteredAddress;
+
+    @ApiModelProperty(value = "营业执照开始时间")
+    private String blBusinessStartTime;
+
+    @ApiModelProperty(value = "营业执照截止日期")
+    private String blBusinessDeanline;
+
+    @ApiModelProperty(value = "营业执照期限长期标记0否1是")
+    private Integer blBusinessFoeverFlag;
+    /**
+     * 营业执照图片
+     */
+    @ApiModelProperty(value = "营业执照图片")
+    private String blImage;
+    /**
+     * 法人姓名
+     */
+    @ApiModelProperty(value = "法人姓名")
+    private String lpCorporateName;
+    /**
+     * 法人身份证号
+     */
+    @ApiModelProperty(value = "法人身份证号")
+    private String lpIdCard;
+
+    @ApiModelProperty(value = "法人身份证地址")
+    private String lpIdAddress;
+    /**
+     * 法人身份证开始日期
+     */
+    @ApiModelProperty(value = "法人身份证开始日期")
+    private String lpIcStartDate;
+    /**
+     * 法人身份证有效日期
+     */
+    @ApiModelProperty(value = "法人身份证有效日期")
+    private String lpIcEndDate;
+
+    @ApiModelProperty(value = "法人身份证长期标记0否1是")
+    private Integer lpIcForeverFlag;
+    /**
+     * 法人身份证正面
+     */
+    @ApiModelProperty(value = "法人身份证正面")
+    private String lpIcFront;
+    /**
+     * 法人身份证背面
+     */
+    @ApiModelProperty(value = "法人身份证背面")
+    private String lpIcBack;
+
+    @ApiModelProperty(value = "法人手机号")
+    private String lpMobilePhone;
+
+    @ApiModelProperty(value = "法人邮箱")
+    private String lpContactEmail;
+    /**
+     * 结算账户类型1对公2对私
+     */
+    @ApiModelProperty(value = "结算账户类型1对公2对私")
+    private String settlementAccountType;
+    /**
+     * 开户行
+     */
+    @ApiModelProperty(value = "开户行")
+    private String saBank;
+    /**
+     * 开户名称
+     */
+    @ApiModelProperty(value = "开户名称")
+    private String saAccountName;
+    /**
+     * 开户所在省
+     */
+    @ApiModelProperty(value = "开户所在省")
+    private String saBankProvinceCode;
+    /**
+     * 开户所在市
+     */
+    @ApiModelProperty(value = "开户所在市")
+    private String saBankCityCode;
+    /**
+     * 开户行全称
+     */
+    @ApiModelProperty(value = "开户行全称")
+    private String saBankName;
+    /**
+     * 银行卡号
+     */
+    @ApiModelProperty(value = "银行卡号")
+    private String saNumber;
+
+    @ApiModelProperty(value = "补充资料")
+    private String baPics;
+
+    @ApiModelProperty(value = "补充说明")
+    private String baDesc;
+
+    @ApiModelProperty(value = "法人是否受益人 0否1是")
+    private Integer owner;
+
+    /**
+     * 受益人姓名
+     */
+    @ApiModelProperty(value = "受益人姓名")
+    private String uboName;
+    /**
+     * 受益人身份证号
+     */
+    @ApiModelProperty(value = "受益人身份证号")
+    private String uboIdCard;
+    /**
+     * 受益人身份证开始日期
+     */
+    @ApiModelProperty(value = "受益人身份证开始日期")
+    private String uboIcStartDate;
+    /**
+     * 受益人身份证有效日期
+     */
+    @ApiModelProperty(value = "受益人身份证有效日期")
+    private String uboIcEndDate;
+    /**
+     * 受益人身份证正面
+     */
+    @ApiModelProperty(value = "受益人身份证正面")
+    private String uboIcFront;
+    /**
+     * 受益人身份证背面
+     */
+    @ApiModelProperty(value = "受益人身份证背面")
+    private String uboIcBack;
+
+    /**
+     * 受益人身份证背面
+     */
+    @ApiModelProperty(value = "受益人居住地址")
+    private String uboIcAddress;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorUserService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorUserService.java
index 586d672..25a4bbf 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorUserService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorUserService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsh.guns.core.dataScope.DataScope;
+import com.dsh.guns.modular.system.model.MgtShopAuthDto;
 import com.dsh.guns.modular.system.model.OperatorUser;
 import com.dsh.guns.modular.system.model.User;
 import org.apache.ibatis.annotations.Param;
@@ -15,5 +16,14 @@
  */
 public interface IOperatorUserService extends IService<OperatorUser> {
 
-    List<Map<String, Object>> listAll(Page<Map<String, Object>> page, String province, String city, String userName, String phone, Integer platform, Integer type, Integer state);
+    List<Map<String, Object>> listAll( Page<Map<String, Object>> page,String province, String city, String userName, String phone, Integer platform, Integer type, Integer state);
+
+    /**
+     * @description  商户进件
+     * @author  jqs
+     * @date    2023/6/19 11:02
+     * @param mgtShopAuthDto
+     * @return  void
+     */
+    void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto);
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java
index 50405ea..fea1d50 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java
@@ -1,17 +1,30 @@
 package com.dsh.guns.modular.system.service.impl;
 
+import com.alipay.api.domain.Shop;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.course.dto.StudentSearch;
 import com.dsh.course.dto.TStudentDto;
 import com.dsh.course.feignClient.account.AppUserClient;
+import com.dsh.course.mapper.TOperatorAuthMapper;
+import com.dsh.course.mapper.TOperatorMapper;
 import com.dsh.course.mapper.TOperatorUserMapper;
 import com.dsh.course.mapper.TSiteMapper;
-import com.dsh.guns.modular.system.model.OperatorUser;
-import com.dsh.guns.modular.system.model.TSite;
-import com.dsh.guns.modular.system.model.TStudent;
+import com.dsh.course.util.UUIDUtil;
+import com.dsh.guns.core.exception.ServiceException;
+import com.dsh.guns.modular.system.model.*;
+import com.dsh.guns.modular.system.service.IOperatorAuthService;
 import com.dsh.guns.modular.system.service.IOperatorUserService;
 import com.dsh.guns.modular.system.service.ITStudentService;
+import com.dsh.guns.modular.system.util.WeChatUtil;
+import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
+import com.github.binarywang.wxpay.service.EcommerceService;
+import com.github.binarywang.wxpay.service.WxPayService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.commons.util.IdUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -29,8 +42,80 @@
 @Service
 public class TOperatorUserServiceImpl extends ServiceImpl<TOperatorUserMapper, OperatorUser> implements IOperatorUserService {
 
+    @Autowired
+    private IOperatorAuthService operatorAuthService;
+    @Autowired
+    private TOperatorMapper operatorMapper;
+    @Autowired
+    private WeChatUtil weChatUtil;
+
+
     @Override
     public List<Map<String, Object>> listAll(Page<Map<String, Object>> page, String province, String city, String userName, String phone, Integer platform, Integer type, Integer state) {
         return this.baseMapper.listAll(page,province,city,userName,phone,platform,type,state);
     }
+    @Override
+    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) {
+        mgtShopAuthDto.setUserId(1);
+        mgtShopAuthDto.setAuthId("1");
+        mgtShopAuthDto.setShopId(1L);
+        mgtShopAuthDto.setShopName("商户名称");
+        mgtShopAuthDto.setShopownerName("店主姓名");
+        mgtShopAuthDto.setShopownerPhone("17628220929");
+        mgtShopAuthDto.setMainType(1);
+        mgtShopAuthDto.setBlShopName("营业执照商户名称");
+        mgtShopAuthDto.setBlNumber("营业执照编号");
+        mgtShopAuthDto.setBlCorporateName("营业执照法人姓名");
+        mgtShopAuthDto.setBlRegisteredAddress("营业执照注册地址");
+        mgtShopAuthDto.setBlBusinessStartTime("2022-02-11");
+        mgtShopAuthDto.setBlBusinessDeanline("2025-05-09");
+        mgtShopAuthDto.setBlBusinessFoeverFlag(0);
+        mgtShopAuthDto.setBlImage("营业执照图片");
+        mgtShopAuthDto.setLpCorporateName("法人姓名");
+        mgtShopAuthDto.setLpIdCard("513701199910156123");
+        mgtShopAuthDto.setLpIdAddress("法人身份证地址");
+        mgtShopAuthDto.setLpIcStartDate("2020-05-05");
+        mgtShopAuthDto.setLpIcEndDate("2025-05-05");
+        mgtShopAuthDto.setLpIcForeverFlag(0);
+        mgtShopAuthDto.setLpIcFront("法人身份证正面");
+        mgtShopAuthDto.setLpIcBack("法人身份证背面");
+        mgtShopAuthDto.setLpMobilePhone("17628220929");
+        mgtShopAuthDto.setLpContactEmail("法人邮箱");
+        mgtShopAuthDto.setSettlementAccountType("2");
+        mgtShopAuthDto.setSaBank("开户行");
+        mgtShopAuthDto.setSaAccountName("开户名称");
+        mgtShopAuthDto.setSaBankProvinceCode("开户所在省");
+        mgtShopAuthDto.setSaBankCityCode("开户所在市");
+        mgtShopAuthDto.setSaBankName("开户行全称");
+        mgtShopAuthDto.setSaNumber("银行卡号");
+        mgtShopAuthDto.setOwner(1);
+        mgtShopAuthDto.setUboName("ck");
+        mgtShopAuthDto.setUboIdCard("513701199910156123");
+        mgtShopAuthDto.setUboIcStartDate("2020-05-05");
+        mgtShopAuthDto.setUboIcEndDate("2025-05-05");
+        mgtShopAuthDto.setUboIcFront("受益人身份证正面");
+        mgtShopAuthDto.setUboIcBack("受益人身份证正面");
+        mgtShopAuthDto.setUboIcAddress("受益人居住地址");
+        OperatorAuth shopAuthentication = new OperatorAuth();
+
+        if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){
+            mgtShopAuthDto.setBlBusinessDeanline("长期");
+        }
+        if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){
+            mgtShopAuthDto.setLpIcEndDate("长期");
+        }
+        BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
+        TOperator operator = operatorMapper.selectById(shopAuthentication.getOperatorId());
+        String applyNumber = UUIDUtil.getNativeUUID().replace("-","");
+        shopAuthentication.setOutBizNo(applyNumber);
+        ApplymentsResult applymentsResult;
+        try {
+            applymentsResult = weChatUtil.ecommerceApply(shopAuthentication,applyNumber,operator);
+        } catch (Exception e) {
+            throw new ServiceException(e.getMessage());
+        }
+        shopAuthentication.setOrderStatus("AUDITING");
+        shopAuthentication.setOrderNo(applymentsResult.getApplymentId());
+        operatorAuthService.saveOrUpdate(shopAuthentication);
+    }
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OBSUploadUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OBSUploadUtil.java
index 4c723d0..3bc838d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OBSUploadUtil.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OBSUploadUtil.java
@@ -1,6 +1,7 @@
 package com.dsh.guns.modular.system.util;
 
 import com.obs.services.ObsClient;
+import com.obs.services.model.ObsObject;
 import com.obs.services.model.PutObjectResult;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -34,4 +35,12 @@
         String objectUrl = putObjectResult.getObjectUrl();
         return objectUrl;
     }
+
+    public static InputStream getOBSStream(String key){
+        // 创建ObsClient实例
+        ObsClient obsClient = new ObsClient(accessKey, accessKeySecret, endPoint);
+        ObsObject object = obsClient.getObject(bucketName, key);
+        // 待上传的本地文件路径,需要指定到具体的文件名
+        return object.getObjectContent();//获得指定文件的输入流
+    }
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/WeChatUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/WeChatUtil.java
new file mode 100644
index 0000000..b85e134
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/WeChatUtil.java
@@ -0,0 +1,168 @@
+package com.dsh.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.api.domain.Shop;
+import com.dsh.course.util.UUIDUtil;
+import com.dsh.guns.core.util.ToolUtil;
+import com.dsh.guns.modular.system.controller.util.UploadUtil;
+import com.dsh.guns.modular.system.model.OperatorAuth;
+import com.dsh.guns.modular.system.model.TOperator;
+import com.dsh.guns.modular.system.model.User;
+import com.dsh.guns.modular.system.service.IUserService;
+import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsRequest;
+import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
+import com.github.binarywang.wxpay.bean.media.ImageUploadResult;
+import com.github.binarywang.wxpay.service.EcommerceService;
+import com.github.binarywang.wxpay.service.MerchantMediaService;
+import com.github.binarywang.wxpay.service.WxPayService;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.http.*;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 微信工具类
+ */
+@Component
+public class WeChatUtil {
+
+    private  WxPayService wxService;
+
+
+
+    /**
+     * @description  电商二级商户进件(提交申请单)
+     * @author  jqs
+     * @date    2023/8/11 10:04
+     * @param shopAuthentication
+     * @param applyNumber
+     * @param operator
+     * @return  ApplymentsResult
+     */
+
+
+    public  ApplymentsResult ecommerceApply(OperatorAuth shopAuthentication, String applyNumber, TOperator operator) throws Exception {
+
+        EcommerceService ecommerceService = wxService.getEcommerceService();
+        MerchantMediaService merchantMediaService = wxService.getMerchantMediaService();
+        ApplymentsRequest request = new ApplymentsRequest();
+        //生成提交类
+        request.setOutRequestNo(applyNumber);
+        if("ENTERPRISE".equals(shopAuthentication.getBodyType())){
+            request.setOrganizationType("2");
+        }else{
+            request.setOrganizationType("4");
+        }
+        //营业执照
+        ApplymentsRequest.BusinessLicenseInfo business_license_info = new ApplymentsRequest.BusinessLicenseInfo();
+        InputStream blImageIO = OBSUploadUtil.getOBSStream(shopAuthentication.getBusinessPicture().replace("https://obs.ap-southeast-4.myhuaweicloud.com/",""));
+        ImageUploadResult blImageIR = merchantMediaService.imageUploadV3(blImageIO,applyNumber+"blimage.jpg");
+        business_license_info.setBusinessLicenseCopy(blImageIR.getMediaId());
+        blImageIO.close();
+        business_license_info.setBusinessLicenseNumber(shopAuthentication.getBusinessNumber());
+        business_license_info.setMerchantName(shopAuthentication.getBusinessName());
+        business_license_info.setLegalPerson(shopAuthentication.getLegalPerson());
+        business_license_info.setCompanyAddress(shopAuthentication.getRegisterAddress());
+        List<String> businessTimeList = new ArrayList<>();
+        businessTimeList.add(0,shopAuthentication.getBusinessTerm());
+        businessTimeList.add(1,shopAuthentication.getBusinessEnd());
+        if(businessTimeList!=null&&businessTimeList.size()>1){
+            String businessTime = JSONObject.toJSONString(businessTimeList);
+            business_license_info.setBusinessTime(businessTime);
+        }
+        request.setBusinessLicenseInfo(business_license_info);
+        //法人证件
+        request.setIdDocType("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
+        ApplymentsRequest.IdCardInfo id_card_info = new ApplymentsRequest.IdCardInfo();
+        InputStream lpIcFrontIO = OBSUploadUtil.getOBSStream(shopAuthentication.getLegalFront().replace("https://obs.ap-southeast-4.myhuaweicloud.com/",""));
+        ImageUploadResult lpIcFrontIR = merchantMediaService.imageUploadV3(lpIcFrontIO,applyNumber+"lpIcFront.jpg");
+        id_card_info.setIdCardCopy(lpIcFrontIR.getMediaId());
+        lpIcFrontIO.close();
+        InputStream lpIcBackIO = OBSUploadUtil.getOBSStream(shopAuthentication.getLegalBack().replace("https://obs.ap-southeast-4.myhuaweicloud.com/",""));
+        ImageUploadResult lpIcBackIR = merchantMediaService.imageUploadV3(lpIcBackIO,applyNumber+"lpIcBack.jpg");
+        id_card_info.setIdCardNational(lpIcBackIR.getMediaId());
+        lpIcBackIO.close();
+        id_card_info.setIdCardName(shopAuthentication.getLegalPerson());
+        id_card_info.setIdCardNumber(shopAuthentication.getLeagleNumber());
+        if("ENTERPRISE".equals(shopAuthentication.getBodyType())){
+            id_card_info.setIdCardAddress(shopAuthentication.getLegalAddress());
+        }
+        id_card_info.setIdCardValidTimeBegin(shopAuthentication.getLegalTerm());
+        id_card_info.setIdCardValidTime(shopAuthentication.getLegalEnd());
+        request.setIdCardInfo(id_card_info);
+        //企业填写
+        if("ENTERPRISE".equals(shopAuthentication.getBodyType())){
+            //受益人
+            if("true".equals(shopAuthentication.getIsBeneficiary())){
+                request.setOwner(true);
+            }else{
+                request.setOwner(false);
+                List<ApplymentsRequest.UboInfo> ubo_info_list = new ArrayList<>();
+                ApplymentsRequest.UboInfo uboInfo = new ApplymentsRequest.UboInfo();
+                uboInfo.setUboIdDocType("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
+                InputStream uboIcFrontIO = OBSUploadUtil.getOBSStream(shopAuthentication.getBeneficiaryFront().replace("https://obs.ap-southeast-4.myhuaweicloud.com/",""));
+                ImageUploadResult uboIcFrontIR = merchantMediaService.imageUploadV3(uboIcFrontIO,applyNumber+"uboIcFront.jpg");
+                uboInfo.setUboIdDocCopy(uboIcFrontIR.getMediaId());
+                uboIcFrontIO.close();
+                InputStream uboIcBackIO = OBSUploadUtil.getOBSStream(shopAuthentication.getBeneficiaryBack().replace("https://obs.ap-southeast-4.myhuaweicloud.com/",""));
+                ImageUploadResult uboIcBackIR = merchantMediaService.imageUploadV3(uboIcBackIO,applyNumber+"uboIcBack.jpg");
+                uboInfo.setUboIdDocCopyBack(uboIcBackIR.getMediaId());
+                uboIcBackIO.close();
+                uboInfo.setUboIdDocName(shopAuthentication.getBeneficiary());
+                uboInfo.setUboIdDocNumber(shopAuthentication.getBeneficiaryNumber());
+                uboInfo.setUboIdDocAddress(shopAuthentication.getBeneficiaryAddress());
+                uboInfo.setUboIdDocPeriodBegin(shopAuthentication.getBeneficiaryTerm());
+                ubo_info_list.add(uboInfo);
+                request.setUboInfoList(ubo_info_list);
+            }
+        }
+        //结算账户信息
+        ApplymentsRequest.AccountInfo accountInfo = new ApplymentsRequest.AccountInfo();
+        if(shopAuthentication.getAccountType().equals(1)){
+            accountInfo.setBankAccountType("74");
+        }else{
+            accountInfo.setBankAccountType("75");
+        }
+        accountInfo.setAccountBank(shopAuthentication.getBank());
+        accountInfo.setAccountName(shopAuthentication.getAccountName());
+        accountInfo.setBankAddressCode(shopAuthentication.getCityCode());
+        accountInfo.setBankName(shopAuthentication.getBankName());
+        accountInfo.setAccountNumber(shopAuthentication.getBankNumber());
+        request.setAccountInfo(accountInfo);
+        ApplymentsRequest.ContactInfo contactInfo = new ApplymentsRequest.ContactInfo();
+        contactInfo.setContactType("65");
+        contactInfo.setContactName(shopAuthentication.getLegalPerson());
+        contactInfo.setContactIdCardNumber(shopAuthentication.getLeagleNumber());
+        contactInfo.setMobilePhone(shopAuthentication.getLegalPhone());
+        contactInfo.setContactEmail(shopAuthentication.getLegalEmail());
+        request.setContactInfo(contactInfo);
+        //店铺信息
+        ApplymentsRequest.SalesSceneInfo salesSceneInfo = new ApplymentsRequest.SalesSceneInfo();
+        salesSceneInfo.setStoreName(operator.getName());
+//        InputStream storeQrCodeIO = OBSUploadUtils.getOSSInputStream(operator.getShopCode().replace("https://hongruitang.oss-cn-beijing.aliyuncs.com/",""));
+//        ImageUploadResult storeQrCodeIR = merchantMediaService.imageUploadV3(storeQrCodeIO,applyNumber+"storeQrCode.jpg");
+//        salesSceneInfo.setStoreQrCode(storeQrCodeIR.getMediaId());
+//        storeQrCodeIO.close();
+        request.setSalesSceneInfo(salesSceneInfo);
+        request.setMerchantShortname(operator.getName());
+//        request.setBusinessAdditionPics(shopAuthentication.getBaPics());
+//        request.setBusinessAdditionDesc(shopAuthentication.getBaDesc());
+        return ecommerceService.createApply(request);
+    }
+   
+}
diff --git a/cloud-server-management/src/main/resources/TOperatorUserMapper.xml b/cloud-server-management/src/main/resources/TOperatorUserMapper.xml
index 224b958..7f7f162 100644
--- a/cloud-server-management/src/main/resources/TOperatorUserMapper.xml
+++ b/cloud-server-management/src/main/resources/TOperatorUserMapper.xml
@@ -2,4 +2,9 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.dsh.course.mapper.TOperatorUserMapper">
 
+    <select id="listAll" resultType="java.util.Map">
+        select t1.name as name ,t2.name as userName,t2.phone as phone  from t_operator t1
+        left join sys_user t2 t1.id = t1.objectId and t2.objectType = 2
+
+    </select>
 </mapper>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html
index 5d092a7..5434436 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html
@@ -183,7 +183,59 @@
 
 
 
+            <div class="row">
+                <div class="col-lg-6" style="">
+                    <div class="form-group" >
+                        <label class="col-sm-4 control-label" >
+                            结算账户类型:<input type="radio" name="type" value="1">对公 <input type="radio" name="type" value="2">对私
+                        </label>
+                    </div>
 
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label">开户银行:</label>
+                        <div class="col-sm-9">
+                            <select style="width: 300px" class="form-control" id="bank" name="bank">
+                                <option value="">选择开户银行</option>
+
+                            </select>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label">开户所在地:</label>
+                        <div class="col-sm-9" style="display: flex">
+                            <select style="width: 150px" class="form-control" id="pCode" onchange="TSite.oneChange(this)" name="bank">
+                                <option value="">选择省</option>
+                                @for(obj in provinceList){
+                                <option value="${obj.code}">${obj.name}</option>
+                                @}
+                            </select>
+                            <select style="width: 150px" class="form-control" id="cCode" name="bank">
+                                <option value="">选择市区</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label">*银行卡号:</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="backNumber" name="backNumber" type="text">
+                        </div>
+                    </div>
+                </div>
+                <div class="col-lg-6" style="">
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label">*开户名称:</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="backUserName"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*开户行全称:</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="backName"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+                </div>
+            </div>
 
 
 
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
index 31f91ba..491d4db 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
@@ -1,113 +1,491 @@
-@layout("/common/_container.html"){
-<div class="row">
-    <div class="col-sm-12">
-        <div class="ibox float-e-margins">
-            <div class="ibox-title">
-                <h5>运营商商户管理</h5>
-            </div>
-            <div class="ibox-content">
-                <div class="row row-lg">
-                    <div class="col-sm-12">
-                        <div class="row">
-                            <div class="col-sm-3">
-                                <div class="input-group">
-                                    <div class="input-group-btn open">
-                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
-                                            所在省
-                                        </button>
-                                    </div>
-                                    <select class="form-control" id="pCode" onchange="TSite.oneChange(this)">
-                                        <option value="">选择省</option>
-                                        @for(obj in provinceList){
-                                        <option value="${obj.code}">${obj.name}</option>
-                                        @}
-                                    </select>
-                                </div>
-                            </div>
-                            <div class="col-sm-3">
-                                <div class="input-group">
-                                    <div class="input-group-btn open">
-                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
-                                            所在市
-                                        </button>
-                                    </div>
-                                    <select class="form-control" id="cCode">
-                                        <option value="">请先选择省</option>
-                                    </select>
-                                </div>
-                            </div>
-                            <div class="col-sm-3">
-                                <#NameCon id="name" name="管理员姓名:" />
-                            </div>
-                            <div class="col-sm-3">
-                                <#NameCon id="phone" name="管理员手机号:" />
-                            </div>
-                            <div class="col-sm-3">
-                                <div class="input-group">
-                                    <div class="input-group-btn open">
-                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
-                                            认证平台
-                                        </button>
-                                    </div>
-                                    <select style="width: 300px" class="form-control" id="platform" name = "platform">
-                                        <option value="">全部</option>
-                                        <option value="1">微信</option>
-                                        <option value="2">支付宝</option>
-                                    </select>
-                                </div>
-                            </div>
-                            <div class="col-sm-3">
-                                <div class="input-group">
-                                    <div class="input-group-btn open">
-                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
-                                            认证类型
-                                        </button>
-                                    </div>
-                                    <select style="width: 300px" class="form-control" id="type" name = "platform">
-                                        <option value="">全部</option>
-                                        <option value="1">法人</option>
-                                        <option value="2">个人</option>
-                                    </select>
-                                </div>
-                            </div>
+<!DOCTYPE html>
+<html lang="zh">
+<head>
+    <meta charset="UTF-8" />
+    <title>amis demo</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta
+            name="viewport"
+            content="width=device-width, initial-scale=1, maximum-scale=1"
+    />
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <link rel="stylesheet" href="${ctxPath}/sdk/sdk.css" />
+    <link rel="stylesheet" href="${ctxPath}/sdk/helper.css" />
+    <link rel="stylesheet" href="${ctxPath}/sdk/iconfont.css" />
+    <!-- 这是默认主题所需的,如果是其他主题则不需要 -->
+    <!-- 从 1.1.0 开始 sdk.css 将不支持 IE 11,如果要支持 IE11 请引用这个 css,并把前面那个删了 -->
+    <!-- <link rel="stylesheet" href="sdk-ie11.css" /> -->
+    <!-- 不过 amis 开发团队几乎没测试过 IE 11 下的效果,所以可能有细节功能用不了,如果发现请报 issue -->
+    <style>
+        html,
+        body,
+        .app-wrapper {
+            position: relative;
+            width: 100%;
+            height: 100%;
+            margin: 0;
+            padding: 0;
+        }
+    </style>
+</head>
+<body>
+<div id="root" class="app-wrapper"></div>
+<script src="${ctxPath}/sdk/sdk.js"></script>
+<script type="text/javascript">
+    (function () {
+        let amis = amisRequire('amis/embed');
+        // 通过替换下面这个配置来生成不同页面
+        let amisJSON = {
+            "type": "page",
+            "title": "",
+            "regions": [
+                "body",
+                "toolbar",
+                "header"
+            ],
+            "body": [
+                {
+                    "type": "crud",
+                    "id": "u:e103c7434df8",
+                    "syncLocation": false,
+                    "api": {
+                        "method": "post",
+                        "url": "/operatorUser/listAll",
+                        "messages": {
+                        }
+                    },
+                    "columns": [
+                        {
+                            "label": "所在市",
+                            "type": "text",
+                            "name": "city",
+                            "id": "u:71aded278293"
+                        },
+                        {
+                            "label": "管理员姓名",
+                            "type": "text",
+                            "name": "adminName",
+                            "id": "u:22cab5368b85",
+                            "classNameExpr": "<%= data.courseName === '总计' ? 'bg-danger' : '' %>",
+                            "placeholder": "-"
+                        },
+                        {
+                            "label": "管理员手机号",
+                            "type": "text",
+                            "name": "adminPhone",
+                            "id": "u:100d93c3a7af",
+                            "classNameExpr": "<%= data.courseName === '总计' ? 'bg-danger' : '' %>",
+                            "placeholder": "-"
+                        },
+                        {
+                            "label": "认证平台",
+                            "type": "mapping",
+                            "name": "ptType",
+                            "id": "u:0529135bd40c",
+                            "placeholder": "-",
+                            "map": {
+                                "1": "支付宝",
+                                "2": "微信"
+                            }
+                        },
+                        {
+                            "label": "认证类型",
+                            "type": "mapping",
+                            "name": "regisType",
+                            "id": "u:89e54c565da1",
+                            "placeholder": "-",
+                            "map": {
+                                "1": "法人",
+                                "2": "个人"
+                            }
+                        },
+                        {
+                            "label": "分账比例",
+                            "type": "text",
+                            "name": "percent",
+                            "id": "u:9f3c838b4dce",
+                            "placeholder": "-",
+                            "classNameExpr": "<%= data.courseName === '总计' ? 'bg-danger' : '' %>"
+                        },
+                        {
+                            "type": "mapping",
+                            "name": "isPass",
+                            "label": "审核状态",
+                            "id": "u:89e54c565da1",
+                            "placeholder": "-",
+                            "map": {
+                                "1": "待审核",
+                                "2": "审核中",
+                                "3": "已通过",
+                                "4": "已拒绝"
+                            }
+                        },
+                        {
+                            "type": "operation",
+                            "id": "u:d69a8d60da29",
+                            "buttons": [
+                                {
+                                    "type": "button",
+                                    "label": "详情",
+                                    "onEvent": {
+                                        "click": {
+                                            "actions": [
+                                                {
+                                                    "args": {
+                                                        "options": {
+                                                            "silent": false
+                                                        },
+                                                        "api": {
+                                                            "url": "/ball/toRegister/$id",
+                                                            "method": "get"
+                                                        }
+                                                    },
+                                                    "actionType": "ajax"
+                                                }
+                                            ]
+                                        }
+                                    },
+                                    "id": "u:ed2016be790a",
+                                    "class": "link",
+                                    "level": "link"
+                                }
+                            ]
+                        }
+                    ],
+                    "bulkActions": [
+                        {
+                            "type": "button",
+                            "level": "danger",
+                            "label": "批量删除",
+                            "actionType": "ajax",
+                            "confirmText": "确定要删除?",
+                            "api": "/xxx/batch-delete",
+                            "id": "u:e179a3daeee8"
+                        },
+                        {
+                            "type": "button",
+                            "label": "批量编辑",
+                            "actionType": "dialog",
+                            "dialog": {
+                                "title": "批量编辑",
+                                "size": "md",
+                                "body": {
+                                    "type": "form",
+                                    "api": "/xxx/bacth-edit",
+                                    "body": [
+                                        {
+                                            "label": "字段1",
+                                            "text": "字段1",
+                                            "type": "input-text"
+                                        }
+                                    ]
+                                }
+                            },
+                            "id": "u:4bbe1e5df5ed"
+                        }
+                    ],
+                    "itemActions": [
+                        {
+                            "label": "分账比例",
+                            "type": "button",
+                            "id": "u:0120816fbcb0",
+                            "level": "info",
+                            "onEvent": {
+                                "click": {
+                                    "actions": [
+                                        {
+                                            "args": {
+                                            },
+                                            "dialog": {
+                                                "type": "dialog",
+                                                "title": "弹框标题",
+                                                "body": [
+                                                    {
+                                                        "type": "form",
+                                                        "title": "表单",
+                                                        "body": [
+                                                            {
+                                                                "label": "测试分账id",
+                                                                "type": "input-text",
+                                                                "name": "id",
+                                                                "id": "u:64ad701b83c3"
+                                                            },
+                                                            {
+                                                                "label": "支付宝分账比例",
+                                                                "type": "input-text",
+                                                                "name": "ali",
+                                                                "id": "u:91534896ba54"
+                                                            },
+                                                            {
+                                                                "label": "微信分账比例",
+                                                                "type": "input-text",
+                                                                "name": "text",
+                                                                "id": "u:4649d90555b1"
+                                                            }
+                                                        ],
+                                                        "api": {
+                                                            "url": "/ball/resSet",
+                                                            "method": "get"
+                                                        },
+                                                        "id": "u:01f28ccf4fb8"
+                                                    }
+                                                ],
+                                                "showCloseButton": true,
+                                                "showErrorMsg": true,
+                                                "showLoading": true,
+                                                "id": "u:073191c211be"
+                                            },
+                                            "actionType": "dialog"
+                                        }
+                                    ],
+                                    "weight": 0
+                                }
+                            }
+                        }
+                    ],
+                    "filterSettingSource": [
+                        "id",
+                        "customerName",
+                        "simName",
+                        "address",
+                        "industryId",
+                        "email",
+                        "createBy",
+                        "updateBy",
+                        "remark",
+                        "customerCode"
+                    ],
+                    "features": [
+                        "create",
+                        "filter",
+                        "bulkDelete",
+                        "view",
+                        "delete",
+                        "update",
+                        "bulkUpdate"
+                    ],
+                    "filterColumnCount": 3,
+                    "filterEnabledList": [
+                    ],
+                    "headerToolbar": [
+                        {
+                            "label": "新增",
+                            "type": "button",
+                            "actionType": "dialog",
+                            "level": "primary",
+                            "dialog": {
+                                "title": "新增",
+                                "body": {
+                                    "type": "form",
+                                    "api": {
+                                        "method": "post",
+                                        "url": "/ball/getRegisterList",
+                                        "messages": {
+                                        }
+                                    },
+                                    "body": [
+                                        {
+                                            "type": "input-text",
+                                            "name": "city",
+                                            "label": "所在市"
+                                        },
+                                        {
+                                            "type": "input-text",
+                                            "name": "adminName",
+                                            "label": "管理员姓名"
+                                        },
+                                        {
+                                            "type": "input-text",
+                                            "name": "adminPhone",
+                                            "label": "管理员手机号"
+                                        },
+                                        {
+                                            "type": "select",
+                                            "name": "ptType",
+                                            "label": "认证平台"
+                                        },
+                                        {
+                                            "type": "select",
+                                            "name": "regisType",
+                                            "label": "认证类型"
+                                        },
+                                        {
+                                            "type": "input-text",
+                                            "name": "percent",
+                                            "label": "分账比例"
+                                        },
+                                        {
+                                            "type": "select",
+                                            "name": "isPass",
+                                            "label": "审核状态"
+                                        },
+                                        {
+                                            "type": "input-operation"
+                                        }
+                                    ]
+                                }
+                            },
+                            "id": "u:7ab8ef9ba27f"
+                        },
+                        "bulkActions"
+                    ],
+                    "filter": {
+                        "title": "查询条件",
+                        "columnCount": 3,
+                        "mode": "horizontal",
+                        "body": [
+                            {
+                                "type": "input-city",
+                                "label": "城市选择",
+                                "name": "cityCode",
+                                "allowDistrict": false,
+                                "id": "u:16db9fd9fe42",
+                                "mode": "horizontal",
+                                "horizontal": {
+                                    "left": 3,
+                                    "right": 9
+                                },
+                                "className": ""
+                            },
+                            {
+                                "type": "input-date-range",
+                                "label": "日期范围",
+                                "name": "times",
+                                "id": "u:5ea0ab341c9e",
+                                "embed": false,
+                                "format": "YYYY-MM-DD",
+                                "inputFormat": "YYYY-MM-DD"
+                            },
+                            {
+                                "type": "input-text",
+                                "label": "管理员姓名",
+                                "name": "adminName",
+                                "id": "u:528726820775"
+                            },
+                            {
+                                "type": "select",
+                                "label": "认证平台",
+                                "name": "ptType",
+                                "options": [
+                                    {
+                                        "label": "全部",
+                                        "value": ""
+                                    },
+                                    {
+                                        "label": "支付宝",
+                                        "value": "1"
+                                    },
+                                    {
+                                        "label": "微信",
+                                        "value": "2"
+                                    }
+                                ],
+                                "id": "u:3f0a0a09ae17",
+                                "multiple": false
+                            },
+                            {
+                                "type": "select",
+                                "label": "认证类型",
+                                "name": "regisType",
+                                "options": [
+                                    {
+                                        "label": "全部",
+                                        "value": "全部"
+                                    },
+                                    {
+                                        "label": "法人",
+                                        "value": "1"
+                                    },
+                                    {
+                                        "label": "个人",
+                                        "value": "2"
+                                    }
+                                ],
+                                "id": "u:62ad230ae3e4",
+                                "multiple": false
+                            },
+                            {
+                                "type": "select",
+                                "label": "审核状态",
+                                "name": "isPass",
+                                "options": [
+                                    {
+                                        "label": "全部",
+                                        "value": "全部"
+                                    },
+                                    {
+                                        "label": "待审核",
+                                        "value": "1"
+                                    },
+                                    {
+                                        "label": "审核中",
+                                        "value": "2"
+                                    },
+                                    {
+                                        "label": "已通过",
+                                        "value": "3"
+                                    },
+                                    {
+                                        "label": "已拒绝",
+                                        "value": "4"
+                                    }
+                                ],
+                                "id": "u:b5833dda16af",
+                                "multiple": false
+                            }
+                        ],
+                        "id": "u:2c92f31a25d0",
+                        "name": "select1",
+                        "rules": [
+                        ]
+                    },
+                    "perPageAvailable": [
+                        10,
+                        20,
+                        50,
+                        100
+                    ],
+                    "messages": {
+                    },
+                    "footerToolbar": [
+                        {
+                            "type": "statistics",
+                            "align": "left"
+                        },
+                        {
+                            "type": "pagination",
+                            "align": "left"
+                        },
+                        {
+                            "type": "switch-per-page",
+                            "tpl": "内容",
+                            "align": "left"
+                        }
+                    ],
+                    "columnsTogglable": "auto",
+                    "pageField": "",
+                    "perPageField": "",
+                    "alwaysShowPagination": true,
+                    "loadDataOnce": true,
+                    "perPage": 5,
+                    "combineNum": 3
+                }
+            ],
+            "id": "u:b14a93e2aeb3"
+        };
 
-                            <div class="col-sm-3">
-                                <div class="input-group">
-                                    <div class="input-group-btn open">
-                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
-                                            审核状态
-                                        </button>
-                                    </div>
-                                    <select class="form-control" id="state" >
-                                        <option value="">全部</option>
-                                        <option value="1">待审核</option>
-                                        <option value="2">审核中</option>
-                                        <option value="2">已审核</option>
-                                        <option value="2">已拒绝</option>
-                                    </select>
-                                </div>
-                            </div>
-                            <div class="col-sm-3">
-                                <#button name="搜索" icon="fa-search" clickFun="TSite.search()"/>
-                                <#button name="重置" icon="fa-trash" clickFun="TSite.resetSearch()" space="true"/>
-                            </div>
-                        </div>
-                        <div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
-                            <#button name="分账比例" icon="fa-plus" clickFun="TSite.proportion()"/>
-                        </div>
-                        <#table id="TSiteTable"/>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-<script src="${ctxPath}/modular/system/operatorUser/operatorUser.js"></script>
-<script>
-    laydate.render({
-        elem: '#createTime'
-        ,range: true
-        ,lang:"en"
-    });
+        let amisScoped = amis.embed('#root', amisJSON);
+
+
+    })();
+
+    function test(){
+        console.log("测试成功")
+    }
+
+    var myButton = document.getElementById("ttt");
+    myButton.addEventListener("click",test);
 </script>
-@}
+
+</body>
+</html>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js b/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js
index e2573c6..20495c9 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js
@@ -564,4 +564,15 @@
     var carPhoto = new $WebUpload("img");
     carPhoto.setUploadBarId("progressBar");
     carPhoto.init();
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/operatorUser/mgtShopAuth", function (data) {
+        Feng.success("添加成功!");
+        window.parent.Course.table.refresh();
+        CourseInfo.close();
+    }, function (data) {
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.start();
+
 });
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js b/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
index f5c972f..fc0280a 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
@@ -37,6 +37,7 @@
 TSite.addSubmit = function(){
 
     var bodyType = $("input[name='bodyType']:checked").val();
+    var accountType = $("input[name='accountType']:checked").val();
     var type = $("input[name='type']:checked").val();
     if (bodyType=="" || null == type){
         Feng.error("请选择主体类型");
@@ -121,7 +122,27 @@
         Feng.error("请上传法人身份证背面照");
         return;
     }
-
+// todo 确定银行列表
+    if ("" == $("#bank").val() || null == $("#bank").val()){
+        Feng.error("请选择银行");
+        return;
+    }
+    if ("" == $("#pCode").val() || null == $("#pCode").val()){
+        Feng.error("请选择开户所在省");
+        return;
+    }if ("" == $("#cCode").val() || null == $("#cCode").val()){
+        Feng.error("请选择开户所在市");
+        return;
+    }if ("" == $("#backNumber").val() || null == $("#backNumber").val()){
+        Feng.error("请输入银行卡号");
+        return;
+    }if ("" == $("#backUserName").val() || null == $("#backUserName").val()){
+        Feng.error("请输入开户名称");
+        return;
+    }if ("" == $("#backName").val() || null == $("#backName").val()){
+        Feng.error("请输入开户行全称");
+        return;
+    }
     if(type=="ENTERPRISE"){
         if ("" == $("#bName").val() || null == $("#bName").val()){
             Feng.error("请输入受益人姓名");
@@ -206,6 +227,15 @@
     ajax.set("legalAddress",        $("#lIDAddress").val()    );
     ajax.set("legalFront",        $("#IDCardImg").val()    );
     ajax.set("legalBack",        $("#IDCardImg1").val()    );
+    ajax.set("accountType",        accountType    );
+    ajax.set("bank",        $("#bank").val()    );
+    ajax.set("accountName",        $("#backUserName").val()    );
+    ajax.set("province",        $('#pCode option:selected').text()   );
+    ajax.set("provinceCode",        $("#pCode").val()    );
+    ajax.set("city",        $('#cCode option:selected').text()    );
+    ajax.set("cityCode",        $("#cCode").val()    );
+    ajax.set("bankName",        $("#backName").val()    );
+    ajax.set("bankNumber",        $("#backNumber").val()    );
     ajax.set("isBeneficiary",        type    );
     ajax.set("beneficiary",        $("#bName").val()    );
     ajax.set("beneficiaryPhone",        $("#bPhone").val()    );

--
Gitblit v1.7.1