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 com.doumee.service.system.SystemDictDataService;
|
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.apache.shiro.SecurityUtils;
|
import org.apache.shiro.mgt.DefaultSecurityManager;
|
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 表达式生成地址
|
*/
|
@Component
|
@EnableScheduling
|
@Slf4j
|
public class ScheduleTool {
|
|
@Autowired
|
private SystemDictDataBiz systemDictDataBiz;
|
|
@Autowired
|
private SystemDictDataService systemDictDataService;
|
/**
|
* 是否开发者
|
*/
|
@Value("${debug_model}")
|
private Boolean timing;
|
|
/**
|
* 更新微信公众号 ACCESS_TOKEN
|
* @throws Exception
|
*/
|
@Scheduled(fixedDelay=1000 * 60 * 90)
|
public void updAccessToken(){
|
DefaultSecurityManager securityManager = new DefaultSecurityManager();
|
SecurityUtils.setSecurityManager(securityManager);
|
|
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());
|
systemDictDataService.updateById(systemDictData);
|
log.info(" 更新微信公众号 ACCESS_TOKEN =========> " + systemDictData.getCode() );
|
}
|
}
|
|
|
|
}
|