|
|
@@ -33,6 +33,8 @@ import com.fs.config.cloud.CloudHostProper;
|
|
|
import com.fs.core.config.WxMaConfiguration;
|
|
|
import com.fs.core.config.WxPayProperties;
|
|
|
import com.fs.core.utils.OrderCodeUtils;
|
|
|
+import com.fs.course.domain.FsCoursePlaySourceConfig;
|
|
|
+import com.fs.course.mapper.FsCoursePlaySourceConfigMapper;
|
|
|
import com.fs.his.config.FsSysConfig;
|
|
|
import com.fs.his.domain.*;
|
|
|
import com.fs.his.dto.PackageConfigDTO;
|
|
|
@@ -47,6 +49,7 @@ import com.fs.his.utils.ConfigUtil;
|
|
|
import com.fs.his.utils.HttpUtil;
|
|
|
import com.fs.his.utils.PhoneUtil;
|
|
|
import com.fs.his.vo.*;
|
|
|
+import com.fs.hisStore.domain.FsPayConfigScrm;
|
|
|
import com.fs.huifuPay.domain.HuiFuCreateOrder;
|
|
|
import com.fs.huifuPay.domain.HuifuCreateOrderResult;
|
|
|
import com.fs.huifuPay.sdk.opps.core.utils.HuiFuUtils;
|
|
|
@@ -98,6 +101,11 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
private WxPayService wxPayService;
|
|
|
@Autowired
|
|
|
private WxPayProperties wxPayProperties;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private FsCoursePlaySourceConfigMapper fsCoursePlaySourceConfigMapper;
|
|
|
+ @Autowired
|
|
|
+ private MerchantAppConfigMapper merchantAppConfigMapper;
|
|
|
@Autowired
|
|
|
IPayService payService;
|
|
|
@Autowired
|
|
|
@@ -866,7 +874,6 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
List<FsStorePayment> payments = fsStorePaymentMapper.selectFsStorePaymentByPay(3,orderId);
|
|
|
if(payments!=null&&payments.size()==1){
|
|
|
FsStorePayment payment=payments.get(0);
|
|
|
- String json=configService.selectConfigByKey("his.pay");
|
|
|
if(payment.getPayMode().equals("wx")){
|
|
|
WxPayConfig payConfig = new WxPayConfig();
|
|
|
payConfig.setAppId(wxPayProperties.getAppId());
|
|
|
@@ -979,8 +986,20 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
|
|
|
FsUser user=userService.selectFsUserByUserId(param.getUserId());
|
|
|
|
|
|
- String json = configService.selectConfigByKey("his.pay");
|
|
|
- PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
|
|
|
+ if (StringUtils.isBlank(param.getAppId())) {
|
|
|
+ throw new IllegalArgumentException("appId不能为空");
|
|
|
+ }
|
|
|
+ FsCoursePlaySourceConfig fsCoursePlaySourceConfig = fsCoursePlaySourceConfigMapper.selectCoursePlaySourceConfigByAppId(param.getAppId());
|
|
|
+ if (fsCoursePlaySourceConfig == null) {
|
|
|
+ throw new CustomException("未找到appId对应的小程序配置: " + param.getAppId());
|
|
|
+ }
|
|
|
+ Long merchantConfigId = fsCoursePlaySourceConfig.getMerchantConfigId();
|
|
|
+ if (merchantConfigId == null || merchantConfigId <= 0) {
|
|
|
+ throw new CustomException("小程序没有配置商户信息");
|
|
|
+ }
|
|
|
+ MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigById(fsCoursePlaySourceConfig.getMerchantConfigId());
|
|
|
+ FsPayConfig fsPayConfig = JSON.parseObject(merchantAppConfig.getDataJson(), FsPayConfig.class);
|
|
|
+// PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
|
|
|
|
|
|
//金牛多小程序支付
|
|
|
String openId = null;
|
|
|
@@ -995,7 +1014,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
openId = fsUserWx.getOpenId();
|
|
|
}
|
|
|
} else {
|
|
|
- appId = payConfigDTO.getAppId();
|
|
|
+ appId = fsPayConfig.getAppId();
|
|
|
openId = Objects.isNull(user) ? "" : user.getMaOpenId();
|
|
|
if (StringUtils.isBlank(openId)){
|
|
|
Wrapper<FsUserWx> queryWrapper = Wrappers.<FsUserWx>lambdaQuery()
|
|
|
@@ -1016,7 +1035,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
}
|
|
|
FsStorePayment storePayment=new FsStorePayment();
|
|
|
storePayment.setStatus(0);
|
|
|
- storePayment.setPayMode(payConfigDTO.getType());
|
|
|
+ storePayment.setPayMode(merchantAppConfig.getMerchantType());
|
|
|
storePayment.setBusinessCode(fsPackageOrder.getOrderSn());
|
|
|
storePayment.setPayCode(payCode);
|
|
|
storePayment.setPayMoney(fsPackageOrder.getPayMoney());
|
|
|
@@ -1031,11 +1050,9 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
storePayment.setStoreId(fsPackageOrder.getStoreId());
|
|
|
storePayment.setBusinessId(fsPackageOrder.getOrderId().toString());
|
|
|
if(storePaymentService.insertFsStorePayment(storePayment)>0){
|
|
|
- if (payConfigDTO.getType().equals("wx")) {
|
|
|
+ if (merchantAppConfig.getMerchantType().equals("wx")) {
|
|
|
//创建微信订单
|
|
|
WxPayConfig payConfig = new WxPayConfig();
|
|
|
- SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("his.pay");
|
|
|
- FsPayConfig fsPayConfig = new Gson().fromJson(sysConfig.getConfigValue(), FsPayConfig.class);
|
|
|
payConfig.setAppId(appId);
|
|
|
payConfig.setMchId(fsPayConfig.getWxMchId());
|
|
|
payConfig.setMchKey(fsPayConfig.getWxMchKey());
|
|
|
@@ -1060,7 +1077,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
e.printStackTrace();
|
|
|
throw new CustomException("支付失败" + e.getMessage());
|
|
|
}
|
|
|
- } else if (payConfigDTO.getType().equals("yb")) {
|
|
|
+ } else if (merchantAppConfig.getMerchantType().equals("yb")) {
|
|
|
WxJspayDTO p = new WxJspayDTO();
|
|
|
// 使用setter方法为对象赋值
|
|
|
p.setPayMoney(storePayment.getPayMoney().toString());
|
|
|
@@ -1081,7 +1098,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
} else {
|
|
|
throw new CustomException("支付失败");
|
|
|
}
|
|
|
- } else if (payConfigDTO.getType().equals("tz")) {
|
|
|
+ } else if (merchantAppConfig.getMerchantType().equals("tz")) {
|
|
|
PayCreateOrder o = new PayCreateOrder();
|
|
|
o.setOrderNo("package" + storePayment.getPayCode()); // 业务系统订单号
|
|
|
o.setTrxAmt(storePayment.getPayMoney().doubleValue()); // 交易金额
|
|
|
@@ -1106,7 +1123,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
mt.setTradeNo(result.getBody().getOrderFlowNo());
|
|
|
fsStorePaymentMapper.updateFsStorePayment(mt);
|
|
|
return R.ok().put("isPay", 0).put("data", result).put("type", "tz");
|
|
|
- }else if (payConfigDTO.getType().equals("hf")) {
|
|
|
+ }else if (merchantAppConfig.getMerchantType().equals("hf")) {
|
|
|
logger.info("创建汇付订单");
|
|
|
HuiFuCreateOrder o = new HuiFuCreateOrder();
|
|
|
o.setTradeType("T_MINIAPP");
|
|
|
@@ -1211,8 +1228,18 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
if(StringUtils.isEmpty(payCode)){
|
|
|
return R.error("订单生成失败,请重试");
|
|
|
}
|
|
|
- String json = configService.selectConfigByKey("his.pay");
|
|
|
- PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
|
|
|
+ if (StringUtils.isBlank(param.getAppId())) {
|
|
|
+ throw new IllegalArgumentException("appId不能为空");
|
|
|
+ }
|
|
|
+ FsCoursePlaySourceConfig fsCoursePlaySourceConfig = fsCoursePlaySourceConfigMapper.selectCoursePlaySourceConfigByAppId(param.getAppId());
|
|
|
+ if (fsCoursePlaySourceConfig == null) {
|
|
|
+ throw new CustomException("未找到appId对应的小程序配置: " + param.getAppId());
|
|
|
+ }
|
|
|
+ Long merchantConfigId = fsCoursePlaySourceConfig.getMerchantConfigId();
|
|
|
+ if (merchantConfigId == null || merchantConfigId <= 0) {
|
|
|
+ throw new CustomException("小程序没有配置商户信息");
|
|
|
+ }
|
|
|
+ MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigById(fsCoursePlaySourceConfig.getMerchantConfigId());
|
|
|
String openId = null;
|
|
|
String appId = param.getAppId();
|
|
|
if (StringUtils.isNotBlank(appId)) {
|
|
|
@@ -1225,7 +1252,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
openId = fsUserWx.getOpenId();
|
|
|
}
|
|
|
} else {
|
|
|
- appId = payConfigDTO.getAppId();
|
|
|
+ appId = merchantAppConfig.getAppId();
|
|
|
openId = Objects.isNull(user) ? "" : user.getMaOpenId();
|
|
|
if (StringUtils.isBlank(openId)){
|
|
|
Wrapper<FsUserWx> queryWrapper = Wrappers.<FsUserWx>lambdaQuery()
|
|
|
@@ -1240,7 +1267,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
|
|
|
FsStorePayment storePayment=new FsStorePayment();
|
|
|
storePayment.setStatus(0);
|
|
|
- storePayment.setPayMode(payConfigDTO.getType());
|
|
|
+ storePayment.setPayMode(merchantAppConfig.getMerchantType());
|
|
|
storePayment.setBusinessCode(fsPackageOrder.getOrderSn());
|
|
|
storePayment.setPayCode(payCode);
|
|
|
storePayment.setPayMoney(fsPackageOrder.getPayMoney());
|
|
|
@@ -1256,9 +1283,9 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
storePayment.setBusinessId(fsPackageOrder.getOrderId().toString());
|
|
|
if(storePaymentService.insertFsStorePayment(storePayment)>0){
|
|
|
|
|
|
- if (payConfigDTO.getType().equals("yb")) {
|
|
|
+ if (merchantAppConfig.getMerchantType().equals("yb")) {
|
|
|
return R.error("支付暂不可用!");
|
|
|
- } else if (payConfigDTO.getType().equals("tz")) {
|
|
|
+ } else if (merchantAppConfig.getMerchantType().equals("tz")) {
|
|
|
PayCreateOrder o = new PayCreateOrder();
|
|
|
o.setOrderNo("package" + storePayment.getPayCode()); // 业务系统订单号
|
|
|
o.setTrxAmt(storePayment.getPayMoney().doubleValue()); // 交易金额
|
|
|
@@ -1279,7 +1306,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
mt.setTradeNo(result.getBody().getOrderFlowNo());
|
|
|
fsStorePaymentMapper.updateFsStorePayment(mt);
|
|
|
return R.ok().put("isPay", 0).put("data", result).put("type", "tz");
|
|
|
- }else if (payConfigDTO.getType().equals("hf")) {
|
|
|
+ }else if (merchantAppConfig.getMerchantType().equals("hf")) {
|
|
|
logger.info("创建汇付订单");
|
|
|
HuiFuCreateOrder o = new HuiFuCreateOrder();
|
|
|
o.setTradeType("A_NATIVE");
|
|
|
@@ -1320,8 +1347,19 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
//如果存在优惠券 判断优惠券是否已使用
|
|
|
FsUser user=userService.selectFsUserByUserId(param.getUserId());
|
|
|
|
|
|
- String json = configService.selectConfigByKey("his.pay");
|
|
|
- PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
|
|
|
+ if (StringUtils.isBlank(param.getAppId())) {
|
|
|
+ throw new IllegalArgumentException("appId不能为空");
|
|
|
+ }
|
|
|
+ FsCoursePlaySourceConfig fsCoursePlaySourceConfig = fsCoursePlaySourceConfigMapper.selectCoursePlaySourceConfigByAppId(param.getAppId());
|
|
|
+ if (fsCoursePlaySourceConfig == null) {
|
|
|
+ throw new CustomException("未找到appId对应的小程序配置: " + param.getAppId());
|
|
|
+ }
|
|
|
+ Long merchantConfigId = fsCoursePlaySourceConfig.getMerchantConfigId();
|
|
|
+ if (merchantConfigId == null || merchantConfigId <= 0) {
|
|
|
+ throw new CustomException("小程序没有配置商户信息");
|
|
|
+ }
|
|
|
+ MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigById(fsCoursePlaySourceConfig.getMerchantConfigId());
|
|
|
+// PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
|
|
|
|
|
|
String openId = null;
|
|
|
String appId = param.getAppId();
|
|
|
@@ -1335,7 +1373,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
openId = fsUserWx.getOpenId();
|
|
|
}
|
|
|
} else {
|
|
|
- appId = payConfigDTO.getAppId();
|
|
|
+ appId = merchantAppConfig.getAppId();
|
|
|
openId = Objects.isNull(user) ? "" : user.getMaOpenId();
|
|
|
if (StringUtils.isBlank(openId)){
|
|
|
Wrapper<FsUserWx> queryWrapper = Wrappers.<FsUserWx>lambdaQuery()
|
|
|
@@ -1358,7 +1396,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
}
|
|
|
FsStorePayment storePayment=new FsStorePayment();
|
|
|
storePayment.setStatus(0);
|
|
|
- storePayment.setPayMode(payConfigDTO.getType());
|
|
|
+ storePayment.setPayMode(merchantAppConfig.getMerchantType());
|
|
|
storePayment.setBusinessCode(fsPackageOrder.getOrderSn());
|
|
|
storePayment.setPayCode(payCode);
|
|
|
storePayment.setPayMoney(fsPackageOrder.getPayMoney());
|
|
|
@@ -1373,9 +1411,9 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
storePayment.setStoreId(fsPackageOrder.getStoreId());
|
|
|
storePayment.setBusinessId(fsPackageOrder.getOrderId().toString());
|
|
|
if(storePaymentService.insertFsStorePayment(storePayment)>0){
|
|
|
- if (payConfigDTO.getType().equals("yb")) {
|
|
|
+ if (merchantAppConfig.getMerchantType().equals("yb")) {
|
|
|
return R.error("支付暂不可用!");
|
|
|
- } else if (payConfigDTO.getType().equals("tz")) {
|
|
|
+ } else if (merchantAppConfig.getMerchantType().equals("tz")) {
|
|
|
PayCreateOrder o = new PayCreateOrder();
|
|
|
o.setOrderNo("package" + storePayment.getPayCode()); // 业务系统订单号
|
|
|
o.setTrxAmt(storePayment.getPayMoney().doubleValue()); // 交易金额
|
|
|
@@ -1396,7 +1434,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
mt.setTradeNo(result.getBody().getOrderFlowNo());
|
|
|
fsStorePaymentMapper.updateFsStorePayment(mt);
|
|
|
return R.ok().put("isPay", 0).put("data", result).put("type", "tz");
|
|
|
- }else if (payConfigDTO.getType().equals("hf")) {
|
|
|
+ }else if (merchantAppConfig.getMerchantType().equals("hf")) {
|
|
|
logger.info("创建汇付订单");
|
|
|
HuiFuCreateOrder o = new HuiFuCreateOrder();
|
|
|
o.setTradeType("T_JSAPI");
|
|
|
@@ -1439,8 +1477,19 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
//如果存在优惠券 判断优惠券是否已使用
|
|
|
FsUser user=userService.selectFsUserByUserId(param.getUserId());
|
|
|
|
|
|
- String json = configService.selectConfigByKey("his.pay");
|
|
|
- PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
|
|
|
+ if (StringUtils.isBlank(param.getAppId())) {
|
|
|
+ throw new IllegalArgumentException("appId不能为空");
|
|
|
+ }
|
|
|
+ FsCoursePlaySourceConfig fsCoursePlaySourceConfig = fsCoursePlaySourceConfigMapper.selectCoursePlaySourceConfigByAppId(param.getAppId());
|
|
|
+ if (fsCoursePlaySourceConfig == null) {
|
|
|
+ throw new CustomException("未找到appId对应的小程序配置: " + param.getAppId());
|
|
|
+ }
|
|
|
+ Long merchantConfigId = fsCoursePlaySourceConfig.getMerchantConfigId();
|
|
|
+ if (merchantConfigId == null || merchantConfigId <= 0) {
|
|
|
+ throw new CustomException("小程序没有配置商户信息");
|
|
|
+ }
|
|
|
+ MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigById(fsCoursePlaySourceConfig.getMerchantConfigId());
|
|
|
+// PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
|
|
|
|
|
|
//金牛多小程序支付
|
|
|
String openId = null;
|
|
|
@@ -1455,7 +1504,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
openId = fsUserWx.getOpenId();
|
|
|
}
|
|
|
} else {
|
|
|
- appId = payConfigDTO.getAppId();
|
|
|
+ appId = merchantAppConfig.getAppId();
|
|
|
openId = Objects.isNull(user) ? "" : user.getMaOpenId();
|
|
|
if (StringUtils.isBlank(openId)){
|
|
|
Wrapper<FsUserWx> queryWrapper = Wrappers.<FsUserWx>lambdaQuery()
|
|
|
@@ -1478,7 +1527,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
// PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
|
|
|
FsStorePayment storePayment=new FsStorePayment();
|
|
|
storePayment.setStatus(0);
|
|
|
- storePayment.setPayMode(payConfigDTO.getType());
|
|
|
+ storePayment.setPayMode(merchantAppConfig.getMerchantType());
|
|
|
storePayment.setBusinessCode(fsPackageOrder.getOrderSn());
|
|
|
storePayment.setPayCode(payCode);
|
|
|
storePayment.setPayMoney(fsPackageOrder.getPayMoney());
|
|
|
@@ -1494,9 +1543,9 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
storePayment.setBusinessId(fsPackageOrder.getOrderId().toString());
|
|
|
if(storePaymentService.insertFsStorePayment(storePayment)>0){
|
|
|
|
|
|
- if (payConfigDTO.getType().equals("yb")) {
|
|
|
+ if (merchantAppConfig.getMerchantType().equals("yb")) {
|
|
|
return R.error("支付暂不可用!");
|
|
|
- } else if (payConfigDTO.getType().equals("tz")) {
|
|
|
+ } else if (merchantAppConfig.getMerchantType().equals("tz")) {
|
|
|
PayCreateOrder o = new PayCreateOrder();
|
|
|
o.setOrderNo("package" + storePayment.getPayCode()); // 业务系统订单号
|
|
|
o.setTrxAmt(storePayment.getPayMoney().doubleValue()); // 交易金额
|
|
|
@@ -1517,7 +1566,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
|
|
|
mt.setTradeNo(result.getBody().getOrderFlowNo());
|
|
|
fsStorePaymentMapper.updateFsStorePayment(mt);
|
|
|
return R.ok().put("isPay", 0).put("data", result).put("type", "tz");
|
|
|
- }else if (payConfigDTO.getType().equals("hf")) {
|
|
|
+ }else if (merchantAppConfig.getMerchantType().equals("hf")) {
|
|
|
logger.info("创建汇付订单");
|
|
|
HuiFuCreateOrder o = new HuiFuCreateOrder();
|
|
|
o.setTradeType("A_NATIVE");
|