From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 23 五月 2020 09:54:38 +0800 Subject: [PATCH] 足迹、收藏订单兼容新需求 --- fanli/src/main/java/com/yeshi/fanli/service/impl/count/DailyCountOrderServiceImpl.java | 203 +++++++++++++++++++++++++++----------------------- 1 files changed, 110 insertions(+), 93 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/count/DailyCountOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/count/DailyCountOrderServiceImpl.java index f7137a2..d1a552b 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/count/DailyCountOrderServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/count/DailyCountOrderServiceImpl.java @@ -36,35 +36,34 @@ @Resource private DailyCountOrderDao dailyCountOrderDao; - + @Resource private HongBaoV2CountService hongBaoV2CountService; - + @Resource private CommonOrderCountService commonOrderCountService; - + @Resource private UserInfoRegisterService userInfoRegisterService; - + @Resource private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService; - + @Resource private TaoBaoOrderService taoBaoOrderService; - + @Resource private JDOrderService jdOrderService; - + @Resource private PDDOrderService pddOrderService; - + @Resource private LostOrderService lostOrderService; - - @Override - public List<DailyCountOrder> getDailyCountList(String type, Date startTime, Date endTime, String channel) throws Exception { + public List<DailyCountOrder> getDailyCountList(String type, Date startTime, Date endTime, String channel) + throws Exception { // 鏌ヨ绫诲瀷 DailyCountOrderEnum typeEnum = getTypeEnum(type); if (typeEnum == null) { @@ -79,6 +78,7 @@ /** * 鑾峰彇鏋氫妇绫诲瀷 + * * @param type * @return */ @@ -86,9 +86,9 @@ if (StringUtil.isNullOrEmpty(name)) { return null; } - + DailyCountOrderEnum[] array = DailyCountOrderEnum.values(); - for (int i = 0; i < array.length; i ++) { + for (int i = 0; i < array.length; i++) { if (array[i].name().equals(name)) { return array[i]; } @@ -96,9 +96,9 @@ return null; } - /** * 鑾峰彇鏋氫妇绫诲瀷 + * * @param type * @return */ @@ -107,9 +107,9 @@ if (StringUtil.isNullOrEmpty(name)) { return ""; } - + DailyCountOrderEnum[] array = DailyCountOrderEnum.values(); - for (int i = 0; i < array.length; i ++) { + for (int i = 0; i < array.length; i++) { if (array[i].name().equals(name)) { return array[i].getDesc(); } @@ -118,22 +118,27 @@ return ""; } - - /** * 鍒濆鏁版嵁 + * * @param typeEnum * @throws Exception */ - private void initData(DailyCountOrderEnum typeEnum) throws Exception { + @Override + public void initData(DailyCountOrderEnum typeEnum) throws Exception { Date lastDate = null; DailyCountOrder lastRecord = dailyCountOrderDao.getMaxDate(typeEnum); if (lastRecord != null) { lastDate = lastRecord.getUpdateDate(); } else { - lastDate = TimeUtil.parse("2017-05-06"); + lastDate = TimeUtil.parse("2018-01-20"); } + long min = DateUtil.dateDiffMin(lastDate, new Date()); + if (min <= 10) { // 10鍒嗛挓浠ュ唴涓嶇粺璁� + return; + } + Date today = new Date(); int betweenDays = DateUtil.daysBetween2(lastDate, today); for (int i = 0; i <= betweenDays; i++) { @@ -176,69 +181,70 @@ /** * 缁熻璁㈠崟鏁伴噺 + * * @param preDay * @param typeEnum * @param orderType * @throws Exception */ private void addOrderNumCount(String preDay, DailyCountOrderEnum typeEnum, int orderType) throws Exception { - Long count = hongBaoV2CountService.countOrderByTypeAndDate(orderType, preDay); - if (count == null) - count = 0L; - - DailyCountOrder obj = new DailyCountOrder(); - obj.setTotal(BigDecimal.valueOf(count)); - obj.setType(typeEnum); - obj.setUpdateDate(new Date()); - obj.setDay(TimeUtil.parse(preDay)); - obj.setId(StringUtil.Md5(preDay + typeEnum.name())); - dailyCountOrderDao.save(obj); + Long count = hongBaoV2CountService.countOrderByTypeAndDate(orderType, preDay); + if (count == null) + count = 0L; + + DailyCountOrder obj = new DailyCountOrder(); + obj.setTotal(BigDecimal.valueOf(count)); + obj.setType(typeEnum); + obj.setUpdateDate(new Date()); + obj.setDay(TimeUtil.parse(preDay)); + obj.setId(StringUtil.Md5(preDay + typeEnum.name())); + dailyCountOrderDao.save(obj); } - + /** * 缁熻鍚勪釜娓犻亾璁㈠崟鏁版嵁 + * * @param preDay * @param typeEnum * @throws Exception */ private void addChannelOrderNum(String preDay, DailyCountOrderEnum typeEnum) throws Exception { - List<UserInfoRegister> listRegister = null; + List<UserInfoRegister> listRegister = null; // 缁熻褰撴棩璁㈠崟 List<CountOrderDTO> listOrder = commonOrderCountService.countValidOrderByDay(preDay); - + if (listOrder != null && listOrder.size() > 0) { List<Long> listUid = new ArrayList<>(); - for (CountOrderDTO countOrderDTO: listOrder) { + for (CountOrderDTO countOrderDTO : listOrder) { listUid.add(countOrderDTO.getUid()); } listRegister = userInfoRegisterService.listByMultipleUids(listUid); } - + // 缁熻鍚勪釜娓犻亾 ChannelEnum[] channels = ChannelEnum.values(); for (int i = 0; i < channels.length; i++) { long count = 0; String channelVlaue = channels[i].getVlaue(); if (listOrder != null && listOrder.size() > 0 && listRegister != null && listRegister.size() > 0) { - for (CountOrderDTO dto: listOrder) { + for (CountOrderDTO dto : listOrder) { Long orderUid = dto.getUid(); if (orderUid == null) { continue; } - - for (UserInfoRegister register: listRegister) { + + for (UserInfoRegister register : listRegister) { Long uid = register.getId(); - String vlaue =register.getChannel().getVlaue(); + String vlaue = register.getChannel(); // 娓犻亾 銆佺敤鎴穒d鍖归厤 if (channelVlaue.equalsIgnoreCase(vlaue) && uid.longValue() == orderUid.longValue()) { - count ++; + count++; break; } } } } - - + DailyCountOrder obj = new DailyCountOrder(); obj.setTotal(BigDecimal.valueOf(count)); obj.setType(typeEnum); @@ -249,9 +255,10 @@ dailyCountOrderDao.save(obj); } } - + /** * 缁熻鏂颁汉24H鍐呬笅鍗曟暟閲� + * * @param preDay * @param typeEnum * @throws Exception @@ -260,7 +267,7 @@ ChannelEnum[] channels = ChannelEnum.values(); for (int i = 0; i < channels.length; i++) { int count = 0; - + List<UserInfoRegister> list = userInfoRegisterService.listByChannelAndDay(channels[i].getVlaue(), preDay); if (list != null && list.size() > 0) { for (UserInfoRegister user : list) { @@ -270,7 +277,7 @@ count += total; } } - + DailyCountOrder obj = new DailyCountOrder(); obj.setTotal(BigDecimal.valueOf(count)); obj.setType(typeEnum); @@ -281,43 +288,43 @@ dailyCountOrderDao.save(obj); } } - + /** * 缁熻娓犻亾閲戦 + * * @param preDay * @param typeEnum * @throws Exception */ - private void addChannelOrderMoney(String preDay, DailyCountOrderEnum typeEnum) throws Exception { - List<UserInfoRegister> listRegister = null; + public void addChannelOrderMoney(String preDay, DailyCountOrderEnum typeEnum) throws Exception { + List<UserInfoRegister> listRegister = null; // 鏌ヨ璁㈠崟浣i噾 List<CountOrderDTO> listOrder = commonOrderCountService.countCommissionByDay(preDay); - + if (listOrder != null && listOrder.size() > 0) { List<Long> listUid = new ArrayList<>(); - for (CountOrderDTO countOrderDTO: listOrder) { + for (CountOrderDTO countOrderDTO : listOrder) { listUid.add(countOrderDTO.getUid()); } listRegister = userInfoRegisterService.listByMultipleUids(listUid); } - - + ChannelEnum[] channels = ChannelEnum.values(); for (int i = 0; i < channels.length; i++) { BigDecimal money = new BigDecimal(0); String channelVlaue = channels[i].getVlaue(); - + if (listOrder != null && listOrder.size() > 0 && listRegister != null && listRegister.size() > 0) { - for (CountOrderDTO dto: listOrder) { + for (CountOrderDTO dto : listOrder) { Long orderUid = dto.getUid(); BigDecimal commission = dto.getCommission(); - if (commission != null || orderUid == null) { + if (commission == null || orderUid == null) { continue; } - - for (UserInfoRegister register: listRegister) { + + for (UserInfoRegister register : listRegister) { Long uid = register.getId(); - String vlaue =register.getChannel().getVlaue(); + String vlaue = register.getChannel(); // 娓犻亾 銆佺敤鎴穒d鍖归厤 if (channelVlaue.equalsIgnoreCase(vlaue) && uid.longValue() == orderUid.longValue()) { money = MoneyBigDecimalUtil.add(money, commission); @@ -325,8 +332,7 @@ } } } - - + DailyCountOrder obj = new DailyCountOrder(); obj.setTotal(money); obj.setType(typeEnum); @@ -337,9 +343,10 @@ dailyCountOrderDao.save(obj); } } - + /** * 缁熻缁存潈璁㈠崟鏁伴噺 + * * @param preDay * @param typeEnum * @throws Exception @@ -348,7 +355,7 @@ Integer count = userOrderWeiQuanRecordService.countWeiQaunOrderNumberByDate(preDay); if (count == null) count = 0; - + DailyCountOrder obj = new DailyCountOrder(); obj.setTotal(BigDecimal.valueOf(count)); obj.setType(typeEnum); @@ -357,10 +364,10 @@ obj.setId(StringUtil.Md5(preDay + typeEnum.name())); dailyCountOrderDao.save(obj); } - - + /** * 鏌ヨ缁存潈閲戦 + * * @param preDay * @param typeEnum * @throws Exception @@ -369,7 +376,7 @@ BigDecimal money = userOrderWeiQuanRecordService.countWeiQaunOrderMoneyByDate(preDay); if (money == null) money = new BigDecimal(0); - + DailyCountOrder obj = new DailyCountOrder(); obj.setTotal(money); obj.setType(typeEnum); @@ -378,10 +385,10 @@ obj.setId(StringUtil.Md5(preDay + typeEnum.name())); dailyCountOrderDao.save(obj); } - - + /** * 娣樺疂璁㈠崟璺熻釜鐜� + * * @param preDay * @param typeEnum * @throws Exception @@ -389,17 +396,20 @@ private void addTBOrderTrackRate(String preDay, DailyCountOrderEnum typeEnum) throws Exception { // 缁熻璺熻釜鍒版暟鎹� Long count = commonOrderCountService.countOrderBySourceTypeAndDay(Constant.SOURCE_TYPE_TAOBAO, preDay); - + Long total = taoBaoOrderService.countOrderByDay(preDay); - + // 璁$畻姣斾緥 BigDecimal rate = new BigDecimal(0); if (total != null && total > 0 && count != null && count > 0) { - rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count),BigDecimal.valueOf(total)); + rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count), BigDecimal.valueOf(total)); rate = MoneyBigDecimalUtil.mul(rate, BigDecimal.valueOf(100)); - } + } DailyCountOrder obj = new DailyCountOrder(); + obj.setRate(true); + obj.setTotalDay(BigDecimal.valueOf(total)); + obj.setTotalValid(BigDecimal.valueOf(count)); obj.setTotal(rate); obj.setType(typeEnum); obj.setUpdateDate(new Date()); @@ -407,9 +417,10 @@ obj.setId(StringUtil.Md5(preDay + typeEnum.name())); dailyCountOrderDao.save(obj); } - + /** * 浜笢璁㈠崟璺熻釜鐜� + * * @param preDay * @param typeEnum * @throws Exception @@ -417,17 +428,20 @@ private void addJDOrderTrackRate(String preDay, DailyCountOrderEnum typeEnum) throws Exception { // 缁熻璺熻釜鍒版暟鎹� Long count = commonOrderCountService.countOrderBySourceTypeAndDay(Constant.SOURCE_TYPE_JD, preDay); - + Long total = jdOrderService.countOrderByDay(preDay); - + // 璁$畻姣斾緥 BigDecimal rate = new BigDecimal(0); if (total != null && total > 0 && count != null && count > 0) { - rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count),BigDecimal.valueOf(total)); + rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count), BigDecimal.valueOf(total)); rate = MoneyBigDecimalUtil.mul(rate, BigDecimal.valueOf(100)); - } + } DailyCountOrder obj = new DailyCountOrder(); + obj.setRate(true); + obj.setTotalDay(BigDecimal.valueOf(total)); + obj.setTotalValid(BigDecimal.valueOf(count)); obj.setTotal(rate); obj.setType(typeEnum); obj.setUpdateDate(new Date()); @@ -435,11 +449,10 @@ obj.setId(StringUtil.Md5(preDay + typeEnum.name())); dailyCountOrderDao.save(obj); } - - - + /** * 鎷煎澶氳鍗曡窡韪巼 + * * @param preDay * @param typeEnum * @throws Exception @@ -447,16 +460,19 @@ private void addPDDOrderTrackRate(String preDay, DailyCountOrderEnum typeEnum) throws Exception { // 缁熻璺熻釜鍒版暟鎹� Long count = commonOrderCountService.countOrderBySourceTypeAndDay(Constant.SOURCE_TYPE_PDD, preDay); - + Long total = pddOrderService.countOrderByDay(preDay); // 璁$畻姣斾緥 BigDecimal rate = new BigDecimal(0); if (total != null && total > 0 && count != null && count > 0) { - rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count),BigDecimal.valueOf(total)); + rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count), BigDecimal.valueOf(total)); rate = MoneyBigDecimalUtil.mul(rate, BigDecimal.valueOf(100)); - } + } DailyCountOrder obj = new DailyCountOrder(); + obj.setRate(true); + obj.setTotalDay(BigDecimal.valueOf(total)); + obj.setTotalValid(BigDecimal.valueOf(count)); obj.setTotal(rate); obj.setType(typeEnum); obj.setUpdateDate(new Date()); @@ -467,6 +483,7 @@ /** * 缁熻鐢宠瘔璁㈠崟鏈鐞嗘暟閲� + * * @param preDay * @param typeEnum * @throws Exception @@ -475,7 +492,7 @@ Integer num = lostOrderService.countLostOrderNum(preDay, LostOrder.RESULT_CODE_VERFING); if (num == null) num = 0; - + DailyCountOrder obj = new DailyCountOrder(); obj.setTotal(BigDecimal.valueOf(num)); obj.setType(typeEnum); @@ -484,10 +501,10 @@ obj.setId(StringUtil.Md5(preDay + typeEnum.name())); dailyCountOrderDao.save(obj); } - - + /** * 缁熻鐢宠瘔璁㈠崟 澶勭悊澶辫触 + * * @param preDay * @param typeEnum * @throws Exception @@ -496,7 +513,7 @@ Integer num = lostOrderService.countLostOrderNum(preDay, LostOrder.RESULT_CODE_FAIL); if (num == null) num = 0; - + DailyCountOrder obj = new DailyCountOrder(); obj.setTotal(BigDecimal.valueOf(num)); obj.setType(typeEnum); @@ -505,11 +522,10 @@ obj.setId(StringUtil.Md5(preDay + typeEnum.name())); dailyCountOrderDao.save(obj); } - - - + /** * 缁熻鐢宠瘔璁㈠崟 澶勭悊鎴愬姛 + * * @param preDay * @param typeEnum * @throws Exception @@ -518,7 +534,7 @@ Integer num = lostOrderService.countLostOrderNum(preDay, LostOrder.RESULT_CODE_SUCCESS); if (num == null) num = 0; - + DailyCountOrder obj = new DailyCountOrder(); obj.setTotal(BigDecimal.valueOf(num)); obj.setType(typeEnum); @@ -527,9 +543,10 @@ obj.setId(StringUtil.Md5(preDay + typeEnum.name())); dailyCountOrderDao.save(obj); } - + /** * 璁㈠崟鎵惧洖鎴愬姛缁熻閲戦 + * * @param preDay * @throws Exception */ @@ -537,7 +554,7 @@ BigDecimal money = lostOrderService.countAppealMoney(preDay); if (money == null) money = new BigDecimal("0"); - + DailyCountOrder obj = new DailyCountOrder(); obj.setTotal(money); obj.setType(typeEnum); -- Gitblit v1.8.0