From bbb761561a17513c73bbb588f4abc9a2e6f1a47b Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Mon, 30 Dec 2024 13:12:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20WuyouPay=20=E4=B8=BA=20ser?= =?UTF-8?q?vice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/sqx/SqxApplication.java | 24 +------ .../controller/app/AppCommonController.java | 1 - .../service/impl/DiscSpinningServiceImpl.java | 16 +++-- .../com/sqx/modules/job/task/CashOutTask.java | 6 +- .../sqx/modules/job/task/CashOutTask2.java | 6 +- .../sqx/modules/job/task/TempCashOutTask.java | 8 +-- .../sqx/modules/job/task/TempOrdersTask.java | 8 +-- .../pay/controller/app/WuyouController.java | 11 ++-- .../pay/service/impl/CashOutServiceImpl.java | 9 ++- .../com/sqx/modules/pay/wuyou/WuyouPay.java | 66 ++++++++----------- 10 files changed, 64 insertions(+), 91 deletions(-) diff --git a/src/main/java/com/sqx/SqxApplication.java b/src/main/java/com/sqx/SqxApplication.java index a3c22cfd..53693f81 100644 --- a/src/main/java/com/sqx/SqxApplication.java +++ b/src/main/java/com/sqx/SqxApplication.java @@ -1,14 +1,10 @@ package com.sqx; -import com.sqx.modules.pay.wuyou.WuyouPay; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; -import org.springframework.context.ConfigurableApplicationContext; import org.springframework.scheduling.annotation.EnableScheduling; -import java.util.Map; - /** * @author GYJ */ @@ -18,25 +14,7 @@ import java.util.Map; public class SqxApplication { public static void main(String[] args) { - ConfigurableApplicationContext context = SpringApplication.run(SqxApplication.class, args); - context.getEnvironment().getPropertySources().forEach(source -> { - if (source.getName().contains("application-dev.yml") || source.getName().contains("application-prod.yml")) { - if (source.getSource() instanceof Map) { - ((Map) source.getSource()).forEach((key, value) -> { - System.out.println(key + ": " + value); - if ("pay.orderNotifyUrl".equals(key)) { - WuyouPay.setNotifyUrl(value.toString()); - } - if ("pay.extractNotifyUrl".equals(key)) { - WuyouPay.setExtractNotifyUrl(value.toString()); - } - if ("pay.h5BaseUrl".equals(key)) { - WuyouPay.setH5BaseUrl(value.toString()); - } - }); - } - } - }); + SpringApplication.run(SqxApplication.class, args); System.out.println("(♥◠‿◠)ノ゙ 短剧系统启动成功 ლ(´ڡ`ლ)゙ \n"+ " _ \n" + " | | \n" + diff --git a/src/main/java/com/sqx/modules/common/controller/app/AppCommonController.java b/src/main/java/com/sqx/modules/common/controller/app/AppCommonController.java index 55c3a3dd..2a66d5ce 100644 --- a/src/main/java/com/sqx/modules/common/controller/app/AppCommonController.java +++ b/src/main/java/com/sqx/modules/common/controller/app/AppCommonController.java @@ -47,7 +47,6 @@ public class AppCommonController { " 20后台管理平台域名配置\n" + " 22拼多多优惠券地址") @ResponseBody - @Login public Result getCommonList(@PathVariable Integer type) { return commonService.findByType(type); } diff --git a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java index 2d88ad58..f5bdc478 100644 --- a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java +++ b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java @@ -53,9 +53,8 @@ public class DiscSpinningServiceImpl extends ServiceImpl 10) { return; diff --git a/src/main/java/com/sqx/modules/job/task/CashOutTask.java b/src/main/java/com/sqx/modules/job/task/CashOutTask.java index 75829799..1f1e3edf 100644 --- a/src/main/java/com/sqx/modules/job/task/CashOutTask.java +++ b/src/main/java/com/sqx/modules/job/task/CashOutTask.java @@ -27,6 +27,8 @@ public class CashOutTask implements ITask { private UserMoneyService userMoneyService; @Resource private UserMoneyDetailsService userMoneyDetailsService; + @Resource + private WuyouPay wuyouPay; private Logger logger = LoggerFactory.getLogger(getClass()); @@ -35,12 +37,12 @@ public class CashOutTask implements ITask { logger.info("提现开始"); List cashOuts = cashOutDao.selectYesterday(); for (CashOut cashOut : cashOuts) { - if (WuyouPay.checkCanCash(cashOut.getUserId(), WithdrawTypeEnum.RED_ENVELOPE, new BigDecimal(cashOut.getMoney()))) { + if (wuyouPay.checkCanCash(cashOut.getUserId(), WithdrawTypeEnum.RED_ENVELOPE, new BigDecimal(cashOut.getMoney()))) { cashOut.setState(4); String outOrderNo = AliPayOrderUtil.createOrderId(); cashOut.setOrderNumber(outOrderNo); - BaseResp baseResp = WuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName()); + BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName()); if (baseResp.getStatus() != null && baseResp.getStatus().equals(2)) { cashOut.setState(1); } else { diff --git a/src/main/java/com/sqx/modules/job/task/CashOutTask2.java b/src/main/java/com/sqx/modules/job/task/CashOutTask2.java index 8cc74dae..1c2edabf 100644 --- a/src/main/java/com/sqx/modules/job/task/CashOutTask2.java +++ b/src/main/java/com/sqx/modules/job/task/CashOutTask2.java @@ -32,6 +32,8 @@ public class CashOutTask2 implements ITask { private UserMoneyService userMoneyService; @Resource private UserMoneyDetailsService userMoneyDetailsService; + @Resource + private WuyouPay wuyouPay; private Logger logger = LoggerFactory.getLogger(getClass()); @@ -47,11 +49,11 @@ public class CashOutTask2 implements ITask { .lt("create_at", params + " 23:59:59")); System.out.println(cashOuts.size()); for (CashOut cashOut : cashOuts) { - if (WuyouPay.checkCanCash(cashOut.getUserId(), WithdrawTypeEnum.RED_ENVELOPE, new BigDecimal(cashOut.getMoney()))) { + if (wuyouPay.checkCanCash(cashOut.getUserId(), WithdrawTypeEnum.RED_ENVELOPE, new BigDecimal(cashOut.getMoney()))) { cashOut.setState(4); String outOrderNo = AliPayOrderUtil.createOrderId(); cashOut.setOrderNumber(outOrderNo); - BaseResp baseResp = WuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName()); + BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName()); if (baseResp.getStatus() != null && baseResp.getStatus().equals(2)) { cashOut.setState(1); } else { diff --git a/src/main/java/com/sqx/modules/job/task/TempCashOutTask.java b/src/main/java/com/sqx/modules/job/task/TempCashOutTask.java index a7a9adc2..b9428bd6 100644 --- a/src/main/java/com/sqx/modules/job/task/TempCashOutTask.java +++ b/src/main/java/com/sqx/modules/job/task/TempCashOutTask.java @@ -2,8 +2,6 @@ package com.sqx.modules.job.task; import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONUtil; -import com.sqx.modules.app.service.UserMoneyDetailsService; -import com.sqx.modules.app.service.UserMoneyService; import com.sqx.modules.pay.dao.CashOutDao; import com.sqx.modules.pay.entity.CashOut; import com.sqx.modules.pay.wuyou.BaseResp; @@ -21,9 +19,7 @@ public class TempCashOutTask implements ITask { @Resource private CashOutDao cashOutDao; @Resource - private UserMoneyService userMoneyService; - @Resource - private UserMoneyDetailsService userMoneyDetailsService; + private WuyouPay wuyouPay; private Logger logger = LoggerFactory.getLogger(getClass()); @@ -32,7 +28,7 @@ public class TempCashOutTask implements ITask { logger.info("提现开始"); List cashOuts = cashOutDao.selectTemp(); for (CashOut cashOut : cashOuts) { - BaseResp baseResp = WuyouPay.queryExtractOrder(cashOut.getOrderNumber(), cashOut.getMoney()); + BaseResp baseResp = wuyouPay.queryExtractOrder(cashOut.getOrderNumber(), cashOut.getMoney()); logger.info("baseResp:{} ", JSONUtil.toJsonStr(baseResp)); if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))){ logger.info("success:{} ", cashOut.getOrderNumber()); diff --git a/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java b/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java index f9d5d4d1..c21fad83 100644 --- a/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java +++ b/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java @@ -65,6 +65,8 @@ public class TempOrdersTask implements ITask { private InviteDao inviteDao; @Resource private CompletAwardService completAwardService; + @Resource + private WuyouPay wuyouPay; private Logger logger = LoggerFactory.getLogger(getClass()); @@ -92,7 +94,7 @@ public class TempOrdersTask implements ITask { continue; } try { - BaseResp baseResp = WuyouPay.queryOrder(payDetails.getTradeNo(), order.getPayMoney().toString(), "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1 Edg/131.0.0.0"); + BaseResp baseResp = wuyouPay.queryOrder(payDetails.getTradeNo(), order.getPayMoney().toString(), "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1 Edg/131.0.0.0"); logger.info("baseResp:{} ", JSONUtil.toJsonStr(baseResp)); if (baseResp.getCode() == null || baseResp.getCode() != 200) { continue; @@ -119,10 +121,6 @@ public class TempOrdersTask implements ITask { logger.info("订单表数据处理完毕"); } - public static void main(String[] args) { - WuyouPay.queryOrder("1000001323859732", "0.5", "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1 Edg/131.0.0.0"); - } - private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private void updateOrderStatus(PayDetails payDetails, Orders order) { diff --git a/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java b/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java index 231841c2..d3d88fe8 100644 --- a/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java +++ b/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java @@ -71,13 +71,12 @@ public class WuyouController { private final CashOutDao cashOutDao; private final CompletAwardService completAwardService; private final SysUserService sysUserService; - private final ApplicationContext applicationContext; - ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(5); + private final WuyouPay wuyouPay; private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); WuyouController(OrdersService ordersService, PayDetailsDao payDetailsDao, UserService userService, InviteService inviteService, CashOutDao cashOutDao, UserMoneyService userMoneyService, UserMoneyDetailsService userMoneyDetailsService, CommonInfoService commonRepository, - InviteDao inviteDao, CompletAwardService completAwardService, SysUserService sysUserService, ApplicationContext applicationContext) { + InviteDao inviteDao, CompletAwardService completAwardService, SysUserService sysUserService, WuyouPay wuyouPay) { this.ordersService = ordersService; this.payDetailsDao = payDetailsDao; this.userService = userService; @@ -89,7 +88,7 @@ public class WuyouController { this.inviteDao = inviteDao; this.completAwardService = completAwardService; this.sysUserService = sysUserService; - this.applicationContext = applicationContext; + this.wuyouPay = wuyouPay; } @Debounce(interval = 1000, value = "#orderId") @@ -130,7 +129,7 @@ public class WuyouController { return Result.success().put("data", data); } - BaseResp baseResp = WuyouPay.payOrder(payDetails.getTradeNo(), order.getPayMoney().toString(), + BaseResp baseResp = wuyouPay.payOrder(payDetails.getTradeNo(), order.getPayMoney().toString(), request.getHeader("User-Agent"), String.format("%d-%d", order.getCourseId(), order.getCourseDetailsId()), payType); if (baseResp.getCode() == null) { @@ -160,7 +159,7 @@ public class WuyouController { return Result.success().put("data", 1); } - BaseResp baseResp = WuyouPay.queryOrder(payDetails.getTradeNo(), order.getPayMoney().toString(), request.getHeader("User-Agent")); + BaseResp baseResp = wuyouPay.queryOrder(payDetails.getTradeNo(), order.getPayMoney().toString(), request.getHeader("User-Agent")); if (baseResp.getCode() == null || baseResp.getCode() != 200) { return Result.success().put("data", 0); } diff --git a/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java b/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java index c88d4419..dbfd8b06 100644 --- a/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java +++ b/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java @@ -100,6 +100,9 @@ public class CashOutServiceImpl extends ServiceImpl impleme @Autowired private UserDao userDao; + @Autowired + private WuyouPay wuyouPay; + @Override public PageUtils selectCashOutList(Integer page, Integer limit, CashOut cashOut) { return new PageUtils(baseMapper.selectCashOutPage(new Page<>(page, limit), cashOut)); @@ -503,9 +506,9 @@ public class CashOutServiceImpl extends ServiceImpl impleme return Result.success("可提现余额不足!"); } - if (WuyouPay.checkCanCash(userId, WithdrawTypeEnum.MANUAL, new BigDecimal(money.toString()))) { + if (wuyouPay.checkCanCash(userId, WithdrawTypeEnum.MANUAL, new BigDecimal(money.toString()))) { cashOut.setStatus(4); - BaseResp baseResp = WuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName()); + BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName()); if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))) { userMoneyDetails.setContent("成功提现:" + money); cashOut.setState(1); @@ -590,7 +593,7 @@ public class CashOutServiceImpl extends ServiceImpl impleme entity.setOrderNumber(outOrderNo); } // 执行提现操作 - BaseResp baseResp = WuyouPay.extractOrder(entity.getOrderNumber(), entity.getMoney(), entity.getZhifubao(), entity.getZhifubaoName()); + BaseResp baseResp = wuyouPay.extractOrder(entity.getOrderNumber(), entity.getMoney(), entity.getZhifubao(), entity.getZhifubaoName()); if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))) { entity.setState(1); } else if (StringUtils.isNotBlank(baseResp.getErrorMsg())) { diff --git a/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java b/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java index d8b36a34..a22f3faf 100644 --- a/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java +++ b/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java @@ -10,7 +10,8 @@ import com.sqx.modules.pay.dao.CashOutDao; import com.sqx.modules.pay.entity.WithdrawTypeEnum; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.HashMap; @@ -19,48 +20,39 @@ import java.util.Map; /** * @author GYJ */ -@Component +@Service public class WuyouPay { - static String NOTIFY_URL = ""; - static String EXTRACT_NOTIFY_URL = ""; - static String H5_BASE_URL = ""; + @Value("${pay.orderNotifyUrl}") + private String notifyUrl = ""; + @Value("${pay.extractNotifyUrl}") + private String extractNotifyUrl = ""; + @Value("${pay.h5BaseUrl}") + private String h5BaseUrl = ""; - private static CashOutDao cashOutDao; - private static CommonInfoService commonInfoService; + private final CashOutDao cashOutDao; + private final CommonInfoService commonInfoService; private static final Logger logger = LoggerFactory.getLogger(WuyouPay.class); public WuyouPay(CashOutDao cashOutDao, CommonInfoService commonInfoService) { - WuyouPay.cashOutDao = cashOutDao; - WuyouPay.commonInfoService = commonInfoService; + this.cashOutDao = cashOutDao; + this.commonInfoService = commonInfoService; } - public static void setNotifyUrl(String notifyUrl) { - NOTIFY_URL = notifyUrl; - } - - public static void setExtractNotifyUrl(String extractNotifyUrl) { - EXTRACT_NOTIFY_URL = extractNotifyUrl; - } - - public static void setH5BaseUrl(String h5BaseUrl) { - H5_BASE_URL = h5BaseUrl; - } - - public static BaseResp payOrder(String orderNo, String amount, String userAgent, String allId, String payType) { + public BaseResp payOrder(String orderNo, String amount, String userAgent, String allId, String payType) { Map params = getBaseParams(); params.put("type", "6001"); params.put("is_code", "1"); params.put("out_trade_no", orderNo); params.put("total", amount); - params.put("notify_url", NOTIFY_URL); + params.put("notify_url", notifyUrl); String sign = Encrypt.getParamsSign(params); params.put("sign", sign); if ("h5".equals(payType)) { - params.put("return_url", H5_BASE_URL + allId); + params.put("return_url", h5BaseUrl + allId); } // https://dj-h5.hnsiyao.cn/me/detail/detail?allId=1230-98688 @@ -70,7 +62,7 @@ public class WuyouPay { return JSONObject.parseObject(body, BaseResp.class); } - public static BaseResp queryOrder(String orderNo, String amount, String userAgent) { + public BaseResp queryOrder(String orderNo, String amount, String userAgent) { Map params = getBaseParams(); params.put("out_trade_no", orderNo); params.put("total", amount); @@ -82,10 +74,10 @@ public class WuyouPay { return JSONObject.parseObject(body, BaseResp.class); } - public static boolean checkCanCash(long userId, WithdrawTypeEnum type, BigDecimal money) { + public boolean checkCanCash(long userId, WithdrawTypeEnum type, BigDecimal money) { if (WithdrawTypeEnum.MANUAL.equals(type)) { // 查询当日体现次数 - Integer successCashCount = cashOutDao.selectTodayCashCount(userId, 1, DateUtil.today()+ " 00:00:00"); + Integer successCashCount = cashOutDao.selectTodayCashCount(userId, 1, DateUtil.today() + " 00:00:00"); CommonInfo cashLimit = commonInfoService.findOne(922); if (cashLimit == null || StrUtil.isBlank(cashLimit.getValue())) { logger.warn("提现必要参数未配置,请联系管理员"); @@ -102,7 +94,7 @@ public class WuyouPay { return true; } - public static boolean checkCanCashByLimit(BigDecimal money) { + public boolean checkCanCashByLimit(BigDecimal money) { CommonInfo info = commonInfoService.findOne(923); if (info == null || StrUtil.isBlank(info.getValue())) { logger.warn("未配置提现限制,请联系管理员配置"); @@ -114,11 +106,11 @@ public class WuyouPay { /** * 提现 - * @param account 支付宝账号 - * @param userName 支付宝名称 - * @return + * + * @param account 支付宝账号 + * @param userName 支付宝名称 */ - public static BaseResp extractOrder(String outOrderNo, String amount, String account, String userName) { + public BaseResp extractOrder(String outOrderNo, String amount, String account, String userName) { Map params = getBaseParams(); params.put("out_trade_no", outOrderNo); @@ -129,7 +121,7 @@ public class WuyouPay { params.put("bank_branch", "1"); params.put("province", "1"); params.put("city", "1"); - params.put("notify_url", EXTRACT_NOTIFY_URL); + params.put("notify_url", extractNotifyUrl); String sign = Encrypt.getParamsSign(params); params.put("sign", sign); @@ -141,7 +133,7 @@ public class WuyouPay { return JSONObject.parseObject(body, BaseResp.class); } - public static BaseResp queryExtractOrder(String outOrderNo, String amount) { + public BaseResp queryExtractOrder(String outOrderNo, String amount) { Map params = getBaseParams(); params.put("out_trade_no", outOrderNo); params.put("total", amount); @@ -153,7 +145,7 @@ public class WuyouPay { return JSONObject.parseObject(body, BaseResp.class); } - private static Map getBaseParams() { + private Map getBaseParams() { Map params = new HashMap<>(); params.put("mch_id", Constants.MERCHANT_ID); params.put("timestamp", System.currentTimeMillis() / 1000); @@ -161,7 +153,7 @@ public class WuyouPay { return params; } - private static String request(String url, Map params, String userAgent) { + private String request(String url, Map params, String userAgent) { String body = HttpRequest.post(url) .header("Content-Type", "application/x-www-form-urlencoded") .header("User-Agent", userAgent) @@ -181,6 +173,6 @@ public class WuyouPay { // extractOrder("20221118123456793", "1", "1157756119@qq.com", "巩奕杰"); // queryExtractOrder("20221118123456793", "1"); - System.out.println(DateUtil.today()+ " 00:00:00"); + System.out.println(DateUtil.today() + " 00:00:00"); } }