init version for new gitea

This commit is contained in:
terry.wang
2025-11-13 13:56:50 +08:00
commit c47b86edbe
389 changed files with 42329 additions and 0 deletions

View File

@@ -0,0 +1,191 @@
package com.saye.hrs.scheduler.job;
import com.alibaba.fastjson.JSON;
import com.saye.hrs.commons.date.DateDUtil;
import com.saye.hrs.commons.encrypt.EncryptUtil;
import com.saye.hrs.commons.string.StringDUtil;
import com.saye.hrs.controller.ApiController;
import com.saye.hrs.model.StatusDefine;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.*;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
/***
* @title CheckRecharge
* @description TODO 请填写注释
* @author thuang
* @create 2024/2/18 13:22
**/
@DisallowConcurrentExecution
public class CheckRecharge implements Job {
private static final Logger logger = LoggerFactory.getLogger(ApiController.class);
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
logger.debug("定时检查充值信息开始!");
try {
SimpleClientHttpRequestFactory httpRequestFactory = new SimpleClientHttpRequestFactory();
httpRequestFactory.setConnectTimeout(30 * 1000);
httpRequestFactory.setReadTimeout(60 * 1000);
RestTemplate restTemplate = new RestTemplate(httpRequestFactory);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
String url = StatusDefine.IP_PORT+"/api/findRechargeWait";
HttpEntity<String> entity = new HttpEntity<String>("{}", headers);
ResponseEntity<List> resp =restTemplate.exchange(url, HttpMethod.POST, entity, List.class);
logger.debug("查询充值信息记录结束");
List list = resp.getBody();
for(int i=0;i<list.size();i++) {
HashMap orderMap = (HashMap) list.get(i);
String merOrderId = StringDUtil.changeNullToEmpty(orderMap.get("MERORDERID"));
String totalAmount = StringDUtil.changeNullToEmpty(orderMap.get("TOTALAMOUNT"));
TreeMap<Object,Object> map = new TreeMap<Object,Object>();
map.put("msgSrcId", "12YK");
map.put("msgSrc", "WWW.KRLSFYBJ.COM");
map.put("msgType", "query");
map.put("requestTimestamp", DateDUtil.getTheCurrentTime());
map.put("merOrderId", merOrderId);
map.put("mid", "898652880620011");
map.put("tid", "65954193");
map.put("signType", "SHA256");
String key = "KfG8PnwGSK8AXQFKtyfQnKi3x5kcZtDkWX2tctAMhcF5e6Ax";
StringBuilder str = new StringBuilder();
for(Map.Entry<Object, Object> e: map.entrySet()) {
str.append(e.getKey());
str.append("=");
str.append(e.getValue());
str.append("&");
}
str.deleteCharAt(str.length()-1);
str.append(key);
String sign = EncryptUtil.getSHA256Str(str.toString());
map.put("sign", sign.toUpperCase());
url = "https://qr.chinaums.com/netpay-route-server/api/";
String body = JSON.toJSONString(map);
entity = new HttpEntity<String>(body, headers);
logger.debug(merOrderId+"查询充值结果开始");
ResponseEntity<HashMap> resp1 =restTemplate.exchange(url, HttpMethod.POST, entity, HashMap.class);
logger.debug(merOrderId+"查询充值结果结束");
HashMap result = resp1.getBody();
String status = StringDUtil.changeNullToEmpty(result.get("status"));
String targetOrderId = StringDUtil.changeNullToEmpty(result.get("targetOrderId"));
//支付结果信息写入数据库
HashMap<Object,Object> requestMap = new HashMap<Object,Object>();
url = StatusDefine.IP_PORT+"/api/addHisRecharge";
requestMap.put("status", status);
requestMap.put("merOrderId", merOrderId);
requestMap.put("targetOrderId", targetOrderId);
requestMap.put("resultText", JSON.toJSONString(result));
HttpEntity<String> entity1 = new HttpEntity<String>(JSON.toJSONString(requestMap), headers) ;
logger.debug(merOrderId+"结果信息写入数据库开始");
ResponseEntity<HashMap> resp2 =restTemplate.exchange(url, HttpMethod.POST, entity1, HashMap.class);
logger.debug(merOrderId+"结果信息写入数据库结束");
HashMap resultMap = resp2.getBody();
//his充值失败 进行退款
if("2".equals(resultMap.get("hisStatus"))) {
logger.debug(merOrderId+"执行退款开始");
refund(merOrderId,totalAmount,0);
logger.debug(merOrderId+"执行退款结束");
}
}
} catch (Exception e) {
logger.error("定时检查充值信息异常"+e.toString());
}
logger.debug("定时检查充值信息结束!");
}
public void refund(String originalOrderId,String Amount,int index) {
if(index>1) {
//两次退款失败后 不再进行退款 写入消息提醒
String url = StatusDefine.IP_PORT+"/api/addRefundMessageNotice";
HashMap<Object,Object> map = new HashMap<Object,Object>();
map.put("id", originalOrderId);
String body = JSON.toJSONString(map);
SimpleClientHttpRequestFactory httpRequestFactory = new SimpleClientHttpRequestFactory();
httpRequestFactory.setConnectTimeout(60 * 1000);
httpRequestFactory.setReadTimeout(5 * 60 * 1000);
RestTemplate restTemplate = new RestTemplate(httpRequestFactory);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(body, headers) ;
ResponseEntity<HashMap> resp1 =restTemplate.exchange(url, HttpMethod.POST, entity, HashMap.class);
return;
}
String errCode = "";
String errMsg = "";
TreeMap<Object,Object> map = new TreeMap<Object,Object>();
map.put("msgSrcId", "12YK");
map.put("msgSrc", "WWW.KRLSFYBJ.COM");
map.put("msgType", "refund");
map.put("requestTimestamp", DateDUtil.getTheCurrentTime());
map.put("merOrderId", originalOrderId);
map.put("mid", "898652880620011");
map.put("tid", "65954193");
map.put("refundAmount", Amount);
map.put("signType", "SHA256");
String key = "KfG8PnwGSK8AXQFKtyfQnKi3x5kcZtDkWX2tctAMhcF5e6Ax";
StringBuilder str = new StringBuilder();
for(Map.Entry<Object, Object> e: map.entrySet()) {
str.append(e.getKey());
str.append("=");
str.append(e.getValue());
str.append("&");
}
str.deleteCharAt(str.length()-1);
str.append(key);
String sign = EncryptUtil.getSHA256Str(str.toString());
map.put("sign", sign.toUpperCase());
String url = "https://qr.chinaums.com/netpay-route-server/api/";
SimpleClientHttpRequestFactory httpRequestFactory = new SimpleClientHttpRequestFactory();
httpRequestFactory.setConnectTimeout(60 * 1000);
httpRequestFactory.setReadTimeout(5 * 60 * 1000);
RestTemplate restTemplate = new RestTemplate(httpRequestFactory);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
String body = JSON.toJSONString(map);
HttpEntity<String> entity = new HttpEntity<String>(body, headers);
ResponseEntity<HashMap> res =restTemplate.exchange(url, HttpMethod.POST, entity, HashMap.class);
HashMap resultMap = res.getBody();
//成功后写入退款信息
if("0".equals(resultMap.get("errCode"))) {
String refundOrderId = StringDUtil.changeNullToEmpty(resultMap.get("refundOrderId"));
HashMap<Object,Object> refundMap = new HashMap<Object,Object>();
refundMap.put("refundOrderId",refundOrderId);
refundMap.put("czyh","");
refundMap.put("hzid","");
refundMap.put("hzxm","");
refundMap.put("tranType","");
refundMap.put("Amount",Amount);
refundMap.put("payType","");
refundMap.put("payCode","");
refundMap.put("originalOrderId",originalOrderId);
refundMap.put("merchantOrderId",originalOrderId);
refundMap.put("refundRequestId",refundOrderId);
url = StatusDefine.IP_PORT+"/api/addRefund";
String requestBody = JSON.toJSONString(refundMap);
logger.info("退款请求参数"+requestBody);
entity = new HttpEntity<String>(requestBody, headers) ;
ResponseEntity<HashMap> result =restTemplate.exchange(url, HttpMethod.POST, entity, HashMap.class);
}else {
index++;
refund(originalOrderId,Amount,index);
}
logger.info("退款参数"+body+"结果:"+resultMap);
}
}

View File

@@ -0,0 +1,21 @@
package com.saye.hrs.scheduler.job;
import com.saye.hrs.scheduler.RetrieveAccessToken;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/***
* @title WXManualToken
* @description TODO 请填写注释
* @author thuang
* @create 2024/2/18 14:07
**/
public class WXManualToken implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
RetrieveAccessToken.manualToken();
}
}