ShopWaimaiServiceImpl.java 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.ydd.service;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.sankuai.meituan.shangou.open.sdk.domain.OAuthTokenParam;
  5. import com.ydd.api.ElemeApi;
  6. import com.ydd.module.domain.ShopWaimai;
  7. import com.ydd.module.enums.BindStatusEnum;
  8. import com.ydd.module.enums.IsDeleteEnum;
  9. import com.ydd.module.mapper.ShopWaimaiMapper;
  10. import com.ydd.module.service.IShopWaimaiService;
  11. import com.ydd.third.common.config.WaimaiConfig;
  12. import com.ydd.third.common.request.MtSgAuthRequest;
  13. import com.ydd.third.common.vo.ResObject;
  14. import com.ydd.third.common.vo.waimai.eleme.oauth.response.Token;
  15. import lombok.SneakyThrows;
  16. import org.apache.commons.collections4.CollectionUtils;
  17. import org.springframework.stereotype.Service;
  18. import javax.annotation.Resource;
  19. import java.util.Date;
  20. import java.util.List;
  21. /**
  22. * 商家外卖平台Service业务层处理
  23. *
  24. * @author douya
  25. * @date 2021-02-01
  26. */
  27. @Service
  28. public class ShopWaimaiServiceImpl extends ServiceImpl<ShopWaimaiMapper, ShopWaimai> {
  29. @Resource
  30. private ElemeApi elemeAuthClient;
  31. @Resource
  32. private WaimaiConfig waimaiConfig;
  33. public void elemeTask() {
  34. try {
  35. log.debug("饿了么刷新token任务执行");
  36. List<ShopWaimai> list = baseMapper.selectShopWaimai();
  37. if (list != null && list.size() > 0) {
  38. for (ShopWaimai waimai : list) {
  39. ResObject<Token> resObject = elemeAuthClient.doRefreshToken(waimai.getRefreshToken());
  40. if (resObject.getCode()==0) {
  41. waimai.setExpiresIn(resObject.getData().getExpiresIn());
  42. waimai.setRefreshToken(resObject.getData().getRefreshToken());
  43. waimai.setAuthToken(resObject.getData().getAccessToken());
  44. waimai.setCreateTime(new Date());
  45. baseMapper.updateById(waimai);
  46. }
  47. }
  48. }
  49. } catch (Exception e) {
  50. log.error("饿了么刷新token定时任务出现异常", e);
  51. e.printStackTrace();
  52. }
  53. }
  54. @SneakyThrows
  55. public void refreshSgToken() {
  56. List<ShopWaimai> list = baseMapper.selectList(new QueryWrapper<ShopWaimai>()
  57. .eq("waimai_id", 14)
  58. .eq("deleted", IsDeleteEnum.NORMAL.status)
  59. .eq("bind_status", BindStatusEnum.BIND.status)
  60. .isNotNull("refresh_token"));
  61. /**
  62. * token 提前1天刷新
  63. */
  64. if(CollectionUtils.isNotEmpty(list)){
  65. for(ShopWaimai shopWaimai :list){
  66. if(shopWaimai.getUpdateTime().getTime()/1000-shopWaimai.getExpiresIn()<86400){
  67. OAuthTokenParam tokenParam = MtSgAuthRequest.refreshOauthToken(waimaiConfig.getMeituansgAppid(), waimaiConfig.getMeituansgAppScert(), shopWaimai.getRefreshToken());
  68. shopWaimai.setAuthToken(tokenParam.getAccess_token());
  69. shopWaimai.setRefreshToken(tokenParam.getRefresh_token());
  70. shopWaimai.setExpiresIn(tokenParam.getExpires_in());
  71. baseMapper.updateById(shopWaimai);
  72. }
  73. }
  74. }
  75. }
  76. }