package com.yeshi.fanli.controller.admin; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import net.sf.json.JSONArray; import net.sf.json.JSONObject; 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.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.yeshi.fanli.entity.admin.OrderAdmin; import com.yeshi.fanli.service.inter.hongbao.HongBaoService; import com.yeshi.fanli.service.inter.order.OrderService; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; @Controller @RequestMapping("admin/new/api/v1/order") public class OrderAdminController { @Resource private OrderService orderService; @Resource private HongBaoService hongBaoService; @RequestMapping(value ="getOrderList",method=RequestMethod.POST) public void getOrderList(int pageIndex,String key,PrintWriter out){ List orderAdminList = hongBaoService.getOrderAdminList(pageIndex,key); int count = orderService.getCount(key); int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1; PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage); JSONObject data = new JSONObject(); data.put("pe", pe); data.put("orderList", JsonUtil.getSimpleGsonWithDateAndSerialization().toJson(orderAdminList)); out.print(JsonUtil.loadTrueResult(data)); } /** * 统计当天新增用户24小时内产生的订单 * @param callback * @param pageIndex * @param pageSize * @param channel 渠道名称 如:VIVO * @param out */ @RequestMapping(value = "get24HOderByChannel") public void get24HOderByChannel(String callback, Integer pageIndex, Integer pageSize, String channelArray, PrintWriter out) { if (pageIndex == null || pageIndex < 1) { pageIndex = 1; } if (pageSize == null || pageSize < 1) { pageSize = Constant.PAGE_SIZE; } try { if (StringUtil.isNullOrEmpty(channelArray)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择操作的数据")); return; } Gson gson = new Gson(); List list = gson.fromJson(channelArray, new TypeToken>() {}.getType()); if (list == null || list.size() == 0) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未检测到删除的数据")); return; } // List> list = hongBaoService.count24HOderByChannel((pageIndex - 1) * pageSize, pageSize, channel); // // if (list == null || list.size() == 0) { // JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据")); // return; // } // // JSONObject data = new JSONObject(); // data.put("pe", pe); // data.put("result_list", list); // JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); e.printStackTrace(); } } /** * 统计历史渠道产生订单的金额 * @param callback * @param channelArray 名字数组 * @param type 统计类型 1-24小时 2-所有 * @param dateType 类型 1日 2月 3年 * @param year 2018 * @param startTime 2018-12-01 * @param endTime 2018-12-01 * @param out */ @RequestMapping(value = "getHistoryOderByChannel") public void getHistoryOderByChannel(String callback, String channelArray, Integer dateType, Integer type, String year, String startTime, String endTime, PrintWriter out) { if (StringUtil.isNullOrEmpty(channelArray)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择统计对应名称")); return; } if (dateType == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择排列方式")); return; } if (dateType == 1 && (StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime))) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择时间区间")); return; } if (!StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选结束日期")); return; } if (StringUtil.isNullOrEmpty(startTime) && !StringUtil.isNullOrEmpty(endTime)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选起始日期")); return; } if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) { startTime = null; endTime = null; } try { Gson gson = new Gson(); List list = gson.fromJson(channelArray, new TypeToken>() {}.getType()); if (list == null || list.size() == 0) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数格式不正确")); return; } JSONArray array = new JSONArray(); for (String channel: list) { JSONObject channelData = new JSONObject(); List resultList = null; if (type == 1) { resultList = hongBaoService.count24HOderByChannel(channel, dateType, year, startTime, endTime); } else if (type == 2) { resultList = hongBaoService.countHistoryOderByChannel(channel, dateType, year, startTime, endTime); } if (resultList == null) { resultList = new ArrayList(); } channelData.put("name", channel); channelData.put("infos", resultList); array.add(channelData); } JSONObject data = new JSONObject(); data.put("result_list", array); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); e.printStackTrace(); } } }