From 554de444b87aab5f93cb1593a8095612cf9479a7 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 09 六月 2020 17:34:30 +0800
Subject: [PATCH] 订单

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PreviewInfoControllerV2.java |  461 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 389 insertions(+), 72 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PreviewInfoControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PreviewInfoControllerV2.java
index 0942dd3..168319d 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PreviewInfoControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PreviewInfoControllerV2.java
@@ -3,30 +3,49 @@
 import java.io.PrintWriter;
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
 import java.util.Date;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import javax.annotation.Resource;
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.multipart.MultipartFile;
 import org.yeshi.utils.JsonUtil;
 
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
+import com.yeshi.fanli.dto.push.PushContentDTO;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.user.Extract;
+import com.yeshi.fanli.entity.bus.user.PayInfo;
 import com.yeshi.fanli.entity.bus.user.PreviewInfo;
 import com.yeshi.fanli.entity.bus.user.PreviewInfo.PreviewEnum;
+import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.config.push.PushMsgFactory;
+import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
+import com.yeshi.fanli.entity.order.OrderMoneyDailyCount;
+import com.yeshi.fanli.exception.push.PushException;
 import com.yeshi.fanli.exception.user.PreviewInfoException;
 import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
+import com.yeshi.fanli.service.inter.money.UserMoneyDetailService;
+import com.yeshi.fanli.service.inter.order.CommonOrderService;
+import com.yeshi.fanli.service.inter.order.OrderMoneyDailyCountService;
+import com.yeshi.fanli.service.inter.push.PushService;
+import com.yeshi.fanli.service.inter.user.PayInfoService;
 import com.yeshi.fanli.service.inter.user.PreviewInfoService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.account.UserUtil;
+import com.yeshi.fanli.vo.money.MoneyPredictVO;
 import com.yeshi.fanli.vo.money.MoneyStatisticVO;
 import com.yeshi.fanli.vo.user.MineInfoVO;
 
@@ -44,6 +63,24 @@
 
 	@Resource
 	private RedisManager redisManager;
+
+	@Resource
+	private HongBaoV2CountService hongBaoV2CountService;
+
+	@Resource
+	private UserMoneyDetailService userMoneyDetailService;
+
+	@Resource
+	private OrderMoneyDailyCountService orderMoneyDailyCountService;
+
+	@Resource
+	private CommonOrderService commonOrderService;
+
+	@Resource
+	private PushService pushService;
+	
+	@Resource
+	private PayInfoService payInfoService;
 
 	/**
 	 * 淇濆瓨璧勯噾淇℃伅
@@ -68,6 +105,152 @@
 		}
 	}
 
+	@RequestMapping(value = "getMoneyInfo")
+	public void getMoneyInfo(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
+		MoneyStatisticVO dto = null;
+		PreviewInfo previewInfo = previewInfoService.get(uid, PreviewEnum.moneyInfo);
+		if (previewInfo != null && !StringUtil.isNullOrEmpty(previewInfo.getContent())) {
+			dto = new Gson().fromJson(previewInfo.getContent(), MoneyStatisticVO.class);
+		} else {
+			dto = createMoneyStatistic(uid);
+		}
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(dto));
+	}
+
+	private MoneyStatisticVO createMoneyStatistic(Long uid) {
+		UserInfo user = userInfoService.getUserById(uid);
+
+		MoneyStatisticVO vo = new MoneyStatisticVO();
+		vo.setBalanceMoney(user.getMyHongBao());
+		Date minDate = null;
+		Date maxDate = null;
+		long timeStamp = System.currentTimeMillis();
+		List<UserMoneyDetailTypeEnum> typeList = new ArrayList<>();
+
+		Calendar calendar = Calendar.getInstance();
+		calendar.setTimeInMillis(timeStamp);
+
+		typeList.clear();
+		typeList.add(UserMoneyDetailTypeEnum.extract);
+		typeList.add(UserMoneyDetailTypeEnum.extractNew);
+		typeList.add(UserMoneyDetailTypeEnum.extractVerify);
+		typeList.add(UserMoneyDetailTypeEnum.extractVerifyNew);
+		typeList.add(UserMoneyDetailTypeEnum.extractReject);
+		typeList.add(UserMoneyDetailTypeEnum.extractAutoWX);
+
+		// 鏈湀鎻愮幇
+		maxDate = new Date(timeStamp);
+		calendar = Calendar.getInstance();
+		minDate = new Date(TimeUtil
+				.convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+		calendar.add(Calendar.MONTH, -1);
+		vo.setMonthExtractMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs());
+
+		// 涓婃湀鎻愮幇
+		maxDate = new Date(TimeUtil
+				.convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+		calendar.add(Calendar.MONTH, -1);
+		minDate = new Date(TimeUtil
+				.convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+		vo.setLastMonthExtractMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs());
+
+		minDate = new Date(0L);
+		maxDate = new Date(timeStamp);
+		// 绱鎴愬姛鎻愮幇
+		vo.setTotalExtractMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs());
+
+		// 绱鑷喘杩斿埄
+		typeList.clear();
+		typeList.add(UserMoneyDetailTypeEnum.fanli);
+		typeList.add(UserMoneyDetailTypeEnum.fanliNew);
+		typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuanNew);
+		typeList.add(UserMoneyDetailTypeEnum.orderReward);
+		typeList.add(UserMoneyDetailTypeEnum.orderRewardNew);
+		vo.setTotalFanLiMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+
+		// 绱鍒嗕韩璧�
+		typeList.clear();
+		typeList.add(UserMoneyDetailTypeEnum.share);
+		typeList.add(UserMoneyDetailTypeEnum.shareNew);
+		typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
+		vo.setTotalShareMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+
+		// 绱閭�璇疯禋
+		typeList.clear();
+		typeList.add(UserMoneyDetailTypeEnum.invite);
+		typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
+		typeList.add(UserMoneyDetailTypeEnum.subsidy);
+		typeList.add(UserMoneyDetailTypeEnum.teamReward);
+		vo.setTotalInviteMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+
+		// 鏈湀鏀惰揣
+		maxDate = new Date(timeStamp);
+		calendar = Calendar.getInstance();
+		minDate = new Date(TimeUtil
+				.convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+		calendar.add(Calendar.MONTH, -1);
+		vo.setMonthSettleMoney(hongBaoV2CountService.sumMoneyBySettleTimeAndUid(uid, minDate, maxDate));
+
+		// 涓婃湀鏀惰揣
+		maxDate = new Date(TimeUtil
+				.convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+		calendar.add(Calendar.MONTH, -1);
+		minDate = new Date(TimeUtil
+				.convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+		vo.setLastMonthSettleMoney(hongBaoV2CountService.sumMoneyBySettleTimeAndUid(uid, minDate, maxDate));
+
+		// 寰呯‘璁ゆ敹璐э紙180澶╁唴锛�
+		vo.setNotSettleMoney(hongBaoV2CountService.sumMoneyByANotSettleAndUid(uid));
+
+		// 浠婃棩棰勪及
+		calendar.add(Calendar.DAY_OF_YEAR, -1);
+		minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
+		vo.setTodayPredict(cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, null)));
+
+		// 鏈湀棰勪及
+		maxDate = new Date(timeStamp);
+		calendar = Calendar.getInstance();
+		minDate = new Date(TimeUtil
+				.convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+		calendar.add(Calendar.MONTH, -1);
+		vo.setMonthPredict(cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, maxDate)));
+		return vo;
+	}
+
+	private MoneyPredictVO cratePredictVO(List<OrderMoneyDailyCount> list) {
+		MoneyPredictVO predictVO = new MoneyPredictVO();
+		predictVO.setMineNum(0);
+		predictVO.setTeamNum(0);
+		predictVO.setMineMoney(BigDecimal.valueOf(0));
+		predictVO.setTeamMoney(BigDecimal.valueOf(0));
+		BigDecimal hundred = BigDecimal.valueOf(100);
+		if (list != null && list.size() > 0) {
+			for (OrderMoneyDailyCount dailyCount : list) {
+				if (dailyCount.getOrderNum() != null)
+					predictVO.setMineNum(predictVO.getMineNum() + dailyCount.getOrderNum());
+				if (dailyCount.getOrderNumTeam() != null)
+					predictVO.setTeamNum(predictVO.getTeamNum() + dailyCount.getOrderNumTeam());
+				if (dailyCount.getIncome() != null)
+					predictVO.setMineMoney(predictVO.getMineMoney()
+							.add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncome()), hundred)));
+				if (dailyCount.getIncomeTeam() != null)
+					predictVO.setTeamMoney(predictVO.getTeamMoney()
+							.add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncomeTeam()), hundred)));
+			}
+		}
+		predictVO.setTotalNum(predictVO.getTeamNum() + predictVO.getMineNum());
+		predictVO.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney()));
+		return predictVO;
+	}
+
 	/**
 	 * 淇濆瓨鎻愮幇璁板綍
 	 * 
@@ -78,18 +261,80 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "saveExtractRecord")
-	public void saveExtractRecord(String callback, AcceptData acceptData, Long uid, String time, BigDecimal money,
+	public void saveExtractRecord(String callback, AcceptData acceptData, Long uid, String dayTime, BigDecimal money,
 			PrintWriter out) {
 		if (uid == null) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
 		try {
-			previewInfoService.saveExtractRecord(uid, time, money);
+			previewInfoService.saveExtractRecord(uid, dayTime, money);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("淇濆瓨鎴愬姛"));
 		} catch (PreviewInfoException e) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
 		}
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("淇濆瓨鎴愬姛"));
+	}
+
+	@RequestMapping(value = "getExtractRecord")
+	public void getExtractRecord(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
+		List<Extract> list = null;
+		PreviewInfo previewInfo = previewInfoService.get(uid, PreviewEnum.extractRecord);
+		if (previewInfo != null && !StringUtil.isNullOrEmpty(previewInfo.getContent())) {
+			Gson gson = new Gson();
+			list = gson.fromJson(previewInfo.getContent(), new TypeToken<ArrayList<Extract>>() {
+			}.getType());
+		}
+
+		if (list == null)
+			list = new ArrayList<>();
+
+		JSONArray JSONArray = new JSONArray();
+		if (list.size() > 0) {
+			for (Extract extract : list) {
+				Date receiveTime = extract.getReceiveTime();
+				if (receiveTime == null) {
+					continue;
+				}
+				String account = "鏀粯瀹濓細" + UserUtil.filterAlipayAccount(extract.getAccount());
+				account = account + "-濮撳悕锛�" + UserUtil.filterAlipayName(extract.getName());
+
+				JSONObject object = new JSONObject();
+				object.put("id", extract.getId());
+				object.put("title", "浣犱簬" + TimeUtil.formatDate(receiveTime) + "鎻愮幇鎴愬姛");
+				object.put("account", account);
+				object.put("money", "楼" + extract.getMoney().setScale(2).toString());
+				JSONArray.add(object);
+			}
+		}
+
+		JSONObject json = new JSONObject();
+		json.put("count", JSONArray.size());
+		json.put("list", JSONArray);
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json));
+	}
+
+	/**
+	 * 鍒犻櫎鎻愮幇璁板綍
+	 * 
+	 * @param callback
+	 * @param acceptData
+	 * @param uid
+	 * @param vo
+	 * @param out
+	 */
+	@RequestMapping(value = "previewExtractRecord")
+	public void previewExtractRecord(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
+		if (uid == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+		try {
+			previewInfoService.previewExtractRecord(uid);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("宸叉坊鍔犻瑙�"));
+		} catch (PreviewInfoException e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
+			e.printStackTrace();
+		}
 	}
 
 	/**
@@ -121,19 +366,33 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "saveMineInfo")
-	public void saveMineInfo(String callback, AcceptData acceptData, MineInfoVO infoVO, MultipartFile file,
-			PrintWriter out) {
+	public void saveMineInfo(String callback, AcceptData acceptData, MineInfoVO infoVO, PrintWriter out) {
 		if (infoVO == null || infoVO.getUid() == null) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
 		try {
-			previewInfoService.saveMineInfo(infoVO, file);
+			previewInfoService.saveMineInfo(infoVO);
 			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("淇濆瓨鎴愬姛"));
+		} catch (PreviewInfoException e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
 		} catch (Exception e) {
 			LogHelper.errorDetailInfo(e);
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淇濆瓨澶辫触"));
 		}
+	}
+
+	@RequestMapping(value = "getMineInfo")
+	public void getMineInfo(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
+		PreviewInfo previewInfo = previewInfoService.get(uid, PreviewEnum.mineInfo);
+		MineInfoVO dto = null;
+		if (previewInfo != null && !StringUtil.isNullOrEmpty(previewInfo.getContent())) {
+			dto = new Gson().fromJson(previewInfo.getContent(), MineInfoVO.class);
+		}
+
+		if (dto == null)
+			dto = new MineInfoVO();
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(dto)));
 	}
 
 	/**
@@ -148,77 +407,135 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "saveMoneyArrival")
-	public void saveMoneyArrival(String callback, AcceptData acceptData, Long uid, BigDecimal money, String time,
-			String orderNo, PrintWriter out) {
+	public void saveMoneyArrival(String callback, AcceptData acceptData, Long uid, BigDecimal money, String dayTime,
+			PrintWriter out) {
+		try {
+			// 鏌ヨ鏈�鏂颁竴鏉℃敮浠樺疂璁㈠崟鍙�
+			PayInfo payInfo = payInfoService.getNearInfo();
+			String orderNo = getAlipayNo(payInfo.getOrderId());
+			
+			String link = previewInfoService.saveMoneyArrival(uid, money, dayTime, orderNo, acceptData.getPlatform());
+			JSONObject object = new JSONObject();
+			object.put("link", link);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
+		} catch (PreviewInfoException e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("棰勮澶辫触"));
+		}
+	}
+
+	private String getAlipayNo(String payNo) {
+		// 鏇挎崲鍓�8浣�
+		String newNo = payNo.substring(9, payNo.length());
+		newNo = TimeUtil.getyyyyMMdd(java.lang.System.currentTimeMillis()) + newNo;
+		// 闅忔満鐢熸垚鏇挎崲鍚�6浣�
+		newNo = newNo.substring(0, payNo.length() - 6);
+		newNo += (long) ((Math.random() * 9 + 1) * 100000);
+		return newNo;
+	}
+	
+	@RequestMapping(value = "getMoneyArrivalImg")
+	public void getMoneyArrivalImg(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
+		PreviewInfo previewInfo = previewInfoService.get(uid, PreviewEnum.moneyInfo);
+		String link = null;
+		if (previewInfo != null && StringUtil.isNullOrEmpty(previewInfo.getContent())) {
+			link = previewInfo.getContent();
+		}
+		JSONObject object = new JSONObject();
+		object.put("link", link);
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
+	}
+
+	/**
+	 * 鎺ㄩ�侀瑙�
+	 * @param callback
+	 * @param acceptData
+	 * @param uid
+	 * @param vo
+	 * @param out
+	 */
+	@RequestMapping(value = "saveOrderInfo")
+	public void saveOrderInfo(String callback, AcceptData acceptData, Long uid, Integer type, Integer num,
+			PrintWriter out) {
 		if (uid == null) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
 
-		try {
-			String link = previewInfoService.saveMoneyArrival(uid, money, time, orderNo);
-			JSONObject object = new JSONObject();
-			object.put("link", link);
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
-		} catch (Exception e) {
-			LogHelper.errorDetailInfo(e);
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淇濆瓨澶辫触"));
-		}
-	}
-
-	@RequestMapping(value = "getExtractRecord")
-	public void getExtractRecord(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
-		List<Extract> list = null;
-		PreviewInfo previewInfo = previewInfoService.get(uid, PreviewEnum.extractRecord);
-		if (previewInfo != null && !StringUtil.isNullOrEmpty(previewInfo.getContent())) {
-			Gson gson = new Gson();
-			list = gson.fromJson(previewInfo.getContent(), new TypeToken<ArrayList<Extract>>() {}.getType());
-		}
-		
-		if (list == null)
-			list = new ArrayList<>();
-
-		JSONArray JSONArray = new JSONArray();
-		for (Extract extract : list) {
-			Date receiveTime = extract.getReceiveTime();
-			if (receiveTime == null) {
-				receiveTime = new Date(extract.getExtractTime());
-			}
-			String account = "鏀粯瀹濓細" + UserUtil.filterAlipayAccount(extract.getAccount());
-			account = account + "-濮撳悕锛�" + UserUtil.filterAlipayName(extract.getName());
-
-			JSONObject object = new JSONObject();
-			object.put("id", extract.getId());
-			object.put("title", "浣犱簬" + TimeUtil.formatDate(receiveTime) + "鎻愮幇鎴愬姛");
-			object.put("account", account);
-			object.put("money", "楼" + extract.getMoney().setScale(2).toString());
-			JSONArray.add(object);
-		}
-
-		JSONObject json = new JSONObject();
-		json.put("count", JSONArray.size());
-		json.put("list", JSONArray);
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json));
-	}
-
-	@RequestMapping(value = "getMineInfo")
-	public void getMineInfo(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
-		getInfo(callback, acceptData, uid, out, PreviewEnum.mineInfo);
-	}
-
-	@RequestMapping(value = "getMoneyInfo")
-	public void getMoneyInfo(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
-		getInfo(callback, acceptData, uid, out, PreviewEnum.moneyInfo);
-	}
-
-	private void getInfo(String callback, AcceptData acceptData, Long uid, PrintWriter out, PreviewEnum previewEnum) {
-		PreviewInfo previewInfo = previewInfoService.get(uid, previewEnum);
-		if (previewInfo == null || StringUtil.isNullOrEmpty(previewInfo.getContent())) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
+		if (type == null || type < 1 || type > 2) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨璁㈠崟绫诲瀷"));
 			return;
 		}
-		JSONObject object = new JSONObject();
-		object.put("result", previewInfo.getContent());
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
+
+		if (num == null || num <= 0) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇峰~鍐欐帹閫佹暟閲�"));
+			return;
+		}
+
+		if (num > 50) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈�澶氭敮鎸�50鏉�"));
+			return;
+		}
+
+		// 鑾峰彇鏈�鏂拌鍗曞彿
+		String orderNo = commonOrderService.getNewestOrderNoByTaoBao();
+
+		// 闅忔満璁㈠崟鍙�
+		List<String> list = getRandomOrderNo(orderNo, num);
+		// new Thread(new Runnable() {
+		//
+		// @Override
+		// public void run() {
+		for (String orderId : list) {
+			PushContentDTO dto = PushMsgFactory.createInviteOrderStatisticed(Constant.SOURCE_TYPE_TAOBAO, orderId,
+					BigDecimal.ZERO);
+			try {
+				pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null);
+			} catch (NumberFormatException e) {
+				e.printStackTrace();
+			} catch (PushException e) {
+				e.printStackTrace();
+			}
+			try {
+				Thread.sleep(100);
+			} catch (InterruptedException e) {
+				e.printStackTrace();
+			}
+		}
+		// }
+		// }).start();
+
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎺ㄩ�佹垚鍔�"));
+	}
+
+	private List<String> getRandomOrderNo(String orderNo, int count) {
+		String newNo = orderNo.substring(0, 3);
+		long lenth = orderNo.length() - 3;
+
+		long tempNum = 1;
+		for (long i = 0; i < lenth - 1; i++) {
+			tempNum = tempNum * 10;
+		}
+
+		Set<String> set = new HashSet<>();
+		for (int i = 0; i < count; i++) {
+			int temp = set.size();
+			while (set.size() <= temp) {
+				long randomNum = (long) ((Math.random() * 9 + 1) * tempNum);
+				set.add(newNo + randomNum);
+			}
+		}
+
+		// 杞崲list
+		List<String> list = new ArrayList<>();
+		for (String s : set) {
+			list.add(s);
+		}
+		// 鎺掑簭
+		Collections.sort(list);
+
+		return list;
 	}
 }

--
Gitblit v1.8.0