init version for new gitea
This commit is contained in:
191
src/main/java/com/saye/hrs/scheduler/job/CheckRecharge.java
Normal file
191
src/main/java/com/saye/hrs/scheduler/job/CheckRecharge.java
Normal 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);
|
||||
}
|
||||
}
|
||||
21
src/main/java/com/saye/hrs/scheduler/job/WXManualToken.java
Normal file
21
src/main/java/com/saye/hrs/scheduler/job/WXManualToken.java
Normal 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();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user