From 1da17d215d48e3e3aa9e8d7a3ef526904764f408 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期一, 08 四月 2019 14:06:12 +0800 Subject: [PATCH] 1.5.3部分需求 提交 --- fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 159 insertions(+), 0 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java index e5a316c..87e31fa 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java @@ -5,9 +5,13 @@ 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.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import javax.annotation.Resource; @@ -27,6 +31,7 @@ import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.bus.homemodule.Special; import com.yeshi.fanli.entity.bus.lable.QualityFactory; import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail; import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail; @@ -37,14 +42,17 @@ import com.yeshi.fanli.entity.bus.msg.UserSystemMsg; import com.yeshi.fanli.entity.goods.CommonGoods; import com.yeshi.fanli.entity.goods.RecommendUserGoods; +import com.yeshi.fanli.entity.system.BusinessSystem; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; import com.yeshi.fanli.exception.goods.CommonGoodsException; import com.yeshi.fanli.exception.goods.RecommendUserGoodsException; import com.yeshi.fanli.exception.msg.UserSystemMsgException; import com.yeshi.fanli.exception.user.UserCustomSettingsException; +import com.yeshi.fanli.service.inter.config.BusinessSystemService; import com.yeshi.fanli.service.inter.goods.CommonGoodsService; 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.msg.MsgInviteDetailService; @@ -63,6 +71,7 @@ import com.yeshi.fanli.util.factory.msg.UserMsgVOFactory; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.vo.msg.UserHomeMsgVO; +import com.yeshi.fanli.vo.msg.UserMsgCenter; import com.yeshi.fanli.vo.msg.UserMsgVO; import com.yeshi.fanli.vo.msg.UserSystemMsgVO; import com.yeshi.fanli.vo.user.UserSettingsVO; @@ -73,6 +82,8 @@ @RequestMapping("api/v1/user/msg") public class UserMsgController { + @Resource + private BusinessSystemService businessSystemService; @Resource private MsgOrderDetailService msgOrderDetailService; @@ -111,6 +122,10 @@ @Resource private RedisManager redisManager; + + @Resource + private SpecialService specialService; + // 娑堟伅鐨勭被鍨� final static String MSG_TYPE_ORDER = "order"; @@ -507,7 +522,151 @@ root.put("count", count); out.print(JsonUtil.loadTrueResult(root)); } + + + /** + * 鑾峰彇娑堟伅鍒楄〃 + * + * @param acceptData + * @param uid + * @param page + * @param type + * @param out + */ + @RequestMapping(value = "getHomeMsgListNew", method = RequestMethod.POST) + public void getHomeMsgListNew(AcceptData acceptData, Long uid, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); + if (system == null) { + out.print(JsonUtil.loadFalseResult(1, "绯荤粺涓嶅瓨鍦�")); + return; + } + + 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) { + list.add(UserMsgVOFactory.create(detail)); + } + } + + List<MsgMoneyDetail> detailList1 = msgMoneyDetailService.listMsgMoneyDetail(uid, page); + if (detailList1 != null && detailList1.size() > 0) { + for (MsgMoneyDetail detail : detailList1) { + list.add(UserMsgVOFactory.create(detail)); + } + } + + List<MsgAccountDetail> detailList2 = msgAccountDetailService.listMsgAccountDetail(uid, page); + if (detailList2 != null && detailList2.size() > 0) { + for (MsgAccountDetail detail : detailList2) { + list.add(UserMsgVOFactory.create(detail)); + } + } + + List<MsgInviteDetail> detailList3 = msgInviteDetailService.listMsgInviteDetail(uid, page); + if (detailList3 != null && detailList3.size() > 0) { + for (MsgInviteDetail detail : detailList3) { + UserMsgVO vo = UserMsgVOFactory.create(detail); + if (vo != null) { + list.add(vo); + } + } + } + + List<MsgOtherDetail> detailList4 = msgOtherDetailService.listMsgOtherDetail(uid, page); + if (detailList4 != null && detailList4.size() > 0) { + for (MsgOtherDetail detail : detailList4) { + UserMsgVO vo = UserMsgVOFactory.create(detail); + if (vo != null) { + list.add(vo); + } + } + } + + List<UserMsgCenter> listCenter = new ArrayList<>(); + + List<Special> listSpecial = specialService.listBySystemAndCard("", system.getId()); + if (listSpecial != null && listSpecial.size() > 0) { + for (Special special: listSpecial) { + UserMsgCenter msgCenter = new UserMsgCenter(); + msgCenter.setSpecial(special); + listCenter.add(msgCenter); + } + } + + if (list.size() > 0 ) { + // 鏃堕棿鎺掑簭 + listSort(list); + + if (list.size() <= 20 ) { + + } else { + list = list.subList(0, 19); + } + + for (UserMsgVO userMsgVO: list) { + UserMsgCenter userMsgCenter = new UserMsgCenter(); + userMsgCenter.setUserMsg(userMsgVO); + listCenter.add(userMsgCenter); + } + } + + + // 娣诲姞娆㈣繋璇� + Long time = (uid == null ? System.currentTimeMillis() : userInfoService.selectByPKey(uid).getCreatetime()); + // 鍒涘缓鏃堕棿鍦�28鍙峰悗鐨勬墠鏈夋柊浜烘杩� + 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("createTime",new Date(time)); + UserMsgCenter msgCenternre = new UserMsgCenter(); + msgCenternre.setWelcomeMsg(map); + listCenter.add(msgCenternre); + } + + GsonBuilder builder = new GsonBuilder(); + builder = getTimeDescJsonBuilder(builder); + + JSONObject root = new JSONObject(); + + UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid); + UserSystemMsg usm = userSystemMsgService.getLatestUserSystemMsg(uid); + if (usm != null) { + root.put("systemMsg", 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())); + } + + root.put("list", builder.create().toJson(listCenter)); + root.put("count", listCenter.size()); + out.print(JsonUtil.loadTrueResult(root)); + } + + + public 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; + } + } + }); + } + + /** * 鑾峰彇绯荤粺娑堟伅鍒楄〃 * -- Gitblit v1.8.0