From d28bed1a1275131a5ca37f7da37961e2b518ac07 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 26 八月 2019 13:44:00 +0800
Subject: [PATCH] 淘礼金创建异常处理

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserMsgController.java |  129 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 114 insertions(+), 15 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserMsgController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserMsgController.java
index 20423fc..ab01fe9 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserMsgController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserMsgController.java
@@ -39,6 +39,7 @@
 import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail;
 import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail;
 import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
+import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail.MsgTypeOrderTypeEnum;
 import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail;
 import com.yeshi.fanli.entity.bus.msg.UserMsgUnReadNum;
 import com.yeshi.fanli.entity.bus.msg.UserSystemMsg;
@@ -76,6 +77,9 @@
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TimeUtil;
+import com.yeshi.fanli.util.VersionUtil;
+import com.yeshi.fanli.util.account.UserUtil;
+import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
 import com.yeshi.fanli.util.factory.CommonGoodsFactory;
 import com.yeshi.fanli.util.factory.msg.UserMsgVOFactory;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@@ -189,8 +193,15 @@
 			List<MsgOrderDetail> detailList = msgOrderDetailService.listMsgOrderDetail(uid, page);
 			count = msgOrderDetailService.countMsgOrderDetail(uid);
 			if (detailList != null)
-				for (MsgOrderDetail detail : detailList)
-					list.add(UserMsgVOFactory.create(detail));
+				for (MsgOrderDetail detail : detailList) {
+					JSONObject params = new JSONObject();
+					params.put("orderNo", detail.getOrderId());
+					if (detail.getType() == MsgTypeOrderTypeEnum.share
+							|| detail.getType() == MsgTypeOrderTypeEnum.invite)
+						params.put("orderHideNo", UserUtil.filterOrderId(detail.getOrderId()));
+					list.add(UserMsgVOFactory.create(detail, jumpDetailV2Service.getByTypeCache("order_search"),
+							params));
+				}
 			break;
 		case MSG_TYPE_MONEY:
 			userMsgReadStateService.readMoneyMsg(uid);
@@ -251,6 +262,7 @@
 	 * @param uid
 	 * @param out
 	 */
+	@RequestSerializableByKey(key="#acceptData.device")
 	@RequestMapping(value = "getUnReadMsgCount", method = RequestMethod.POST)
 	public void getUnReadMsgCount(AcceptData acceptData, Long uid, PrintWriter out) {
 		GsonBuilder androidBuilder = new GsonBuilder().registerTypeAdapter(Integer.class,
@@ -292,7 +304,12 @@
 					data.put("totalCount", 0);
 				}
 			} catch (UserCustomSettingsException e) {
-				e.printStackTrace();
+			}
+
+			if (VersionUtil.greaterThan_1_5_50(acceptData.getPlatform(), acceptData.getVersion())) {
+				int totalCount = msgDeviceReadStateService.getUnReadCount(acceptData.getDevice(),
+						"android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2, MsgDeviceReadState.TYPE_KEFU);
+				data.put("totalCount", totalCount);
 			}
 
 			out.print(JsonUtil.loadTrueResult(data));
@@ -302,6 +319,12 @@
 
 		int totalCount = num.getTypeAccount() + num.getTypeInvite() + num.getTypeMoney() + num.getTypeOrder()
 				+ num.getTypeScore() + num.getTypeSystem() + num.getTypeOther();
+
+		// 1.5.50鍙婁互鍚庣殑鐗堟湰闇�瑕佹坊鍔犺澶囨湭璇绘秷鎭�
+		if (VersionUtil.greaterThan_1_5_50(acceptData.getPlatform(), acceptData.getVersion())) {
+			totalCount += msgDeviceReadStateService.getUnReadCount(acceptData.getDevice(),
+					"android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2, MsgDeviceReadState.TYPE_KEFU);
+		}
 
 		JSONObject data = null;
 		if ("android".equalsIgnoreCase(acceptData.getPlatform())) {
@@ -576,6 +599,35 @@
 		out.print(JsonUtil.loadTrueResult(root));
 	}
 
+	private UserCommonMsgVO getKeFuMsg(AcceptData acceptData) {
+		MsgDeviceReadState kefuState = msgDeviceReadStateService.getByDeviceAndPlatformAndType(
+				UserCommonMsgVO.TYPE_KEFU, acceptData.getDevice(),
+				acceptData.getPlatform().equalsIgnoreCase("android") ? 1 : 2);
+		// 浜哄伐瀹㈡湇
+		UserCommonMsgVO vo = new UserCommonMsgVO("http://img.flqapp.com/resource/msg/icon_kefu.png", "浜哄伐瀹㈡湇", new Date(),
+				UserCommonMsgVO.TYPE_KEFU, "", false, null, null, 0);
+		if (kefuState != null) {
+			vo.setUnReadCount(kefuState.getUnReadCount() == null ? 0 : kefuState.getUnReadCount());
+			if (!StringUtil.isNullOrEmpty(kefuState.getLatestContent()))
+				vo.setLatestMsg(kefuState.getLatestContent());
+
+			if (vo.getUnReadCount() != null && vo.getUnReadCount() > 0)
+				vo.setRead(false);
+			else
+				vo.setRead(true);
+
+			if (kefuState.getLatestContentTime() != null)
+				vo.setTime(kefuState.getLatestContentTime());
+
+		} else
+			vo.setRead(true);
+
+		if (StringUtil.isNullOrEmpty(vo.getLatestMsg()))
+			vo.setLatestMsg("[鐐瑰嚮鎵撳紑浜哄伐瀹㈡湇]");
+
+		return vo;
+	}
+
 	/**
 	 * 鑾峰彇娑堟伅鍒楄〃
 	 * 
@@ -585,6 +637,7 @@
 	 * @param type
 	 * @param out
 	 */
+	@RequestSerializableByKey(key="#acceptData.device")
 	@RequestMapping(value = "getHomeMsgListNew", method = RequestMethod.POST)
 	public void getHomeMsgListNew(AcceptData acceptData, Long uid, PrintWriter out) {
 		if (uid != null && uid == 0)
@@ -600,7 +653,7 @@
 		// 瀹樺浠诲姟
 		if (uid != null) {
 			MsgCommonDTO guanXuanMsg = msgConfigService.getGuanXuanMsg();
-			if (guanXuanMsg != null&&guanXuanMsg.getShow()==true) {
+			if (guanXuanMsg != null && guanXuanMsg.getShow() == true) {
 				boolean read = false;
 				UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
 				if (num != null && (num.getGuanXuanReadTime() != null
@@ -613,16 +666,14 @@
 				} else
 					commonMsgList.add(new UserCommonMsgVO(guanXuanMsg.getIcon(), guanXuanMsg.getTitle(),
 							guanXuanMsg.getUpdateTime(), UserCommonMsgVO.TYPE_GUANXUAN, guanXuanMsg.getContent(), read,
-							guanXuanMsg.getJumpDetail(), guanXuanMsg.getParams()));
+							guanXuanMsg.getJumpDetail(), guanXuanMsg.getParams(), 0));
 			}
 		}
 
 		// 杩斿埄鍒稿皬鍔╂墜
 		MsgCommonDTO zhuShouMsg = msgConfigService.getZhuShouMsg();
-		if (zhuShouMsg != null&&zhuShouMsg.getShow()==true) {
-
+		if (zhuShouMsg != null && zhuShouMsg.getShow() == true) {
 			boolean read = false;
-
 			MsgDeviceReadState state = msgDeviceReadStateService.getByDeviceAndPlatformAndType(
 					UserCommonMsgVO.TYPE_ZHUSHOU, acceptData.getDevice(),
 					acceptData.getPlatform().equalsIgnoreCase("android") ? 1 : 2);
@@ -637,12 +688,11 @@
 			} else
 				commonMsgList.add(new UserCommonMsgVO(zhuShouMsg.getIcon(), zhuShouMsg.getTitle(),
 						zhuShouMsg.getUpdateTime(), UserCommonMsgVO.TYPE_ZHUSHOU, zhuShouMsg.getContent(), read,
-						zhuShouMsg.getJumpDetail(), zhuShouMsg.getParams()));
+						zhuShouMsg.getJumpDetail(), zhuShouMsg.getParams(), 0));
 		}
 
 		// 浜哄伐瀹㈡湇
-		commonMsgList.add(new UserCommonMsgVO("http://img.flqapp.com/resource/msg/icon_kefu.png", "浜哄伐瀹㈡湇", new Date(),
-				UserCommonMsgVO.TYPE_KEFU, "", false, null, null));
+		commonMsgList.add(getKeFuMsg(acceptData));
 
 		// 鎺ㄨ崘璁板綍
 		DeviceActive deviceActive = deviceActiveService.getDeviceByDeviceAndPlatform(acceptData.getDevice(),
@@ -657,12 +707,12 @@
 						acceptData.getPlatform().equalsIgnoreCase("android") ? 1 : 2);
 				boolean read = false;
 				if (state != null && state.getReadTime() != null
-						&& list.get(0).getCreateTime().getTime() < state.getReadTime().getTime())
+						&& list.get(0).getPushTime().getTime() < state.getReadTime().getTime())
 					read = true;
 
 				commonMsgList.add(new UserCommonMsgVO("http://img.flqapp.com/resource/msg/icon_recommend.png", "鎺ㄨ崘璁板綍",
-						list.get(0).getCreateTime(), UserCommonMsgVO.TYPE_RECOMMEND, list.get(0).getContent(), read,
-						jumpDetailV2Service.getByTypeCache("recommend_list"), null));
+						list.get(0).getPushTime(), UserCommonMsgVO.TYPE_RECOMMEND, list.get(0).getContent(), read,
+						jumpDetailV2Service.getByTypeCache("recommend_list"), null, 0));
 			}
 		}
 
@@ -695,7 +745,13 @@
 			List<MsgOrderDetail> detailList = msgOrderDetailService.listMsgOrderDetail(uid, page);
 			if (detailList != null && detailList.size() > 0) {
 				for (MsgOrderDetail detail : detailList) {
-					UserMsgVO userMsgVO = UserMsgVOFactory.create(detail);
+					JSONObject params = new JSONObject();
+					params.put("orderNo", detail.getOrderId());
+					if (detail.getType() == MsgTypeOrderTypeEnum.share
+							|| detail.getType() == MsgTypeOrderTypeEnum.invite)
+						params.put("orderHideNo", UserUtil.filterOrderId(detail.getOrderId()));
+					UserMsgVO userMsgVO = UserMsgVOFactory.create(detail,
+							jumpDetailV2Service.getByTypeCache("order_search"), params);
 					userMsgVO.setType(MSG_TYPE_ORDER);
 					list.add(userMsgVO);
 				}
@@ -787,6 +843,29 @@
 								"http://img.flqapp.com/resource/msg/icon_msg_system.png",
 								getTimeDesc(new Date(), usm.getCreateTime()), num.getTypeSystem()));
 			}
+		}
+
+		/**
+		 * 鎻愰啋澶у浘
+		 */
+		MsgCommonDTO notify = msgConfigService.getNotifyMsg();
+
+		if (notify != null && notify.getShow() == true) {
+			boolean read = false;
+			MsgDeviceReadState state = msgDeviceReadStateService.getByDeviceAndPlatformAndType(
+					UserCommonMsgVO.TYPE_NOTIFY, acceptData.getDevice(),
+					acceptData.getPlatform().equalsIgnoreCase("android") ? 1 : 2);
+			if (state != null && state.getReadTime() != null
+					&& zhuShouMsg.getUpdateTime().getTime() < state.getReadTime().getTime())
+				read = true;
+			if (notify.getJumpDetail() == null)
+				read = true;
+			// 鏌ヨ鏄惁宸茶
+			UserCommonMsgVO vo = new UserCommonMsgVO(notify.getIcon(), notify.getTitle(), notify.getUpdateTime(),
+					UserCommonMsgVO.TYPE_NOTIFY, notify.getContent(), read, notify.getJumpDetail(), notify.getParams(),
+					0);
+			vo.setPicture(notify.getPicture());
+			root.put("notifyMsg", builder.create().toJson(vo));
 		}
 
 		root.put("list", builder.create().toJson(listCenter));
@@ -935,4 +1014,24 @@
 		out.print(JsonUtil.loadTrueResult(""));
 	}
 
+	/**
+	 * 涓婁紶鏈�杩戠殑瀹㈡湇娑堟伅
+	 * 
+	 * @param acceptData
+	 * @param content
+	 * @param time
+	 * @param out
+	 */
+	@RequestMapping(value = "uploadLatestKeFuMsg", method = RequestMethod.POST)
+	public void uploadLatestKeFuMsg(AcceptData acceptData, String content, Long datetime, PrintWriter out) {
+
+		if (StringUtil.isNullOrEmpty(content) || datetime == null) {
+			out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶅畬鏁�"));
+			return;
+		}
+		msgDeviceReadStateService.addUnreadDeviceMsg(MsgDeviceReadState.TYPE_KEFU, acceptData.getDevice(),
+				"android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2, 0, content, new Date(datetime));
+		out.print(JsonUtil.loadTrueResult(""));
+	}
+
 }

--
Gitblit v1.8.0