From 76bbafa1a559978d1dee000034608b4934551a33 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期一, 18 五月 2020 14:15:53 +0800 Subject: [PATCH] 统计 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PreviewInfoControllerV2.java | 99 +++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 87 insertions(+), 12 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 fd3361b..71c1eee 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 @@ -4,8 +4,11 @@ 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; @@ -15,20 +18,26 @@ 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.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.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; @@ -61,6 +70,13 @@ @Resource private OrderMoneyDailyCountService orderMoneyDailyCountService; + + @Resource + private CommonOrderService commonOrderService; + + @Resource + private PushService pushService; + /** @@ -357,6 +373,8 @@ try { 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("淇濆瓨澶辫触")); @@ -366,13 +384,14 @@ @RequestMapping(value = "getMineInfo") public void getMineInfo(String callback, AcceptData acceptData, Long uid, PrintWriter out) { PreviewInfo previewInfo = previewInfoService.get(uid, PreviewEnum.mineInfo); - if (previewInfo == null || StringUtil.isNullOrEmpty(previewInfo.getContent())) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); - return; + MineInfoVO dto = null; + if (previewInfo != null && !StringUtil.isNullOrEmpty(previewInfo.getContent())) { + dto = new Gson().fromJson(previewInfo.getContent(), MineInfoVO.class); } - MineInfoVO dto = new Gson().fromJson(previewInfo.getContent(), MineInfoVO.class); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(dto)); + if (dto == null) + dto = new MineInfoVO(); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(dto))); } /** @@ -411,12 +430,12 @@ @RequestMapping(value = "getMoneyArrivalImg") public void getMoneyArrivalImg(String callback, AcceptData acceptData, Long uid, PrintWriter out) { PreviewInfo previewInfo = previewInfoService.get(uid, PreviewEnum.moneyInfo); - if (previewInfo == null || StringUtil.isNullOrEmpty(previewInfo.getContent())) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); - return; + String link = null; + if (previewInfo != null && StringUtil.isNullOrEmpty(previewInfo.getContent())) { + link = previewInfo.getContent(); } JSONObject object = new JSONObject(); - object.put("link", previewInfo.getContent()); + object.put("link", link); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object)); } @@ -435,11 +454,67 @@ return; } - if (type == null || num == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇峰畬鍠勬暟鎹�")); + if (type == null || type < 1 || type > 2) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨璁㈠崟绫诲瀷")); return; } - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("淇濆瓨鎴愬姛")); + 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); + for (String orderId: list) { + PushContentDTO dto = PushMsgFactory.createFanLiOrderStatisticed(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(); + } + } + 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