diff --git a/api/oms-api/libs/open-sdk-2.1.8.jar b/api/oms-api/libs/open-sdk-2.1.9.jar
similarity index 93%
rename from api/oms-api/libs/open-sdk-2.1.8.jar
rename to api/oms-api/libs/open-sdk-2.1.9.jar
index b82af3e5..4d4a29b3 100644
Binary files a/api/oms-api/libs/open-sdk-2.1.8.jar and b/api/oms-api/libs/open-sdk-2.1.9.jar differ
diff --git a/api/oms-api/pom.xml b/api/oms-api/pom.xml
index 6b33a44e..96de6c1d 100644
--- a/api/oms-api/pom.xml
+++ b/api/oms-api/pom.xml
@@ -98,7 +98,7 @@
open-sdk
1.0
system
- ${project.basedir}/libs/open-sdk-2.1.8.jar
+ ${project.basedir}/libs/open-sdk-2.1.9.jar
diff --git a/api/oms-api/src/main/java/cn/qihangerp/oms/dou/controller/DouOAuthController.java b/api/oms-api/src/main/java/cn/qihangerp/oms/dou/controller/DouOAuthController.java
new file mode 100644
index 00000000..29f07d4a
--- /dev/null
+++ b/api/oms-api/src/main/java/cn/qihangerp/oms/dou/controller/DouOAuthController.java
@@ -0,0 +1,63 @@
+package cn.qihangerp.oms.dou.controller;
+
+import cn.qihangerp.common.AjaxResult;
+import cn.qihangerp.common.ResultVoEnum;
+import cn.qihangerp.common.enums.EnumShopType;
+import cn.qihangerp.common.enums.HttpStatus;
+import cn.qihangerp.model.entity.OShopPlatform;
+import cn.qihangerp.module.service.OShopPlatformService;
+import cn.qihangerp.module.service.OShopService;
+import cn.qihangerp.oms.dou.DouPullRequest;
+import cn.qihangerp.open.common.ApiResultVo;
+import cn.qihangerp.open.dou.DouTokenApiHelper;
+import cn.qihangerp.open.dou.model.Token;
+import lombok.AllArgsConstructor;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+@AllArgsConstructor
+@RestController
+@RequestMapping("/dou/oauth")
+public class DouOAuthController {
+ private final OShopService shopService;
+ private final OShopPlatformService platformService;
+
+ @PostMapping("/update_token")
+ @ResponseBody
+ public AjaxResult getToken(@RequestBody DouPullRequest req) {
+ if(req.getShopId()==null) return AjaxResult.error("缺少参数:shopId");
+
+ var shop = shopService.getById(req.getShopId());
+ if (shop == null) {
+ return AjaxResult.error("没有找到店铺");
+ }
+ if (shop.getType() != EnumShopType.DOU.getIndex()) {
+ return AjaxResult.error(HttpStatus.PARAMS_ERROR, "店铺不是抖店店铺");
+ }
+ if (shop.getSellerId() == null || shop.getSellerId()<=0) {
+ return AjaxResult.error("请设置抖店平台店铺ID(shopId)");
+ }
+ String appKey = shop.getAppKey();
+ String appSecret = shop.getAppSecret();
+ if(StringUtils.isEmpty(appKey) || StringUtils.isEmpty(appSecret)) {
+ OShopPlatform platform = platformService.getById(EnumShopType.DOU.getIndex());
+ appKey = platform.getAppKey();
+ appSecret = platform.getAppSecret();
+ }
+
+
+ if (!StringUtils.hasText(appKey)) {
+ return AjaxResult.error(HttpStatus.PARAMS_ERROR, "店铺配置错误,没有找到AppKey");
+ }
+ if (!StringUtils.hasText(appSecret)) {
+ return AjaxResult.error(HttpStatus.PARAMS_ERROR, "店铺配置错误,没有找到AppSecret");
+ }
+ ApiResultVo token = DouTokenApiHelper.getToken(appKey, appSecret, shop.getSellerId());
+ if(token.getCode()!=0) {
+ return AjaxResult.error(ResultVoEnum.API_FAIL.getIndex(), token.getMsg());
+ }else{
+ shopService.updateSessionKey(req.getShopId(), token.getData().getAccessToken());
+ }
+ return AjaxResult.success();
+ }
+}
diff --git a/vue/src/api/dou/shop.js b/vue/src/api/dou/shop.js
new file mode 100644
index 00000000..f36413ef
--- /dev/null
+++ b/vue/src/api/dou/shop.js
@@ -0,0 +1,13 @@
+import request from '@/utils/request'
+
+// 更新token
+export function updateDouToken(data) {
+ return request({
+ url: '/dou/oauth/update_token',
+ method: 'post',
+ data: data
+ })
+}
+
+
+
diff --git a/vue/src/views/shop/online_shop.vue b/vue/src/views/shop/online_shop.vue
index 93ea82d2..acd6724f 100644
--- a/vue/src/views/shop/online_shop.vue
+++ b/vue/src/views/shop/online_shop.vue
@@ -112,7 +112,7 @@
>删除
{
+ if(resp.code === 200){
+ this.$modal.msgSuccess("Token更新成功")
+ this.getList()
+ }else{
+ this.$modal.msgError(resp.msg)
+ }
+
+ })
+ }else{
+ this.$modal.msgError('暂时不支持')
}
},