From 638e7deedf01e2fa276d38f2215003e43996c54f Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期一, 09 六月 2025 21:07:42 +0800 Subject: [PATCH] 开发中台接口对接 --- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/impl/UserWithdrawalServiceImpl.java | 47 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java | 44 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java | 42 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java | 25 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java | 118 ++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java | 255 +++++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/ElectronicLedgerService.java | 31 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java | 77 - DriverQYTTravel/guns-admin/pom.xml | 106 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 56 - DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java | 25 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java | 36 DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java | 48 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java | 58 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java | 2 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java | 65 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java | 107 ++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java | 15 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/schedule/UserWithdrawalSchedule.java | 51 - DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java | 40 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java | 176 +++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java | 5 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java | 261 +++-- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java | 48 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java | 14 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java | 31 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/UserWithdrawalController.java | 336 ------ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java | 160 --- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java | 63 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java | 54 - /dev/null | 51 - DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java | 75 - DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java | 70 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/UserWithdrawalService.java | 27 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/impl/ElectronicLedgerServiceImpl.java | 48 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java | 77 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java | 251 +++++ 37 files changed, 1,727 insertions(+), 1,268 deletions(-) diff --git a/DriverQYTTravel/guns-admin/pom.xml b/DriverQYTTravel/guns-admin/pom.xml index 7c4211c..e070cdd 100644 --- a/DriverQYTTravel/guns-admin/pom.xml +++ b/DriverQYTTravel/guns-admin/pom.xml @@ -207,58 +207,92 @@ <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> </dependency> - + <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> - + <!--中台sdk--> + <dependency> + <groupId>com.zhongtai</groupId> + <artifactId>zhongtai-sdk</artifactId> + <version>1.0.0</version> + <scope>system</scope> + <systemPath>${pom.basedir}/lib/openApiClient-1.0.0.jar</systemPath> + </dependency> + <!--单点登录sdk--> + <dependency> + <groupId>com.cas</groupId> + <artifactId>cas-sdk</artifactId> + <version>3.0.5</version> + <scope>system</scope> + <systemPath>${pom.basedir}/lib/cas-client-oncon-3.0.5.jar</systemPath> + </dependency> + <dependency> + <groupId>com.cas</groupId> + <artifactId>cas-sdk</artifactId> + <version>1.2.2</version> + <scope>system</scope> + <systemPath>${pom.basedir}/lib/cas-client-oncon-core-1.2.2.jar</systemPath> + </dependency> + <dependency> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + <version>3.1</version> + </dependency> + <dependency> + <groupId>it.sauronsoftware</groupId> + <artifactId>base64</artifactId> + <version>1.3.1</version> + <scope>system</scope> + <systemPath>${pom.basedir}/lib/javabase64-1.3.1.jar</systemPath> + </dependency> </dependencies> - + <build> - + <!--打包jar包方式--> - <!--<plugins>--> - <!--<plugin>--> - <!--<groupId>org.springframework.boot</groupId>--> - <!--<artifactId>spring-boot-maven-plugin</artifactId>--> - <!--<configuration>--> - <!--<fork>true</fork><!– 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart –>--> - <!--</configuration>--> - <!--</plugin>--> - <!--</plugins>--> - - <!--打包war包引入本地jar的打包方式--> <plugins> <plugin> - <!--<groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-war-plugin</artifactId> - <configuration> - <!– 设置成false,否则检查web.xml是否存在。因为springboot是没有web.xml的 –> - <failOnMissingWebXml>false</failOnMissingWebXml> - <!–打包后的项目名–> - <!–<warName>example</warName>–> - <!–<webResources>–> - <!–<resource>–> - <!–<!–把本地lib里面的jar复制到lib–>–> - <!–<directory>${project.basedir}/lib</directory>–> - <!–<targetPath>WEB-INF/lib/</targetPath>–> - <!–<includes>–> - <!–<include>**/*.jar</include>–> - <!–</includes>–> - <!–</resource>–> - <!–</webResources>–> - </configuration>--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> - <includeSystemScope>true</includeSystemScope> + <fork>true</fork><!-- 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart --> </configuration> </plugin> </plugins> - - + + <!--打包war包引入本地jar的打包方式--> + <!-- <plugins>--> + <!-- <plugin>--> + <!-- <!–<groupId>org.apache.maven.plugins</groupId>--> + <!-- <artifactId>maven-war-plugin</artifactId>--> + <!-- <configuration>--> + <!-- <!– 设置成false,否则检查web.xml是否存在。因为springboot是没有web.xml的 –>--> + <!-- <failOnMissingWebXml>false</failOnMissingWebXml>--> + <!-- <!–打包后的项目名–>--> + <!-- <!–<warName>example</warName>–>--> + <!-- <!–<webResources>–>--> + <!-- <!–<resource>–>--> + <!-- <!–<!–把本地lib里面的jar复制到lib–>–>--> + <!-- <!–<directory>${project.basedir}/lib</directory>–>--> + <!-- <!–<targetPath>WEB-INF/lib/</targetPath>–>--> + <!-- <!–<includes>–>--> + <!-- <!–<include>**/*.jar</include>–>--> + <!-- <!–</includes>–>--> + <!-- <!–</resource>–>--> + <!-- <!–</webResources>–>--> + <!-- </configuration>–>--> + <!-- <groupId>org.springframework.boot</groupId>--> + <!-- <artifactId>spring-boot-maven-plugin</artifactId>--> + <!-- <configuration>--> + <!-- <includeSystemScope>true</includeSystemScope>--> + <!-- </configuration>--> + <!-- </plugin>--> + <!-- </plugins>--> + + <resources> <resource> <directory>lib</directory> diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java index 03be4f3..9bafa3c 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java @@ -1,17 +1,13 @@ package com.stylefeng.guns; -import com.stylefeng.guns.modular.system.util.GDFalconUtil; import org.apache.http.client.HttpClient; import org.apache.http.config.SocketConfig; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.context.annotation.Bean; @@ -38,15 +34,12 @@ private final static Logger logger = LoggerFactory.getLogger(GunsApplication.class); public static void main(String[] args) { - try{ + try { SpringApplication.run(GunsApplication.class, args); - }catch (Exception e){ - e.printStackTrace(); + logger.info("GunsApplication is success!"); + } catch (Exception e) { + logger.error("GunsApplication启动异常", e); } - logger.info("GunsApplication is success!"); - -// GDFalconUtil gdFalconUtil = new GDFalconUtil(); -// gdFalconUtil.init();//初始化猎鹰服务 } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java index f287bb9..e410e10 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java @@ -8,9 +8,11 @@ import com.google.code.kaptcha.impl.DefaultKaptcha; import com.google.code.kaptcha.util.Config; import com.stylefeng.guns.config.properties.GunsProperties; -import com.stylefeng.guns.core.intercept.RestApiInteceptor; import com.stylefeng.guns.core.listener.ConfigListener; import com.stylefeng.guns.core.xss.XssFilter; +import edu.yale.its.tp.cas.client.filter.OnconMDWebCasFilter; +import org.jasig.cas.client.session.SingleSignOutFilter; +import org.jasig.cas.client.session.SingleSignOutHttpSessionListener; import org.springframework.aop.Advisor; import org.springframework.aop.support.DefaultPointcutAdvisor; import org.springframework.aop.support.JdkRegexpMethodPointcut; @@ -21,11 +23,12 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.context.request.RequestContextListener; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import java.util.Properties; /** @@ -36,94 +39,93 @@ */ @Configuration public class WebConfig extends WebMvcConfigurerAdapter { - - @Autowired - private GunsProperties gunsProperties; - - /** - * 增加swagger的支持 - */ - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - if (gunsProperties.getSwaggerOpen()) { - registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); - } - } - - /** - * 增加对rest api鉴权的spring mvc拦截器 - */ - @Override - public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/api/**") - .excludePathPatterns("/api/placeOrder/notifyUrl") - .excludePathPatterns("/api/placeOrder/notifyUrlOne"); - } - - /** - * druidServlet注册 - */ - @Bean - public ServletRegistrationBean druidServletRegistration() { - ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet()); - registration.addUrlMappings("/druid/*"); - return registration; - } - - /** - * druid监控 配置URI拦截策略 - */ - @Bean - public FilterRegistrationBean druidStatFilter() { - FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); - //添加过滤规则. - filterRegistrationBean.addUrlPatterns("/*"); - //添加不需要忽略的格式信息. - filterRegistrationBean.addInitParameter( - "exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*"); - //用于session监控页面的用户名显示 需要登录后主动将username注入到session里 - filterRegistrationBean.addInitParameter("principalSessionName", "username"); - return filterRegistrationBean; - } - - /** - * druid数据库连接池监控 - */ - @Bean - public DruidStatInterceptor druidStatInterceptor() { - return new DruidStatInterceptor(); - } - - @Bean - public JdkRegexpMethodPointcut druidStatPointcut() { - JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut(); - String patterns = "com.stylefeng.guns.modular.*.service.*"; - //可以set多个 - druidStatPointcut.setPatterns(patterns); - return druidStatPointcut; - } - - /** - * druid数据库连接池监控 - */ - @Bean - public BeanTypeAutoProxyCreator beanTypeAutoProxyCreator() { - BeanTypeAutoProxyCreator beanTypeAutoProxyCreator = new BeanTypeAutoProxyCreator(); - beanTypeAutoProxyCreator.setTargetBeanType(DruidDataSource.class); - beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor"); - return beanTypeAutoProxyCreator; - } - - /** - * druid 为druidStatPointcut添加拦截 - * - * @return - */ + + @Autowired + private GunsProperties gunsProperties; + + /** + * 增加swagger的支持 + */ + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + if (gunsProperties.getSwaggerOpen()) { + registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); + registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); + } + } + + /** + * 增加对rest api鉴权的spring mvc拦截器 + */ + //舍弃原有的权限校验功能 +// @Override +// public void addInterceptors(InterceptorRegistry registry) { +// registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/api/**"); +// } + + /** + * druidServlet注册 + */ + @Bean + public ServletRegistrationBean druidServletRegistration() { + ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet()); + registration.addUrlMappings("/druid/*"); + return registration; + } + + /** + * druid监控 配置URI拦截策略 + */ + @Bean + public FilterRegistrationBean druidStatFilter() { + FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); + //添加过滤规则. + filterRegistrationBean.addUrlPatterns("/*"); + //添加不需要忽略的格式信息. + filterRegistrationBean.addInitParameter( + "exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*"); + //用于session监控页面的用户名显示 需要登录后主动将username注入到session里 + filterRegistrationBean.addInitParameter("principalSessionName", "username"); + return filterRegistrationBean; + } + + /** + * druid数据库连接池监控 + */ + @Bean + public BeanTypeAutoProxyCreator beanTypeAutoProxyCreator() { + BeanTypeAutoProxyCreator beanTypeAutoProxyCreator = new BeanTypeAutoProxyCreator(); + beanTypeAutoProxyCreator.setTargetBeanType(DruidDataSource.class); + beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor"); + return beanTypeAutoProxyCreator; + } + + /** + * druid 为druidStatPointcut添加拦截 + * + * @return + */ @Bean public Advisor druidStatAdvisor() { return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor()); } + + @Bean + public JdkRegexpMethodPointcut druidStatPointcut() { + JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut(); + String patterns = "com.stylefeng.guns.modular.*.service.*"; + //可以set多个 + druidStatPointcut.setPatterns(patterns); + return druidStatPointcut; + } + + /** + * druid数据库连接池监控 + */ + @Bean + public DruidStatInterceptor druidStatInterceptor() { + return new DruidStatInterceptor(); + } /** * xssFilter注册 @@ -158,19 +160,78 @@ */ @Bean public DefaultKaptcha kaptcha() { - Properties properties = new Properties(); - properties.put("kaptcha.border", "no"); - properties.put("kaptcha.border.color", "105,179,90"); - properties.put("kaptcha.textproducer.font.color", "blue"); - properties.put("kaptcha.image.width", "125"); - properties.put("kaptcha.image.height", "45"); - properties.put("kaptcha.textproducer.font.size", "45"); - properties.put("kaptcha.session.key", "code"); - properties.put("kaptcha.textproducer.char.length", "4"); - properties.put("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑"); - Config config = new Config(properties); - DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); - defaultKaptcha.setConfig(config); - return defaultKaptcha; + Properties properties = new Properties(); + properties.put("kaptcha.border", "no"); + properties.put("kaptcha.border.color", "105,179,90"); + properties.put("kaptcha.textproducer.font.color", "blue"); + properties.put("kaptcha.image.width", "125"); + properties.put("kaptcha.image.height", "45"); + properties.put("kaptcha.textproducer.font.size", "45"); + properties.put("kaptcha.session.key", "code"); + properties.put("kaptcha.textproducer.char.length", "4"); + properties.put("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑"); + Config config = new Config(properties); + DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); + defaultKaptcha.setConfig(config); + return defaultKaptcha; } + + + /********************黔云通单点登录拦截器**********************/ + +// @Override +// public void addViewControllers(ViewControllerRegistry registry) { +// registry.addViewController("/index").setViewName("index"); +// } + @Bean + public FilterRegistrationBean getOnconMDWebCasFilter() { + OnconMDWebCasFilter onconMDWebCasFilter = new OnconMDWebCasFilter(); + + FilterRegistrationBean registrationBean = new FilterRegistrationBean(); + registrationBean.setFilter(onconMDWebCasFilter); + List<String> urlPatterns = new ArrayList<String>(); + urlPatterns.add("/*");//拦截路径,可以添加多个 + registrationBean.setUrlPatterns(urlPatterns); + registrationBean.setOrder(2); + + registrationBean.addInitParameter("oncon.com.security.urls", "/api/**"); + registrationBean.addInitParameter("erp.si-tech.com.cn.noCheckUrl", "/index,/ajaxgetticket.jsp,/ssoAutologin.jsp,/login.jsp,/nologingetuserinfo.jsp,/toautologin.jsp,/autologin.jsp,/remotelogin.jsp,/toremotelogin.jsp,/js/**,/remoteloginajax.jsp"); + registrationBean.addInitParameter("erp.si-tech.com.cn.nologinstatus", "/*"); + registrationBean.addInitParameter("erp.si-tech.com.cn.loginstatus", "/login.jsp,/nologingetuserinfo.jsp"); + registrationBean.addInitParameter("com.oncon.sso.urlparams.nologin", "code,code2"); + + registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.loginUrl", "https://testsso1.teamshub.com/login"); + registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.validateUrl", "https://testsso1.teamshub.com/serviceValidate"); + registrationBean.addInitParameter("com.oncon.md.loginUrl", "https://testsso1.teamshub.com/sso-session/login"); + registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.serverName", "172.26.200.34:9180"); + registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.casServiceUrlForStatic", "http://172.26.200.34:9180/sso-springboot-client/getUserInfo"); + registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.loginatUrlForStatic", ""); + registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.loginFailedUrlForStatic", "http://172.26.200.34:9180/error.html"); + + + return registrationBean; + } + + @Bean + public FilterRegistrationBean getSingleSignOutFilter() { + SingleSignOutFilter singleSignOutFilter = new SingleSignOutFilter(); + FilterRegistrationBean registrationBean = new FilterRegistrationBean(); + registrationBean.setFilter(singleSignOutFilter); + List<String> urlPatterns = new ArrayList<String>(); + urlPatterns.add("/api/**");//拦截路径,可以添加多个 + registrationBean.setUrlPatterns(urlPatterns); + registrationBean.setOrder(1); + + registrationBean.addInitParameter("wmall.flag", "false"); + + return registrationBean; + } + + @Bean + public ServletListenerRegistrationBean<SingleSignOutHttpSessionListener> getSingleSignOutHttpSessionListener() { + ServletListenerRegistrationBean<SingleSignOutHttpSessionListener> servletListenerRegistrationBean + = new ServletListenerRegistrationBean<>(); + servletListenerRegistrationBean.setListener(new SingleSignOutHttpSessionListener()); + return servletListenerRegistrationBean; + } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java index 6eeeafb..be84eaa 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java @@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.model.TBank; import com.stylefeng.guns.modular.account.model.TBankNext; @@ -11,22 +10,12 @@ import com.stylefeng.guns.modular.account.service.ITBankNextService; import com.stylefeng.guns.modular.account.service.ITBankService; import com.stylefeng.guns.modular.account.service.UserWithdrawalService; -import com.stylefeng.guns.modular.account.util.Base64Util; -import com.stylefeng.guns.modular.cloudPayment.example.BalanceAcctExample; -import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample; -import com.stylefeng.guns.modular.cloudPayment.example.SettleAcctExample; -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq; -import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq; import com.stylefeng.guns.modular.system.model.BankCard; import com.stylefeng.guns.modular.system.model.Driver; -import com.stylefeng.guns.modular.system.model.ElectronicLedger; import com.stylefeng.guns.modular.system.model.UserWithdrawal; import com.stylefeng.guns.modular.system.service.IBankCardService; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.unionpay.upyzt.resp.BalanceAcctStoreResp; -import com.unionpay.upyzt.resp.SettleAcctDeleteResp; -import com.unionpay.upyzt.resp.SettleAcctResp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -36,14 +25,14 @@ import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.List; -import java.util.Objects; @Slf4j @Api(tags = "司机绑卡-提现") @@ -146,25 +135,8 @@ return ResultUtil.error(e.getMessage()); } } - - @ResponseBody - @RequestMapping(value = "/getCode", method = RequestMethod.POST) - @ApiOperation(value = "获取验证码", tags = {"司机端-获取验证码"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), - }) - @Transactional(isolation = Isolation.READ_UNCOMMITTED,rollbackFor = Exception.class,propagation = Propagation.REQUIRED) - public ResultUtil getCode(String phone){ - try { - CusApplicationExample.smsCode(phone); - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.error(e.getMessage()); - } - } - - + + @ResponseBody @RequestMapping(value = "/getBindCardList", method = RequestMethod.POST) @ApiOperation(value = "获取银行卡", tags = {"司机端-获取银行卡"}, notes = "") diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java index fde5115..430aae0 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java @@ -2,23 +2,17 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.service.ITEnterpriseWithdrawalService; import com.stylefeng.guns.modular.account.service.UserWithdrawalService; -import com.stylefeng.guns.modular.account.unionpay.*; -import com.stylefeng.guns.modular.cloudPayment.example.*; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq; +import com.stylefeng.guns.modular.account.unionpay.GetOpenBodySig; +import com.stylefeng.guns.modular.account.unionpay.NotifyDemo; +import com.stylefeng.guns.modular.account.unionpay.QrCodeConfiguration; +import com.stylefeng.guns.modular.account.unionpay.Util; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; -import com.stylefeng.guns.modular.enums.PaymentTypeEnum; -import com.stylefeng.guns.modular.system.model.*; +import com.stylefeng.guns.modular.system.model.Reassign; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.resp.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -35,7 +29,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.math.BigDecimal; -import java.text.SimpleDateFormat; import java.util.*; /** @@ -523,148 +516,5 @@ // return "/WEB-INF/views/jsp/payResult.jsp"; } -// @ResponseBody -// @RequestMapping(value = "/api/placeOrder/appPayRecharge", method = RequestMethod.POST) -// @ApiOperation(value = "支付充值", tags = {"支付充值"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) - public static void app(){ - DepositReq depositReq = new DepositReq(); - depositReq.setOutOrderNo(ToolUtil.getRandomString(32)); - //- - depositReq.setAmount(60000); // 支付金额 - depositReq.setBalanceAcctId("2008429872055963229"); - depositReq.setDepositType("1"); - depositReq.setPaymentType(PaymentTypeEnum.CUP_APP.getCode()); - //- - depositReq.setPaymentTradeNo("88890525-135"); - depositReq.setPaymentSucceededAt(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())); - //- - depositReq.setOrderNo("88890525-135"); - depositReq.setOrderAmount(1L); - depositReq.setProductName("充值金额"); - depositReq.setProductCount(1); - depositReq.setNotifyUrl("http://zhentonggongsi.com:8010/api/placeOrder/notifyUrlOne"); - DepositResp depositResp = null; - try { - depositResp = DepositExample.create(depositReq); - } catch (UpyztException e) { - log.error(e.getMessage()); - e.printStackTrace(); - } - System.err.println(depositResp); - log.info("支付充值成功:{}",depositResp); - } - -// @ResponseBody -// @RequestMapping(value = "/api/placeOrder/queryApp", method = RequestMethod.POST) -// @ApiOperation(value = "支付充值查询", tags = {"支付充值查询"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) - public void queryApp(){ - DepositResp balanceAcctResp = null; - try { - balanceAcctResp = DepositExample.retrieveById("2008429872055963229"); - System.err.println(balanceAcctResp); - } catch (UpyztException e) { - log.error("电子账簿查询失败:{}",e.getMessage()); - e.printStackTrace(); - } - log.info("电子账簿查询完成=========:{}",balanceAcctResp); - } - - -// @ResponseBody -// @RequestMapping(value = "/api/placeOrder/fenZhang", method = RequestMethod.POST) -// @ApiOperation(value = "分账", tags = {"分账"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) - public void fenZhang(){ - log.info("平台分账到司机电子账簿========="); - AllocationReq allocationReq = userWithdrawalService.createAllocationReq("2007942595542621717", "2007942320163036794", 1,"123456"); - allocationReq.setOrderNo("202304041039329889826910"); - allocationReq.setPassword("123456"); - allocationReq.setOrderAmount(1L); - allocationReq.setProductName("测试退货5(1111)"); - allocationReq.setProductCount(1); - AllocationResp allocationResp = null; - try { - allocationResp = AllocationExample.create(allocationReq); - } catch (UpyztException e) { - log.error("平台分账到司机电子账簿失败:{}",e.getMessage()); - e.printStackTrace(); - } - log.info("平台分账到司机电子账簿完成=========:{}",allocationResp); - } -// @ResponseBody -// @RequestMapping(value = "/api/placeOrder/dianZi", method = RequestMethod.POST) -// @ApiOperation(value = "电子账簿查询", tags = {"电子账簿查询"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) - public void dianZi(){ - BalanceAcctListResp balanceAcctListResp = null; - try { - BalanceAcctReq balanceAcctReq = new BalanceAcctReq(); - balanceAcctReq.setMchId("1008427961477222943"); - balanceAcctListResp = BalanceAcctExample.retrieveByUserId(balanceAcctReq); - System.err.println(balanceAcctListResp); - } catch (UpyztException e) { - log.error("电子账簿查询失败:{}",e.getMessage()); - e.printStackTrace(); - } - log.info("电子账簿查询完成=========:{}",balanceAcctListResp); - } - -// @ResponseBody -// @RequestMapping(value = "/api/placeOrder/tiXian", method = RequestMethod.POST) -// @ApiOperation(value = "提现", tags = {"提现"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) - public void tiXian(){ - WithdrawalResp balanceAcctResp = null; - try { - - /*params.put("out_order_no", withdrawalReq.getOutOrderNo()); - params.put("amount", withdrawalReq.getAmount()); - params.put("balance_acct_id", withdrawalReq.getBalanceAcctId()); - params.put("bank_acct_no", Upyzt.encryptField(withdrawalReq.getBankAcctNo())); - params.put("password", Upyzt.encryptField(withdrawalReq.getPassword()));*/ - WithdrawalReq withdrawalReq = new WithdrawalReq(); - withdrawalReq.setOutOrderNo(ToolUtil.getRandomString(32)); - withdrawalReq.setAmount(1); - withdrawalReq.setBalanceAcctId("2007942320163036794"); - withdrawalReq.setBankAcctNo("149245719387"); - withdrawalReq.setPassword("123456"); - balanceAcctResp = WithdrawalExample.create(withdrawalReq); - System.err.println(balanceAcctResp); - } catch (UpyztException e) { - System.err.println("提现失败:{}"+e.getMessage()); - e.printStackTrace(); - } - log.info("提现完成=========:{}",balanceAcctResp); - } - -// @ResponseBody -// @RequestMapping(value = "/api/placeOrder/tiXianQuery", method = RequestMethod.POST) -// @ApiOperation(value = "提现查询", tags = {"提现查询"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) - public void tiXianQuery(){ - WithdrawalResp balanceAcctResp = null; - try { - balanceAcctResp = WithdrawalExample.retrieveById("3708203534784717899"); - System.err.println(balanceAcctResp); - } catch (UpyztException e) { - System.err.println("提现失败:{}"+e.getMessage()); - e.printStackTrace(); - } - log.info("提现完成=========:{}",balanceAcctResp); - } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/UserWithdrawalController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/UserWithdrawalController.java index feac4a0..9bd7bd8 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/UserWithdrawalController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/UserWithdrawalController.java @@ -1,43 +1,35 @@ package com.stylefeng.guns.modular.account.controller; import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.account.model.TBankNext; -import com.stylefeng.guns.modular.account.req.UserWithdrawalReq; -import com.stylefeng.guns.modular.account.service.*; -import com.stylefeng.guns.modular.account.util.Base64Util; -import com.stylefeng.guns.modular.cloudPayment.example.*; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq; -import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq; -import com.stylefeng.guns.modular.system.model.*; +import com.stylefeng.guns.modular.account.service.ElectronicLedgerService; +import com.stylefeng.guns.modular.account.service.ITBankNextService; +import com.stylefeng.guns.modular.account.service.UserBankAccountService; +import com.stylefeng.guns.modular.account.service.UserWithdrawalService; +import com.stylefeng.guns.modular.system.model.Company; +import com.stylefeng.guns.modular.system.model.Driver; +import com.stylefeng.guns.modular.system.model.ElectronicLedger; +import com.stylefeng.guns.modular.system.model.UserWithdrawal; import com.stylefeng.guns.modular.system.service.IBankCardService; import com.stylefeng.guns.modular.system.service.ICompanyService; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.unionpay.upyzt.exception.InvalidRequestException; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.param.FailureMsgParam; -import com.unionpay.upyzt.resp.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; -import java.util.Date; import java.util.List; import java.util.Objects; @@ -67,232 +59,6 @@ this.bankNextService = bankNextService; } - - @ResponseBody - @RequestMapping(value = "/addElectronicLedger", method = RequestMethod.POST) - @ApiOperation(value = "司机进件(提现账户设置)", tags = {"司机端-司机进件(提现账户设置)"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - @Transactional(isolation = Isolation.READ_UNCOMMITTED,rollbackFor = Exception.class,propagation = Propagation.REQUIRED) - public ResultUtil addElectronicLedger(UserWithdrawalReq userWithdrawalReq, HttpServletRequest request){ - System.out.println(userWithdrawalReq); - if(StringUtils.hasLength(userWithdrawalReq.getBankName())){ - userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #40;","(")); - userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #41;",")")); - } - - userWithdrawalReq.setCopy1(userWithdrawalReq.getCopy1().replaceAll(" ","+")); - userWithdrawalReq.setCopy2(userWithdrawalReq.getCopy2().replaceAll(" ","+")); - // 用户进件 - // 获取当前用户id - Integer driverId = null; - try { - driverId = driverService.getUserIdFormRedis(request); - } catch (Exception e) { - return ResultUtil.error(e.getMessage()); - } - if(null == driverId){ - return ResultUtil.tokenErr(); - } - // 查询司机 -// Driver driver = driverService.selectById(id); - - userWithdrawalReq.setOutRequestNo(ToolUtil.getRandomString(32)); - UserWithdrawal userWithdrawal = new UserWithdrawal(); - BeanUtils.copyProperties(userWithdrawalReq,userWithdrawal); - - String password = userWithdrawal.getTransactionAuthorizationCode(); - userWithdrawal.setOutRequestNo(ToolUtil.getRandomString(32)); - try { - // 司机进件 - CusApplicationResp cusApplicationResp = CusApplicationExample.create(userWithdrawalReq); - System.out.println(cusApplicationResp); - // 交易授权码加密,并保存司机进件信息 - userWithdrawal.setTransactionAuthorizationCode(Base64Util.encode(userWithdrawal.getTransactionAuthorizationCode())); -// userWithdrawal.setUserId(userWithdrawal.getUserId()); - userWithdrawal.setUserId(driverId); - userWithdrawal.setUserType(2); - userWithdrawal.setImgUrl(userWithdrawalReq.getIdCardFrontPicture()); - userWithdrawal.setImgUrlOne(userWithdrawalReq.getIdCardReversePicture()); - userWithdrawal.setIdCardFrontPicture(userWithdrawalReq.getCopy1()); - userWithdrawal.setIdCardReversePicture(userWithdrawalReq.getCopy2()); - userWithdrawalService.insert(userWithdrawal); - - // 通过司机进件信息封装银行卡信息进行数据库存储 - BankCard bankCard = userBankAccountService.userWithdrawalToBankCard(userWithdrawal); - bankCardService.insert(bankCard); - // 添加用户银行卡 - UserBankAccount userBankAccount = userBankAccountService.userWithdrawalToUserBankAccount(userWithdrawal); - userBankAccountService.insert(userBankAccount); - - // 判断是否开户成功 - if("succeeded".equals(cusApplicationResp.getApplicationStatus())){ - - // 开户将司机进件返回的信息进行保存 - userWithdrawalService.cusApplicationRespToUserWithdrawal(userWithdrawal,cusApplicationResp); - userWithdrawalService.updateById(userWithdrawal); - System.out.println("开户将司机进件返回的信息"); - // 开户成功,开通电子账户,绑定账户 - // 开通电子账簿 -// BalanceAcctReq balanceAcctReq = electronicLedgerService.createBalanceAcctReq(userWithdrawal.getCusId(),password); -// BalanceAcctStoreResp balanceAcctStoreResp = BalanceAcctExample.create(balanceAcctReq); - - // 开通电子账簿成功,封装实体 - ElectronicLedger electronicLedger = electronicLedgerService.createElectronicLedger(cusApplicationResp,userWithdrawal,password); - System.out.println("开通电子账簿成功,封装实体11111"); - electronicLedgerService.insert(electronicLedger); - System.out.println("开通电子账簿成功,封装实体22222"); - - // 绑定银行卡 -// UserBankAccountReq userBankAccountReq = electronicLedgerService.createUserBankAccountReq(bankCard,userWithdrawal.getCusId(),userWithdrawal.getCode()); -// SettleAcctResp settleAcctResp = SettleAcctExample.create(userBankAccountReq); - - // 保存绑定银行卡返回信息 -// bankCard.setVerifyStatus(settleAcctResp.getVerifyStatus()); -// bankCard.setSettleAcctId(settleAcctResp.getSettleAcctId()); -// bankCard.setAcctValidationFailureMsg(settleAcctResp.getAcctValidationFailureMsg()); -// bankCard.setAcctValidationFinishedAt(settleAcctResp.getAcctValidationFinishedAt()); -// bankCardService.updateById(bankCard); - return ResultUtil.success(); - } - if("failed".equals(cusApplicationResp.getApplicationStatus())){ - List<FailureMsgParam> failureMsgs = cusApplicationResp.getFailureMsgs(); - if(failureMsgs != null && failureMsgs.size()>0){ - return ResultUtil.error(failureMsgs.get(0).getReason()); - } - } - return ResultUtil.success(); - }catch (UpyztException e){ - e.printStackTrace(); - if(e.getCode().equals("100101")){ - return ResultUtil.error(e.getIssue()); - } - return ResultUtil.error(e.getMessage()); - } catch (Exception e){ - return ResultUtil.error(e.getMessage()); - } - } - - @ResponseBody - @RequestMapping(value = "/updateElectronicLedgerInfo", method = RequestMethod.POST) - @ApiOperation(value = "司机修改进件信息", tags = {"司机端-司机修改进件信息"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - @Transactional(isolation = Isolation.READ_UNCOMMITTED,rollbackFor = Exception.class,propagation = Propagation.REQUIRED) - public ResultUtil updateElectronicLedgerInfo(String idCardFrontPicture, - String idCardReversePicture, - String certificateCode, - String certificateName, - String certificateExpireTime, - String openAccountName, - String bankCardCode, - String bankCode, - String bankBranchCode, - String phone, - String code, - String copy1, - String copy2, - HttpServletRequest request){ - try { - Integer driverId = driverService.getUserIdFormRedis(request); - if(null == driverId){ - return ResultUtil.tokenErr(); - } - Driver driver = driverService.selectById(driverId); - // TODO 司机进件信息 - UserWithdrawal userWithdrawal1 = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() - .eq("phone",driver.getPhone()) - .last("LIMIT 1")); - if(Objects.isNull(userWithdrawal1)){ - return ResultUtil.error("请先进行个人用户进件信息填写"); - } - TBankNext bankNext = bankNextService.selectOne(new EntityWrapper<TBankNext>() - .eq("bankCode", bankBranchCode) - .last("LIMIT 1")); - UserWithdrawal userWithdrawal = new UserWithdrawal(); - if(Objects.nonNull(bankNext)){ - userWithdrawal1.setBankName(bankNext.getBankName()); - } - - BeanUtils.copyProperties(userWithdrawal1,userWithdrawal); - - userWithdrawal.setIdCardFrontPicture(copy1); - userWithdrawal.setIdCardReversePicture(copy2); - userWithdrawal.setImgUrl(idCardFrontPicture); - userWithdrawal.setImgUrlOne(idCardReversePicture); - userWithdrawal.setCertificateCode(certificateCode); - userWithdrawal.setCertificateName(certificateName); - userWithdrawal.setCertificateExpireTime(certificateExpireTime); - userWithdrawal.setOpenAccountName(openAccountName); - userWithdrawal.setBankCardCode(bankCardCode); - userWithdrawal.setCusId(userWithdrawal1.getCusId()); - userWithdrawal.setPhone(phone); - userWithdrawal.setBankCode(bankCode); - userWithdrawal.setBankBranchCode(bankBranchCode); - userWithdrawal.setCode(code); - System.out.println(userWithdrawal); - CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal); - System.out.println("修改个人用户进件信息返回:{}"+renew); - if("succeeded".equals(renew.getApplicationStatus())){ - System.out.println("修改成功"); - userWithdrawal1.setIdCardFrontPicture(copy1); - userWithdrawal1.setIdCardReversePicture(copy2); - userWithdrawal1.setImgUrl(idCardFrontPicture); - userWithdrawal1.setImgUrlOne(idCardReversePicture); - userWithdrawal1.setCertificateCode(certificateCode); - userWithdrawal1.setCertificateName(certificateName); - userWithdrawal1.setCertificateExpireTime(certificateExpireTime); - userWithdrawal1.setOpenAccountName(openAccountName); - userWithdrawal1.setBankCardCode(bankCardCode); - userWithdrawal1.setBankCode(bankCode); - userWithdrawal1.setBankBranchCode(bankBranchCode); - userWithdrawal1.setPhone(phone); - userWithdrawalService.updateById(userWithdrawal1); - // 修改成功 查询该银行卡是否存在 如果不存在则添加 - System.out.println("修改成功"); - int count = bankCardService.selectCount(new EntityWrapper<BankCard>() - .eq("code", bankCardCode) - .eq("status",true)); - System.out.println("查询该银行卡是否存在 如果不存在则添加"); - if(count<1){ - System.out.println("该银行卡不存在则添加"); - BankCard bankCard = userBankAccountService.userWithdrawalToBankCard(userWithdrawal); - bankCardService.insert(bankCard); - System.out.println("该银行卡添加成功"); - } - System.out.println("查询该银行卡账户是否存在"); - int count1 = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>() - .eq("bankCardCode", bankCardCode) - .eq("userType", 1) - .eq("status",true)); - if(count1<1){ - // 添加用户银行卡 - System.out.println("该银行卡账户不存在则添加"); - UserBankAccount userBankAccount = userBankAccountService.userWithdrawalToUserBankAccount(userWithdrawal); - userBankAccountService.insert(userBankAccount); - System.out.println("该银行卡账户添加成功"); - } - } - if("failed".equals(renew.getApplicationStatus())){ - List<FailureMsgParam> failureMsgs = renew.getFailureMsgs(); - if(failureMsgs != null && failureMsgs.size()>0){ - return ResultUtil.error(failureMsgs.get(0).getReason()); - } - } - return ResultUtil.success(); - }catch (UpyztException e){ - e.printStackTrace(); - if(e.getCode().equals("100101")){ - return ResultUtil.error(e.getIssue()); - } - return ResultUtil.error(e.getMessage()); - } catch (Exception e){ - e.printStackTrace(); - return ResultUtil.error(e.getMessage()); - } - } @ResponseBody @@ -415,22 +181,7 @@ .eq("userId", company.getId()) .eq("userType", 3) .last("LIMIT 1")); - try { - // 进行平台分账到司机电子账簿 - System.out.println("平台分账到司机电子账簿========="); - AllocationReq allocationReq = userWithdrawalService.createAllocationReq(userWithdrawal.getBalanceAcctId(), electronicLedger.getBalanceAcctId(), amount,userWithdrawal.getTransactionAuthorizationCode()); - AllocationResp allocationResp = AllocationExample.create(allocationReq); - System.out.println("平台分账到司机电子账簿完成=========:{}"+allocationResp); - - // 用户电子账簿进行提现操作 - WithdrawalResp withdrawalResp = WithdrawalExample.create(userWithdrawalService.createWithdrawalReq(userWithdrawal.getBalanceAcctId(), amount, userWithdrawal.getTransactionAuthorizationCode(), bankAcctNo)); - System.out.println("司机电子账簿提现完成=========:{}"+withdrawalResp); - return ResultUtil.success(); - }catch (Exception e){ - System.out.println("司机提现失败=========:{}"+e.getMessage()); - e.printStackTrace(); - return ResultUtil.error(e.getMessage()); - } + return ResultUtil.success(); } @ResponseBody @@ -440,68 +191,9 @@ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil querySettledAmount(HttpServletRequest request){ - BalanceAcctListResp balanceAcctListResp = null; -// ElectronicLedger electronicLedger = null; - UserWithdrawal userWithdrawal = null; - try { - Integer driverId = driverService.getUserIdFormRedis(request); - Driver driver = driverService.selectById(driverId); - // 通过司机id查询开户信息, - // 司机进件信息 -// electronicLedger = electronicLedgerService.selectOne(new EntityWrapper<ElectronicLedger>() -// .eq("userId", driverId) -// .eq("userType", 2)); - userWithdrawal = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() - .eq("phone", driver.getPhone()) - .eq("userType", 2) - .eq("applicationStatus","succeeded") - .last("LIMIT 1")); - if(Objects.isNull(userWithdrawal)){ - return ResultUtil.error("该司机开户信息为空"); - } - BalanceAcctReq balanceAcctReq = new BalanceAcctReq(); - balanceAcctReq.setCusId(userWithdrawal.getCusId()); - balanceAcctListResp = BalanceAcctExample.retrieveByUserId(balanceAcctReq); - System.err.println(balanceAcctListResp); - } catch (Exception e) { - log.error("电子账簿可提现余额查询失败:{}",e.getMessage()); - e.printStackTrace(); - } - if(Objects.isNull(balanceAcctListResp)){ - log.error("电子账簿可提现余额查询失败"); - return ResultUtil.error("电子账簿可提现余额查询失败"); - } - log.info("电子账簿可提现余额查询完成=========:{}",balanceAcctListResp); - List<BalanceAcctItem> balanceAccts = balanceAcctListResp.getBalanceAccts(); - if(CollectionUtils.isEmpty(balanceAccts)){ - log.error("电子账簿可提现余额查询失败"); - return ResultUtil.error("电子账簿可提现余额查询失败"); - } - for (BalanceAcctItem balanceAcct : balanceAccts) { - if(userWithdrawal.getBalanceAcctId().equals(balanceAcct.getBalanceAcctId())){ - return ResultUtil.success(new BigDecimal(balanceAcct.getSettledAmount()).divide(new BigDecimal(100))); - } - } + return ResultUtil.success(BigDecimal.ZERO); } - - @ResponseBody - @RequestMapping(value = "/uploadImg", method = RequestMethod.POST) - @ApiOperation(value = "进件上传图片", tags = {"司机端-进件上传图片"}, notes = "") - @ApiImplicitParams({ - }) - @Transactional(isolation = Isolation.READ_UNCOMMITTED,rollbackFor = Exception.class,propagation = Propagation.REQUIRED) - public ResultUtil uploadImg(MultipartFile multipartFile, HttpServletRequest request){ - try { - MediaResp mediaResp = MediaExample.uploadImage(multipartFile); - System.out.println(mediaResp); - String mediaId = mediaResp.getMediaId(); - return ResultUtil.success(mediaId); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.error(e.getMessage()); - } - } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/schedule/UserWithdrawalSchedule.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/schedule/UserWithdrawalSchedule.java index d83b7a4..7d967ad 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/schedule/UserWithdrawalSchedule.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/schedule/UserWithdrawalSchedule.java @@ -1,27 +1,11 @@ package com.stylefeng.guns.modular.account.schedule; -import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.modular.account.service.UserWithdrawalService; -import com.stylefeng.guns.modular.cloudPayment.example.BalanceAcctExample; -import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample; -import com.stylefeng.guns.modular.cloudPayment.example.SettleAcctExample; -import com.stylefeng.guns.modular.cloudPayment.example.WithdrawalExample; -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq; -import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq; -import com.stylefeng.guns.modular.system.model.ElectronicLedger; -import com.stylefeng.guns.modular.system.model.UserWithdrawal; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.resp.BalanceAcctStoreResp; -import com.unionpay.upyzt.resp.CusApplicationResp; -import com.unionpay.upyzt.resp.SettleAcctResp; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; - -import java.util.List; @Slf4j @Component @@ -38,41 +22,6 @@ */ @Scheduled(cron = "0 0/1 * * * ? ") private void configureTasks() { - List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>() - .eq("userType", 2) - .ne("applicationStatus", "succeeded")); - if(!CollectionUtils.isEmpty(userWithdrawals)){ - for (UserWithdrawal userWithdrawal : userWithdrawals) { - try { - CusApplicationResp cusApplicationResp = CusApplicationExample.retrieveById(userWithdrawal.getCusApplicationId()); - // 开户将司机进件返回的信息进行保存 - userWithdrawalService.cusApplicationRespToUserWithdrawal(userWithdrawal,cusApplicationResp); - userWithdrawalService.updateById(userWithdrawal); - - // 开户成功,开通电子账户,绑定账户 - // 开通电子账簿 - /*BalanceAcctReq balanceAcctReq = electronicLedgerService.createBalanceAcctReq(userWithdrawal.getCusId(),password); - BalanceAcctStoreResp balanceAcctStoreResp = BalanceAcctExample.create(balanceAcctReq); - - // 开通电子账簿成功,封装实体 - ElectronicLedger electronicLedger = electronicLedgerService.createElectronicLedger(balanceAcctStoreResp,userWithdrawal,password); - electronicLedgerService.insert(electronicLedger); - - // 绑定银行卡 - UserBankAccountReq userBankAccountReq = electronicLedgerService.createUserBankAccountReq(bankCard,userWithdrawal.getCusId(),userWithdrawal.getCode()); - SettleAcctResp settleAcctResp = SettleAcctExample.create(userBankAccountReq); - - // 保存绑定银行卡返回信息 - bankCard.setVerifyStatus(settleAcctResp.getVerifyStatus()); - bankCard.setSettleAcctId(settleAcctResp.getSettleAcctId()); - bankCard.setAcctValidationFailureMsg(settleAcctResp.getAcctValidationFailureMsg()); - bankCard.setAcctValidationFinishedAt(settleAcctResp.getAcctValidationFinishedAt()); - bankCardService.updateById(bankCard);*/ - } catch (UpyztException e) { - log.error("个人用户进件状态查询(系统订单号)失败:{}",e.getMessage()); - } - } - } } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/ElectronicLedgerService.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/ElectronicLedgerService.java index f51015f..7055861 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/ElectronicLedgerService.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/ElectronicLedgerService.java @@ -1,39 +1,8 @@ package com.stylefeng.guns.modular.account.service; import com.baomidou.mybatisplus.service.IService; -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq; -import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq; -import com.stylefeng.guns.modular.system.model.BankCard; import com.stylefeng.guns.modular.system.model.ElectronicLedger; -import com.stylefeng.guns.modular.system.model.UserWithdrawal; -import com.unionpay.upyzt.resp.BalanceAcctStoreResp; -import com.unionpay.upyzt.resp.CusApplicationResp; public interface ElectronicLedgerService extends IService<ElectronicLedger> { - - /** - * 封装开通电子账簿的请求体 - * @param cusId 司机个人用户号 - * @param password 交易授权码 - * @return - */ - BalanceAcctReq createBalanceAcctReq(String cusId, String password); - - /** - * 封装电子账簿实体 - * @param cusApplicationResp - * @param userWithdrawal - * @return - */ - ElectronicLedger createElectronicLedger(CusApplicationResp cusApplicationResp, UserWithdrawal userWithdrawal, String password); - - /** - * 封装绑定银行卡参数 - * @param bankCard - * @return - */ - UserBankAccountReq createUserBankAccountReq(BankCard bankCard,String cusId,String code); - - } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/UserWithdrawalService.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/UserWithdrawalService.java index 83c4dee..cec6f34 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/UserWithdrawalService.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/UserWithdrawalService.java @@ -1,37 +1,10 @@ package com.stylefeng.guns.modular.account.service; import com.baomidou.mybatisplus.service.IService; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq; import com.stylefeng.guns.modular.system.model.UserWithdrawal; -import com.unionpay.upyzt.resp.CusApplicationResp; public interface UserWithdrawalService extends IService<UserWithdrawal> { - /** - * 封装司机进件返回的数据 - * @param cusApplicationResp - */ - void cusApplicationRespToUserWithdrawal(UserWithdrawal userWithdrawal,CusApplicationResp cusApplicationResp); - - /** - * 封装分账实体 - * @param balanceAcctId 收款方电子账簿 - * @param companyBalanceAcctId 付款方电子账簿 - * @param amount 金额 - * @return - */ - AllocationReq createAllocationReq(String balanceAcctId, String companyBalanceAcctId, Integer amount,String password); - - /** - * 封装提现实体 - * @param balanceAcctId 体现账户电子账簿 - * @param amount 金额 - * @param password 密码 - * @param code 银行账号 - * @return - */ - WithdrawalReq createWithdrawalReq(String balanceAcctId, Integer amount, String password, String code); /** * 司机提现 diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/impl/ElectronicLedgerServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/impl/ElectronicLedgerServiceImpl.java index c1ab94c..11f10bf 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/impl/ElectronicLedgerServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/impl/ElectronicLedgerServiceImpl.java @@ -1,60 +1,12 @@ package com.stylefeng.guns.modular.account.service.impl; -import cn.hutool.crypto.SecureUtil; import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.dao.ElectronicLedgerMapper; import com.stylefeng.guns.modular.account.service.ElectronicLedgerService; -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq; -import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq; -import com.stylefeng.guns.modular.system.model.BankCard; import com.stylefeng.guns.modular.system.model.ElectronicLedger; -import com.stylefeng.guns.modular.system.model.UserWithdrawal; -import com.unionpay.upyzt.resp.BalanceAcctStoreResp; -import com.unionpay.upyzt.resp.CusApplicationResp; -import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; - -import java.util.Date; @Service public class ElectronicLedgerServiceImpl extends ServiceImpl<ElectronicLedgerMapper, ElectronicLedger> implements ElectronicLedgerService { - - @Override - public BalanceAcctReq createBalanceAcctReq(String cusId, String password) { - BalanceAcctReq balanceAcctReq = new BalanceAcctReq(); - balanceAcctReq.setOutRequestNo(ToolUtil.getRandomString(32)); - balanceAcctReq.setCusId(cusId); - balanceAcctReq.setPassword(password); - return balanceAcctReq; - } - - @Override - public ElectronicLedger createElectronicLedger(CusApplicationResp cusApplicationResp, UserWithdrawal userWithdrawal, String password) { - ElectronicLedger electronicLedger = new ElectronicLedger(); - electronicLedger.setBalanceAcctId(cusApplicationResp.getBalanceAcctId()); - electronicLedger.setCreateTime(new Date()); - electronicLedger.setCusId(cusApplicationResp.getCusId()); - electronicLedger.setOutRequestNo(cusApplicationResp.getOutRequestNo()); - electronicLedger.setUserId(userWithdrawal.getUserId()); - electronicLedger.setPassword(SecureUtil.md5(password)); - electronicLedger.setRelAcctNo(cusApplicationResp.getRelAcctNo()); - electronicLedger.setUserType(userWithdrawal.getUserType()); - return electronicLedger; - } - - @Override - public UserBankAccountReq createUserBankAccountReq(BankCard bankCard,String cusId,String code) { - UserBankAccountReq userBankAccountReq = new UserBankAccountReq(); - userBankAccountReq.setBankCode(bankCard.getBankCode()); - userBankAccountReq.setBankAcctType(bankCard.getBankAcctType()); - userBankAccountReq.setBankBranchCode(bankCard.getBankBranchCode()); - userBankAccountReq.setBankCardCode(bankCard.getCode()); - userBankAccountReq.setPhone(bankCard.getPhone()); - userBankAccountReq.setOutRequestNo(bankCard.getOutRequestNo()); - userBankAccountReq.setCusId(cusId); - userBankAccountReq.setCode(code); - return userBankAccountReq; - } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/impl/UserWithdrawalServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/impl/UserWithdrawalServiceImpl.java index 4a1f9f0..ba1d4a9 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/impl/UserWithdrawalServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/service/impl/UserWithdrawalServiceImpl.java @@ -1,62 +1,15 @@ package com.stylefeng.guns.modular.account.service.impl; import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.dao.UserWithdrawalMapper; import com.stylefeng.guns.modular.account.service.UserWithdrawalService; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq; import com.stylefeng.guns.modular.system.model.UserWithdrawal; -import com.unionpay.upyzt.resp.CusApplicationResp; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; @Slf4j @Service public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalMapper, UserWithdrawal> implements UserWithdrawalService { - - @Override - public void cusApplicationRespToUserWithdrawal(UserWithdrawal userWithdrawal,CusApplicationResp cusApplicationResp) { - userWithdrawal.setApplicationStatus(cusApplicationResp.getApplicationStatus()); - userWithdrawal.setCusId(cusApplicationResp.getCusId()); - userWithdrawal.setSucceededAt(cusApplicationResp.getSucceededAt()); - if(!CollectionUtils.isEmpty(cusApplicationResp.getFailureMsgs())){ - userWithdrawal.setFailureMsgsReason(cusApplicationResp.getFailureMsgs().get(0).getReason()); - } - userWithdrawal.setRelAcctNo(cusApplicationResp.getRelAcctNo()); - userWithdrawal.setBindAcctName(cusApplicationResp.getBindAcctName()); - userWithdrawal.setBalanceAcctId(cusApplicationResp.getBalanceAcctId()); - userWithdrawal.setSettleAcctId(cusApplicationResp.getSettleAcctId()); - userWithdrawal.setCusApplicationId(cusApplicationResp.getCusApplicationId()); - // 审核通过 - } - - @Override - public AllocationReq createAllocationReq(String balanceAcctId, String companyBalanceAcctId, Integer amount,String password) { - AllocationReq allocationReq = new AllocationReq(); - allocationReq.setOutOrderNo(ToolUtil.getRandomString(32)); - allocationReq.setPayBalanceAcctId(companyBalanceAcctId); - allocationReq.setRecvBalanceAcctId(balanceAcctId); - allocationReq.setAmount(amount*100); - allocationReq.setOrderNo(ToolUtil.getRandomString(32)); - allocationReq.setPassword(password); - allocationReq.setOrderAmount(Long.valueOf(amount)); - allocationReq.setProductName("司机提现"); - allocationReq.setProductCount(1); - return allocationReq; - } - - @Override - public WithdrawalReq createWithdrawalReq(String balanceAcctId, Integer amount, String password, String code) { - WithdrawalReq withdrawalReq = new WithdrawalReq(); - withdrawalReq.setOutOrderNo(ToolUtil.getRandomString(32)); - withdrawalReq.setBalanceAcctId(balanceAcctId); - withdrawalReq.setAmount(amount*100); - withdrawalReq.setBankAcctNo(code); - withdrawalReq.setPassword(password); - return withdrawalReq; - } @Override public Boolean withdrawDeposit(Integer amount, String bankAcctNo, String withdrawPassword) { diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java index cc4238d..5228c11 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java @@ -1,28 +1,12 @@ package com.stylefeng.guns.modular.api; -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.stylefeng.guns.core.exception.GunsException; -import com.stylefeng.guns.core.exception.ServiceExceptionEnum; import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal; import com.stylefeng.guns.modular.account.service.ITEnterpriseWithdrawalService; import com.stylefeng.guns.modular.account.service.UserWithdrawalService; -import com.stylefeng.guns.modular.account.util.Base64Util; -import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample; -import com.stylefeng.guns.modular.cloudPayment.example.DepositExample; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.stylefeng.guns.modular.enums.PaymentTypeEnum; -import com.stylefeng.guns.modular.system.model.Company; -import com.stylefeng.guns.modular.system.model.Driver; -import com.stylefeng.guns.modular.system.model.Reassign; -import com.stylefeng.guns.modular.system.model.UserWithdrawal; import com.stylefeng.guns.modular.system.service.ICompanyService; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IReassignService; import com.stylefeng.guns.modular.system.util.PayMoneyUtil; -import com.unionpay.upyzt.resp.AllocationResp; -import com.unionpay.upyzt.resp.DepositResp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -32,9 +16,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; -import java.math.BigDecimal; -import java.text.SimpleDateFormat; -import java.util.*; +import java.util.Map; /** * 第三方支付回调控制器 @@ -136,61 +118,4 @@ } } - private void cloudPay(Integer uid,String total_fee,String transaction_id,int type) { - if(type==1){ - BigDecimal divide = new BigDecimal(total_fee).divide(new BigDecimal(100)); - total_fee=divide.toString(); - } - System.out.println("回调参数:"+total_fee+"---"+transaction_id); - Driver driver = driverService.selectById(uid); - if(Objects.isNull(driver)){ - throw new RuntimeException("该司机不存在!"+uid); - } - // 查询平台账户 - Company company = companyService.selectOne(new EntityWrapper<Company>() - .eq("type", 1) - .last("LIMIT 1")); - System.out.println("查询平台账户==============="+company); - // 查询平台开户信息 - TEnterpriseWithdrawal enterpriseWithdrawal = enterpriseWithdrawalService.selectOne(new EntityWrapper<TEnterpriseWithdrawal>() - .eq("companyId", company.getId())); // 替换为公司id - System.out.println("查询平台开户信息==============="+enterpriseWithdrawal); - // TODO 司机进件信息 - UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() - .eq("phone", driver.getPhone()) - .last("LIMIT 1")); -// DepositReq depositReq = new DepositReq(); -// depositReq.setOutOrderNo(ToolUtil.getRandomString(32)); -// depositReq.setTotalAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).intValue()); // 总金额 -// depositReq.setAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).intValue()); // 支付金额 -// depositReq.setDiscountAmount(0); // 优惠金额 -// depositReq.setBalanceAcctId(driverWith.getBalanceAcctId()); -// depositReq.setDepositType("1"); -// depositReq.setPaymentType(PaymentTypeEnum.CUP_APP.getCode()); -// depositReq.setPaymentTradeNo(transaction_id); // 系统交易流水号 -// depositReq.setPaymentSucceededAt(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())); -// depositReq.setOrderNo(transaction_id); -// depositReq.setOrderAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).longValue()); -// depositReq.setProductName("司机支付充值"); -// depositReq.setProductCount(1); - try { -// DepositResp depositResp = DepositExample.create(depositReq); -// System.err.println(depositResp); - AllocationReq allocationReq = new AllocationReq(); - allocationReq.setPayBalanceAcctId(driverWith.getBalanceAcctId()); // 发送方 - allocationReq.setRecvBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId()); // 接收方 - BigDecimal multiply = new BigDecimal(100).multiply(new BigDecimal(total_fee)); - allocationReq.setAmount(multiply.intValue()); // 金额 - allocationReq.setPassword(Base64Util.decode(enterpriseWithdrawal.getTransactionAuthorizationCode())); // 密码 - allocationReq.setOrderNo(transaction_id); - allocationReq.setOrderAmount(Long.valueOf(total_fee)); - allocationReq.setProductName("订单改派"); - allocationReq.setProductCount(1); - AllocationResp allocationResp = AllocationExample.create(allocationReq); - System.err.println("司机分账信息:"+allocationResp); - } catch (Exception e) { - e.printStackTrace(); - } - - } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java index 4b34bfa..019cede 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java @@ -2,8 +2,6 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; - - import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; @@ -13,9 +11,8 @@ import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.model.*; -import com.stylefeng.guns.modular.system.util.*; -import com.stylefeng.guns.modular.system.warpper.ActivityWarpper; import com.stylefeng.guns.modular.system.service.*; +import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java index 3a423d7..cd64443 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java @@ -1,6 +1,5 @@ package com.stylefeng.guns.modular.api; -import com.stylefeng.guns.modular.system.model.Phone; import com.stylefeng.guns.modular.system.service.IPhoneService; import com.stylefeng.guns.modular.system.util.ResultUtil; import io.swagger.annotations.Api; @@ -13,7 +12,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; -import java.util.List; import java.util.Map; /** diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java index cc61567..f809b52 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java @@ -5,7 +5,6 @@ import com.stylefeng.guns.modular.account.model.TBankNext; import com.stylefeng.guns.modular.account.service.ITBankNextService; import com.stylefeng.guns.modular.account.service.UserWithdrawalService; -import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample; import com.stylefeng.guns.modular.system.model.BankCard; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.UserWithdrawal; @@ -15,7 +14,6 @@ import com.stylefeng.guns.modular.system.service.IWithdrawalService; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.WithdrawalWarpper; -import com.unionpay.upyzt.resp.CusApplicationResp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -30,7 +28,9 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.Objects; /** * 提现控制器 @@ -107,32 +107,32 @@ if(Objects.isNull(userWithdrawal)){ return ResultUtil.error("请先进行个人用户进件信息填写"); } - + TBankNext bankNext = bankNextService.selectOne(new EntityWrapper<TBankNext>() .eq("bankName", bankName) .last("LIMIT 1")); - + userWithdrawal.setBankName(bankName); userWithdrawal.setBankCode(bankNext.getDrecCode()); userWithdrawal.setBankBranchCode(bankNext.getBankCode()); userWithdrawal.setBankCardCode(code); userWithdrawal.setCode(smsCode); - CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal); - System.err.println("修改个人用户进件信息返回"+renew); - if("succeeded".equals(renew.getApplicationStatus())){ - // 修改银行卡信息 - bankCard.setVerifyStatus("succeeded"); - bankCard.setSettleAcctId(renew.getSettleAcctId()); - bankCardService.updateById(bankCard); - - userWithdrawal.setBankCardCode(code); - userWithdrawal.setBankName(bankCard.getBank()); - userWithdrawal.setSettleAcctId(renew.getSettleAcctId()); - userWithdrawal.setBalanceAcctId(renew.getBalanceAcctId()); - userWithdrawal.setBankCode(bankCard.getBankCode()); - userWithdrawal.setBankBranchCode(bankCard.getBankBranchCode()); - userWithdrawalService.updateById(userWithdrawal); - } +// CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal); +// System.err.println("修改个人用户进件信息返回"+renew); +// if("succeeded".equals(renew.getApplicationStatus())){ +// // 修改银行卡信息 +// bankCard.setVerifyStatus("succeeded"); +// bankCard.setSettleAcctId(renew.getSettleAcctId()); +// bankCardService.updateById(bankCard); +// +// userWithdrawal.setBankCardCode(code); +// userWithdrawal.setBankName(bankCard.getBank()); +// userWithdrawal.setSettleAcctId(renew.getSettleAcctId()); +// userWithdrawal.setBalanceAcctId(renew.getBalanceAcctId()); +// userWithdrawal.setBankCode(bankCard.getBankCode()); +// userWithdrawal.setBankBranchCode(bankCard.getBankBranchCode()); +// userWithdrawalService.updateById(userWithdrawal); +// } return withdrawalService.withdrawal(money, bankName, code, name, uid, type); }catch (Exception e){ e.printStackTrace(); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztAutoConfiguration.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztAutoConfiguration.java deleted file mode 100644 index f68b6b0..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztAutoConfiguration.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.config; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * @author xiaochen - * @version 1.0 - * @since 2023/03/24 - */ -@Configuration -@EnableConfigurationProperties({UpyztProperties.class}) -public class UpyztAutoConfiguration { - - @Bean - public UpyztCustomizer upyztCustomizer(UpyztProperties upyztProperties) { - return new UpyztCustomizer(upyztProperties); - } - - /*@Bean - public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) { - return restTemplateBuilder.build(); - }*/ - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztCustomizer.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztCustomizer.java deleted file mode 100644 index 8ef45b0..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztCustomizer.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.config; - -import com.unionpay.upyzt.Upyzt; -import org.springframework.beans.factory.InitializingBean; - -/** - * @author xiaochen - * @version 1.0 - * @since 2023/03/24 - */ -public class UpyztCustomizer implements InitializingBean { - - private UpyztProperties upyztProperties; - - public UpyztCustomizer(UpyztProperties upyztProperties) { - this.upyztProperties = upyztProperties; - } - - @Override - public void afterPropertiesSet() throws Exception { - // (必填)设置平台商户 Id - Upyzt.setRootMchId(upyztProperties.getRootMchId()); - // (必填)设置签名私钥路径,用于请求签名 - Upyzt.setSignPrivateKey(upyztProperties.getSignPrivateKey()); - // (必填)设置加密公钥路径,用于敏感字段加密 - Upyzt.setEncryptPublicKey(upyztProperties.getEncryptPublicKey()); - // (可选,推荐设置)设置响应验证公钥,用于验证响应是否真实有效;不设置或设置密钥错误将不验签 - Upyzt.setVerifyPublicKey(upyztProperties.getVerifyPublicKey()); - // 测试环境 - Upyzt.setApiBase(Upyzt.LIVE_API_BASE); - } -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztProperties.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztProperties.java deleted file mode 100644 index 373cf5a..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztProperties.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.config; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * @author xiaochen - * @version 1.0 - * @since 2023/03/24 - */ -@Data -@ConfigurationProperties(prefix = "upyzt") -public class UpyztProperties { - - /** - * 平台商户 Id - */ - @JsonProperty(value = "root-mch-id") - private String rootMchId; - - /** - * 接口地址 - */ - @JsonProperty(value = "api-base") - private String apiBase; - - /** - * 加密公钥 - */ - @JsonProperty(value = "encrypt-public-key") - private String encryptPublicKey; - - /** - * 加签私钥 - */ - @JsonProperty(value = "sign-private-key") - private String signPrivateKey; - - /** - * 验签公钥 - */ - @JsonProperty(value = "verify-public-key") - private String verifyPublicKey; - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/controller/OpenAccountController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/controller/OpenAccountController.java deleted file mode 100644 index a6d44c8..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/controller/OpenAccountController.java +++ /dev/null @@ -1,157 +0,0 @@ -//package com.stylefeng.guns.modular.cloudPayment.controller; -// -//import com.google.gson.Gson; -//import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample; -//import com.stylefeng.guns.modular.system.model.UserWithdrawal; -//import com.stylefeng.guns.modular.system.util.ResultUtil; -//import com.unionpay.upyzt.exception.UpyztException; -//import com.unionpay.upyzt.resp.CusApplicationResp; -//import com.unionpay.upyzt.resp.CusApplicationSmsCodeResp; -//import io.swagger.annotations.Api; -//import io.swagger.annotations.ApiImplicitParam; -//import io.swagger.annotations.ApiImplicitParams; -//import io.swagger.annotations.ApiOperation; -//import lombok.extern.slf4j.Slf4j; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.web.bind.annotation.*; -// -//@Api(tags = "个人用户进件") -//@Slf4j -//@RestController -//@RequestMapping("/api/openAccount") -//public class OpenAccountController { -// -// @Autowired -// private Gson gson; -// -// /** -// * 个人用户进件-短信验证码 -// * @param phone 手机号 -// * @return 返回参数 -// * @throws Exception 异常 -// */ -// @ResponseBody -// @PostMapping("/smsCode") -// @ApiOperation(value = "个人用户进件-短信验证码", tags = {"用户端-云闪付相关"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) -// public ResultUtil<CusApplicationSmsCodeResp> smsCode(@RequestBody String phone){ -// CusApplicationSmsCodeResp cusApplicationSmsCodeResp; -// try{ -// // 个人用户进件-短信验证码 -// cusApplicationSmsCodeResp = CusApplicationExample.smsCode(phone); -// log.info("------- 个人用户进件-短信验证码 ------- {} ", gson.toJson(cusApplicationSmsCodeResp)); -// }catch (Exception e){ -// log.error("个人用户进件-短信验证码失败!!!:{}",e.getMessage()); -// e.printStackTrace(); -// return ResultUtil.error("个人用户进件-短信验证码失败!!!"); -// } -// return ResultUtil.success(cusApplicationSmsCodeResp); -// } -// -// /** -// * 个人用户首次进件 -// * @param userWithdrawal 个人账户对象 -// * @return 返回参数 -// * @throws Exception 异常 -// */ -// @ResponseBody -// @PostMapping("/openIndividualUser") -// @ApiOperation(value = "个人用户首次进件", tags = {"用户端-云闪付相关"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) -// public ResultUtil<CusApplicationResp> openIndividualUser(@RequestBody UserWithdrawal userWithdrawal){ -// CusApplicationResp cusApplicationResp; -// try{ -// // 个人用户首次进件 -// cusApplicationResp = CusApplicationExample.create(userWithdrawal); -// log.info("------- 个人用户首次进件 ------- {} ", gson.toJson(cusApplicationResp)); -// }catch (Exception e){ -// log.error("个人用户进件失败!!!:{}",e.getMessage()); -// e.printStackTrace(); -// return ResultUtil.error("个人用户进件失败!!!"); -// } -// return ResultUtil.success(cusApplicationResp); -// } -// -// /** -// * 个人用户进件状态查询(系统订单号) -// * @param cusApplicationId 系统订单号 -// * @return 返回参数 -// * @throws UpyztException 异常 -// */ -// @ResponseBody -// @PostMapping("/queryIndividualUserStatusByCusApplicationId") -// @ApiOperation(value = "个人用户进件状态查询(系统订单号)", tags = {"用户端-云闪付相关"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) -// public ResultUtil<CusApplicationResp> queryIndividualUserStatusByCusApplicationId(@RequestBody String cusApplicationId){ -// CusApplicationResp cusApplicationResp; -// try{ -// // 个人用户进件状态查询(系统订单号) -// cusApplicationResp = CusApplicationExample.retrieveById(cusApplicationId); -// log.info("------- 个人用户进件状态查询 ------- {} ", gson.toJson(cusApplicationResp)); -// }catch (UpyztException e){ -// log.error("个人用户进件状态查询失败!!!:{}",e.getMessage()); -// e.printStackTrace(); -// return ResultUtil.error("个人用户进件状态查询失败!!!"); -// } -// return ResultUtil.success(cusApplicationResp); -// } -// -// /** -// * 修改个人用户信息 -// * @param userWithdrawal 个人账户对象 -// * @return 返回参数 -// * @throws UpyztException 异常 -// */ -// @ResponseBody -// @PostMapping("/updateIndividualUserInfo") -// @ApiOperation(value = "修改个人用户信息(系统订单号)", tags = {"用户端-云闪付相关"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) -// public ResultUtil<CusApplicationResp> updateIndividualUserInfo(@RequestBody UserWithdrawal userWithdrawal){ -// CusApplicationResp cusApplicationResp; -// try{ -// // 修改个人用户信息 -// cusApplicationResp = CusApplicationExample.renew(userWithdrawal); -// log.info("------- 修改个人用户信息 ------- {} ", gson.toJson(cusApplicationResp)); -// }catch (Exception e){ -// log.error("修改个人用户信息失败!!!:{}",e.getMessage()); -// e.printStackTrace(); -// return ResultUtil.error("修改个人用户信息失败!!!"); -// } -// return ResultUtil.success(cusApplicationResp); -// } -// -// /** -// * 个人用户进件状态查询(平台订单号) -// * @param userWithdrawal 个人账户对象 -// * @return 返回参数 -// * @throws UpyztException 异常 -// */ -// @ResponseBody -// @PostMapping("/queryIndividualUserStatusByOutRequestNo") -// @ApiOperation(value = "个人用户进件状态查询(平台订单号)", tags = {"用户端-云闪付相关"}, notes = "") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") -// }) -// public ResultUtil<CusApplicationResp> queryIndividualUserStatusByOutRequestNo(@RequestBody UserWithdrawal userWithdrawal){ -// CusApplicationResp cusApplicationResp; -// try{ -// // 个人用户进件状态查询(平台订单号) -// cusApplicationResp = CusApplicationExample.renew(userWithdrawal); -// log.info("------- 个人用户进件状态查询(平台订单号) ------- {} ", gson.toJson(cusApplicationResp)); -// }catch (Exception e){ -// log.error("个人用户进件状态查询(平台订单号)失败!!!:{}",e.getMessage()); -// e.printStackTrace(); -// return ResultUtil.error("个人用户进件状态查询(平台订单号)失败!!!"); -// } -// return ResultUtil.success(cusApplicationResp); -// } -// -//} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AcctPasswordExample.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AcctPasswordExample.java deleted file mode 100644 index b02ad6a..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AcctPasswordExample.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.req.AcctPasswordReq; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.AcctPassword; -import com.unionpay.upyzt.resp.AcctPasswordResp; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; - -@Slf4j -public class AcctPasswordExample implements Serializable { - - - /** - * 修改交易授权码 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public AcctPasswordResp update(AcctPasswordReq acctPasswordReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("balance_acct_id", acctPasswordReq.getBalanceAcctId()); - params.put("original_password", Upyzt.encryptField(acctPasswordReq.getOriginalPassword())); - params.put("new_password", Upyzt.encryptField(acctPasswordReq.getNewPassword())); - return AcctPassword.update(params); - } - - /** - * 获取用于重置交易授权码的短信验证码 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public AcctPasswordResp smsCode(String balanceAcctId) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("balance_acct_id", balanceAcctId); - return AcctPassword.smsCode(params); - } - - /** - * 重置交易授权码 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public AcctPasswordResp reset(AcctPasswordReq acctPasswordReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("balance_acct_id", acctPasswordReq.getBalanceAcctId()); - params.put("sms_code", acctPasswordReq.getCode()); - params.put("new_password", Upyzt.encryptField(acctPasswordReq.getNewPassword())); - return AcctPassword.reset(params); - } - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AllocationExample.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AllocationExample.java deleted file mode 100644 index 151e5bd..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AllocationExample.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.mock.MockData; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.Allocation; -import com.unionpay.upyzt.resp.AllocationResp; -import com.unionpay.upyzt.util.StringUtils; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -public class AllocationExample implements Serializable { - - - /** - * 分账 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static AllocationResp create(AllocationReq allocationReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_order_no", allocationReq.getOutOrderNo()); - params.put("sent_at", OffsetDateTime.now().toString()); - params.put("pay_balance_acct_id", allocationReq.getPayBalanceAcctId()); - - List<Map<String, Object>> transferParams = new ArrayList<>(); - Map<String, Object> transferParam = new HashMap<>(); - transferParam.put("recv_balance_acct_id", allocationReq.getRecvBalanceAcctId()); - transferParam.put("amount", allocationReq.getAmount()); -// transferParam.put("metadata", MockData.metadata()); - transferParam.put("extra", MockData.allocationExtra(allocationReq)); - transferParams.add(transferParam); - params.put("transfer_params", transferParams); - if(!StringUtils.isBlank(allocationReq.getPassword())){ - params.put("password", Upyzt.encryptField(allocationReq.getPassword())); - } -// params.put("remark", "用于 SDK 示例测试 "); - - return Allocation.create(params); - } - - /** - * 分账订单查询(系统订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static AllocationResp retrieveById(String allocationId) throws UpyztException { - return Allocation.retrieveById(allocationId); - } - - /** - * 分账订单查询(平台订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static AllocationResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException { - return Allocation.retrieveByOutOrderNo(outOrderNo); - } - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/BalanceAcctExample.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/BalanceAcctExample.java deleted file mode 100644 index f689b7c..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/BalanceAcctExample.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctFreezeReq; -import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.BalanceAcct; -import com.unionpay.upyzt.model.BalanceAcctFreeze; -import com.unionpay.upyzt.model.BalanceTransaction; -import com.unionpay.upyzt.resp.*; -import com.unionpay.upyzt.util.StringUtils; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - -@Slf4j -public class BalanceAcctExample implements Serializable { - - /** - * 新增电子账簿 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctStoreResp create(BalanceAcctReq balanceAcctReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_request_no", balanceAcctReq.getOutRequestNo()); - if (!StringUtils.isBlank(balanceAcctReq.getCusId())) { - params.put("cus_id", balanceAcctReq.getCusId()); - } - if (!StringUtils.isBlank(balanceAcctReq.getMchId())) { - params.put("mch_id", balanceAcctReq.getMchId()); - } - params.put("password", Upyzt.encryptField(balanceAcctReq.getPassword())); - params.put("remark", balanceAcctReq.getRemark()); - - return BalanceAcct.create(params); - } - - /** - * 电子账簿查询(电子账簿ID) - * - * @param balanceAcctId 绑定账户编号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctResp retrieveById(String balanceAcctId) throws UpyztException { - return BalanceAcct.retrieveById(balanceAcctId); - } - - - /** - * 电子账簿查询(用户ID或二级商户ID) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctListResp retrieveByUserId(BalanceAcctReq balanceAcctReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - if (!StringUtils.isBlank(balanceAcctReq.getCusId())) { - params.put("cus_id", balanceAcctReq.getCusId()); - } - if (!StringUtils.isBlank(balanceAcctReq.getMchId())) { - params.put("mch_id", balanceAcctReq.getMchId()); - } - return BalanceAcct.retrieveByUserId(params); - } - - - /** - * 冻结/解冻电子账簿 - * - * @param balanceAcctFreezeReq 电子账簿ID - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctFreezeResp freeze(BalanceAcctFreezeReq balanceAcctFreezeReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_request_no", balanceAcctFreezeReq.getOutRequestNo()); - params.put("balance_acct_id", balanceAcctFreezeReq.getBalanceAcctId()); - params.put("freeze", balanceAcctFreezeReq.getFreeze()); - if(!StringUtils.isBlank(balanceAcctFreezeReq.getRemark())){ - params.put("remark", balanceAcctFreezeReq.getRemark()); - } - - return BalanceAcctFreeze.create(params); - } - - /** - * 冻结/解冻结果查询(系统订单号) - * - * @param balanceAcctFreezeId 系统订单号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctFreezeResp retrieveFreezeById(String balanceAcctFreezeId) throws UpyztException { - return BalanceAcctFreeze.retrieveById(balanceAcctFreezeId); - } - - - /** - * 冻结/解冻结果查询(平台订单号) - * - * @param outRequestNo 平台订单号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctFreezeResp retrieveFreezeByOutRequestNo(String outRequestNo) throws UpyztException { - return BalanceAcctFreeze.retrieveByOutRequestNo(outRequestNo); - } - - - /** - * 注销电子账簿 - * - * @param balanceAcctId 电子账簿ID - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceAcctDeleteResp removeById(String balanceAcctId) throws UpyztException { - return BalanceAcct.removeById(balanceAcctId); - } - - - /** - * 电子账簿流水查询 - * - * @param balanceAcctId 电子账簿ID - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static BalanceTxnPaginationResp page(String balanceAcctId) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("balance_acct_id", balanceAcctId); - params.put("start_at", OffsetDateTime.now().toString()); - return BalanceTransaction.page(params); - } - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/CusApplicationExample.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/CusApplicationExample.java deleted file mode 100644 index 42b78f9..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/CusApplicationExample.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.account.req.UserWithdrawalReq; -import com.stylefeng.guns.modular.system.model.UserWithdrawal; -import com.stylefeng.guns.modular.system.util.UUIDUtil; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.CusApplication; -import com.unionpay.upyzt.resp.CusApplicationResp; -import com.unionpay.upyzt.resp.CusApplicationSmsCodeResp; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; - -@Slf4j -public class CusApplicationExample implements Serializable { - - - /** - * 个人用户进件-短信验证码 - * - * @return 返回 - * @throws UpyztException 异常 - */ - public static CusApplicationSmsCodeResp smsCode(String phone) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("mobile_number", phone); - return CusApplication.sendSmsCode(params); - } - - /** - * 个人用户首次进件 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static CusApplicationResp create(UserWithdrawalReq userWithdrawalReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - Map<String, Object> idCard = new HashMap<>(); - idCard.put("number", Upyzt.encryptField(userWithdrawalReq.getCertificateCode())); - idCard.put("name", Upyzt.encryptField(userWithdrawalReq.getCertificateName())); - idCard.put("valid_time", userWithdrawalReq.getCertificateExpireTime()); - idCard.put("copy", userWithdrawalReq.getCopy1()); - idCard.put("national", userWithdrawalReq.getCopy2()); - - Map<String, Object> settleAcct = new HashMap<>(); - settleAcct.put("name", Upyzt.encryptField(userWithdrawalReq.getOpenAccountName())); - settleAcct.put("bank_acct_no", Upyzt.encryptField(userWithdrawalReq.getBankCardCode())); - settleAcct.put("bank_branch_code", userWithdrawalReq.getBankBranchCode()); - settleAcct.put("bank_code", userWithdrawalReq.getBankCode()); - - params.put("out_request_no", userWithdrawalReq.getOutRequestNo()); - params.put("id_card", idCard); - params.put("mobile_number", Upyzt.encryptField(userWithdrawalReq.getPhone())); - params.put("settle_acct", settleAcct); - params.put("sms_code", userWithdrawalReq.getCode()); - params.put("password", Upyzt.encryptField(userWithdrawalReq.getTransactionAuthorizationCode())); - - return CusApplication.create(params); - } - - /** - * 个人用户进件状态查询(系统订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static CusApplicationResp retrieveById(String cusApplicationId) throws UpyztException { - return CusApplication.retrieveById(cusApplicationId); - } - - /** - * 修改个人用户信息 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static CusApplicationResp renew(UserWithdrawal userWithdrawal) throws Exception { - - Map<String, Object> params = new HashMap<>(); - Map<String, Object> idCard = new HashMap<>(); - idCard.put("copy", userWithdrawal.getIdCardFrontPicture()); - idCard.put("national", userWithdrawal.getIdCardReversePicture()); - idCard.put("number", Upyzt.encryptField(userWithdrawal.getCertificateCode())); - idCard.put("name", Upyzt.encryptField(userWithdrawal.getCertificateName())); - idCard.put("valid_time", userWithdrawal.getCertificateExpireTime()); - - Map<String, Object> settleAcct = new HashMap<>(); - settleAcct.put("name", Upyzt.encryptField(userWithdrawal.getOpenAccountName())); - settleAcct.put("bank_acct_no", Upyzt.encryptField(userWithdrawal.getBankCardCode())); - settleAcct.put("bank_code", userWithdrawal.getBankCode()); - settleAcct.put("bank_branch_code", userWithdrawal.getBankBranchCode()); - - params.put("cus_id", userWithdrawal.getCusId()); - params.put("out_request_no", UUIDUtil.getRandomCode(16)); - params.put("id_card", idCard); - params.put("mobile_number", Upyzt.encryptField(userWithdrawal.getPhone())); - params.put("settle_acct", settleAcct); - params.put("password", Upyzt.encryptField(userWithdrawal.getTransactionAuthorizationCode())); - params.put("sms_code", userWithdrawal.getCode()); - - return CusApplication.renew(params); - } - - /** - * 个人用户进件状态查询(平台订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static CusApplicationResp retrieveByOutRequestNo(String outRequestNo) throws UpyztException { - return CusApplication.retrieveByOutRequestNo(outRequestNo); - } - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/DepositExample.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/DepositExample.java deleted file mode 100644 index d3dce8a..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/DepositExample.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.mock.MockData; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.Deposit; -import com.unionpay.upyzt.resp.DepositResp; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; - -@Slf4j -public class DepositExample implements Serializable { - - - /** - * 支付充值 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static DepositResp create(DepositReq depositReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_order_no", depositReq.getOutOrderNo()); - params.put("sent_at", OffsetDateTime.now().toString()); - params.put("amount", depositReq.getAmount()); - params.put("balance_acct_id", depositReq.getBalanceAcctId()); - params.put("deposit_type", depositReq.getDepositType()); - params.put("payment_type", depositReq.getPaymentType()); - params.put("payment_trade_no", depositReq.getPaymentTradeNo()); - params.put("payment_succeeded_at", OffsetDateTime.now().toString()); -// params.put("remark", "用于 SDK 示例测试"); -// params.put("metadata", MockData.metadata()); - params.put("extra", MockData.depositExtra(depositReq)); - if(Objects.nonNull(depositReq.getDiscountAmount())){ - params.put("total_amount", depositReq.getTotalAmount()); - params.put("discount_amount", depositReq.getDiscountAmount()); - } - return Deposit.create(params); - } - - /** - * 支付充值订单查询(系统订单号) - * @param depositId 系统订单号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static DepositResp retrieveById(String depositId) throws UpyztException { - return Deposit.retrieveById(depositId); - } - - /** - * 支付充值订单查询(平台订单号) - * @param outOrderNo 平台订单号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static DepositResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException { - return Deposit.retrieveByOutOrderNo(outOrderNo); - } - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/MediaExample.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/MediaExample.java deleted file mode 100644 index 812ba5f..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/MediaExample.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.Media; -import com.unionpay.upyzt.resp.MediaResp; -import org.springframework.web.multipart.MultipartFile; - -import java.io.File; -import java.io.IOException; -import java.io.Serializable; - -public class MediaExample implements Serializable { - - - /** - * 上传图片 - * - * @return 返回参数 - */ - public static MediaResp uploadImage(MultipartFile multipartFile) throws UpyztException { - MediaResp mediaResp = null; - try { - String originalFilename = multipartFile.getOriginalFilename(); - String[] filename = originalFilename.split("\\."); - System.out.println("tupian::"+filename[0]+"//"+filename[1]); - File file=File.createTempFile(filename[0], "."+filename[1]); - multipartFile.transferTo(file); - file.deleteOnExit(); - System.out.println("file:"+file.getName()); - mediaResp = Media.uploadImage(file); - } catch (IOException e) { - e.printStackTrace(); - } - return mediaResp; - } - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/PaymentExample.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/PaymentExample.java deleted file mode 100644 index 2b18b08..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/PaymentExample.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.mock.MockData; -import com.stylefeng.guns.modular.cloudPayment.req.PaymentReq; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.Payment; -import com.unionpay.upyzt.resp.PaymentResp; -import com.unionpay.upyzt.util.StringUtils; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - -@Slf4j -public class PaymentExample implements Serializable { - - - /** - * 消费(转账) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public PaymentResp create(PaymentReq paymentReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_order_no", paymentReq.getOutOrderNo()); - params.put("sent_at", OffsetDateTime.now().toString()); - params.put("amount", paymentReq.getAmount()); - params.put("pay_balance_acct_id", paymentReq.getPayBalanceAcctId()); - params.put("recv_balance_acct_id", paymentReq.getRecvBalanceAcctId()); - if(!StringUtils.isBlank(paymentReq.getPassword())){ - params.put("password", Upyzt.encryptField(paymentReq.getPassword())); - } -// params.put("remark", "用于 SDK 示例测试"); -// params.put("metadata", MockData.metadata()); - params.put("extra", MockData.paymentExtra(paymentReq)); - return Payment.create(params); - } - - /** - * 消费(转账)订单查询(系统订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public PaymentResp retrieveById(String paymentId) throws UpyztException { - return Payment.retrieveById(paymentId); - } - - /** - * 消费(转账)订单查询(平台订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public PaymentResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException { - return Payment.retrieveByOutOrderNo(outOrderNo); - } - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/SettleAcctExample.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/SettleAcctExample.java deleted file mode 100644 index 37ee90a..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/SettleAcctExample.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.SettleAcct; -import com.unionpay.upyzt.resp.SettleAcctDeleteResp; -import com.unionpay.upyzt.resp.SettleAcctListResp; -import com.unionpay.upyzt.resp.SettleAcctResp; -import com.unionpay.upyzt.util.StringUtils; - -import java.util.HashMap; -import java.util.Map; - -public class SettleAcctExample { - - /** - * 个人用户号(与 mchId 二选一) - */ - private final String cusId; - - /** - * 二级商户号(与 cusId 二选一) - */ - private final String mchId; - - public SettleAcctExample(String cusId, String mchId) { - this.cusId = cusId; - this.mchId = mchId; - } - - - /** - * 新增绑定账户 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctResp create(UserBankAccountReq userBankAccountReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_request_no", userBankAccountReq.getOutRequestNo()); - if (!StringUtils.isBlank(userBankAccountReq.getCusId())) { - params.put("cus_id", userBankAccountReq.getCusId()); - }else { - params.put("mch_id", userBankAccountReq.getMchId()); - } - params.put("bank_acct_type", String.valueOf(userBankAccountReq.getBankAcctType())); - params.put("bank_code", userBankAccountReq.getBankCode()); -// params.put("bank_address_code", ""); - params.put("bank_branch_code", userBankAccountReq.getBankBranchCode()); - params.put("bank_acct_no", Upyzt.encryptField(userBankAccountReq.getBankCardCode())); - params.put("mobile_number", Upyzt.encryptField(userBankAccountReq.getPhone())); - // 是否必传取决于平台业务参数配置 - params.put("sms_code", userBankAccountReq.getCode()); - // 拓展字段配合业务参数, 无业务要求无需传 - // params.put("extra", new HashMap<String, String>()); - return SettleAcct.create(params); - } - - /** - * 二级商户进件状态查询(绑定账户编号) - * - * @param settleAcctId 绑定账户编号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctResp retrieveById(String settleAcctId) throws UpyztException { - return SettleAcct.retrieveById(settleAcctId); - } - - /** - * 绑定账户查询(平台订单号) - * - * @param outRequestNo 平台订单号 - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctResp retrieveByOutRequestNo(String outRequestNo) throws UpyztException { - return SettleAcct.retrieveByOutRequestNo(outRequestNo); - } - - - /** - * 绑定账户查询(用户ID) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctListResp retrieveByUserId(UserBankAccountReq userBankAccountReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - if (!StringUtils.isBlank(userBankAccountReq.getCusId())) { - params.put("cus_id", userBankAccountReq.getCusId()); - }else { - params.put("mch_id", userBankAccountReq.getMchId()); - } - // 用于筛选指定状态的绑定账户列表,不传表示无筛选。 - // 枚举值:processing: 验证中|succeeded: 验证成功|failed: 验证失败|blocked: 验证锁定中,需联系银行业务人员触发重新打款|needless: 无需验证 - params.put("verify_status", userBankAccountReq.getVerifyStatus()); - return SettleAcct.retrieveByUserId(params); - } - - /** - * 验证绑定账户(打款金额验证) (用validateBySettleAcctId替代) - * - * @return 返回参数 - * @throws UpyztException 异常 - * @deprecated 1.3.2后续迭代将删除,可使用validateBySettleAcctId替代 - */ - @Deprecated - public static SettleAcctResp validate(String settleAcctId,Integer payAmount) throws UpyztException { - return validateBySettleAcctId(settleAcctId,payAmount); - } - - /** - * 打款金额验证(绑定账户编号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctResp validateBySettleAcctId(String settleAcctId,Integer payAmount) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("pay_amount", payAmount); - return SettleAcct.validateBySettleAcctId(settleAcctId, params); - } - - /** - * 打款金额验证(用户银行账号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctResp validateByBankAcctNo(String mchId, SettleAcctResp settleAcctResp,Integer payAmount) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("mch_id", mchId); - params.put("bank_acct_no", Upyzt.encryptField(settleAcctResp.getBankAcctNo())); - params.put("pay_amount", payAmount); - return SettleAcct.validateByBankAcctNo(params); - } - - /** - * 删除绑定账户 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static SettleAcctDeleteResp removeById(String settleAcctId) throws UpyztException { - return SettleAcct.removeById(settleAcctId); - } - - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalDepositExample.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalDepositExample.java deleted file mode 100644 index 1727589..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalDepositExample.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.mock.MockData; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.WithdrawableDeposit; -import com.unionpay.upyzt.resp.WithdrawableDepositResp; -import lombok.extern.slf4j.Slf4j; - -import java.io.Serializable; -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - -@Slf4j -public class WithdrawalDepositExample implements Serializable { - - - /** - * 可提现充值 - * @param depositReq - * @return - * @throws UpyztException - */ - public static WithdrawableDepositResp create(DepositReq depositReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_order_no", depositReq.getOutOrderNo()); - params.put("sent_at", OffsetDateTime.now().toString()); - params.put("amount", depositReq.getAmount()); - params.put("balance_acct_id", depositReq.getBalanceAcctId()); - params.put("deposit_type", depositReq.getDepositType()); - params.put("payment_type", depositReq.getPaymentType()); - params.put("payment_trade_no", depositReq.getPaymentTradeNo()); - params.put("payment_succeeded_at", OffsetDateTime.now().toString()); -// params.put("remark", "用于 SDK 示例测试"); - params.put("extra", MockData.depositExtra(depositReq)); - params.put("metadata", MockData.metadata()); - log.info("------- 可提现充值 -------"); - WithdrawableDepositResp resp = WithdrawableDeposit.create(params); - log.info("可提现充值:{}",resp); - return resp; - } - - /** - * 可提现充值订单查询(系统订单号) - * @param depositId - * @return - * @throws UpyztException - */ - public static WithdrawableDepositResp retrieveById(String depositId) throws UpyztException { - log.info("------- 可提现充值订单查询(系统订单号) -------"); - WithdrawableDepositResp resp = WithdrawableDeposit.retrieveById(depositId); - log.info("可提现充值订单查询(系统订单号):{}",resp); - return resp; - } - - /** - * 可提现充值订单查询(平台订单号) - * @param outOrderNo - * @return - * @throws UpyztException - */ - public static WithdrawableDepositResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException { - log.info("------- 可提现充值订单查询(平台订单号) -------"); - WithdrawableDepositResp resp = WithdrawableDeposit.retrieveByOutOrderNo(outOrderNo); - log.info("可提现充值订单查询(平台订单号):{}",resp); - return resp; - } -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalExample.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalExample.java deleted file mode 100644 index a806062..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalExample.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.example; - -import com.stylefeng.guns.modular.cloudPayment.mock.MockData; -import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq; -import com.unionpay.upyzt.Upyzt; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.model.Withdrawal; -import com.unionpay.upyzt.resp.WithdrawalResp; -import com.unionpay.upyzt.util.StringUtils; - -import java.io.Serializable; -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - -public class WithdrawalExample implements Serializable { - - - /** - * 提现 - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static WithdrawalResp create(WithdrawalReq withdrawalReq) throws UpyztException { - Map<String, Object> params = new HashMap<>(); - params.put("out_order_no", withdrawalReq.getOutOrderNo()); - params.put("sent_at", OffsetDateTime.now().toString()); - params.put("amount", withdrawalReq.getAmount()); - params.put("balance_acct_id", withdrawalReq.getBalanceAcctId()); - params.put("bank_acct_no", Upyzt.encryptField(withdrawalReq.getBankAcctNo())); - params.put("password", Upyzt.encryptField(withdrawalReq.getPassword())); -// params.put("remark", "用于 SDK 示例测试"); -// params.put("bank_memo", "银行附言"); - - // 以下参数绑定账户无需填写,提现到非绑定账户时必填 - if(!StringUtils.isBlank(withdrawalReq.getBankBranchCode())){ - params.put("bank_acct_type", withdrawalReq.getBankAcctType()); - params.put("bank_branch_code", withdrawalReq.getBankBranchCode()); - params.put("bank_code", withdrawalReq.getBankBranchCode()); - params.put("name", Upyzt.encryptField(withdrawalReq.getName())); - // 仅提现到个人非绑定账户时必填 - params.put("mobile_number", Upyzt.encryptField(withdrawalReq.getMobileNumber())); - params.put("service_fee", withdrawalReq.getServiceFee()); -// params.put("metadata", MockData.metadata()); - } - - params.put("extra", MockData.withdrawalExtra(withdrawalReq)); - - return Withdrawal.create(params); - } - - /** - * 提现订单查询(系统订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static WithdrawalResp retrieveById(String withdrawalId) throws UpyztException { - return Withdrawal.retrieveById(withdrawalId); - } - - /** - * 提现订单查询(平台订单号) - * - * @return 返回参数 - * @throws UpyztException 异常 - */ - public static WithdrawalResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException { - return Withdrawal.retrieveByOutOrderNo(outOrderNo); - } - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/extra/ExpandExtra.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/extra/ExpandExtra.java deleted file mode 100644 index 1a3b703..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/extra/ExpandExtra.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.extra; - -import com.unionpay.upyzt.param.Extra; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -@Data -@ApiModel(value = "拓展字段") -public class ExpandExtra extends Extra { - - @ApiModelProperty(value = "结果回调地址") - private String notify_url; - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/mock/MockData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/mock/MockData.java deleted file mode 100644 index b803281..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/mock/MockData.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.mock; - -import com.stylefeng.guns.modular.cloudPayment.extra.ExpandExtra; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.stylefeng.guns.modular.cloudPayment.req.PaymentReq; -import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq; -import com.unionpay.upyzt.param.Extra; -import com.unionpay.upyzt.param.ProductInfo; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author yf.zhao - * @version 1.0 - * @since 2020/10/29 - */ -public class MockData { - - /** - * 支付充值拓展字段封装 - * - * @return - */ - public static Extra depositExtra(DepositReq depositReq) { - ExpandExtra extra = new ExpandExtra(); - List<ProductInfo> productInfos = new ArrayList<>(); - ProductInfo productInfo = new ProductInfo(); - productInfo.setOrderAmount(depositReq.getOrderAmount()); - productInfo.setOrderNo(depositReq.getOrderNo()); - productInfo.setProductCount(depositReq.getProductCount()); - productInfo.setProductName(depositReq.getProductName()); - productInfos.add(productInfo); - extra.setProductInfos(productInfos); - extra.setNotify_url(depositReq.getNotifyUrl()); - return extra; - } - - /** - * 支付充值拓展字段封装 - * - * @return - */ - public static Extra withdrawalExtra(WithdrawalReq withdrawalReq) { - ExpandExtra extra = new ExpandExtra(); - extra.setNotify_url(withdrawalReq.getNotifyUrl()); - return extra; - } - - /** - * 消费转账拓展字段封装 - * - * @return - */ - public static Extra paymentExtra(PaymentReq paymentReq) { - ExpandExtra extra = new ExpandExtra(); - List<ProductInfo> productInfos = new ArrayList<>(); - ProductInfo productInfo = new ProductInfo(); - productInfo.setOrderAmount(paymentReq.getOrderAmount()); - productInfo.setOrderNo(paymentReq.getOrderNo()); - productInfo.setProductCount(paymentReq.getProductCount()); - productInfo.setProductName(paymentReq.getProductName()); - productInfos.add(productInfo); - extra.setProductInfos(productInfos); - extra.setNotify_url(paymentReq.getNotifyUrl()); - return extra; - } - - /** - * 分账拓展字段封装 - * - * @return - */ - public static Extra allocationExtra(AllocationReq allocationReq) { - ExpandExtra extra = new ExpandExtra(); - List<ProductInfo> productInfos = new ArrayList<>(); - ProductInfo productInfo = new ProductInfo(); - productInfo.setOrderAmount(allocationReq.getOrderAmount()); - productInfo.setOrderNo(allocationReq.getOrderNo()); - productInfo.setProductCount(allocationReq.getProductCount()); - productInfo.setProductName(allocationReq.getProductName()); - productInfos.add(productInfo); - extra.setProductInfos(productInfos); - extra.setNotify_url(allocationReq.getNotifyUrl()); - return extra; - } - - public static Map<String, Object> metadata() { - Map<String, Object> metadata = new HashMap<>(); - metadata.put("custom_key", "这里平台可以自定义参数"); - return metadata; - } -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AcctPasswordReq.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AcctPasswordReq.java deleted file mode 100644 index 9cecc03..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AcctPasswordReq.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "修改交易授权码Req") -public class AcctPasswordReq implements Serializable { - - @ApiModelProperty(value = "二级商户或个人用户的电子账簿 ID",required = true) - private String balanceAcctId; - - @ApiModelProperty(value = "原交易授权码",required = true) - private String originalPassword; - - @ApiModelProperty(value = "新交易授权码",required = true) - private String newPassword; - - @ApiModelProperty(value = "验证码",required = true) - private String code; - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AllocationReq.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AllocationReq.java deleted file mode 100644 index 35a5c5c..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AllocationReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "分账创建Req") -public class AllocationReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outOrderNo; - - @ApiModelProperty(value = "付款电子账簿ID",required = true) - private String payBalanceAcctId; - - @ApiModelProperty(value = "收款电子账簿ID",required = true) - private String recvBalanceAcctId; - - @ApiModelProperty(value = "金额",required = true) - private Integer amount; - - @ApiModelProperty(value = "交易授权码",required = true) - private String password; - - @ApiModelProperty(value = "订单编号") - private String orderNo; - - @ApiModelProperty(value = "订单金额") - private Long orderAmount; - - @ApiModelProperty(value = "商品名称") - private String productName; - - @ApiModelProperty(value = "商品数量") - private Integer productCount; - - @ApiModelProperty(value = "交易结果通知") - private String notifyUrl; - - - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctFreezeReq.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctFreezeReq.java deleted file mode 100644 index f025261..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctFreezeReq.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "冻结/解冻电子帐簿Req") -public class BalanceAcctFreezeReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outRequestNo; - - @ApiModelProperty(value = "电子账簿 ID",required = true) - private String balanceAcctId; - - @ApiModelProperty(value = "个人用户ID true: 冻结 false: 解冻",required = true) - private Boolean freeze; - - @ApiModelProperty(value = "备注信息") - private String remark; - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctReq.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctReq.java deleted file mode 100644 index 0ad0a17..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctReq.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "电子帐簿Req") -public class BalanceAcctReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outRequestNo; - - @ApiModelProperty(value = "二级商户ID 和个人用户ID 二选一填写") - private String mchId; - - @ApiModelProperty(value = "个人用户ID 和二级商户ID 二选一填写") - private String cusId; - - @ApiModelProperty(value = "交易授权码",required = true) - private String password; - - @ApiModelProperty(value = "备注信息") - private String remark; - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/DepositReq.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/DepositReq.java deleted file mode 100644 index ad5405b..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/DepositReq.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "支付充值Req") -public class DepositReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outOrderNo; - - @ApiModelProperty(value = "总金额;单位分;discount_amount存在时该字段必传") - private Integer totalAmount; - - @ApiModelProperty(value = "支付金额 单位为分,充值订单用户实际支付金额,不含平台优惠金额",required = true) - private Integer amount; - - @ApiModelProperty(value = "平台优惠金额") - private Integer discountAmount; - - @ApiModelProperty(value = "电子账簿ID",required = true) - private String balanceAcctId; - - @ApiModelProperty(value = "记账类型 枚举值:1. 充值 2. 消费",required = true) - private String depositType; - - @ApiModelProperty(value = "支付类型",required = true) - private String paymentType; - - @ApiModelProperty(value = "支付通道订单号",required = true) - private String paymentTradeNo; - - @ApiModelProperty(value = "支付成功时间",required = true) - private String paymentSucceededAt; - - @ApiModelProperty(value = "订单编号") - private String orderNo; - - @ApiModelProperty(value = "订单金额") - private Long orderAmount; - - @ApiModelProperty(value = "商品名称") - private String productName; - - @ApiModelProperty(value = "商品数量") - private Integer productCount; - - @ApiModelProperty(value = "交易结果通知地址") - private String notifyUrl; - - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/PaymentReq.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/PaymentReq.java deleted file mode 100644 index 8e668f0..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/PaymentReq.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "消费转账Req") -public class PaymentReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outOrderNo; - - @ApiModelProperty(value = "金额 单位为分,要求不能带小数点",required = true) - private String amount; - - @ApiModelProperty(value = "付款电子账簿 ID",required = true) - private String payBalanceAcctId; - - @ApiModelProperty(value = "金额 单位为分,要求不能带小数点",required = true) - private String recvBalanceAcctId; - - @ApiModelProperty(value = "交易授权码") - private String password; - - @ApiModelProperty(value = "订单编号") - private String orderNo; - - @ApiModelProperty(value = "订单金额") - private Long orderAmount; - - @ApiModelProperty(value = "商品名称") - private String productName; - - @ApiModelProperty(value = "商品数量") - private Integer productCount; - - @ApiModelProperty(value = "交易结果通知") - private String notifyUrl; - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/UserBankAccountReq.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/UserBankAccountReq.java deleted file mode 100644 index 24a8764..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/UserBankAccountReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import com.baomidou.mybatisplus.annotations.TableField; -import com.stylefeng.guns.modular.system.model.UserBankAccount; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString -@ApiModel(value = "绑定账户Req") -public class UserBankAccountReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outRequestNo; - - @ApiModelProperty(value = "个人用户ID 和 二级商户 ID 选一填写") - private String cusId; - - @ApiModelProperty(value = "二级商户ID 和 个人用户 ID 选一填写") - private String mchId; - - @ApiModelProperty(value = "开户银行编码") - private String bankCode; - - @ApiModelProperty(value = "开户银行联行号") - private String bankBranchCode; - - @ApiModelProperty(value = "银行卡号",required = true) - private String bankCardCode; - - @ApiModelProperty(value = "1 - 对私银行卡 2 - 对公银行账户",required = true) - private String bankAcctType; - - @ApiModelProperty(value = "手机号",required = true) - private String phone; - - @ApiModelProperty(value = "账户验证状态 processing: 验证中 succeeded: 验证成功 failed: 验证失败 needless: 无需验证 blocked: 验证锁定中") - private String verifyStatus; - - @ApiModelProperty(value = "验证码",required = true) - private String code; - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/WithdrawalReq.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/WithdrawalReq.java deleted file mode 100644 index 7ed22e2..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/WithdrawalReq.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.stylefeng.guns.modular.cloudPayment.req; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; -@Data -@ToString -@ApiModel(value = "提现创建Req") -public class WithdrawalReq implements Serializable { - - @ApiModelProperty(value = "平台订单号",required = true) - private String outOrderNo; - - @ApiModelProperty(value = "金额 单位分",required = true) - private Integer amount; - - @ApiModelProperty(value = "平台手续费 单位分 仅提现到个人非绑定账户时必填") - private Integer serviceFee; - - @ApiModelProperty(value = "电子账簿 ID",required = true) - private String balanceAcctId; - - @ApiModelProperty(value = "提现目标银行账号",required = true) - private String bankAcctNo; - - @ApiModelProperty(value = "目标银行账号类型 提现至非绑定账户时必填枚举值:1 - 对私银行卡2 - 对公银行账户") - private String bankAcctType; - - @ApiModelProperty(value = "开户银行联行号 提现至非绑定账户时必填") - private String bankBranchCode; - - @ApiModelProperty(value = "开户银行编号 提现至非绑定账户时必填") - private String bankCode; - - @ApiModelProperty(value = "开户名称 提现至非绑定账户时必填") - private String name; - - @ApiModelProperty(value = "手机号 仅提现到个人非绑定账户时必填") - private String mobileNumber; - - @ApiModelProperty(value = "交易授权码 提现至非绑定账户时必填") - private String password; - - @ApiModelProperty(value = "交易结果通知") - private String notifyUrl; - - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java index 2e47e41..bbde7e5 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java @@ -2,26 +2,14 @@ import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal; import com.stylefeng.guns.modular.account.service.ITEnterpriseWithdrawalService; import com.stylefeng.guns.modular.account.service.UserWithdrawalService; -import com.stylefeng.guns.modular.account.util.Base64Util; -import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample; -import com.stylefeng.guns.modular.cloudPayment.example.DepositExample; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityInfoWrapper; import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper; import com.stylefeng.guns.modular.crossCity.warpper.OrderWarpper; -import com.stylefeng.guns.modular.enums.PaymentTypeEnum; -import com.stylefeng.guns.modular.system.model.Company; -import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.Reassign; -import com.stylefeng.guns.modular.system.model.UserWithdrawal; import com.stylefeng.guns.modular.system.service.ICompanyService; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IReassignService; @@ -29,8 +17,6 @@ import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.SystemException; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; -import com.unionpay.upyzt.resp.AllocationResp; -import com.unionpay.upyzt.resp.DepositResp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -41,11 +27,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; -import java.math.BigDecimal; -import java.text.SimpleDateFormat; -import java.util.Date; import java.util.Map; -import java.util.Objects; @Api @@ -362,62 +344,5 @@ } } - private void cloudPay(Integer uid,String total_fee,String transaction_id,int type) { - if(type==1){ - BigDecimal divide = new BigDecimal(total_fee).divide(new BigDecimal(100)); - total_fee=divide.toString(); - } - Driver driver = driverService.selectById(uid); - if(Objects.isNull(driver)){ - throw new RuntimeException("该司机不存在!"+uid); - } - System.out.println("回调参数:"+total_fee+"---"+transaction_id); - // 查询平台账户 - Company company = companyService.selectOne(new EntityWrapper<Company>() - .eq("type", 1) - .last("LIMIT 1")); - System.out.println("查询平台账户==============="+company); - // 查询平台开户信息 - TEnterpriseWithdrawal enterpriseWithdrawal = enterpriseWithdrawalService.selectOne(new EntityWrapper<TEnterpriseWithdrawal>() - .eq("companyId", company.getId())); // 替换为公司id - System.out.println("查询平台开户信息==============="+enterpriseWithdrawal); - UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() - .eq("phone", driver.getPhone()) - .last("LIMIT 1")); -// DepositReq depositReq = new DepositReq(); -// depositReq.setOutOrderNo(ToolUtil.getRandomString(32)); -// depositReq.setTotalAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).intValue()); // 总金额 -// depositReq.setAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).intValue()); // 支付金额 -// depositReq.setDiscountAmount(0); // 优惠金额 -// depositReq.setBalanceAcctId(driverWith.getBalanceAcctId()); -// depositReq.setDepositType("1"); -// depositReq.setPaymentType(PaymentTypeEnum.CUP_APP.getCode()); -// depositReq.setPaymentTradeNo(transaction_id); // 系统交易流水号 -// depositReq.setPaymentSucceededAt(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())); -// depositReq.setOrderNo(transaction_id); -// depositReq.setOrderAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).longValue()); -// depositReq.setProductName("用户支付充值"); -// depositReq.setProductCount(1); - try { -// DepositResp depositResp = DepositExample.create(depositReq); -// System.err.println(depositResp); - AllocationReq allocationReq = new AllocationReq(); - allocationReq.setPayBalanceAcctId(driverWith.getBalanceAcctId()); // 发送方 - allocationReq.setRecvBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId()); // 接收方 - BigDecimal multiply = new BigDecimal(100).multiply(new BigDecimal(total_fee)); - allocationReq.setAmount(multiply.intValue()); // 金额 - allocationReq.setPassword(Base64Util.decode(enterpriseWithdrawal.getTransactionAuthorizationCode())); // 密码 - allocationReq.setOrderNo(transaction_id); - allocationReq.setOrderAmount(Long.valueOf(total_fee)); - allocationReq.setProductName("订单改派"); - allocationReq.setProductCount(1); - AllocationResp allocationResp = AllocationExample.create(allocationReq); - System.err.println("司机分账信息:"+allocationResp); - - } catch (Exception e) { - e.printStackTrace(); - } - - } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java index 508e90a..390f933 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java @@ -6,12 +6,8 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal; import com.stylefeng.guns.modular.account.service.ITEnterpriseWithdrawalService; import com.stylefeng.guns.modular.account.service.UserWithdrawalService; -import com.stylefeng.guns.modular.account.util.Base64Util; -import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; import com.stylefeng.guns.modular.smallLogistics.dao.OrderLogisticsMapper; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread; @@ -23,15 +19,10 @@ import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.warpper.MerchantCouponListWarpper; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.resp.AllocationResp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @@ -402,59 +393,12 @@ income.setObjectId(orderLogistics.getCompanyId()); incomeService.insert(income); - // TODO 司机云闪付 超时扣款 司机电子余额转账到平台 - // 超时扣款 司机电子余额转账到平台 - divideAccounts(orderLogistics.getDriverId(),timeOutMoney,orderLogistics.getOrderNum()); } } this.updateById(orderLogistics); return ResultUtil.success(); - } - - /** - * 分账 - */ - private void divideAccounts(Integer driverId,double amount,String orderNum){ - try{ - - // 查询平台开户信息 - TEnterpriseWithdrawal enterpriseWithdrawal = enterpriseWithdrawalService.selectOne(new EntityWrapper<TEnterpriseWithdrawal>() - .eq("companyId", 1) - .last("LIMIT 1")); - if(Objects.isNull(enterpriseWithdrawal)){ - throw new RuntimeException("平台开户信息为空"); - } - // 司机开户信息 - Driver driver = driverService.selectById(driverId); - if(Objects.isNull(driver)){ - throw new RuntimeException("司机信息不存在"); - } - // TODO 司机进件信息 - UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() - .eq("phone", driver.getPhone()) - .last("LIMIT 1")); - if(Objects.isNull(driverWith)){ - throw new RuntimeException("司机开户信息为空"); - } - - AllocationReq allocationReq = new AllocationReq(); - allocationReq.setOutOrderNo(orderNum); - allocationReq.setPayBalanceAcctId(driverWith.getBalanceAcctId()); // 发送方 - allocationReq.setRecvBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId()); // 接收方 - BigDecimal multiply = new BigDecimal(100).multiply(BigDecimal.valueOf(amount)); - allocationReq.setAmount(multiply.intValue()); // 金额 - allocationReq.setPassword(Base64Util.decode(enterpriseWithdrawal.getTransactionAuthorizationCode())); // 密码 - allocationReq.setOrderNo(orderNum); - allocationReq.setOrderAmount((long) multiply.intValue()); - allocationReq.setProductName("小件物流超时扣款"); - allocationReq.setProductCount(1); - AllocationResp allocationResp = AllocationExample.create(allocationReq); - System.err.println("小件物流超时扣款:"+allocationResp); - }catch (UpyztException e){ - e.printStackTrace(); - } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java index cfa2773..1f518de 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java @@ -1,24 +1,17 @@ package com.stylefeng.guns.modular.system.service.impl; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.account.controller.AppOrderController; -import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal; import com.stylefeng.guns.modular.account.service.ITEnterpriseWithdrawalService; import com.stylefeng.guns.modular.account.service.UserWithdrawalService; import com.stylefeng.guns.modular.account.unionpay.GetOpenBodySig; import com.stylefeng.guns.modular.account.unionpay.QrCodeConfiguration; import com.stylefeng.guns.modular.account.unionpay.Util; -import com.stylefeng.guns.modular.account.util.Base64Util; -import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample; -import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; -import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsSpreadService; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.dao.DispatchMapper; @@ -29,7 +22,6 @@ import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; -import com.unionpay.upyzt.resp.AllocationResp; import org.apache.commons.lang.time.DateFormatUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -238,12 +230,8 @@ for(Dispatch dispatch : dispatches){ jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId()); } - - // TODO 司机云闪付 改派余额支付,司机电子账簿转账到平台 - if(BigDecimal.ZERO.compareTo(new BigDecimal(aDouble)) < 0){ - cloudPay(reassign.getOriginalDriverId(),aDouble,Util.getMerOrderId(qrCodeConfiguration.getMsgSrcId())); - } - + + } if(reassign.getPayType() == 4){ // TODO 司机云闪付 改派调起云闪付 @@ -255,44 +243,6 @@ return resultUtil; } - private void cloudPay(Integer uid,Double total_fee,String transaction_id) { - System.out.println(uid+"======"+total_fee+"====="+transaction_id); - Driver driver = driverService.selectById(uid); - if(Objects.isNull(driver)){ - throw new RuntimeException("该司机不存在!"+uid); - } - // 查询平台账户 - Company company = companyService.selectOne(new EntityWrapper<Company>() - .eq("type", 1) - .last("LIMIT 1")); - System.out.println("查询平台账户==============="+company); - // 查询平台开户信息 - TEnterpriseWithdrawal enterpriseWithdrawal = enterpriseWithdrawalService.selectOne(new EntityWrapper<TEnterpriseWithdrawal>() - .eq("companyId", company.getId())); // 替换为公司id - System.out.println("查询平台开户信息==============="+enterpriseWithdrawal); - // TODO 司机进件信息 - UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>() - .eq("phone", driver.getPhone()) - .last("LIMIT 1")); - try { - AllocationReq allocationReq = new AllocationReq(); - allocationReq.setOutOrderNo(transaction_id); - allocationReq.setPayBalanceAcctId(driverWith.getBalanceAcctId()); // 发送方 - allocationReq.setRecvBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId()); // 接收方 - BigDecimal multiply = new BigDecimal(100).multiply(new BigDecimal(total_fee)); - allocationReq.setAmount(multiply.intValue()); // 金额 - allocationReq.setPassword(Base64Util.decode(enterpriseWithdrawal.getTransactionAuthorizationCode())); // 密码 - allocationReq.setOrderNo(transaction_id); - allocationReq.setOrderAmount(multiply.longValue()); - allocationReq.setProductName("订单改派"); - allocationReq.setProductCount(1); - AllocationResp allocationResp = AllocationExample.create(allocationReq); - System.err.println("司机分账信息:"+allocationResp); - } catch (Exception e) { - e.printStackTrace(); - } - - } private ResultUtil placeAnOrder(BigDecimal amount, Integer type,Integer orderType,Integer reassignId) throws Exception { Reassign reassign = reassignMapper.selectById(reassignId); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java index c380b73..220b076 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java @@ -1,38 +1,35 @@ package com.stylefeng.guns.modular.system.util; -import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.modular.account.service.UserWithdrawalService; -import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample; -import com.stylefeng.guns.modular.system.model.UserWithdrawal; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IOrderService; import com.stylefeng.guns.modular.system.service.IUserMerchantCouponService; -import com.unionpay.upyzt.resp.CusApplicationResp; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.web.context.WebServerInitializedEvent; +import org.springframework.boot.web.server.WebServer; +import org.springframework.context.ApplicationListener; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.HashSet; -import java.util.List; import java.util.Set; -import java.util.stream.Collectors; /** * 定时任务工具类 */ @Component -public class TaskUtil { - +public class TaskUtil implements ApplicationListener<WebServerInitializedEvent> { + @Autowired private IDriverService driverService; - + @Autowired private IOrderService orderService; - + @Autowired private JGPushUtil jgPushUtil; - + @Autowired private IUserMerchantCouponService userMerchantCouponService; @Autowired @@ -64,23 +61,6 @@ } } - /** - * 每隔一分钟去处理的定时任务 - */ -// @Scheduled(fixedRate = 1000 * 60) -// public void userWith(){ -// try { -// List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>()); -// List<UserWithdrawal> collect = userWithdrawals.stream().filter(e -> "succeeded".equals(e.getApplicationStatus())).collect(Collectors.toList()); -// for (UserWithdrawal userWithdrawal : collect) { -// CusApplicationResp cusApplicationResp = CusApplicationExample.retrieveByOutRequestNo(userWithdrawal.getOutRequestNo()); -// System.out.println("请求订单号:"+userWithdrawal.getApplicationStatus()+"================="+cusApplicationResp); -// -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } @@ -98,33 +78,29 @@ e.printStackTrace(); } } - - - + + /** * 每天的凌晨执行的任务 */ @Scheduled(cron = "0 0 0 * * *") - public void taskDay(){ + public void taskDay() { try { //生成当天的司机活动 driverService.addTodayActivity(); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - - -// -// /** -// * 每月第一天的1点执行的任务 -// */ -// @Scheduled(cron = "0 0 1 1 * *") -// public void taskMonth(){ -// try { -// -// }catch (Exception e){ -// e.printStackTrace(); -// } -// } + + + @Override + public void onApplicationEvent(WebServerInitializedEvent event) { + // 获取环境对象 + WebServer webServer = event.getWebServer(); + // 获取端口号 + int port = webServer.getPort(); + // 打印端口号 + System.out.println("Spring Boot应用已启动,访问端口:" + port); + } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java new file mode 100644 index 0000000..d4a6672 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java @@ -0,0 +1,176 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.open.common.util.OpenApiClient; +import com.open.common.util.SystemParameterNames; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; +import lombok.extern.slf4j.Slf4j; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * 企业员工工具类 + * @author zhibing.pu + * @Date 2025/6/6 16:17 + */ +@Slf4j +public class EmployeeUtil { + + + /** + * 企业增加员工 + * @param request + * @return + */ + public static Boolean saveStaffNode(SaveStaffNodeRequest request){ + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/saveStaffNode"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content="";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Date nowdate = new Date(); + SimpleDateFormat date=new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-",""); + request.put(SystemParameterNames.getAppKey(), appKey); + request.put(SystemParameterNames.getMessage_id(), messageId); + request.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + request.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + request.put("content", content); + log.info("【企业增加员工】请求参数:" + JSON.toJSONString(request)); + String result = OpenApiClient.sendCommonHttpRequst(url,headers,"POST",skprivateKeyFile,timeStamp,request); + log.info("【企业增加员工】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String status = jsonObject.getString("status"); + if(!"0".equals(status)){ + log.error("【企业增加员工】请求失败:" + result); + return false; + } + return true; + } + + + /** + * 企业修改员工信息 + * @param request + * @return + */ + public static Boolean editStaffNode(EditStaffNodeRequest request){ + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/editStaffNode"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content="";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Date nowdate = new Date(); + SimpleDateFormat date=new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-",""); + request.put(SystemParameterNames.getAppKey(), appKey); + request.put(SystemParameterNames.getMessage_id(), messageId); + request.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + request.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + request.put("content", content); + log.info("【企业修改员工信息】请求参数:" + JSON.toJSONString(request)); + String result = OpenApiClient.sendCommonHttpRequst(url,headers,"POST",skprivateKeyFile,timeStamp,request); + log.info("【企业修改员工信息】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String status = jsonObject.getString("status"); + if(!"0".equals(status)){ + log.error("【企业修改员工信息】请求失败:" + result); + return false; + } + return true; + } + + + /** + * 企业删除人员 + * @param request + * @return + */ + public static Boolean ecrmDeleteStafNode(DeleteStafNodeRequest request){ + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/ecrmDeleteStafNode"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content="";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Date nowdate = new Date(); + SimpleDateFormat date=new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-",""); + request.put(SystemParameterNames.getAppKey(), appKey); + request.put(SystemParameterNames.getMessage_id(), messageId); + request.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + request.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + request.put("content", content); + log.info("【企业删除人员】请求参数:" + JSON.toJSONString(request)); + String result = OpenApiClient.sendCommonHttpRequst(url,headers,"POST",skprivateKeyFile,timeStamp,request); + log.info("【企业删除人员】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String status = jsonObject.getString("status"); + if(!"0".equals(status)){ + log.error("【企业删除人员】请求失败:" + result); + return false; + } + return true; + } + + + /** + * 根据员工ID获取人员信息 + * @param request + * @return + */ + public static StaffNodeInfo getStaffNode(GetStaffNodeRequest request){ + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getStaffNode"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content="";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Date nowdate = new Date(); + SimpleDateFormat date=new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-",""); + request.put(SystemParameterNames.getAppKey(), appKey); + request.put(SystemParameterNames.getMessage_id(), messageId); + request.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + request.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + request.put("content", content); + log.info("【根据员工ID获取人员信息】请求参数:" + JSON.toJSONString(request)); + String result = OpenApiClient.sendCommonHttpRequst(url,headers,"GET",skprivateKeyFile,timeStamp,request); + log.info("【根据员工ID获取人员信息】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String status = jsonObject.getString("status"); + if(!"0".equals(status)){ + log.error("【根据员工ID获取人员信息】请求失败:" + result); + return null; + } + StaffNodeInfo staffNodeInfo = jsonObject.getObject("data", StaffNodeInfo.class); + return staffNodeInfo; + } +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java new file mode 100644 index 0000000..23c09f0 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java @@ -0,0 +1,251 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.open.common.util.OpenApiClient; +import com.open.common.util.SystemParameterNames; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.CheckEnterExist; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.CreateEnterpriseRequest; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.EnterpriseInfo; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyEnterpriseInfoRequest; +import lombok.extern.slf4j.Slf4j; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * 企业工具类 + * + * @author zhibing.pu + * @Date 2025/6/6 17:06 + */ +@Slf4j +public class EnterpriseUtil { + + + /** + * 根据社会信用代码判断企业是否已存在 + * + * @param uscc + * @return + */ + public static CheckEnterExist checkEnterExistByEnterIdCardNo(String uscc) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/check_enter_exist_by_enterIdCardNo"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content = "";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> request = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + request.put(SystemParameterNames.getAppKey(), appKey); + request.put(SystemParameterNames.getMessage_id(), messageId); + request.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + request.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + request.put("content", content); + request.put("uscc", uscc); + log.info("【根据社会信用代码判断企业是否已存在】请求参数:" + JSON.toJSONString(request)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, request); + log.info("【根据社会信用代码判断企业是否已存在】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String status = jsonObject.getString("status"); + if (!"0".equals(status)) { + log.error("【根据社会信用代码判断企业是否已存在】请求失败:" + result); + return null; + } + return jsonObject.getObject("data", CheckEnterExist.class); + } + + + /** + * 根据企业名称判断企业是否已存在 + * + * @param enterName + * @return + */ + public static CheckEnterExist checkEnterNameExist(String enterName) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/checkEnterNameExist"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content = "";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> request = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + request.put(SystemParameterNames.getAppKey(), appKey); + request.put(SystemParameterNames.getMessage_id(), messageId); + request.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + request.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + request.put("content", content); + request.put("enterName", enterName); + log.info("【根据企业名称判断企业是否已存在】请求参数:" + JSON.toJSONString(request)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, request); + log.info("【根据企业名称判断企业是否已存在】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String status = jsonObject.getString("status"); + if (!"0".equals(status)) { + log.error("【根据企业名称判断企业是否已存在】请求失败:" + result); + return null; + } + return jsonObject.getObject("data", CheckEnterExist.class); + } + + + /** + * 查询企业详情 + * + * @param enter_code 企业编号 + * @return + */ + public static EnterpriseInfo getEnterpriseDetail(String enter_code) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getEnterpriseDetail"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content = "";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> request = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + request.put(SystemParameterNames.getAppKey(), appKey); + request.put(SystemParameterNames.getMessage_id(), messageId); + request.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + request.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + request.put("content", content); + request.put("enter_code", enter_code); + log.info("【查询企业详情】请求参数:" + JSON.toJSONString(request)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, request); + log.info("【查询企业详情】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String status = jsonObject.getString("status"); + if (!"0".equals(status)) { + log.error("【查询企业详情】请求失败:" + result); + return null; + } + EnterpriseInfo enterpriseInfo = jsonObject.getObject("data", EnterpriseInfo.class); + return enterpriseInfo; + } + + + /** + * 修改企业基本信息 + * + * @param request + * @return + */ + public static Boolean modifyEnterpriseInfo(ModifyEnterpriseInfoRequest request) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/modifyEnterpriseInfo"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content = "";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + request.put(SystemParameterNames.getAppKey(), appKey); + request.put(SystemParameterNames.getMessage_id(), messageId); + request.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + request.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + request.put("content", content); + log.info("【修改企业基本信息】请求参数:" + JSON.toJSONString(request)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, request); + log.info("【修改企业基本信息】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String status = jsonObject.getString("status"); + if (!"0".equals(status)) { + log.error("【修改企业基本信息】请求失败:" + result); + return false; + } + return true; + } + + + /** + * 创建企业 + * + * @param request + * @return + */ + public static Boolean createEnterprise(CreateEnterpriseRequest request) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.1/createEnterprise"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content = "";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> map = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + map.put(SystemParameterNames.getAppKey(), appKey); + map.put(SystemParameterNames.getMessage_id(), messageId); + map.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + map.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + map.put("content", content); + Class<? extends CreateEnterpriseRequest> clazz = request.getClass(); + Field[] declaredFields = clazz.getDeclaredFields(); + for (Field declaredField : declaredFields) { + String name = declaredField.getName(); + Object invoke = null; + try { + invoke = clazz.getMethod("get" + name.substring(0, 1).toUpperCase() + name.substring(1)).invoke(request); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (InvocationTargetException e) { + throw new RuntimeException(e); + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } + map.put(name, invoke); + } + + log.info("【创建企业】请求地址:" + url); + log.info("【创建企业】请求参数:" + JSON.toJSONString(map)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, map); + log.info("【创建企业】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String resCode = jsonObject.getString("resCode"); + String status = jsonObject.getString("status"); + if (!"0".equals(status)) { + log.error("【创建企业】请求失败:" + result); + return false; + } + return true; + } +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java new file mode 100644 index 0000000..7f37722 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java @@ -0,0 +1,31 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong; + +/** + * 黔云通配置 + * @author zhibing.pu + * @Date 2025/6/6 15:03 + */ +public interface QianYunTongProperties { + /** + * appkey + */ + String appkey = "10001104"; + /** + * 私钥地址 + */ + String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem"; + /** + * 消费者账号 + */ + String userName = "xiaofei"; + /** + * 状态 + * 1:生产环境 + * 2:测试环境 + */ + String status = "2"; + /** + * API地址 + */ + String apiUrl = "https://test-zhongtai.stqcloud.com:10070"; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java new file mode 100644 index 0000000..9fde03a --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java @@ -0,0 +1,107 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.open.common.util.OpenApiClient; +import com.open.common.util.SystemParameterNames; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTUserInfo; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.RegisterViaMobileRequest; +import lombok.extern.slf4j.Slf4j; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * 用户工具类 + * + * @author zhibing.pu + * @Date 2025/6/6 14:47 + */ +@Slf4j +public class UserUtil { + + + /** + * 根据手机号和企业编号查询用户信息 + * + * @param mobile 手机号码 + * @param enterNum 企业编号 + */ + public static QYTUserInfo getUserInfoByPhone(String mobile, String enterNum) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getUserInfoByPhone"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content = "";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", content); + contentMap.put("mobile", mobile); + contentMap.put("enterNum", enterNum); + log.info("【根据手机号和企业编号查询用户信息】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, contentMap); + log.info("【根据手机号和企业编号查询用户信息】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String status = jsonObject.getString("status"); + if (!"0".equals(status)) { + log.error("【根据手机号和企业编号查询用户信息】请求失败:" + result); + return null; + } + QYTUserInfo userInfo = jsonObject.getObject("data", QYTUserInfo.class); + return userInfo; + } + + + /** + * 根据手机号注册用户 + * + * @param request + * @return + */ + public static Boolean registerViaMobile(RegisterViaMobileRequest request) { + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getUserInfoByPhone"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + String content = "";//业务参数 + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUID.randomUUID().toString().replaceAll("-", ""); + request.put(SystemParameterNames.getAppKey(), appKey); + request.put(SystemParameterNames.getMessage_id(), messageId); + request.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + request.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + request.put("content", content); + log.info("【根据手机号注册用户】请求参数:" + JSON.toJSONString(request)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, request); + log.info("【根据手机号注册用户】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String status = jsonObject.getString("status"); + if (!"0".equals(status)) { + log.error("【根据手机号注册用户】请求失败:" + result); + return false; + } + return true; + } +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java new file mode 100644 index 0000000..b149f2c --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java @@ -0,0 +1,36 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/6 18:12 + */ +@Data +public class CheckEnterExist { + /** + * 是否在公有云注册,1:已注册;0:未注册 + */ + private String isReg; + /** + * 创建者手机号 + */ + private String mobile; + /** + * 创建时间 + */ + private String createTime; + /** + * 法人姓名 + */ + private String larName; + /** + * 企业编码 + */ + private String enterCode; + /** + * 认证状态 + * 0:已认证;1:未认证,初始状态;2:认证不通过;3:认证中 + */ + private Integer auth; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java new file mode 100644 index 0000000..abd34be --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java @@ -0,0 +1,14 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/9 19:43 + */ +@Data +public class CreateEnterprise { + /** + * + */ +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java new file mode 100644 index 0000000..ab18fe9 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java @@ -0,0 +1,118 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/9 18:20 + */ +@Data +public class CreateEnterpriseRequest { + /** + * 企业名称 + */ + private String name; + /** + * 企业简称/昵称 + */ + private String nickName; + /** + * 行业编码 + */ + private String industry_code; + /** + * 手机号码 + */ + private String mobile; + /** + * 区域编码 + */ + private String area; + /** + * 企业地址 + */ + private String address; + /** + * 二级域名 + */ + private String secondRealmName; + /** + * 企业密码 + */ + private String password; + /** + * 一级行业分类描述 + */ + private String industry_level1; + /** + * 二级行业分类描述 + */ + private String industry_level2; + /** + * 企业来源编码 + */ + private String sourceCode; + /** + * 企业分类编码 + */ + private String typeCode; + /** + * 代理商id + */ + private String elecsId; + /** + * 是否发送短信 + * 0:不发送,1:发送 + */ + private String smsFlag; + /** + * 是否激活 + * 1:激活;0:未激活 + */ + private String mobileFlag; + /** + * 邮箱 + */ + private String email; + /** + * 邮箱是否激活 + * 1:激活;0:未激活 + */ + private String emailFlag; + /** + * 是否同步通讯录 + */ + private String contact_source; + /** + * 所属行业通用编码 + */ + private String trade_code; + /** + * 营业执照扫描件url + */ + private String operScanPic; + /** + * 运营人员姓名 + */ + private String idcardName; + /** + * 运营者身份证号码 + */ + private String idcardNum; + /** + * 运营者身份证照片url + */ + private String idcardPic; + /** + * 企业工号 + */ + private String enterID; + /** + * 推荐人 + */ + private String recommender; + /** + * 创建者姓名 + */ + private String creatorName; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java new file mode 100644 index 0000000..36ae77d --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java @@ -0,0 +1,25 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.util.HashMap; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:39 + */ +@Data +public class DeleteStafNodeRequest extends HashMap<String, Object> { + /** + * 人员ID + */ + private Long empId; + /** + * 手机号 + */ + private String mobile; + /** + * 企业编号 + */ + private String entercode; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java new file mode 100644 index 0000000..193de7d --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java @@ -0,0 +1,58 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.util.HashMap; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:32 + */ +@Data +public class EditStaffNodeRequest extends HashMap<String, Object> { + /** + * 人员ID + */ + private Long empId; + /** + * 企业ID + */ + private String enterNum; + /** + * 人员显示名 + */ + private String empNickname; + /** + * 人员性别(男\女) + */ + private String empSex; + /** + * 人员手机号 + */ + private String mphone; + /** + * 人员邮箱 + */ + private String email; + /** + * 员工所属部门ID多个部门英文; 分割 + */ + private String deptIds; + /** + * 员工职务ID + */ + private Long positionId; + /** + * 员工职务名称,如不知道ID可以直接传入名称 + */ + private String positionName; + /** + * 高管模式 1 是 0 不是 + */ + private Integer superLevel; + /** + * 隐藏号码 1 是 0 不是 + */ + private Integer hideMobile; + +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java new file mode 100644 index 0000000..3cdfe3a --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java @@ -0,0 +1,255 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/6 17:14 + */ +@Data +public class EnterpriseInfo { + /** + * 企业编号 + */ + private String enter_code; + /** + * 企业名称 + */ + private String enter_name; + /** + * 是否是全员号码可见,0:是,1:否 + */ + private String visible; + /** + * 认证状态,0:已认证;1:未认证,初始状态;2:认证不通过;3:认证中 + */ + private String auth; + /** + * 认证时间 + */ + private String auth_time; + /** + * 认证注释 + */ + private String authRemark; + /** + * 运营者姓名(委托人) + */ + private String idcard_name; + /** + * 运营者证件号 + */ + private String idcard_num; + /** + * 运营者证件扫描件URL + */ + private String idcard_pic; + /** + * 统一社会信用代码 + */ + private String uscc; + /** + * 法人姓名 + */ + private String larName; + /** + * 法人电话 + */ + private String larPhone; + /** + * 法人身份证 + */ + private String larIdCard; + /** + * 法人身份证扫描件URL + */ + private String larIdCardPic; + /** + * 发票名称 + */ + private String invoiceName; + /** + * 纳税人识别号(发票) + */ + private String invoiceTIN; + /** + * 开户行名称(发票) + */ + private String invoiceBankersName; + /** + * 开户行账号(发票) + */ + private String invoiceBankersAccount; + /** + * 资质机构名称 + */ + private String qualificationOrgName; + /** + * 资质注册号/登记号 + */ + private String qualificationRegNum; + /** + * 资质有效开始时间 + */ + private String qualificationStartTime; + /** + * 资质有效结束时间 + */ + private String qualificationEndTime; + /** + * 资格证书扫描件URL + */ + private String qualificationCertUrl; + /** + * 省份编码 + */ + private String provinceCode; + /** + * 地市编码 + */ + private String cityCode; + /** + * 区县编码 + */ + private String areaCode; + /** + * 乡镇编码 + */ + private String townshipCode; + /** + * 企业创建时间 + */ + private String enter_createdate; + /** + * 地址 + */ + private String address; + /** + * 营业期开始时间,格式:yyyy-MM-dd HH:mm:ss + */ + private String businessTermStartTime; + /** + * 营业期结束时间,格式:yyyy-MM-dd HH:mm:ss + */ + private String businessTermEndTime; + /** + * 企业规模 + */ + private String enterScale; + /** + * 创建者职位 + */ + private String creatorPosition; + /** + * 企业备注/介绍 + */ + private String enterRemark; + /** + * 企业logo + */ + private String enterLogo; + /** + * 企业邮箱 + */ + private String enterEmail; + /** + * 企业联系电话rg_company_info.enter_tel + */ + private String enterTel; + /** + * 一级行业分类编码 + */ + private String industryStr; + /** + * 二级行业分类编码 + */ + private String industryStr2; + /** + * 企业联系人姓名 + */ + private String enterLinkman; + /** + * 营业执照扫描件ur + */ + private String operScanPic; + /** + * 身份证有效期 + */ + private String larIdCardValidity; + /** + * 经营地址 + */ + private String operationAddress; + /** + * 法人身份证背面照片 + */ + private String larIdCardPicBack; + /** + * 法人身份证手持 + */ + private String larIdCardPicHold; + /** + * 开户许可证 + */ + private String accountOpeningPermit; + /** + * 自定义的,例如:企业类型 + */ + private String tag1; + /** + * 自定义的,例如:行业类型 + */ + private String tag2; + /** + * 企业扩展信息 + */ + private String iformContentId; + /** + * 国家统计局网站提供的行政地区编码 + */ + private String area; + /** + * 行业编码 + */ + private String industryCode; + /** + * 企业创建人姓名 + */ + private String creatorName; + /** + * 企业创建人手机号 + */ + private String creatorMobile; + /** + * 管理员邮箱 + */ + private String email; + /** + * 企业简称 + */ + private String enterAbbreviation; + /** + * 营业期限 + */ + private String businessTermLong; + /** + * 一级行业名称 + */ + private String industryL1Name; + /** + * 二级行业名称 + */ + private String industryL2Name; + /** + * 企业介绍(全文本) + */ + private String enterIntro; + /** + * 法人身份证正面照片 + */ + private String larIdCardPicFront; + /** + * 企业主税机关 + */ + private String enterTaxAuthority; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java new file mode 100644 index 0000000..8d996ae --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java @@ -0,0 +1,25 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.util.HashMap; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:42 + */ +@Data +public class GetStaffNodeRequest extends HashMap<String, Object> { + /** + * 人员ID + */ + private Long empId; + /** + * 操作人手机号 + */ + private String mobile; + /** + * 操作人企业ID + */ + private String entercode; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java new file mode 100644 index 0000000..14f2ec9 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java @@ -0,0 +1,77 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.util.HashMap; + +/** + * @author zhibing.pu + * @Date 2025/6/9 18:13 + */ +@Data +public class ModifyEnterpriseInfoRequest extends HashMap<String, Object> { + /** + * 企业编码 + */ + private String enter_code; + /** + * 操作人员手机号 + */ + private String operator; + /** + * 企业名称 + */ + private String enter_name; + /** + * 企业简称 + */ + private String enter_nickname; + /** + * 企业地址 + */ + private String enter_address; + /** + * 企业邮箱 + */ + private String enter_email; + /** + * 联系人姓名 + */ + private String contact_name; + /** + * 联系人手机号 + */ + private String contact_mobile; + /** + * 营业执照扫描件URL + */ + private String operscanpic; + /** + * 营业期开始时间 + */ + private String businessTermStartTime; + /** + * 营业期结束时间 + */ + private String businessTermEndTime; + /** + * 区域编码 + */ + private String area; + /** + * 二级域名 + */ + private String second_realms; + /** + * 企业来源编码 + */ + private String source_code; + /** + * 店铺所属行业编码 + */ + private String trade_code; + /** + * 企业分类编码 + */ + private String type_code; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java new file mode 100644 index 0000000..6dd1b2a --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java @@ -0,0 +1,44 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * 用户信息 + * @author zhibing.pu + * @Date 2025/6/6 15:11 + */ +@Data +public class QYTUserInfo { + /** + * 员工名称 + */ + private String empName; + /** + * 企业编号 + */ + private String enterNum; + /** + * 节点路径 + */ + private String nodePath; + /** + * 员工昵称 + */ + private String nickName; + /** + * 员工编号 + */ + private String empId; + /** + * 手机号码 + */ + private String mphone; + /** + * 员工在企业内部的编号 + */ + private String loginNo; + /** + * 部门ID + */ + private String deptId; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java new file mode 100644 index 0000000..1a87380 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java @@ -0,0 +1,48 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.util.HashMap; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:59 + */ +@Data +public class RegisterViaMobileRequest extends HashMap<String, Object> { + /** + * 手机号码 + */ + private String mobile; + /** + * 客户端appid + */ + private String appId; + /** + * 用户密码 + */ + private String password; + /** + * 短信验证码 + */ + private String verify_code; + /** + * 验证码类型 + * 0:短信发送的验证码;1:一键获取手机号返回注册验证码;2、验证码验证成功后生成的Ticket + */ + private String verify_code_type; + /** + * 加密类型 + * 第三方系统可以填写空 + */ + private String encryptType; + /** + * 用户类型 + * 0:普通用户 + */ + private String user_type; + /** + * 昵称 + */ + private String nickname; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java new file mode 100644 index 0000000..049daa3 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java @@ -0,0 +1,65 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.util.HashMap; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:22 + */ +@Data +public class SaveStaffNodeRequest extends HashMap<String, Object> { + /** + * 操作人手机号 + */ + private String mobile; + /** + * 操作人企业ID + */ + private String entercode; + /** + * 人员名称 + */ + private String empName; + /** + * 人员显示名 + */ + private String empNickname; + /** + * 人员账号 + */ + private String loginNo; + /** + * 人员性别 + */ + private String empSex; + /** + * 人员手机号 + */ + private String mphone; + /** + * 人员邮箱 + */ + private String email; + /** + * 员工所属部分ID + */ + private String deptIds; + /** + * 员工职务ID + */ + private Long positionId; + /** + * 员工职务名称 + */ + private String positionName; + /** + * 高管模式 1 是 0 不是 + */ + private Integer superLevel; + /** + * 隐藏号码 1 是 0 不是 + */ + private Integer hideMobile; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java new file mode 100644 index 0000000..9996a77 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java @@ -0,0 +1,63 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/6/6 16:44 + */ +@Data +public class StaffNodeInfo { + /** + * 人员ID + */ + private Integer empId; + /** + * 企业ID + */ + private String enterNum; + /** + * 人员名称 + */ + private String empName; + /** + * 人员显示名 + */ + private String empNickname; + /** + * 人员账号 + */ + private String loginNo; + /** + * 人员性别(男\女) + */ + private String empSex; + /** + * 人员手机号 + */ + private String mphone; + /** + * 人员邮箱 + */ + private String email; + /** + * 员工所属部门ID多个部门英文; 分割 + */ + private String deptIds; + /** + * 员工职位ID + */ + private Long positionId; + /** + * 员工职位名称 + */ + private String positionName; + /** + * 高管模式 1 是 0 不是 + */ + private Integer superLevel; + /** + * 隐藏手机号 1 是 0 否 + */ + private Integer hideMobile; +} diff --git a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java index 0251a97..96776f7 100644 --- a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java +++ b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java @@ -1,22 +1,26 @@ -//package com.stylefeng.guns; -// -//import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.boot.test.context.SpringBootTest; -//import org.springframework.test.context.junit4.SpringRunner; -// -//@RunWith(SpringRunner.class) -//@SpringBootTest -//public class GunsApplicationTest { -// -// @Autowired -// private IOrderLogisticsService orderLogisticsService; -// -// -// @Test -// public void queryVipLevelList() throws Exception { -// orderLogisticsService.process(434, 6, 104.0560028754, 30.5855897352, "四川省成都市武侯区石羊街道天府新谷成都高新技术产业开发区(南区)", ""); -// } -//} +package com.stylefeng.guns; + +import com.stylefeng.guns.modular.system.util.qianyuntong.EnterpriseUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.CreateEnterpriseRequest; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class GunsApplicationTest { + + + @Test + public void test() throws Exception { + CreateEnterpriseRequest request = new CreateEnterpriseRequest(); + request.setName("成都喜望科技有限公司"); + request.setNickName("成都喜望"); + request.setIndustry_code("123456789"); + request.setMobile("15828353127"); + request.setMobileFlag("1"); + Boolean enterprise = EnterpriseUtil.createEnterprise(request); + + } +} -- Gitblit v1.7.1