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 list = operatorAuthService.list(); for (OperatorAuthAlipay operatorAuthAlipay : list) { OperatorUser operatorId = operatorUserService.getOne(new QueryWrapper() .eq("operatorId", operatorAuthAlipay.getOperatorId())); if (operatorId == null)return; operatorId.setAlipayAudit(operatorAuthAlipay.getAuditState()); operatorUserService.updateById(operatorId); } // 微信 List list1 = operatorAuthWxService.list(); for (OperatorAuth operatorAuth : list1) { OperatorUser operatorId = operatorUserService.getOne(new QueryWrapper() .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 list2 = operatorService.list(); for (TOperator tOperator : list2) { OperatorUser operatorId = operatorUserService.getOne(new QueryWrapper() .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 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() .eq("outBizNo", outBizNo)); if (operatorAuth == null)return null; OperatorUser operatorUser = operatorUserService.getOne(new QueryWrapper() .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(){ } }