Browse Source

添加cdf 接口

lyhzzz 3 years ago
parent
commit
d1a1306502

+ 6 - 4
src/main/java/com/cdf/controller/api/CdfProductApiController.java

@@ -18,20 +18,22 @@ public class CdfProductApiController {
     private CdfClient cdfClient;
 
     @GetMapping("/getCatNum")
-    public ResultData getCatNum(@RequestParam(required = false) String accessToken){
-        JSONObject catNum = cdfClient.getCatNum(accessToken);
+    public ResultData getCatNum(@RequestParam(required = false) String AccessToken){
+        JSONObject catNum = cdfClient.getCatNum(AccessToken);
         return  ResultData.ok(catNum);
     }
+
     @GetMapping("/inCat")
-    public ResultData inCat(@RequestParam(required = false) String accessToken,
+    public ResultData inCat(@RequestParam(required = false) String AccessToken,
                             @RequestParam(required = false) String skuId,
                             @RequestParam(required = false) Integer num){
-        JSONObject jsonObject = cdfClient.inCat(accessToken, new CdfInCatRequest(skuId, num));
+        JSONObject jsonObject = cdfClient.inCat(AccessToken, new CdfInCatRequest(skuId, num));
         if(jsonObject.get("success")==null || !jsonObject.getBoolean("success")){
             return ResultData.error(jsonObject.getString("msg"));
         }
         return ResultData.ok(jsonObject);
     }
+
     @GetMapping("/getProductInfo")
     public ResultData getProductInfo(@RequestParam(required = false) String productId){
         if(StringUtils.isBlank(productId)){

+ 27 - 9
src/main/java/com/cdf/controller/api/PageDataApiController.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.cdf.common.ResultData;
 import com.cdf.entity.PageData;
 import com.cdf.entity.TotalData;
+import com.cdf.httpClient.client.CdfClient;
+import com.cdf.httpClient.request.CdfChannelclick;
 import com.cdf.service.IPageDataService;
 import com.cdf.service.ITotalDataService;
 import com.cdf.util.DateUtil;
@@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import javax.naming.ldap.PagedResultsControl;
 import javax.servlet.http.HttpServletRequest;
 import java.sql.Time;
@@ -31,15 +34,18 @@ public class PageDataApiController {
     IPageDataService pageDataService;
     @Autowired
     ITotalDataService totalDataService;
+    @Resource
+    CdfClient cdfClient;
 
 
     @GetMapping("/Point")
-    public ResultData inOrOutPage(@RequestParam(required = false) String userId,
-                                  @RequestParam(required = false) String accessToken,
+    public ResultData point(@RequestParam(required = false) String userId,
+                                  @RequestParam(required = false) String AccessToken,
                                   @RequestParam(required = false) String cookieId,
                                   @RequestParam(required = false) String isMiniApp,
                                   @RequestParam(required = false) String whereUrl,
                                   @RequestParam(required = false) Integer type,
+                                  @RequestParam(required = false) String productId,
                                   HttpServletRequest request) throws Exception {
         LambdaQueryWrapper<PageData> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(PageData::getCdfCookieId,cookieId);
@@ -50,7 +56,7 @@ public class PageDataApiController {
         if(list.size() <=0){
             pageData = new PageData();
             pageData.setCdfUserId(userId);
-            pageData.setCdfToken(accessToken);
+            pageData.setCdfToken(AccessToken);
             pageData.setCdfCookieId(cookieId);
             pageData.setIsMiniApp(isMiniApp);
             pageData.setDay(DateUtil.getDay(new Date()));
@@ -60,10 +66,10 @@ public class PageDataApiController {
         }
         pageData.setUrl(whereUrl);
         switch (type){
-            case 0:
+            case 0:     //用户打开页面
                 pageData.setInPageTime(DateUtil.getDateTime(new Date()));
                 break;
-            case 1:
+            case 1:     //用户离开页面
                 if(pageData.getInPageTime() == null){
                     pageData.setInPageTime(DateUtil.getFirstDay(new Date()));
                 }
@@ -71,24 +77,36 @@ public class PageDataApiController {
                 long time = DateUtil.getDateTime(pageData.getInPageTime());
                 pageData.setStopTime(new Date().getTime() - time );
                 break;
-            case 2:
+            case 2:     //用户点击寻宝游戏
                 pageData.setIsClickGame(1);
                 break;
-            case 3:
+            case 3:     //用户点击商品详情
+                sendCdf(productId,cookieId,AccessToken,userId);
                 pageData.setIsClickShop(1);
                 break;
-            case 4:
+            case 4:     //用户点击场景点位
                 pageData.setStepNum( pageData.getStepNum() + 1);
                 break;
-            case 5:
+            case 5:     //用户点击真人视频
                 pageData.setVideoNum( pageData.getVideoNum() + 1);
                 break;
+            case 6:     //用户点击收藏
+            case 7:     //加入购物车
+                sendCdf(productId,cookieId,AccessToken,userId);
+                return ResultData.ok();
         }
         pageData.setUpdateTime(null);
         pageDataService.saveOrUpdate(pageData);
         return ResultData.ok();
     }
 
+    private void sendCdf(String productId,String cookieId,String accesstoken,String userId){
+        CdfChannelclick cdfChannelclick = new CdfChannelclick();
+        cdfChannelclick.setProductId(productId);
+        cdfClient.channelclick(cookieId,accesstoken,userId,cdfChannelclick);
+    }
+
+
     @GetMapping("/pageData")
     public ResultData getPageData(@RequestParam (required = false) String day,
                                   @RequestParam(required = false,defaultValue = "0") Integer type,

+ 16 - 0
src/main/java/com/cdf/httpClient/client/CdfClient.java

@@ -1,9 +1,11 @@
 package com.cdf.httpClient.client;
 
 import com.alibaba.fastjson.JSONObject;
+import com.cdf.httpClient.request.CdfChannelclick;
 import com.cdf.httpClient.request.CdfInCatRequest;
 import com.cdf.httpClient.response.cdf.*;
 import com.dtflys.forest.annotation.*;
+import org.apache.commons.lang3.StringUtils;
 
 @Address(basePath = "https://m.cdfmembers.com")
 public interface CdfClient {
@@ -55,4 +57,18 @@ public interface CdfClient {
             "ymt-pars: appid=71&accesstoken={accessToken}&mchId=600667208&language=zh_CN&format=json",
         })
     JSONObject inCat(@Var("accessToken") String accessToken, @JSONBody CdfInCatRequest request);
+    /**
+     * 上报商品来源
+     * 1,用户点击进入商品详情时
+     * 2,用户点击加入购物车时
+     * 3,用户点击加入收藏时
+     */
+    @Post(url = "/api/prodextra/channelclick",
+        headers = {
+            "app-key: h5sqBuyer_600667208",
+            "app-version: 6.6.88",
+            "cookieid: {cookieId}",
+            "ymt-pars: appid=71&accesstoken={accessToken}&userid={userId}&mchId=600667208&language=zh_CN&format=json",
+        })
+    JSONObject channelclick(@Var("cookieId") String cookieId, @Var("accessToken") String accessToken, @Var("userId")String userId, @JSONBody CdfChannelclick request);
 }

+ 9 - 0
src/main/java/com/cdf/httpClient/request/CdfChannelclick.java

@@ -0,0 +1,9 @@
+package com.cdf.httpClient.request;
+
+import lombok.Data;
+
+@Data
+public class CdfChannelclick {
+    private Integer channelSource = 1;
+    private String productId;
+}