first commit
This commit is contained in:
95
src/main/java/com/kimgo/wepush/service/TokenService.java
Normal file
95
src/main/java/com/kimgo/wepush/service/TokenService.java
Normal file
@@ -0,0 +1,95 @@
|
||||
package com.kimgo.wepush.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.kimgo.wepush.config.UserConfig;
|
||||
import com.kimgo.wepush.mapper.ApiSettingMapper;
|
||||
import com.kimgo.wepush.mapper.QyWeChatAppInfoMapper;
|
||||
import com.kimgo.wepush.model.QyWeChatAppInfo;
|
||||
import com.kimgo.wepush.request.WeChatAPI;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class TokenService {
|
||||
private final Logger logger = LoggerFactory.getLogger(TokenService.class);
|
||||
@Autowired
|
||||
private UserConfig userConfig;
|
||||
@Autowired
|
||||
private QyWeChatAppInfoMapper qyWeChatAppInfoMapper;
|
||||
@Autowired
|
||||
private ApiSettingMapper apiSettingMapper;
|
||||
private String accessToken;
|
||||
private String apiAccessToken;
|
||||
|
||||
public String getAccessToken() {
|
||||
if (accessToken == null) {
|
||||
updateAccessToken();
|
||||
}
|
||||
return accessToken;
|
||||
}
|
||||
|
||||
public String getApiAccessToken(){
|
||||
if (apiAccessToken == null){
|
||||
updateApiAccessToken();
|
||||
}
|
||||
return apiAccessToken;
|
||||
}
|
||||
|
||||
|
||||
public void updateAccessToken() {
|
||||
String phoneNumberToSearch = userConfig.getPhoneNumber();
|
||||
QueryWrapper<QyWeChatAppInfo> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("phone_number", phoneNumberToSearch);
|
||||
QyWeChatAppInfo result = qyWeChatAppInfoMapper.selectOne(wrapper);
|
||||
if (result == null){
|
||||
accessToken = null;
|
||||
logger.error("updateAccessToken error");
|
||||
}
|
||||
accessToken = result.getAccessToken();
|
||||
logger.info("get accessToken from mysql,accessToken: {}",accessToken);
|
||||
}
|
||||
public void setAccessToken(){
|
||||
String phoneNumberToSearch = userConfig.getPhoneNumber();
|
||||
QueryWrapper<QyWeChatAppInfo> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("phone_number", phoneNumberToSearch);
|
||||
QyWeChatAppInfo result = qyWeChatAppInfoMapper.selectOne(wrapper);
|
||||
if (result != null){
|
||||
WeChatAPI weChatAPI = new WeChatAPI();
|
||||
String accessToken1 = weChatAPI.getAccessToken(result.getCorpId(), result.getCorpSecret());
|
||||
if (accessToken1 == null){
|
||||
logger.error("accessToken1 == null");
|
||||
}
|
||||
accessToken = accessToken1;
|
||||
updateAccessTokenToMysql(accessToken,phoneNumberToSearch);
|
||||
}
|
||||
}
|
||||
|
||||
public void updateAccessTokenToMysql(String accessToken,String phoneNumber){
|
||||
UpdateWrapper<QyWeChatAppInfo> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.eq("phone_number", phoneNumber); // 根据 phoneNumber 更新
|
||||
updateWrapper.set("access_token", accessToken); // 设置新的 accessToken
|
||||
|
||||
int result = qyWeChatAppInfoMapper.update(null, updateWrapper);
|
||||
if (result > 0) {
|
||||
logger.info("Update successful");
|
||||
} else {
|
||||
logger.warn("Update failed: No rows affected");
|
||||
}
|
||||
}
|
||||
|
||||
public void updateApiAccessToken(){
|
||||
String phoneNumberToSearch = userConfig.getPhoneNumber();
|
||||
QueryWrapper<ApiSetting> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("phone_number", phoneNumberToSearch);
|
||||
ApiSetting result = apiSettingMapper.selectOne(wrapper);
|
||||
if (result == null){
|
||||
apiAccessToken = null;
|
||||
logger.error("updateApiAccessToken error");
|
||||
}
|
||||
apiAccessToken = result.getAccessToken();
|
||||
logger.info("get ApiAccessToken from mysql,accessToken: {}",apiAccessToken);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user