123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- package com.cdf.controller.api;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.cdf.common.ResultCode;
- import com.cdf.common.ResultData;
- import com.cdf.entity.PageData;
- import com.cdf.entity.TotalData;
- import com.cdf.exception.BusinessException;
- 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;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import javax.annotation.Resource;
- import javax.naming.ldap.PagedResultsControl;
- import javax.servlet.http.HttpServletRequest;
- import javax.xml.transform.Result;
- import java.sql.Time;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.stream.Collectors;
- @RestController
- @RequestMapping("/api")
- public class PageDataApiController {
- @Autowired
- IPageDataService pageDataService;
- @Autowired
- ITotalDataService totalDataService;
- @Resource
- CdfClient cdfClient;
- @GetMapping("/point")
- 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,
- @RequestParam(required = false,defaultValue = "22") Integer deptId,
- HttpServletRequest request) throws Exception {
- LambdaQueryWrapper<PageData> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(PageData::getCdfCookieId,cookieId);
- wrapper.eq(PageData::getDay,DateUtil.getDay(new Date()));
- List<PageData> list = pageDataService.list(wrapper);
- PageData pageData;
- if(list.size() <=0){
- pageData = new PageData();
- pageData.setDeptId(deptId);
- pageData.setCdfUserId(userId);
- pageData.setCdfToken(AccessToken);
- pageData.setCdfCookieId(cookieId);
- pageData.setIsMiniApp(isMiniApp);
- pageData.setDay(DateUtil.getDay(new Date()));
- pageData.setUrl(whereUrl);
- }else {
- pageData = list.get(0);
- }
- pageData.setUrl(whereUrl);
- switch (type){
- case 0: //用戶打开页面
- pageData.setInPageTime(DateUtil.getDateTime(new Date()));
- break;
- case 1: //用戶离开页面
- if(pageData.getInPageTime() == null){
- pageData.setInPageTime(DateUtil.getFirstDay(new Date()));
- }
- pageData.setOutPageTime(DateUtil.getDateTime(new Date()));
- long time = DateUtil.getDateTime(pageData.getInPageTime());
- pageData.setStopTime(new Date().getTime() - time );
- break;
- case 2: //用戶点击寻宝游戏
- pageData.setIsClickGame(1);
- break;
- case 3: //用戶点击商品详情
- if(deptId == 22){
- sendCdf(productId,cookieId,AccessToken,userId);
- }
- pageData.setIsClickShop(1);
- break;
- case 4: //用戶点击場景点位
- pageData.setStepNum( pageData.getStepNum() + 1);
- break;
- case 5: //用戶点击真人视频
- pageData.setVideoNum( pageData.getVideoNum() + 1);
- break;
- case 6: //用戶点击收藏
- case 7: //加入购物车
- if(deptId == 22){
- 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){
- if(StringUtils.isEmpty(productId)){
- return;
- }
- 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,
- @RequestParam(required = false) String startDay,
- @RequestParam(required = false) String endDay) throws Exception {
- return ResultData.ok(totalDataService.getByType(type,day,startDay,endDay));
- }
- @GetMapping("/pageDataTime")
- public ResultData pageDataTime(@RequestParam(required = false) String startDay,
- @RequestParam(required = false) String endDay) {
- if(StringUtils.isEmpty(startDay) || StringUtils.isEmpty(endDay)){
- throw new BusinessException(ResultCode.PARAM_MISS);
- }
- return ResultData.ok(totalDataService.pageDataTime(startDay,endDay));
- }
- @PostMapping("/pageDataList")
- public ResultData pageDataList(@RequestBody JSONObject jsonObject) throws Exception {
- JSONArray jsonArray = jsonObject.getJSONArray("days");
- if(jsonArray == null || jsonArray.size() <=0){
- return ResultData.ok(new ArrayList<>());
- }
- List<String> days = new ArrayList(jsonArray);
- return ResultData.ok(totalDataService.getListByType(days));
- }
- }
|