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