Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
张松
2024-12-30 13:15:07 +08:00
10 changed files with 64 additions and 91 deletions

View File

@@ -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<String, Object>) 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" +

View File

@@ -47,7 +47,6 @@ public class AppCommonController {
" 20后台管理平台域名配置\n" +
" 22拼多多优惠券地址")
@ResponseBody
@Login
public Result getCommonList(@PathVariable Integer type) {
return commonService.findByType(type);
}

View File

@@ -53,9 +53,8 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
private final UserService userService;
private final CashOutService cashOutService;
private final RedisUtils redisUtils;
@Autowired
private PlatformTransactionManager transactionManager;
private final WuyouPay wuyouPay;
private final PlatformTransactionManager transactionManager;
@Autowired
@@ -63,7 +62,9 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
UserMoneyDetailsService userMoneyDetailsService, CashOutService cashOutService,
DiscSpinningRecordService recordService,
UserMoneyService userMoneyService, UserService userService,
RedisUtils redisUtils
RedisUtils redisUtils,
WuyouPay wuyouPay,
PlatformTransactionManager transactionManager
) {
this.commonRepository = commonRepository;
this.recordService = recordService;
@@ -72,6 +73,8 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
this.userService = userService;
this.cashOutService = cashOutService;
this.redisUtils = redisUtils;
this.wuyouPay = wuyouPay;
this.transactionManager = transactionManager;
}
@Override
@@ -128,11 +131,11 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
//最高提现金额
CommonInfo one2 = commonRepository.findOne(910);
if (one2 == null || money <= Double.parseDouble(one2.getValue())) {
if (WuyouPay.checkCanCash(userInfo.getUserId(), WithdrawTypeEnum.RED_ENVELOPE, BigDecimal.valueOf(money))) {
if (wuyouPay.checkCanCash(userInfo.getUserId(), WithdrawTypeEnum.RED_ENVELOPE, BigDecimal.valueOf(money))) {
cashOut.setStatus(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) || baseResp.getStatus().equals(10000))) {
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
userInfo.getUserId(), null, null, title, 4, 2, 1,
@@ -254,6 +257,7 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
return record;
}
@Override
public void receive1(DiscSpinningRecord receive) {
if (recordService.countDraw(receive.getUserId()) > 10) {
return;

View File

@@ -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<CashOut> 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 {

View File

@@ -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 {

View File

@@ -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<CashOut> 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());

View File

@@ -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) {

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