修改 WuyouPay 为 service

This commit is contained in:
GYJ
2024-12-30 13:12:59 +08:00
parent 6c02934e08
commit bbb761561a
10 changed files with 64 additions and 91 deletions

View File

@@ -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);
}

View File

@@ -100,6 +100,9 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> 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<CashOutDao, CashOut> 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<CashOutDao, CashOut> 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())) {

View File

@@ -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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> getBaseParams() {
private Map<String, Object> getBaseParams() {
Map<String, Object> 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<String, Object> params, String userAgent) {
private String request(String url, Map<String, Object> 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");
}
}