package com.dsh.guns.modular.system.util;
|
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.dsh.guns.modular.system.model.OperatorAuth;
|
import com.dsh.guns.modular.system.model.OperatorAuthAlipay;
|
import com.dsh.guns.modular.system.model.OperatorUser;
|
import com.dsh.guns.modular.system.model.TOperator;
|
import com.dsh.guns.modular.system.service.*;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.util.HashMap;
|
import java.util.List;
|
|
|
/**
|
* 定时任务工具类
|
*/
|
@Component
|
public class TaskUtil {
|
@Autowired
|
private TOperatorService operatorService;
|
@Autowired
|
private TOperatorCityService operatorCityService;
|
@Autowired
|
private IOperatorAuthService operatorAuthService;
|
@Autowired
|
private IOperatorAuthWxService operatorAuthWxService;
|
@Autowired
|
private IOperatorUserService operatorUserService;
|
// 每隔5分钟执行一次 查询商户支付宝和微信绑定状态
|
@Scheduled(fixedRate = 5 * 60 * 1000)
|
public void queryWxAndZfbState() {
|
// 支付宝
|
List<OperatorAuthAlipay> list = operatorAuthService.list();
|
for (OperatorAuthAlipay operatorAuthAlipay : list) {
|
OperatorUser operatorId = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
|
.eq("operatorId", operatorAuthAlipay.getOperatorId()));
|
if (operatorId == null)return;
|
operatorId.setAlipayAudit(operatorAuthAlipay.getAuditState());
|
operatorUserService.updateById(operatorId);
|
}
|
// 微信
|
List<OperatorAuth> list1 = operatorAuthWxService.list();
|
for (OperatorAuth operatorAuth : list1) {
|
OperatorUser operatorId = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
|
.eq("operatorId", operatorAuth.getOperatorId()));
|
if (operatorId == null)return;
|
operatorId.setWechatAudit(operatorAuth.getAuditState());
|
operatorUserService.updateById(operatorId);
|
}
|
}
|
// 每隔5分钟执行一次 查询商户支付宝和微信绑定状态 如果两者都进件成功 那么修改t_operator表为商户绑定成功状态
|
@Scheduled(fixedRate = 5 * 60 * 1000)
|
public void queryOperatorState() {
|
List<TOperator> list2 = operatorService.list();
|
for (TOperator tOperator : list2) {
|
OperatorUser operatorId = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
|
.eq("operatorId", tOperator.getId()));
|
if (operatorId == null)return;
|
if (operatorId.getAlipayAudit() == 2 && operatorId.getWechatAudit() == 2){
|
tOperator.setState(2);
|
operatorService.updateById(tOperator);
|
}
|
}
|
|
}
|
@Scheduled(fixedRate = 1 * 60 * 1000)
|
public void queryOperatorState1() {
|
List<OperatorAuth> list = operatorAuthWxService.list();
|
for (OperatorAuth operatorAuth : list) {
|
queryState(operatorAuth.getOrderNo());
|
}
|
|
}
|
|
/**
|
* 查询进件申请单审核状态
|
*/
|
public JSONObject queryState(String orderNo) {
|
String url = "https://api.mch.weixin.qq.com/v3/ecommerce/applyments/out-request-no/"+orderNo;
|
String req1 = HttpRequestUtil.getReq1(url, new HashMap<>());
|
System.err.println("查询申请单审核状态字符串"+req1);
|
JSONObject jsonObject = JSON.parseObject(req1);
|
System.err.println("查询申请单审核状态Json"+jsonObject);
|
String applymentState = jsonObject.getString("applyment_state");
|
String outBizNo = jsonObject.getString("out_request_no");
|
OperatorAuth operatorAuth = operatorAuthWxService.getOne(
|
new QueryWrapper<OperatorAuth>()
|
.eq("outBizNo", outBizNo));
|
if (operatorAuth == null)return null;
|
|
OperatorUser operatorUser = operatorUserService.getOne(new QueryWrapper<OperatorUser>()
|
.eq("operatorId", operatorAuth.getOperatorId()));
|
// 审核状态
|
operatorAuth.setApplymentState(applymentState);
|
if (applymentState.equals("REJECTED") || applymentState.equals("FROZEN")){
|
operatorUser.setWechatAudit(3);
|
operatorAuth.setAuditState(2);
|
// 如果被拒 赋值拒绝原因
|
operatorAuth.setRefuseReason(jsonObject.getJSONObject("audit_detail").getString("reject_reason"));
|
}
|
if (applymentState.equals("NEED_SIGN")){
|
operatorAuth.setSignUrl(jsonObject.getString("sign_url"));
|
operatorAuth.setMerchantNumber(jsonObject.getString("sub_mchid"));
|
}
|
if (applymentState.equals("FINISH")){
|
operatorAuth.setMerchantNumber(jsonObject.getString("sub_mchid"));
|
operatorUser.setWechatAudit(2);
|
operatorAuth.setAuditState(1);
|
}
|
if (applymentState.equals("ACCOUNT_NEED_VERIFY")){
|
operatorAuth.setLegalValidationUrl(jsonObject.getString("legal_validation_url"));
|
}
|
return jsonObject;
|
/**
|
* {
|
* "applyment_state" : "FINISH",
|
* "applyment_state_desc" : "审核中",
|
* "sign_url" : "https://pay.weixin.qq.com/public/apply4ec_sign/s?applymentId=2000002126198476&sign=b207b673049a32c858f3aabd7d27c7ec",
|
* "sub_mchid" : "1542488631",
|
* "account_validation" : {
|
* "account_name" : "aOf7Gk2qT26kakkuTZpbFAn7Mb7xcar0LlQaYoi3+LnnWwgAsfaUUTg9+GmYJq6YCz+RiluWHeHFq1lt8n3eIkF0laVvqmAU80xIWGZgWJnRmnRuZxsg0HJZfnUac2JfqyuL8OoyM2YSuYDqdsyvcOlgUQgq8MPCR6pmvhBCmIeJvnVSm8J+L+yx912itUmTDxhdBlu1CFBIUefME9nYB70vCVTNAVXgURkf65mjHMBiE9Y+wrPZVmTIIz3C3PtPVMZYDEvBT4rDdICA3ZYXshYqeOSslSjSMf+MhhC4oaujiISFzq3AE+as7mAEDJly+DgRuVs74msmKUH8pl+3oA==",
|
* "account_no" : "aOf7Gk2qT26kakkuTZpbFAn7Mb7xcar0LlQaYoi3+LnnWwgAsfaUUTg9+GmYJq6YCz+RiluWHeHFq1lt8n3eIkF0laVvqmAU80xIWGZgWJnRmnRuZxsg0HJZfnUac2JfqyuL8OoyM2YSuYDqdsyvcOlgUQgq8MPCR6pmvhBCmIeJvnVSm8J+L+yx912itUmTDxhdBlu1CFBIUefME9nYB70vCVTNAVXgURkf65mjHMBiE9Y+wrPZVmTIIz3C3PtPVMZYDEvBT4rDdICA3ZYXshYqeOSslSjSMf+MhhC4oaujiISFzq3AE+as7mAEDJly+DgRuVs74msmKUH8pl+3oA==",
|
* "pay_amount" : 124,
|
* "destination_account_number" : "7222223333322332",
|
* "destination_account_name" : "财付通支付科技有限公司",
|
* "destination_account_bank" : "招商银行威盛大厦支行",
|
* "city" : "深圳",
|
* "remark" : "入驻账户验证",
|
* "deadline" : "2018-12-10 17:09:01"
|
* },
|
* "audit_detail" : [
|
* {
|
* "param_name" : "id_card_copy",
|
* "reject_reason" : "身份证背面识别失败,请上传更清晰的身份证图片。"
|
* }
|
* ],
|
* "legal_validation_url" : "https://pay.weixin.qq.com/public/apply4ec_sign/s?applymentId=2000002126198476&sign=b207b673049a32c858f3aabd7d27c7ec",
|
* "out_request_no" : "APPLYMENT_00000000001",
|
* "applyment_id" : 2000002124775691,
|
* "sign_state" : "SIGNED"
|
* }
|
*/
|
}
|
|
/**
|
* 每月第一天的1点执行的任务
|
*/
|
@Scheduled(cron = "0 0 1 1 * *")
|
public void taskMonth(){
|
}
|
}
|