1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package com.ydd.service;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.sankuai.meituan.shangou.open.sdk.domain.OAuthTokenParam;
- import com.ydd.api.ElemeApi;
- import com.ydd.module.domain.ShopWaimai;
- import com.ydd.module.enums.BindStatusEnum;
- import com.ydd.module.enums.IsDeleteEnum;
- import com.ydd.module.mapper.ShopWaimaiMapper;
- import com.ydd.module.service.IShopWaimaiService;
- import com.ydd.third.common.config.WaimaiConfig;
- import com.ydd.third.common.request.MtSgAuthRequest;
- import com.ydd.third.common.vo.ResObject;
- import com.ydd.third.common.vo.waimai.eleme.oauth.response.Token;
- import lombok.SneakyThrows;
- import org.apache.commons.collections4.CollectionUtils;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.Date;
- import java.util.List;
- /**
- * 商家外卖平台Service业务层处理
- *
- * @author douya
- * @date 2021-02-01
- */
- @Service
- public class ShopWaimaiServiceImpl extends ServiceImpl<ShopWaimaiMapper, ShopWaimai> {
- @Resource
- private ElemeApi elemeAuthClient;
- @Resource
- private WaimaiConfig waimaiConfig;
- public void elemeTask() {
- try {
- log.debug("饿了么刷新token任务执行");
- List<ShopWaimai> list = baseMapper.selectShopWaimai();
- if (list != null && list.size() > 0) {
- for (ShopWaimai waimai : list) {
- ResObject<Token> resObject = elemeAuthClient.doRefreshToken(waimai.getRefreshToken());
- if (resObject.getCode()==0) {
- waimai.setExpiresIn(resObject.getData().getExpiresIn());
- waimai.setRefreshToken(resObject.getData().getRefreshToken());
- waimai.setAuthToken(resObject.getData().getAccessToken());
- waimai.setCreateTime(new Date());
- baseMapper.updateById(waimai);
- }
- }
- }
- } catch (Exception e) {
- log.error("饿了么刷新token定时任务出现异常", e);
- e.printStackTrace();
- }
- }
- @SneakyThrows
- public void refreshSgToken() {
- List<ShopWaimai> list = baseMapper.selectList(new QueryWrapper<ShopWaimai>()
- .eq("waimai_id", 14)
- .eq("deleted", IsDeleteEnum.NORMAL.status)
- .eq("bind_status", BindStatusEnum.BIND.status)
- .isNotNull("refresh_token"));
- /**
- * token 提前1天刷新
- */
- if(CollectionUtils.isNotEmpty(list)){
- for(ShopWaimai shopWaimai :list){
- if(shopWaimai.getUpdateTime().getTime()/1000-shopWaimai.getExpiresIn()<86400){
- OAuthTokenParam tokenParam = MtSgAuthRequest.refreshOauthToken(waimaiConfig.getMeituansgAppid(), waimaiConfig.getMeituansgAppScert(), shopWaimai.getRefreshToken());
- shopWaimai.setAuthToken(tokenParam.getAccess_token());
- shopWaimai.setRefreshToken(tokenParam.getRefresh_token());
- shopWaimai.setExpiresIn(tokenParam.getExpires_in());
- baseMapper.updateById(shopWaimai);
- }
- }
- }
- }
- }
|