From 3590da403de193aa6bb7633d7526bd04f3821736 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期六, 05 一月 2019 14:44:28 +0800
Subject: [PATCH] 后端曲线图
---
fanli/src/main/java/com/yeshi/fanli/controller/client/PushController.java | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 206 insertions(+), 27 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..dda8ea9 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,43 @@
package com.yeshi.fanli.controller.client;
import java.io.PrintWriter;
+import java.util.Date;
+import java.util.List;
import javax.annotation.Resource;
+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.goods.CommonGoods;
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.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;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
@Controller
@RequestMapping(value = "api/v1/push")
@@ -38,6 +57,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) {
@@ -70,16 +110,10 @@
da.setDeviceToken(deviceToken);
da.setPlatform(DeviceActive.PLATFORM_IOS);
da.setVersionCode(Integer.parseInt(acceptData.getVersion()));
+ da.setDevice(acceptData.getDevice());
deviceActiveService.addDeviceActive(da);
-
- DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDeviceToken(deviceToken);
- if (deviceTokenIOS == null)
- iosPushService.addDeviceToken(null, Integer.parseInt(acceptData.getVersion()), deviceToken,
- acceptData.getDevice());
- else {
- deviceTokenIOS.setDevice(acceptData.getDevice());
- iosPushService.updateDeviceToken(deviceTokenIOS);
- }
+ iosPushService.addDeviceToken(null, Integer.parseInt(acceptData.getVersion()), deviceToken,
+ acceptData.getDevice());
out.print(JsonUtil.loadTrue(0, null, "鎴愬姛"));
}
}
@@ -100,19 +134,11 @@
da.setDeviceToken(deviceToken);
da.setPlatform(DeviceActive.PLATFORM_IOS);
da.setVersionCode(Integer.parseInt(acceptData.getVersion()));
+ da.setDevice(acceptData.getDevice());
deviceActiveService.addDeviceActive(da);
// 娣诲姞token
- DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDeviceToken(acceptData.getDevice());
- if (deviceTokenIOS != null) {
- deviceTokenIOS.setUid(uid);
- deviceTokenIOS.setDevice(acceptData.getDevice());
- deviceTokenIOS.setVersion(Integer.parseInt(acceptData.getVersion()));
- iosPushService.updateDeviceToken(deviceTokenIOS);
- } else {
- iosPushService.addDeviceToken(uid, Integer.parseInt(acceptData.getVersion()), deviceToken,
- acceptData.getDevice());
- }
- out.print(JsonUtil.loadTrueResult(""));
+ iosPushService.addDeviceToken(uid, Integer.parseInt(acceptData.getVersion()), deviceToken,
+ acceptData.getDevice());
}
}
@@ -124,12 +150,8 @@
*/
@RequestMapping(value = "/unBind", method = RequestMethod.POST)
public void unBind(AcceptData acceptData, String deviceToken, PrintWriter out) {
- if (!StringUtil.isNullOrEmpty(deviceToken)) {
- DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDeviceToken(deviceToken);
- if (deviceTokenIOS != null) {
- deviceTokenIOS.setUid(null);
- iosPushService.updateDeviceToken(deviceTokenIOS);
- }
+ if (!StringUtil.isNullOrEmpty(acceptData.getDevice())) {
+ iosPushService.unBindUidAndDevice(acceptData.getDevice());
out.print(JsonUtil.loadTrue(0, null, "瑙g粦鎴愬姛"));
}
}
@@ -162,4 +184,161 @@
out.print(JsonUtil.loadTrueResult("鎴愬姛"));
}
+ /**
+ * 瑙g粦鎺ㄩ��
+ *
+ * @param acceptData
+ * @param out
+ */
+ @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
+ 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 = "#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(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