| | |
| | | import com.yeshi.fanli.entity.admin.count.CountOrderInfo; |
| | | import com.yeshi.fanli.entity.admin.count.CountOrderTrackRate; |
| | | import com.yeshi.fanli.entity.admin.count.CountUserInfo; |
| | | import com.yeshi.fanli.entity.admin.count.DailyCountCoupon; |
| | | import com.yeshi.fanli.entity.admin.count.DailyCountMoments; |
| | | import com.yeshi.fanli.entity.admin.count.DailyCountOrder; |
| | | import com.yeshi.fanli.entity.admin.count.DailyCountUser; |
| | | import com.yeshi.fanli.service.inter.count.DailyCountCouponService; |
| | | import com.yeshi.fanli.service.inter.count.DailyCountMomentsService; |
| | | import com.yeshi.fanli.service.inter.count.DailyCountOrderService; |
| | | import com.yeshi.fanli.service.inter.count.DailyCountUserService; |
| | | import com.yeshi.fanli.service.inter.count.UserInfoCountService; |
| | | import com.yeshi.fanli.service.inter.order.CommonOrderCountService; |
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil; |
| | |
| | | @Resource |
| | | private CommonOrderCountService commonOrderCountService; |
| | | |
| | | @Resource |
| | | private DailyCountCouponService dailyCountCouponService; |
| | | |
| | | @Resource |
| | | private DailyCountUserService dailyCountUserService; |
| | | |
| | | @Resource |
| | | private DailyCountOrderService dailyCountOrderService; |
| | | |
| | | @Resource |
| | | private DailyCountMomentsService dailyCountMomentsService; |
| | | |
| | | |
| | | private void verifyQueryData(String callback, Integer dateType, String year, String startTime, |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 统计订单佣金 |
| | | * @param callback |
| | | * @param channelArray |
| | | * @param dateType |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getOrderTypeNum") |
| | | public void getOrderTypeNum(String callback, String typeArray, Integer dateType, String year, |
| | | String startTime, String endTime, Integer countType, PrintWriter out) { |
| | | try { |
| | | // 数据验证处理 |
| | | verifyQueryData(callback, dateType, year, startTime, endTime, out); |
| | | |
| | | Date beginDate = getBeginDate(dateType, year, startTime); |
| | | Date endDate = getEndDate(dateType, year, endTime); |
| | | |
| | | Gson gson = new Gson(); |
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); |
| | | // 渠道 |
| | | List<Integer> typeList = null; |
| | | if (typeArray != null && typeArray.trim().length() > 4) { |
| | | typeList = gson.fromJson(typeArray, new TypeToken<ArrayList<Integer>>() {}.getType()); |
| | | } |
| | | |
| | | JSONArray line_list = new JSONArray(); |
| | | if (typeList != null && typeList.size() > 0) { |
| | | for (Integer type : typeList) { |
| | | List<CountOrderInfo> listData = userInfoCountService.countOrderType(type, beginDate, endDate); |
| | | List<Object> list = machineOrderResultMoney(dateList, dateType, listData); |
| | | JSONObject innerList = new JSONObject(); |
| | | |
| | | String name = ""; |
| | | if (type == 1) { |
| | | name = "自购订单"; |
| | | } else if (type == 2) { |
| | | name = "分享订单"; |
| | | } else if (type == 3) { |
| | | name = "邀请订单"; |
| | | } |
| | | innerList.put("name", name); |
| | | innerList.put("data", gson.toJson(list)); |
| | | line_list.add(innerList); |
| | | } |
| | | } else { |
| | | List<CountOrderInfo> listData = userInfoCountService.countOrderType(null, beginDate, endDate); |
| | | List<Object> list = machineOrderResultMoney(dateList, dateType, listData); |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", "全部"); |
| | | innerList.put("data", gson.toJson(list)); |
| | | line_list.add(innerList); |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("line_list", line_list); |
| | | data.put("xAxis_list", gson.toJson(dateList)); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 券相关图表数据 |
| | | * @param callback |
| | | * @param dateType |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param type 查询类型 |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getCouponCharts") |
| | | public void getCouponCharts(String callback, Integer dateType, String year, String startTime, String endTime, |
| | | String typeArray, PrintWriter out) { |
| | | try { |
| | | // 数据验证处理 |
| | | verifyQueryData(callback, dateType, year, startTime, endTime, out); |
| | | |
| | | Date beginDate = getBeginDate(dateType, year, startTime); |
| | | Date endDate = getEndDate(dateType, year, endTime); |
| | | |
| | | Gson gson = new Gson(); |
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); |
| | | |
| | | // 渠道 |
| | | List<String> typelList = null; |
| | | if (typeArray != null && typeArray.trim().length() > 4) { |
| | | typelList = gson.fromJson(typeArray, new TypeToken<ArrayList<String>>() {}.getType()); |
| | | } |
| | | |
| | | JSONArray line_list = new JSONArray(); |
| | | |
| | | if (typelList != null && typelList.size() > 0) { |
| | | for (String type: typelList) { |
| | | List<DailyCountCoupon> listData = dailyCountCouponService.getDailyCountList(type, beginDate, endDate); |
| | | // 处理数据 |
| | | List<Object> list = machineDailyCountCoupon(dateList, dateType, listData); |
| | | |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", dailyCountCouponService.getTypeEnumDesc(type)); |
| | | innerList.put("data", gson.toJson(list)); |
| | | line_list.add(innerList); |
| | | } |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("line_list", line_list); |
| | | data.put("xAxis_list", gson.toJson(dateList)); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | private List<Object> machineDailyCountCoupon(List<String> dateList, Integer dateType, List<DailyCountCoupon> listData) { |
| | | List<Object> list = new ArrayList<>(); |
| | | for (String date: dateList) { |
| | | BigDecimal result = new BigDecimal(0); |
| | | |
| | | if (listData != null) { |
| | | for (DailyCountCoupon history: listData) { |
| | | if (dateType == 1) { |
| | | String gernalTime = TimeUtil.getGernalTime(history.getDay().getTime()); |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | continue; |
| | | } |
| | | } else if (dateType == 2){ |
| | | String gernalTime = TimeUtil.getMonthOnlyMM(history.getDay()); |
| | | if(gernalTime.startsWith("0")) { |
| | | gernalTime = gernalTime.substring(1, 2); |
| | | } |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | } |
| | | } else if (dateType == 3) { |
| | | String gernalTime = TimeUtil.getYearOnlyYYYY(history.getDay()); |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | list.add(result); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 用户相关图表数据 |
| | | * @param callback |
| | | * @param dateType |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param type 查询类型 |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getUserCharts") |
| | | public void getUserCharts(String callback, Integer dateType, String year, String startTime, String endTime, |
| | | String typeArray, String channelArray, PrintWriter out) { |
| | | try { |
| | | // 数据验证处理 |
| | | verifyQueryData(callback, dateType, year, startTime, endTime, out); |
| | | |
| | | Date beginDate = getBeginDate(dateType, year, startTime); |
| | | Date endDate = getEndDate(dateType, year, endTime); |
| | | |
| | | Gson gson = new Gson(); |
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); |
| | | |
| | | List<String> typelList = null; |
| | | if (typeArray != null && typeArray.trim().length() > 4) { |
| | | typelList = gson.fromJson(typeArray, new TypeToken<ArrayList<String>>() {}.getType()); |
| | | } |
| | | if (typelList == null || typelList.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递类型错误")); |
| | | return; |
| | | } |
| | | |
| | | // 渠道 |
| | | List<String> channelList = null; |
| | | if (channelArray != null && channelArray.trim().length() > 4) { |
| | | channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType()); |
| | | } |
| | | |
| | | JSONArray line_list = new JSONArray(); |
| | | |
| | | if (channelList != null && channelList.size() > 0) { |
| | | String type = typelList.get(0); |
| | | for (String channel: channelList) { |
| | | List<DailyCountUser> listData = dailyCountUserService.getDailyCountList(type, beginDate, endDate, channel); |
| | | // 处理数据 |
| | | List<Object> list = machineDailyCountUser(dateList, dateType, listData); |
| | | |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", channel); |
| | | innerList.put("data", gson.toJson(list)); |
| | | line_list.add(innerList); |
| | | } |
| | | } else { |
| | | for (String type: typelList) { |
| | | List<DailyCountUser> listData = dailyCountUserService.getDailyCountList(type, beginDate, endDate, null); |
| | | // 处理数据 |
| | | List<Object> list = machineDailyCountUser(dateList, dateType, listData); |
| | | |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", dailyCountUserService.getTypeEnumDesc(type)); |
| | | innerList.put("data", gson.toJson(list)); |
| | | line_list.add(innerList); |
| | | } |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("line_list", line_list); |
| | | data.put("xAxis_list", gson.toJson(dateList)); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | private List<Object> machineDailyCountUser(List<String> dateList, Integer dateType, List<DailyCountUser> listData) { |
| | | List<Object> list = new ArrayList<>(); |
| | | for (String date: dateList) { |
| | | BigDecimal result = new BigDecimal(0); |
| | | |
| | | if (listData != null) { |
| | | BigDecimal totalDay = new BigDecimal(0); |
| | | BigDecimal totalValid = new BigDecimal(0); |
| | | |
| | | for (DailyCountUser history: listData) { |
| | | if (dateType == 1) { |
| | | String gernalTime = TimeUtil.getGernalTime(history.getDay().getTime()); |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | continue; |
| | | } |
| | | } else if (dateType == 2){ |
| | | String gernalTime = TimeUtil.getMonthOnlyMM(history.getDay()); |
| | | if(gernalTime.startsWith("0")) { |
| | | gernalTime = gernalTime.substring(1, 2); |
| | | } |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | if (!history.isRate()) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | } else { |
| | | totalDay = MoneyBigDecimalUtil.add(totalDay, history.getTotalDay()); |
| | | totalValid = MoneyBigDecimalUtil.add(totalValid, history.getTotalValid()); |
| | | } |
| | | } |
| | | } else if (dateType == 3) { |
| | | String gernalTime = TimeUtil.getYearOnlyYYYY(history.getDay()); |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | if (!history.isRate()) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | } else { |
| | | totalDay = MoneyBigDecimalUtil.add(totalDay, history.getTotalDay()); |
| | | totalValid = MoneyBigDecimalUtil.add(totalValid, history.getTotalValid()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 判断是否计算比例 |
| | | if ((dateType == 2 || dateType == 3) && totalDay.compareTo(BigDecimal.valueOf(0)) > 0){ |
| | | result = MoneyBigDecimalUtil.div(totalValid, totalDay); |
| | | result = MoneyBigDecimalUtil.mul(result, BigDecimal.valueOf(100)); |
| | | } |
| | | } |
| | | list.add(result); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 订单相关图表数据 |
| | | * @param callback |
| | | * @param dateType |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param type 查询类型 |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getOrderCharts") |
| | | public void getOrderCharts(String callback, Integer dateType, String year, String startTime, String endTime, |
| | | String typeArray, String channelArray, PrintWriter out) { |
| | | try { |
| | | // 数据验证处理 |
| | | verifyQueryData(callback, dateType, year, startTime, endTime, out); |
| | | |
| | | Date beginDate = getBeginDate(dateType, year, startTime); |
| | | Date endDate = getEndDate(dateType, year, endTime); |
| | | |
| | | Gson gson = new Gson(); |
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); |
| | | |
| | | // 渠道 |
| | | List<String> typelList = null; |
| | | if (typeArray != null && typeArray.trim().length() > 4) { |
| | | typelList = gson.fromJson(typeArray, new TypeToken<ArrayList<String>>() {}.getType()); |
| | | } |
| | | |
| | | if (typelList == null || typelList.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递类型错误")); |
| | | return; |
| | | } |
| | | |
| | | // 渠道 |
| | | List<String> channelList = null; |
| | | if (channelArray != null && channelArray.trim().length() > 4) { |
| | | channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType()); |
| | | } |
| | | |
| | | |
| | | JSONArray line_list = new JSONArray(); |
| | | if (channelList != null && channelList.size() > 0) { |
| | | String type = typelList.get(0); |
| | | for (String channel: channelList) { |
| | | List<DailyCountOrder> listData = dailyCountOrderService.getDailyCountList(type, beginDate, endDate, channel); |
| | | // 处理数据 |
| | | List<Object> list = machineDailyCountOrder(dateList, dateType, listData); |
| | | |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", channel); |
| | | innerList.put("data", gson.toJson(list)); |
| | | line_list.add(innerList); |
| | | } |
| | | } else { |
| | | for (String type: typelList) { |
| | | List<DailyCountOrder> listData = dailyCountOrderService.getDailyCountList(type, beginDate, endDate, null); |
| | | // 处理数据 |
| | | List<Object> list = machineDailyCountOrder(dateList, dateType, listData); |
| | | |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", dailyCountOrderService.getTypeEnumDesc(type)); |
| | | innerList.put("data", gson.toJson(list)); |
| | | line_list.add(innerList); |
| | | } |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("line_list", line_list); |
| | | data.put("xAxis_list", gson.toJson(dateList)); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | private List<Object> machineDailyCountOrder(List<String> dateList, Integer dateType, List<DailyCountOrder> listData) { |
| | | List<Object> list = new ArrayList<>(); |
| | | for (String date: dateList) { |
| | | BigDecimal result = new BigDecimal(0); |
| | | |
| | | if (listData != null) { |
| | | BigDecimal totalDay = new BigDecimal(0); |
| | | BigDecimal totalValid = new BigDecimal(0); |
| | | |
| | | for (DailyCountOrder history: listData) { |
| | | if (dateType == 1) { |
| | | String gernalTime = TimeUtil.getGernalTime(history.getDay().getTime()); |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | continue; |
| | | } |
| | | } else if (dateType == 2){ |
| | | String gernalTime = TimeUtil.getMonthOnlyMM(history.getDay()); |
| | | if(gernalTime.startsWith("0")) { |
| | | gernalTime = gernalTime.substring(1, 2); |
| | | } |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | if (!history.isRate()) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | } else { |
| | | totalDay = MoneyBigDecimalUtil.add(totalDay, history.getTotalDay()); |
| | | totalValid = MoneyBigDecimalUtil.add(totalValid, history.getTotalValid()); |
| | | } |
| | | } |
| | | } else if (dateType == 3) { |
| | | String gernalTime = TimeUtil.getYearOnlyYYYY(history.getDay()); |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | if (!history.isRate()) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | } else { |
| | | totalDay = MoneyBigDecimalUtil.add(totalDay, history.getTotalDay()); |
| | | totalValid = MoneyBigDecimalUtil.add(totalValid, history.getTotalValid()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 判断是否计算比例 |
| | | if ((dateType == 2 || dateType == 3) && totalDay.compareTo(BigDecimal.valueOf(0)) > 0){ |
| | | result = MoneyBigDecimalUtil.div(totalValid, totalDay); |
| | | result = MoneyBigDecimalUtil.mul(result, BigDecimal.valueOf(100)); |
| | | } |
| | | } |
| | | list.add(result); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | |
| | | |
| | | @RequestMapping(value = "getMomentsCharts") |
| | | public void getMomentsCharts(String callback, Integer dateType, String year, String startTime, String endTime, |
| | | String typeArray, PrintWriter out) { |
| | | try { |
| | | // 数据验证处理 |
| | | verifyQueryData(callback, dateType, year, startTime, endTime, out); |
| | | |
| | | Date beginDate = getBeginDate(dateType, year, startTime); |
| | | Date endDate = getEndDate(dateType, year, endTime); |
| | | |
| | | Gson gson = new Gson(); |
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); |
| | | |
| | | // 渠道 |
| | | List<String> typelList = null; |
| | | if (typeArray != null && typeArray.trim().length() > 4) { |
| | | typelList = gson.fromJson(typeArray, new TypeToken<ArrayList<String>>() {}.getType()); |
| | | } |
| | | |
| | | if (typelList == null || typelList.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递类型错误")); |
| | | return; |
| | | } |
| | | |
| | | |
| | | JSONArray line_list = new JSONArray(); |
| | | for (String type: typelList) { |
| | | List<DailyCountMoments> listData = dailyCountMomentsService.getDailyCountList(type, beginDate, endDate); |
| | | // 处理数据 |
| | | List<Object> list = machineDailyCountMoments(dateList, dateType, listData); |
| | | |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", dailyCountMomentsService.getTypeEnumDesc(type)); |
| | | innerList.put("data", gson.toJson(list)); |
| | | line_list.add(innerList); |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("line_list", line_list); |
| | | data.put("xAxis_list", gson.toJson(dateList)); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | private List<Object> machineDailyCountMoments(List<String> dateList, Integer dateType, List<DailyCountMoments> listData) { |
| | | List<Object> list = new ArrayList<>(); |
| | | for (String date: dateList) { |
| | | BigDecimal result = new BigDecimal(0); |
| | | |
| | | if (listData != null) { |
| | | for (DailyCountMoments history: listData) { |
| | | if (dateType == 1) { |
| | | String gernalTime = TimeUtil.getGernalTime(history.getDay().getTime()); |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | } |
| | | } else if (dateType == 2){ |
| | | String gernalTime = TimeUtil.getMonthOnlyMM(history.getDay()); |
| | | if(gernalTime.startsWith("0")) { |
| | | gernalTime = gernalTime.substring(1, 2); |
| | | } |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | } |
| | | } else if (dateType == 3) { |
| | | String gernalTime = TimeUtil.getYearOnlyYYYY(history.getDay()); |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | result = MoneyBigDecimalUtil.add(result, history.getTotal()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | list.add(result); |
| | | } |
| | | return list; |
| | | } |
| | | } |