admin
2019-02-21 d8fc7a24f8a2be1bc62aa38083a9f3dd3fbb3dc4
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java
@@ -35,14 +35,19 @@
import com.yeshi.fanli.controller.admin.utils.AdminUtils;
import com.yeshi.fanli.entity.admin.UserInfoAdmin;
import com.yeshi.fanli.entity.bus.user.AccountDetails;
import com.yeshi.fanli.entity.bus.user.BindingAccount;
import com.yeshi.fanli.entity.bus.user.Extract;
import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
import com.yeshi.fanli.entity.bus.user.HongBao;
import com.yeshi.fanli.entity.bus.user.MoneyRecord;
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
import com.yeshi.fanli.entity.taobao.PidOrder;
import com.yeshi.fanli.entity.taobao.ScanHistory;
import com.yeshi.fanli.exception.user.ForbiddenUserIdentifyCodeException;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.count.UserInfoCountService;
import com.yeshi.fanli.service.inter.goods.ShareService;
@@ -54,9 +59,11 @@
import com.yeshi.fanli.service.inter.user.AccountDetailsService;
import com.yeshi.fanli.service.inter.user.BindingAccountService;
import com.yeshi.fanli.service.inter.user.ExtractService;
import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService;
import com.yeshi.fanli.service.inter.user.MoneyRecordService;
import com.yeshi.fanli.service.inter.user.ScanHistoryService;
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
@@ -113,6 +120,11 @@
   @Resource
   private UserActiveLogService userActiveLogService;
   
   @Resource
   private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
   @Resource
   private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
   @RequestMapping(value = "getUserList", method = RequestMethod.POST)
   public void getUserList(int pageIndex, String key, PrintWriter out) {
@@ -599,22 +611,28 @@
      }
   }
   /**
    * 查询用户信息列表--相关数据统计
    *
    * @param callback
    * @param pageIndex
    * @param key   查询条件
    * @param userType   用户类型:金冠、银冠、铜冠
    * @param days    查询天数
    * @param startTime  注册时间
    * @param endTime      注册时间
    * @param orderMode  排序方式  订单数量 今日订单  累计队员
    * @param key
    *            查询条件
    * @param userType
    *            用户类型:金冠、银冠、铜冠
    * @param days
    *            查询天数
    * @param startTime
    *            注册时间
    * @param endTime
    *            注册时间
    * @param orderMode
    *            排序方式 订单数量 今日订单 累计队员
    * @param out
    */
   @RequestMapping(value = "query")
   public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer userType,
         Integer days, String startTime,   String endTime, Integer orderMode, PrintWriter out) {
   public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer userType, Integer days,
         String startTime, String endTime, Integer orderMode, PrintWriter out) {
      try {
@@ -649,9 +667,8 @@
            }
         }
         
         List<UserInfoAdmin> userList = userInfoService.query((pageIndex - 1) * pageSize, pageSize,
               key, userType, days, startTime, endTime,orderField, orderMode);
         List<UserInfoAdmin> userList = userInfoService.query((pageIndex - 1) * pageSize, pageSize, key, userType,
               days, startTime, endTime, orderField, orderMode);
         if (userList == null || userList.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无相关数据"));
@@ -682,6 +699,7 @@
   
   /**
    * 统计今日用户总情况
    *
    * @param callback
    * @param out
    */
@@ -706,18 +724,16 @@
         data.put("countGold", countGold);
         
         /*
         // 统计所有总金额
         BigDecimal countTotalMoney = userInfoCountService.countAllMoney(null);
         // 统计所有可提现金额
         String minMoney = configService.get(Constant.EXTRACT_MIN_MONEY);
         if (minMoney == null) {
            minMoney = "20";
         }
         double min = Double.parseDouble(minMoney);
         BigDecimal countCanAssets = userInfoCountService.countAllMoney(min);
         data.put("countTotalMoney", countTotalMoney);
         data.put("countCanAssets", countCanAssets);
          * // 统计所有总金额 BigDecimal countTotalMoney =
          * userInfoCountService.countAllMoney(null);
          *
          * // 统计所有可提现金额 String minMoney =
          * configService.get(Constant.EXTRACT_MIN_MONEY); if (minMoney ==
          * null) { minMoney = "20"; } double min =
          * Double.parseDouble(minMoney); BigDecimal countCanAssets =
          * userInfoCountService.countAllMoney(min);
          * data.put("countTotalMoney", countTotalMoney);
          * data.put("countCanAssets", countCanAssets);
         */
         
         // 累计用户数量
@@ -746,9 +762,9 @@
      }
   }
   
   /**
    * 修改用户的状态、等级信息
    *
    * @param callback
    * @param userInfo
    * @param out
@@ -770,6 +786,8 @@
            return;
         }
         
         currentInfo = new UserInfo(id);
         boolean hasChange = false;
         
         // 等级修改
@@ -784,16 +802,102 @@
         if (state != null) {
            hasChange = true;
            currentInfo.setState(state);
            if (state != null && state == UserInfo.STATE_FORBIDDEN)
               currentInfo.setStateDesc("管理员封禁");
         }
         
         if (hasChange) {
            userInfoService.updateByPrimaryKeySelective(currentInfo);
            UserInfo nowUser = userInfoService.selectByPKey(id);
            if (state != null && state == UserInfo.STATE_FORBIDDEN) {
               // 加入封禁的账号列表
               ForbiddenUserIdentifyCode forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode();
               forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId);
               forbiddenUserIdentifyCode.setIdentifyCode(nowUser.getWxUnionId());
               forbiddenUserIdentifyCode.setBeiZhu(nowUser.getWxName());
               try {
                  forbiddenUserIdentifyCodeService.addIdentifyCode(forbiddenUserIdentifyCode);
               } catch (ForbiddenUserIdentifyCodeException e) {
                  e.printStackTrace();
               }
               // 电话号码
               forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode();
               forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.phone);
               forbiddenUserIdentifyCode.setIdentifyCode(nowUser.getPhone());
               try {
                  forbiddenUserIdentifyCodeService.addIdentifyCode(forbiddenUserIdentifyCode);
               } catch (ForbiddenUserIdentifyCodeException e) {
                  e.printStackTrace();
               }
               // 淘宝
               UserExtraTaoBaoInfo taoBao = userExtraTaoBaoInfoService.getByUid(nowUser.getId());
               if (taoBao != null && !StringUtil.isNullOrEmpty(taoBao.getTaoBaoUid())) {
                  forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode();
                  forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.taobaoUid);
                  forbiddenUserIdentifyCode.setIdentifyCode(taoBao.getTaoBaoUid());
                  try {
                     forbiddenUserIdentifyCodeService.addIdentifyCode(forbiddenUserIdentifyCode);
                  } catch (ForbiddenUserIdentifyCodeException e) {
                     e.printStackTrace();
                  }
               }
               // 查询支付宝绑定
               List<BindingAccount> list = bindingAccountService.getBindingAccountByUid(nowUser.getId());
               if (list != null)
                  for (BindingAccount ba : list) {
                     forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode();
                     forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.alipayAccount);
                     forbiddenUserIdentifyCode.setIdentifyCode(ba.getAccount());
                     forbiddenUserIdentifyCode.setBeiZhu(ba.getName());
                     try {
                        forbiddenUserIdentifyCodeService.addIdentifyCode(forbiddenUserIdentifyCode);
                     } catch (ForbiddenUserIdentifyCodeException e) {
                        e.printStackTrace();
                     }
                  }
            } else if (state != null && state == UserInfo.STATE_NORMAL) {
               // 解封微信
               ForbiddenUserIdentifyCode forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService
                     .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId,
                           nowUser.getWxUnionId());
               if (forbiddenUserIdentifyCode != null)
                  forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode);
               // 解封手机
               forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService
                     .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, nowUser.getPhone());
               if (forbiddenUserIdentifyCode != null)
                  forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode);
               // 解封淘宝
               UserExtraTaoBaoInfo taoBao = userExtraTaoBaoInfoService.getByUid(nowUser.getId());
               if (taoBao != null && !StringUtil.isNullOrEmpty(taoBao.getTaoBaoUid())) {
                  forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode(
                        ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, taoBao.getTaoBaoUid());
                  if (forbiddenUserIdentifyCode != null)
                     forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode);
               }
               // 解封支付宝
               List<BindingAccount> list = bindingAccountService.getBindingAccountByUid(nowUser.getId());
               if (list != null)
                  for (BindingAccount ba : list) {
                     forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode(
                           ForbiddenUserIdentifyCodeTypeEnum.alipayAccount, ba.getAccount());
                     if (forbiddenUserIdentifyCode != null)
                        forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode);
                  }
            }
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("修改成功"));
         } else {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("无可修改内容"));
         }
         
      } catch (Exception e) {
      } catch (
      Exception e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("修改失败"));
      }
@@ -801,6 +905,7 @@
   
   /**
    * 删除绑定的账户信息: 支付宝  微信
    *
    * @param callback
    * @param bindId
    * @param out
@@ -845,12 +950,10 @@
            return;
         }
         if (type == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("账户类型不可为空!"));
            return;
         }
         
         UserInfo find = userInfoService.getUserById(id);
@@ -892,11 +995,9 @@
      }
   }
   
   @RequestMapping(value = "queryMyFirstTeams")
   public void queryMyFirstTeams(String callback, Integer pageIndex, Integer pageSize, String key,
         Long bossId, PrintWriter out) {
   public void queryMyFirstTeams(String callback, Integer pageIndex, Integer pageSize, String key, Long bossId,
         PrintWriter out) {
      try {
         
         if (bossId == null) {
@@ -910,9 +1011,8 @@
         if (pageSize == null)
            pageSize = Constant.PAGE_SIZE;
         
         List<ThreeSale> firstTeamList =
               threeSaleService.queryMyFirstTeamList((pageIndex - 1) * pageSize, pageSize, key, bossId);
         List<ThreeSale> firstTeamList = threeSaleService.queryMyFirstTeamList((pageIndex - 1) * pageSize, pageSize,
               key, bossId);
         if (firstTeamList == null || firstTeamList.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无一度队员"));
            return;
@@ -956,10 +1056,9 @@
      }
   }
   
   @RequestMapping(value = "queryMySecondTeams")
   public void queryMySecondTeams(String callback, Integer pageIndex, Integer pageSize, String key,
         Long bossId, PrintWriter out) {
   public void queryMySecondTeams(String callback, Integer pageIndex, Integer pageSize, String key, Long bossId,
         PrintWriter out) {
      try {
         
         if (bossId == null) {
@@ -973,9 +1072,8 @@
         if (pageSize == null)
            pageSize = Constant.PAGE_SIZE;
         
         List<ThreeSale> firstTeamList =
               threeSaleService.queryMySecondTeamList((pageIndex - 1) * pageSize, pageSize, key, bossId);
         List<ThreeSale> firstTeamList = threeSaleService.queryMySecondTeamList((pageIndex - 1) * pageSize, pageSize,
               key, bossId);
         if (firstTeamList == null || firstTeamList.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无二度队员"));
            return;
@@ -1019,7 +1117,6 @@
      }
   }
   
   @RequestMapping(value = "deleteThreeSale")
   public void deleteThreeSale(String callback, Long id, PrintWriter out) {
      try {
@@ -1043,10 +1140,9 @@
      }
   }
   
   /**
    * 队员关系
    *
    * @param pageIndex
    * @param key
    * @param state
@@ -1087,12 +1183,12 @@
            listQuery = threeSaleService.listSuperiorQuery((pageIndex - 1) * pageSize, pageSize, state, uid);
         } else if (type == 1) {
            // 一级用户
            listQuery = threeSaleService.listFirstTeamQuery((pageIndex - 1) * pageSize, pageSize, uid,
                  state, startTime, endTime);
            listQuery = threeSaleService.listFirstTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, state,
                  startTime, endTime);
         } else if (type == 2) {
            // 二级用户
            listQuery = threeSaleService.listSecondTeamQuery((pageIndex - 1) * pageSize, pageSize, uid,
                  state, startTime, endTime);
            listQuery = threeSaleService.listSecondTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, state,
                  startTime, endTime);
         }
         
         if (listQuery == null || listQuery.size() == 0) {
@@ -1140,9 +1236,9 @@
      }      
   }
   
   /**
    * 用户账户明细
    *
    * @param callback
    * @param pageIndex
    * @param pageSize
@@ -1177,7 +1273,6 @@
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
         PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
         
         JSONObject data = new JSONObject();
         data.put("pe", pe);
         data.put("result_list", GsonUtil.toJsonExpose(detailsList));
@@ -1192,17 +1287,22 @@
   
   /**
    * 根据渠道   统计当日新增用户数量
    * @param channelArray 名字数组
    * @param dateType 类型  1日  2月  3年
    * @param year 2018
    * @param startTime 2018-12-01
    * @param endTime   2018-12-01
    *
    * @param channelArray
    *            名字数组
    * @param dateType
    *            类型 1日 2月 3年
    * @param year
    *            2018
    * @param startTime
    *            2018-12-01
    * @param endTime
    *            2018-12-01
    * @param out
    */
   @RequestMapping(value = "getNewUserCharts")
   public void getNewUserCharts(String callback, String channelArray, Integer dateType,
       String year, String startTime, String endTime, PrintWriter out) {
   public void getNewUserCharts(String callback, String channelArray, Integer dateType, String year, String startTime,
         String endTime, PrintWriter out) {
      
      String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
      if (validateMsg != null) {
@@ -1218,14 +1318,14 @@
      List<String> channelList = null;
      if (channelArray != null && channelArray.trim().length() > 0) {
         Gson gson = new Gson();
         channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
         channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {
         }.getType());
      }
      if (channelList == null || channelList.size() == 0) {
         channelList = new ArrayList<String>();
         channelList.add("all");
      }
      
      if (dateType == 1 && year != null) {
         year = null; // 设置为空
@@ -1247,7 +1347,6 @@
            endTime = null; 
      }
      
      try {
         Gson gson = new Gson();
@@ -1257,8 +1356,8 @@
         JSONArray line_list = new JSONArray();
         for (String channel : channelList) {
            
            List<Map<String, Object>> list = userInfoCountService.countNewUserByDate(channel,
                  dateType, year, startTime, endTime);
            List<Map<String, Object>> list = userInfoCountService.countNewUserByDate(channel, dateType, year,
                  startTime, endTime);
            
            if ("all".equalsIgnoreCase(channel)) {
               channel = "总计";
@@ -1282,7 +1381,6 @@
            line_list.add(innerList);
         }
         JSONObject data = new JSONObject();
         if (objectDate != null) {
            data.put("xAxis_list", gson.toJson(objectDate));
@@ -1300,19 +1398,24 @@
      }
   }
   
   /**
    * 根据渠道   统计当日新增用户数量
    * @param channelArray 名字数组
    * @param dateType 类型  1日  2月  3年
    * @param year 2018
    * @param startTime 2018-12-01
    * @param endTime   2018-12-01
    *
    * @param channelArray
    *            名字数组
    * @param dateType
    *            类型 1日 2月 3年
    * @param year
    *            2018
    * @param startTime
    *            2018-12-01
    * @param endTime
    *            2018-12-01
    * @param out
    */
   @RequestMapping(value = "getTodayBuyRate")
   public void getTodayBuyRate(String callback, String channelArray, Integer dateType,
       String year, String startTime, String endTime, Integer orderNum, PrintWriter out) {
   public void getTodayBuyRate(String callback, String channelArray, Integer dateType, String year, String startTime,
         String endTime, Integer orderNum, PrintWriter out) {
      
      String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
      if (validateMsg != null) {
@@ -1333,14 +1436,14 @@
      List<String> channelList = null;
      if (channelArray != null && channelArray.trim().length() > 0) {
         Gson gson = new Gson();
         channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
         channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {
         }.getType());
      }
      if (channelList == null || channelList.size() == 0) {
         channelList = new ArrayList<String>();
         channelList.add("all");
      }
      
      if (dateType == 1 && year != null) {
         year = null; // 设置为空
@@ -1362,7 +1465,6 @@
            endTime = null; 
      }
      
      try {
         Gson gson = new Gson();
@@ -1372,8 +1474,8 @@
         JSONArray line_list = new JSONArray();
         for (String channel : channelList) {
            
            List<Map<String, Object>> list = userInfoCountService.getTodayBuyRate(channel, dateType,
                  year, startTime, endTime);
            List<Map<String, Object>> list = userInfoCountService.getTodayBuyRate(channel, dateType, year,
                  startTime, endTime);
            
            if ("all".equalsIgnoreCase(channel)) {
               channel = "总计";
@@ -1397,7 +1499,6 @@
            line_list.add(innerList);
         }
         JSONObject data = new JSONObject();
         if (objectDate != null) {
            data.put("xAxis_list", gson.toJson(objectDate));
@@ -1416,19 +1517,21 @@
      
   }
   
   /**
    * 当周产生3单的新增用户概率 
    *
    * @param callback
    * @param channelArray 渠道名称
    * @param channelArray
    *            渠道名称
    * @param startTime 
    * @param endTime
    * @param orderNum 订单数量
    * @param orderNum
    *            订单数量
    * @param out
    */
   @RequestMapping(value = "getWeekBuyRate")
   public void getWeekBuyRate(String callback, String channelArray, String startTime, String endTime,
         Integer orderNum, PrintWriter out) {
   public void getWeekBuyRate(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("当周订单统计对应时间区域不能为空"));
@@ -1438,7 +1541,8 @@
      List<String> channelList = null;
      if (channelArray != null && channelArray.trim().length() > 0) {
         Gson gson = new Gson();
         channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
         channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {
         }.getType());
      }
      if (channelList == null || channelList.size() == 0) {
@@ -1458,8 +1562,8 @@
         JSONArray line_list = new JSONArray();
         for (String channel : channelList) {
            
            List<Object> list = userInfoCountService.getWeekBuyRate(channel, startTime, endTime,
                  orderNum, dateList);
            List<Object> list = userInfoCountService.getWeekBuyRate(channel, startTime, endTime, orderNum,
                  dateList);
            
            if ("all".equalsIgnoreCase(channel)) {
               channel = "总计";
@@ -1470,7 +1574,6 @@
            innerList.put("data", gson.toJson(list));
            line_list.add(innerList);
         }
         JSONObject data = new JSONObject();
         data.put("xAxis_list", gson.toJson(dateList));