yujian
2020-06-11 20bb4f95184453d4addfd27e40a78f3c63bcf6c3
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;
@@ -47,6 +48,8 @@
import com.yeshi.fanli.service.inter.count.UserInfoCountService;
import com.yeshi.fanli.service.inter.money.UserMoneyDetailService;
import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
import com.yeshi.fanli.service.inter.money.extract.ExtractService;
import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService;
import com.yeshi.fanli.service.inter.user.UserAccountService;
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
@@ -117,6 +120,16 @@
   
   @Resource
   private UserInviteValidNumService userInviteValidNumService;
   @Resource
   private ThreeSaleSerivce threeSaleSerivce;
   @Resource
   private ExtractService extractService;
   @Resource
   private HongBaoV2Service hongBaoV2Service;
   
   /**
    * 查询用户信息列表 正常用户/异常用户
@@ -214,6 +227,160 @@
      }
   }
   /**
    * 用户基础信息查询
    * @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();
      }
   }
   /**
    * 统计今日用户总情况
    * 
@@ -1333,6 +1500,8 @@
      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));
   }