From b59fef5c00b15fdfdfa9d4be26e5bf6b41c75458 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期日, 23 二月 2020 00:16:52 +0800
Subject: [PATCH] 2.0.7相关服务端功能添加

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserMsgController.java |   93 ++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 80 insertions(+), 13 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 dbb57f0..b43ac36 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,9 +39,11 @@
 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;
+import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
 import com.yeshi.fanli.entity.common.JumpDetailV2;
 import com.yeshi.fanli.entity.goods.CommonGoods;
 import com.yeshi.fanli.entity.goods.RecommendUserGoods;
@@ -59,24 +61,28 @@
 import com.yeshi.fanli.service.inter.goods.RecommendUserGoodsService;
 import com.yeshi.fanli.service.inter.homemodule.SpecialService;
 import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
-import com.yeshi.fanli.service.inter.msg.MsgAccountDetailService;
+import com.yeshi.fanli.service.inter.money.msg.MsgMoneyDetailService;
 import com.yeshi.fanli.service.inter.msg.MsgConfigService;
 import com.yeshi.fanli.service.inter.msg.MsgDeviceReadStateService;
-import com.yeshi.fanli.service.inter.msg.MsgInviteDetailService;
-import com.yeshi.fanli.service.inter.msg.MsgMoneyDetailService;
-import com.yeshi.fanli.service.inter.msg.MsgOrderDetailService;
 import com.yeshi.fanli.service.inter.msg.MsgOtherDetailService;
 import com.yeshi.fanli.service.inter.msg.UserMsgReadStateService;
 import com.yeshi.fanli.service.inter.msg.UserSystemMsgService;
+import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService;
 import com.yeshi.fanli.service.inter.push.DeviceActiveService;
 import com.yeshi.fanli.service.inter.push.PushGoodsService;
 import com.yeshi.fanli.service.inter.user.UserCustomSettingsService;
+import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.service.inter.user.invite.MsgInviteDetailService;
+import com.yeshi.fanli.service.inter.user.msg.MsgAccountDetailService;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisKeyEnum;
 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;
@@ -152,6 +158,9 @@
 	@Resource
 	private MsgDeviceReadStateService msgDeviceReadStateService;
 
+	@Resource
+	private UserInfoExtraService userInfoExtraService;
+
 	// 娑堟伅鐨勭被鍨�
 	final static String MSG_TYPE_ORDER = "order";
 	final static String MSG_TYPE_MONEY = "money";
@@ -193,6 +202,9 @@
 				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));
 				}
@@ -256,6 +268,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,
@@ -304,7 +317,7 @@
 						"android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2, MsgDeviceReadState.TYPE_KEFU);
 				data.put("totalCount", totalCount);
 			}
-
+			data.put("mineCount", 0);
 			out.print(JsonUtil.loadTrueResult(data));
 			return;
 		}
@@ -326,6 +339,18 @@
 			data = JSONObject.fromObject(JsonUtil.getApiCommonGson().toJson(num));
 		}
 		data.put("totalCount", totalCount);
+		// "鎴戠殑"閫夐」瑙掓爣
+		int welfareCenterNews = 0;
+		if (uid != null) {
+			UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+			if (userInfoExtra != null) {
+				if (userInfoExtra.getCouponNews() != null) {
+					welfareCenterNews = userInfoExtra.getCouponNews();
+				}
+			}
+		}
+
+		data.put("mineCount", welfareCenterNews);
 
 		try {
 			UserSettingsVO vo = userCustomSettingsService.getMySettings(uid);
@@ -379,7 +404,7 @@
 	}
 
 	private void addRecommendGoods(Long uid, String device, String imei, String idfa) {
-		TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(1, 50, imei, idfa);
+		TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(1, 50, imei, idfa,"");
 		if (result != null && result.getTaoBaoGoodsBriefs() != null) {
 			for (int i = 0; i < result.getTaoBaoGoodsBriefs().size(); i++) {
 				if (result.getTaoBaoGoodsBriefs().get(i).getCouponAmount() == null
@@ -468,6 +493,9 @@
 	public void getHomeMsgList(AcceptData acceptData, Long uid, int page, HttpSession session, PrintWriter out) {
 		if (uid != null && uid == 0)
 			uid = null;
+		if (uid != null)
+			userSystemMsgService.syncSystemZNX(uid);
+
 		String device = acceptData.getDevice();
 		if (device == null || device.trim().length() == 0) {
 			out.print(JsonUtil.loadFalseResult("璁惧鍙蜂笉鑳戒负绌�"));
@@ -492,7 +520,7 @@
 			}
 
 			// String key = "recommend-goods-user-" + uid;
-			String key = "recommend-goods-user-" + device;
+			String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.recommendGoodsUser, device);
 			if (Constant.IS_OUTNET) {
 				if (canAdd && StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
 					if (Constant.IS_OUTNET)
@@ -567,7 +595,9 @@
 			// 鍒涘缓鏃堕棿鍦�28鍙峰悗鐨勬墠鏈夋柊浜烘杩�
 			if ((time > TimeUtil.convertToTimeTemp("2019-01-28", "yyyy-MM-dd") || uid == null)) {
 				UserHomeMsgVO vo = new UserHomeMsgVO();
-				vo.setContent("鎭枩浣狅紝鎴愪负杩斿埄鍒哥殑鐢ㄦ埛\n鐙浼樻儬鍒稿府浣犵渷閽憋紱\n鍙備笌濂栭噾娲诲姩甯綘璧氶挶锛沑n璁╄繑鍒╁埜鎴愪负浣犵殑鐪侀挶鍔╂墜鍚э紒");
+				vo.setContent(String.format("鎭枩浣狅紝鎴愪负%s鐨勭敤鎴穃n鐙浼樻儬鍒稿府浣犵渷閽憋紱\n鍙備笌濂栭噾娲诲姩甯綘璧氶挶锛沑n璁�%s鎴愪负浣犵殑鐪侀挶鍔╂墜鍚э紒",
+						Constant.getAppName(acceptData.getPlatform(), acceptData.getVersion()),
+						Constant.getAppName(acceptData.getPlatform(), acceptData.getVersion())));
 				vo.setTitle("鏂颁汉娆㈣繋");
 				vo.setCreateTime(getTimeDesc(now, new Date(time)));
 				vo.setType(UserHomeMsgVO.TYPE_WELCOME);
@@ -630,10 +660,14 @@
 	 * @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)
 			uid = null;
+		if (uid != null) {
+			userSystemMsgService.syncSystemZNX(uid);
+		}
 
 		List<UserMsgCenter> listCenter = new ArrayList<>();
 
@@ -662,7 +696,7 @@
 			}
 		}
 
-		// 杩斿埄鍒稿皬鍔╂墜
+		// 鏉挎牀蹇渷灏忓姪鎵�
 		MsgCommonDTO zhuShouMsg = msgConfigService.getZhuShouMsg();
 		if (zhuShouMsg != null && zhuShouMsg.getShow() == true) {
 			boolean read = false;
@@ -699,11 +733,11 @@
 						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,
+						list.get(0).getPushTime(), UserCommonMsgVO.TYPE_RECOMMEND, list.get(0).getContent(), read,
 						jumpDetailV2Service.getByTypeCache("recommend_list"), null, 0));
 			}
 		}
@@ -713,7 +747,10 @@
 		// list = pushGoodsService.listHistoryByPushTime(0, 1, uid, createTime);
 
 		// 1銆佹椿鍔ㄥ尯鍩�
-		List<Special> listSpecial = specialService.listByPlaceKey("msg_activities");
+		int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
+
+		List<Special> listSpecial = specialService.listByPlaceKey("msg_activities", platformCode,
+				Integer.parseInt(acceptData.getVersion()));
 		if (listSpecial != null && listSpecial.size() > 0) {
 			for (Special special : listSpecial) {
 
@@ -739,6 +776,9 @@
 				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()));
 					UserMsgVO userMsgVO = UserMsgVOFactory.create(detail,
 							jumpDetailV2Service.getByTypeCache("order_search"), params);
 					userMsgVO.setType(MSG_TYPE_ORDER);
@@ -808,7 +848,10 @@
 		if ((time > TimeUtil.convertToTimeTemp("2019-01-28", "yyyy-MM-dd") || uid == null)) {
 			Map<String, Object> map = new HashMap<String, Object>();
 			map.put("title", "鏂颁汉娆㈣繋");
-			map.put("content", "鎭枩浣狅紝鎴愪负杩斿埄鍒哥殑鐢ㄦ埛\n鐙浼樻儬鍒稿府浣犵渷閽憋紱\n鍙備笌濂栭噾娲诲姩甯綘璧氶挶锛沑n璁╄繑鍒╁埜鎴愪负浣犵殑鐪侀挶鍔╂墜鍚э紒");
+			map.put("content",
+					String.format("鎭枩浣狅紝鎴愪负%s鐨勭敤鎴穃n鐙浼樻儬鍒稿府浣犵渷閽憋紱\n鍙備笌濂栭噾娲诲姩甯綘璧氶挶锛沑n璁�%s鎴愪负浣犵殑鐪侀挶鍔╂墜鍚э紒",
+							Constant.getAppName(acceptData.getPlatform(), acceptData.getVersion()),
+							Constant.getAppName(acceptData.getPlatform(), acceptData.getVersion())));
 			map.put("createTime", new Date(time));
 			UserMsgCenter msgCenternre = new UserMsgCenter();
 			msgCenternre.setWelcomeMsg(map);
@@ -834,6 +877,30 @@
 			}
 		}
 
+		/**
+		 * 鎻愰啋澶у浘
+		 */
+		if (!"douyin".equalsIgnoreCase(acceptData.getChannel())) {
+			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));
 		root.put("commonList", builder.create().toJson(commonMsgList));
 		root.put("count", listCenter.size());

--
Gitblit v1.8.0