From c113fb5b3be1e872b84799c79e76607c40c2c4ba Mon Sep 17 00:00:00 2001 From: 喻健 <喻健@Admin> Date: 星期二, 27 十一月 2018 17:49:05 +0800 Subject: [PATCH] 推送商品信息 --- fanli/src/main/java/com/yeshi/fanli/controller/client/PushController.java | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 200 insertions(+), 1 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/PushController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/PushController.java index 19004ba..32a7c31 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/PushController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/PushController.java @@ -1,24 +1,44 @@ package com.yeshi.fanli.controller.client; import java.io.PrintWriter; +import java.util.Date; +import java.util.List; import javax.annotation.Resource; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + +import org.springframework.core.task.TaskExecutor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.yeshi.utils.JsonUtil; import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.common.JumpDetailV2; import com.yeshi.fanli.entity.push.DeviceActive; import com.yeshi.fanli.entity.push.DeviceTokenIOS; +import com.yeshi.fanli.entity.push.PushGoods; +import com.yeshi.fanli.entity.push.PushGoodsGroup; +import com.yeshi.fanli.entity.push.PushGoodsRecord; import com.yeshi.fanli.entity.system.System; +import com.yeshi.fanli.exception.push.PushGoodsGroupException; +import com.yeshi.fanli.goods.CommonGoods; +import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; +import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.config.SystemService; import com.yeshi.fanli.service.inter.push.DeviceActiveService; import com.yeshi.fanli.service.inter.push.DeviceTokenHWService; import com.yeshi.fanli.service.inter.push.IOSPushService; +import com.yeshi.fanli.service.inter.push.PushGoodsGroupService; +import com.yeshi.fanli.service.inter.push.PushGoodsRecordService; +import com.yeshi.fanli.service.inter.push.PushGoodsService; import com.yeshi.fanli.service.inter.push.PushRecordService; +import com.yeshi.fanli.service.inter.push.PushService; +import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.factory.JumpDetailParamsFactory; @Controller @RequestMapping(value = "api/v1/push") @@ -38,6 +58,27 @@ @Resource private DeviceActiveService deviceActiveService; + + @Resource + private PushService pushService; + + @Resource + private PushGoodsService PushGoodsService; + + @Resource + private PushGoodsGroupService pushGoodsGroupService; + + @Resource + private PushGoodsRecordService pushGoodsRecordService; + + @Resource + private JumpDetailV2Service jumpDetailV2Service; + + @Resource + private ConfigService configService; + + @Resource(name = "taskExecutor") + private TaskExecutor executor; @RequestMapping(value = "callback", method = RequestMethod.POST) public void callback(AcceptData acceptData, String pushId, PrintWriter out) { @@ -102,7 +143,7 @@ da.setVersionCode(Integer.parseInt(acceptData.getVersion())); deviceActiveService.addDeviceActive(da); // 娣诲姞token - DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDeviceToken(acceptData.getDevice()); + DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDeviceToken(deviceToken); if (deviceTokenIOS != null) { deviceTokenIOS.setUid(uid); deviceTokenIOS.setDevice(acceptData.getDevice()); @@ -161,5 +202,163 @@ deviceTokenHWService.unBindDeviceToken(acceptData.getDevice()); out.print(JsonUtil.loadTrueResult("鎴愬姛")); } + + + /** + * 瑙g粦鎺ㄩ�� + * + * @param acceptData + * @param out + */ + @RequestMapping(value = "/gethistory", method = RequestMethod.POST) + public void getHistory(AcceptData acceptData, 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(createTime); + + int pageSize = Constant.PAGE_SIZE; + + list = PushGoodsService.listHistoryByPushTime((page - 1) * pageSize, pageSize, 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 + Long auctionId = 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 commonGoods = pushGoodsGroup.getCommonGoods(); + if (commonGoods != null) { + picture = commonGoods.getPicture(); + auctionId = commonGoods.getGoodsId(); + } + } + } + } catch (PushGoodsGroupException e) { + e.printStackTrace(); + } + } + + result.put("picture", picture); + + String fontColor1 = "#888888"; + String fontColor2 = "#F14242"; + JSONArray array = new JSONArray(); + + JSONArray array1 = new JSONArray(); + array1.add(fontColor1); + array1.add("鏈鎺ㄩ�佸叡"); + + JSONArray array2 = new JSONArray(); + array2.add(fontColor2); + array2.add(totalgoods); + + JSONArray array3 = new JSONArray(); + array3.add(fontColor1); + array3.add("涓晢鍝�"); + + array.add(array1); + array.add(array2); + array.add(array3); + + result.put("totalwords", array); + + String params = ""; + + JumpDetailV2 jumpDetail = null; + if (totalgoods == 1) { + + params = JumpDetailParamsFactory.createGoodsParams(auctionId); + // 鍗曚釜鍟嗗搧璺宠浆鍟嗗搧璇︽儏 + jumpDetail = jumpDetailV2Service.getByTypeCache("goodsdetail"); + + } else { + String url = configService.get("push_goods_details"); + if (url == null) { + url = ""; + } + url = url + "?id=" + pushId; + + params = JumpDetailParamsFactory.createWEBParams(url); + + // 璺宠浆鎺ㄨ崘璇︽儏 + jumpDetail = jumpDetailV2Service.getByTypeCache("web"); + } + result.put("params", params); + result.put("jumpDetail", jumpDetail); + + resultList.add(result); + } + } + } + + 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) { + + final List<PushGoods> listPush = list; + // 璁板綍璁块棶淇℃伅 + executor.execute(new Runnable() { + @Override + public void run() { + try { + Long deviceId = deviceActive.getId(); + + for (PushGoods pushGoods : listPush) { + List<PushGoodsRecord> listRecord = pushGoodsRecordService.listByPushIdAndDeviceId( + pushGoods.getId(), deviceId); + if (listRecord != null && listRecord.size() > 0) { + continue; // 宸茶璁板綍 + } + + PushGoodsRecord pushGoodsRecord = new PushGoodsRecord(); + + pushGoodsRecord.setCreateTime(new Date()); + pushGoodsRecord.setPushGoods(pushGoods); + pushGoodsRecord.setDeviceActive(deviceActive); + pushGoodsRecordService.insert(pushGoodsRecord); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + } + }); + } + } + } -- Gitblit v1.8.0