提交git

This commit is contained in:
2025-08-25 18:51:02 +08:00
commit 9dd33ed2b9
2171 changed files with 172166 additions and 0 deletions

View File

@ -0,0 +1,11 @@
package cc.uling;
import io.jboot.app.JbootApplication;
public class YCTaskApplication {
public static void main(String[] args) {
JbootApplication.run(args);
}
}

View File

@ -0,0 +1,25 @@
package cc.uling;
import cn.hutool.core.date.DateUtil;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.cron4j.Cron4jPlugin;
import io.jboot.aop.jfinal.JfinalPlugins;
import io.jboot.core.listener.JbootAppListener;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
@Slf4j
public class YCTaskListener implements JbootAppListener {
@Override
public void onPluginConfig(JfinalPlugins plugins) {
plugins.add(new Cron4jPlugin(PropKit.use("task.properties")));
}
@Override
public void onStart() {
log.info("onStart|"+ DateUtil.formatDateTime(new Date()));
}
}

View File

@ -0,0 +1,77 @@
package cc.uling.web.task;
import cc.uling.common.enums.PayOrderStatus;
import cc.uling.common.enums.SettlementType;
import cc.uling.common.exception.BizException;
import cc.uling.domain.bo.CommissionBO;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.jfinal.aop.Aop;
import com.payment.demo.ApiDemo;
import com.web.gen.model.MchInfo;
import com.web.gen.model.PayOrder;
import com.web.gen.model.PayWayChannel;
import com.web.gen.service.MchInfoService;
import com.web.gen.service.PayOrderService;
import com.web.gen.service.SysConfigService;
import io.jboot.db.model.Columns;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
import java.util.List;
@Slf4j
public class QueryOrderTask implements Runnable {
private PayOrderService payOrderService = Aop.get(PayOrderService.class);
@Override
public void run() {
try {
Columns columns = Columns.create().in("status", PayOrderStatus.PAYING);
List<PayOrder> list = Aop.get(PayOrderService.class).findListByColumns(columns, "create_time");
log.info("开始同步订单查询任务|" + DateUtil.formatDateTime(new Date()) + "|orders=" + list.size());
for (PayOrder payOrder : list) {
String host = Aop.get(SysConfigService.class).getPayGatewayHost();
MchInfo mchInfo = Aop.get(MchInfoService.class).findFirstByColumns(Columns.create("mch_no", payOrder.getMchNo()));
if (null != mchInfo) {
try {
String result = ApiDemo.searchPayOrder(host, mchInfo.getMchNo(), mchInfo.getSecretKey(), payOrder.getPayOrderId());
log.info(payOrder.getPayOrderId() + "|result {} ", result);
if (result != null) {
JSONObject object = JSON.parseObject(result);
if ("200".equals(object.getString("code"))) {
//查询成功
JSONObject data = object.getJSONObject("data");
Integer status = data.getInteger("state");
if (status != cc.uling.common.constant.PayOrderStatus.STATUS_1) {
if (payOrder.getStatus() != status) {
payOrder.setStatus(status);//查询订单
if (status == PayOrderStatus.SUCCESS) {
payOrder.setErrCode("");
payOrder.setErrMsg("");
}
payOrder.setSuccessTime(new Date());
payOrder.update();
log.info(payOrder.getPayOrderId() + "订单更新状态|" + status);
payOrderService.createSettlementBill(payOrder.getPayOrderId());
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
log.info(" 查询失败 {}", e.getMessage());
}
}
}
} catch (Exception e) {
e.printStackTrace();
log.warn("queryOrderTask run exception {}", e.getMessage());
}
}
}

View File

@ -0,0 +1 @@
YCTask

View File

@ -0,0 +1,8 @@
# Product DB
jboot.datasource.type=mysql
#jboot.datasource.url=jdbc:mysql://localhost:3306/yc_system_db?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
jboot.datasource.url=jdbc:mysql://61.171.32.114:3306/yc_system_db?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
jboot.datasource.user=root
jboot.datasource.password=MyNewPass4!

View File

@ -0,0 +1,10 @@
#jboot dev,test,product
jboot.app.mode=dev
jboot.app.name=YCTask
jboot.app.version=1.0.0
#
#
jboot.model.idCacheEnable = false
#undertow
undertow.port=8095
undertow.host=0.0.0.0

View File

@ -0,0 +1,21 @@
#\u5F00\u542F\u7684\u4EFB\u52A1\u5217\u8868\u201C,\u201D\u9694\u5F00
cron4j=log
log.cron=* * * * *
log.class=cc.uling.web.task.QueryOrderTask
log.desc=\u4EA4\u6613\u8BA2\u5355\u67E5\u8BE2
log.enable=true
#
#
#
# cron \u8868\u8FBE\u5F0F\u7531\u4E94\u90E8\u5206\u7EC4\u6210\uFF1A\u5206 \u65F6 \u5929 \u6708 \u5468
# \u5206 \uFF1A\u4ECE 0 \u5230 59
# \u65F6 \uFF1A\u4ECE 0 \u5230 23
# \u5929 \uFF1A\u4ECE 1 \u5230 31\uFF0C\u5B57\u6BCD L \u53EF\u4EE5\u8868\u793A\u6708\u7684\u6700\u540E\u4E00\u5929
# \u6708 \uFF1A\u4ECE 1 \u5230 12\uFF0C\u53EF\u4EE5\u522B\u540D\uFF1Ajan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov" and "dec"
# \u5468 \uFF1A\u4ECE 0 \u5230 6\uFF0C0 \u8868\u793A\u5468\u65E5\uFF0C6 \u8868\u793A\u5468\u516D\uFF0C\u53EF\u4EE5\u4F7F\u7528\u522B\u540D\uFF1A "sun", "mon", "tue", "wed", "thu", "fri" and "sat"
# \u6570\u5B57 n\uFF1A\u8868\u793A\u4E00\u4E2A\u5177\u4F53\u7684\u65F6\u95F4\u70B9\uFF0C\u4F8B\u5982 5 * * * * \u8868\u793A 5 \u5206\u8FD9\u4E2A\u65F6\u95F4\u70B9\u65F6\u6267\u884C
# \u9017\u53F7 , \uFF1A\u8868\u793A\u6307\u5B9A\u591A\u4E2A\u6570\u503C\uFF0C\u4F8B\u5982 3,5 * * * * \u8868\u793A 3 \u548C 5 \u5206\u8FD9\u4E24\u4E2A\u65F6\u95F4\u70B9\u6267\u884C
# \u51CF\u53F7 -\uFF1A\u8868\u793A\u8303\u56F4\uFF0C\u4F8B\u5982 1-3 * * * * \u8868\u793A 1 \u5206\u30012 \u5206\u518D\u5230 3 \u5206\u8FD9\u4E09\u4E2A\u65F6\u95F4\u70B9\u6267\u884C
# \u661F\u53F7 *\uFF1A\u8868\u793A\u6BCF\u4E00\u4E2A\u65F6\u95F4\u70B9\uFF0C\u4F8B\u5982 * * * * * \u8868\u793A\u6BCF\u5206\u949F\u6267\u884C\uFF0C*/2 * * * * \u8868\u793A 2 \u5206\u949F\u6267\u884C\u4E00\u6B21
# \u9664\u53F7 /\uFF1A\u8868\u793A\u6307\u5B9A\u4E00\u4E2A\u503C\u7684\u589E\u52A0\u5E45\u5EA6\u3002\u4F8B\u5982 n/m\u8868\u793A\u4ECE n \u5F00\u59CB\uFF0C\u6BCF\u6B21\u589E\u52A0 m \u7684\u65F6\u95F4\u70B9\u6267\u884C