Procházet zdrojové kódy

修改token重复问题

yumeng před 5 roky
rodič
revize
987e4ef99e

+ 11 - 14
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/CallbackController.java

@@ -1,14 +1,15 @@
 package org.jeecg.modules.ctop.controller;
 
-import cn.com.ctop.common.module.utils.*;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
-import cn.com.ctop.kuaishou.modules.material.entity.KuaishouAccessToken;
-import cn.com.ctop.kuaishou.modules.material.entity.KuaishouResultToken;
 import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.common.module.entity.UserAllocation;
 import cn.com.ctop.common.module.mapper.CtopOauthTokenMapper;
 import cn.com.ctop.common.module.mapper.UserAllocationMapper;
 import cn.com.ctop.common.module.service.IBindAccountAuthService;
+import cn.com.ctop.common.module.service.ICtopOauthTokenService;
+import cn.com.ctop.common.module.utils.*;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
+import cn.com.ctop.kuaishou.modules.material.entity.KuaishouAccessToken;
+import cn.com.ctop.kuaishou.modules.material.entity.KuaishouResultToken;
 import cn.com.ctop.toutiao.entity.ByteDanceAdvertiser;
 import cn.com.ctop.toutiao.service.IByteDanceAdvertiserDataService;
 import com.alibaba.fastjson.JSONObject;
@@ -43,6 +44,9 @@ public class CallbackController {
     @Autowired
     private UserAllocationMapper allocationMapper;
 
+    @Autowired
+    private ICtopOauthTokenService ctopOauthTokenService;
+
 
     /**
      * TODO 授权绑定成功/失败 需要跳转特定页面
@@ -106,10 +110,7 @@ public class CallbackController {
                         logger.info("同步分配用户表完成,task_id:{},accountId:{}", state, accountId);
                     }
                     CtopOauthToken topOauthToken = new CtopOauthToken();
-                    Map<String, Object> deleteMap = new HashMap<>();
-                    deleteMap.put("advertiser_id", advertiserId);
-                    deleteMap.put("account_id", accountId);
-                    cTopOauthTokenMapper.deleteByMap(deleteMap); //删除 广告主id下的相关授权信息
+                    topOauthToken.setId(accountId + "");
                     topOauthToken.setAccountId(accountId);
                     topOauthToken.setMediaId("2");
                     topOauthToken.setAdvertiserId(advertiserId);
@@ -123,7 +124,7 @@ public class CallbackController {
                     Date refreshTokenExpireInDate = new Date(now + refreshTokenExpireIn);
                     topOauthToken.setRefreshTokenExpiresIn(refreshTokenExpireInDate);
                     topOauthToken.setUpdateTime(new Date());
-                    cTopOauthTokenMapper.insert(topOauthToken);
+                    ctopOauthTokenService.saveOrUpdate(topOauthToken);
                     bindAccountAuthService.addBindAccount(accountId, KuaishouInterfaceConstant.LOGIN_TYPE_KUAISHOU, advertiserId); //账号绑定
                     Thread t = new Thread() {
                         @Override
@@ -192,11 +193,7 @@ public class CallbackController {
 
             JSONObject data = resultObject.getJSONObject("data");
             CtopOauthToken token = new CtopOauthToken(advertiserId, data);
-            Map<String, Object> deleteMap = new HashMap<>();
-            deleteMap.put("advertiser_id", advertiserId);
-            deleteMap.put("account_id", token.getAccountId());
-            cTopOauthTokenMapper.deleteByMap(deleteMap); //删除 广告主id下的相关授权信息
-            cTopOauthTokenMapper.insert(token);
+            ctopOauthTokenService.saveOrUpdate(token);
             //获取广告主信息
             Map<String, Object> advertiserDataMap = advertiserDataService.getAdvertiserInfo(token.getAccountId() + "");
             Boolean getSuccess = (Boolean) advertiserDataMap.get("success");

+ 4 - 3
module-common/src/main/java/cn/com/ctop/common/module/entity/CtopOauthToken.java

@@ -1,7 +1,6 @@
 package cn.com.ctop.common.module.entity;
 
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -32,7 +31,7 @@ public class CtopOauthToken {
     /**
      * 主键ID
      */
-    @TableId(type = IdType.UUID)
+    @TableId()
     @ApiModelProperty(value = "主键ID")
     private String id;
     /**
@@ -99,9 +98,11 @@ public class CtopOauthToken {
     private Date updateTime;
 
     public CtopOauthToken(String userId, JSONObject data) {
+        Long accountId = data.getLong("advertiser_id");
+        this.id = String.valueOf(accountId);
         this.advertiserId = userId;
         this.mediaId = "1";
-        this.accountId = data.getLong("advertiser_id");
+        this.accountId = accountId;
         String accessToken = data.getString("access_token");
         Integer refreshTokenExpiresIn = data.getInteger("refresh_token_expires_in");
         Integer expiresIn = data.getInteger("expires_in");