From 374b2786507c2d5242dd0ff0676e8d529b6940b9 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 12 五月 2020 21:08:54 +0800
Subject: [PATCH] 统计调整
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/PushController.java | 290 ++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 180 insertions(+), 110 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/PushController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/PushController.java
index a443351..546fe93 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/PushController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/PushController.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.controller.client.v1;
import java.io.PrintWriter;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -11,21 +12,32 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.taobao.TbImgUtil;
import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.activity.ActivityUser;
import com.yeshi.fanli.entity.common.JumpDetailV2;
+import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.push.DeviceActive;
+import com.yeshi.fanli.entity.push.DeviceTokenOPPO;
+import com.yeshi.fanli.entity.push.DeviceTokenVIVO;
+import com.yeshi.fanli.entity.push.DeviceTokenXM;
import com.yeshi.fanli.entity.push.PushGoods;
import com.yeshi.fanli.entity.push.PushGoodsGroup;
import com.yeshi.fanli.entity.push.PushGoodsRecord;
import com.yeshi.fanli.entity.system.BusinessSystem;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.exception.push.PushGoodsGroupException;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
import com.yeshi.fanli.service.inter.push.DeviceActiveService;
import com.yeshi.fanli.service.inter.push.DeviceTokenHWService;
+import com.yeshi.fanli.service.inter.push.DeviceTokenOPPOService;
+import com.yeshi.fanli.service.inter.push.DeviceTokenVIVOService;
+import com.yeshi.fanli.service.inter.push.DeviceTokenXMService;
import com.yeshi.fanli.service.inter.push.IOSPushService;
import com.yeshi.fanli.service.inter.push.PushGoodsGroupService;
import com.yeshi.fanli.service.inter.push.PushGoodsRecordService;
@@ -34,7 +46,10 @@
import com.yeshi.fanli.service.inter.push.PushService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
import com.yeshi.fanli.util.factory.JumpDetailParamsFactory;
+import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
+import com.yeshi.fanli.vo.push.PushRecommendVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -42,7 +57,6 @@
@Controller
@RequestMapping(value = "api/v1/push")
public class PushController {
-
@Resource
private BusinessSystemService businessSystemService;
@@ -78,6 +92,19 @@
@Resource(name = "taskExecutor")
private TaskExecutor executor;
+
+ @Resource
+ private DeviceTokenOPPOService deviceTokenOPPOService;
+
+ @Resource
+ private DeviceTokenVIVOService deviceTokenVIVOService;
+
+ @Resource
+ private DeviceTokenXMService deviceTokenXMService;
+
+ @Resource
+ private GoodsEvaluateService goodsEvaluateService;
+
@RequestMapping(value = "callback", method = RequestMethod.POST)
public void callback(AcceptData acceptData, String pushId, PrintWriter out) {
@@ -120,7 +147,7 @@
* @param uid
* @param deviceToken
*/
-
+ @RequestSerializableByKey(key = "#acceptData.device")
@RequestMapping(value = "/uidBindDeviceToken", method = RequestMethod.POST)
public void uidBindIOSDeviceToken(AcceptData acceptData, Long uid, String deviceToken, PrintWriter out) {
if (uid != null && uid != 0 && !StringUtil.isNullOrEmpty(deviceToken)) {
@@ -154,9 +181,11 @@
* -鐢ㄦ埛ID
* @param out
*/
+ @RequestSerializableByKey(key = "#acceptData.device")
@RequestMapping(value = "/bindHWPush", method = RequestMethod.POST)
public void bindHWDeviceToken(AcceptData acceptData, String token, Long uid, PrintWriter out) {
- deviceTokenHWService.addDeviceToken(token, acceptData.getDevice(), uid);
+ deviceTokenHWService.addDeviceToken(token, acceptData.getDevice(), uid,
+ Integer.parseInt(acceptData.getVersion()));
out.print(JsonUtil.loadTrueResult("鎴愬姛"));
}
@@ -180,123 +209,128 @@
*/
@RequestMapping(value = "/gethistory", method = RequestMethod.POST)
public void getHistory(AcceptData acceptData, Long uid, String deviceToken, int page, PrintWriter out) {
-
long count = 0;
- List<PushGoods> list = null;
JSONArray resultList = new JSONArray();
-
DeviceActive deviceActive = deviceActiveService.getDeviceByDeviceAndPlatform(acceptData.getDevice(),
deviceToken, acceptData.getPlatform());
- if (deviceActive != null) {
-
- // 璁惧娉ㄥ唽鏃堕棿
- Date createTime = deviceActive.getCreateTime();
- count = pushGoodsService.countHistoryByPushTime(uid, createTime);
-
- int pageSize = Constant.PAGE_SIZE;
-
- list = pushGoodsService.listHistoryByPushTime((page - 1) * pageSize, pageSize, uid, createTime);
- if (list != null && list.size() > 0) {
- for (PushGoods pushGoods : list) {
- JSONObject result = new JSONObject();
-
- Long pushId = pushGoods.getId();
- String picture = pushGoods.getPicture();
- String alertContent = pushGoods.getAlertContent();
- Date pushTime = pushGoods.getPushTime();
-
- result.put("content", alertContent);
- result.put("pushtime", pushTime.getTime());
-
- // 缁熻鍟嗗搧鏁伴噺
- long totalgoods = 0;
- // 鍟嗗搧id
- Long auctionId = null;
- if (StringUtil.isNullOrEmpty(picture)) {
- try {
- List<PushGoodsGroup> listGroup = pushGoodsGroupService.getAllInfoByPushId(pushId);
-
- if (listGroup != null && listGroup.size() > 0) {
-
- totalgoods = listGroup.size();
-
- PushGoodsGroup pushGoodsGroup = listGroup.get(0);
- if (pushGoodsGroup != null) {
- CommonGoods commonGoods = pushGoodsGroup.getCommonGoods();
- if (commonGoods != null) {
- picture = commonGoods.getPicture();
- auctionId = commonGoods.getGoodsId();
- }
- }
- }
- } catch (PushGoodsGroupException e) {
- e.printStackTrace();
- }
- }
-
- result.put("picture", picture);
-
- String fontColor1 = "#666666";
- String fontColor2 = "#E5005C";
- JSONArray array = new JSONArray();
-
- JSONObject contentJson1 = new JSONObject();
- contentJson1.put("color", fontColor1);
- contentJson1.put("content", "鏈鎺ㄨ崘鍏�");
-
- JSONObject contentJson2 = new JSONObject();
- contentJson2.put("color", fontColor2);
- contentJson2.put("content", totalgoods);
-
- JSONObject contentJson3 = new JSONObject();
- contentJson3.put("color", fontColor1);
- contentJson3.put("content", "涓晢鍝�");
-
- array.add(contentJson1);
- array.add(contentJson2);
- array.add(contentJson3);
-
- result.put("totalwords", array);
-
- String params = "";
-
- JumpDetailV2 jumpDetail = null;
- if (totalgoods == 1) {
-
- params = JumpDetailParamsFactory.createGoodsParams(auctionId);
- // 鍗曚釜鍟嗗搧璺宠浆鍟嗗搧璇︽儏
- jumpDetail = jumpDetailV2Service.getByTypeCache("goodsdetail");
-
- } else {
- String url = configService.get("push_goods_details");
- if (url == null) {
- url = "";
- }
- url = url + "?id=" + pushId;
-
- params = JumpDetailParamsFactory.createWEBParams(url);
-
- // 璺宠浆鎺ㄨ崘璇︽儏
- jumpDetail = jumpDetailV2Service.getByTypeCache("web");
- }
- result.put("params", params);
- result.put("jumpDetail", jumpDetail);
-
- resultList.add(result);
- }
- }
+ if (deviceActive == null) {
+ JSONObject resultJson = new JSONObject();
+ resultJson.put("count", count);
+ resultJson.put("result_list", resultList);
+ out.print(JsonUtil.loadTrueResult(resultJson));
+ return;
}
+ // 璁惧娉ㄥ唽鏃堕棿
+ Date createTime = deviceActive.getCreateTime();
+ count = pushGoodsService.countHistoryByPushTime(uid, createTime);
+
+ int pageSize = Constant.PAGE_SIZE;
+ List<PushGoods> list = pushGoodsService.listHistoryByPushTime((page - 1) * pageSize, pageSize, uid, createTime);
+ if (list == null)
+ list = new ArrayList<>();
+
+ for (PushGoods pushGoods : list) {
+ Long id = pushGoods.getId();
+
+ PushRecommendVO vo = new PushRecommendVO();
+ vo.setTitle(pushGoods.getTitle());
+ vo.setContent(pushGoods.getContent());
+ vo.setPicture(pushGoods.getPicture());
+ vo.setPushtime(pushGoods.getPushTime().getTime());
+
+ Integer scanNum = pushGoods.getScanNum();
+ if (scanNum == null) {
+ vo.setScanNum("0");
+ } else if (scanNum >= 10000) {
+ double num = scanNum;
+ String numMidea = String.format("%.1f", num / 10000);
+ vo.setScanNum(numMidea + "涓�");
+ } else {
+ vo.setScanNum(scanNum +"");
+ }
+
+
+ String params = "";
+ String nickName = "";
+ JumpDetailV2 jumpDetail = null;
+ List<ClientTextStyleVO> totalwords = new ArrayList<ClientTextStyleVO>();
+
+ Integer type = pushGoods.getType();
+ if (type == null || type == PushGoods.TYPE_GOODS) {
+ long totalgoods = 0;
+ CommonGoods goods = null;
+ try {
+ List<PushGoodsGroup> listGroup = pushGoodsGroupService.getAllInfoByPushId(id);
+ if (listGroup != null && listGroup.size() > 0) {
+ totalgoods = listGroup.size();
+ PushGoodsGroup pushGoodsGroup = listGroup.get(0);
+ if (pushGoodsGroup != null) {
+ goods = pushGoodsGroup.getCommonGoods();
+ }
+ }
+ } catch (PushGoodsGroupException e) {
+ e.printStackTrace();
+ }
+
+ if (goods != null && StringUtil.isNullOrEmpty(vo.getPicture())) {
+ vo.setPicture(TbImgUtil.getTBSize320Img(goods.getPicture()));
+ }
+
+ if (totalgoods == 1) {
+ params = JumpDetailParamsFactory.createGoodsParams(goods.getGoodsId(), goods.getGoodsType());
+ jumpDetail = jumpDetailV2Service.getByTypeCache("goodsdetail",Constant.getPlatformCode(acceptData.getPlatform()),
+ Integer.parseInt(acceptData.getVersion()));
+ } else {
+ String url = configService.get(ConfigKeyEnum.pushGoodsDetails.getKey());
+ if (url == null) {
+ url = "";
+ }
+ url = url + "?id=" + id;
+
+ params = JumpDetailParamsFactory.createWEBParams(url);
+ jumpDetail = jumpDetailV2Service.getByTypeCache("web",Constant.getPlatformCode(acceptData.getPlatform()),
+ Integer.parseInt(acceptData.getVersion()));
+ }
+
+ totalwords.add(new ClientTextStyleVO("鏈鎺ㄨ崘鍏�", "#666666"));
+ totalwords.add(new ClientTextStyleVO(totalgoods + "", "#E5005C"));
+ totalwords.add(new ClientTextStyleVO("涓晢鍝�", "#666666"));
+ } else if (type == PushGoods.TYPE_ACTIVITY) {
+ GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(pushGoods.getOtherId());
+ if (goodsEvaluate != null) {
+ ActivityUser user = goodsEvaluate.getUser();
+ if (user != null) {
+ nickName = user.getNickName();
+ }
+ }
+
+ String url = configService.get(ConfigKeyEnum.pushActivityLink.getKey());
+ if (url == null) {
+ url = "";
+ }
+ url = url + "?id=" + id + "&otherId=" + pushGoods.getOtherId();
+ params = JumpDetailParamsFactory.createWEBParams(url);
+ jumpDetail = jumpDetailV2Service.getByTypeCache("web",
+ Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion()));
+ } else {
+ continue;
+ }
+ vo.setNickName(nickName);
+ vo.setParams(params);
+ vo.setJumpDetail(jumpDetail);
+ vo.setTotalwords(totalwords);
+ resultList.add(vo);
+ }
+
JSONObject resultJson = new JSONObject();
resultJson.put("count", count);
resultJson.put("result_list", resultList);
-
out.print(JsonUtil.loadTrueResult(resultJson));
- // 鍒楄〃鍙傛暟銆佽澶囧弬鏁颁俊鎭笉涓虹┖
- if (list != null && list.size() > 0 && deviceActive != null) {
+ if (list != null && list.size() > 0 && deviceActive != null) {
final List<PushGoods> listPush = list;
// 璁板綍璁块棶淇℃伅
executor.execute(new Runnable() {
@@ -304,7 +338,6 @@
public void run() {
try {
Long deviceId = deviceActive.getId();
-
for (PushGoods pushGoods : listPush) {
List<PushGoodsRecord> listRecord = pushGoodsRecordService
.listByPushIdAndDeviceId(pushGoods.getId(), deviceId);
@@ -319,14 +352,51 @@
pushGoodsRecord.setDeviceActive(deviceActive);
pushGoodsRecordService.insert(pushGoodsRecord);
}
-
} catch (Exception e) {
e.printStackTrace();
}
-
}
});
}
}
+ @RequestMapping("registerOppo")
+ public void registerOppo(AcceptData acceptData, String registerId, Long uid, PrintWriter out) {
+ DeviceActive deviceActive = deviceActiveService.getFirstActiveInfo(acceptData.getDevice());
+ if (deviceActive != null) {
+ DeviceTokenOPPO oppo = new DeviceTokenOPPO();
+ oppo.setDeviceActiveId(deviceActive.getId());
+ oppo.setRegisterId(registerId);
+ oppo.setUid(uid);
+ deviceTokenOPPOService.addDeviceTokenOPPO(oppo);
+ }
+ out.print(JsonUtil.loadTrueResult(""));
+ }
+
+ @RequestMapping("registerVivo")
+ public void registerVivo(AcceptData acceptData, String regId, Long uid, PrintWriter out) {
+ DeviceActive deviceActive = deviceActiveService.getFirstActiveInfo(acceptData.getDevice());
+ if (deviceActive != null) {
+ DeviceTokenVIVO vivo = new DeviceTokenVIVO();
+ vivo.setDeviceActiveId(deviceActive.getId());
+ vivo.setRegisterId(regId);
+ vivo.setUid(uid);
+ deviceTokenVIVOService.addDeviceTokenVIVO(vivo);
+ }
+ out.print(JsonUtil.loadTrueResult(""));
+ }
+
+ @RequestMapping("registerXM")
+ public void registerXM(AcceptData acceptData, String regId, Long uid, PrintWriter out) {
+ DeviceActive deviceActive = deviceActiveService.getFirstActiveInfo(acceptData.getDevice());
+ if (deviceActive != null) {
+ DeviceTokenXM xm = new DeviceTokenXM();
+ xm.setDeviceActiveId(deviceActive.getId());
+ xm.setRegisterId(regId);
+ xm.setUid(uid);
+ deviceTokenXMService.addDeviceToken(xm);
+ }
+ out.print(JsonUtil.loadTrueResult(""));
+ }
+
}
--
Gitblit v1.8.0