From 168d852672f8f671a01d6f0f053349d0d321ec7c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 03 一月 2024 11:43:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java | 385 +++++++
cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java | 70 +
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-other/pom.xml | 2
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/api/AliPayProperties.java | 38
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 | 63 +
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-course/pom.xml | 2
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-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html | 10
cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java | 64 +
cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/SaticScheduleTask.java | 315 +++--
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 | 491 +++++---
cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java | 10
cloud-server-course/src/main/resources/sharding-jdbc.properties | 4
cloud-server-management/src/main/resources/mapper/BankMapper.xml | 5
cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html | 11
cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java | 68 +
cloud-server-competition/pom.xml | 3
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/java/com/dsh/guns/modular/system/api/AliPayMsgConfig.java | 90 +
cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js | 16
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 | 21
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 | 325 +++---
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
60 files changed, 2,245 insertions(+), 856 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..979be10 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){
@@ -1707,11 +1707,12 @@
* @return
* @throws Exception
*/
+ private String smid = "2088330203191220";//平台支付宝商户号
public ResultUtil aliPaymentCoupon(String body, UserCouponPayment userCouponPayment) throws Exception {
String code = userCouponPayment.getCode();
Double cash = userCouponPayment.getCash();
- ResultUtil alipay = payMoneyUtil.alipay(body, body, "", code, cash.toString(), "/base/coupon/aliPaymentCouponCallback");
+ ResultUtil alipay = payMoneyUtil.alipay(smid, body, "",String.valueOf(userCouponPayment.getId()), code, cash.toString(), "/base/coupon/aliPaymentCouponCallback");
if (alipay.getCode() == 200) {
new Thread(new Runnable() {
@Override
@@ -1744,6 +1745,10 @@
//有待支付的订单,这里不处理
userCouponPayment1.setStatus(-1);
userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1);
+ if ("TRADE_FINISHED".equals(s)) {
+ // todo 资金结算
+
+ }
break;
}
if ("TRADE_SUCCESS".equals(s)) {
@@ -1751,22 +1756,23 @@
userCouponPayment1.setPaymentTime(new Date());
userCouponPayment1.setOrderNumber(tradeNo);
userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1);
-
UserCoupon userCoupon = new UserCoupon();
userCoupon.setCouponId(userCouponPayment1.getCouponId());
userCoupon.setUserId(userCouponPayment1.getUserId());
userCoupon.setStatus(1);
userCoupon.setInsertTime(new Date());
userConponClient.insertToAppuserCoupon(userCoupon);
-
if(null != userCouponPayment1.getIntegral() && 0 != userCouponPayment1.getIntegral()){
//扣积分
TAppUser user = appUserService.getById(userCouponPayment1.getUserId());
user.setIntegral(user.getIntegral() - userCouponPayment1.getIntegral().intValue());
appUserService.updateById(user);
}
+ payMoneyUtil.confirm(smid,code,tradeNo,cash.toString());
break;
+
}
+
if ("WAIT_BUYER_PAY".equals(s)) {
num++;
}
@@ -1838,7 +1844,7 @@
}
private ResultUtil AlipayPayment(BigDecimal cash, String code, Long returnId) {
- ResultUtil alipay = payMoneyUtil.alipay("优惠卷", "优惠卷", String.valueOf(returnId), code, cash.toString(),
+ ResultUtil alipay = payMoneyUtil.alipay(smid,"优惠卷", "优惠卷", String.valueOf(returnId), code, cash.toString(),
"/base/pointMer/exchangeGoodPaymentAliCallback");
if (alipay.getCode() == 200) {
new Thread(new Runnable() {
@@ -1886,6 +1892,11 @@
moneyOut(tradeNo, tradeNo);
break;
}
+ if ("TRADE_FINISHED".equals(tradeStatus)) {
+ // todo 资金结算
+ payMoneyUtil.confirm(smid,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 f0f8c64..6fabab4 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..045db5c 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
@@ -156,8 +156,21 @@
model.setTotalAmount(amount);//付款金额
model.setProductCode("QUICK_MSECURITY_PAY");
model.setPassbackParams(passbackParams);//自定义参数
-
-
+ SettleInfo settleInfo = new SettleInfo();
+ settleInfo.setSettlePeriodTime("3d");
+ SettleDetailInfo settleDetailInfo = new SettleDetailInfo();
+ settleDetailInfo.setTransInType("defaultSettle");
+ settleDetailInfo.setAmount(amount);
+ List<SettleDetailInfo> settleDetailInfos = new ArrayList<>();
+ settleDetailInfos.add(settleDetailInfo);
+ settleInfo.setSettleDetailInfos(settleDetailInfos);
+ model.setSettleInfo(settleInfo);
+ SubMerchant subMerchant = new SubMerchant();
+ subMerchant.setMerchantId(smid);
+ model.setSubMerchant(subMerchant);
+ ExtendParams extendParams = new ExtendParams();
+ extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理
+ model.setExtendParams(extendParams);
//分账
// Integer coursePackagePayments = coursePackageClient.queryByCode(outTradeNo);
// Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo);
@@ -245,7 +258,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 7709f2d..a276027 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
@@ -926,14 +926,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/pom.xml b/cloud-server-competition/pom.xml
index 81dc2e7..14a4946 100644
--- a/cloud-server-competition/pom.xml
+++ b/cloud-server-competition/pom.xml
@@ -89,10 +89,11 @@
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
+
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
- <version>4.8.10.ALL</version>
+ <version>4.38.10.ALL</version>
</dependency>
</dependencies>
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..3c5e8eb 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
@@ -6,7 +6,7 @@
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.domain.*;
import com.alipay.api.request.*;
import com.alipay.api.response.*;
import com.dsh.competition.util.httpClinet.HttpClientUtil;
@@ -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 ();
// //设置网关地址
@@ -137,8 +137,24 @@
model.setTotalAmount(amount);//付款金额
model.setProductCode("QUICK_MSECURITY_PAY");
model.setPassbackParams(passbackParams);//自定义参数
+ SettleInfo settleInfo = new SettleInfo();
+ settleInfo.setSettlePeriodTime("3d");
+ SettleDetailInfo settleDetailInfo = new SettleDetailInfo();
+ settleDetailInfo.setTransInType("defaultSettle");
+ settleDetailInfo.setAmount(amount);
+ List<SettleDetailInfo> settleDetailInfos = new ArrayList<>();
+ settleDetailInfos.add(settleDetailInfo);
+ settleInfo.setSettleDetailInfos(settleDetailInfos);
+ model.setSettleInfo(settleInfo);
+ SubMerchant subMerchant = new SubMerchant();
+ subMerchant.setMerchantId(smid);
+ model.setSubMerchant(subMerchant);
+ ExtendParams extendParams = new ExtendParams();
+ extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理
+ model.setExtendParams(extendParams);
request.setBizModel(model);
request.setNotifyUrl(callbackPath + notifyUrl);
+
try {
//这里和普通的接口调用不同,使用的是sdkExecute
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
@@ -273,6 +289,54 @@
}
}
+ /**
+ * 统一确认结算接口
+ * @param smid
+ * @param code
+ * @param outTradeNo
+ * @param amount
+ * @return
+ */
+ 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/pom.xml b/cloud-server-course/pom.xml
index 518fb93..f84b131 100644
--- a/cloud-server-course/pom.xml
+++ b/cloud-server-course/pom.xml
@@ -122,7 +122,7 @@
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
- <version>4.8.10.ALL</version>
+ <version>4.38.10.ALL</version>
</dependency>
<dependency>
<groupId>com.huaweicloud</groupId>
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 74c3169..597b4f1 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
@@ -242,8 +242,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<>();
@@ -255,11 +253,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 ba122dc..3908b88 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
@@ -768,7 +768,6 @@
return lisco;
}
-
@PostMapping("/base/coursePack/continuingCourse")
public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) {
StudentOfCourseVo courseVo = new StudentOfCourseVo();
@@ -777,7 +776,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();
@@ -788,7 +786,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());
@@ -1826,7 +1823,6 @@
// 其他星期减一即可得到1-6的数字表示
dayOfWeek -= 1;
}
- // todo
if (weeks.contains(String.valueOf(dayOfWeek))){
// 限时折扣判断是否在有效期
try {
@@ -2434,7 +2430,6 @@
coursePackagePayment.setAppUserId(null);
packagePaymentService.updateById(coursePackagePayment);
}
-
/**
* 修改数据
@@ -3052,10 +3047,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 1e18d25..33021bf 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
@@ -52,7 +52,6 @@
private TCoursePackageService coursePackageService;
@Resource
private CoursePackageStudentMapper cpsMapper;
-
//获取退费记录
@RequestMapping("/getRefund")
@ResponseBody
@@ -60,20 +59,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 d8fc6ed..21f0578 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
@@ -948,11 +948,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() {
@@ -984,12 +995,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)) {
@@ -1010,7 +1033,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..5272413 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
@@ -6,7 +6,7 @@
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.domain.*;
import com.alipay.api.request.*;
import com.alipay.api.response.*;
import com.dsh.course.util.httpClinet.HttpClientUtil;
@@ -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
@@ -139,9 +177,23 @@
model.setTotalAmount(amount);//付款金额
model.setProductCode("QUICK_MSECURITY_PAY");
model.setPassbackParams(passbackParams);//自定义参数
+ SettleInfo settleInfo = new SettleInfo();
+ settleInfo.setSettlePeriodTime("3d");
+ SettleDetailInfo settleDetailInfo = new SettleDetailInfo();
+ settleDetailInfo.setTransInType("defaultSettle");
+ settleDetailInfo.setAmount(amount);
+ List<SettleDetailInfo> settleDetailInfos = new ArrayList<>();
+ settleDetailInfos.add(settleDetailInfo);
+ settleInfo.setSettleDetailInfos(settleDetailInfos);
+ model.setSettleInfo(settleInfo);
+ SubMerchant subMerchant = new SubMerchant();
+ subMerchant.setMerchantId(smid);
+ model.setSubMerchant(subMerchant);
+ ExtendParams extendParams = new ExtendParams();
+ extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理
+ model.setExtendParams(extendParams);
request.setBizModel(model);
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 02b67d5..c467a6f 100644
--- a/cloud-server-course/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-course/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_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=playpai2023!
+datasource.master0.password=123456
datasource.master0.maxActive=20
datasource.master0.maxWait=60000
datasource.master0.minIdle=5
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/AliPayMsgConfig.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayMsgConfig.java
new file mode 100644
index 0000000..1778705
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayMsgConfig.java
@@ -0,0 +1,90 @@
+package com.dsh.guns.modular.system.api;
+
+import cn.hutool.core.io.FileUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.api.msg.AlipayMsgClient;
+import com.alipay.api.msg.MsgHandler;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
+import com.dsh.guns.modular.system.model.OperatorUser;
+import com.dsh.guns.modular.system.service.IOperatorAuthService;
+import com.dsh.guns.modular.system.service.IOperatorUserService;
+import com.dsh.guns.modular.system.service.IUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+@Component
+@Configuration
+@EnableConfigurationProperties({AliPayProperties.class})
+public class AliPayMsgConfig {
+ @Autowired
+ private IOperatorAuthService operatorAuthService;
+ @Autowired
+ private IOperatorUserService operatorUserService;
+ @Autowired
+ private IUserService userService;
+ private AliPayProperties aliPay;
+ public AliPayMsgConfig(AliPayProperties aliPay) {
+ this.aliPay = aliPay;
+ }
+ @Bean
+ public AlipayMsgClient alipayMsgClient() throws Exception {
+ AlipayMsgClient alipayMsgClient = AlipayMsgClient.getInstance(aliPay.getAppId());
+ alipayMsgClient.setConnector("openchannel.alipay.com");
+ alipayMsgClient.setSecurityConfig(aliPay.getSignType(), aliPay.getAppPrivateKey(), aliPay.getAlipay_public_key());
+ alipayMsgClient.setCharset(aliPay.getChartSet());
+ alipayMsgClient.setMessageHandler(new MsgHandler() {
+ /**
+ * 客户端接收到消息后回调此方法
+ * @param msgApi 接收到的消息的消息api名
+ * @param msgId 接收到的消息的消息id
+ * @param bizContent 接收到的消息的内容,json格式
+ */
+ @Override
+ public void onMessage (String msgApi, String msgId, String bizContent) {
+ System.err.println("消息对象"+msgApi);
+ System.err.println("id"+msgId);
+ System.err.println("内容"+bizContent);
+ if (msgApi.equals("ant.merchant.expand.indirect.zft.passed")){
+ // 审核通过
+ JSONObject json = JSONObject.parseObject(bizContent);
+ String smid = json.getString("smid");
+ String order_id = json.getString("order_id");
+ OperatorAuthAlipay orderNo = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+ .eq("orderNo", order_id));
+ if (orderNo!=null){
+ Integer operatorId = orderNo.getOperatorId();
+ OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+ .eq("operatorId", operatorId));
+ if (operatorId1!=null){
+ operatorId1.setAlipayNum(smid);
+ operatorId1.setAlipayAudit(2);
+ }
+ }
+ }else if (msgApi.equals("ant.merchant.expand.indirect.zft.rejected")){
+ // 审核拒绝
+ JSONObject json = JSONObject.parseObject(bizContent);
+ String reason = json.getString("reason");
+ String order_id = json.getString("order_id");
+ OperatorAuthAlipay orderNo = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+ .eq("orderNo", order_id));
+ if (orderNo!=null){
+ orderNo.setRefuseReason(reason);
+ Integer operatorId = orderNo.getOperatorId();
+ OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+ .eq("operatorId", operatorId));
+ if (operatorId1!=null){
+ operatorId1.setAlipayAudit(3);
+ }
+ }
+ }
+
+ }
+ });
+ alipayMsgClient.connect();
+ return alipayMsgClient;
+ }
+ }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayProperties.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayProperties.java
new file mode 100644
index 0000000..da58467
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AliPayProperties.java
@@ -0,0 +1,38 @@
+package com.dsh.guns.modular.system.api;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+@Data
+@ConfigurationProperties(prefix = "alipay")
+public class AliPayProperties {
+ /**
+ * 加签类型
+ */
+ private String signType = "RSA2";
+ /**
+ * 应用id
+ */
+ private String appId = "2021004105665036";
+ /**
+ * 请求使用的编码格式,如utf-8,gbk,gb2312等
+ */
+ private String chartSet = "utf-8";
+
+ 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 appCertPublicKeyPath;
+
+ /**
+ * 支付宝公钥证书路径
+ */
+ private String aliPayCertPublicKeyPath;
+
+ /**
+ * 支付宝根证书路径
+ */
+ private String aliPayRootCertPath;
+}
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 2fbe5e5..7f58c9b 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,19 +8,24 @@
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;
import com.dsh.guns.modular.system.service.IOperatorUserService;
import com.dsh.guns.modular.system.service.IUserService;
+import com.dsh.guns.modular.system.util.PayMoneyUtil;
import org.springframework.beans.factory.annotation.Autowired;
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,131 +39,199 @@
private IOperatorUserService operatorUserService;
@Autowired
private IUserService userService;
+ @Autowired
+ private PayMoneyUtil payMoneyUtil;
+ 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=60000)
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\":\""+operatorAuth.getOrderNo()+"\"," +
- " \"out_biz_no\":\""+operatorAuth.getOutBizNo()+"\"," +
- "}");
- 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);
- // 失败原因
- 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);
- // 获取运营商的管理员id
-
-/**
- * 状态 1=审核中(AUDITING)、2=待联系人确认(CONTACT_CONFIRM),
- * 3=待法人确认(LEGAL_CONFIRM)、4=审核通过(AUDIT_PASS)、
- * 5=审核失败(AUDIT_REJECT)、6=已冻结(AUDIT_FREEZE)、
- * 7=已撤回(CANCELED)、8=联系人处理中(CONTACT_PROCESSING)
- */
- }
- 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":
- userId.setAlipayAudit(1);
- break;
- case "CONTACT_CONFIRM":
- userId.setAlipayAudit(2);
- break;
- case "LEGAL_CONFIRM":
- userId.setAlipayAudit(3);
- break;
- case "AUDIT_PASS":
- userId.setAlipayAudit(4);
- break;
- case "AUDIT_REJECT":
- userId.setAlipayAudit(5);
- break;
- case "AUDIT_FREEZE":
- userId.setAlipayAudit(6);
- break;
- case "CANCELED":
- userId.setAlipayAudit(7);
- break;
- case "CONTACT_PROCESSING":
- userId.setAlipayAudit(8);
- break;
- }
- operatorUserService.updateById(userId);
- }
- // 审核通过
- String qr_code = sign.getString("qr_code");
- if (qr_code!=null&& (!qr_code.equals(""))){
- // 将二维码链接保存起来
- operatorAuth.setQrCode(qr_code);
- operatorAuthService.updateById(operatorAuth);
- }
-// 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("撤销申请单调用失败");
-// }
+// payMoneyUtil.getMessage();
+// 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("调用失败");
+// }
+// }
- }
+
+
+// // 回查商户认证单审核状态 查询除了审核通过以外的认证单
+// 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+",");
+// }
+// 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 6e7ae25..359427c 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;
@@ -24,17 +26,22 @@
import com.dsh.guns.modular.system.model.*;
import com.dsh.guns.modular.system.service.*;
+import com.dsh.guns.modular.system.util.PayMoneyUtil;
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;
@@ -51,17 +58,21 @@
@Autowired
private TOperatorCityService operatorCityService;
@Autowired
+ private IOperatorAuthService operatorAuthService;
+ @Autowired
private IOperatorUserService operatorUserService;
@Autowired
private IUserService userService;
@Autowired
private ICityService cityService;
@Autowired
- private IOperatorAuthService operatorAuthService;
+ private PayMoneyUtil payMoneyUtil;
+
@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查询所有门店
*/
@@ -69,6 +80,7 @@
@ResponseBody
public List<TStore> getStores(Integer id)
{
+ payMoneyUtil.getMessage();
return storeService.list(new QueryWrapper<TStore>()
.eq("operatorId",id)
.ne("state",3));
@@ -149,6 +161,7 @@
page.setRecords(list);
return super.packForBT(page);
}
+
/**
* 跳转运营商商户去认证页面
*/
@@ -159,63 +172,170 @@
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);
model.addAttribute("reasons",null);
// 0不显示二维码
model.addAttribute("type",0);
-
}else{
- if (info.getOrderStatus().equals("AUDIT_PASS")){
- // 通过才展示二维码
- 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());
@@ -224,16 +344,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;
}
@@ -245,196 +370,173 @@
// 未上传法人身份证背面照
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();
- }
-
-
- //第二步:提交申请单
- 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();
+ operatorAuthService.saveOrUpdate(operatorAuth);
+ AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+ aliAppid,
+ appPrivateKey,
+ "json","GBK",
+ alipay_public_key,
+ "RSA2");
+ AntMerchantExpandIndirectZftCreateRequest request = new AntMerchantExpandIndirectZftCreateRequest();
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
- +
- "}");
- }
+ " \"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+"\"," +
+ " }" +
+ " ],";
- AlipayMerchantIndirectAuthorderCreateResponse response = null;
+ // 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) {
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.setRefuseReason("");
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);
}
+ operatorUserService.saveOrUpdate(user);
} 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;
@@ -475,15 +577,10 @@
*/
@RequestMapping(value = "/proportion")
@ResponseBody
- public Object auth(Integer operatorIdOne ,String alipayProportion,String alipayNum,String wechatProportion,
- String wechatNum) {
- Integer id1 = operatorService.getOne(new QueryWrapper<TOperator>().eq("id", operatorIdOne))
- .getUserId();
- OperatorUser id = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", id1));
+ public Object auth(Integer operatorIdOne ,String alipayProportion,String wechatProportion) {
+ OperatorUser id = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("operatorId", operatorIdOne));
id.setAlipayProportion(alipayProportion);
id.setWechatProportion(wechatProportion);
- id.setAlipayNum(alipayNum);
- id.setWechatNum(wechatNum);
operatorUserService.updateById(id);
return SUCCESS_TIP;
}
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..8c82471
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
@@ -0,0 +1,385 @@
+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.msg.AlipayMsgClient;
+import com.alipay.api.msg.MsgHandler;
+import com.alipay.api.request.*;
+import com.alipay.api.response.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
+import com.dsh.guns.modular.system.model.OperatorUser;
+import com.dsh.guns.modular.system.service.IOperatorAuthService;
+import com.dsh.guns.modular.system.service.IOperatorUserService;
+import org.apache.commons.lang3.StringUtils;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.springframework.beans.factory.annotation.Autowired;
+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";//微信证书
+ String signType = "RSA2" ;
+ String serverHost = "openchannel.alipay.com" ;
+
+ @Autowired
+ private IOperatorAuthService operatorAuthService;
+ @Autowired
+ private IOperatorUserService operatorUserService;
+
+
+
+
+ /**
+ * 处理直付通审核通过和拒绝消息
+ */
+ public void getMessage() {
+ System.err.println("进入");
+ final AlipayMsgClient alipayMsgClient = AlipayMsgClient.getInstance(aliAppid);
+ try {
+ alipayMsgClient.setConnector(serverHost);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ alipayMsgClient.setSecurityConfig(signType, appPrivateKey, alipay_public_key);
+ try {
+ alipayMsgClient.connect();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ alipayMsgClient.setMessageHandler( new MsgHandler() {
+ /**
+ * 客户端接收到消息后回调此方法
+ * @param msgApi 接收到的消息的消息api名
+ * @param msgId 接收到的消息的消息id
+ * @param bizContent 接收到的消息的内容,json格式
+ */
+ public void onMessage (String msgApi, String msgId, String bizContent) {
+ // 直付通进件审核通过
+ if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.passed")){
+ // 修改运营商状态 将返回的商户号填入运营商
+ System.out.println( "receive message. msgApi:" + msgApi + " msgId:" + msgId + " bizContent:" + bizContent);
+ JSONObject json = JSONObject.parseObject(bizContent);
+ // 商户号
+ String smid = json.getString("smid");
+ // 审核备注信息
+ String memo = json.getString("memo");
+ // 订单id
+ String orderId = json.getString("order_id");
+ // 通过订单id查询
+ OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+ .eq("orderNo",orderId));
+ auth.setSmid(smid);
+ auth.setAuditState(2);
+ auth.setRefuseReason(memo);
+ operatorAuthService.updateById(auth);
+ Integer operatorId = auth.getOperatorId();
+ OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+ .eq("operatorId", operatorId));
+ operatorId1.setAlipayNum(smid);
+ operatorId1.setAlipayAudit(2);
+ operatorUserService.updateById(operatorId1);
+ }
+ // 直付通进件审核失败
+ if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.rejected")){
+ JSONObject json = JSONObject.parseObject(bizContent);
+ // 商户号
+ String orderId = json.getString("order_id");
+ // 官方拒绝理由
+ String reason = json.getString("reason");
+ // 通过订单id查询
+ OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>()
+ .eq("orderNo",orderId));
+ auth.setAuditState(3);
+ auth.setRefuseReason(reason);
+ operatorAuthService.updateById(auth);
+ Integer operatorId = auth.getOperatorId();
+ OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
+ .eq("operatorId", operatorId));
+ operatorId1.setAlipayAudit(3);
+ operatorUserService.updateById(operatorId1);
+ }
+ }
+ });
+ }
+ /**
+ * 支付宝支付
+ */
+ 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_proportion.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html
index 45d9478..cee9c86 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html
@@ -49,20 +49,14 @@
<input hidden id="id" value="${id}">
<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="alipayNum" value="${alipayNum}" placeholder="请输入" type="text">
- </div>
+
<label class="col-sm-3 control-label">*支付宝分账比例(%):</label>
<div class="col-sm-9">
<input style="width: 300px" class="form-control" id="alipayProportion" value="${alipayProportion}" placeholder="请输入" type="number">
</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="wechatNum" value="${wechatNum}" placeholder="请输入" type="text">
- </div>
+
<label class="col-sm-3 control-label">*微信分账比例(%):</label>
<div class="col-sm-9">
<input style="width: 300px" class="form-control" id="wechatProportion" value="${wechatProportion}" placeholder="请输入" type="number">
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..f34b0b5 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
@@ -9,7 +9,6 @@
<div class="row row-lg">
<div class="col-sm-12">
<div class="row">
-
<div class="col-sm-3">
<#NameCon id="name" name="管理员姓名:" />
</div>
@@ -44,7 +43,6 @@
</select>
</div>
</div>
-
<div class="col-sm-3">
<div class="input-group">
<div class="input-group-btn open">
@@ -56,13 +54,8 @@
<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..c9b08b3 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;
@@ -71,13 +71,28 @@
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;
+ }
+};
TSite.proportion = function () {
var selected = $('#' + this.id).bootstrapTable('getSelections');
if(selected.length >1 ){
Feng.info("只能选择一个运营商商户设置分账比例!");
}else {
if (this.check()) {
-
var index = layer.open({
type: 2,
title: "认证",
@@ -93,23 +108,12 @@
TSite.commit = function(){
var alipayProportion = $("#alipayProportion").val();
var wechatProportion = $("#wechatProportion").val();
- if($("#alipayNum").val()=='' ){
+ if($("#alipayProportion").val()=='' ){
Feng.info("请输入支付宝分账比例")
return;
}
- if($("#wechatNum").val()=='' ){
+ if($("#wechatProportion").val()=='' ){
Feng.info("请输入微信分账比例")
- return;
- }
- if (Number(alipayProportion)+Number(wechatProportion)!=100){
- Feng.info("总比例应该是100%,当前比例:"+Number(Number(alipayProportion)+Number(wechatProportion)));
- return;
- }
-
- var ali = $("#alipayProportion").val()
- var wechat = $("#wechatProportion").val()
- if(Number(ali)+Number(wechat)!=100){
- Feng.success("总比例需为100%!");
return;
}
//提交信息
@@ -127,14 +131,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 +213,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 +436,6 @@
$(function () {
-
var defaultColunms = TSite.initColumn();
var table = new BSTable(TSite.id, "/operatorUser/listAll", defaultColunms);
table.setPaginationType("client");
@@ -446,6 +446,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 +461,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/pom.xml b/cloud-server-other/pom.xml
index a0a4e2b..178af5d 100644
--- a/cloud-server-other/pom.xml
+++ b/cloud-server-other/pom.xml
@@ -104,7 +104,7 @@
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
- <version>4.8.10.ALL</version>
+ <version>4.38.10.ALL</version>
</dependency>
</dependencies>
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 59e44a1..b17ef77 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..b5519f5 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
@@ -6,10 +6,9 @@
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.domain.ExtendParams;
-import com.alipay.api.domain.RoyaltyDetailInfos;
-import com.alipay.api.domain.RoyaltyInfo;
+import com.alipay.api.domain.*;
+import com.alipay.api.msg.AlipayMsgClient;
+import com.alipay.api.msg.MsgHandler;
import com.alipay.api.request.*;
import com.alipay.api.response.*;
import lombok.Synchronized;
@@ -72,12 +71,54 @@
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 +183,21 @@
model.setTotalAmount(amount);//付款金额
model.setProductCode("QUICK_MSECURITY_PAY");
model.setPassbackParams(passbackParams);//自定义参数
+ SettleInfo settleInfo = new SettleInfo();
+ settleInfo.setSettlePeriodTime("3d");
+ SettleDetailInfo settleDetailInfo = new SettleDetailInfo();
+ settleDetailInfo.setTransInType("defaultSettle");
+ settleDetailInfo.setAmount(amount);
+ List<SettleDetailInfo> settleDetailInfos = new ArrayList<>();
+ settleDetailInfos.add(settleDetailInfo);
+ settleInfo.setSettleDetailInfos(settleDetailInfos);
+ model.setSettleInfo(settleInfo);
+ SubMerchant subMerchant = new SubMerchant();
+ subMerchant.setMerchantId(smid);
+ model.setSubMerchant(subMerchant);
+ ExtendParams extendParams = new ExtendParams();
+ extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理
+ model.setExtendParams(extendParams);
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