yujian
2019-01-08 85b08b045c79180a81abd43be0ac7fd2ae50cd46
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java
@@ -4,6 +4,7 @@
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@@ -706,7 +707,7 @@
         long countGold = userInfoCountService.countRank(3);
         
         // 统计所有总金额
         double countTotalMoney = userInfoCountService.countAllMoney(null);
         BigDecimal countTotalMoney = userInfoCountService.countAllMoney(null);
         
         // 统计所有可提现金额
         String minMoney = configService.get(Constant.EXTRACT_MIN_MONEY);
@@ -714,7 +715,7 @@
            minMoney = "20";
            
         double min = Double.parseDouble(minMoney);
         double countCanAssets = userInfoCountService.countAllMoney(min);
         BigDecimal countCanAssets = userInfoCountService.countAllMoney(min);
         
         JSONObject data = new JSONObject();
         data.put("countTotal", countTotal);
@@ -1218,7 +1219,7 @@
               resultList = new ArrayList<Object>();
            }
            channelData.put("name", channel);
            channelData.put("infos", resultList);
            channelData.put("data_list", resultList);
            array.add(channelData);
         }
         
@@ -1244,7 +1245,7 @@
    */
   @RequestMapping(value = "getBuyProportion")
   public void getBuyProportion(String callback, String channelArray, Integer dateType, 
       String year, String startTime, String endTime, PrintWriter out) {
       String year, String startTime, String endTime, Integer orderNum, PrintWriter out) {
      
      validateParams(callback, channelArray, dateType,year,startTime,endTime,out);
      
@@ -1267,12 +1268,12 @@
         for (String channel: list) {
            JSONObject channelData = new JSONObject();
            List<Object> resultList = userActiveLogService.getBuyProportion(channel, dateType, year, startTime, endTime);
            List<Object> resultList = userActiveLogService.getBuyProportion(channel, dateType, year, startTime, endTime, orderNum);
            if (resultList == null) {
               resultList = new ArrayList<Object>();
            }
            channelData.put("name", channel);
            channelData.put("infos", resultList);
            channelData.put("data_list", resultList);
            array.add(channelData);
         }
         
@@ -1286,6 +1287,78 @@
      }
   }
   
   /**
    * 当周产生3单的新增用户概率
    * @param callback
    * @param channelArray 渠道名称
    * @param startTime
    * @param endTime
    * @param orderNum 订单数量
    * @param out
    */
   @RequestMapping(value = "getWeekProportion")
   public void getWeekProportion(String callback, String channelArray, String startTime, String endTime,
         Integer orderNum, PrintWriter out) {
      if (StringUtil.isNullOrEmpty(startTime) || StringUtil.isNullOrEmpty(endTime)) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择正确时间区间"));
         return;
      }
      try {
         if (orderNum == null ) {
            orderNum = 0;
         }
         List<String> channelList = null;
         if (channelArray != null && channelArray.trim().length() > 0) {
            Gson gson = new Gson();
            channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
         }
         if (channelList == null || channelList.size() == 0) {
            channelList = new ArrayList<String>();
            channelList.add("all");
         }
         JSONArray array = new JSONArray();
         for (String channel : channelList) {
            JSONObject channelData = new JSONObject();
            List<Map<String, Object>> resultList = userActiveLogService.countOneWeekUserInfo(channel,
                  startTime, endTime, orderNum);
            if (resultList == null) {
               resultList = new ArrayList<Map<String, Object>>();
            }
            if ("all".equalsIgnoreCase(channel)) {
               channel = "总计";
            }
            channelData.put("name", channel);
            channelData.put("data_list", resultList);
            array.add(channelData);
         }
         JSONObject data = new JSONObject();
         data.put("result_list", array);
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
      }
   }
   /**
    * 用户统计 :总用户、流失用户数量、累计有购买用户数
    * @param callback
    * @param out
    */
   @RequestMapping(value = "countUser")
   public void countUser(String callback, PrintWriter out) {
      try {
@@ -1355,8 +1428,16 @@
            resultList = new ArrayList<Object>();
         }
            
         JSONObject innerList = new JSONObject();
         innerList.put("name", "数量");
         innerList.put("data_list", resultList);
         JSONArray outList = new JSONArray();
         outList.add(innerList);
         JSONObject data = new JSONObject();
         data.put("result_list", resultList);
         data.put("result_list", outList);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {