| | |
| | | package com.dsh.guns.modular.system.util; |
| | | |
| | | |
| | | import com.dsh.guns.modular.system.service.ITbUserExitService; |
| | | 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 ITbUserExitService userExitService; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 每分钟 |
| | | */ |
| | | @Scheduled(cron = "0 */1 * * * ?") |
| | | public void taskDay(){ |
| | | try { |
| | | userExitService.getSevenDay(); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | 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点执行的任务 |