mitao
2025-04-11 0ccd94c863ac71b46bff3cc15feabec53650738f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
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(){
    }
}