From aa2c6d722ed799290285b6365f011aaa74373d73 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期六, 23 十二月 2023 17:30:07 +0800
Subject: [PATCH] 11.27,9
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java | 293 ++++++
cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java | 47
cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth_info.html | 283 +++++
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/TBankService.java | 17
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java | 7
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 38
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorAuthAlipay.java | 103 ++
cloud-server-activity/src/main/resources/sharding-jdbc.properties | 4
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/Store.java | 5
cloud-server-other/src/main/resources/mapper/SiteMapper.xml | 3
cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java | 2
cloud-server-competition/src/main/resources/sharding-jdbc.properties | 4
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 36
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java | 1
cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java | 3
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorAuthService.java | 3
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java | 1
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 3
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java | 25
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java | 7
cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java | 52
cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java | 1
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java | 32
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 29
cloud-server-management/src/main/java/com/dsh/course/mapper/BankMapper.java | 9
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java | 5
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java | 7
cloud-server-course/src/main/java/com/dsh/course/feignclient/other/model/Store.java | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/BankServiceImpl.java | 12
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java | 5
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 8
cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java | 48
cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/SaticScheduleTask.java | 313 +++--
cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java | 13
cloud-server-account/src/main/resources/sharding-jdbc.properties | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java | 537 +++++++---
cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java | 10
cloud-server-course/src/main/resources/sharding-jdbc.properties | 2
cloud-server-management/src/main/resources/mapper/BankMapper.xml | 5
cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html | 10
cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java | 44
cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java | 2
cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java | 6
cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js | 16
cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java | 40
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java | 11
cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html | 346 ++----
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 13
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorAuthServiceImpl.java | 3
cloud-server-management/src/main/resources/mapper/TOperatorMapper.xml | 3
cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java | 10
cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js | 309 +++---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java | 47
cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java | 2
55 files changed, 2,023 insertions(+), 824 deletions(-)
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java
index 081a5d7..e3bb3b9 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java
@@ -13,10 +13,15 @@
@FeignClient(value = "mb-cloud-other")
public interface StoreClient {
+ /**
+ * 根据运营商id获取对应运营商商户号
+ * @return
+ */
+ @PostMapping("/base/getSMIDByOperatorId")
+ String getSMIDByOperatorId(Integer id);
@PostMapping("/store/queryByStoreId")
OperatorUser queryByStoreId(Integer storeId);
-
/**
* 获取门店列表
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/Store.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/Store.java
index cc1aa66..95cb58e 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/Store.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/Store.java
@@ -87,4 +87,9 @@
* 状态(1=正常,2=冻结,3=删除)
*/
private Integer state;
+ /**
+ * 运营商id
+ */
+ private Integer operatorId;
+
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
index 39e2c5b..ca8c34c 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
@@ -288,9 +288,9 @@
return ResultUtil.success();
}
-
+ private String smid = "2088330203191220";//平台支付宝商户号
private ResultUtil AlipayPayment(String code, BigDecimal amount) {
- ResultUtil alipay = payMoneyUtil.alipay("玩湃币充值", "玩湃币充值", "", code, amount.toString(),
+ ResultUtil alipay = payMoneyUtil.alipay(smid,"玩湃币充值", "玩湃币充值", "", code, amount.toString(),
"/base/recharge/alipayRechargeCallback");
if (alipay.getCode() == 200) {
new Thread(new Runnable() {
@@ -328,8 +328,14 @@
if ("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus) || num == 10) {
records.setState(3);
rereMapper.deleteById(records.getId());
+ if ("TRADE_FINISHED".equals(tradeStatus)) {
+ // todo 资金结算
+ payMoneyUtil.confirm(smid,code,tradeNo,amount.toString());
+ break;
+ }
break;
}
+
if ("TRADE_SUCCESS".equals(tradeStatus)) {
records.setAppUserId(null);
records.setPayStatus(2);
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index 5043af1..c666c39 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -1369,7 +1369,7 @@
return ResultUtil.success(returnId);
}
//积分+现金
- if(coupon.getRedemptionMethod() == 1){
+ if(coupon.getRedemptionMethod() == 2){
userCouponPaymentClient.addUserCouponPayment(userCouponPayment);
try {
if(exchangeType.getPayType() == 1){
@@ -1744,6 +1744,11 @@
//有待支付的订单,这里不处理
userCouponPayment1.setStatus(-1);
userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1);
+ if ("TRADE_FINISHED".equals(s)) {
+ // todo 资金结算
+ payMoneyUtil.confirm(code,tradeNo,cash.toString());
+ break;
+ }
break;
}
if ("TRADE_SUCCESS".equals(s)) {
@@ -1767,6 +1772,7 @@
}
break;
}
+
if ("WAIT_BUYER_PAY".equals(s)) {
num++;
}
@@ -1886,6 +1892,11 @@
moneyOut(tradeNo, tradeNo);
break;
}
+ if ("TRADE_FINISHED".equals(tradeStatus)) {
+ // todo 资金结算
+ payMoneyUtil.confirm(code,tradeNo,cash.toString());
+ break;
+ }
// if("REFUND".equals(tradeStatus) || "NOTPAY".equals(tradeStatus) || "CLOSED".equals(tradeStatus) || "REVOKED".equals(tradeStatus) || "PAYERROR".equals(tradeStatus) || num == 10){
// mcClient.deletePaymentRecord(code);
// break;
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index c5a11cb..3f33b30 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -104,6 +104,8 @@
@Resource
private ParticipantClient participantClient;
+ @Autowired
+ private CoursePackageClient coursePackageClient;
@Autowired
private PayMoneyUtil payMoneyUtil;
@@ -474,9 +476,24 @@
}
return weixinpay;
}
-
+ private String smid = "2088330203191220";//平台支付宝商户号
public ResultUtil AlipayPayment(String code, BigDecimal amount, Integer hour) {
- ResultUtil alipay = payMoneyUtil.alipay("课包续费", "课包续费", "", code, amount.toString(),
+ TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code);
+ Integer coursePackageId = coursePackagePayment.getCoursePackageId();
+ // 判断这个课包是属于哪个运营商的
+ CoursePackage coursePackage = coursePackageClient.queryCoursePackageById(coursePackageId);
+ Integer storeId = coursePackage.getStoreId();
+ Store store = storeClient.queryStoreById(storeId);
+ String smid1= "";
+ if (store.getOperatorId()==null){
+ // 平台
+ smid1 = smid;
+ }else{
+ String smidByOperatorId = storeClient.getSMIDByOperatorId(store.getOperatorId());
+ smid1 = smidByOperatorId;
+ }
+
+ ResultUtil alipay = payMoneyUtil.alipay(smid1,"课包续费", "课包续费", "", code, amount.toString(),
"/base/coursePackage/alipayPaymentCallback");
if (alipay.getCode() == 200) {
new Thread(new Runnable() {
@@ -494,7 +511,6 @@
break;
}
AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
-
if (resultUtil.getCode().equals("10000") && coursePackagePayment.getPayStatus() == 1) {
/**
* WAIT_BUYER_PAY(交易创建,等待买家付款)、
@@ -519,8 +535,20 @@
coursePackagePayment.setLaveClassHours(hour);
coursePackagePayment.setOrderNumber(tradeNo);
couPayClient.updatePaymentCoursePackage(coursePackagePayment);
-
-
+ Integer coursePackageId = coursePackagePayment.getCoursePackageId();
+ // 判断这个课包是属于哪个运营商的
+ CoursePackage coursePackage = coursePackageClient.queryCoursePackageById(coursePackageId);
+ Integer storeId = coursePackage.getStoreId();
+ Store store = storeClient.queryStoreById(storeId);
+ String smid1= "";
+ if (store.getOperatorId()==null){
+ // 平台
+ smid1 = smid;
+ }else{
+ String smidByOperatorId = storeClient.getSMIDByOperatorId(store.getOperatorId());
+ smid1 = smidByOperatorId;
+ }
+ payMoneyUtil.confirm(smid1,code,tradeNo,amount.toString());
break;
}
if ("WAIT_BUYER_PAY".equals(tradeStatus)) {
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
index f74c4f8..e8b4200 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
@@ -169,9 +169,14 @@
* @return
* @throws Exception
*/
+ private String smid = "2088330203191220";//平台支付宝商户号
public ResultUtil alipay(VipPayment vipPayment) throws Exception {
String code = vipPayment.getCode();
- ResultUtil alipay = payMoneyUtil.alipay("购买年度会员", "购买年度会员", vipPayment.getAppUserId() + "", code, vipPayment.getAmount().toString(),
+ String amount = vipPayment.getAmount().toString();
+ ResultUtil alipay = payMoneyUtil.alipay
+ (smid,"购买年度会员", "购买年度会员",
+ vipPayment.getAppUserId() + "",
+ code, vipPayment.getAmount().toString(),
"/base/appUser/addVipPaymentAliCallback");
if (alipay.getCode() == 200) {
new Thread(new Runnable() {
@@ -204,6 +209,7 @@
if ("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) {
vipPayment1.setState(3);
VipPaymentServiceImpl.this.updateById(vipPayment1);
+
return;
}
if ("TRADE_SUCCESS".equals(tradeStatus)) {
@@ -226,6 +232,8 @@
// 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
List<Long> longs = userConponClient.queryCouponByUser(appUser.getId());
redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600);
+ // 如果交易结束 将当前订单金额分配到商户
+ payMoneyUtil.confirm(smid,vipPayment.getCode(),tradeNo,amount);
return;
}
if ("WAIT_BUYER_PAY".equals(tradeStatus)) {
diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
index 1133e92..3692928 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -71,6 +71,7 @@
private String appid = "";//微信appid
private String appletsAppid = "";//微信小程序appid
+ private String smid = "2088330203191220";//平台支付宝商户号
private String mchId = "";//微信商户号
@@ -90,7 +91,7 @@
/**
* 支付宝支付
*/
- public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
+ public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
// //构造client
// CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
// //设置网关地址
@@ -142,7 +143,6 @@
// e.printStackTrace();
// }
-
//实例化客户端
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
@@ -153,11 +153,13 @@
model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。
model.setOutTradeNo(outTradeNo);//商户网站唯一订单号
model.setTimeoutExpress("30m");
+ model.setSellerId(smid);// 平台商户号
model.setTotalAmount(amount);//付款金额
model.setProductCode("QUICK_MSECURITY_PAY");
model.setPassbackParams(passbackParams);//自定义参数
-
-
+ ExtendParams extendParams = new ExtendParams();
+ extendParams.setRoyaltyFreeze("false");// 冻结资金 用于后续分账处理
+ model.setExtendParams(extendParams);
//分账
// Integer coursePackagePayments = coursePackageClient.queryByCode(outTradeNo);
// Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo);
@@ -245,7 +247,47 @@
System.err.print(alipay_trade_precreate_response.getString("qr_code"));
return ResultUtil.success(alipay_trade_precreate_response.getString("qr_code"));
}
-
+ // 直付通模式 alipay.trade.settle.confirm(统一收单确认结算接口)
+ public ResultUtil confirm(String smid1,String code, String outTradeNo, String amount) {
+ AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+ aliAppid,
+ appPrivateKey,
+ "json",
+ "GBK",
+ alipay_public_key,
+ "RSA2");
+ AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest();
+ request.setBizContent("{" +
+ " \"out_request_no\":\""+code+"\"," +
+ " \"trade_no\":\""+outTradeNo+"\"," +
+ " \"settle_info\":{" +
+ " \"settle_detail_infos\":[" +
+ " {" +
+ " \"trans_in_type\":\"defaultSettle\"," +
+ " \"settle_entity_id\":\""+smid1+"\"," +
+ " \"settle_entity_type\":\"SecondMerchant\"," +
+ " \"amount\":"+amount+"," +
+ " }" +
+ " ]" +
+ " }," +
+ " \"extend_params\":{" +
+ " \"royalty_freeze\":\"false\"" +
+ " }" +
+ "}");
+ AlipayTradeSettleConfirmResponse response = null;
+ try {
+ response = alipayClient.execute(request);
+ } catch (AlipayApiException e) {
+ e.printStackTrace();
+ }
+ if(response.isSuccess()){
+ System.out.println("调用成功");
+ return ResultUtil.success();
+ } else {
+ System.out.println("调用失败");
+ return ResultUtil.error("出现问题啦");
+ }
+ }
/**
* 支付成功后的回调处理逻辑
diff --git a/cloud-server-account/src/main/resources/sharding-jdbc.properties b/cloud-server-account/src/main/resources/sharding-jdbc.properties
index 5c8b0e0..920a1eb 100644
--- a/cloud-server-account/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-account/src/main/resources/sharding-jdbc.properties
@@ -14,9 +14,9 @@
datasource.names=master0
datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://192.168.110.110/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
datasource.master0.username=root
-datasource.master0.password=playpai2023!
+datasource.master0.password=123456
datasource.master0.maxActive=20
datasource.master0.maxWait=60000
datasource.master0.minIdle=5
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index 4c33f44..d46c314 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -934,14 +934,11 @@
String endDate = dateFormat.format(end);
detailsResponse.setStartTime(startDate);
detailsResponse.setEndTime(startDate);
-
Date now = new Date();
Calendar cal1 = Calendar.getInstance();
cal1.setTime(pointsMerchandise.getInsertTime());
-
Calendar cal2 = Calendar.getInstance();
cal2.setTime(now);
-
// Compare the year, month, and day of the two Calendar instances
boolean isSameDate = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH) &&
diff --git a/cloud-server-activity/src/main/resources/sharding-jdbc.properties b/cloud-server-activity/src/main/resources/sharding-jdbc.properties
index 7f8645e..2a2b63f 100644
--- a/cloud-server-activity/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-activity/src/main/resources/sharding-jdbc.properties
@@ -14,9 +14,9 @@
datasource.names=master0
datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_activity?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://192.168.110.110/playpai_activity?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
datasource.master0.username=root
-datasource.master0.password=playpai2023!
+datasource.master0.password=123456
datasource.master0.maxActive=20
datasource.master0.maxWait=60000
datasource.master0.minIdle=5
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
index 21c51fa..1ad835f 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -755,9 +755,7 @@
String refund_id = map.get("refund_id");
paymentCompetition.setRefundOrderNo(refund_id);
paymentCompetitionService.updateById(paymentCompetition);
-
storeClient.addBackRecord(paymentCompetition.getAmount() + "_" + paymentCompetition.getAppUserId());
-
}
if (paymentCompetition.getPayType() == 2) {//支付宝支付
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java
index 91719ff..9e9a07d 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java
@@ -13,7 +13,12 @@
*/
@FeignClient("mb-cloud-other")
public interface StoreClient {
-
+ /**
+ * 根据运营商id获取对应运营商商户号
+ * @return
+ */
+ @PostMapping("/base/getSMIDByOperatorId")
+ String getSMIDByOperatorId(Integer id);
/**
* 根据名称模糊搜索门店
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
index b1d0666..06518cc 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
@@ -85,7 +85,7 @@
private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouYvZ1v4RiydwNOnGcU0Hb4hQu0x6XUooaE2Bi6/atNOobtFdunnATGP6OMOW7yF9DpP8qH5mbFXAiaQD721y/7qlayI50UcV4mngRU4ZcaAVE3bp721Eg2H85RISa+Tb1CiOh+pc9p4l5UBseKsvB2ruHHForfZDPI8FL7AVUKBYCQPsa4zL6KAO2C6KULaTg/lCa+bYQKU0n9ca569VtdsqJUyxB9eSZjVd+9nKl62FLqp2NELGj7cXqiVBgDnBnVS5ZUO3mrBM5z/AxQbw3RwE3JqdkhzUA1BFjejAlT2zIGNOjUFagF8ao0wGElYfuk0bum6Hz5qWAt02QdNNwIDAQAB";//支付宝应用公钥
private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
-
+ private String smid = "2088330203191220";//平台支付宝商户号
/**
* 获取赛事列表
@@ -300,7 +300,16 @@
}
if (paymentCompetitionVo.getPayType() == 2) {//支付宝
- return aliPaymentCompetition(code, money);
+ // 判断当前赛事属于哪个运营商
+ Competition byId = competitionService.getById(paymentCompetitionVo.getId());
+ Integer operatorId = byId.getOperatorId();
+ if (operatorId == null ){
+ // 说明是平台
+ return aliPaymentCompetition(smid,code, money);
+ }
+ // 获取该运营商的商户号
+ String smid = storeClient.getSMIDByOperatorId(operatorId);
+ return aliPaymentCompetition(smid,code, money);
}
if (paymentCompetitionVo.getPayType() == 3) {//玩湃币
appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() - money.intValue());
@@ -418,8 +427,9 @@
* @return
* @throws Exception
*/
- public ResultUtil aliPaymentCompetition(String code, BigDecimal money) throws Exception {
- ResultUtil alipay = payMoneyUtil.alipay("报名赛事", "", "", code, money.toString(), "/base/competition/aliPaymentCompetitionCallback");
+ public ResultUtil aliPaymentCompetition(String smid,String code, BigDecimal money) throws Exception {
+ ResultUtil alipay = payMoneyUtil.alipay
+ (smid,"报名赛事", "", "", code, money.toString(), "/base/competition/aliPaymentCompetitionCallback");
if (alipay.getCode() == 200) {
new Thread(new Runnable() {
@Override
@@ -453,6 +463,7 @@
paymentCompetition.setAppUserId(null);
paymentCompetition.setState(3);
userCompetitionService.remove(new QueryWrapper<UserCompetition>().eq("paymentCompetitionId", paymentCompetition.getId()));
+
break;
}
if ("TRADE_SUCCESS".equals(s)) {
@@ -461,12 +472,10 @@
paymentCompetition.setPayTime(new Date());
paymentCompetition.setPayOrderNo(tradeNo);
paymentCompetitionService.updateById(paymentCompetition);
-
+ // 结算资金到商户账号
+ payMoneyUtil.confirm(smid,code,tradeNo,money.toString());
//分账
-
-
// moneyOut(tradeNo, tradeNo,code);
-
break;
}
if ("WAIT_BUYER_PAY".equals(s)) {
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java b/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
index e85dd04..dc15aa6 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
@@ -71,7 +71,7 @@
/**
* 支付宝支付
*/
- public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
+ public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
// //构造client
// CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
// //设置网关地址
@@ -134,6 +134,7 @@
model.setSubject("报名赛事");//商品的标题/交易标题/订单标题/订单关键字等。
model.setOutTradeNo(outTradeNo);//商户网站唯一订单号
model.setTimeoutExpress("30m");
+ model.setSellerId(smid);
model.setTotalAmount(amount);//付款金额
model.setProductCode("QUICK_MSECURITY_PAY");
model.setPassbackParams(passbackParams);//自定义参数
@@ -272,7 +273,46 @@
return response;
}
}
-
+ public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) {
+ AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+ aliAppid,
+ appPrivateKey,
+ "json",
+ "GBK",
+ alipay_public_key,
+ "RSA2");
+ AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest();
+ request.setBizContent("{" +
+ " \"out_request_no\":\""+code+"\"," +
+ " \"trade_no\":\""+outTradeNo+"\"," +
+ " \"settle_info\":{" +
+ " \"settle_detail_infos\":[" +
+ " {" +
+ " \"trans_in_type\":\"defaultSettle\"," +
+ " \"settle_entity_id\":\""+smid+"\"," +
+ " \"settle_entity_type\":\"SecondMerchant\"," +
+ " \"amount\":"+amount+"," +
+ " }" +
+ " ]" +
+ " }," +
+ " \"extend_params\":{" +
+ " \"royalty_freeze\":\"false\"" +
+ " }" +
+ "}");
+ AlipayTradeSettleConfirmResponse response = null;
+ try {
+ response = alipayClient.execute(request);
+ } catch (AlipayApiException e) {
+ e.printStackTrace();
+ }
+ if(response.isSuccess()){
+ System.out.println("调用成功");
+ return ResultUtil.success();
+ } else {
+ System.out.println("调用失败");
+ return ResultUtil.error("出现问题啦");
+ }
+ }
/**
* 微信统一下单
diff --git a/cloud-server-competition/src/main/resources/sharding-jdbc.properties b/cloud-server-competition/src/main/resources/sharding-jdbc.properties
index ae42f8b..d16fa36 100644
--- a/cloud-server-competition/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-competition/src/main/resources/sharding-jdbc.properties
@@ -14,9 +14,9 @@
datasource.names=master0
datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_competition?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://192.168.110.110/playpai_competition?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
datasource.master0.username=root
-datasource.master0.password=playpai2023!
+datasource.master0.password=123456
datasource.master0.maxActive=20
datasource.master0.maxWait=60000
datasource.master0.minIdle=5
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
index 1d0f34f..e9c6c2d 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -293,7 +293,6 @@
}
}
-
/**
* 根据id获取课程数据
*
@@ -500,14 +499,12 @@
@PostMapping("/course/auditDiscount")
public Boolean auditDiscount(@RequestBody AuditDiscount auditDiscount) {
-
List<TCoursePackageDiscount> list = discountService.list(new LambdaQueryWrapper<TCoursePackageDiscount>()
.eq(TCoursePackageDiscount::getCoursePackageId, auditDiscount.getId()));
for (TCoursePackageDiscount tCoursePackageDiscount : list) {
tCoursePackageDiscount.setAuditStatus(auditDiscount.getType());
tCoursePackageDiscount.setAuditRemark(auditDiscount.getText());
}
-
return discountService.updateBatchById(list);
}
@@ -525,8 +522,6 @@
selectDto.setValue(String.valueOf(coursePackagePaymentConfig.getClassHours()));
integerList.add(selectDto);
}
-
-
return integerList;
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
index 9c0a149..f09ef4e 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
@@ -239,8 +239,6 @@
StoreOfCourseVo courseVo = new StoreOfCourseVo();
courseVo.setCourseId(coursePackage.getId());
courseVo.setName(coursePackage.getName() + "(" + store.getName() + ")");
-
-
String classStartTime = coursePackage.getClassStartTime();
String classEndTime = coursePackage.getClassEndTime();
ArrayList<String> classTime = new ArrayList<>();
@@ -252,11 +250,8 @@
classTime.add(s);
}
}
-
// coursePackageInfo.setTimes(classTime);
String classTimeAsString = String.join("|", classTime);
-
-
courseVo.setClassStartTime(classTimeAsString);
courseVo.setCoverDrawing(coursePackage.getCoverDrawing());
courseVo.setApplicantsNumber(count);
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
index 81c1af4..080d4d4 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -762,7 +762,6 @@
return lisco;
}
-
@PostMapping("/base/coursePack/continuingCourse")
public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) {
StudentOfCourseVo courseVo = new StudentOfCourseVo();
@@ -771,7 +770,6 @@
.eq("coursePackageId", getStudentCourse.getCourseId())
.eq("studentId", getStudentCourse.getStuId()));
if (tCoursePackagePayments.size() > 0) {
-
List<CourseHoursType> typeList = new ArrayList<>();
tCoursePackagePayments.forEach(cou -> {
CourseHoursType hoursType = new CourseHoursType();
@@ -782,7 +780,6 @@
TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0);
courseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
courseVo.setTypeList(typeList);
-
TCoursePackage coursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
courseVo.setPackageImg(coursePackage.getCoverDrawing());
courseVo.setCourseName(coursePackage.getName());
@@ -1814,7 +1811,6 @@
// 其他星期减一即可得到1-6的数字表示
dayOfWeek -= 1;
}
- // todo
if (weeks.contains(String.valueOf(dayOfWeek))){
// 限时折扣判断是否在有效期
try {
@@ -2415,7 +2411,6 @@
coursePackagePayment.setAppUserId(null);
packagePaymentService.updateById(coursePackagePayment);
}
-
/**
* 修改数据
@@ -3028,10 +3023,7 @@
weekData.add(count2);
weekData.add(count1);
weekData.add(count);
-
map.put("weekData", weekData);
-
-
LocalDateTime currentDateTime = LocalDateTime.now();
List<Integer> amountByDay = new ArrayList<>(Collections.nCopies(7, 0));
for (CoursePackageStudent coursePackageStudent : list) {
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
index b7a6ba6..f620bc1 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
@@ -55,7 +55,6 @@
return coursePackageSchedulingService.getById(id);
}
-
@ResponseBody
@PostMapping("/coursePackageScheduling/queryCoursePackageSchedulingsById")
public List<CoursePackageScheduling> queryCoursePackageSchedulingsById(@RequestBody Long id) {
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
index bb2888b..c8d81b5 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
@@ -51,7 +51,6 @@
.eq("studentId", course.getStuId())
.eq("appUserId", course.getAppUserId())
.eq("signInOrNot", 1));
-
if (coursePackageStudents.size() > 0) {
List<CancelledClasses> list = caccService.list(new QueryWrapper<CancelledClasses>()
.eq("coursePackageId", course.getCourseId()));
@@ -64,7 +63,6 @@
}
return sult;
}
-
@Autowired
private CourseCounsumService courseCounsumService;
@@ -73,7 +71,6 @@
courseCounsumService.save(courseCounsum);
}
-
@PostMapping("/base/courseRecord/cancelCourseData")
public Integer cancelCourseRecordClass(@RequestBody Integer courseRecordId) {
int sult = 0;
@@ -81,7 +78,6 @@
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
String tis = simpleDateFormat.format(new Date());
-
if (ToolUtil.isNotEmpty(packageStudent)) {
TCoursePackage coursePackage = tcpService.getById(packageStudent.getCoursePackageId());
String startTime = tis + " " + coursePackage.getClassStartTime();
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
index 4e064b4..9c1760d 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -50,7 +50,6 @@
private TCoursePackageService coursePackageService;
@Resource
private CoursePackageStudentMapper cpsMapper;
-
//获取退费记录
@RequestMapping("/getRefund")
@ResponseBody
@@ -58,20 +57,14 @@
// 查询已通过申请的退费记录
return counsumService.getRefund();
}
-
-
@Resource
private CoursePackageSchedulingMapper coursePackageSchedulingService;
-
-
@RequestMapping("/getStudentTotal")
@ResponseBody
public List<Map<String, Object>> get(@RequestBody StudentQeryDto studentQeryDto) {
List<Map<String, Object>> pays = paymentService.getStudentTotal(studentQeryDto);
return pays;
-
}
-
@RequestMapping("/bypac")
@ResponseBody
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java
index d12cc4f..33df8b0 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java
@@ -16,10 +16,12 @@
@FeignClient("mb-cloud-other")
public interface StoreClient {
-
/**
- * 根据管理员id获取
+ * 根据运营商id获取对应运营商商户号
+ * @return
*/
+ @PostMapping("/base/getSMIDByOperatorId")
+ String getSMIDByOperatorId(Integer id);
/**
* 根据名称模糊搜索门店
*
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/model/Store.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/model/Store.java
index dfd38a7..efcdff4 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/model/Store.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/other/model/Store.java
@@ -24,6 +24,10 @@
*/
private Integer cityManagerId;
/**
+ * 运营商id
+ */
+ private Integer operatorId;
+ /**
* 省
*/
private String province;
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
index dbd2952..ccbeb2c 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -945,11 +945,22 @@
}
return weixinpay;
}
-
+ private String smid = "2088330203191220";//平台支付宝商户号
public ResultUtil AlipayPayment(String code, BigDecimal request) {
TCoursePackagePaymentMapper baseMapper1 = this.baseMapper;
- ResultUtil alipay = payMoneyUtil.alipay("课包购买", "课包购买", "", code, request.toString(),
+ TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code);
+ // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
+ Integer coursePackageId = coursePackagePayment.getCoursePackageId();
+ TCoursePackage byId = coursePackageService.getById(coursePackageId);
+ Store store = storeClient.queryStoreById(byId.getStoreId());
+ String smid1="";
+ if (store.getOperatorId() == null ){
+ smid1 = smid;
+ }else{
+ smid1 = storeClient.getSMIDByOperatorId(store.getOperatorId());
+ }
+ ResultUtil alipay = payMoneyUtil.alipay(smid1,"课包购买", "课包购买", "", code, request.toString(),
"/base/coursePackage/alipayRegisteredCoursesCallback");
if (alipay.getCode() == 200) {
new Thread(new Runnable() {
@@ -981,12 +992,24 @@
if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) {
coursePackagePayment.setState(3);
baseMapper1.deleteById(coursePackagePayment.getId());
+
break;
}
if ("TRADE_SUCCESS".equals(s)) {
coursePackagePayment.setPayStatus(2);
coursePackagePayment.setOrderNumber(tradeNo);
baseMapper1.updateById(coursePackagePayment);
+ // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
+ Integer coursePackageId = coursePackagePayment.getCoursePackageId();
+ TCoursePackage byId = coursePackageService.getById(coursePackageId);
+ Store store = storeClient.queryStoreById(byId.getStoreId());
+ if (store.getOperatorId()== null ){
+ // 说明是平台的门店
+ payMoneyUtil.confirm(smid,code,tradeNo,request.toString());
+ }else{
+ String smid = storeClient.getSMIDByOperatorId(store.getOperatorId());
+ payMoneyUtil.confirm(smid,code,tradeNo,request.toString());
+ }
break;
}
if ("WAIT_BUYER_PAY".equals(s)) {
@@ -1007,7 +1030,7 @@
TCoursePackagePayment packagePayment = this.baseMapper.selectOne(new QueryWrapper<TCoursePackagePayment>()
.eq("code", code));
if (appUser.getPlayPaiCoins() < wpGold) {
- return ResultUtil.error("玩牌币不足!");
+ return ResultUtil.error("玩湃币不足!");
}
packagePayment.setPayStatus(2);
packagePayment.setPayUserId(appUser.getId());
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
index e140bb1..1d0b910 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1041,7 +1041,7 @@
return weixinpay;
}
-
+ private String smid = "2088330203191220";//平台支付宝商户号
/**
* 课程支付宝支付
*
@@ -1055,6 +1055,7 @@
CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId());
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
+ String smid1="";
//生成支付订单
if (paymentCourseVo.getOrderId()==null){
CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
@@ -1083,8 +1084,18 @@
coursePackageOrder.setPayUserId(uid);
coursePackageOrderService.updateById(coursePackageOrder);
}
-
- ResultUtil alipay = payMoneyUtil.alipay("购买课程", "购买课程", coursePackagePaymentConfig.getId().toString(), code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback");
+ // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
+ Integer coursePackageId = paymentCourseVo.getId();
+ TCoursePackage byId = coursePackageService.getById(coursePackageId);
+ Store store = storeClient.queryStoreById(byId.getStoreId());
+ if (store.getOperatorId() == null ){
+ smid1 = smid;
+ }else{
+ smid1 = storeClient.getSMIDByOperatorId(store.getOperatorId());
+ }
+ ResultUtil alipay = payMoneyUtil.alipay(smid1,"购买课程", "购买课程",
+ coursePackagePaymentConfig.getId().toString(),
+ code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback");
if (alipay.getCode() == 200) {
String finalCode = code;
new Thread(new Runnable() {
@@ -1092,7 +1103,6 @@
public void run() {
try {
Thread.sleep(1000);
-
int num = 1;
int wait = 0;
while (num <= 10) {
@@ -1128,7 +1138,23 @@
coursePackageOrderService.updateById(coursePackageOrder1);
addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
moneyOut(tradeNo,tradeNo,finalCode);
- break;
+ // 根据课程id 查询这个课程属于哪个门店 属于哪个运营商
+ Integer id = paymentCourseVo.getId();
+ TCoursePackage byId = coursePackageService.getById(id);
+ Integer storeId = byId.getStoreId();
+ Store store = storeClient.queryStoreById(storeId);
+ Integer operatorId = store.getOperatorId();
+ if (operatorId==null){
+ String smid ="2088330203191220";
+ // 说明是平台的
+ payMoneyUtil.confirm(smid,finalCode,tradeNo,paymentPrice.toString());
+ break;
+ }else{
+ // 当前课程不属于门店 查询这个课程属于哪个门店 属于哪个运营商
+ String smidByOperatorId = storeClient.getSMIDByOperatorId(operatorId);
+ payMoneyUtil.confirm(smidByOperatorId,finalCode,tradeNo,paymentPrice.toString());
+ break;
+ }
}
if ("WAIT_BUYER_PAY".equals(s)) {
num++;
diff --git a/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java b/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java
index a568526..39a5a61 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java
@@ -54,6 +54,7 @@
private String appid = "wx82f853a410b0c7c0";//微信appid
private String appletsAppid = "";//微信小程序appid
+ private String smid = "2088330203191220";//平台支付宝商户号
private String mchId = "1501481761";//微信商户号
@@ -69,11 +70,50 @@
private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
-
+ public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) {
+ AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+ aliAppid,
+ appPrivateKey,
+ "json",
+ "GBK",
+ alipay_public_key,
+ "RSA2");
+ AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest();
+ request.setBizContent("{" +
+ " \"out_request_no\":\""+code+"\"," +
+ " \"trade_no\":\""+outTradeNo+"\"," +
+ " \"settle_info\":{" +
+ " \"settle_detail_infos\":[" +
+ " {" +
+ " \"trans_in_type\":\"defaultSettle\"," +
+ " \"settle_entity_id\":\""+smid+"\"," +
+ " \"settle_entity_type\":\"SecondMerchant\"," +
+ " \"amount\":"+amount+"," +
+ " }" +
+ " ]" +
+ " }," +
+ " \"extend_params\":{" +
+ " \"royalty_freeze\":\"true\"" +
+ " }" +
+ "}");
+ AlipayTradeSettleConfirmResponse response = null;
+ try {
+ response = alipayClient.execute(request);
+ } catch (AlipayApiException e) {
+ e.printStackTrace();
+ }
+ if(response.isSuccess()){
+ System.out.println("调用成功");
+ return ResultUtil.success();
+ } else {
+ System.out.println("调用失败");
+ return ResultUtil.error("出现问题啦");
+ }
+ }
/**
* 支付宝支付
*/
- public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
+ public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
// //构造client
// CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
// //设置网关地址
@@ -124,8 +164,6 @@
// } catch (AlipayApiException e ) {
// e.printStackTrace();
// }
-
-
//实例化客户端
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
@@ -140,8 +178,8 @@
model.setProductCode("QUICK_MSECURITY_PAY");
model.setPassbackParams(passbackParams);//自定义参数
request.setBizModel(model);
+ model.setSellerId(smid);
request.setNotifyUrl(callbackPath + notifyUrl);
-
try {
//这里和普通的接口调用不同,使用的是sdkExecute
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
diff --git a/cloud-server-course/src/main/resources/sharding-jdbc.properties b/cloud-server-course/src/main/resources/sharding-jdbc.properties
index 0449ee5..c467a6f 100644
--- a/cloud-server-course/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-course/src/main/resources/sharding-jdbc.properties
@@ -14,7 +14,7 @@
datasource.names=master0
datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://192.168.110.80:3306/playpai_course?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://192.168.110.110:3306/playpai_course?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
datasource.master0.username=root
datasource.master0.password=123456
datasource.master0.maxActive=20
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/BankMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/BankMapper.java
new file mode 100644
index 0000000..f4093bd
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/BankMapper.java
@@ -0,0 +1,9 @@
+package com.dsh.course.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.guns.modular.system.model.Bank;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BankMapper extends BaseMapper<Bank> {
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java
index b87b6b6..8d4a30c 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.guns.modular.system.model.OperatorAuth;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
import com.dsh.guns.modular.system.model.TTurn;
import org.apache.ibatis.annotations.Mapper;
@@ -15,6 +16,6 @@
* @since 2023-09-19
*/
@Mapper
-public interface TOperatorAuthMapper extends BaseMapper<OperatorAuth> {
+public interface TOperatorAuthMapper extends BaseMapper<OperatorAuthAlipay> {
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/SaticScheduleTask.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/SaticScheduleTask.java
index 836a28d..22f3689 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/SaticScheduleTask.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/SaticScheduleTask.java
@@ -8,10 +8,13 @@
import com.alipay.api.domain.PrivilegeBenefit;
import com.alipay.api.request.AlipayMerchantIndirectAuthorderCloseRequest;
import com.alipay.api.request.AlipayMerchantIndirectAuthorderQuerystatusRequest;
+import com.alipay.api.request.AntMerchantExpandIndirectZftorderQueryRequest;
import com.alipay.api.response.AlipayMerchantIndirectAuthorderCloseResponse;
import com.alipay.api.response.AlipayMerchantIndirectAuthorderQuerystatusResponse;
+import com.alipay.api.response.AntMerchantExpandIndirectZftorderQueryResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.guns.modular.system.model.OperatorAuth;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
import com.dsh.guns.modular.system.model.OperatorUser;
import com.dsh.guns.modular.system.model.User;
import com.dsh.guns.modular.system.service.IOperatorAuthService;
@@ -21,6 +24,7 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
+import sun.applet.Main;
import java.time.LocalDateTime;
import java.util.List;
@@ -34,139 +38,196 @@
private IOperatorUserService operatorUserService;
@Autowired
private IUserService userService;
+ private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
+ private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
+ private String aliAppid = "2021004105665036";//支付宝appid
// 一个小时执行一次
- @Scheduled(fixedRate=6000)
+ @Scheduled(fixedRate=600000)
private void configureTasks() {
- System.err.println("执行定时任务时间: " + LocalDateTime.now());
- // 回查商户认证单审核状态 查询除了审核通过以外的认证单
- List<OperatorAuth> list = operatorAuthService.list(new QueryWrapper<OperatorAuth>().ne("orderStatus", "AUDIT_PASS"));
- AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021003199648333",
- "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==","json","GBK",
- "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB","RSA2");
- for (OperatorAuth operatorAuth : list) {
- // 第三步:查询申请单审核结果
- AlipayMerchantIndirectAuthorderQuerystatusRequest request1 = new AlipayMerchantIndirectAuthorderQuerystatusRequest();
- request1.setBizContent("{" +
- " \"order_no\":\""+"202312011045284847"+"\"," +
- " \"out_biz_no\":\""+"83972149e3f84216ad2654a1571963f4"+"\"," +
- "}");
- AlipayMerchantIndirectAuthorderQuerystatusResponse response1 = null;
- try {
- response1 = alipayClient.execute(request1);
- } catch (AlipayApiException e) {
- e.printStackTrace();
+ List<OperatorAuthAlipay> list = operatorAuthService.list(new QueryWrapper<OperatorAuthAlipay>());
+ for (OperatorAuthAlipay operatorAuthAlipay : list) {
+ System.err.println("执行定时任务时间: " + LocalDateTime.now());
+ AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+ aliAppid,
+ appPrivateKey, "json", "GBK",
+ alipay_public_key,
+ "RSA2");
+ AntMerchantExpandIndirectZftorderQueryRequest request = new AntMerchantExpandIndirectZftorderQueryRequest();
+ request.setBizContent("{" +
+ " \"order_id\":\"" + operatorAuthAlipay.getOrderNo() + "\"," +
+ " \"external_id\":\"" + operatorAuthAlipay.getOutBizNo() + "\"" +
+ "}");
+ AntMerchantExpandIndirectZftorderQueryResponse response = null;
+ try {
+ response = alipayClient.execute(request);
+ } catch (AlipayApiException e) {
+ e.printStackTrace();
+ }
+ if (response.isSuccess()) {
+ System.out.println("调用成功");
+ JSONObject json = JSONObject.parseObject(response.getBody());
+ System.err.println(json);
+ JSONObject sign = json.getJSONObject("ant_merchant_expand_indirect_zftorder_query_response");
+ JSONArray orders = sign.getJSONArray("orders");
+ JSONObject order = orders.getJSONObject(0);
+ // 提取订单信息
+ String reason = order.getString("reason");
+ String smid = order.getString("smid");
+ String merchantName = order.getString("merchant_name");
+ String applyTime = order.getString("apply_time");
+ String externalId = order.getString("external_id");
+ String orderId = order.getString("order_id");
+ String applyType = order.getString("apply_type");
+ String status = order.getString("status");
+ // 打印订单信息
+ System.out.println("Reason: " + reason);
+ System.out.println("Merchant Name: " + merchantName);
+ System.out.println("Apply Time: " + applyTime);
+ System.out.println("External ID: " + externalId);
+ System.out.println("Order ID: " + orderId);
+ System.out.println("Apply Type: " + applyType);
+ System.out.println("Status: " + status);
+ } else {
+ System.out.println("调用失败");
+ }
}
- if(response1.isSuccess()){
- System.out.println("调用成功");
- } else {
- System.out.println("调用失败");
- }
- JSONObject json = JSONObject.parseObject(response1.getBody());
- JSONObject sign = json.getJSONObject("alipay_merchant_indirect_authorder_querystatus_response");
- String orderNo = sign.getString("order_no");
- String order_status = sign.getString("order_status");
- operatorAuth.setOrderStatus(order_status);
- operatorAuth.setOrderNo(orderNo);
- System.err.println("审核状态:"+order_status);
- // 失败原因
- JSONArray verify_list = sign.getJSONArray("verify_list");
- StringBuilder reason = new StringBuilder("");
- // 失败原因
- if (verify_list!=null){
- for (int i = 0; i < verify_list.size(); i++) {
- JSONObject jsonObject = verify_list.getJSONObject(i);
- String fail_reason = jsonObject.getString("fail_reason");
- reason.append(fail_reason+",");
- }
- String res = reason.toString();
- String substring = res.substring(0, res.length() - 1);
- operatorAuth.setRefuseReason(substring);
- operatorAuthService.updateById(operatorAuth);
-/**
- * 状态 1=审核中(AUDITING)、2=待联系人确认(CONTACT_CONFIRM),
- * 3=待法人确认(LEGAL_CONFIRM)、4=审核通过(AUDIT_PASS)、
- * 5=审核失败(AUDIT_REJECT)、6=已冻结(AUDIT_FREEZE)、
- * 7=已撤回(CANCELED)、8=联系人处理中(CONTACT_PROCESSING)
- */
- }else{
- operatorAuth.setRefuseReason(null);
- }
- Integer operatorId = operatorAuth.getOperatorId();
- User one = userService.getOne(new QueryWrapper<User>().eq("objectId", operatorId)
- .eq("objectType", 2));
- OperatorUser userId = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
- .eq("userId", one.getId()));
- if (userId!=null){
- switch (order_status){
- case "AUDITING":
- operatorAuth.setOrderStatus("AUDITING");
- userId.setAlipayAudit(1);
- break;
- case "CONTACT_CONFIRM":
- operatorAuth.setOrderStatus("CONTACT_CONFIRM");
- userId.setAlipayAudit(2);
- break;
- case "LEGAL_CONFIRM":
- operatorAuth.setOrderStatus("LEGAL_CONFIRM");
- userId.setAlipayAudit(3);
- break;
- case "AUDIT_PASS":
- operatorAuth.setOrderStatus("AUDIT_PASS");
- userId.setAlipayAudit(4);
- break;
- case "AUDIT_REJECT":
- operatorAuth.setOrderStatus("AUDIT_REJECT");
- userId.setAlipayAudit(5);
- break;
- case "AUDIT_FREEZE":
- operatorAuth.setOrderStatus("AUDIT_FREEZE");
- userId.setAlipayAudit(6);
- break;
- case "CANCELED":
- operatorAuth.setOrderStatus("CANCELED");
- userId.setAlipayAudit(7);
- break;
- case "CONTACT_PROCESSING":
- operatorAuth.setOrderStatus("CONTACT_PROCESSING");
- userId.setAlipayAudit(8);
- break;
- }
- operatorUserService.updateById(userId);
- }
- // 审核通过
- String qr_code = sign.getString("qr_code");
- operatorAuth.setQrCode(qr_code);
- operatorAuthService.updateById(operatorAuth);
- System.err.println("二维码"+qr_code);
-// if (operatorAuth.getOrderStatus().equals("AUDIT_REJECT")
-// || operatorAuth.getOrderStatus().equals("AUDIT_FREEZE")
-// || operatorAuth.getOrderStatus().equals("CANCELED")){
-// // 未通过审核 撤销申请单
-// AlipayClient alipayClient1 = new DefaultAlipayClient
-// ("https://openapi.alipay.com/gateway.do",
-// "2021004123692417","MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCq1V7akWZ/V9mr8NGW2CihIbY93M7M33LpVM5y63qEuN7yqyJV197WT6c7uHBcttY6cJLawXLihgC8KF6ZzdXWbm4n4RiigxIaz9LbSVBjYplkNgG2rg7W7dB8wrrqcwBQU0n+pFX3KWJkHRXDugqE21VCGgzySKQBkhiztmTI/z039PdWp2RTGLiL/OuwVrPjQv3He2orYIZgADWid0mtZXCEFosDkaQDTEqCfuDEuMouEiaIk/lw0ZWxiR1Fvfr82nO0r94lM/CC1wNRif2+2ESR+YystsWQPm16eRgS3wAQz2cOTP4L5VNKNzcUAgxTQK3Bj8GvqrYUUlcC7VCTAgMBAAECggEAPKmYDTUkmIOxoATb6BzKEK3P8Re/t7CBNaoPxW8pCog7YyCyCJmnX6LZV7Oe8s1aNVZUT6nyCc5b5HTRYvxcutBr/W1JOiwg+bRiw8u86A3TOmqTITOdwWShbCwaA7binaN12x6wCByB+9r4J5Cgu5zHIbnubvqsgoJGk0ppb5XbyYkikOAXPHli4PUe4GOorSuhRdq3XlGWiMwh4yt48kF4vP+2ByuDOYQU6LjGs0wn/5LpN+ReLdXTab65Cz7WYTDrTndyIrhFg7cyT5m2gtiJuEgIJ45uaaeGNIecV6JSnRsEv4YD4m+I58yhyyvw9zd0Z5qP04QNjy7OK2UeQQKBgQD/EJpaVv0RR83Z6Hp2YVrPoiMz279U5bgkBbcxgr9GR2YYE3rrHqBdqch1Uitu+g6LIC+SDtib7yG9C7EqPHB3fsfEw8NtL54gy3OFbCcH3lqFxgtrCpQ2SIXQjd8932TpzcMdD6jzyUoSraT+lgkf2MgjqFiMbNVg50lGDyWujQKBgQCrdbXTttuazdwU0pdRFCuTz42iIJSZtHFUPvmbrBy7LFQ8NTN76dqLM1RUH7gJukPc4+Ax+DfpDgHZ4nQ2KSk9FweLqKSf10kojibKpc3nkgDRtUtSTar8fZn9VKTuXK1Ho0LUkjDlHjlEwUuf/Ef+IdjzXDJ2UPWHp2YzxvNDnwKBgBWGtjAnpUX/FF1upF83Si251lS7GAO3O3o2zUYtba0lu3UOt9H+DLS67oMQQ0AjdHTDa6BdBmTqoqNMyE/zN96t4Xg2uViOqz7DTOWWwhiE6IjftPj8tJN8PWbjglK7ds3QosXiG3UvqMO4yfL+gJiieAmiXI7FZKDABEwYXSrFAoGASXVe91vKbmJwPgOTjMsleGhd9+4ZfFjQjRWF/2oXzSFK3Zi1fAtO9ICDSp9kS9afqI2AyifcXF8B8AWTYHj2EBRDyVPxZAHqeBOfDwdGVkY5T59qq9JWxWJSjTSsjOrr2ltaEJSpmh/+zTQ7YEnH1ltOBcWkYQiCiSHxKZG9O2UCgYBfBTkjktzv81SnW47d0qRwmiXrcyObmXTe5fIW9e6KaB0SnzcVvoCmm7TTk+Bm4WqNmfb5k8U6J22vdxB1TPlRksnY+VZDM0Grv/xUII9G8oVQ4+NiE5XvQ7+nc5EBJ12of6GxE7/yXZiDld62q2sFZgrFzhvvHV+IADsu/VdIEw==",
-// "json","GBK",
-// "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCzq4BIE4gMdEXxIAAUbiMpSytkzp+LVLVsBtji87rFGfWUcnrr3NKftaw0WtRu+36d1nDVOWW4CmgsOPyj1GOFoTcJOR/BqyIriwyLxpuMS8qgOqGJZXi+W4Nw2AJL6iMVwY2eI8F1G10gACK2I9TNJRzHh3tMTA6ItysbGoekRDtn6Xrkh5V6cyHQjLw0Q6MJK/68XT6/LWzarDEEYrSnIevOydMY32ptAgm5fp/h08M2khCmI6CuMWKmc87dPpd2krGVTALqprAQvB74AIqO+5DE0fN4LoitOYXAtWDCEF4kHN0hQUygIEGCwtMgEVzkf92VLlCX35YtDhWd1yQIDAQAB","RSA2");
-// AlipayMerchantIndirectAuthorderCloseRequest request = new AlipayMerchantIndirectAuthorderCloseRequest();
-// request.setBizContent("{" +
-// " \"order_no\":\""+operatorAuth.getOrderNo()+"\"," +
-// " \"out_biz_no\":\""+operatorAuth.getOutBizNo()+"\"" +
-// "}");
-// AlipayMerchantIndirectAuthorderCloseResponse response = null;
-// try {
-// response = alipayClient1.execute(request);
-// } catch (AlipayApiException e) {
-// e.printStackTrace();
+
+
+// // 回查商户认证单审核状态 查询除了审核通过以外的认证单
+// List<OperatorAuthAlipay> list = operatorAuthService.list(new QueryWrapper<OperatorAuthAlipay>().ne("orderStatus", "AUDIT_PASS"));
+// AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021003199648333",
+// "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==","json","GBK",
+// "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB","RSA2");
+// for (OperatorAuthAlipay operatorAuth : list) {
+// // 第三步:查询申请单审核结果
+// AlipayMerchantIndirectAuthorderQuerystatusRequest request1 = new AlipayMerchantIndirectAuthorderQuerystatusRequest();
+// request1.setBizContent("{" +
+// " \"order_no\":\""+"202312011045284847"+"\"," +
+// " \"out_biz_no\":\""+"83972149e3f84216ad2654a1571963f4"+"\"," +
+// "}");
+// AlipayMerchantIndirectAuthorderQuerystatusResponse response1 = null;
+// try {
+// response1 = alipayClient.execute(request1);
+// } catch (AlipayApiException e) {
+// e.printStackTrace();
+// }
+// if(response1.isSuccess()){
+// System.out.println("调用成功");
+// } else {
+// System.out.println("调用失败");
+// }
+// JSONObject json = JSONObject.parseObject(response1.getBody());
+// JSONObject sign = json.getJSONObject("alipay_merchant_indirect_authorder_querystatus_response");
+// String orderNo = sign.getString("order_no");
+// String order_status = sign.getString("order_status");
+//// operatorAuth.setOrderStatus(order_status);
+// operatorAuth.setOrderNo(orderNo);
+// System.err.println("审核状态:"+order_status);
+//
+// // 失败原因
+// JSONArray verify_list = sign.getJSONArray("verify_list");
+// StringBuilder reason = new StringBuilder("");
+// // 失败原因
+// if (verify_list!=null){
+// for (int i = 0; i < verify_list.size(); i++) {
+// JSONObject jsonObject = verify_list.getJSONObject(i);
+// String fail_reason = jsonObject.getString("fail_reason");
+// reason.append(fail_reason+",");
// }
-// if(response.isSuccess()){
-// System.out.println("撤销申请单调用成功");
-// } else {
-// System.out.println("撤销申请单调用失败");
-// }
+// String res = reason.toString();
+// String substring = res.substring(0, res.length() - 1);
+// operatorAuth.setRefuseReason(substring);
+// operatorAuthService.updateById(operatorAuth);
+///**
+// * 状态 1=审核中(AUDITING)、2=待联系人确认(CONTACT_CONFIRM),
+// * 3=待法人确认(LEGAL_CONFIRM)、4=审核通过(AUDIT_PASS)、
+// * 5=审核失败(AUDIT_REJECT)、6=已冻结(AUDIT_FREEZE)、
+// * 7=已撤回(CANCELED)、8=联系人处理中(CONTACT_PROCESSING)
+// */
+// }else{
+// operatorAuth.setRefuseReason(null);
// }
+// Integer operatorId = operatorAuth.getOperatorId();
+// User one = userService.getOne(new QueryWrapper<User>().eq("objectId", operatorId)
+// .eq("objectType", 2));
+// OperatorUser userId = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+// .eq("userId", one.getId()));
+//// if (userId!=null){
+//// switch (order_status){
+//// case "AUDITING":
+////// operatorAuth.setOrderStatus("AUDITING");
+//// userId.setAlipayAudit(1);
+//// break;
+//// case "CONTACT_CONFIRM":
+//// operatorAuth.setOrderStatus("CONTACT_CONFIRM");
+//// userId.setAlipayAudit(2);
+//// break;
+//// case "LEGAL_CONFIRM":
+//// operatorAuth.setOrderStatus("LEGAL_CONFIRM");
+//// userId.setAlipayAudit(3);
+//// break;
+//// case "AUDIT_PASS":
+//// operatorAuth.setOrderStatus("AUDIT_PASS");
+//// userId.setAlipayAudit(4);
+//// break;
+//// case "AUDIT_REJECT":
+//// operatorAuth.setOrderStatus("AUDIT_REJECT");
+//// userId.setAlipayAudit(5);
+//// break;
+//// case "AUDIT_FREEZE":
+//// operatorAuth.setOrderStatus("AUDIT_FREEZE");
+//// userId.setAlipayAudit(6);
+//// break;
+//// case "CANCELED":
+//// operatorAuth.setOrderStatus("CANCELED");
+//// userId.setAlipayAudit(7);
+//// break;
+//// case "CONTACT_PROCESSING":
+//// operatorAuth.setOrderStatus("CONTACT_PROCESSING");
+//// userId.setAlipayAudit(8);
+//// break;
+//// }
+//// operatorUserService.updateById(userId);
+//// }
+// // 审核通过
+// String qr_code = sign.getString("qr_code");
+//// operatorAuth.setQrCode(qr_code);
+// operatorAuthService.updateById(operatorAuth);
+// System.err.println("二维码"+qr_code);
+//// if (operatorAuth.getOrderStatus().equals("AUDIT_REJECT")
+//// || operatorAuth.getOrderStatus().equals("AUDIT_FREEZE")
+//// || operatorAuth.getOrderStatus().equals("CANCELED")){
+//// // 未通过审核 撤销申请单
+//// AlipayClient alipayClient1 = new DefaultAlipayClient
+//// ("https://openapi.alipay.com/gateway.do",
+//// "2021004123692417","MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCq1V7akWZ/V9mr8NGW2CihIbY93M7M33LpVM5y63qEuN7yqyJV197WT6c7uHBcttY6cJLawXLihgC8KF6ZzdXWbm4n4RiigxIaz9LbSVBjYplkNgG2rg7W7dB8wrrqcwBQU0n+pFX3KWJkHRXDugqE21VCGgzySKQBkhiztmTI/z039PdWp2RTGLiL/OuwVrPjQv3He2orYIZgADWid0mtZXCEFosDkaQDTEqCfuDEuMouEiaIk/lw0ZWxiR1Fvfr82nO0r94lM/CC1wNRif2+2ESR+YystsWQPm16eRgS3wAQz2cOTP4L5VNKNzcUAgxTQK3Bj8GvqrYUUlcC7VCTAgMBAAECggEAPKmYDTUkmIOxoATb6BzKEK3P8Re/t7CBNaoPxW8pCog7YyCyCJmnX6LZV7Oe8s1aNVZUT6nyCc5b5HTRYvxcutBr/W1JOiwg+bRiw8u86A3TOmqTITOdwWShbCwaA7binaN12x6wCByB+9r4J5Cgu5zHIbnubvqsgoJGk0ppb5XbyYkikOAXPHli4PUe4GOorSuhRdq3XlGWiMwh4yt48kF4vP+2ByuDOYQU6LjGs0wn/5LpN+ReLdXTab65Cz7WYTDrTndyIrhFg7cyT5m2gtiJuEgIJ45uaaeGNIecV6JSnRsEv4YD4m+I58yhyyvw9zd0Z5qP04QNjy7OK2UeQQKBgQD/EJpaVv0RR83Z6Hp2YVrPoiMz279U5bgkBbcxgr9GR2YYE3rrHqBdqch1Uitu+g6LIC+SDtib7yG9C7EqPHB3fsfEw8NtL54gy3OFbCcH3lqFxgtrCpQ2SIXQjd8932TpzcMdD6jzyUoSraT+lgkf2MgjqFiMbNVg50lGDyWujQKBgQCrdbXTttuazdwU0pdRFCuTz42iIJSZtHFUPvmbrBy7LFQ8NTN76dqLM1RUH7gJukPc4+Ax+DfpDgHZ4nQ2KSk9FweLqKSf10kojibKpc3nkgDRtUtSTar8fZn9VKTuXK1Ho0LUkjDlHjlEwUuf/Ef+IdjzXDJ2UPWHp2YzxvNDnwKBgBWGtjAnpUX/FF1upF83Si251lS7GAO3O3o2zUYtba0lu3UOt9H+DLS67oMQQ0AjdHTDa6BdBmTqoqNMyE/zN96t4Xg2uViOqz7DTOWWwhiE6IjftPj8tJN8PWbjglK7ds3QosXiG3UvqMO4yfL+gJiieAmiXI7FZKDABEwYXSrFAoGASXVe91vKbmJwPgOTjMsleGhd9+4ZfFjQjRWF/2oXzSFK3Zi1fAtO9ICDSp9kS9afqI2AyifcXF8B8AWTYHj2EBRDyVPxZAHqeBOfDwdGVkY5T59qq9JWxWJSjTSsjOrr2ltaEJSpmh/+zTQ7YEnH1ltOBcWkYQiCiSHxKZG9O2UCgYBfBTkjktzv81SnW47d0qRwmiXrcyObmXTe5fIW9e6KaB0SnzcVvoCmm7TTk+Bm4WqNmfb5k8U6J22vdxB1TPlRksnY+VZDM0Grv/xUII9G8oVQ4+NiE5XvQ7+nc5EBJ12of6GxE7/yXZiDld62q2sFZgrFzhvvHV+IADsu/VdIEw==",
+//// "json","GBK",
+//// "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCzq4BIE4gMdEXxIAAUbiMpSytkzp+LVLVsBtji87rFGfWUcnrr3NKftaw0WtRu+36d1nDVOWW4CmgsOPyj1GOFoTcJOR/BqyIriwyLxpuMS8qgOqGJZXi+W4Nw2AJL6iMVwY2eI8F1G10gACK2I9TNJRzHh3tMTA6ItysbGoekRDtn6Xrkh5V6cyHQjLw0Q6MJK/68XT6/LWzarDEEYrSnIevOydMY32ptAgm5fp/h08M2khCmI6CuMWKmc87dPpd2krGVTALqprAQvB74AIqO+5DE0fN4LoitOYXAtWDCEF4kHN0hQUygIEGCwtMgEVzkf92VLlCX35YtDhWd1yQIDAQAB","RSA2");
+//// AlipayMerchantIndirectAuthorderCloseRequest request = new AlipayMerchantIndirectAuthorderCloseRequest();
+//// request.setBizContent("{" +
+//// " \"order_no\":\""+operatorAuth.getOrderNo()+"\"," +
+//// " \"out_biz_no\":\""+operatorAuth.getOutBizNo()+"\"" +
+//// "}");
+//// AlipayMerchantIndirectAuthorderCloseResponse response = null;
+//// try {
+//// response = alipayClient1.execute(request);
+//// } catch (AlipayApiException e) {
+//// e.printStackTrace();
+//// }
+//// if(response.isSuccess()){
+//// System.out.println("撤销申请单调用成功");
+//// } else {
+//// System.out.println("撤销申请单调用失败");
+//// }
+//// }
- }
+// }
}
+ public static void main(String[] args) {
+ String s = "{\"sign\":\"Q8wa/EiKqeRiatW3mDhPA3Ia1jYXK6c8CxlhTQb0o9XHui16UURb7oiqnoS+P22q3a3POjmuhl/Rwm6MBGzp8RNcXwoWTExNq29OR/jZ6SU9HWiOUewv0/kGgNj4WHpbGbVqaoaW3/Q6w0IhCSRT3GAsULHPBeWQ2HyrScl549y/mwsI6bX132S9dHJ5O7we4Oho0pDWrQfE+daP4p+y1HVGeD6WGBq5HjXIuqNmE/ZrRFc/R+8baMwRQgECeohKhpPs9Ov1xuzeq/wuk/NuDG9YbE/+cKs/Kkg3fYIPM1CsIwvam3wP2iYhTaUlEYidt++EwJ2QVIB3OD5So5aKdg==\",\"ant_merchant_expand_indirect_zftorder_query_response\":{\"msg\":\"Success\",\"code\":\"10000\",\"orders\":[{\"reason\":\"公安网校验失败\",\"merchant_name\":\"成都玩湃生活体育发展有限公司\",\"apply_time\":\"2023-12-20 18:36:26\",\"external_id\":\"273c5a8ad59f4e5397253045af1de8fe\",\"order_id\":\"2023122000502000000005299341\",\"apply_type\":\"ZHIFUTONG_CREATE\",\"status\":\"-1\"}]}}";
+
+
+ }
}
\ No newline at end of file
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
index c54b43b..6596af1 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
@@ -9,9 +9,11 @@
import com.alipay.api.request.AlipayMerchantIndirectAuthorderCreateRequest;
import com.alipay.api.request.AlipayMerchantIndirectAuthorderQuerystatusRequest;
import com.alipay.api.request.AntMerchantExpandIndirectImageUploadRequest;
+import com.alipay.api.request.AntMerchantExpandIndirectZftCreateRequest;
import com.alipay.api.response.AlipayMerchantIndirectAuthorderCreateResponse;
import com.alipay.api.response.AlipayMerchantIndirectAuthorderQuerystatusResponse;
import com.alipay.api.response.AntMerchantExpandIndirectImageUploadResponse;
+import com.alipay.api.response.AntMerchantExpandIndirectZftCreateResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -26,15 +28,19 @@
import com.dsh.guns.modular.system.util.ResultUtil;
+import com.github.binarywang.wxpay.service.BankService;
import com.mysql.cj.x.protobuf.MysqlxExpr;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
+import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -60,8 +66,9 @@
private IOperatorAuthService operatorAuthService;
@Autowired
private IStoreService storeService;
-
-
+ private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
+ private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
+ private String aliAppid = "2021004105665036";//支付宝appid
/**
* 根据运营商id查询所有门店
*/
@@ -149,6 +156,7 @@
page.setRecords(list);
return super.packForBT(page);
}
+
/**
* 跳转运营商商户去认证页面
*/
@@ -159,12 +167,13 @@
User byId = userService.getById(data.getUserId());
model.addAttribute("user",byId);
List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
- model.addAttribute("provinceList",list);
+ model.addAttribute("list",list);
model.addAttribute("data",data);
- OperatorAuth info = operatorAuthService.getOne(new QueryWrapper<OperatorAuth>().eq("operatorId", id));
+ OperatorAuthAlipay info = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>().eq("operatorId", id));
model.addAttribute("item",info);
+
if (info==null){
- OperatorAuth operatorAuth = new OperatorAuth();
+ OperatorAuthAlipay operatorAuth = new OperatorAuthAlipay();
model.addAttribute("item",operatorAuth);
model.addAttribute("bodyType",0);
model.addAttribute("code",null);
@@ -172,49 +181,156 @@
// 0不显示二维码
model.addAttribute("type",0);
}else{
- if (info.getOrderStatus().equals("AUDIT_PASS")||info.getOrderStatus().equals("LEGAL_CONFIRM")||info.getOrderStatus().equals("CONTACT_CONFIRM")){
- // 通过才展示二维码
- model.addAttribute("type",1);
- }else{
- model.addAttribute("type",0);
- }
- model.addAttribute("code",info.getQrCode());
- model.addAttribute("item",info);
model.addAttribute("bodyType",info.getBodyType());
- if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){
- model.addAttribute("reasons",info.getRefuseReason());
- }else{
- model.addAttribute("reasons",null);
- }
+ model.addAttribute("accountType",info.getAccountType());
+ model.addAttribute("useType",info.getUseType());
+ model.addAttribute("cardType",info.getCardType());
+ model.addAttribute("reasons",info.getRefuseReason());
+// TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, info.getCityCode()));
+// List<TCity> district = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId()));
+// model.addAttribute("district",district);
+// if (info.getOrderStatus().equals("AUDIT_PASS")||info.getOrderStatus().equals("LEGAL_CONFIRM")||info.getOrderStatus().equals("CONTACT_CONFIRM")){
+// // 通过才展示二维码
+// model.addAttribute("type",1);
+// }else{
+// model.addAttribute("type",0);
+// }
+// model.addAttribute("code",info.getQrCode());
+// model.addAttribute("item",info);
+// model.addAttribute("bodyType",info.getBodyType());
+// if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){
+// model.addAttribute("reasons",info.getRefuseReason());
+// }else{
+// model.addAttribute("reasons",null);
+// }
}
return PREFIX + "OperatorUser_proportionAuth.html";
}
+ /**
+ * 跳转运营商商户去认证页面 详情页面
+ */
+ @RequestMapping("/proportionAuth1/{id}")
+ public String proportionAuth1(Model model,@PathVariable("id") Integer id) {
+ model.addAttribute("id",id);
+ TOperator data = operatorService.getById(id);
+ User byId = userService.getById(data.getUserId());
+ model.addAttribute("user",byId);
+ model.addAttribute("data",data);
+ OperatorAuthAlipay info = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+ .eq("operatorId", id));
+ model.addAttribute("item",info);
+ List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+ model.addAttribute("list1",list1);
+ if (StringUtils.hasLength(info.getProvince())){
+ // 获取银行开户省
+ List<TCity> list4 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+ // 获取银行开户市
+ TCity city = cityService.getOne(new QueryWrapper<TCity>().eq("code", info.getProvinceCode()));
+ List<TCity> list5 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, city.getId()));
+ model.addAttribute("list4",list4);
+ model.addAttribute("list5",list5);
+ }else{
+ List<TCity> list6 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+ model.addAttribute("list4",list6);
+ }
+
+
+
+ model.addAttribute("bodyType",info.getBodyType());
+ model.addAttribute("accountType",info.getAccountType());
+ model.addAttribute("useType",info.getUseType());
+ model.addAttribute("cardType",info.getCardType());
+ model.addAttribute("reasons",info.getRefuseReason());
+
+
+
+// TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, info.getCityCode()));
+// List<TCity> district = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId()));
+// model.addAttribute("district",district);
+// if (info.getOrderStatus().equals("AUDIT_PASS")||info.getOrderStatus().equals("LEGAL_CONFIRM")||info.getOrderStatus().equals("CONTACT_CONFIRM")){
+// // 通过才展示二维码
+// model.addAttribute("type",1);
+// }else{
+// model.addAttribute("type",0);
+// }
+// model.addAttribute("code",info.getQrCode());
+// model.addAttribute("item",info);
+// model.addAttribute("bodyType",info.getBodyType());
+// if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){
+// model.addAttribute("reasons",info.getRefuseReason());
+// }else{
+// model.addAttribute("reasons",null);
+// }
+
+ return PREFIX + "OperatorUser_proportionAuth_info.html";
+ }
+ /**
+ * 根据所选市 获取区
+ */
+ @RequestMapping(value = "/getDistrict")
+ @ResponseBody
+ public Object onChange(String cityCode) {
+ try {
+ TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, cityCode));
+ List<TCity> parent_id = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId()));
+ return parent_id;
+ }catch (Exception e){
+ e.printStackTrace();
+ return ERROR;
+ }
+ }
+ public static void main(String[] args) {
+ String bankName = "中国工商银行"; // 要转换为简写的银行名称
+
+ Pattern pattern = Pattern.compile("([\\u4e00-\\u9fa5]+)(?=\\s+[A-Za-z]+$)");
+ Matcher matcher = pattern.matcher(bankName);
+ if (matcher.find()) {
+ System.out.println(matcher.group()); // 输出结果:"工商银行" -> "ICBC"
+ } else {
+ System.out.println("无法识别该银行名称!");
+ }
+ }
/**
* 支付宝商户认证提交
*/
@RequestMapping(value = "/auth")
@ResponseBody
- public Object auth(String beneficiaryEnd,String businessEnd,String legalEnd, String name,String phone,String number
- ,Integer operatorId,String bodyType,Integer type,String businessName,String businessNumber,
- String legalRepresentative,String registerAddress,String businessTerm,String businessPicture,
- String legalPerson,String legalNumber,String legalPhone,String legalEmail,String legalTerm,
- String legalAddress,String legalFront,String legalBack,Integer accountType,String bank,
- String accountName,String province,String provinceCode,String city,String cityCode,
- String bankName,String bankNumber,String isBeneficiary,String beneficiary,String beneficiaryPhone,
- String beneficiaryNumber,String beneficiaryAddress,String beneficiaryTerm,String beneficiaryFront,String beneficiaryBack,
- String remark) {
+ public Object auth(Integer operatorId,String bodyType,String businessName,String aliasName,String businessNumber,
+ String license,String name,String phone,String shopProvinceCode,String shopProvince,String shopCityCode,
+ String shopCity, String shopDistrictCode,String shopDistrict,String registerAddress,String legalPerson,
+ String leagleNumber,String legalFront,String legalBack,String accountType,String alipayAccount,
+ String bankCard,String useType,String cardType,String bankName,String bankNameTwo,
+ String accountName,String provinceCode,String province,String cityCode,String city,String zfbAccount,
+ String iqImage) {
UUID uuid = UUID.randomUUID();
- OperatorAuth data = operatorAuthService.getOne(new QueryWrapper<OperatorAuth>().eq("operatorId", operatorId));
- OperatorAuth operatorAuth = new OperatorAuth();
+ // 通过运营商id查询
+ TOperator byId = operatorService.getById(operatorId);
+ Integer userId1 = byId.getUserId();
+ OperatorUser userId2 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+ .eq("userId", userId1));
+ // 0未认证 1待审核 2通过 3驳回
+ userId2.setAlipayAudit(1);
+ operatorUserService.updateById(userId2);
+ OperatorAuthAlipay data = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>().eq("operatorId", operatorId));
+ String group="ABC";
+// if(StringUtils.hasLength(bankName)){
+// Pattern pattern = Pattern.compile(".*[\\u4e00-\\u9fa5]+"); // 只保留汉字部分
+// Matcher matcher = pattern.matcher(bankName);
+// group = matcher.group();
+// if (matcher.find()) {
+// System.out.println("银行名称简写为:" + matcher.group());
+// } else {
+// System.out.println("无法获取到银行名称简写!");
+// return 5007;
+// }
+// }
+
+ OperatorAuthAlipay operatorAuth = new OperatorAuthAlipay();
if (data!=null){
operatorAuth.setId(data.getId());
- if(businessPicture==null || businessPicture.equals("")){
- operatorAuth.setBusinessPicture(data.getBusinessPicture());
- businessPicture = data.getBusinessPicture();
- }
if(legalFront==null || legalFront.equals("")){
legalFront = data.getLegalFront();
operatorAuth.setLegalFront(data.getLegalFront());
@@ -223,16 +339,21 @@
legalBack = data.getLegalBack();
operatorAuth.setLegalBack(data.getLegalBack());
}
- if(beneficiaryFront==null || beneficiaryFront.equals("")){
- beneficiaryFront = data.getBeneficiaryFront();
- operatorAuth.setBeneficiaryFront(data.getBeneficiaryFront());
+ if(iqImage==null || iqImage.equals("")){
+ iqImage = data.getIqImage();
+ operatorAuth.setIqImage(data.getIqImage());
}
- if(beneficiaryBack==null || beneficiaryBack.equals("")){
- beneficiaryBack = data.getBeneficiaryBack();
- operatorAuth.setBeneficiaryBack(data.getBeneficiaryBack());
+
+ if(license==null || license.equals("")){
+ license = data.getCertImage();
+ operatorAuth.setCertImage(data.getCertImage());
}
}else{
- if(businessPicture==null || businessPicture.equals("")){
+ operatorAuth.setLegalFront(legalFront);
+ operatorAuth.setLegalBack(legalBack);
+ operatorAuth.setIqImage(iqImage);
+ operatorAuth.setCertImage(license);
+ if(license==null || license.equals("")){
// 未上传营业执照
return 5001;
}
@@ -244,194 +365,238 @@
// 未上传法人身份证背面照
return 5003;
}
- if (businessPicture!=null && businessPicture.equals("ENTERPRISE")){
- if(beneficiaryFront==null || beneficiaryFront.equals("")){
- // 未上传受益人身份证正面照
- return 5004;
- }
- if(beneficiaryBack==null || beneficiaryBack.equals("")){
- // 未上传受益人身份证背面照
- return 5005;
- }
- }
}
String numericUUID = uuid.toString().replaceAll("-", "");
+ operatorAuth.setOutBizNo(numericUUID);
+ operatorAuth.setOperatorId(operatorId);
+ operatorAuth.setRegisterAddress(registerAddress);
+ operatorAuth.setAliasName(aliasName);
+ operatorAuth.setBodyType(bodyType);
operatorAuth.setName(name);
operatorAuth.setPhone(phone);
- operatorAuth.setNumber(number);
- operatorAuth.setBusinessEnd(businessEnd);
- operatorAuth.setLegalEnd(legalEnd);
- operatorAuth.setBeneficiaryEnd(beneficiaryEnd);
- operatorAuth.setOperatorId(operatorId);
- operatorAuth.setBodyType(bodyType);
- operatorAuth.setType(type);
operatorAuth.setBusinessName(businessName);
operatorAuth.setBusinessNumber(businessNumber);
- operatorAuth.setLegalRepresentative(legalRepresentative);
- operatorAuth.setRegisterAddress(registerAddress);
- operatorAuth.setBusinessTerm(businessTerm);
- operatorAuth.setOutBizNo(numericUUID);
- operatorAuth.setBusinessPicture(businessPicture);
+ operatorAuth.setCertImage(license);
operatorAuth.setLegalPerson(legalPerson);
- operatorAuth.setLeagleNumber(legalNumber);
- operatorAuth.setLegalPhone(legalPhone);
- operatorAuth.setLegalEmail(legalEmail);
- operatorAuth.setLegalTerm(legalTerm);
- operatorAuth.setLegalAddress(legalAddress);
operatorAuth.setLegalFront(legalFront);
operatorAuth.setLegalBack(legalBack);
+ operatorAuth.setLeagleNumber(leagleNumber);
operatorAuth.setAccountType(accountType);
- operatorAuth.setBank(bank);
+ operatorAuth.setBankName(bankName);
operatorAuth.setAccountName(accountName);
+ operatorAuth.setBankCard(bankCard);
operatorAuth.setProvince(province);
operatorAuth.setProvinceCode(provinceCode);
operatorAuth.setCity(city);
operatorAuth.setCityCode(cityCode);
- operatorAuth.setBankName(bankName);
- operatorAuth.setBankNumber(bankNumber);
+ operatorAuth.setShopCity(shopCity);
+ operatorAuth.setShopProvince(shopProvince);
+ operatorAuth.setShopProvinceCode(shopProvinceCode);
+ operatorAuth.setShopCityCode(shopCityCode);
+ operatorAuth.setProvince(province);
+ operatorAuth.setProvinceCode(provinceCode);
+ operatorAuth.setShopDistrict(shopDistrict);
+ operatorAuth.setShopDistrictCode(shopDistrictCode);
+ operatorAuth.setAlipayAccount(alipayAccount);
+ operatorAuth.setUseType(useType);
+ operatorAuth.setCardType(cardType);
+ operatorAuth.setBankNameTwo(bankNameTwo);
operatorAuth.setAuditState(0);
- operatorAuth.setIsBeneficiary(isBeneficiary);
- operatorAuth.setBeneficiary(beneficiary);
- operatorAuth.setBeneficiaryNumber(beneficiaryNumber);
- operatorAuth.setBeneficiaryAddress(beneficiaryAddress);
- operatorAuth.setBeneficiaryTerm(beneficiaryTerm);
- operatorAuth.setBeneficiaryFront(beneficiaryFront);
- operatorAuth.setBeneficiaryBack(beneficiaryBack);
operatorAuth.setRefuseReason("");
- operatorAuth.setRemark(remark);
+ operatorAuth.setZfbAccount(zfbAccount);
// 将图片上传至阿里存储
// 营业执照
- String string = uploadImg(businessPicture).toString();
+ String string = uploadImg(license).toString();
// 法人身份证正面照
legalFront = uploadImg(legalFront).toString();
// 法人身份证背面照
legalBack = uploadImg(legalBack).toString();
-
- if (bodyType.equals("ENTERPRISE")){
- // 受益人身份证正面照
- beneficiaryFront=uploadImg(beneficiaryFront).toString();
- // 受益人身份证背面照
- beneficiaryBack=uploadImg(beneficiaryBack).toString();
- }
-
-
+ // 商户行业资质图片
+ iqImage = uploadImg(iqImage).toString();
+ operatorAuthService.saveOrUpdate(operatorAuth);
+ // todo 填写申请单
//第二步:提交申请单
- AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021003199648333",
- "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==","json","GBK",
- "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB","RSA2");
- AlipayMerchantIndirectAuthorderCreateRequest request = new AlipayMerchantIndirectAuthorderCreateRequest();
- String param = "{" +
- " \"out_biz_no\":\""+uuid+"\"," +
- " \"contact_person_info\":{" +
- " \"contact_name\":\""+name+"\"," +
- " \"contact_phone_no\":\""+phone+"\"," +
- " \"contact_card_no\":\""+number+"\"," +
- " \"contact_cert_type\":\"RESIDENT\"" +
- " }," +
- " \"auth_identity_info\":{" +
- " \"identity_type\":\""+bodyType+"\"," +
- " \"is_financial_org\":false," +
- " \"certificate_type\":\"BUSINESS_CERT\"," +
- " \"certificate_info\":{" +
- " \"cert_no\":\""+businessNumber+"\"," +
- " \"cert_image\":\""+string+"\"," +
- " \"merchant_name\":\""+businessName+"\"," +
- " \"legal_person_name\":\""+legalRepresentative+"\"," +
- " \"register_address\":\""+registerAddress+"\"," +
- " \"effect_time\":\""+businessTerm+"\"," +
- " \"expire_time\":\""+businessEnd+"\"" +
- " }," +
- " }," +
- " \"legal_person_info\":{" +
- " \"card_type\":\"RESIDENT\"," +
- " \"person_name\":\""+legalRepresentative+"\"," +
- " \"card_no\":\""+legalNumber+"\"," +
- " \"effect_time\":\""+legalTerm+"\"," +
- " \"expire_time\":\""+legalEnd+"\"," +
- " \"card_front_img\":\""+legalFront+"\"," +
- " \"card_back_img\":\""+legalBack+"\"," +
- " \"is_benefit_person\":"+isBeneficiary+"" +
- " },";
- String bene = " \"benefit_person_info\":{" +
- " \"person_name\":\""+beneficiary+"\"," +
- " \"card_no\":\""+beneficiaryNumber+"\"," +
- " \"card_type\":\"RESIDENT\"," +
- " \"effect_time\":\""+beneficiaryTerm+"\"," +
- " \"expire_time\":\""+beneficiaryEnd+"\"," +
- " \"card_front_img\":\""+beneficiaryFront+"\"," +
- " \"card_back_img\":\""+beneficiaryBack+"\"" +
- " },";
- if (bodyType.equals("ENTERPRISE")){
- request.setBizContent(param
- + bene+
- "}");
- }else{
- request.setBizContent(param
- +
- "}");
- }
+// AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021003199648333",
+// "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==","json","GBK",
+// "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB","RSA2");
+// AlipayMerchantIndirectAuthorderCreateRequest request = new AlipayMerchantIndirectAuthorderCreateRequest();
+// String param = "{" +
+// " \"out_biz_no\":\""+uuid+"\"," +
+// " \"contact_person_info\":{" +
+// " \"contact_name\":\""+name+"\"," +
+// " \"contact_phone_no\":\""+phone+"\"," +
+// " \"contact_card_no\":\""+number+"\"," +
+// " \"contact_cert_type\":\"RESIDENT\"" +
+// " }," +
+// " \"auth_identity_info\":{" +
+// " \"identity_type\":\""+bodyType+"\"," +
+// " \"is_financial_org\":false," +
+// " \"certificate_type\":\"BUSINESS_CERT\"," +
+// " \"certificate_info\":{" +
+// " \"cert_no\":\""+businessNumber+"\"," +
+// " \"cert_image\":\""+string+"\"," +
+// " \"merchant_name\":\""+businessName+"\"," +
+// " \"legal_person_name\":\""+legalRepresentative+"\"," +
+// " \"register_address\":\""+registerAddress+"\"," +
+// " \"effect_time\":\""+businessTerm+"\"," +
+// " \"expire_time\":\""+businessEnd+"\"" +
+// " }," +
+// " }," +
+// " \"legal_person_info\":{" +
+// " \"card_type\":\"RESIDENT\"," +
+// " \"person_name\":\""+legalRepresentative+"\"," +
+// " \"card_no\":\""+legalNumber+"\"," +
+// " \"effect_time\":\""+legalTerm+"\"," +
+// " \"expire_time\":\""+legalEnd+"\"," +
+// " \"card_front_img\":\""+legalFront+"\"," +
+// " \"card_back_img\":\""+legalBack+"\"," +
+// " \"is_benefit_person\":"+isBeneficiary+"" +
+// " },";
+// String bene = " \"benefit_person_info\":{" +
+// " \"person_name\":\""+beneficiary+"\"," +
+// " \"card_no\":\""+beneficiaryNumber+"\"," +
+// " \"card_type\":\"RESIDENT\"," +
+// " \"effect_time\":\""+beneficiaryTerm+"\"," +
+// " \"expire_time\":\""+beneficiaryEnd+"\"," +
+// " \"card_front_img\":\""+beneficiaryFront+"\"," +
+// " \"card_back_img\":\""+beneficiaryBack+"\"" +
+// " },";
+// if (bodyType.equals("ENTERPRISE")){
+// request.setBizContent(param
+// + bene+
+// "}");
+// }else{
+// request.setBizContent(param
+// +
+// "}");
+// }
+//
+// AlipayMerchantIndirectAuthorderCreateResponse response = null;
+// try {
+// response = alipayClient.execute(request);
+// } catch (AlipayApiException e) {
+// e.printStackTrace();
+// }
- AlipayMerchantIndirectAuthorderCreateResponse response = null;
+ AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+ aliAppid,
+ appPrivateKey,
+ "json","GBK",
+ alipay_public_key,
+ "RSA2");
+ AntMerchantExpandIndirectZftCreateRequest request = new AntMerchantExpandIndirectZftCreateRequest();
+ String param = "{" +
+ " \"external_id\":\""+numericUUID+"\"," +
+ " \"merchant_type\":\""+bodyType+"\"," +
+ " \"name\":\""+businessName+"\"," +
+ " \"alias_name\":\""+aliasName+"\"," +
+ " \"mcc\":\"B0068\"," +
+ " \"cert_no\":\""+businessNumber+"\"," +
+ " \"cert_type\":\"201\"," +
+ " \"cert_image\":\""+string+"\"," +
+ " \"legal_name\":\""+legalPerson+"\"," +
+ " \"legal_cert_no\":\""+leagleNumber+"\"," +
+ " \"legal_cert_front_image\":\""+legalFront+"\"," +
+ " \"legal_cert_back_image\":\""+legalBack+"\"," +
+ " \"contact_infos\":[" +
+ " {" +
+ " \"name\":\""+name+"\"," +
+ " \"mobile\":\""+phone+"\"," +
+ " }" +
+ " ],";
+
+ // todo 拼接
+ String biz_cards=" \"biz_cards\":[" +
+ " {" +
+ " \"account_holder_name\":\""+accountName+"\"," +
+ " \"account_no\":\""+bankCard+"\"," +
+ " \"account_inst_province\":\""+province+"\"," +
+ " \"account_inst_city\":\""+city+"\"," +
+ " \"account_branch_name\":\""+bankNameTwo+"\"," +
+ " \"usage_type\":\""+useType+"\"," +
+ " \"account_type\":\""+cardType+"\"," +
+ " \"account_inst_name\":\""+bankName+"\"," +
+ " \"account_inst_id\":\""+group+"\"," +
+ " }" +
+ " ]," ;
+ // 结算类型 支付宝账户 / 银行卡
+ String type ;
+ // 结算类型为支付宝 填写支付宝账号 结算类型为银行卡填写银行卡号
+ String account;
+ if (StringUtils.hasLength(alipayAccount)){
+ type = accountType;
+ account = alipayAccount;
+ }else{
+ type = accountType;
+ account = bankCard;
+ }
+ String res=
+ " \"service\":[" +
+ " \"app支付\"" +
+ " ]," +
+ " \"alipay_logon_id\":" +
+ " \""+zfbAccount+"\"" +
+ " ," +
+ " \"sites\":[" +
+ " {" +
+ " \"site_type\":\"02\"," +
+ " \"site_name\":\"玩湃生活\"," +
+ " \"tiny_app_id\":\"wx82f853a410b0c7c0\"" +
+ " }" +
+ " ]," +
+ " \"cert_name\":\""+businessName+"\","+
+ " \"binding_alipay_logon_id\":\""+zfbAccount+"\","+
+ " \"default_settle_rule\":{" +
+ " \"default_settle_type\":\""+type+"\"," +
+ " \"default_settle_target\":\""+account+"\"" +
+ " }" +
+ "}";
+ if (accountType.equals("bankCard")){
+ request.setBizContent(param
+ + biz_cards+res);
+ }
+ AntMerchantExpandIndirectZftCreateResponse response = null;
try {
response = alipayClient.execute(request);
} catch (AlipayApiException e) {
+ System.err.println("???????????");
e.printStackTrace();
}
if(response.isSuccess()){
- System.out.println("上传认证单");
+ System.out.println("调用成功");
JSONObject json = JSONObject.parseObject(response.getBody());
- JSONObject json1 = json.getJSONObject("alipay_merchant_indirect_authorder_create_response");
- String order_no = json1.getString("order_no");
- String order_status = json1.getString("order_status");
-// // 申请单号
-// String orderNo = r.getString("order_no");
- /**
- * 状态 审核中(AUDITING)、待联系人确认(CONTACT_CONFIRM),
- * 待法人确认(LEGAL_CONFIRM)、审核通过(AUDIT_PASS)、
- * 审核失败(AUDIT_REJECT)、已冻结(AUDIT_FREEZE)、
- * 已撤回(CANCELED)、联系人处理中(CONTACT_PROCESSING)
- */
-// String orderStatus = r.getString("order_status");
+ JSONObject json1 = json.getJSONObject("ant_merchant_expand_indirect_zft_create_response");
+ String order_no = json1.getString("order_id");
+ System.err.println("订单号"+order_no);
operatorAuth.setOrderNo(order_no);
- operatorAuth.setOrderStatus(order_status);
- operatorAuth.setQrCode(null);
- operatorAuth.setRefuseReason(null);
operatorAuthService.saveOrUpdate(operatorAuth);
- // 通过运营商id找到用户id
- TOperator byId = operatorService.getById(operatorId);
- if (byId!=null){
- Integer userId = byId.getUserId();
- OperatorUser userId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", userId));
- if (userId1!=null){
- // 设置为审核中状态
- userId1.setAlipayAudit(1);
- if (bodyType.equals("ENTERPRISE")){
- userId1.setAlipayType(2);
- }else{
- userId1.setAlipayType(1);
- }
-// userId1.setWechatAudit(1);
- operatorUserService.updateById(userId1);
- operatorAuth.setQrCode(null);
- operatorAuthService.saveOrUpdate(operatorAuth);
- // 根据选择类型修改认证类型
-
- }
+ Integer userId = operatorService.getById(operatorId).getUserId();
+ OperatorUser user = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", userId));
+ user.setAlipayAudit(1);
+ // 01是企业
+ if (bodyType.equals("01")){
+ user.setAlipayType(2);
+ }else{
+ user.setAlipayType(1);
}
} else {
- System.out.println("调用失败");
+ if (response.getCode().equals("40004")){
+ String subMsg = response.getSubMsg();
+ return ResultUtil.error(subMsg);
+ }
}
- return SUCCESS_TIP;
+ return ResultUtil.success();
}
public static Object uploadImg(String img){
- String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==";
- String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";
+ String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
+ String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
+ String aliAppid = "2021004105665036";//支付宝appid
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
- alipayConfig.setAppId("2021003199648333");
- alipayConfig.setPrivateKey(privateKey);
+ alipayConfig.setAppId(aliAppid);
+ alipayConfig.setPrivateKey(appPrivateKey);
alipayConfig.setFormat("json");
- alipayConfig.setAlipayPublicKey(alipayPublicKey);
+ alipayConfig.setAlipayPublicKey(alipay_public_key);
alipayConfig.setCharset("UTF8");
alipayConfig.setSignType("RSA2");
AlipayClient alipayClient = null;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
index de62eb5..6f35ce3 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
@@ -68,7 +68,6 @@
}
-
/**
* 获取运营商列表
*/
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
index fd80080..0e8cd59 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
@@ -431,11 +431,11 @@
@ResponseBody
public Object onChange(Integer oneId) {
System.out.println("======"+oneId);
- List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 2));
+ List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>()
+ .eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 2));
if (list.size()!=0){
return list;
}
-
try {
TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId));
return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
@@ -444,6 +444,13 @@
return ERROR;
}
}
+
+ @RequestMapping(value = "/onChange3")
+ @ResponseBody
+ public Object onChange3(String oneId) {
+ TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId));
+ return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
+ }
@RequestMapping(value = "/oneChangeNext")
@ResponseBody
public Object oneChangeNext(Integer oneId) {
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java
index 4cb4650..9017240 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java
@@ -26,7 +26,6 @@
@Controller
@RequestMapping("/storeValueConfig")
public class TStoredValueConfigController {
-
private String PREFIX = "/system/storeValueConfig/";
@Autowired
private StoreValueConfigClient storeValueConfigClient;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorAuthAlipay.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorAuthAlipay.java
new file mode 100644
index 0000000..5701c0c
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorAuthAlipay.java
@@ -0,0 +1,103 @@
+package com.dsh.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 支付宝认证
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_operator_auth_alipay")
+public class OperatorAuthAlipay {
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ @TableField(value = "operatorId")
+ private Integer operatorId;
+ @TableField(value = "bodyType")
+ private String bodyType;
+ @TableField(value = "registerAddress")
+ private String registerAddress;
+ @TableField(value = "inDoorImages")
+ private String inDoorImages;
+ @TableField(value = "outDoorImages")
+ private String outDoorImages;
+ @TableField(value = "aliasName")
+ private String aliasName;
+ @TableField(value = "businessName")
+ private String businessName;
+ @TableField(value = "businessNumber")
+ private String businessNumber;
+ @TableField(value = "certImage")
+ private String certImage;
+ @TableField(value = "legalPerson")
+ private String legalPerson;
+ @TableField(value = "leagleNumber")
+ private String leagleNumber;
+ @TableField(value = "legalFront")
+ private String legalFront;
+ @TableField(value = "legalBack")
+ private String legalBack;
+ @TableField(value = "accountType")
+ private String accountType;
+ @TableField(value = "province")
+ private String province;
+ @TableField(value = "provinceCode")
+ private String provinceCode;
+ @TableField(value = "city")
+ private String city;
+ @TableField(value = "cityCode")
+ private String cityCode;
+ @TableField(value = "bankName")
+ private String bankName;
+ @TableField(value = "accountName")
+ private String accountName;
+ @TableField(value = "bankCard")
+ private String bankCard;
+ @TableField(value = "refuseReason")
+ private String refuseReason;
+ @TableField(value = "smid")
+ private String smid;
+ @TableField(value = "auditState")
+ private Integer auditState;
+ @TableField(value = "outBizNo")
+ private String outBizNo;
+ @TableField(value = "name")
+ private String name;
+ @TableField(value = "phone")
+ private String phone;
+ @TableField(value = "orderNo")
+ private String orderNo;
+ @TableField(value = "shopProvince")
+ private String shopProvince;
+ @TableField(value = "shopProvinceCode")
+ private String shopProvinceCode;
+ @TableField(value = "shopCity")
+ private String shopCity;
+ @TableField(value = "shopCityCode")
+ private String shopCityCode;
+ @TableField(value = "shopDistrictCode")
+ private String shopDistrictCode;
+ @TableField(value = "shopDistrict")
+ private String shopDistrict;
+ @TableField(value = "certName")
+ private String certName;
+ @TableField(value = "alipayAccount")
+ private String alipayAccount;
+ @TableField(value = "iqImage")
+ private String iqImage;
+ @TableField(value = "useType")
+ private String useType;
+ @TableField(value = "cardType")
+ private String cardType;
+ @TableField(value = "bankNameTwo")
+ private String bankNameTwo;
+ @TableField(value = "zfbAccount")
+ private String zfbAccount;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorAuthService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorAuthService.java
index d572aa2..656a506 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorAuthService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorAuthService.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.guns.modular.system.model.OperatorAuth;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
import com.dsh.guns.modular.system.model.TSite;
/**
* @author zhibing.pu
* @Date 2023/8/1 17:49
*/
-public interface IOperatorAuthService extends IService<OperatorAuth> {
+public interface IOperatorAuthService extends IService<OperatorAuthAlipay> {
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/TBankService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/TBankService.java
new file mode 100644
index 0000000..5e88704
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/TBankService.java
@@ -0,0 +1,17 @@
+package com.dsh.guns.modular.system.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.guns.modular.system.model.Bank;
+
+/**
+ * <p>
+ * 银行 服务类
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-10-09
+ */
+public interface TBankService extends IService<Bank> {
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/BankServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/BankServiceImpl.java
new file mode 100644
index 0000000..b1af254
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/BankServiceImpl.java
@@ -0,0 +1,12 @@
+package com.dsh.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.course.mapper.BankMapper;
+import com.dsh.guns.modular.system.model.Bank;
+import org.springframework.stereotype.Service;
+
+@Service
+public class BankServiceImpl extends ServiceImpl<BankMapper, Bank> implements IService<Bank> {
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorAuthServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorAuthServiceImpl.java
index 172150e..c85504e 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorAuthServiceImpl.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorAuthServiceImpl.java
@@ -5,6 +5,7 @@
import com.dsh.course.mapper.TOperatorAuthMapper;
import com.dsh.course.mapper.TTurnMapper;
import com.dsh.guns.modular.system.model.OperatorAuth;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
import com.dsh.guns.modular.system.model.TTurn;
import com.dsh.guns.modular.system.service.IOperatorAuthService;
import com.dsh.guns.modular.system.service.TTurnService;
@@ -19,6 +20,6 @@
* @since 2023-09-19
*/
@Service
-public class TOperatorAuthServiceImpl extends ServiceImpl<TOperatorAuthMapper, OperatorAuth> implements IOperatorAuthService {
+public class TOperatorAuthServiceImpl extends ServiceImpl<TOperatorAuthMapper, OperatorAuthAlipay> implements IOperatorAuthService {
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java
index 0808124..4f67843 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java
@@ -49,30 +49,35 @@
@Autowired
private WeChatUtil weChatUtil;
+// @Override
+// public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) {
+//
+// OperatorAuthAlipay shopAuthentication = new OperatorAuth();
+//
+// if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){
+// mgtShopAuthDto.setBlBusinessDeanline("长期");
+// }
+// if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){
+// mgtShopAuthDto.setLpIcEndDate("长期");
+// }
+// BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
+// TOperator operator = operatorMapper.selectById(shopAuthentication.getOperatorId());
+// String applyNumber = UUIDUtil.getNativeUUID().replace("-","");
+// shopAuthentication.setOutBizNo(applyNumber);
+// ApplymentsResult applymentsResult;
+// try {
+// applymentsResult = weChatUtil.ecommerceApply(shopAuthentication,applyNumber,operator);
+// } catch (Exception e) {
+// throw new ServiceException(e.getMessage());
+// }
+// shopAuthentication.setOrderStatus("AUDITING");
+// shopAuthentication.setOrderNo(applymentsResult.getApplymentId());
+// operatorAuthService.saveOrUpdate(shopAuthentication);
+// }
+
@Override
public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) {
- OperatorAuth shopAuthentication = new OperatorAuth();
-
- if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){
- mgtShopAuthDto.setBlBusinessDeanline("长期");
- }
- if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){
- mgtShopAuthDto.setLpIcEndDate("长期");
- }
- BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
- TOperator operator = operatorMapper.selectById(shopAuthentication.getOperatorId());
- String applyNumber = UUIDUtil.getNativeUUID().replace("-","");
- shopAuthentication.setOutBizNo(applyNumber);
- ApplymentsResult applymentsResult;
- try {
- applymentsResult = weChatUtil.ecommerceApply(shopAuthentication,applyNumber,operator);
- } catch (Exception e) {
- throw new ServiceException(e.getMessage());
- }
- shopAuthentication.setOrderStatus("AUDITING");
- shopAuthentication.setOrderNo(applymentsResult.getApplymentId());
- operatorAuthService.saveOrUpdate(shopAuthentication);
}
@Override
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
new file mode 100644
index 0000000..b9f7be4
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
@@ -0,0 +1,293 @@
+package com.dsh.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.CertAlipayRequest;
+import com.alipay.api.DefaultAlipayClient;
+import com.alipay.api.domain.AlipayTradeAppPayModel;
+import com.alipay.api.request.*;
+import com.alipay.api.response.*;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.springframework.stereotype.Component;
+import javax.servlet.http.HttpServletRequest;
+import java.io.*;
+import java.util.*;
+/**
+ * 第三方支付工具类
+ */
+@Component
+public class PayMoneyUtil {
+ private String aliAppid = "2021004105665036";//支付宝appid
+
+ private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
+
+ private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouYvZ1v4RiydwNOnGcU0Hb4hQu0x6XUooaE2Bi6/atNOobtFdunnATGP6OMOW7yF9DpP8qH5mbFXAiaQD721y/7qlayI50UcV4mngRU4ZcaAVE3bp721Eg2H85RISa+Tb1CiOh+pc9p4l5UBseKsvB2ruHHForfZDPI8FL7AVUKBYCQPsa4zL6KAO2C6KULaTg/lCa+bYQKU0n9ca569VtdsqJUyxB9eSZjVd+9nKl62FLqp2NELGj7cXqiVBgDnBnVS5ZUO3mrBM5z/AxQbw3RwE3JqdkhzUA1BFjejAlT2zIGNOjUFagF8ao0wGElYfuk0bum6Hz5qWAt02QdNNwIDAQAB";//支付宝应用公钥
+
+ private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
+
+ private String appid = "";//微信appid
+
+ private String appletsAppid = "";//微信小程序appid
+
+ private String mchId = "";//微信商户号
+
+ private String key = "";//微信商户号
+
+ private String callbackPath = "http://221.182.45.100:56666/account";//支付回调网关地址
+
+ private String app_cert_path = "C:/cert/alipay/user/app_cert_path.crt";//应用公钥证书路径
+
+ private String alipay_cert_path = "C:/cert/alipay/user/alipay_cert_path.crt";//支付宝公钥证书文件路径
+
+ private String alipay_root_cert_path = "C:/cert/alipay/user/alipay_root_cert_path.crt";//支付宝CA根证书文件路径
+
+ private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
+
+ /**
+ * 支付宝支付
+ */
+ public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
+// //构造client
+// CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
+// //设置网关地址
+// certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
+// //设置应用Id
+// certAlipayRequest.setAppId(aliAppid);
+// //设置应用私钥
+// certAlipayRequest.setPrivateKey(appPrivateKey);
+// //设置请求格式,固定值json
+// certAlipayRequest.setFormat("json");
+// //设置字符集
+// certAlipayRequest.setCharset("UTF-8");
+// //设置签名类型
+// certAlipayRequest.setSignType("RSA2");
+// //设置应用公钥证书路径
+// certAlipayRequest.setCertPath(app_cert_path);
+// //设置支付宝公钥证书路径
+// certAlipayRequest.setAlipayPublicCertPath(alipay_cert_path);
+// //设置支付宝根证书路径
+// certAlipayRequest.setRootCertPath(alipay_root_cert_path);
+// //构造client
+// AlipayClient alipayClient = null;
+// try {
+// alipayClient = new DefaultAlipayClient(certAlipayRequest);
+// } catch (AlipayApiException e) {
+// e.printStackTrace();
+// }
+// //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
+// AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest ();
+// //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
+// AlipayTradeAppPayModel model = new AlipayTradeAppPayModel ();
+// model.setBody(body);
+// model.setSubject (subject);
+// model.setOutTradeNo (outTradeNo);
+// model.setTimeoutExpress ("30m" );
+// model.setTotalAmount (amount);
+// model.setProductCode ( "QUICK_MSECURITY_PAY" );
+// model.setPassbackParams(passbackParams);//自定义参数
+// request.setBizModel ( model );
+// request.setNotifyUrl (callbackPath + notifyUrl);
+// try {
+// //这里和普通的接口调用不同,使用的是sdkExecute
+// AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
+// Map<String, String> map = new HashMap<>();
+// map.put("orderString", response.getBody());
+// System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。
+// return ResultUtil.success(map);
+// } catch (AlipayApiException e ) {
+// e.printStackTrace();
+// }
+
+
+ //实例化客户端
+ AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
+ //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
+ AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
+ //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
+ AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
+ model.setBody(body);//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
+ model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。
+ model.setOutTradeNo(outTradeNo);//商户网站唯一订单号
+ model.setTimeoutExpress("30m");
+ model.setTotalAmount(amount);//付款金额
+ model.setProductCode("QUICK_MSECURITY_PAY");
+ model.setPassbackParams(passbackParams);//自定义参数
+
+
+ //分账
+// Integer coursePackagePayments = coursePackageClient.queryByCode(outTradeNo);
+// Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo);
+// Integer siteBookings = siteClient.queryByCode(outTradeNo);
+// List<Integer> stores = new ArrayList<>();
+// stores.add(coursePackagePayments);
+// stores.add(paymentCompetitions);
+// stores.add(siteBookings);
+//
+// OperatorUser operatorUser = siteClient.queryOperator(stores);
+//
+// String alipayProportion = operatorUser.getAlipayProportion();
+// String alipayNum = operatorUser.getAlipayNum();
+//
+// ExtendParams extendParams = new ExtendParams();
+//// extendParams.setSysServiceProviderId("YOUR_SERVICE_PROVIDER_ID");
+// model.setExtendParams(extendParams);
+//
+// RoyaltyInfo royaltyInfo = new RoyaltyInfo();
+//// royaltyInfo.setRoyaltyType("transfer");
+//
+//
+// RoyaltyDetailInfos royaltyDetailInfo1 = new RoyaltyDetailInfos();
+// royaltyDetailInfo1.setTransOutType("userId");
+// royaltyDetailInfo1.setTransOut(aliAppid);
+// royaltyDetailInfo1.setTransInType("loginName");
+// royaltyDetailInfo1.setTransIn("18398968484");
+//
+// royaltyDetailInfo1.setDesc("分账描述1");
+// royaltyDetailInfo1.setAmountPercentage(alipayProportion);
+// List<RoyaltyDetailInfos> royaltyDetailInfos = new ArrayList<>();
+//
+//
+//
+// royaltyInfo.setRoyaltyDetailInfos(royaltyDetailInfos);
+// model.setRoyaltyInfo(royaltyInfo);
+// System.err.println("=================="+royaltyInfo);
+ //
+ request.setBizModel(model);
+ request.setNotifyUrl(callbackPath + notifyUrl);
+ try {
+ //这里和普通的接口调用不同,使用的是sdkExecute
+ AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
+ Map<String, String> map = new HashMap<>();
+ map.put("orderString", response.getBody());
+ map.put("returnId", passbackParams);
+ System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。
+ return ResultUtil.success(map);
+ } catch (AlipayApiException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+
+
+ /**
+ * 支付宝查询订单支付状态
+ *
+ * @param out_trade_no
+ * @return
+ * @throws Exception
+ */
+ public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception {
+ AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
+ AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
+ request.setBizContent("{" +
+ " \"out_trade_no\":\"" + out_trade_no + "\"" +
+ "}");
+ AlipayTradeQueryResponse response = alipayClient.execute(request);
+ return response;
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /**
+ * 获取请求内容
+ *
+ * @param request
+ * @return
+ * @throws IOException
+ */
+ private String getParam(HttpServletRequest request) throws IOException {
+ // 读取参数
+ InputStream inputStream;
+ StringBuilder sb = new StringBuilder();
+ inputStream = request.getInputStream();
+ String s;
+ BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+ while ((s = in.readLine()) != null) {
+ sb.append(s);
+ }
+ in.close();
+ inputStream.close();
+ return sb.toString();
+ }
+
+
+
+
+
+
+
+// public static void main(String[] ages){
+// PayMoneyUtil payMoneyUtil = new PayMoneyUtil();
+// ResultUtil ce = payMoneyUtil.alipay("测试", "测试", "", "121456457", "10", "http://123.com");
+// System.err.println(ce);
+// ResultUtil resultUtil = null;
+// try {
+// resultUtil = payMoneyUtil.queryALIOrder("121456457");
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// System.err.println(resultUtil);
+// }
+
+
+ /**
+ * xml转map
+ *
+ * @param xml
+ * @param charset
+ * @return
+ * @throws UnsupportedEncodingException
+ * @throws DocumentException
+ */
+ public static Map<String, String> xmlToMap(String xml, String charset) throws UnsupportedEncodingException, DocumentException {
+
+ Map<String, String> respMap = new HashMap<String, String>();
+
+ SAXReader reader = new SAXReader();
+ Document doc = reader.read(new ByteArrayInputStream(xml.getBytes(charset)));
+ Element root = doc.getRootElement();
+ xmlToMap(root, respMap);
+ return respMap;
+ }
+
+ public static Map<String, String> xmlToMap(Element tmpElement, Map<String, String> respMap) {
+ if (tmpElement.isTextOnly()) {
+ respMap.put(tmpElement.getName(), tmpElement.getText());
+ return respMap;
+ }
+
+ @SuppressWarnings("unchecked")
+ Iterator<Element> eItor = tmpElement.elementIterator();
+ while (eItor.hasNext()) {
+ Element element = eItor.next();
+ xmlToMap(element, respMap);
+ }
+ return respMap;
+ }
+}
diff --git a/cloud-server-management/src/main/resources/mapper/BankMapper.xml b/cloud-server-management/src/main/resources/mapper/BankMapper.xml
new file mode 100644
index 0000000..19b899c
--- /dev/null
+++ b/cloud-server-management/src/main/resources/mapper/BankMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dsh.course.mapper.BankMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/resources/mapper/TOperatorMapper.xml b/cloud-server-management/src/main/resources/mapper/TOperatorMapper.xml
index 780ffae..cf50d24 100644
--- a/cloud-server-management/src/main/resources/mapper/TOperatorMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/TOperatorMapper.xml
@@ -15,7 +15,8 @@
</update>
<select id="listAll" resultType="java.util.Map">
- select t1.id as id, t1.name as name,t1.type as `type`,t1.state as state,t1.status as status,t2.name as userName,t2.phone as phone from t_operator t1
+ select t1.id as id, t1.name as name,t1.type as `type`,t1.state as state,t1.status as status,t2.name as userName,t2.phone as phone
+ from t_operator t1
left join sys_user t2 on t1.userId = t2.id
where 1=1
<if test="userName != null and userName != ''">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html
index a3b2079..10faf49 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html
@@ -51,7 +51,6 @@
<span>管理员姓名:</span><span>${user.name}</span>
<span>管理员电话:</span><span>${user.phone}</span>
</div>
-
<h2>商户号信息</h2>
</br>
</br>
@@ -60,196 +59,142 @@
<div class="col-lg-6" style="">
<div class="form-group">
<label class="col-sm-4 control-label" >
- 主体类型:<input checked type="radio" name="bodyType" value="ENTERPRISE" onclick="updateHalf(2)">企业
- <input type="radio" name="bodyType" value="IND_BIZ" onclick="updateHalf(1)">个人
-
+ 商户类型:<input checked type="radio" name="bodyType" value="01" onclick="updateHalf(2)">企业
+ <input type="radio" name="bodyType" value="07" onclick="updateHalf(1)">个人
</label>
</div>
<div class="form-group" >
+ <label class="col-sm-3 control-label">*商户名称(一般与证件名称相同):</label>
+ <div class="col-sm-9">
+ <input style="width: 300px" class="form-control" value="" id="businessName" placeholder="请输入商户名称" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*商户别名(支付宝账单显示的商户名称):</label>
+ <div class="col-sm-9">
+ <input style="width: 300px" class="form-control" value="" id="aliasName" placeholder="请输入商户别名" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
<label class="col-sm-3 control-label">*联系人姓名:</label>
<div class="col-sm-9">
- <input style="width: 300px" class="form-control" value="${item.name}" id="name" placeholder="请输入" type="text">
+ <input style="width: 300px" class="form-control" value="" id="name" placeholder="请输入" type="text">
</div>
</div>
<div class="form-group" >
<label class="col-sm-3 control-label">*联系人电话:</label>
<div class="col-sm-9">
- <input style="width: 300px" class="form-control" value="${item.phone}" id="phone" placeholder="请输入" type="text">
+ <input style="width: 300px" class="form-control" value="" id="phone" placeholder="请输入" type="text">
</div>
</div>
- <div class="form-group" >
- <label class="col-sm-3 control-label">*联系人身份证号:</label>
- <div class="col-sm-9">
- <input style="width: 300px" class="form-control" value="${item.number}" id="number" placeholder="请输入" type="text">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*法人姓名:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="legalPerson" value="" placeholder="请输入" type="text">
+ </div>
</div>
- </div>
- <div class="form-group" >
- <label class="col-sm-3 control-label">*法定代表人姓名:</label>
- <div class="col-sm-9">
- <input style="width: 300px" class="form-control" id="lrName" value="${item.legalPerson}" placeholder="请输入" type="text">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*法人身份证号:</label>
+ <div class="col-sm-9">
+ <input style="width: 300px" class="form-control" value="" id="leagleNumber" placeholder="请输入" type="text">
+ </div>
</div>
- </div>
- </div>
- <div class="col-lg-6" style="">
- <div class="form-group" >
- <label class="col-sm-3 control-label">*营业执照商户名称:</label>
- <div class="col-sm-9">
- <input style="width: 300px" class="form-control" value="${item.businessName}" id="merchantName" placeholder="请输入" type="text">
+ <div class="form-group">
+ <#avatar id="IDCardImg" name="*法人身份证正面照" avatarImg="" />
</div>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">*营业证照生效时间:</label>
- <div class="col-sm-9" style="display: flex">
- <input style="width: 300px" class="form-control" id="tradeTime" value="${item.businessTerm}" name="tradeTime" type="date">
+ <div class="form-group">
+ <#avatar id="IDCardImg1" name="*法人身份证背面照" avatarImg="" />
</div>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">*营业证照过期时间:</label>
- <div class="col-sm-9" style="display: flex">
- <input style="width: 300px" class="form-control" id="endTime" value="${item.businessEnd}" name="endTime" type="date">
- <input type="checkbox" style="margin-left: 10px" id="tradeE" value="0" onchange="TSite.tradeYse(this)">长期</input>
- </div>
- </div>
- <div class="form-group" >
- <label class="col-sm-3 control-label">*营业执照注册号:</label>
- <div class="col-sm-9" >
- <input style="width: 300px" class="form-control" id="licenseRegistration" value="${item.businessNumber}" placeholder="请输入" type="text">
- </div>
- </div>
- <div class="form-group" >
- <label class="col-sm-3 control-label">*注册地址:</label>
- <div class="col-sm-9" >
- <input style="width: 300px" class="form-control" id="registerAddress" value="${item.registerAddress}" placeholder="请输入" type="text">
- </div>
- </div>
- <div class="form-group">
- <#avatar id="license" name="*营业执照" avatarImg="${item.businessPicture}" />
- </div>
- </div>
- </div>
- <div class="row">
- <div class="col-lg-6" style="">
- <div class="form-group" >
- <label class="col-sm-3 control-label">*法人姓名:</label>
- <div class="col-sm-9" >
- <input style="width: 300px" class="form-control" id="legalPerson" value="${item.legalPerson}" placeholder="请输入" type="text">
- </div>
- </div>
- <div class="form-group" >
- <label class="col-sm-3 control-label">*法人手机号:</label>
- <div class="col-sm-9">
- <input style="width: 300px" class="form-control" id="legalPhone" value="${item.legalPhone}" placeholder="请输入" type="text">
- </div>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">*法人身份证开始时间:</label>
- <div class="col-sm-9" style="display: flex">
- <input style="width: 300px" class="form-control" id="IDCardTime" value="${item.legalTerm}" name="IDCardTime" type="date">
- </div>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">*法人身份证结束时间:</label>
- <div class="col-sm-9" style="display: flex">
- <input style="width: 300px" class="form-control" value="${item.legalEnd}" id="IDCardEnd" name="IDCardTime" type="date">
- <input type="checkbox" style="margin-left: 10px" id="IDCardE" value="0" onchange="TSite.tradeYse(this)">长期</input>
- </div>
- </div>
- <div class="form-group">
- <#avatar id="IDCardImg" name="*法人身份证正面照" avatarImg="${item.legalFront}" />
- </div>
- </div>
- <div class="col-lg-6" style="">
- <div class="form-group">
- <label class="col-sm-3 control-label">*法人身份证号:</label>
- <div class="col-sm-9">
- <input style="width: 300px" class="form-control" value="${item.leagleNumber}" id="lIDNumber" placeholder="请输入" type="text">
- </div>
- </div>
- <div class="form-group" >
- <label class="col-sm-3 control-label">*法人邮箱:</label>
- <div class="col-sm-9">
- <input style="width: 300px" class="form-control" value="${item.legalEmail}" id="lEmail" placeholder="请输入" type="text">
- </div>
- </div>
- <div class="form-group" >
- <label class="col-sm-3 control-label">*法人身份证地址:</label>
- <div class="col-sm-9">
- <input style="width: 300px" class="form-control" value="${item.legalAddress}" id="lIDAddress" placeholder="请输入" type="text">
- </div>
- </div>
- <div class="form-group">
- <#avatar id="IDCardImg1" name="*法人身份证背面照" avatarImg="${item.legalBack}" />
- </div>
- </div>
- </div>
- <div class="row" id="benefit">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*签约支付宝账号:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="zfbAccount" value="${item.zfbAccount}" placeholder="请输入" type="text">
+ </div>
+ </div>
+ </div>
<div class="col-lg-6" style="">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*营业执照编号:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="businessNumber" value="" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <#avatar id="license" name="*营业执照" avatarImg="${item.certImage}" />
+ </div>
<div class="form-group">
<label class="col-sm-4 control-label" >
- 法人是否为受益人:<input type="radio" checked name="type" value="true">是
- <input checked type="radio" name="type" value="false">否
+ 结算账户类型:<input checked type="radio" name="accountType" value="bankCard" onclick="updateHalf(3)">银行卡
+ <input type="radio" name="accountType" value="alipayAccount" onclick="updateHalf(4)">支付宝账号
</label>
</div>
- <div class="form-group">
- <label class="col-sm-3 control-label">*受益人姓名:</label>
- <div class="col-sm-9">
- <input style="width: 300px" class="form-control" value="${item.beneficiary}" id="bName" name="bName" type="text">
- </div>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">*受益人身份证地址:</label>
- <div class="col-sm-9">
- <input style="width: 300px" class="form-control" id="bAddress" value="${item.beneficiaryAddress}" placeholder="请输入" type="text">
- </div>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">*受益人身份证有效期:</label>
- <div class="col-sm-9">
- <input style="width: 300px" class="form-control" value="${item.beneficiaryTerm}" id="bTime" name="bTime" type="date">
- </div>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">*受益人身份证结束时间:</label>
- <div class="col-sm-9" style="display: flex">
- <input style="width: 300px" class="form-control" id="bEnd" value="${item.beneficiaryEnd}" name="IDCardTime" type="date">
- <input type="checkbox" style="margin-left: 10px" id="bIDCardT" value="0" onchange="TSite.tradeYse(this)">长期</input>
- </div>
- </div>
- <div class="form-group">
- <#avatar id="bImg1" avatarImg="${item.beneficiaryFront}" name="*受益人身份证正面照" />
- </div>
- </div>
- <div class="col-lg-6" >
- <div class="form-group">
- <label class="col-sm-3 control-label">*受益人身份证号:</label>
+ <div class="form-group" hidden id="aliNumber">
+ <label class="col-sm-3 control-label">*支付宝账号:</label>
<div class="col-sm-9" >
- <input style="width: 300px" class="form-control" id="bIDNumber" value="${item.beneficiaryNumber}" placeholder="请输入" type="text">
+ <input style="width: 300px" class="form-control" id="alipayAccount" value="" placeholder="请输入" type="text">
</div>
</div>
- <div class="form-group">
- <#avatar id="bImg2" avatarImg="${item.beneficiaryBack}" name="*受益人身份证背面照" />
- </div>
- </div>
- </div>
- @if(reasons != null){
- <div class="row" id="reasons">
- <div class="col-lg-6" >
- <div class="form-group">
- <label class="col-sm-3 control-label">*拒绝理由:</label>
- <div class="col-sm-9">
- <h3 style="color: red">${item.refuseReason}</h3>
+ <div id="banks">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*银行卡号:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="bankCard" value="" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-4 control-label" >
+ 账号使用类型:<input checked type="radio" name="useType" value="01" >对公
+ <input type="radio" name="useType" value="02" >对私
+ </label>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-4 control-label" >
+ 银行卡类型:<input checked type="radio" name="cardType" value="DC" onclick="updateHalf(2)">借记卡
+ <input type="radio" name="cardType" value="CC" onclick="updateHalf(1)">信用卡
+ </label>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*开户银行:</label>
+ <div class="col-sm-9">
+ <input style="width: 300px" class="form-control" id="bankName" value="" placeholder="请输入(例:中国农业银行)" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*开户支行名称:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="bankName1" value="" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*开户名称:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="bankUserName" value="" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">*开户行所在省:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSite.oneChange2(this)">
+ <option value="">请选择省</option>
+ @for(obj in list){
+ <option style="width: 300px" value="${obj.code}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">*开户行所在市:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="cCode" name="cCode" >
+ <option value="">请选择市</option>
+ </select>
+ </div>
</div>
</div>
</div>
</div>
- @}
- @if(code != null){
- @if(type==1){
- <label class="col-sm-3 control-label">请使用手机支付宝扫描下方二维码完成进一步认证</label>
- <img src="${code}">
- @}
- @}
<div class="form-group">
<div class="row btn-group-m-t">
<div class="col-sm-10 col-sm-offset-5" >
@@ -268,77 +213,16 @@
<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
<script>
function updateHalf(e) {
- if(e==1){
- console.log("隐藏")
- $("#benefit").hide()
- }else {
+ if(e==3){
console.log("展示")
- $("#benefit").show()
+ $("#banks").show()
+ $("#aliNumber").hide()
+ }else if (e==4){
+ // 结算到支付宝账号
+ console.log("隐藏")
+ $("#banks").hide()
+ $("#aliNumber").show()
}
- }
- window.onload = function(){
- if ("${item.orderStatus}"=="AUDIT_PASS"){
- $("#reasons").hide()
- }else{
- $("#reasons").show()
- }
- if ("${item.orderStatus}"==null){
- $("#reasons").hide()
- }
- console.log("${bodyType}")
- var OBJradio=document.getElementsByName("bodyType")
- var type=document.getElementsByName("type")
- console.log("回显")
- if ("${bodyType}" != 0){
- console.log("进入")
- if("${bodyType}"=="ENTERPRISE"){
- OBJradio[0].checked=true
- $("#benefit").show()
- // 受益人身份证有效期
- var IDCardE = document.getElementById("IDCardE");
- var IDCardEnd = document.getElementById('IDCardEnd');
- if ("${item.legalEnd}" == "forever"){
- IDCardE.checked=true;
- IDCardEnd.disabled = true;
- IDCardEnd.value="";
- }
- if ("${item.isBeneficiary}" == "true"){
- type[0].checked=true
- }else{
- type[1].checked=true
- }
- }else {
- OBJradio[1].checked=true
- $("#benefit").hide()
- }
- }
-
- // 营业执照有效结束期
- var bunessTime = document.getElementById("tradeE");
- var endTime = document.getElementById('endTime');
- if ("${item.businessEnd}" == "forever"){
- bunessTime.checked=true;
- endTime.disabled = true;
- endTime.value="";
- }
- // 法人身份证有效期
- var IDCardE = document.getElementById("IDCardE");
- var IDCardEnd = document.getElementById('IDCardEnd');
- if ("${item.legalEnd}" == "forever"){
- IDCardE.checked=true;
- IDCardEnd.disabled = true;
- IDCardEnd.value="";
- }
- // 受益人身份证有效期
- var bEnd = document.getElementById("bEnd");
- var bIDCardT = document.getElementById('bIDCardT');
- if ("${item.beneficiaryEnd}" == "forever"){
- bIDCardT.checked=true;
- bEnd.disabled = true;
- bEnd.value="";
- }
-
-
}
</script>
@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth_info.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth_info.html
new file mode 100644
index 0000000..11420bb
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth_info.html
@@ -0,0 +1,283 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+ #app1{
+ margin-left: 255px;
+ }
+
+
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <h2>商户信息</h2>
+ <div style="display: flex">
+ <span>运营商名称:</span><span>${data.name}</span>
+ <span>管理员姓名:</span><span>${user.name}</span>
+ <span>管理员电话:</span><span>${user.phone}</span>
+ </div>
+ <h2>商户号信息</h2>
+ </br>
+ </br>
+ <input hidden id="id" value="${id}">
+ <div class="row">
+ <div class="col-lg-6" style="">
+ <div class="form-group">
+ <label class="col-sm-4 control-label" >
+ 商户类型:<input checked type="radio" name="bodyType" value="01" onclick="updateHalf(2)">企业
+ <input type="radio" name="bodyType" value="07" onclick="updateHalf(1)">个人
+ </label>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*商户名称(一般与证件名称相同):</label>
+ <div class="col-sm-9">
+ <input style="width: 300px" class="form-control" value="${item.businessName}" id="businessName" placeholder="请输入商户名称" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*商户别名(支付宝账单显示的商户名称):</label>
+ <div class="col-sm-9">
+ <input style="width: 300px" class="form-control" value="${item.aliasName}" id="aliasName" placeholder="请输入商户别名" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*联系人姓名:</label>
+ <div class="col-sm-9">
+ <input style="width: 300px" class="form-control" value="${item.name}" id="name" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*联系人电话:</label>
+ <div class="col-sm-9">
+ <input style="width: 300px" class="form-control" value="${item.phone}" id="phone" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*法人姓名:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="legalPerson" value="${item.legalPerson}" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*法人身份证号:</label>
+ <div class="col-sm-9">
+ <input style="width: 300px" class="form-control" value="${item.leagleNumber}" id="leagleNumber" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <#avatar id="IDCardImg" name="*法人身份证正面照" avatarImg="${item.legalFront}" />
+ </div>
+ <div class="form-group">
+ <#avatar id="IDCardImg1" name="*法人身份证背面照" avatarImg="${item.legalBack}" />
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*签约支付宝账号:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="zfbAccount" value="${item.zfbAccount}" placeholder="请输入" type="text">
+ </div>
+ </div>
+ </div>
+ <div class="col-lg-6" style="">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*营业执照编号:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="businessNumber" value="${item.businessNumber}" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <#avatar id="license" name="*营业执照" avatarImg="${item.certImage}" />
+ </div>
+ <div class="form-group">
+ <label class="col-sm-4 control-label" >
+ 结算账户类型:<input checked type="radio" name="accountType" value="bankCard" onclick="updateHalf(3)">银行卡
+ <input type="radio" name="accountType" value="alipayAccount" onclick="updateHalf(4)">支付宝账号
+ </label>
+ </div>
+ <div class="form-group" hidden id="aliNumber">
+ <label class="col-sm-3 control-label">*支付宝账号:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="alipayAccount" value="${item.alipayAccount}" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div id="banks">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*银行卡号:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="bankCard" value="${item.bankCard}" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-4 control-label" >
+ 账号使用类型:<input checked type="radio" name="useType" value="01" >对公
+ <input type="radio" name="useType" value="02" >对私
+ </label>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-4 control-label" >
+ 银行卡类型:<input checked type="radio" name="cardType" value="DC" onclick="updateHalf(2)">借记卡
+ <input type="radio" name="cardType" value="CC" onclick="updateHalf(1)">信用卡
+ </label>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*开户银行:</label>
+ <div class="col-sm-9">
+ <input style="width: 300px" class="form-control" id="bankName" value="${item.bankName}" placeholder="请输入(例:中国农业银行)" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*开户支行名称:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="bankName1" value="${item.bankNameTwo}" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*开户名称:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="bankUserName" value="${item.accountName}" placeholder="请输入" type="text">
+ </div>
+ </div>
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">*开户行所在省:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSite.oneChange2(this)">
+ @for(obj in list4){
+ <option style="width: 300px" value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">*开户行所在市:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="cCode" name="cCode" >
+ @for(obj in list5){
+ <option style="width: 300px" value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ @if(reasons != null && reasons!=""){
+ <div class="row" id="reasons">
+ <div class="col-lg-6" >
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*拒绝理由:</label>
+ <div class="col-sm-9">
+ <h3 style="color: red">${item.refuseReason}</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ @}
+ <div class="form-group">
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSite.addSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
+<script src="${ctxPath}/modular/system/operatorUser/operatorUser.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+ function updateHalf(e) {
+ if(e==3){
+ console.log("展示")
+ $("#banks").show()
+ $("#aliNumber").hide()
+ }else if (e==4){
+ // 结算到支付宝账号
+ console.log("隐藏")
+ $("#banks").hide()
+ $("#aliNumber").show()
+ }
+ }
+ window.onload = function(){
+ console.log("${accountType}")
+ console.log("${useType}")
+ console.log("${cardType}")
+ var accountType = "${accountType}";
+ var useType = "${useType}";
+ var cardType = "${cardType}";
+ var OBJradio=document.getElementsByName("bodyType")
+ var type=document.getElementsByName("type")
+ if("${bodyType}"=="01"){
+ OBJradio[0].checked=true
+ }else {
+ OBJradio[1].checked=true
+ }
+ // 如果结算账户选择银行卡
+ var OBJradio1=document.getElementsByName("accountType")
+ if (accountType!="alipayAccount"){
+ $("#aliNumber").hide();
+ OBJradio1[0].checked=true
+ $("#banks").show();
+ }else{
+ OBJradio1[1].checked=true
+ $("#aliNumber").show();
+ $("#banks").hide();
+ }
+ // 账户使用类型
+ var OBJradio2=document.getElementsByName("useType")
+ if (useType=="01"){
+ OBJradio2[0].checked=true
+ }else{
+ OBJradio2[1].checked=true
+ }
+ // 银行卡类型
+ var OBJradio3=document.getElementsByName("cardType")
+ if (cardType=="DC"){
+ OBJradio3[0].checked=true
+ }else{
+ OBJradio3[1].checked=true
+ }
+
+ }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
index adb41d3..8fb7e9b 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
@@ -56,13 +56,9 @@
<option value="">全部</option>
<option value="0">未认证</option>
<option value="1">审核中</option>
- <option value="2">待联系人确认</option>
- <option value="3">待法人确认</option>
- <option value="4">审核通过</option>
- <option value="5">审核失败</option>
- <option value="6">已冻结</option>
- <option value="7">已撤回</option>
- <option value="8">联系人处理中</option>
+ <option value="2">审核通过</option>
+ <option value="3">审核失败</option>
+
</select>
</div>
</div>
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js b/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
index 72f8003..e376ae5 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
@@ -96,6 +96,22 @@
}
};
/**
+ * 商户号认证页面回显
+ */
+TSite.auth1 = function () {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: "商户认证详情",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/operator/proportionAuth1/' + TSite.seItem.id
+ });
+ this.layerIndex = index;
+ }
+};
+/**
* 分账比例
*/
TSite.proportion = function () {
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js b/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
index 2c02a4b..a5e2356 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
@@ -40,7 +40,7 @@
{title: '分账比例', field: 'proportion', visible: true, align: 'center', valign: 'middle'},
{title: '审核状态', field: 'audit', visible: true, align: 'center', valign: 'middle',
formatter:function (data) {
- return {0:"未认证",1:"审核中",2:"待联系人确认",3:"待法人确认",4:"审核通过",5:"审核失败",6:"已冻结",7:"已撤回",8:"联系人处理中"}[data]
+ return {0:"未认证",1:"待审核",2:"审核通过",3:"审核失败"}[data]
}
},
{title: '操作', field: 'audit', visible: true, align: 'center', valign: 'middle',
@@ -50,7 +50,7 @@
var str = '<button class="btn btn-outline btn-primary" onclick="TSite.auth('+row.operatorId+')" >去认证</button>'
btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="" onfocus="TUser.tooltip()">' + str + '</p>']
}else {
- var str = '<button class="btn btn-outline btn-primary" onclick="TSite.auth(' + row.operatorId + ')" >详情</button>'
+ var str = '<button class="btn btn-outline btn-primary" onclick="TSite.auth1(' + row.operatorId + ')" >详情</button>'
btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="" onfocus="TUser.tooltip()">' + str + '</p>']
}
return btn;
@@ -67,6 +67,22 @@
fix: false, //不固定
maxmin: true,
content: Feng.ctxPath + '/operator/proportionAuth/' + TSite.seItem.operatorId
+ });
+ this.layerIndex = index;
+ }
+};
+/**
+ * 商户号认证页面回显
+ */
+TSite.auth1 = function () {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: "商户认证详情",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/operator/proportionAuth1/' + TSite.seItem.operatorId
});
this.layerIndex = index;
}
@@ -127,14 +143,78 @@
ajax.set("wechatNum", $("#wechatNum").val() );
ajax.start();
};
-
+// 银行卡使用
+TSite.oneChange2 = function (e) {
+ var oneId=$(e).val();
+ console.log(oneId)
+ console.log("!!!!!!!!!!!!!")
+ var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange3", function(data){
+ if(data!=null){
+ var content='<option value="">选择市</option>';
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.code+"'>"+v.name+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ ajax.set("oneId",oneId);
+ ajax.start();
+};
+// 经营地址使用
+TSite.oneChange6 = function (e) {
+ var oneId=$(e).val();
+ console.log(oneId)
+ console.log("!!!!!!!!!!!!!")
+ var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange3", function(data){
+ if(data!=null){
+ var content='<option value="">选择市</option>';
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.code+"'>"+v.name+"</option>";
+ });
+ $("#bcCode").empty().append(content);
+ }
+ });
+ ajax.set("oneId",oneId);
+ ajax.start();
+};
+// 经营地址使用
+TSite.twoChange = function (e) {
+ var oneId=$(e).val();
+ console.log(oneId)
+ console.log("!!!!!!!!!!!!!")
+ var ajax = new $ax(Feng.ctxPath + "/operator/getDistrict", function(data){
+ if(data!=null){
+ var content='<option value="">选择区(县)</option>';
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.code+"'>"+v.name+"</option>";
+ });
+ $("#bdCode").empty().append(content);
+ }
+ });
+ ajax.set("cityCode",oneId);
+ ajax.start();
+};
TSite.addSubmit = function(){
-
var bodyType = $("input[name='bodyType']:checked").val();
- var accountType = $("input[name='accountType']:checked").val();
var type = $("input[name='type']:checked").val();
if (bodyType=="" || null == bodyType){
Feng.error("请选择主体类型");
+ return;
+ }
+ if ("" == $("#businessName").val() ){
+ Feng.error("请输入商户名称");
+ return;
+ }
+ if ("" == $("#aliasName").val() ){
+ Feng.error("请输入商户别名");
+ return;
+ }
+ if ("" == $("#businessNumber").val() ){
+ Feng.error("请输入营业执照编号");
+ return;
+ }
+ if ("" == $("#businessNumber").val() ){
+ Feng.error("请上传营业执照");
return;
}
if ("" == $("#name").val() ){
@@ -145,186 +225,119 @@
Feng.error("请输入联系人电话");
return;
}
- if ("" == $("#number").val() ){
- Feng.error("请输入联系人身份证号");
- return;
- }
- var platform = $("input[name='platform']:checked").val();
-
- if ("" == $("#merchantName").val() ){
- Feng.error("请输入营业执照商户名称");
- return;
- }
- if ("" == $("#lrName").val() ){
- Feng.error("请输入法定代表人姓名");
- return;
- }
- var tradeT = document.getElementById("tradeE");
- if (!tradeT.checked){
- if ("" == $("#endTime").val() || null == $("#endTime").val()){
- Feng.error("请输入营业证照过期时间");
- return;
- }
- }
- if ("" == $("#tradeTime").val() || null == $("#tradeTime").val()){
- Feng.error("请输入营业执照生效期间");
- return;
- }
- if ("" == $("#licenseRegistration").val() ){
- Feng.error("请输入营业执照注册号");
- return;
- }
- if ("" == $("#registerAddress").val() ){
- Feng.error("请输入注册地址");
- return;
- }
if ("" == $("#legalPerson").val()){
Feng.error("请输入法人姓名");
return;
- }if ("" == $("#legalPhone").val()){
- Feng.error("请输入法人手机号");
- return;
}
- var IDCardT = document.getElementById("IDCardE");
- if (!IDCardT.checked){
- if ("" == $("#IDCardTime").val() || null == $("#IDCardTime").val()){
- Feng.error("请输入法人身份证结束时间");
- return;
- }
- }
- if ("" == $("#IDCardTime").val()){
- Feng.error("请输入法人身份证开始时间");
- return;
- }
+
if ("" == $("#lIDNumber").val()){
Feng.error("请输入法人身份证号");
return;
- }if ("" == $("#lEmail").val()){
- Feng.error("请输入法人邮箱");
- return;
- }if ("" == $("#lIDAddress").val()){
- Feng.error("请输入法人身份证地址");
+ }
+ if ("" == $("#zfbAccount").val()){
+ Feng.error("请输入签约支付宝账号");
return;
}
- if(bodyType=="ENTERPRISE"){
- if ("" == $("#bName").val()){
- Feng.error("请输入受益人姓名");
+ // 结算账户类型
+ var accountType = $("input[name='accountType']:checked").val();
+ // 结算到银行卡
+ if (accountType == "bankCard"){
+ if ("" == $("#bankCard").val()){
+ Feng.error("请输入银行卡号");
return;
}
- if ("" == $("#bAddress").val()){
- Feng.error("请输入受益人身份证地址");
+ if ("" == $("#bankName").val()){
+ Feng.error("请选择开户银行");
return;
}
- var bIDCardT = document.getElementById("bIDCardT");
- if (!bIDCardT.checked){
- if ("" == $("#bEnd").val()){
- Feng.error("请输入受益人身份证结束时间");
- return;
- }
- }
- if ("" == $("#bTime").val()){
- Feng.error("请输入受益人身份证开始时间");
+ if ("" == $("#bankName1").val()){
+ Feng.error("请输入开户支行名称");
return;
}
-
- if ("" == $("#bIDNumber").val()){
- Feng.error("请输入受益人身份证号");
+ if ("" == $("#bankUserName").val()){
+ Feng.error("请输入开户名称");
return;
}
-
+ if ("" == $("#pCode").val()){
+ Feng.error("请选择开户银行所在省");
+ return;
+ }
+ if ("" == $("#cCode").val()){
+ Feng.error("请选择开户银行所在市");
+ return;
+ }
+ }else{
+ // 结算到支付宝
+ if ("" == $("#alipayAccount").val()){
+ Feng.error("请输入支付宝账号");
+ return;
+ }
}
+
//提交信息
var ajax = new $ax(Feng.ctxPath + "/operator/auth", function(data){
if (data==5001){
Feng.error("未上传营业执照!");
+ return;
}else if(data==5002){
Feng.error("未上传法人身份证正面照!");
+ return;
}else if(data==5003){
Feng.error("未上传法人身份证背面照!");
- }else if(data==5004){
- Feng.error("未上传受益人身份证正面照!");
- }else if(data==5005){
- Feng.error("未上传受益人身份证背面照!");
+ return;
+ }else if(data==5007){
+ Feng.error("输入的开户银行名称有误!");
+ return;
+ } else if (data.code==500){
+ console.log(data)
+ Feng.error("认证失败:"+data.msg);
+ return;
}else{
- Feng.success("操作成功!");
+ Feng.success("认证成功!请等待支付宝审核");
window.parent.TSite.table.refresh();
TSite.close();
}
},function(data){
Feng.error("操作失败!");
});
- ajax.set("operatorId", $("#id").val() );
- ajax.set("bodyType", bodyType );
- ajax.set("type", platform );
- ajax.set("businessName", $("#merchantName").val() );
- ajax.set("businessNumber", $("#licenseRegistration").val() );
- ajax.set("legalRepresentative", $("#lrName").val() );
- ajax.set("registerAddress", $("#registerAddress").val() );
- if ($("#endTime").val()==""){
- ajax.set("businessEnd","forever");
- }else{
- ajax.set("businessEnd",$("#endTime").val());
- }
- if ($("#IDCardEnd").val()==""){
- ajax.set("legalEnd","forever");
- ajax.set("lpIcForeverFlag", 0);
- }else{
- ajax.set("legalEnd",$("#IDCardEnd").val());
- ajax.set("lpIcForeverFlag", 1);
- }
-
- if(bodyType=="ENTERPRISE"){
- if ($("#bEnd").val()==""){
- console.log("永远")
- ajax.set("beneficiaryEnd","forever");
-
- }else{
- console.log("嗯嗯嗯")
- ajax.set("beneficiaryEnd",$("#bEnd").val());
- }
- }
-
- var tradeT = document.getElementById('tradeE');
- if (tradeT.checked) {
- endTime.disabled = true;
- endTime.value="";
- ajax.set("blBusinessFoeverFlag", 1);
- } else {
- ajax.set("blBusinessFoeverFlag", 0);
- endTime.disabled = false;
- }
- ajax.set("businessTerm", $("#tradeTime").val() );
+ ajax.set("operatorId", $("#id").val());
+ ajax.set("bodyType", bodyType );
+ ajax.set("businessName", $("#businessName").val());
+ ajax.set("aliasName", $("#aliasName").val());
+ ajax.set("businessNumber", $("#businessNumber").val() );
+ ajax.set("license", $("#license").val() );
ajax.set("name", $("#name").val() );
ajax.set("phone", $("#phone").val() );
- ajax.set("number", $("#number").val() );
- ajax.set("businessPicture", $("#license").val() );
+ ajax.set("shopProvinceCode", $("#bpCode").val() );
+ ajax.set("shopProvince", $('#bpCode option:selected').text());
+ ajax.set("shopCityCode", $("#bcCode").val() );
+ ajax.set("shopCity", $('#bcCode option:selected').text());
+ ajax.set("shopDistrictCode", $("#bdCode").val() );
+ ajax.set("shopDistrict", $('#bdCode option:selected').text());
+ ajax.set("registerAddress", $("#registerAddress").val() );
ajax.set("legalPerson", $("#legalPerson").val() );
- ajax.set("legalNumber", $("#lIDNumber").val() );
- ajax.set("legalPhone", $("#legalPhone").val() );
- ajax.set("legalEmail", $("#lEmail").val() );
- ajax.set("legalTerm", $("#IDCardTime").val() );
- ajax.set("legalAddress", $("#lIDAddress").val() );
+ ajax.set("leagleNumber", $("#leagleNumber").val() );
ajax.set("legalFront", $("#IDCardImg").val() );
ajax.set("legalBack", $("#IDCardImg1").val() );
ajax.set("accountType", accountType );
- ajax.set("bank", $("#bank").val() );
- ajax.set("accountName", $("#backUserName").val() );
- ajax.set("province", $('#pCode option:selected').text() );
+ ajax.set("alipayAccount", $("#alipayAccount").val() );
+ ajax.set("bankCard", $("#bankCard").val() );
+ // 结算账户类型
+ var useType = $("input[name='useType']:checked").val();
+ ajax.set("useType", useType );
+ // 银行卡类型
+ var cardType = $("input[name='cardType']:checked").val();
+ ajax.set("cardType", cardType );
+ ajax.set("bankName", $("#bankName").val() );
+ ajax.set("bankNameTwo", $("#bankName1").val() );
+ ajax.set("accountName", $("#bankUserName").val() );
ajax.set("provinceCode", $("#pCode").val() );
- ajax.set("city", $('#cCode option:selected').text() );
+ ajax.set("province", $('#pCode option:selected').text());
ajax.set("cityCode", $("#cCode").val() );
- ajax.set("bankName", $("#backName").val() );
- ajax.set("bankNumber", $("#backNumber").val() );
- ajax.set("isBeneficiary", type );
- ajax.set("beneficiary", $("#bName").val() );
- ajax.set("beneficiaryPhone", $("#bPhone").val() );
- ajax.set("beneficiaryNumber", $("#bIDNumber").val() );
- ajax.set("beneficiaryAddress", $("#bAddress").val() );
- ajax.set("beneficiaryTerm", $("#bTime").val() );
- ajax.set("beneficiaryFront", $("#bImg1").val() );
- ajax.set("beneficiaryBack", $("#bImg2").val() );
- ajax.set("remark", $("#remark").val() );
+ ajax.set("city", $('#cCode option:selected').text());
+ ajax.set("iqImage", $("#iqImage").val() );
+ ajax.set("zfbAccount", $("#zfbAccount").val() );
ajax.start();
};
/**
@@ -435,7 +448,6 @@
$(function () {
-
var defaultColunms = TSite.initColumn();
var table = new BSTable(TSite.id, "/operatorUser/listAll", defaultColunms);
table.setPaginationType("client");
@@ -446,6 +458,9 @@
var c4 = new $WebUpload("bImg1");
var c5 = new $WebUpload("bImg2");
var c6 = new $WebUpload("Img");
+ var inDoorImages = new $WebUpload("inDoorImages");
+ var outDoorImages = new $WebUpload("outDoorImages");
+ var iqImage = new $WebUpload("iqImage");
c1.setUploadBarId("progressBar");
c1.init();
c2.setUploadBarId("progressBar");
@@ -458,4 +473,10 @@
c5.init();
c6.setUploadBarId("progressBar");
c6.init();
+ inDoorImages.setUploadBarId("progressBar");
+ inDoorImages.init();
+ outDoorImages.setUploadBarId("progressBar");
+ outDoorImages.init();
+ iqImage.setUploadBarId("progressBar");
+ iqImage.init();
});
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
index df35d12..c14da34 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
@@ -10,15 +10,13 @@
import com.dsh.other.feignclient.account.AppUserClient;
import com.dsh.other.feignclient.account.model.AppUser;
import com.dsh.other.model.QueryMySiteVo;
-import com.dsh.other.service.ISiteLockService;
-import com.dsh.other.service.TGameConfigService;
-import com.dsh.other.service.TGameRecordService;
-import com.dsh.other.service.TGameService;
+import com.dsh.other.service.*;
import com.dsh.other.util.*;
import com.dsh.other.util.httpClinet.HttpResult;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import net.bytebuddy.asm.Advice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -123,8 +121,9 @@
return ResultUtil.runErr();
}
}
-
-
+ private String smid = "2088330203191220";//平台支付宝商户号
+ @Autowired
+ private ISiteService siteService;
@ResponseBody
@PostMapping("/payGame")
@ApiOperation(value = "支付游戏", tags = {"用户—游戏"})
@@ -212,10 +211,21 @@
return weixinpay;
} else if (type == 2) {
// Integer gameId, Integer configId,Integer type,Integer sutuId,Integer spaceId;
-
+ String smid1="";
String params = uid + "_" + gameId + "_" + spaceId + "_" + sutuId+"_"+code+"_"+configId;
+ // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
+ TGame game = gameService.getById(gameId);
- ResultUtil alipay = payMoneyUtil.alipay("游戏支付", "游戏支付", params, code, config.getCash().toString(), "/base/site/gameCallback");
+ Integer operationId = game.getOperationId();
+ if (operationId==0){
+ // 是平台的
+ smid1 = smid;
+ }else{
+ String smidByOperatorId = siteService.getSMIDByOperatorId(operationId);
+ smid1 = smidByOperatorId;
+ }
+
+ ResultUtil alipay = payMoneyUtil.alipay(smid1,"游戏支付", "游戏支付", params, code, config.getCash().toString(), "/base/site/gameCallback");
if (alipay.getCode() == 200) {
new Thread(new Runnable() {
@Override
@@ -253,7 +263,6 @@
coursePackagePayment.setStatus(1);
coursePackagePayment.setMoney(config.getCash());
coursePackagePayment.setOrderNo(tradeNo);
-
CourseCounsum courseCounsum = new CourseCounsum();
// courseCounsum.setPaymentId(paymentId);
courseCounsum.setChangeType(3);
@@ -261,10 +270,21 @@
courseCounsum.setReason("智慧球场;" + config.getCash());
courseCounsum.setAppUserId(uid);
courseRecordClient.save(courseCounsum);
-
}
gameRecordService.updateBatchById(list);
Integer integer = startGame(uid, gameId, spaceId, sutuId);
+ // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
+ TGame game = gameService.getById(gameId);
+ String smid2="";
+ Integer operationId = game.getOperationId();
+ if (operationId==0){
+ // 是平台的
+ smid2 = smid;
+ }else{
+ String smidByOperatorId = siteService.getSMIDByOperatorId(operationId);
+ smid2 = smidByOperatorId;
+ }
+ payMoneyUtil.confirm(smid2,code,tradeNo,config.getCash().toString());
break;
}
if ("WAIT_BUYER_PAY".equals(s)) {
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
index 71470b8..9180575 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -66,6 +66,15 @@
private CityManagerClient cityManagerClient;
/**
+ * 通过运营商id查询运营商对应的支付宝商户号
+ */
+ @RequestMapping("/base/getSMIDByOperatorId")
+ @ResponseBody
+ public String getSMIDByOperatorId(Integer id) {
+ // 获取运营商的管理员
+ return siteService.getSMIDByOperatorId(id);
+ }
+ /**
* 获取所有场地
*/
@RequestMapping("/base/site/getList")
@@ -340,7 +349,6 @@
}
}
-
/**
* 预约场地支付宝回调
*
@@ -356,7 +364,8 @@
if (null != map) {
String code = map.get("out_trade_no");
String trade_no = map.get("trade_no");
- SiteBooking siteBooking = siteBookingService.getOne(new QueryWrapper<SiteBooking>().eq("orderNo", code).eq("state", 1));
+ SiteBooking siteBooking = siteBookingService.getOne(new QueryWrapper<SiteBooking>()
+ .eq("orderNo", code).eq("state", 1));
if (siteBooking.getStatus() == 0) {
siteBooking.setPayTime(new Date());
siteBooking.setStatus(1);
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java
index 8d4b6ca..c677a2c 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java
@@ -48,4 +48,6 @@
List<TSiteDTO> listExipre(@Param("query") ExpireSiteSearchVO vo);
+ String getSMIDByOperatorId(@Param("id")Integer id);
+
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java
index 004f19f..15295f6 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java
@@ -101,4 +101,6 @@
Object changeState(SiteChangeStateVO vo);
+ String getSMIDByOperatorId(Integer id);
+
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
index c35c64a..361a4e5 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -522,7 +522,7 @@
return weixinpay;
}
-
+ private String smid = "2088330203191220";//平台支付宝商户号
/**
* 课程支付宝支付
*
@@ -533,7 +533,18 @@
public ResultUtil aliPaymentSite(Double paymentPrice, SiteBooking siteBooking) throws Exception {
String code = siteBooking.getOrderNo();
Integer id = siteBooking.getId();
- ResultUtil alipay = payMoneyUtil.alipay("预约场地", "预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/aliPaymentSiteCallback");
+ // 判断预约的门店 属于哪个运营商
+ Integer storeId = siteBooking.getStoreId();
+ Store byId = storeService.getById(storeId);
+ Integer operatorId = byId.getOperatorId();
+ String smid1 = "";
+ if (operatorId == null ){
+ // 平台的门店
+ smid1 = smid;
+ }else{
+ smid1 = siteService.getSMIDByOperatorId(operatorId);
+ }
+ ResultUtil alipay = payMoneyUtil.alipay(smid1,"预约场地", "预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/aliPaymentSiteCallback");
System.out.println("预约场地----" + alipay.getCode());
if (alipay.getCode() == 200) {
new Thread(new Runnable() {
@@ -572,6 +583,18 @@
siteBooking.setPayOrderNo(tradeNo);
siteBookingService.updateById(siteBooking);
System.err.println("======完成支付");
+ // 判断预约的门店 属于哪个运营商
+ Integer storeId = siteBooking.getStoreId();
+ Store byId = storeService.getById(storeId);
+ Integer operatorId = byId.getOperatorId();
+ String smid1 = "";
+ if (operatorId == null ){
+ // 平台的门店
+ smid1 = smid;
+ }else{
+ smid1 = siteService.getSMIDByOperatorId(operatorId);
+ }
+ payMoneyUtil.confirm(smid1,code,tradeNo,paymentPrice.toString());
break;
}
if ("WAIT_BUYER_PAY".equals(s)) {
@@ -892,4 +915,9 @@
return siteMapper.changeState(siteIds, type);
}
+
+ @Override
+ public String getSMIDByOperatorId(Integer id) {
+ return siteMapper.getSMIDByOperatorId(id);
+ }
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
index fad56b9..f436220 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
@@ -71,13 +71,51 @@
private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
-
+ public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) {
+ AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+ aliAppid,
+ appPrivateKey,
+ "json",
+ "GBK",
+ alipay_public_key,
+ "RSA2");
+ AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest();
+ request.setBizContent("{" +
+ " \"out_request_no\":\""+code+"\"," +
+ " \"trade_no\":\""+outTradeNo+"\"," +
+ " \"settle_info\":{" +
+ " \"settle_detail_infos\":[" +
+ " {" +
+ " \"trans_in_type\":\"defaultSettle\"," +
+ " \"settle_entity_id\":\""+smid+"\"," +
+ " \"settle_entity_type\":\"SecondMerchant\"," +
+ " \"amount\":"+amount+"," +
+ " }" +
+ " ]" +
+ " }," +
+ " \"extend_params\":{" +
+ " \"royalty_freeze\":\"true\"" +
+ " }" +
+ "}");
+ AlipayTradeSettleConfirmResponse response = null;
+ try {
+ response = alipayClient.execute(request);
+ } catch (AlipayApiException e) {
+ e.printStackTrace();
+ }
+ if(response.isSuccess()){
+ System.out.println("调用成功");
+ return ResultUtil.success();
+ } else {
+ System.out.println("调用失败");
+ return ResultUtil.error("出现问题啦");
+ }
+ }
/**
* 支付宝支付
*/
-
- public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
-// //构造client
+ public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
+//// //构造client
// CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
// //设置网关地址
// certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
@@ -142,6 +180,7 @@
model.setTotalAmount(amount);//付款金额
model.setProductCode("QUICK_MSECURITY_PAY");
model.setPassbackParams(passbackParams);//自定义参数
+ model.setSellerId(smid);
request.setBizModel(model);
request.setNotifyUrl(callbackPath + notifyUrl);
diff --git a/cloud-server-other/src/main/resources/mapper/SiteMapper.xml b/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
index 8a54140..68abd26 100644
--- a/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
@@ -141,4 +141,7 @@
ORDER BY insertTime desc
</select>
+ <select id="getSMIDByOperatorId" resultType="java.lang.String">
+ select alipayNum from t_operator_user where operatorId = #{id}
+ </select>
</mapper>
--
Gitblit v1.7.1