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