yujian
2020-06-11 7e29ba555f7bb25926fb485418df9716c89a387e
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java
@@ -2,6 +2,7 @@
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@@ -34,6 +35,7 @@
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.user.UserInviteValidNum;
import com.yeshi.fanli.entity.bus.user.UserRank;
import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
import com.yeshi.fanli.entity.common.AdminUser;
@@ -55,6 +57,7 @@
import com.yeshi.fanli.service.inter.user.UserRankService;
import com.yeshi.fanli.service.inter.user.integral.IntegralDetailService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService;
import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.tag.PageEntity;
@@ -113,7 +116,12 @@
   @Resource
   private IntegralDetailService integralDetailService;
   
   @Resource
   private UserInviteValidNumService userInviteValidNumService;
   @Resource
   private ThreeSaleSerivce threeSaleSerivce;
   /**
    * 查询用户信息列表 正常用户/异常用户
    * 
@@ -135,8 +143,8 @@
    */
   @RequestMapping(value = "query")
   public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer keyType, Integer rank,Integer userType,
         Integer days, String startTime, String endTime, Integer orderMode, Integer type, PrintWriter out) {
         Integer days, String startTime, String endTime, Integer orderMode, Integer type,String level,
         Integer activeCode, PrintWriter out) {
      try {
         if (type == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户类型type不能为空"));
@@ -184,14 +192,14 @@
         }
         List<UserInfoVO> userList = userInfoService.query((pageIndex - 1) * pageSize, pageSize, type, key, keyType,
               userRank, days, startTime, endTime, orderField, orderMode,userType);
               userRank, days, startTime, endTime, orderField, orderMode,userType, level, activeCode);
         if (userList == null || userList.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无相关数据"));
            return;
         }
         long count = userInfoService.queryCount(type, key, keyType, userRank, days, startTime, endTime,userType);
         long count = userInfoService.queryCount(type, key, keyType, userRank, days, startTime, endTime,userType, level, activeCode);
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
         PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
@@ -203,15 +211,167 @@
         JSONObject data = new JSONObject();
         data.put("pe", pe);
         data.put("resultList", gson.toJson(userList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
      }
   }
   /**
    * 用户基础信息查询
    * @param callback
    * @param pageIndex
    * @param pageSize
    * @param key
    * @param keyType
    * @param rank
    * @param userType
    * @param days
    * @param startTime
    * @param endTime
    * @param type
    * @param level
    * @param activeCode
    * @param out
    */
   @RequestMapping(value = "queryInfo")
   public void queryInfo(String callback, Integer pageIndex, Integer pageSize, String key, Integer keyType, Integer rank,Integer userType,
         Integer days, String startTime, String endTime, Integer state,String level,
         Integer activeCode, PrintWriter out) {
      try {
         if (pageIndex == null)
            pageIndex = 1;
         if (pageSize == null)
            pageSize = Constant.PAGE_SIZE;
         String userRank = null;
         if (rank != null) {
            switch (rank) {
            case 1:
               userRank = "青铜";
               break;
            case 2:
               userRank = "白银";
               break;
            case 3:
               userRank = "黄金";
               break;
            case 4:
               userRank = "铂金";
               break;
            default:
               break;
            }
         }
         List<UserInfoVO> userList = userInfoService.queryInfo((pageIndex - 1) * pageSize, pageSize, state, key, keyType,
               userRank, days, startTime, endTime, userType, level, activeCode);
         if (userList == null || userList.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无相关数据"));
            return;
         }
         long count = userInfoService.countInfo(state, key, keyType, userRank, days, startTime, endTime,userType, level, activeCode);
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
         PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.create();
         JSONObject data = new JSONObject();
         data.put("pe", pe);
         data.put("resultList", gson.toJson(userList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
      }
   }
   /**
    * 资金统计
    * @param callback
    * @param uid
    * @param out
    */
   @RequestMapping(value = "statisticsMoney")
   public void statisticsMoney(String callback, Long uid, PrintWriter out) {
      try {
         UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
         if (user == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该用户ID不存在"));
            return;
         }
         Date minDate = null;
         Date maxDate = null;
         long timeStamp = System.currentTimeMillis();
         Calendar calendar = Calendar.getInstance();
         calendar.setTimeInMillis(timeStamp);
         List<UserMoneyDetailTypeEnum> typeList = new ArrayList<>();
         typeList.add(UserMoneyDetailTypeEnum.extract);
         typeList.add(UserMoneyDetailTypeEnum.extractNew);
         typeList.add(UserMoneyDetailTypeEnum.extractVerify);
         typeList.add(UserMoneyDetailTypeEnum.extractVerifyNew);
         typeList.add(UserMoneyDetailTypeEnum.extractReject);
         typeList.add(UserMoneyDetailTypeEnum.extractAutoWX);
         minDate = new Date(0L);
         maxDate = new Date(timeStamp);
         // 累计成功提现
         BigDecimal totalExtractMoney = userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate,
               maxDate, 1).abs();
         // 提现中金额
         BigDecimal extractingMoney = extractService.sumVerifyingMoney(uid);
         // 全部未到账
         minDate = new Date(0);
         maxDate = new Date(timeStamp);
         BigDecimal unRecievedMoney = hongBaoV2Service.getUnRecievedMoneyWithCreateTime(uid, minDate, maxDate);
         JSONObject data = new JSONObject();
         data.put("totalExtractMoney", totalExtractMoney);
         data.put("extractingMoney", extractingMoney);
         data.put("balanceMoney", user.getMyHongBao());
         data.put("unRecievedMoney", unRecievedMoney);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
      }
   }
   /**
    * 权益统计
    * @param callback
    * @param uid
    * @param out
    */
   @RequestMapping(value = "statisticsGoldCoin")
   public void statisticsEquity(String callback, Long uid, PrintWriter out) {
      try {
         int goldCoin = 0;
         UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
         if (userInfoExtra != null) {
            goldCoin = userInfoExtra.getGoldCoin();
         }
         JSONObject data = new JSONObject();
         data.put("goldCoin", goldCoin);
         data.put("exchangeGoldCoin",new BigDecimal(integralDetailService.sumUseGoldCoin(uid)).abs());
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
      }
   }
   /**
    * 统计今日用户总情况
    * 
@@ -289,9 +449,7 @@
         long monthUser = userInfoCountService.countNewUser(null, 1);
         data.put("todayUser", todayUser);
         data.put("monthUser", monthUser);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
@@ -416,7 +574,6 @@
   @RequestMapping(value = "deleteUser")
   public void delete(String callback, String idArray, HttpServletRequest request,  PrintWriter out) {
      try {
         AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
         if (admin == null) {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆。")));
@@ -460,7 +617,6 @@
   @RequestMapping(value = "forbiddenUser")
   public void forbiddenUser(String callback, Long uid, HttpServletRequest request, PrintWriter out) {
      try {
         if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据"));
            return;
@@ -480,9 +636,7 @@
         String reason = "后台封禁,操作人:" + admin.getId() + "-" + admin.getName();
         userAccountService.forbiddenUserAll(uid, reason);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("用户封禁成功"));
      } catch (Exception e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
@@ -499,7 +653,6 @@
   @RequestMapping(value = "relieveForbiddenUser")
   public void relieveForbiddenUser(String callback, Long uid, PrintWriter out) {
      try {
         if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据"));
            return;
@@ -546,9 +699,7 @@
                  forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode);
            }
         }
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("用户解封成功"));
      } catch (Exception e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
@@ -573,9 +724,7 @@
         }
         forbiddenUserIdentifyCodeService.saveForbiddenInfo(code, type);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("修改成功"));
      } catch (ForbiddenUserIdentifyCodeException e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
@@ -585,157 +734,7 @@
      }
   }
   /**
    * 删除队员关系
    *
    * @param callback
    * @param id
    * @param out
    */
   @RequestMapping(value = "deleteThreeSale")
   public void deleteThreeSale(String callback, Long id, PrintWriter out) {
      try {
         if (id == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据"));
            return;
         }
         int count = threeSaleService.deleteByPrimaryKey(id);
         if (count > 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("删除成功"));
         } else {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("删除失败"));
         }
      } catch (Exception e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
      }
   }
   @RequestMapping(value = "queryMyFirstTeams")
   public void queryMyFirstTeams(String callback, Integer pageIndex, Integer pageSize, String key, Long bossId,
         PrintWriter out) {
      try {
         if (bossId == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据"));
            return;
         }
         if (pageIndex == null)
            pageIndex = 1;
         if (pageSize == null)
            pageSize = Constant.PAGE_SIZE;
         List<ThreeSale> firstTeamList = threeSaleService.queryMyFirstTeamList((pageIndex - 1) * pageSize, pageSize,
               key, bossId);
         if (firstTeamList == null || firstTeamList.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无一度队员"));
            return;
         }
         /* 获取邀请用户头像 、昵称 */
         for (ThreeSale threeSale : firstTeamList) {
            UserInfo worker = threeSale.getWorker();
            if (worker == null) {
               worker = new UserInfo();
               threeSale.setWorker(worker);
            } else {
               Long id = worker.getId();
               UserInfo currentInfo = userInfoService.selectByPKey(id);
               if (currentInfo != null) {
                  worker.setNickName(currentInfo.getNickName());
                  worker.setPortrait(currentInfo.getPortrait());
               }
            }
         }
         long count = threeSaleService.queryCountMyFirstTeamList(key, bossId);
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
         PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.create();
         JSONObject data = new JSONObject();
         data.put("pe", pe);
         data.put("list", gson.toJson(firstTeamList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
      }
   }
   @RequestMapping(value = "queryMySecondTeams")
   public void queryMySecondTeams(String callback, Integer pageIndex, Integer pageSize, String key, Long bossId,
         PrintWriter out) {
      try {
         if (bossId == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据"));
            return;
         }
         if (pageIndex == null)
            pageIndex = 1;
         if (pageSize == null)
            pageSize = Constant.PAGE_SIZE;
         List<ThreeSale> firstTeamList = threeSaleService.queryMySecondTeamList((pageIndex - 1) * pageSize, pageSize,
               key, bossId);
         if (firstTeamList == null || firstTeamList.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无二度队员"));
            return;
         }
         /* 获取邀请用户头像 、昵称 */
         for (ThreeSale threeSale : firstTeamList) {
            UserInfo worker = threeSale.getWorker();
            if (worker == null) {
               worker = new UserInfo();
               threeSale.setWorker(worker);
            } else {
               Long id = worker.getId();
               UserInfo currentInfo = userInfoService.selectByPKey(id);
               if (currentInfo != null) {
                  worker.setNickName(currentInfo.getNickName());
                  worker.setPortrait(currentInfo.getPortrait());
               }
            }
         }
         long count = threeSaleService.queryCountMySecondTeamList(key, bossId);
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
         PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.create();
         JSONObject data = new JSONObject();
         data.put("pe", pe);
         data.put("list", gson.toJson(firstTeamList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
      }
   }
   /**
    * 队员关系
@@ -749,7 +748,7 @@
    */
   @RequestMapping(value = "getRelationList")
   public void getRelationList(String callback, Integer pageIndex, Integer pageSize, Long uid, Integer type,
         Integer state, String startTime, String endTime, PrintWriter out) {
         Integer state, String startTime, String endTime, Integer validState, PrintWriter out) {
      if (pageIndex == null || pageIndex < 1) {
         pageIndex = 1;
@@ -781,11 +780,11 @@
         } else if (type == 1) {
            // 一级用户
            listQuery = threeSaleService.listFirstTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, state,
                  startTime, endTime);
                  startTime, endTime, validState);
         } else if (type == 2) {
            // 二级用户
            listQuery = threeSaleService.listSecondTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, state,
                  startTime, endTime);
                  startTime, endTime, validState);
         }
         if (listQuery == null || listQuery.size() == 0) {
@@ -794,6 +793,14 @@
         }
         for (ThreeSale threeSale : listQuery) {
            // 用户信息
            UserInfo boss = threeSale.getBoss();
            threeSale.setBoss(userInfoService.selectByPKey(boss.getId()));
            UserInfo worker = threeSale.getWorker();
            threeSale.setWorker(userInfoService.selectByPKey(worker.getId()));
            Integer expire = threeSale.getExpire();
            if (threeSale.getState()) {
               threeSale.setExpire(1); // 邀请成功
@@ -805,6 +812,7 @@
               }
            }
         }
         long count = 0;
         if (type == 0) {
@@ -812,10 +820,10 @@
            count = threeSaleService.countSuperiorQuery(state, uid);
         } else if (type == 1) {
            // 一级用户
            count = threeSaleService.countFirstTeamQuery(uid, state, startTime, endTime);
            count = threeSaleService.countFirstTeamQuery(uid, state, startTime, endTime, validState);
         } else if (type == 2) {
            // 二级用户
            count = threeSaleService.countSecondTeamQuery(uid, state, startTime, endTime);
            count = threeSaleService.countSecondTeamQuery(uid, state, startTime, endTime, validState);
         }
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
@@ -874,9 +882,7 @@
         JSONObject data = new JSONObject();
         data.put("pe", pe);
         data.put("result_list", gson.toJson(userMoneyDetailsList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
@@ -1429,7 +1435,6 @@
               continue;
            }
            
            UserInfo user = userInfoService.selectByPKey(userInfo.getId());
            if (user != null) {
               detail.setUserInfo(user);
@@ -1437,10 +1442,8 @@
         }
         long count = userMoneyDetailService.countQuery(key, keyType);
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
         PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
         
         GsonBuilder gsonBuilder = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss");
         gsonBuilder.registerTypeAdapter(UserMoneyDetailTypeEnum.class, new JsonSerializer<UserMoneyDetailTypeEnum>() {
@@ -1454,7 +1457,6 @@
            }
         });
         Gson gson = gsonBuilder.create();
         
         JSONObject data = new JSONObject();
         data.put("pe", pe);
@@ -1465,4 +1467,34 @@
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
      }
   }
   /**
    *  用户粉丝统计
    *
    * @param callback
    * @param pageIndex
    * @param pageSize
    * @param id
    * @param out
    */
   @RequestMapping(value = "countTeamFans")
   public void countTeamFans(String callback, Long uid, PrintWriter out) {
      int doneFirst = 0;
      int doneSecond = 0;
      UserInviteValidNum userInviteValidNum = userInviteValidNumService.selectByPrimaryKey(uid);
      if (userInviteValidNum != null) {
         doneFirst = userInviteValidNum.getNumFirst() == null ? 0 : userInviteValidNum.getNumFirst();
         doneSecond = userInviteValidNum.getNumSecond() == null ? 0 : userInviteValidNum.getNumSecond();
      }
      JSONObject data = new JSONObject();
      data.put("doneFirst", doneFirst);
      data.put("doneSecond", doneSecond);
      data.put("first", threeSaleSerivce.countFirstTeam(uid));
      data.put("second", threeSaleSerivce.countSecondTeam(uid));
      JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
   }
}