From 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 09 五月 2020 21:41:27 +0800
Subject: [PATCH] 2.1需求

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v1/PushController.java |  230 +++++++++++++++++++++++++++++---------------------------
 1 files changed, 119 insertions(+), 111 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 9c055d3..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;
 
@@ -14,7 +15,9 @@
 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;
@@ -29,6 +32,7 @@
 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;
@@ -44,6 +48,8 @@
 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;
@@ -95,6 +101,10 @@
 
 	@Resource
 	private DeviceTokenXMService deviceTokenXMService;
+	
+	@Resource
+	private GoodsEvaluateService goodsEvaluateService;
+	
 
 	@RequestMapping(value = "callback", method = RequestMethod.POST)
 	public void callback(AcceptData acceptData, String pushId, PrintWriter out) {
@@ -199,127 +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
-					CommonGoods commonGoods = 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 = pushGoodsGroup.getCommonGoods();
-									if (commonGoods != null) {
-										picture = commonGoods.getPicture();
-									}
-								}
-							}
-						} catch (PushGoodsGroupException e) {
-							e.printStackTrace();
-						}
-					}
-
-					result.put("picture", TbImgUtil.getTBSize320Img(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(commonGoods.getGoodsId(),
-								commonGoods.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=" + pushId;
-
-						params = JumpDetailParamsFactory.createWEBParams(url);
-
-						// 璺宠浆鎺ㄨ崘璇︽儏
-						jumpDetail = jumpDetailV2Service.getByTypeCache("web",
-								Constant.getPlatformCode(acceptData.getPlatform()),
-								Integer.parseInt(acceptData.getVersion()));
-					}
-					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() {
@@ -327,7 +338,6 @@
 				public void run() {
 					try {
 						Long deviceId = deviceActive.getId();
-
 						for (PushGoods pushGoods : listPush) {
 							List<PushGoodsRecord> listRecord = pushGoodsRecordService
 									.listByPushIdAndDeviceId(pushGoods.getId(), deviceId);
@@ -342,11 +352,9 @@
 							pushGoodsRecord.setDeviceActive(deviceActive);
 							pushGoodsRecordService.insert(pushGoodsRecord);
 						}
-
 					} catch (Exception e) {
 						e.printStackTrace();
 					}
-
 				}
 			});
 		}

--
Gitblit v1.8.0