From 46fecba0680d8aa572e8d5aa08bbbf7dd18b511b Mon Sep 17 00:00:00 2001 From: Richie <280645618@qq.com> Date: Wed, 13 Mar 2024 22:27:40 +0800 Subject: [PATCH] update --- .../controller/AjaxOrderPddController.java | 6 +- .../pdd/controller/PddOAuthController.java | 165 +++++++++--------- .../qihang/pdd/service/SysShopService.java | 2 +- .../pdd/service/impl/SysShopServiceImpl.java | 3 +- 4 files changed, 93 insertions(+), 83 deletions(-) diff --git a/pdd-api/src/main/java/com/qihang/pdd/controller/AjaxOrderPddController.java b/pdd-api/src/main/java/com/qihang/pdd/controller/AjaxOrderPddController.java index a01634d0..c2bb6e16 100644 --- a/pdd-api/src/main/java/com/qihang/pdd/controller/AjaxOrderPddController.java +++ b/pdd-api/src/main/java/com/qihang/pdd/controller/AjaxOrderPddController.java @@ -63,9 +63,9 @@ public class AjaxOrderPddController { if(!StringUtils.hasText(platform.getAppSecret())) { return ApiResult.build(HttpStatus.PARAMS_ERROR, "第三方平台配置错误,没有找到AppSercet"); } -// if(!StringUtils.hasText(platform.getRedirectUri())) { -// return ApiResult.build(HttpStatus.PARAMS_ERROR, "第三方平台配置错误,没有找到RedirectUri"); -// } + if(!StringUtils.hasText(platform.getRedirectUri())) { + return ApiResult.build(HttpStatus.PARAMS_ERROR, "第三方平台配置错误,没有找到RedirectUri"); + } // if(!StringUtils.hasText(platform.getServerUrl())) { // return ApiResult.build(HttpStatus.PARAMS_ERROR, "第三方平台配置错误,没有找到ServerUrl"); // } diff --git a/pdd-api/src/main/java/com/qihang/pdd/controller/PddOAuthController.java b/pdd-api/src/main/java/com/qihang/pdd/controller/PddOAuthController.java index e16bcfe1..dcd53458 100644 --- a/pdd-api/src/main/java/com/qihang/pdd/controller/PddOAuthController.java +++ b/pdd-api/src/main/java/com/qihang/pdd/controller/PddOAuthController.java @@ -1,83 +1,92 @@ -//package com.qihang.pdd.controller; -// -// -//import com.pdd.pop.sdk.http.PopAccessTokenClient; -//import com.pdd.pop.sdk.http.token.AccessTokenResponse; -//import com.qihang.erp.api.service.IShopService; -//import com.zhijian.core.config.ServerConfig; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.stereotype.Controller; -//import org.springframework.ui.Model; -//import org.springframework.web.bind.annotation.RequestMapping; -//import org.springframework.web.bind.annotation.RequestParam; -// -//import javax.servlet.http.HttpServletRequest; -//import java.io.IOException; -// -//@RequestMapping("/pdd_api2") -//@Controller -//public class PddOAuthController { +package com.qihang.pdd.controller; + + +import com.pdd.pop.sdk.http.PopAccessTokenClient; +import com.pdd.pop.sdk.http.token.AccessTokenResponse; +import com.qihang.common.enums.EnumShopType; +import com.qihang.pdd.domain.SysPlatform; +import com.qihang.pdd.service.SysPlatformService; +import com.qihang.pdd.service.SysShopService; +import jakarta.servlet.http.HttpServletRequest; +import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import java.io.IOException; +import java.net.URLEncoder; + +@AllArgsConstructor +@RequestMapping("/pdd_api2") +@Controller +public class PddOAuthController { + private final SysShopService shopService; + private final SysPlatformService platformService; // @Autowired // private IShopService shopService; // @Autowired // private ServerConfig serverConfig; -// private static Logger log = LoggerFactory.getLogger(PddOAuthController.class); -// -// @RequestMapping("/oauth") -// public String oauth(HttpServletRequest req) { + private static Logger log = LoggerFactory.getLogger(PddOAuthController.class); + + @RequestMapping("/oauth") + public String oauth(OpenApiRequest reqData) { // String returnUrl = serverConfig.getUrl() + "/pdd_api/getToken&state="+req.getParameter("shopId"); -// var shop = shopService.selectShopById(Long.parseLong(req.getParameter("shopId"))); -// -// String appKey = shop.getAppkey(); -// String appSercet = shop.getAppSercet(); -// -// String url = "https://mms.pinduoduo.com/open.html?response_type=code&client_id=" + appKey + "&redirect_uri=" + returnUrl; -// return "redirect:" + url; -// } -// -// @RequestMapping("/getToken") -// public String getToken(HttpServletRequest req) throws IOException, InterruptedException { -// log.info("/**********获取拼多多授权token*********/"); -// String code = req.getParameter("code"); -// -// Long shopId =Long.parseLong(req.getParameter("state")); -// var shop = shopService.selectShopById(shopId); -// String appKey = shop.getAppkey(); -// String appSercet = shop.getAppSercet(); -// PopAccessTokenClient accessTokenClient = new PopAccessTokenClient(appKey, appSercet); -// -// // 生成AccessToken -// try { -// AccessTokenResponse response = accessTokenClient.generate(code); -// if(response.getErrorResponse()!=null){ -// log.info("/***************获取拼多多授权token错误:"+response.getErrorResponse().getErrorMsg()+"**************/"); -// }else{ -// //保存accessToken -// System.out.println(shopId +"--token:" + response.getAccessToken()+",thirdId:"+response.getOwnerId()+",shopId:"+shopId); -// + var shop = shopService.selectShopById(reqData.getShopId()); + SysPlatform platform = platformService.selectById(EnumShopType.PDD.getIndex()); + String appKey = platform.getAppKey(); + String appSercet = platform.getAppSecret(); + + String url = "https://mms.pinduoduo.com/open.html?response_type=code&client_id=" + appKey + "&redirect_uri=" + URLEncoder.encode(platform.getRedirectUri()); + return url; + } + + @RequestMapping("/getToken") + public String getToken(HttpServletRequest req) throws IOException, InterruptedException { + log.info("/**********获取拼多多授权token*********/"); + String code = req.getParameter("code"); + + Integer shopId =Integer.parseInt(req.getParameter("state")); + var shop = shopService.selectShopById(shopId); + SysPlatform platform = platformService.selectById(EnumShopType.PDD.getIndex()); + String appKey = platform.getAppKey(); + String appSercet = platform.getAppSecret(); + + PopAccessTokenClient accessTokenClient = new PopAccessTokenClient(appKey, appSercet); + + // 生成AccessToken + try { + AccessTokenResponse response = accessTokenClient.generate(code); + if(response.getErrorResponse()!=null){ + log.info("/***************获取拼多多授权token错误:"+response.getErrorResponse().getErrorMsg()+"**************/"); + }else{ + //保存accessToken + System.out.println(shopId +"--token:" + response.getAccessToken()+",thirdId:"+response.getOwnerId()+",shopId:"+shopId); + // shopService.updateSessionKey(shopId,Long.parseLong(response.getOwnerId()),response.getAccessToken()); -// -//// thirdSettingService.updateEntity(shopId, response.getAccessToken(), response.getRefreshToken(), response.getExpiresIn(),response.getOwnerId()); -// return "redirect:/pdd/getTokenSuccess?mallId="+response.getOwnerId(); -///* String state = req.getParameter("state"); -// if (state.equalsIgnoreCase("GETORDERLIST")) { -// //获取订单list -// return "redirect:/shop/shop_list"; -// } else if (state.equalsIgnoreCase("DCGOODSLIST")) { -// //商品list -// return "redirect:/goods/pdd_list"; -// }*/ -// } -// } catch (Exception e) { -// -// e.printStackTrace(); -// -// } -// return "redirect:/"; -// } -// + shopService.updateSessionKey(shopId,response.getAccessToken(),response.getRefreshToken()); + +// thirdSettingService.updateEntity(shopId, response.getAccessToken(), response.getRefreshToken(), response.getExpiresIn(),response.getOwnerId()); + return "redirect:/pdd/getTokenSuccess?mallId="+response.getOwnerId(); +/* String state = req.getParameter("state"); + if (state.equalsIgnoreCase("GETORDERLIST")) { + //获取订单list + return "redirect:/shop/shop_list"; + } else if (state.equalsIgnoreCase("DCGOODSLIST")) { + //商品list + return "redirect:/goods/pdd_list"; + }*/ + } + } catch (Exception e) { + + e.printStackTrace(); + + } + return "redirect:/"; + } + // /** // * 获取授权成功 // * @param req @@ -91,7 +100,7 @@ // model.addAttribute("shopId",shop.getId()); // return "get_token_success"; // } -// -// -// -//} + + + +} diff --git a/pdd-api/src/main/java/com/qihang/pdd/service/SysShopService.java b/pdd-api/src/main/java/com/qihang/pdd/service/SysShopService.java index 7d744c22..d4c8d7cb 100644 --- a/pdd-api/src/main/java/com/qihang/pdd/service/SysShopService.java +++ b/pdd-api/src/main/java/com/qihang/pdd/service/SysShopService.java @@ -11,5 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface SysShopService extends IService { SysShop selectShopById(Integer shopId); - void updateSessionKey(Integer shopId,String sessionKey); + void updateSessionKey(Integer shopId,String sessionKey,String refreshToken); } diff --git a/pdd-api/src/main/java/com/qihang/pdd/service/impl/SysShopServiceImpl.java b/pdd-api/src/main/java/com/qihang/pdd/service/impl/SysShopServiceImpl.java index 7082c218..46541c28 100644 --- a/pdd-api/src/main/java/com/qihang/pdd/service/impl/SysShopServiceImpl.java +++ b/pdd-api/src/main/java/com/qihang/pdd/service/impl/SysShopServiceImpl.java @@ -24,10 +24,11 @@ public class SysShopServiceImpl extends ServiceImpl } @Override - public void updateSessionKey(Integer shopId, String sessionKey) { + public void updateSessionKey(Integer shopId, String sessionKey,String refreshToken) { SysShop shop = new SysShop(); shop.setId(shopId); shop.setAccessToken(sessionKey); + shop.setRefreshToken(refreshToken); mapper.updateById(shop); } }