From d1f26741bddf6f512d62c0100d42c52be8d37e76 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 06 二月 2021 15:35:40 +0800
Subject: [PATCH] 工具类优化
---
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserMsgController.java | 729 ++++++++++++++++++++++++++++---------------------------
1 files changed, 372 insertions(+), 357 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserMsgController.java b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserMsgController.java
index 6fa7a22..0491428 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserMsgController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserMsgController.java
@@ -1,357 +1,372 @@
-package com.yeshi.fanli.controller.wxmp.v1;
-
-import java.io.PrintWriter;
-import java.lang.reflect.Type;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.yeshi.utils.BigDecimalUtil;
-import org.yeshi.utils.JsonUtil;
-
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonPrimitive;
-import com.google.gson.JsonSerializationContext;
-import com.google.gson.JsonSerializer;
-import com.yeshi.fanli.dto.msg.MsgCommonDTO;
-import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail;
-import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState;
-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.common.JumpDetailV2;
-import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
-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.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.user.invite.MsgInviteDetailService;
-import com.yeshi.fanli.service.inter.user.msg.MsgAccountDetailService;
-import com.yeshi.fanli.util.JumpDetailUtil;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.TimeUtil;
-import com.yeshi.fanli.util.account.UserUtil;
-import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
-import com.yeshi.fanli.util.factory.msg.UserMsgVOFactory;
-import com.yeshi.fanli.vo.msg.UserCommonMsgVO;
-import com.yeshi.fanli.vo.msg.UserMsgCenter;
-import com.yeshi.fanli.vo.msg.UserMsgVO;
-import com.yeshi.fanli.vo.msg.UserSystemMsgVO;
-
-import net.sf.json.JSONObject;
-
-@Controller("WXMPUserMsgController")
-@RequestMapping("/wxmp/api/v1/msg")
-public class UserMsgController {
-
- @Resource
- private MsgOrderDetailService msgOrderDetailService;
-
- @Resource
- private MsgMoneyDetailService msgMoneyDetailService;
-
- @Resource
- private MsgInviteDetailService msgInviteDetailService;
-
- @Resource
- private MsgAccountDetailService msgAccountDetailService;
-
- @Resource
- private MsgOtherDetailService msgOtherDetailService;
-
- @Resource
- private UserMsgReadStateService userMsgReadStateService;
-
- @Resource
- private UserSystemMsgService userSystemMsgService;
-
- @Resource
- private JumpDetailV2Service jumpDetailV2Service;
-
- @Resource
- private MsgConfigService msgConfigService;
-
- @Resource
- private MsgDeviceReadStateService msgDeviceReadStateService;
-
-
- // 娑堟伅鐨勭被鍨�
- final static String MSG_TYPE_ORDER = "order";
- final static String MSG_TYPE_MONEY = "money";
- final static String MSG_TYPE_ACCOUNT = "account";
- final static String MSG_TYPE_INVITE = "invite";
- final static String MSG_TYPE_OTHER = "other";
-
-
-
- /**
- * 娑堟伅鍒楄〃
- * @param acceptData
- * @param uid
- * @param page
- * @param type
- * @param out
- */
- @RequestSerializableByKey(key = "#acceptData.device")
- @RequestMapping(value = "getMsgList", method = RequestMethod.POST)
- public void getMsgList(AcceptData acceptData, Long uid, PrintWriter out) {
- if (uid != null && uid == 0)
- uid = null;
- if (uid != null) {
- userSystemMsgService.syncSystemZNX(uid);
- }
-
- List<UserMsgCenter> listCenter = new ArrayList<>();
-
- // 鍗曟潯娑堟伅
- List<UserCommonMsgVO> commonMsgList = new ArrayList<>();
-
- long currentTime = System.currentTimeMillis();
-
- // 鏉挎牀蹇渷灏忓姪鎵�
- MsgCommonDTO zhuShouMsg = msgConfigService.getZhuShouMsg();
- if (zhuShouMsg != null && zhuShouMsg.getShow() == true) {
- boolean read = false;
- MsgDeviceReadState state = msgDeviceReadStateService.getByDeviceAndPlatformAndType(
- UserCommonMsgVO.TYPE_ZHUSHOU, acceptData.getDevice(),
- acceptData.getPlatform().equalsIgnoreCase("android") ? 1 : 2);
- if (state != null && state.getReadTime() != null
- && zhuShouMsg.getUpdateTime().getTime() < state.getReadTime().getTime())
- read = true;
- // 鏌ヨ鏄惁宸茶
-
- if ((zhuShouMsg.getStartTime() != null && currentTime < zhuShouMsg.getStartTime().getTime())
- || (zhuShouMsg.getEndTime() != null && currentTime > zhuShouMsg.getEndTime().getTime())) {
- // 涓嶆樉绀�
- } else {
- JSONObject params = null;
- if (StringUtil.isNullOrEmpty(zhuShouMsg.getParams())) {
- params = JSONObject.fromObject(zhuShouMsg.getParams());
- }
- JumpDetailV2 wxmpJumDetail = JumpDetailUtil.getWXMPJumDetail(zhuShouMsg.getJumpDetail(), params);
-
- commonMsgList.add(new UserCommonMsgVO(zhuShouMsg.getIcon(), zhuShouMsg.getTitle(),
- zhuShouMsg.getUpdateTime(), UserCommonMsgVO.TYPE_ZHUSHOU, zhuShouMsg.getContent(), read,
- wxmpJumDetail, null, 0));
-
-
- }
- }
-
- // 2銆佹秷鎭尯鍩�
- if (uid != null && uid > 0) {
- int page = 1;
- List<UserMsgVO> list = new ArrayList<>();
- List<MsgOrderDetail> detailList = msgOrderDetailService.listMsgOrderDetail(uid, page);
- if (detailList != null && detailList.size() > 0) {
- 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()));
-
- JumpDetailV2 wxmpJumDetail = JumpDetailUtil.getWXMPJumDetail(jumpDetailV2Service.getByTypeCache("order_search"), params);
-
- UserMsgVO userMsgVO = UserMsgVOFactory.create(detail, wxmpJumDetail, params);
- userMsgVO.setType(MSG_TYPE_ORDER);
- list.add(userMsgVO);
- }
- }
-
- List<MsgMoneyDetail> detailList1 = msgMoneyDetailService.listMsgMoneyDetail(uid, page);
- if (detailList1 != null && detailList1.size() > 0) {
- for (MsgMoneyDetail detail : detailList1) {
- UserMsgVO userMsgVO = UserMsgVOFactory.create(detail);
- userMsgVO.setType(MSG_TYPE_MONEY);
- list.add(userMsgVO);
- }
- }
-
- List<MsgAccountDetail> detailList2 = msgAccountDetailService.listMsgAccountDetail(uid, page);
- if (detailList2 != null && detailList2.size() > 0) {
- for (MsgAccountDetail detail : detailList2) {
- UserMsgVO userMsgVO = UserMsgVOFactory.create(detail);
- userMsgVO.setType(MSG_TYPE_ACCOUNT);
- list.add(userMsgVO);
- }
- }
-
- List<MsgInviteDetail> detailList3 = msgInviteDetailService.listMsgInviteDetail(uid, page);
- if (detailList3 != null && detailList3.size() > 0) {
- for (MsgInviteDetail detail : detailList3) {
- UserMsgVO userMsgVO = UserMsgVOFactory.create(detail);
- if (userMsgVO != null) {
- userMsgVO.setType(MSG_TYPE_INVITE);
- list.add(userMsgVO);
- }
- }
- }
-
- List<MsgOtherDetail> detailList4 = msgOtherDetailService.listMsgOtherDetail(uid, page);
- if (detailList4 != null && detailList4.size() > 0) {
- for (MsgOtherDetail detail : detailList4) {
- UserMsgVO userMsgVO = UserMsgVOFactory.create(detail);
- if (userMsgVO != null) {
- userMsgVO.setType(MSG_TYPE_OTHER);
- list.add(userMsgVO);
- }
- }
- }
-
- if (list.size() > 0) {
- // 鏃堕棿鎺掑簭
- listSort(list);
-
- if (list.size() >= 20) {
- list = list.subList(0, 19);
- }
-
- for (UserMsgVO userMsgVO : list) {
- UserMsgCenter userMsgCenter = new UserMsgCenter();
- userMsgCenter.setUserMsg(userMsgVO);
- listCenter.add(userMsgCenter);
- }
- }
- }
-
- GsonBuilder builder = new GsonBuilder();
- builder = getTimeDescJsonBuilder(builder);
- JSONObject root = new JSONObject();
-
- if (uid != null && uid > 0) {
- UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
- UserSystemMsg usm = userSystemMsgService.getLatestUserSystemMsg(uid);
- if (usm != null) {
- UserSystemMsgVO userSystemMsgVO = new UserSystemMsgVO(usm.getId(), usm.getType().name(), usm.getSolved(), "绯荤粺娑堟伅", usm.getTitle(),
- usm.getTimeTag() == 1 ? "http://img.flqapp.com/resource/msg/icon_emergent.png" : "",
- "http://img.flqapp.com/resource/msg/icon_msg_system.png",
- getTimeDesc(new Date(), usm.getCreateTime()), num.getTypeSystem());
-
- // TODO 璺宠浆鍦板潃
- JSONObject params = new JSONObject();
- params.put("url", "http://apph5.yeshitv.com/special/1.0.9/jingXuanN_9.html?type=9_9");
- JumpDetailV2 wxmpJumDetail = JumpDetailUtil.getWXMPJumDetail(jumpDetailV2Service.getByTypeCache("web"), params);
- userSystemMsgVO.setJumpDetail(wxmpJumDetail);
-
- root.put("systemMsg", userSystemMsgVO);
- }
- }
-
- root.put("list", builder.create().toJson(listCenter));
- root.put("commonList", builder.create().toJson(commonMsgList));
- root.put("count", listCenter.size());
- out.print(JsonUtil.loadTrueResult(root));
- }
-
- private static void listSort(List<UserMsgVO> list) {
- Collections.sort(list, new Comparator<UserMsgVO>() {
- @Override
- public int compare(UserMsgVO o1, UserMsgVO o2) {
- if (o1.getTime().getTime() > o2.getTime().getTime()) {
- return -1;
- } else if (o1 == o2) {
- return 0;
- } else {
- return 1;
- }
- }
- });
- }
-
- private String getTimeDesc(Date nowDate, Date targetDate) {
- Calendar now = Calendar.getInstance();
- now.setTime(nowDate);
- if (TimeUtil.getGernalTime(targetDate.getTime(), "yyyy-MM-dd")
- .equalsIgnoreCase(TimeUtil.getGernalTime(now.getTimeInMillis(), "yyyy-MM-dd"))) {
- return "浠婂ぉ " + TimeUtil.getGernalTime(targetDate.getTime(), "HH:mm");
- } else if (TimeUtil.getGernalTime(targetDate.getTime(), "yyyy-MM-dd")
- .equalsIgnoreCase(TimeUtil.getGernalTime(now.getTimeInMillis() - 1000 * 60 * 60 * 24L, "yyyy-MM-dd"))) {
- return "鏄ㄥぉ " + TimeUtil.getGernalTime(targetDate.getTime(), "HH:mm");
- } else {
- return TimeUtil.getGernalTime(targetDate.getTime(), "yyyy.MM.dd HH:mm");
- }
- }
-
-
- private GsonBuilder getTimeDescJsonBuilder(GsonBuilder builder) {
- builder = builder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
- @Override
- public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
- if (value == null) {
- return new JsonPrimitive("");
- } else {
- Calendar now = Calendar.getInstance();
- return new JsonPrimitive(getTimeDesc(new Date(now.getTimeInMillis()), value));
- }
- }
- }).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
- @Override
- public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
- if (value == null) {
- return new JsonPrimitive("0");
- } else {
- return new JsonPrimitive(BigDecimalUtil.getWithNoZera(value).toString());
- }
- }
- });
-
- return builder;
- }
-
- /**
- * 娑堟伅鏈娓呯悊
- * @param acceptData
- * @param uid
- * @param out
- */
- @RequestMapping(value = "setAllMsgRead", method = RequestMethod.POST)
- public void setAllMsgRead(AcceptData acceptData, Long uid, PrintWriter out) {
- msgDeviceReadStateService.setAllMsgRead(acceptData.getDevice(),
- "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2);
- if (uid == null) {
- out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
- return;
- }
-
- // 鍒濆鍖栬鍙栫姸鎬�
- msgDeviceReadStateService.initReadState(acceptData.getDevice(),
- "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2, UserCommonMsgVO.TYPE_RECOMMEND);
- msgDeviceReadStateService.initReadState(acceptData.getDevice(),
- "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2, UserCommonMsgVO.TYPE_ZHUSHOU);
-
- // 璁剧疆璁惧娑堟伅鎵�鏈夊凡璇�
- msgDeviceReadStateService.setAllMsgRead(acceptData.getDevice(),
- "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2);
-
- UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
- int totalNum = num.getTypeAccount() + num.getTypeInvite() + num.getTypeMoney() + num.getTypeOrder()
- + num.getTypeScore() + num.getTypeSystem() + num.getTypeOther();
- if (totalNum == 0) {
- out.print(JsonUtil.loadFalseResult(1, "娌℃湁鏈娑堟伅"));
- return;
- } else {
- userMsgReadStateService.setAllMsgRead(uid);
- }
- out.print(JsonUtil.loadTrueResult(""));
- }
-
-
-}
+package com.yeshi.fanli.controller.wxmp.v1;
+
+import java.io.PrintWriter;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.yeshi.utils.BigDecimalUtil;
+import org.yeshi.utils.JsonUtil;
+
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonPrimitive;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+import com.yeshi.fanli.dto.msg.MsgCommonDTO;
+import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail;
+import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState;
+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.common.JumpDetailV2;
+import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
+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.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.user.invite.MsgInviteDetailService;
+import com.yeshi.fanli.service.inter.user.msg.MsgAccountDetailService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.JumpDetailUtil;
+import com.yeshi.fanli.util.StringUtil;
+import org.yeshi.utils.TimeUtil;
+import com.yeshi.fanli.util.account.UserUtil;
+import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
+import com.yeshi.fanli.util.factory.msg.UserMsgVOFactory;
+import com.yeshi.fanli.vo.msg.UserCommonMsgVO;
+import com.yeshi.fanli.vo.msg.UserMsgCenter;
+import com.yeshi.fanli.vo.msg.UserMsgVO;
+import com.yeshi.fanli.vo.msg.UserSystemMsgVO;
+
+import net.sf.json.JSONObject;
+
+@Controller("WXMPUserMsgController")
+@RequestMapping("/wxmp/api/v1/msg")
+public class UserMsgController {
+
+ @Resource
+ private MsgOrderDetailService msgOrderDetailService;
+
+ @Resource
+ private MsgMoneyDetailService msgMoneyDetailService;
+
+ @Resource
+ private MsgInviteDetailService msgInviteDetailService;
+
+ @Resource
+ private MsgAccountDetailService msgAccountDetailService;
+
+ @Resource
+ private MsgOtherDetailService msgOtherDetailService;
+
+ @Resource
+ private UserMsgReadStateService userMsgReadStateService;
+
+ @Resource
+ private UserSystemMsgService userSystemMsgService;
+
+ @Resource
+ private JumpDetailV2Service jumpDetailV2Service;
+
+ @Resource
+ private MsgConfigService msgConfigService;
+
+ @Resource
+ private MsgDeviceReadStateService msgDeviceReadStateService;
+
+ // 娑堟伅鐨勭被鍨�
+ final static String MSG_TYPE_ORDER = "order";
+ final static String MSG_TYPE_MONEY = "money";
+ final static String MSG_TYPE_ACCOUNT = "account";
+ final static String MSG_TYPE_INVITE = "invite";
+ final static String MSG_TYPE_OTHER = "other";
+
+ /**
+ * 娑堟伅鍒楄〃
+ *
+ * @param acceptData
+ * @param uid
+ * @param page
+ * @param type
+ * @param out
+ */
+ @RequestSerializableByKey(key = "#acceptData.device")
+ @RequestMapping(value = "getMsgList", method = RequestMethod.POST)
+ public void getMsgList(AcceptData acceptData, Long uid, PrintWriter out) {
+ if (uid != null && uid == 0)
+ uid = null;
+ if (uid != null) {
+ userSystemMsgService.syncSystemZNX(uid);
+ }
+
+ List<UserMsgCenter> listCenter = new ArrayList<>();
+
+ // 鍗曟潯娑堟伅
+ List<UserCommonMsgVO> commonMsgList = new ArrayList<>();
+
+ long currentTime = System.currentTimeMillis();
+
+ // 鏉挎牀蹇渷灏忓姪鎵�
+ MsgCommonDTO zhuShouMsg = msgConfigService.getZhuShouMsg(acceptData.getSystem());
+ if (zhuShouMsg != null && zhuShouMsg.getShow() == true) {
+ boolean read = false;
+ MsgDeviceReadState state = msgDeviceReadStateService.getByDeviceAndPlatformAndType(
+ UserCommonMsgVO.TYPE_ZHUSHOU, acceptData.getDevice(),
+ acceptData.getPlatform().equalsIgnoreCase("android") ? 1 : 2);
+ if (state != null && state.getReadTime() != null
+ && zhuShouMsg.getUpdateTime().getTime() < state.getReadTime().getTime())
+ read = true;
+ // 鏌ヨ鏄惁宸茶
+
+ if ((zhuShouMsg.getStartTime() != null && currentTime < zhuShouMsg.getStartTime().getTime())
+ || (zhuShouMsg.getEndTime() != null && currentTime > zhuShouMsg.getEndTime().getTime())) {
+ // 涓嶆樉绀�
+ } else {
+ JSONObject params = null;
+ if (StringUtil.isNullOrEmpty(zhuShouMsg.getParams())) {
+ params = JSONObject.fromObject(zhuShouMsg.getParams());
+ }
+ JumpDetailV2 wxmpJumDetail = JumpDetailUtil.getWXMPJumDetail(zhuShouMsg.getJumpDetail());
+
+ if (Constant.IS_TEST)
+ read = false;
+ commonMsgList.add(new UserCommonMsgVO(zhuShouMsg.getIcon(), zhuShouMsg.getTitle(),
+ zhuShouMsg.getUpdateTime(), UserCommonMsgVO.TYPE_ZHUSHOU, zhuShouMsg.getContent(), read,
+ wxmpJumDetail, zhuShouMsg.getParams(), 0));
+ }
+ }
+
+ // 2銆佹秷鎭尯鍩�
+ if (uid != null && uid > 0) {
+ int page = 1;
+ List<UserMsgVO> list = new ArrayList<>();
+ List<MsgOrderDetail> detailList = msgOrderDetailService.listMsgOrderDetail(uid, page);
+ if (detailList != null && detailList.size() > 0) {
+ for (MsgOrderDetail detail : detailList) {
+ JSONObject params = new JSONObject();
+ params.put("orderNo", detail.getOrderId());
+ if (detail.getType() == MsgTypeOrderTypeEnum.invite || detail.getType() == MsgTypeOrderTypeEnum.orderInvite)
+ params.put("orderHideNo", UserUtil.filterOrderId(detail.getOrderId()));
+
+ JumpDetailV2 wxmpJumDetail = JumpDetailUtil
+ .getWXMPJumDetail(jumpDetailV2Service.getByTypeCache("order_search"));
+
+ UserMsgVO userMsgVO = UserMsgVOFactory.create(detail, wxmpJumDetail, params);
+ userMsgVO.setType(MSG_TYPE_ORDER);
+ list.add(userMsgVO);
+ }
+ }
+
+ List<MsgMoneyDetail> detailList1 = msgMoneyDetailService.listMsgMoneyDetail(uid, page);
+ if (detailList1 != null && detailList1.size() > 0) {
+ for (MsgMoneyDetail detail : detailList1) {
+ UserMsgVO userMsgVO = UserMsgVOFactory.create(detail);
+ userMsgVO.setType(MSG_TYPE_MONEY);
+ list.add(userMsgVO);
+ }
+ }
+
+ List<MsgAccountDetail> detailList2 = msgAccountDetailService.listMsgAccountDetail(uid, page);
+ if (detailList2 != null && detailList2.size() > 0) {
+ for (MsgAccountDetail detail : detailList2) {
+ UserMsgVO userMsgVO = UserMsgVOFactory.create(detail);
+ userMsgVO.setType(MSG_TYPE_ACCOUNT);
+ list.add(userMsgVO);
+ }
+ }
+
+ List<MsgInviteDetail> detailList3 = msgInviteDetailService.listMsgInviteDetail(uid, page);
+ if (detailList3 != null && detailList3.size() > 0) {
+ for (MsgInviteDetail detail : detailList3) {
+ UserMsgVO userMsgVO = UserMsgVOFactory.create(detail);
+ if (userMsgVO != null) {
+ userMsgVO.setType(MSG_TYPE_INVITE);
+ list.add(userMsgVO);
+ }
+ }
+ }
+
+ List<MsgOtherDetail> detailList4 = msgOtherDetailService.listMsgOtherDetail(uid, page);
+ if (detailList4 != null && detailList4.size() > 0) {
+ for (MsgOtherDetail detail : detailList4) {
+ UserMsgVO userMsgVO = UserMsgVOFactory.create(detail);
+ if (userMsgVO != null) {
+ userMsgVO.setType(MSG_TYPE_OTHER);
+ list.add(userMsgVO);
+ }
+ }
+ }
+
+ if (list.size() > 0) {
+ // 鏃堕棿鎺掑簭
+ listSort(list);
+
+ if (list.size() >= 20) {
+ list = list.subList(0, 19);
+ }
+
+ for (UserMsgVO userMsgVO : list) {
+ UserMsgCenter userMsgCenter = new UserMsgCenter();
+ userMsgCenter.setUserMsg(userMsgVO);
+ listCenter.add(userMsgCenter);
+ }
+ }
+ }
+
+ GsonBuilder builder = new GsonBuilder();
+ builder = getTimeDescJsonBuilder(builder);
+ JSONObject root = new JSONObject();
+
+ if (uid != null && uid > 0) {
+ UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
+ UserSystemMsg usm = userSystemMsgService.getLatestUserSystemMsg(uid);
+ if (usm != null) {
+ UserSystemMsgVO userSystemMsgVO = new UserSystemMsgVO(usm.getId(), usm.getType().name(),
+ usm.getSolved(), "绯荤粺娑堟伅", usm.getTitle(),
+ usm.getTimeTag() == 1 ? "http://img.flqapp.com/resource/msg/icon_emergent.png" : "",
+ "http://img.flqapp.com/resource/msg/icon_msg_system.png",
+ getTimeDesc(new Date(), usm.getCreateTime()), num.getTypeSystem());
+
+ // TODO 璺宠浆鍦板潃
+ JSONObject params = new JSONObject();
+ params.put("url", "http://apph5.banliapp.com/special/1.0.9/jingXuanN_9.html?type=9_9");
+ JumpDetailV2 wxmpJumDetail = JumpDetailUtil.getWXMPJumDetail(jumpDetailV2Service.getByTypeCache("web"));
+ userSystemMsgVO.setJumpDetail(wxmpJumDetail);
+
+ root.put("systemMsg", userSystemMsgVO);
+ }
+ }
+
+ root.put("list", builder.create().toJson(listCenter));
+ root.put("commonList", builder.create().toJson(commonMsgList));
+ root.put("count", listCenter.size());
+ out.print(JsonUtil.loadTrueResult(root));
+ }
+
+ private static void listSort(List<UserMsgVO> list) {
+ Collections.sort(list, new Comparator<UserMsgVO>() {
+ @Override
+ public int compare(UserMsgVO o1, UserMsgVO o2) {
+ if (o1.getTime().getTime() > o2.getTime().getTime()) {
+ return -1;
+ } else if (o1 == o2) {
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+ });
+ }
+
+ private String getTimeDesc(Date nowDate, Date targetDate) {
+ Calendar now = Calendar.getInstance();
+ now.setTime(nowDate);
+ if (TimeUtil.getGernalTime(targetDate.getTime(), "yyyy-MM-dd")
+ .equalsIgnoreCase(TimeUtil.getGernalTime(now.getTimeInMillis(), "yyyy-MM-dd"))) {
+ return "浠婂ぉ " + TimeUtil.getGernalTime(targetDate.getTime(), "HH:mm");
+ } else if (TimeUtil.getGernalTime(targetDate.getTime(), "yyyy-MM-dd")
+ .equalsIgnoreCase(TimeUtil.getGernalTime(now.getTimeInMillis() - 1000 * 60 * 60 * 24L, "yyyy-MM-dd"))) {
+ return "鏄ㄥぉ " + TimeUtil.getGernalTime(targetDate.getTime(), "HH:mm");
+ } else {
+ return TimeUtil.getGernalTime(targetDate.getTime(), "yyyy.MM.dd HH:mm");
+ }
+ }
+
+ private GsonBuilder getTimeDescJsonBuilder(GsonBuilder builder) {
+ builder = builder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
+ @Override
+ public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
+ if (value == null) {
+ return new JsonPrimitive("");
+ } else {
+ Calendar now = Calendar.getInstance();
+ return new JsonPrimitive(getTimeDesc(new Date(now.getTimeInMillis()), value));
+ }
+ }
+ }).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
+ @Override
+ public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
+ if (value == null) {
+ return new JsonPrimitive("0");
+ } else {
+ return new JsonPrimitive(BigDecimalUtil.getWithNoZera(value).toString());
+ }
+ }
+ });
+
+ return builder;
+ }
+
+ /**
+ * 娑堟伅鏈娓呯悊
+ *
+ * @param acceptData
+ * @param uid
+ * @param out
+ */
+ @RequestMapping(value = "setAllMsgRead", method = RequestMethod.POST)
+ public void setAllMsgRead(AcceptData acceptData, Long uid, PrintWriter out) {
+ msgDeviceReadStateService.setAllMsgRead(acceptData.getDevice(),
+ "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2);
+ if (uid == null) {
+ out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+ return;
+ }
+
+ // 鍒濆鍖栬鍙栫姸鎬�
+ msgDeviceReadStateService.initReadState(acceptData.getDevice(),
+ "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2, UserCommonMsgVO.TYPE_RECOMMEND);
+ msgDeviceReadStateService.initReadState(acceptData.getDevice(),
+ "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2, UserCommonMsgVO.TYPE_ZHUSHOU);
+
+ // 璁剧疆璁惧娑堟伅鎵�鏈夊凡璇�
+ msgDeviceReadStateService.setAllMsgRead(acceptData.getDevice(),
+ "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2);
+
+ UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
+ int totalNum = num.getTypeAccount() + num.getTypeInvite() + num.getTypeMoney() + num.getTypeOrder()
+ + num.getTypeScore() + num.getTypeSystem() + num.getTypeOther();
+ if (totalNum == 0) {
+ out.print(JsonUtil.loadFalseResult(1, "娌℃湁鏈娑堟伅"));
+ return;
+ } else {
+ userMsgReadStateService.setAllMsgRead(uid);
+ }
+ out.print(JsonUtil.loadTrueResult(""));
+ }
+
+ @RequestMapping(value = "getUnReadMsgCount", method = RequestMethod.POST)
+ public void getUnReadMsgCount(AcceptData acceptData, Long uid, PrintWriter out) {
+ JSONObject data = new JSONObject();
+ if (uid == null) {
+ data.put("totalCount", 0);
+ } else {
+ UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
+ int totalCount = num.getTypeAccount() + num.getTypeInvite() + num.getTypeMoney() + num.getTypeOrder()
+ + num.getTypeScore() + num.getTypeSystem() + num.getTypeOther();
+ data.put("totalCount", totalCount >= 100 ? "99+" : totalCount + "");
+ }
+
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+}
--
Gitblit v1.8.0