From efdb99f8cecc4afb592afad79c761081d5d5cf22 Mon Sep 17 00:00:00 2001
From: lee <4766465@qq.com>
Date: Wed, 18 Dec 2024 13:27:00 +0800
Subject: [PATCH] init

---
 yami-shop-api/src/main/java/com/yami/shop/api/controller/CpsController.java |  274 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 274 insertions(+), 0 deletions(-)

diff --git a/yami-shop-api/src/main/java/com/yami/shop/api/controller/CpsController.java b/yami-shop-api/src/main/java/com/yami/shop/api/controller/CpsController.java
new file mode 100644
index 0000000..59d89a9
--- /dev/null
+++ b/yami-shop-api/src/main/java/com/yami/shop/api/controller/CpsController.java
@@ -0,0 +1,274 @@
+package com.yami.shop.api.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yami.shop.bean.model.CpsDdCategory;
+import com.yami.shop.bean.model.CpsJdCategory;
+import com.yami.shop.bean.model.CpsMtActitvity;
+import com.yami.shop.bean.model.CpsShop;
+import com.yami.shop.bean.param.JtkShopSearchParam;
+import com.yami.shop.common.config.BigSellerConfig;
+import com.yami.shop.common.response.ServerResponseEntity;
+import com.yami.shop.common.util.PageParam;
+import com.yami.shop.cps.commom.client.DtkApiClient;
+import com.yami.shop.cps.commom.request.putstorage.DtkGoodsListRequest;
+import com.yami.shop.cps.commom.request.search.DtkJdGoodsTypeRequest;
+import com.yami.shop.cps.commom.response.base.DtkApiResponse;
+import com.yami.shop.cps.commom.response.base.DtkPageResponse;
+import com.yami.shop.cps.commom.response.putstorage.DtkGoodsListItemResponse;
+import com.yami.shop.cps.commom.response.search.DtkJdGoodsTypeResponse;
+import com.yami.shop.cps.commom.service.CpsDdCategoryService;
+import com.yami.shop.cps.commom.service.CpsJdCategoryService;
+import com.yami.shop.cps.commom.service.CpsMtActitvityService;
+import com.yami.shop.cps.commom.service.CpsShopService;
+import com.yami.shop.cps.commom.utils.DTKUtils;
+import com.yami.shop.cps.commom.utils.MTUtils;
+import com.yami.shop.cps.commom.utils.PddUtils;
+import com.yami.shop.cps.commom.vo.*;
+import com.yami.shop.service.CpsConfigService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/cps")
+@Tag(name = "CPS接口")
+public class CpsController {
+
+    @Autowired
+    private CpsConfigService cpsConfigService;
+
+    @Autowired
+    private CpsShopService cpsShopService;
+
+    @Autowired
+    private CpsJdCategoryService cpsJdCategoryService;
+
+    @Autowired
+    private CpsMtActitvityService cpsMtActitvityService;
+
+    @Autowired
+    private CpsDdCategoryService cpsDdCategoryService;
+
+    @Value("${image.url:''}")
+    private String url;
+
+    @GetMapping("/getAllShop")
+    @Operation(summary = "拉取所有淘宝商品列表", description = "通过大淘客的接口拉取商品列表(只拉取一次,后续)")
+
+    public ServerResponseEntity<?> getALLTbShop(String pageId) {
+        TaoBaoVo taoBaoVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_TAOBAO_CONFIG, TaoBaoVo.class);
+        DtkApiClient client = DtkApiClient.getInstance(taoBaoVo.getAppKey(), taoBaoVo.getAppSecret());
+        DtkGoodsListRequest request = new DtkGoodsListRequest();
+        request.setVersion("v1.2.4");
+        if (StringUtils.isNotBlank(pageId)) {
+            request.setPageId(pageId);
+        } else {
+            request.setPageId("1");
+        }
+        request.setPageSize(100);
+        DtkApiResponse<DtkPageResponse<DtkGoodsListItemResponse>> execute = client.execute(request);
+        //创建实体类
+        List<DtkGoodsListItemResponse> list = execute.getData().getList();
+        List<CpsShop> cpsShopList = new ArrayList<>();
+        for (DtkGoodsListItemResponse shop : list) {
+            CpsShop cpsShop = new CpsShop();
+            BeanUtils.copyProperties(shop, cpsShop);
+            cpsShop.setShopId(shop.getId());
+            cpsShop.setConnect(shop.getDesc());
+            cpsShopList.add(cpsShop);
+        }
+        int count = cpsShopService.insertCpsShops(cpsShopList);
+        if (count > 0 && count < 100) {
+            return ServerResponseEntity.success("淘宝商品数据拉取成功!");
+        } else if (count == 100) {
+            getALLTbShop(execute.getData().getPageId());
+        } else {
+            return ServerResponseEntity.showFailMsg("淘宝商品数据拉取失败!");
+        }
+        return ServerResponseEntity.success("淘宝商品数据拉取成功!");
+    }
+
+    @GetMapping("/getShopList")
+    @Operation(summary = "淘宝商品列表查询", description = "通过大淘客的接口查询商品列表")
+    public ServerResponseEntity<IPage<CpsShop>> getShopList(PageParam<CpsShop> page, CpsShop cpsShop) {
+        IPage<CpsShop> cpsShopPage = cpsShopService.cpsShopList(cpsShop, page);
+        return ServerResponseEntity.success(cpsShopPage);
+    }
+
+    @GetMapping("/getShopDetail")
+    @Operation(summary = "淘宝商品详情查询", description = "通过大淘客的接口查询单个商品详情")
+    @Parameters({
+            @Parameter(name = "id", description = "商品主键id")
+    })
+    public ServerResponseEntity<?> getShopDetail(@RequestParam(value = "id") Long id) {
+        CpsShop cpsShop = cpsShopService.getById(id);
+        TaoBaoVo taoBaoVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_TAOBAO_CONFIG, TaoBaoVo.class);
+        return ServerResponseEntity.success(DTKUtils.getTBShopDetails(cpsShop.getGoodsId().toString(), taoBaoVo));
+    }
+
+
+    @GetMapping("/getCategoryList")
+    @Operation(summary = "京东商品类目查询", description = "京东商品类目查询")
+    public ServerResponseEntity<List<CpsJdCategory>> getCategoryList() {
+        List<CpsJdCategory> cpsJdCategory = cpsJdCategoryService.getCategoryList();
+        return ServerResponseEntity.success(cpsJdCategory);
+    }
+
+    @GetMapping("/getJdShopList")
+    @Operation(summary = "根据京东类目查询商品列表", description = "根据京东类目查询商品列表")
+    @Parameters({
+            @Parameter(name = "cid1", description = "一级类目"),
+            @Parameter(name = "keyword", description = "关键词"),
+            @Parameter(name = "pageNo", description = "页码"),
+            @Parameter(name = "pageSize", description = "每页数量")
+    })
+    public ServerResponseEntity<?> getJdShopList(@RequestParam(value = "cid1") Long cid1, @RequestParam(value = "keyword") String keyword, @RequestParam(value = "pageNo") String pageNo, @RequestParam(value = "pageSize") Integer pageSize) {
+        JingDongVo jingDongVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_JINGDONG_CONFIG, JingDongVo.class);
+        return ServerResponseEntity.success(DTKUtils.getJDShopList(cid1, keyword, jingDongVo, pageNo, pageSize));
+    }
+
+
+    @GetMapping("/getJdShopDetail")
+    @Operation(summary = "京东商品详情查询", description = "京东商品详情查询")
+    @Parameters({
+            @Parameter(name = "skuIds", description = "商品skuId")
+    })
+    public ServerResponseEntity<?> getJdShopDetail(@RequestParam(value = "skuIds") String skuIds) {
+        JingDongVo jingDongVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_JINGDONG_CONFIG, JingDongVo.class);
+        return ServerResponseEntity.success(DTKUtils.getJDShopDetails(skuIds, jingDongVo));
+    }
+
+
+    @GetMapping("/getJdShopCategory")
+    @Operation(summary = "拉取京东商品类目查询", description = "获取京东商品类目查询(平台调用一次就行)")
+    public ServerResponseEntity<?> getJdShopCategory() {
+        JingDongVo jingDongVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_JINGDONG_CONFIG, JingDongVo.class);
+        DtkApiClient client = DtkApiClient.getInstance(jingDongVo.getAppKey(), jingDongVo.getAppSecret());
+        DtkJdGoodsTypeRequest request = new DtkJdGoodsTypeRequest();
+        request.setVersion("v1.0.0");
+        DtkApiResponse<List<DtkJdGoodsTypeResponse>> execute = client.execute(request);
+        List<DtkJdGoodsTypeResponse> list = execute.getData();
+        int sort = 1;
+        for (DtkJdGoodsTypeResponse category : list) {
+            CpsJdCategory cpsJdCategory = new CpsJdCategory();
+            BeanUtils.copyProperties(category, cpsJdCategory);
+            cpsJdCategory.setIsShow(0);
+            cpsJdCategory.setSort(sort);
+            cpsJdCategoryService.insert(cpsJdCategory);
+            sort++;
+        }
+        return ServerResponseEntity.success();
+    }
+
+    @GetMapping("/getMtActivityList")
+    @Operation(summary = "CPS导航栏查询", description = "CPS导航栏查询")
+    public ServerResponseEntity<List<CpsMtActitvity>> getMtActivityList() {
+        List<CpsMtActitvity> cpsJdCategory = cpsMtActitvityService.getMtActivityList();
+        for (CpsMtActitvity cpsMtActitvity : cpsJdCategory) {
+            cpsMtActitvity.setImage(url + cpsMtActitvity.getImage());
+        }
+        return ServerResponseEntity.success(cpsJdCategory);
+    }
+
+
+    @GetMapping("/getPddShopCategory")
+    @Operation(summary = "拉取拼多多商品类目查询", description = "拉取拼多多商品类目查询(平台调用一次就行)")
+    public ServerResponseEntity<?> getPddShopCategory() throws Exception {
+        PddVo pddVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_PDD_CONFIG, PddVo.class);
+        List<CpsDdCategory> list = PddUtils.getPddGoodsCatsGet(pddVo);
+        for (CpsDdCategory cpsDdCategory:list){
+            cpsDdCategoryService.insert(cpsDdCategory);
+        }
+        return ServerResponseEntity.success();
+    }
+
+    @GetMapping("/getPddCategoryList")
+    @Operation(summary = "拼多多商品类目查询", description = "拼多多商品类目查询")
+    public ServerResponseEntity<List<CpsDdCategory>> getPddCategoryList() {
+        List<CpsDdCategory> cpsJdCategory = cpsDdCategoryService.getPddCategoryList();
+        return ServerResponseEntity.success(cpsJdCategory);
+    }
+
+    @GetMapping("/getUserIsBind")
+    @Operation(summary = "拼多多查询用户是否备案", description = "拼多多查询用户是否备案")
+    @Parameters({
+            @Parameter(name = "userId", description = "用户Id")
+    })
+    public ServerResponseEntity<?> getUserIsBind(@RequestParam(value = "userId") String userId) throws Exception {
+        PddVo pddVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_PDD_CONFIG, PddVo.class);
+        Integer bind = PddUtils.getIsBind(userId,pddVo);
+        return ServerResponseEntity.success(bind);
+    }
+
+    @GetMapping("/getProvinceAll")
+    @Operation(summary = "美团团购API-省份查询接口", description = "美团团购API-省份查询接口")
+    public ServerResponseEntity<?> getProvinceAll() throws Exception {
+        JtkVo jtkVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_JTK_CONFIG, JtkVo.class);
+        return ServerResponseEntity.success(MTUtils.getAllProvince(jtkVo));
+    }
+
+
+    @GetMapping("/getCitiesByProvince")
+    @Operation(summary = "获取某个省份中城市信息", description = "获取某个省份中城市信息")
+    @Parameters({
+            @Parameter(name = "platformId", description = "平台 1:点评,2:美团"),
+            @Parameter(name = "provinceId", description = "省份ID")
+    })
+    public ServerResponseEntity<?> getCitiesByProvince(@RequestParam(value = "platformId") Integer platformId,@RequestParam(value = "provinceId") Integer provinceId) throws Exception {
+        JtkVo jtkVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_JTK_CONFIG, JtkVo.class);
+        return ServerResponseEntity.success(MTUtils.getCitiesByProvince(provinceId,jtkVo));
+    }
+
+    @GetMapping("/getCategoriesByCity")
+    @Operation(summary = "获取某个城市的一级类目包含的二级类目信息", description = "获取某个城市的一级类目包含的二级类目信息")
+    @Parameters({
+            @Parameter(name = "cityId", description = "城市Id"),
+            @Parameter(name = "cat0Id", description = "一级类目Id")
+    })
+    public ServerResponseEntity<?> getCategoriesByCity(@RequestParam(value = "cityId") Integer cityId,String cat0Id) throws Exception {
+        JtkVo jtkVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_JTK_CONFIG, JtkVo.class);
+        return ServerResponseEntity.success(MTUtils.getCategoriesByCity(cityId,cat0Id,jtkVo));
+    }
+
+
+    @GetMapping("/getMtRegions")
+    @Operation(summary = "获取某个城市的商圈信息(美团)", description = "获取某个城市的商圈信息(美团)")
+    @Parameters({
+            @Parameter(name = "cityId", description = "城市Id")
+    })
+    public ServerResponseEntity<?> getMtRegions(@RequestParam(value = "cityId") Integer cityId) throws Exception {
+        JtkVo jtkVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_JTK_CONFIG, JtkVo.class);
+        return ServerResponseEntity.success(MTUtils.getMtRegions(cityId,jtkVo));
+    }
+
+
+    @GetMapping("/getRegions")
+    @Operation(summary = "获取某个城市的商圈信息(点评)", description = "获取某个城市的商圈信息(点评)")
+    @Parameters({
+            @Parameter(name = "cityId", description = "城市Id")
+    })
+    public ServerResponseEntity<?> getRegions(@RequestParam(value = "cityId") Integer cityId) throws Exception {
+        MtfxlmVo mtfxlmVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_MTFXLM_CONFIG, MtfxlmVo.class);
+        String result =MTUtils.getRegions(cityId,mtfxlmVo);
+        return ServerResponseEntity.success(result);
+    }
+
+
+    @PostMapping("/getShopSearch")
+    @Operation(summary = "团购搜索接口", description = "团购搜索接口")
+    public ServerResponseEntity<?> getShopSearch(@RequestBody JtkShopSearchParam param) throws Exception {
+        JtkVo jtkVo = cpsConfigService.getCpsConfigObject(BigSellerConfig.CPS_JTK_CONFIG, JtkVo.class);
+        return ServerResponseEntity.success(MTUtils.getShopSearch(param,jtkVo));
+    }
+}

--
Gitblit v1.9.3