package com.doumee.api; 
 | 
  
 | 
  
 | 
import com.alibaba.fastjson.JSONObject; 
 | 
import com.doumee.biz.system.SystemDictDataBiz; 
 | 
import com.doumee.core.utils.Constants; 
 | 
import com.doumee.core.utils.HttpsUtil; 
 | 
import com.doumee.core.wx.WXConstant; 
 | 
import com.doumee.dao.system.model.SystemDictData; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.apache.http.client.methods.CloseableHttpResponse; 
 | 
import org.apache.http.client.methods.HttpGet; 
 | 
import org.apache.http.client.utils.URIBuilder; 
 | 
import org.apache.http.impl.client.CloseableHttpClient; 
 | 
import org.apache.http.impl.client.HttpClients; 
 | 
import org.apache.http.util.EntityUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.beans.factory.annotation.Value; 
 | 
import org.springframework.scheduling.annotation.EnableScheduling; 
 | 
import org.springframework.scheduling.annotation.Scheduled; 
 | 
import org.springframework.stereotype.Component; 
 | 
  
 | 
import java.io.IOException; 
 | 
import java.net.URI; 
 | 
import java.util.Date; 
 | 
import java.util.Map; 
 | 
import java.util.Objects; 
 | 
  
 | 
/** 
 | 
 * 定时任务 
 | 
 * @author jiangping 
 | 
 * @date 2021-10-10 14:40:35 
 | 
 * https://www.bejson.com/othertools/cron/  cron 表达式生成地址 
 | 
 */ 
 | 
@Slf4j 
 | 
@Component 
 | 
@EnableScheduling 
 | 
public class ScheduleTool { 
 | 
  
 | 
    @Autowired 
 | 
    private SystemDictDataBiz systemDictDataBiz; 
 | 
  
 | 
    /** 
 | 
     * 是否开发者 
 | 
     */ 
 | 
    @Value("${timing}") 
 | 
    private Boolean timing; 
 | 
  
 | 
    /** 
 | 
     * 更新微信公众号 ACCESS_TOKEN 
 | 
     * @throws Exception 
 | 
     */ 
 | 
    @Scheduled(fixedDelay=1000 * 60 * 90) 
 | 
    public void updAccessToken(){ 
 | 
        String appId = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode(); 
 | 
        String appSecret = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_SECRET).getCode(); 
 | 
        //生成微信token 
 | 
        String url = WXConstant.GET_ACCESS_TOKEN_URL.replace("APPID",appId).replace("APPSECRET",appSecret); 
 | 
        String response = HttpsUtil.get(url,false); 
 | 
        JSONObject json = JSONObject.parseObject(response); 
 | 
        SystemDictData systemDictData =  systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN); 
 | 
        if(!Objects.isNull(systemDictData)){ 
 | 
            systemDictData.setCode(json.getString("access_token")); 
 | 
            systemDictData.setUpdateTime(new Date()); 
 | 
            systemDictDataBiz.updateByIdNew(systemDictData); 
 | 
            log.info(" 更新微信公众号 ACCESS_TOKEN =========> " + systemDictData.getCode() ); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
} 
 |