|
|
@@ -39,6 +39,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;
|
|
|
@@ -53,6 +55,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;
|
|
|
@@ -108,6 +111,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
|
|
|
@@ -876,7 +884,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());
|
|
|
@@ -989,8 +996,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;
|
|
|
@@ -1005,7 +1024,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()
|
|
|
@@ -1028,7 +1047,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());
|
|
|
@@ -1043,11 +1062,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());
|
|
|
@@ -1072,7 +1089,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());
|
|
|
@@ -1093,7 +1110,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()); // 交易金额
|
|
|
@@ -1118,7 +1135,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");
|
|
|
@@ -1282,8 +1299,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)) {
|
|
|
@@ -1296,7 +1323,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()
|
|
|
@@ -1311,7 +1338,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());
|
|
|
@@ -1327,9 +1354,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()); // 交易金额
|
|
|
@@ -1350,7 +1377,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");
|
|
|
@@ -1391,8 +1418,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();
|
|
|
@@ -1406,7 +1444,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()
|
|
|
@@ -1429,7 +1467,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());
|
|
|
@@ -1444,9 +1482,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()); // 交易金额
|
|
|
@@ -1467,7 +1505,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");
|
|
|
@@ -1510,8 +1548,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;
|
|
|
@@ -1526,7 +1575,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()
|
|
|
@@ -1549,7 +1598,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());
|
|
|
@@ -1565,9 +1614,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()); // 交易金额
|
|
|
@@ -1588,7 +1637,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");
|