From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java | 3384 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,675 insertions(+), 1,709 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java b/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java
index 2456d67..aa813b1 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java
@@ -1,1709 +1,1675 @@
-package com.yeshi.fanli.controller.admin;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.ss.util.CellRangeAddress;
-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.GsonBuilder;
-import com.google.gson.reflect.TypeToken;
-import com.yeshi.fanli.controller.admin.utils.AdminUtils;
-import com.yeshi.fanli.dto.money.AccountDetails;
-import com.yeshi.fanli.entity.admin.UserInfoAdmin;
-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.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
-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.UserRank;
-import com.yeshi.fanli.entity.money.UserMoneyDetail;
-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;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
-import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
-import com.yeshi.fanli.service.inter.order.OrderItemServcie;
-import com.yeshi.fanli.service.inter.order.OrderService;
-import com.yeshi.fanli.service.inter.order.PidOrderService;
-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.UserInfoExtraService;
-import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
-import com.yeshi.fanli.service.inter.user.UserRankService;
-import com.yeshi.fanli.tag.PageEntity;
-import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.GsonUtil;
-import com.yeshi.fanli.util.HongBaoUtil;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.TimeUtil;
-import com.yeshi.fanli.util.factory.AccountDetailsFactory;
-import com.yeshi.fanli.vo.user.ForbiddenUserIdentifyCodeVO;
-
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-@Controller
-@RequestMapping("admin/new/api/v1/user")
-public class UserInfoAdminController {
-	@Resource
-	private UserInfoService userInfoService;
-
-	@Resource
-	private MoneyRecordService moneyRecordService;
-
-	@Resource
-	private OrderService orderService;
-
-	@Resource
-	private ScanHistoryService scanHistoryService;
-
-	@Resource
-	private ConfigService configService;
-
-	@Resource
-	private HongBaoService hongBaoService;
-
-	@Resource
-	private ExtractService extractService;
-
-	@Resource
-	private ThreeSaleSerivce threeSaleService;
-
-	@Resource
-	private OrderItemServcie orderItemService;
-
-	@Resource
-	private ShareService shareService;
-
-	@Resource
-	private PidOrderService pidOrderService;
-
-	@Resource
-	private BindingAccountService bindingAccountService;
-
-	@Resource
-	private UserInfoCountService userInfoCountService;
-
-	@Resource
-	private UserActiveLogService userActiveLogService;
-
-	@Resource
-	private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
-
-	@Resource
-	private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
-
-	@Resource
-	private UserInfoExtraService userInfoExtraService;
-
-	@Resource
-	private UserRankService userRankService;
-	
-
-	@Resource
-	private UserMoneyDetailService userMoneyDetailService;
-
-	@RequestMapping(value = "getUserList", method = RequestMethod.POST)
-	public void getUserList(int pageIndex, String key, PrintWriter out) {
-
-		List<UserInfo> userList = userInfoService.getUserList(pageIndex - 1, key);
-		int count = userInfoService.getUserCount(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);
-		Map<String, String> map = new HashMap<String, String>();
-		map.put("key", key);
-		pe.setParams(map);
-		JSONObject data = new JSONObject();
-		data.put("pe", pe);
-		data.put("userList", userList);
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 涓夌骇鍒嗛攢
-	 * 
-	 * @author mawurui createTime 2018骞�5鏈�21鏃� 涓嬪崍4:55:07
-	 * @param pageIndex
-	 * @param key
-	 * @param out
-	 */
-	@RequestMapping(value = "getThreeSaleList", method = RequestMethod.POST)
-	public void getThreeSaleList(int pageIndex, String key, PrintWriter out) {
-		List<ThreeSale> list = threeSaleService.getLastestThreeSaleList(pageIndex, key);
-		int count = threeSaleService.getLastestThreeSaleCount(key);
-
-		int totalPage = (int) (count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE
-				: count / Constant.PAGE_SIZE + 1);
-		PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
-		Map<String, String> map = new HashMap<String, String>();
-		map.put("key", key);
-		pe.setParams(map);
-		JSONObject data = new JSONObject();
-		data.put("pe", pe);
-		data.put("threeSaleList", list);
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 鏌ヨ鎵�鏈夌敤鎴峰垎浜禋鍒楄〃
-	 * 
-	 * @author mawurui createTime 2018骞�4鏈�24鏃� 涓嬪崍3:37:13
-	 * @param pageIndex
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "getShareMoneyList", method = RequestMethod.POST)
-	public void getShareList(int pageIndex, PrintWriter out, String key) {
-
-		// int totalCount = shareService.getShareMoneyCount();
-		// PageEntity pageEntity = new PageEntity();
-		// pageEntity.setPageIndex(pageIndex);
-		// pageEntity.setPageSize(Constant.PAGE_SIZE);
-		// pageEntity.setTotalCount(totalCount);
-
-		int count = shareService.getCountByKey(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);
-
-		List<PidOrder> shareMoneyList = shareService.getShareMoneyList(pageIndex, key);
-		JSONObject data = new JSONObject();
-		data.put("pageEntity", pe);
-		data.put("shareMoneyList", JsonUtil.getSimpleGsonWithDate().toJson(shareMoneyList));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 
-	 * @param pageIndex
-	 * @param type
-	 *            1- 1绾у垎閿� 2-2绾у垎閿�
-	 * @param uid
-	 * @param key
-	 * @param out
-	 */
-	@RequestMapping(value = "getThreeSaleDetailList", method = RequestMethod.POST)
-	public void getThreeSaleDetailList(int pageIndex, int type, long uid, String key, PrintWriter out) {
-		List<UserInfo> userList = null;
-		long count = 0;
-		if (type == 1) {
-			userList = threeSaleService.getFirstUsers(uid, pageIndex);
-			count = threeSaleService.getFirstUsersCount(uid);
-		} else if (type == 2) {
-			userList = threeSaleService.getSecondUsers(uid, pageIndex);
-			count = threeSaleService.getSecondUsersCount(uid);
-		}
-
-		int totalPage = (int) (count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE
-				: count / Constant.PAGE_SIZE + 1);
-		PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
-		Map<String, String> map = new HashMap<String, String>();
-		map.put("key", key);
-		pe.setParams(map);
-		JSONObject data = new JSONObject();
-		data.put("pe", pe);
-		data.put("userList", userList);
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	@RequestMapping(value = "getUserListByUid", method = RequestMethod.POST)
-	public void getUserListByUid(long uid, PrintWriter out) {
-
-		List<UserInfo> userList = userInfoService.getUserListByUid(uid);
-		int count = userList.size();
-
-		int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
-		PageEntity pe = new PageEntity(1, Constant.PAGE_SIZE, count, totalPage);
-		Map<String, String> map = new HashMap<String, String>();
-		pe.setParams(map);
-		JSONObject data = new JSONObject();
-		data.put("pe", pe);
-		data.put("userList", userList);
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 鏌ヨ鐢ㄦ埛璁㈠崟鐘舵��
-	 * 
-	 * @author mawurui createTime 2018骞�5鏈�17鏃� 涓婂崍10:55:41
-	 * @param pageIndex
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "getUserOrderList", method = RequestMethod.POST)
-	public void getUserOrderList(int pageIndex, long uid, PrintWriter out) {
-		List<Order> orderList = orderService.getOrderByUid(pageIndex - 1, uid);
-		int count = orderService.getCount(uid);
-		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(orderList));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	@RequestMapping(value = "getMoneyRecordList", method = RequestMethod.POST)
-	public void getMoneyRecordList(int pageIndex, long uid, PrintWriter out) {
-		List<MoneyRecord> moneyRecordList = moneyRecordService.getMoneyRecord(uid, pageIndex - 1);
-		if (moneyRecordList != null)
-			for (MoneyRecord mr : moneyRecordList) {
-				mr.setExtract(null);
-				mr.setUserInfo(null);
-				mr.setHongBao(null);
-			}
-
-		int count = moneyRecordService.getCount(uid);
-		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("moneyRecordList", GsonUtil.toJsonExpose(moneyRecordList));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 鏌ヨ鐢ㄦ埛-绾㈠寘璇︽儏鍒楄〃
-	 * 
-	 * @author mawurui createTime 2018骞�5鏈�10鏃� 涓婂崍11:48:58
-	 * @param pageIndex
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "getHongBaoList", method = RequestMethod.POST)
-	public void getHongBaoList(int pageIndex, long uid, PrintWriter out) {
-		JSONObject data = new JSONObject();
-		List<HongBao> list = hongBaoService.getHongBaoList(pageIndex, uid);
-		if (list.size() != 0 || list != null) {
-			for (HongBao hb : list) {
-				int hbType = hb.getType();
-				if (hbType == HongBao.TYPE_SHARE_GOODS) { // type == 20
-					Long hongbaoId = hb.getId();
-					PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
-					Order order = new Order();
-					order.setThirdCreateTime(pidOrder.getOrderCreateTime());
-					order.setOrderId(pidOrder.getOrderId());
-					order.setThirdState(pidOrder.getState());
-					order.setMoney(pidOrder.getPayMoney());
-					hb.setOrder(order);
-				} else if (hbType == HongBao.TYPE_SHARE_YIJI || hbType == HongBao.TYPE_SHARE_ERJI) {
-					Long hongbaoId = hb.getParent().getId();
-					PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
-					Order order = new Order();
-					order.setThirdCreateTime(pidOrder.getOrderCreateTime());
-					order.setOrderId(pidOrder.getOrderId());
-					order.setThirdState(pidOrder.getState());
-					order.setMoney(pidOrder.getPayMoney());
-					hb.setOrder(order);
-				} else if (hbType == HongBao.TYPE_XINREN) {
-					Order order = new Order();
-					Long createtime = hb.getCreatetime();
-					if (createtime != null) {
-						Date ThirdCreateTime = new Date(createtime);
-						order.setThirdCreateTime(ThirdCreateTime);
-					}
-
-					hb.setOrder(order);
-
-				} else if (hb.getParent() != null) {
-					hb.setOrder(hb.getParent().getOrder());
-				}
-			}
-		}
-		int count = hongBaoService.getCount(uid);
-		PageEntity pe = new PageEntity();
-		pe.setPageIndex(pageIndex);
-		pe.setPageSize(Constant.PAGE_SIZE);
-		pe.setTotalCount(count);
-
-		data.put("pe", pe);
-		data.put("list", JsonUtil.getSimpleGsonWithDateAndSerialization().toJson(list));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 鏌ヨ 鍒嗕韩璧氶〉闈㈠垪琛�
-	 * 
-	 * @author mawurui createTime 2018骞�4鏈�16鏃� 涓婂崍9:54:39
-	 * @param pageIndex
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "getShareList", method = RequestMethod.POST)
-	public void getShareList(int pageIndex, long uid, PrintWriter out) {
-		int totalCount = shareService.getCount(uid);
-		PageEntity pageEntity = new PageEntity();
-		pageEntity.setPageIndex(pageIndex);
-		pageEntity.setPageSize(Constant.PAGE_SIZE);
-		pageEntity.setTotalCount(totalCount);
-
-		List<HongBao> shareList = shareService.getShareList(pageIndex, uid);
-		if (shareList.size() != 0 || shareList != null) {
-			for (HongBao hb : shareList) {
-				int hbType = hb.getType();
-				if (hbType == HongBao.TYPE_SHARE_GOODS) { // type == 20
-					Long hongbaoId = hb.getId();
-					PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
-					Order order = new Order();
-					order.setThirdCreateTime(pidOrder.getCreateTime());
-					order.setThirdState(pidOrder.getState());
-					hb.setOrder(order);
-				} else if (hb.getParent() != null) {
-					hb.setOrder(hb.getParent().getOrder());
-				}
-			}
-		}
-		JSONObject data = new JSONObject();
-		data.put("pageEntity", pageEntity);
-		data.put("shareList", GsonUtil.toJsonExpose(shareList));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 鏌ヨ 閭�璇疯禋椤甸潰鍒楄〃
-	 * 
-	 * @author mawurui createTime 2018骞�4鏈�16鏃� 涓婂崍9:54:39
-	 * @param pageIndex
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "getInviteList", method = RequestMethod.POST)
-	public void getInviteList(int pageIndex, long uid, PrintWriter out) {
-		int totalCount = shareService.getInviteCount(uid);
-		PageEntity pageEntity = new PageEntity();
-		pageEntity.setPageIndex(pageIndex);
-		pageEntity.setPageSize(Constant.PAGE_SIZE);
-		pageEntity.setTotalCount(totalCount);
-
-		List<HongBao> inviteList = shareService.getInviteList(pageIndex, uid);
-		if (inviteList.size() != 0 || inviteList != null) {
-			for (HongBao hb : inviteList) {
-				int hbType = hb.getType();
-				if (hbType == HongBao.TYPE_SHARE_GOODS) { // type == 20
-					Long hongbaoId = hb.getId();
-					PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
-					Order order = new Order();
-					order.setThirdCreateTime(pidOrder.getCreateTime());
-					order.setThirdState(pidOrder.getState());
-					hb.setOrder(order);
-				} else if (hb.getParent() != null) {
-					hb.setOrder(hb.getParent().getOrder());
-				}
-			}
-		}
-
-		JSONObject data = new JSONObject();
-		data.put("pageEntity", pageEntity);
-		data.put("inviteList", JsonUtil.getSimpleGsonWithDateAndSerialization().toJson(inviteList));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 娓呴櫎鐢ㄦ埛鎵嬪娍瀵嗙爜
-	 * 
-	 * @author mawurui createTime 2018骞�5鏈�4鏃� 涓嬪崍4:47:29
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "cleanPassword", method = RequestMethod.POST)
-	public void cleanPassword(long id, PrintWriter out) {
-		userInfoService.cleanPassword(id);
-		out.print(JsonUtil.loadTrueResult("娓呴櫎鎴愬姛"));
-	}
-
-	@RequestMapping(value = "getScanHistoryList", method = RequestMethod.POST)
-	public void getScanHistoryList(int pageIndex, long uid, PrintWriter out) {
-		List<ScanHistory> scanHistoryList = scanHistoryService.getScanHistoryByUid(pageIndex - 1, uid);
-		int count = scanHistoryService.getCountByUid(uid);
-		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("scanHistoryList", GsonUtil.toDFJson(scanHistoryList));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	@RequestMapping(value = "getAssets", method = RequestMethod.POST)
-	public void getAssets(PrintWriter out) {
-		String minMoney = configService.get(Constant.EXTRACT_MIN_MONEY);
-		double min = Double.parseDouble(minMoney);
-		double freeze = userInfoService.getFreezeAssets(min);
-		double canAssets = userInfoService.getCanAssets(min);
-		JSONObject data = new JSONObject();
-		data.put("freeze", freeze);
-		data.put("can", canAssets);
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: Excel琛ㄦ牸涓嬭浇
-	 * 
-	 * @author mawurui createTime 2018骞�5鏈�21鏃� 涓嬪崍2:14:44
-	 * @param uid
-	 * @param response
-	 */
-	@SuppressWarnings("unused")
-	@RequestMapping(value = "downDetailedExcel", produces = { "application/vnd.ms-excel;charset=UTF-8" })
-	public void downDetailedExcel(long uid, HttpServletResponse response) {
-		try {
-			List<HongBao> list = hongBaoService.getHongBaoListAll(uid);
-			if (list.size() != 0 || list != null) {
-				for (HongBao hb : list) {
-					int hbType = hb.getType();
-					if (hbType == HongBao.TYPE_SHARE_GOODS) { // type == 20
-						Long hongbaoId = hb.getId();
-						PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
-						Order order = new Order();
-						order.setOrderId(pidOrder.getOrderId());
-						order.setMoney(pidOrder.getPayMoney());
-						order.setThirdCreateTime(pidOrder.getCreateTime());
-						order.setThirdState(pidOrder.getState());
-						hb.setOrder(order);
-					} else if (hbType == HongBao.TYPE_SHARE_ERJI || hbType == HongBao.TYPE_SHARE_YIJI) { // type
-																											// ==
-						Long hongbaoId = hb.getParent().getId();
-						PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
-						Order order = new Order();
-						order.setOrderId(pidOrder.getOrderId());
-						order.setMoney(pidOrder.getPayMoney());
-						order.setThirdCreateTime(pidOrder.getCreateTime());
-						order.setThirdState(pidOrder.getState());
-						hb.setOrder(order);
-					} else if (hb.getParent() != null) {
-						hb.setOrder(hb.getParent().getOrder());
-					}
-				}
-			}
-
-			File desc = new File(this.getClass().getResource("/muban.xls").toURI());
-			InputStream inStream = new FileInputStream(desc);
-			Workbook wb = new HSSFWorkbook(inStream);
-			Sheet sheet = wb.getSheetAt(0);
-			int i = 1;
-			for (; i <= list.size(); i++) {
-				Row row = sheet.createRow(i);
-				for (int c = 1; c < 10; c++) {
-					row.createCell(c);
-				}
-				Cell cell = row.createCell(1);
-				HongBao hongBao = list.get(i - 1);
-				long createtime = hongBao.getCreatetime();
-				String create = TimeUtil.getWholeTime(createtime);
-				cell.setCellValue(create);
-
-				Cell cell2 = row.getCell(2);
-				String title = HongBaoUtil.getHongBaoTitle(hongBao.getType());
-				cell2.setCellValue(title);
-
-				Order order = hongBao.getOrder();
-				if (order != null) {
-					Cell cell3 = row.getCell(3);
-					Integer orderType = order.getOrderType();
-					if (orderType == null) {
-						orderType = 1;
-					}
-					cell3.setCellValue(orderType == 1 ? "娣樺疂" : "鍏朵粬");
-
-					String orderId = order.getOrderId();
-					if (orderId == null) {
-						orderId = "";
-					}
-					Cell cell4 = row.getCell(4);
-					cell4.setCellValue(orderId);
-
-					Cell cell5 = row.getCell(5);
-					// List<Order>
-					// orderItemService.findByOrderId(order.getId());
-					cell5.setCellValue(order.getMoney().doubleValue());
-
-					Cell cell6 = row.getCell(6);
-					String stateStr = order.getThirdState();
-					cell6.setCellValue(stateStr);
-					/*
-					 * Cell cell11 = row.getCell(11); //涓嬪崟鏃堕棿 long orderTime =
-					 * order.getCreatetime(); String oTime =
-					 * TimeUtil.getWholeTime(orderTime);
-					 * cell11.setCellValue(oTime);
-					 */
-				} else if (order == null) {
-					Cell cell3 = row.getCell(3);
-					cell3.setCellValue("娣樺疂");
-
-					Cell cell4 = row.getCell(4);
-					cell4.setCellValue("");
-
-					Cell cell5 = row.getCell(5);
-					cell5.setCellValue("");
-
-					Cell cell6 = row.getCell(6);
-					cell6.setCellValue("");
-				} else if (hongBao.getParent() != null) {// 灞炰簬鍒嗛攢绾㈠寘
-					String orderId = "";
-					if (hongBao.getParent().getParent() != null) {
-						orderId = hongBao.getParent().getParent().getOrder().getOrderId();
-					} else {
-						orderId = hongBao.getParent().getOrder().getOrderId();
-					}
-					Cell cell4 = row.getCell(4);
-					cell4.setCellValue(orderId);
-				}
-				Cell cell7 = row.getCell(7);
-				cell7.setCellValue(hongBao.getMoney().doubleValue());
-
-				Cell cell8 = row.getCell(8);
-				cell8.setCellValue(HongBaoUtil.convertState(hongBao.getState()));
-
-				Cell cell9 = row.getCell(9);
-				if (hongBao.getGetTime() != 0) {
-					cell9.setCellValue(TimeUtil.getWholeTime(hongBao.getGetTime()));
-				}
-			}
-			List<Extract> extractList = extractService.getExtractInfoByUid(uid);
-			int ii = i;
-			for (int m = 0; m < extractList.size(); m++, ii++) {
-				Row row = sheet.createRow(ii);
-				for (int c = 1; c < 10; c++) {
-					row.createCell(c);
-				}
-				Cell cell = row.getCell(1);
-				Extract extract = extractList.get(m);
-				cell.setCellValue(TimeUtil.getWholeTime(extract.getExtractTime()));
-				Cell cell2 = row.getCell(2);
-				cell2.setCellValue("鎻愮幇");
-				Cell cell7 = row.getCell(7);
-				cell7.setCellValue(-extract.getMoney().doubleValue());
-			}
-			CellRangeAddress cellRangeAddress = new CellRangeAddress(0, sheet.getLastRowNum(), 1, 9);
-			sheet.setAutoFilter(cellRangeAddress);
-			wb.write(response.getOutputStream());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * 鏌ヨ鐢ㄦ埛淇℃伅鍒楄〃--鐩稿叧鏁版嵁缁熻
-	 * 
-	 * @param callback
-	 * @param pageIndex
-	 * @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) {
-
-		try {
-
-			// 缁撴潫鏃堕棿 2018-06-06 00:00:00 鍔犱笂涓�澶�
-			if (!StringUtil.isNullOrEmpty(endTime)) {
-
-				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-				Date enddate = sdf.parse(endTime);
-				Calendar c = Calendar.getInstance();
-				c.setTime(enddate);
-				c.add(Calendar.DAY_OF_MONTH, 1);// 浠婂ぉ+1澶�
-				endTime = sdf.format(c.getTime());
-			}
-
-			if (pageIndex == null)
-				pageIndex = 1;
-
-			if (pageSize == null)
-				pageSize = Constant.PAGE_SIZE;
-
-			Integer orderField = null;
-			if (orderMode != null) {
-				if (orderMode == 1 || orderMode == 2) {
-					orderField = orderMode;
-					orderMode = 1;
-				} else if (orderMode == 3 || orderMode == 4) {
-					orderField = orderMode;
-					orderMode = 2;
-				} else if (orderMode == 5 || orderMode == 6) {
-					orderField = orderMode;
-					orderMode = 3;
-				}
-			}
-
-			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("鏆傛棤鐩稿叧鏁版嵁"));
-				return;
-			}
-
-			long count = userInfoService.queryCount(key, userType, days, startTime, endTime);
-
-			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("sumMoney", sumMoney);
-			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 out
-	 */
-	@RequestMapping(value = "countInfo")
-	public void countInfo(String callback, PrintWriter out) {
-		try {
-
-			// 绱鐢ㄦ埛鏁伴噺
-			long totalUser = userInfoCountService.countNewUser(null, null);
-			// 娴佸け鐢ㄦ埛鏁伴噺锛�180澶╂湭浣跨敤鐧诲綍骞朵笖鏃犱换浣曡祫閲戞祦鍔ㄧ殑璐﹀彿鏁伴噺锛�
-			long loseUser = userInfoCountService.countLoseUser(180);
-			// 绱鏈夎喘涔扮敤鎴锋暟
-			long orderUser = userInfoCountService.countHasOrderUser();
-
-			// 鎬绘暟-鏅�氱敤鎴�
-			long countNormal = 0;
-			// 鎬绘暟-閾滅敤鎴�
-			long countCuprum = 0;
-			// 鎬绘暟-閾剁敤鎴�
-			long countSilver = 0;
-			// 鎬绘暟-閲戠敤鎴�
-			long countGold = 0;
-
-			List<UserRank> listRank = userRankService.getAllRank();
-			if (listRank != null && listRank.size() > 0) {
-				for (UserRank userRank : listRank) {
-					Long id = userRank.getId();
-					String name = userRank.getName();
-					if ("闈掗摐".equals(name)) {
-						continue;
-					}
-
-					long count = userInfoExtraService.countByRankId(id);
-					if ("鐧介摱".equals(name)) {
-						countCuprum = count;
-					} else if ("榛勯噾".equals(name)) {
-						countSilver = count;
-					} else if ("閾傞噾".equals(name)) {
-						countGold = count;
-					}
-				}
-			}
-
-			// 鏅�氱敤鎴疯绠�
-			countNormal = totalUser - (countCuprum + countSilver + countGold);
-
-			JSONObject data = new JSONObject();
-			data.put("totalUser", totalUser);
-			data.put("loseUser", loseUser);
-			data.put("orderUser", orderUser);
-			data.put("countNormal", countNormal);
-			data.put("countCuprum", countCuprum);
-			data.put("countSilver", countSilver);
-			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);
-			 */
-
-			// 浠婃棩鏂板鐢ㄦ埛鏁伴噺
-			long todayUser = userInfoCountService.countNewUser(1, null);
-			// 鏈湀鏂板鐢ㄦ埛鏁伴噺
-			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("鎿嶄綔寮傚父"));
-		}
-	}
-
-	/**
-	 * 淇敼鐢ㄦ埛鐨勭姸鎬併�佺瓑绾т俊鎭�
-	 * 
-	 * @param callback
-	 * @param userInfo
-	 * @param out
-	 */
-	@RequestMapping(value = "setInfo")
-	public void setInfo(String callback, UserInfo userInfo, PrintWriter out) {
-		try {
-
-			Long id = userInfo.getId();
-
-			if (id == null) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
-				return;
-			}
-
-			UserInfo currentInfo = userInfoService.selectByPKey(id);
-			if (currentInfo == null) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ョ敤鎴峰凡涓嶅瓨鍦�"));
-				return;
-			}
-
-			currentInfo = new UserInfo(id);
-
-			boolean hasChange = false;
-
-			// 绛夌骇淇敼
-			Integer rank = userInfo.getRank();
-			if (rank != null) {
-				hasChange = true;
-				currentInfo.setRank(rank);
-			}
-
-			// 鐘舵�佷慨鏀�
-			Integer state = userInfo.getState();
-			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) {
-					// 瑙e皝寰俊
-					ForbiddenUserIdentifyCode forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService
-							.listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId,
-									nowUser.getWxUnionId());
-					if (forbiddenUserIdentifyCode != null)
-						forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode);
-					// 瑙e皝鎵嬫満
-					forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService
-							.listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, nowUser.getPhone());
-					if (forbiddenUserIdentifyCode != null)
-						forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode);
-					// 瑙e皝娣樺疂
-					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);
-					}
-					// 瑙e皝鏀粯瀹�
-					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) {
-			e.printStackTrace();
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淇敼澶辫触"));
-		}
-	}
-
-	/**
-	 * 鍒犻櫎缁戝畾鐨勮处鎴蜂俊鎭細 鏀粯瀹� 寰俊
-	 * 
-	 * @param callback
-	 * @param bindId
-	 * @param out
-	 */
-	@RequestMapping(value = "deleteBindingAccount")
-	public void deleteBindingAccount(String callback, Long bindId, PrintWriter out) {
-		try {
-
-			if (bindId == null) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
-				return;
-			}
-
-			int count = bindingAccountService.deleteByPrimaryKey(bindId);
-
-			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("鎿嶄綔寮傚父"));
-		}
-	}
-
-	/**
-	 * 
-	 * @param data
-	 * @param uid
-	 *            鐢ㄦ埛ID
-	 * @param type
-	 *            闇�瑕佽В缁戠殑璐︽埛绫诲瀷
-	 */
-	@RequestMapping("unBindUserInfo")
-	public void unBindUserInfo(String callback, Long id, Integer type, PrintWriter out) {
-		try {
-
-			if (id == null) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鐢ㄦ埛锛�"));
-				return;
-			}
-
-			if (type == null) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璐︽埛绫诲瀷涓嶅彲涓虹┖锛�"));
-				return;
-			}
-
-			UserInfo find = userInfoService.getUserById(id);
-
-			if (find == null) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鐢ㄦ埛锛�"));
-				return;
-			}
-
-			String openid = find.getOpenid();
-			String wxUnionId = find.getWxUnionId();
-			String phone = find.getPhone();
-			if (1 == type) {
-				if (StringUtil.isNullOrEmpty(openid)) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("褰撳墠鐢ㄦ埛鏈粦瀹氭敮浠樺疂锛�"));
-					return;
-				}
-			} else if (2 == type) {
-				if (StringUtil.isNullOrEmpty(wxUnionId)) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("褰撳墠鐢ㄦ埛鏈粦瀹氬井淇★紒"));
-					return;
-				}
-			} else if (3 == type) {
-				if (StringUtil.isNullOrEmpty(phone)) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("褰撳墠鐢ㄦ埛鏈粦瀹氭墜鏈哄彿锛�"));
-					return;
-				}
-			} else {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璐︽埛绫诲瀷鏈夎锛�"));
-				return;
-			}
-
-			userInfoService.deleteBindInfo(find, type);
-
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("瑙g粦鎴愬姛"));
-
-		} 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("鎿嶄綔寮傚父"));
-		}
-	}
-
-	@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("鎿嶄綔寮傚父"));
-		}
-	}
-
-	/**
-	 * 闃熷憳鍏崇郴
-	 * 
-	 * @param pageIndex
-	 * @param key
-	 * @param state
-	 * @param startTime
-	 * @param endTime
-	 * @param out
-	 */
-	@RequestMapping(value = "getRelationList")
-	public void getRelationList(String callback, Integer pageIndex, Integer pageSize, Long uid, Integer type,
-			Integer state, String startTime, String endTime, PrintWriter out) {
-
-		if (pageIndex == null || pageIndex < 1) {
-			pageIndex = 1;
-		}
-
-		if (pageSize == null || pageSize < 1) {
-			pageSize = Constant.PAGE_SIZE;
-		}
-
-		try {
-
-			if (!StringUtil.isNullOrEmpty(endTime)) {
-				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-				Date enddate = sdf.parse(endTime);
-				Calendar c = Calendar.getInstance();
-				c.setTime(enddate);
-				c.add(Calendar.DAY_OF_MONTH, 1);// 浠婂ぉ+1澶�
-				endTime = sdf.format(c.getTime());
-			}
-
-			List<ThreeSale> listQuery = null;
-			if (type == 0) {
-				// 涓婄骇鐢ㄦ埛
-				if (uid == null) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ涓婄骇闇�杈撳叆鐢ㄦ埛id"));
-					return;
-				}
-				listQuery = threeSaleService.listSuperiorQuery((pageIndex - 1) * pageSize, pageSize, state, uid);
-			} else if (type == 1) {
-				// 涓�绾х敤鎴�
-				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);
-			}
-
-			if (listQuery == null || listQuery.size() == 0) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
-				return;
-			}
-
-			for (ThreeSale threeSale : listQuery) {
-				Integer expire = threeSale.getExpire();
-				if (threeSale.getState()) {
-					threeSale.setExpire(1); // 閭�璇锋垚鍔�
-				} else {
-					if (expire != null && expire == 1) {
-						threeSale.setExpire(2); // 閭�璇峰け鏁�
-					} else {
-						threeSale.setExpire(0);// 宸查個璇�
-					}
-				}
-			}
-
-			long count = 0;
-			if (type == 0) {
-				// 涓婄骇鐢ㄦ埛
-				count = threeSaleService.countSuperiorQuery(state, uid);
-			} else if (type == 1) {
-				// 涓�绾х敤鎴�
-				count = threeSaleService.countFirstTeamQuery(uid, state, startTime, endTime);
-			} else if (type == 2) {
-				// 浜岀骇鐢ㄦ埛
-				count = threeSaleService.countSecondTeamQuery(uid, state, startTime, endTime);
-			}
-
-			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", listQuery);
-
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-		} catch (Exception e) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触"));
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * 鐢ㄦ埛璐︽埛鏄庣粏
-	 * 
-	 * @param callback
-	 * @param pageIndex
-	 * @param pageSize
-	 * @param id
-	 * @param out
-	 */
-	@RequestMapping(value = "getAccountDetails")
-	public void getAccountDetails(String callback, Integer pageIndex, Integer pageSize, Long uid, PrintWriter out) {
-		if (pageIndex == null || pageIndex < 1) {
-			pageIndex = 1;
-		}
-
-		if (pageSize == null || pageSize < 1) {
-			pageSize = Constant.PAGE_SIZE;
-		}
-
-		if (uid == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
-			return;
-		}
-
-		try {
-
-			List<UserMoneyDetail> userMoneyDetailsList = userMoneyDetailService.listByUidWithState(uid, pageIndex,
-					pageSize);
-			if (userMoneyDetailsList == null || userMoneyDetailsList.size() == 0) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
-				return;
-			}
-
-			List<AccountDetails> detailList = new ArrayList<>();
-			for (UserMoneyDetail detail : userMoneyDetailsList)
-				detailList.add(AccountDetailsFactory.create(detail));
-
-			long count = userMoneyDetailService.countByUidWithState(uid);
-
-			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(detailList));
-
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-		} catch (Exception e) {
-			e.printStackTrace();
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触"));
-		}
-	}
-
-	/**
-	 * 鏍规嵁娓犻亾 缁熻褰撴棩鏂板鐢ㄦ埛鏁伴噺
-	 * 
-	 * @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) {
-
-		String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
-		if (validateMsg != null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
-			return;
-		}
-
-		if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
-			startTime = null;
-			endTime = null;
-		}
-
-		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");
-		}
-
-		if (dateType == 1 && year != null) {
-			year = null; // 璁剧疆涓虹┖
-		} else if (dateType == 2) {
-			if (startTime != null)
-				startTime = null;
-
-			if (endTime != null)
-				endTime = null;
-
-		} else if (dateType == 3) {
-			if (year != null)
-				year = null;
-
-			if (startTime != null)
-				startTime = null;
-
-			if (endTime != null)
-				endTime = null;
-		}
-
-		try {
-
-			Gson gson = new Gson();
-			Object objectDate = null;
-			List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
-
-			JSONArray line_list = new JSONArray();
-			for (String channel : channelList) {
-
-				List<Map<String, Object>> list = userInfoCountService.countNewUserByDate(channel, dateType, year,
-						startTime, endTime);
-
-				if ("all".equalsIgnoreCase(channel)) {
-					channel = "鎬昏";
-				}
-
-				JSONObject innerList = new JSONObject();
-				innerList.put("name", channel);
-
-				if (dateType != 3) {
-					innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
-				} else {
-					// 骞磋鍥�
-					Map<String, Object> map = AdminUtils.yearsDataFactory(list);
-
-					if (objectDate == null) {
-						objectDate = map.get("date");
-					}
-					innerList.put("data", gson.toJson(map.get("value")));
-				}
-
-				line_list.add(innerList);
-			}
-
-			JSONObject data = new JSONObject();
-			if (objectDate != null) {
-				data.put("xAxis_list", gson.toJson(objectDate));
-			} else {
-				data.put("xAxis_list", gson.toJson(dateList));
-			}
-
-			data.put("line_list", line_list);
-
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-		} catch (Exception e) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * 鏍规嵁娓犻亾 缁熻褰撴棩鏂板鐢ㄦ埛鏁伴噺
-	 * 
-	 * @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) {
-
-		String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
-		if (validateMsg != null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
-			return;
-		}
-
-		if (dateType == 2 && StringUtil.isNullOrEmpty(year)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇疯緭鍏ュ勾浠�"));
-			return;
-		}
-
-		if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
-			startTime = null;
-			endTime = null;
-		}
-
-		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");
-		}
-
-		if (dateType == 1 && year != null) {
-			year = null; // 璁剧疆涓虹┖
-		} else if (dateType == 2) {
-			if (startTime != null)
-				startTime = null;
-
-			if (endTime != null)
-				endTime = null;
-
-		} else if (dateType == 3) {
-			if (year != null)
-				year = null;
-
-			if (startTime != null)
-				startTime = null;
-
-			if (endTime != null)
-				endTime = null;
-		}
-
-		try {
-
-			Gson gson = new Gson();
-			Object objectDate = null;
-			List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
-
-			JSONArray line_list = new JSONArray();
-			for (String channel : channelList) {
-
-				List<Map<String, Object>> list = userInfoCountService.getTodayBuyRate(channel, dateType, year,
-						startTime, endTime);
-
-				if ("all".equalsIgnoreCase(channel)) {
-					channel = "鎬昏";
-				}
-
-				JSONObject innerList = new JSONObject();
-				innerList.put("name", channel);
-
-				if (dateType != 3) {
-					innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
-				} else {
-					// 骞磋鍥�
-					Map<String, Object> map = AdminUtils.yearsDataFactory(list);
-
-					if (objectDate == null) {
-						objectDate = map.get("date");
-					}
-					innerList.put("data", gson.toJson(map.get("value")));
-				}
-
-				line_list.add(innerList);
-			}
-
-			JSONObject data = new JSONObject();
-			if (objectDate != null) {
-				data.put("xAxis_list", gson.toJson(objectDate));
-			} else {
-				data.put("xAxis_list", gson.toJson(dateList));
-			}
-
-			data.put("line_list", line_list);
-
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-		} catch (Exception e) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
-			e.printStackTrace();
-		}
-
-	}
-
-	/**
-	 * 褰撳懆浜х敓3鍗曠殑鏂板鐢ㄦ埛姒傜巼
-	 * 
-	 * @param callback
-	 * @param channelArray
-	 *            娓犻亾鍚嶇О
-	 * @param startTime
-	 * @param endTime
-	 * @param orderNum
-	 *            璁㈠崟鏁伴噺
-	 * @param out
-	 */
-	@RequestMapping(value = "getWeekBuyRate")
-	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("褰撳懆璁㈠崟缁熻瀵瑰簲鏃堕棿鍖哄煙涓嶈兘涓虹┖"));
-			return;
-		}
-
-		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");
-		}
-
-		if (orderNum < 1) {
-			orderNum = 1;
-		}
-
-		try {
-
-			Gson gson = new Gson();
-			List<String> dateList = AdminUtils.getDateList(1, startTime, endTime, null);
-
-			JSONArray line_list = new JSONArray();
-			for (String channel : channelList) {
-
-				List<Object> list = userInfoCountService.getWeekBuyRate(channel, startTime, endTime, orderNum,
-						dateList);
-
-				if ("all".equalsIgnoreCase(channel)) {
-					channel = "鎬昏";
-				}
-
-				JSONObject innerList = new JSONObject();
-				innerList.put("name", channel);
-				innerList.put("data", gson.toJson(list));
-				line_list.add(innerList);
-			}
-
-			JSONObject data = new JSONObject();
-			data.put("xAxis_list", gson.toJson(dateList));
-			data.put("line_list", line_list);
-
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-		} catch (Exception e) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
-			e.printStackTrace();
-		}
-	}
-
-	
-	/**
-	 * 鏌ヨ灏佺
-	 * @param callback
-	 * @param pageIndex
-	 * @param pageSize
-	 * @param key
-	 * @param type
-	 * @param out
-	 */
-	@RequestMapping(value = "forbiddenQuery")
-	public void forbiddenQuery(String callback, Integer pageIndex, Integer pageSize, String key, Integer type, PrintWriter out) {
-
-		try {
-
-			if (pageIndex == null)
-				pageIndex = 1;
-
-			if (pageSize == null)
-				pageSize = Constant.PAGE_SIZE;
-
-			
-			List<ForbiddenUserIdentifyCodeVO> list = forbiddenUserIdentifyCodeService.listQuery((pageIndex - 1) * pageSize, 
-					pageSize, key, type);
-			
-			if (list == null || list.size() == 0) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鐩稿叧鏁版嵁"));
-				return;
-			}
-
-			long count = forbiddenUserIdentifyCodeService.countQuery(key, type);
-			
-			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("result_list", gson.toJson(list));
-
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-		} catch (Exception e) {
-			e.printStackTrace();
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
-		}
-	}
-
-	
-	/**
-	 * 鐢ㄦ埛璐﹀彿- 灏佺/瑙e皝 
-	 * @param callback
-	 * @param code
-	 * @param type 1("寰俊unionId"), 2("娣樺疂ID"), 3("鎵嬫満鍙�"), 4("鏀粯瀹濊处鍙�");
-	 * @param out
-	 */
-	@RequestMapping(value = "saveForbiddenInfo")
-	public void saveForbiddenInfo(String callback, String code, Integer type, boolean state, PrintWriter out) {
-		try {
-			if (code == null || code.trim().length() == 0 || type == null) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
-			}
-			
-			forbiddenUserIdentifyCodeService.saveForbiddenInfo(code, type, state);
-			
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("淇敼鎴愬姛"));
-
-		} catch (ForbiddenUserIdentifyCodeException e) {
-			e.printStackTrace();
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
-		} catch (Exception e) {
-			e.printStackTrace();
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
-		}
-		
-	}
-	
-}
+package com.yeshi.fanli.controller.admin;
+
+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;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import com.yeshi.fanli.entity.accept.AdminAcceptData;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.yeshi.utils.IPUtil;
+import org.yeshi.utils.JsonUtil;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonPrimitive;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+import com.google.gson.reflect.TypeToken;
+import com.yeshi.fanli.controller.admin.utils.AdminUtils;
+import com.yeshi.fanli.dto.ChartTDO;
+import com.yeshi.fanli.entity.admin.count.CountUserInfo;
+import com.yeshi.fanli.entity.bus.user.BindingAccount;
+import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
+import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
+import com.yeshi.fanli.entity.bus.user.ThreeSale;
+import com.yeshi.fanli.entity.bus.user.UserActiveLog;
+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.TearcherInfo;
+import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
+import com.yeshi.fanli.entity.common.AdminUser;
+import com.yeshi.fanli.entity.integral.IntegralDetail;
+import com.yeshi.fanli.entity.money.UserMoneyDetail;
+import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
+import com.yeshi.fanli.exception.user.ForbiddenUserIdentifyCodeException;
+import com.yeshi.fanli.exception.user.vip.UserVIPInfoException;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
+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;
+import com.yeshi.fanli.service.inter.user.UserInfoDeleteRecordService;
+import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
+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.ThreeSaleDetailService;
+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.TearcherService;
+import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
+import com.yeshi.common.entity.PageEntity;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.StringUtil;
+import org.yeshi.utils.TimeUtil;
+import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
+import com.yeshi.fanli.vo.user.UserGoldCoinVO;
+import com.yeshi.fanli.vo.user.UserInfoVO;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+@Controller
+@RequestMapping("admin/new/api/v1/user")
+public class UserInfoAdminController {
+	@Resource
+	private UserInfoService userInfoService;
+
+	@Resource
+	private ThreeSaleSerivce threeSaleService;
+
+	@Resource
+	private BindingAccountService bindingAccountService;
+
+	@Resource
+	private UserInfoCountService userInfoCountService;
+
+	@Resource
+	private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
+
+	@Resource
+	private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
+
+	@Resource
+	private UserInfoExtraService userInfoExtraService;
+
+	@Resource
+	private UserRankService userRankService;
+
+	@Resource
+	private UserMoneyDetailService userMoneyDetailService;
+
+	@Resource
+	private UserInfoDeleteRecordService userInfoDeleteRecordService;
+
+	@Resource
+	private UserAccountService userAccountService;
+
+	@Resource
+	private UserActiveLogService userActiveLogService;
+
+	@Resource
+	private UserVIPInfoService userVIPInfoService;
+
+	@Resource
+	private IntegralDetailService integralDetailService;
+
+	@Resource
+	private UserInviteValidNumService userInviteValidNumService;
+
+	@Resource
+	private ThreeSaleSerivce threeSaleSerivce;
+
+	@Resource
+	private ExtractService extractService;
+
+	@Resource
+	private HongBaoV2Service hongBaoV2Service;
+
+	@Resource
+	private TearcherService tearcherService;
+
+	@Resource
+	private ThreeSaleDetailService threeSaleDetailService;
+
+	@Resource
+	private HongBaoV2CountService hongBaoV2CountService;
+
+	/**
+	 * 鏌ヨ鐢ㄦ埛淇℃伅鍒楄〃 姝e父鐢ㄦ埛/寮傚父鐢ㄦ埛
+	 * 
+	 * @param callback
+	 * @param pageIndex
+	 * @param key       鏌ヨ鏉′欢
+	 * @param userType  鐢ㄦ埛绫诲瀷锛氶噾鍐犮�侀摱鍐犮�侀摐鍐�
+	 * @param days      鏌ヨ澶╂暟
+	 * @param startTime 娉ㄥ唽鏃堕棿
+	 * @param endTime   娉ㄥ唽鏃堕棿
+	 * @param orderMode 鎺掑簭鏂瑰紡 璁㈠崟鏁伴噺 浠婃棩璁㈠崟 绱闃熷憳
+	 * @param out
+	 */
+	@RequestMapping(value = "query")
+	public void query(AdminAcceptData acceptData, String callback, Integer pageIndex, Integer pageSize, String key, Integer keyType, Integer rank,
+					  Integer userType, 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涓嶈兘涓虹┖"));
+				return;
+			}
+
+			if (pageIndex == null)
+				pageIndex = 1;
+
+			if (pageSize == null)
+				pageSize = Constant.PAGE_SIZE;
+
+			Integer orderField = null;
+			if (orderMode != null) {
+				if (orderMode == 1 || orderMode == 2) {
+					orderField = orderMode;
+					orderMode = 1;
+				} else if (orderMode == 3 || orderMode == 4) {
+					orderField = orderMode;
+					orderMode = 2;
+				} else if (orderMode == 5 || orderMode == 6) {
+					orderField = orderMode;
+					orderMode = 3;
+				}
+			}
+
+			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.query((pageIndex - 1) * pageSize, pageSize, type, key, keyType,
+					userRank, days, startTime, endTime, orderField, orderMode, userType, level, activeCode,acceptData.getSystem());
+
+			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,
+					level, activeCode,acceptData.getSystem());
+
+			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 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(AdminAcceptData acceptData,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,acceptData.getSystem());
+
+			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,acceptData.getSystem());
+
+			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(AdminAcceptData acceptData,String callback, Long uid, PrintWriter out) {
+		try {
+			UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+			if (user == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ョ敤鎴稩D涓嶅瓨鍦�"));
+				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(AdminAcceptData acceptData,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();
+		}
+	}
+
+
+    /**
+     * 鐢ㄦ埛绮変笣缁熻
+     * @param acceptData
+     * @param callback
+     * @param uid
+     * @param out
+     */
+	@RequestMapping(value = "countTeamFans")
+	public void countTeamFans(AdminAcceptData acceptData,String callback, Long uid, PrintWriter out) {
+		JSONObject data = new JSONObject();
+
+		// 瀵煎笀
+		String tearcherName = "";
+		TearcherInfo tearcherInfo = tearcherService.selectByUid(uid);
+		if (tearcherInfo != null) {
+			tearcherName = tearcherInfo.getNickName();
+		}
+		data.put("tearcherName", tearcherName);
+
+		// 閭�璇蜂汉
+		String bossName = "";
+		UserInfo boss = threeSaleSerivce.getBoss(uid);
+		if (boss != null) {
+			bossName = boss.getNickName();
+		}
+		data.put("bossName", bossName);
+
+		// 閭�璇风矇涓�
+		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();
+		}
+		data.put("doneFirst", doneFirst);
+		data.put("doneSecond", doneSecond);
+
+		// 涔濅唬绮変笣鏁伴噺
+		data.put("nineFans", threeSaleDetailService.countByBossUidAndMaxLevel(uid, 9));
+
+		// 鏈夋晥绮変笣
+		data.put("first", threeSaleSerivce.countFirstTeam(uid));
+		data.put("second", threeSaleSerivce.countSecondTeam(uid));
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 鐢ㄦ埛璇︾粏淇℃伅
+	 * 
+	 * @param callback
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "getInfoDetail")
+	public void getInfoDetail(AdminAcceptData acceptData,String callback, Long uid, PrintWriter out) {
+
+		UserInfo user = userInfoService.selectByPKey(uid);
+		UserInfoVO userInfoVO = new UserInfoVO();
+		userInfoVO.setId(uid);
+		userInfoVO.setPhone(user.getPhone());
+		userInfoVO.setState(user.getState());
+		userInfoVO.setCreatetime(user.getCreatetime());
+
+		UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+		if (userInfoExtra != null) {
+			if (!StringUtil.isNullOrEmpty(userInfoExtra.getMark())) {
+				userInfoVO.setMark(userInfoExtra.getMark());
+			}
+			userInfoVO.setInviteCode(userInfoExtra.getInviteCode());
+			userInfoVO.setInviteCodeVip(userInfoExtra.getInviteCodeVip());
+			userInfoVO.setWxId(userInfoExtra.getWeiXin());
+		}
+
+		// 鏈�杩戜竴娆′笅鍗曟椂闂�
+		Date lastOrderTime = hongBaoV2CountService.getLastHongBaoTime(uid);
+		if (lastOrderTime != null) {
+			userInfoVO.setLastOrderTime(lastOrderTime.getTime());
+		}
+
+		// 鏈�杩戠櫥褰曟椂闂�
+		UserActiveLog userActiveLog = userActiveLogService.getUserLatestActiveInfo(uid);
+		if (userActiveLog != null) {
+			userInfoVO.setLastLoginTime(userActiveLog.getCreateTime().getTime());
+		}
+
+		// 鏄剧ず鐢ㄦ埛寰俊 娣樺疂 鑰佺増鏈瓨鍦�
+		String wxId = userInfoVO.getWxId();
+		if (wxId == null) {
+			userInfoVO.setWxId("");
+		}
+
+		// 鏄惁缁戝畾鏀粯瀹濓紙璐拱 + 鍒嗕韩鏉冮檺锛�
+		UserExtraTaoBaoInfo extraTaoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
+		if (extraTaoBaoInfo != null) {
+			String taoBaoUid = extraTaoBaoInfo.getTaoBaoUid();
+			String specialId = extraTaoBaoInfo.getSpecialId();
+			String relationId = extraTaoBaoInfo.getRelationId();
+			if (StringUtil.isNullOrEmpty(taoBaoUid) || StringUtil.isNullOrEmpty(specialId)
+					|| StringUtil.isNullOrEmpty(relationId)) {
+				userInfoVO.setTbName(null);
+				userInfoVO.setTaoBaoUid(null);
+			} else {
+				userInfoVO.setTbName(extraTaoBaoInfo.getTaoBaoNickName());
+				userInfoVO.setTaoBaoUid(extraTaoBaoInfo.getTaoBaoUid());
+			}
+		}
+
+		/* 缁戝畾鏀舵璐﹀彿淇℃伅 */
+		List<BindingAccount> account = bindingAccountService.getBindingAccountByUid(uid);
+		if (account != null && account.size() > 0) {
+			BindingAccount bindingAccount = account.get(0);
+			Integer type = bindingAccount.getType();
+			if (type != null && type == 1) {
+				// 鏀粯瀹�
+				userInfoVO.setAccountAlipay(bindingAccount.getAccount());
+				userInfoVO.setAccountName(bindingAccount.getName());
+				userInfoVO.setAccountBindId(bindingAccount.getId());
+			} else if (type != null && type == 2) {
+				// 寰俊
+				userInfoVO.setAccountWX(bindingAccount.getAccount());
+				userInfoVO.setAccountNameWX(bindingAccount.getName());
+				userInfoVO.setAccountBindIdWX(bindingAccount.getId());
+			}
+		}
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(userInfoVO));
+	}
+	
+	
+	/**
+	 *  缁戝畾璇︽儏
+	 * 
+	 * @param callback
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "getBindDetail")
+	public void getBindDetail(AdminAcceptData acceptData,String callback, Long uid, PrintWriter out) {
+		UserInfo user = userInfoService.selectByPKey(uid);
+		
+		JSONObject data = new JSONObject();
+		
+		Integer state = user.getState();
+		if (state == UserInfo.STATE_NORMAL) {
+			data.put("stateDesc", "姝e父");
+		} else if (state == UserInfo.STATE_DELETE) {
+			data.put("stateDesc", "宸插垹闄�");
+		} else if (state == UserInfo.STATE_FORBIDDEN) {
+			data.put("stateDesc", "宸插皝绂�");
+		} else if (state == UserInfo.STATE_DELETE_OUT_OF_DATE) {
+			data.put("stateDesc",  "闀挎湡鏈櫥褰曞垹闄�");
+		}
+		data.put("state", state);
+		data.put("phone", user.getPhone());
+		
+		// 寰俊鎺堟潈
+		String wxUnionId = user.getWxUnionId();
+		if(StringUtil.isNullOrEmpty(wxUnionId)) {
+			data.put("wxName", "");
+			data.put("wxState", false);
+		} else {
+			data.put("wxName", user.getWxName());
+			data.put("wxnState", true);
+		}
+		
+		String mark = "";
+		UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+		if (userInfoExtra != null) {
+			if (!StringUtil.isNullOrEmpty(userInfoExtra.getMark())) {
+				mark = userInfoExtra.getMark();
+			}
+		}
+		data.put("mark", mark);
+		
+		
+		// 娣樺疂鎺堟潈
+		String tbName = "";
+		boolean tbState = false;
+		UserExtraTaoBaoInfo extraTaoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
+		if (extraTaoBaoInfo != null) {
+			String taoBaoUid = extraTaoBaoInfo.getTaoBaoUid();
+			String specialId = extraTaoBaoInfo.getSpecialId();
+			String relationId = extraTaoBaoInfo.getRelationId();
+			if (!StringUtil.isNullOrEmpty(taoBaoUid) && StringUtil.isNullOrEmpty(specialId) && StringUtil.isNullOrEmpty(relationId)) {
+				tbState = true;
+				tbName = extraTaoBaoInfo.getTaoBaoNickName();
+			}
+		}
+		data.put("tbName", tbName);
+		data.put("tbState", tbState);
+		
+		/* 缁戝畾鏀舵璐﹀彿淇℃伅 */
+		String accountName = "";
+		boolean accountState = false;
+		List<BindingAccount> account = bindingAccountService.getBindingAccountByUid(uid);
+		if (account != null && account.size() > 0) {
+			BindingAccount bindingAccount = account.get(0);
+			Integer type = bindingAccount.getType();
+			// 鏀粯瀹�
+			if (type != null && type == 1) {
+				accountState = true;
+				accountName = bindingAccount.getAccount();
+			} 
+		}
+		data.put("account", accountName);
+		data.put("accountState", accountState);
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 缁熻浠婃棩鐢ㄦ埛鎬绘儏鍐�
+	 * 
+	 * @param callback
+	 * @param out
+	 */
+	@RequestMapping(value = "countInfo")
+	public void countInfo(AdminAcceptData acceptData,String callback, PrintWriter out) {
+		try {
+
+			// 绱鐢ㄦ埛鏁伴噺
+			long totalUser = userInfoCountService.countNewUser(null, null);
+			// 娴佸け鐢ㄦ埛鏁伴噺锛�180澶╂湭浣跨敤鐧诲綍骞朵笖鏃犱换浣曡祫閲戞祦鍔ㄧ殑璐﹀彿鏁伴噺锛�
+			long loseUser = userInfoCountService.countLoseUser(180);
+			// 绱鏈夎喘涔扮敤鎴锋暟
+			long orderUser = userInfoCountService.countHasOrderUser();
+
+			// 鎬绘暟-鏅�氱敤鎴�
+			long countNormal = 0;
+			// 鎬绘暟-閾滅敤鎴�
+			long countCuprum = 0;
+			// 鎬绘暟-閾剁敤鎴�
+			long countSilver = 0;
+			// 鎬绘暟-閲戠敤鎴�
+			long countGold = 0;
+
+			List<UserRank> listRank = userRankService.getAllRank();
+			if (listRank != null && listRank.size() > 0) {
+				for (UserRank userRank : listRank) {
+					Long id = userRank.getId();
+					String name = userRank.getName();
+					if ("闈掗摐".equals(name)) {
+						continue;
+					}
+
+					long count = userInfoExtraService.countByRankId(id);
+					if ("鐧介摱".equals(name)) {
+						countCuprum = count;
+					} else if ("榛勯噾".equals(name)) {
+						countSilver = count;
+					} else if ("閾傞噾".equals(name)) {
+						countGold = count;
+					}
+				}
+			}
+
+			// 鏅�氱敤鎴疯绠�
+			countNormal = totalUser - (countCuprum + countSilver + countGold);
+
+			JSONObject data = new JSONObject();
+			data.put("totalUser", totalUser);
+			data.put("loseUser", loseUser);
+			data.put("orderUser", orderUser);
+			data.put("countNormal", countNormal);
+			data.put("countCuprum", countCuprum);
+			data.put("countSilver", countSilver);
+			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);
+			 */
+
+			// 浠婃棩鏂板鐢ㄦ埛鏁伴噺
+			long todayUser = userInfoCountService.countNewUser(1, null);
+			// 鏈湀鏂板鐢ㄦ埛鏁伴噺
+			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("鎿嶄綔寮傚父"));
+		}
+	}
+
+    /**
+     *
+     * @param acceptData
+     * @param callback
+     * @param uid
+     * @param typeArray
+     * @param out
+     */
+	@RequestMapping("unBindUserInfo")
+	public void unBindUserInfo(AdminAcceptData acceptData,String callback, Long uid, String typeArray, PrintWriter out) {
+		try {
+			if (typeArray == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("娌℃湁鍙洿鏀圭殑鍐呭"));
+				return;
+			}
+
+			Gson gson = new Gson();
+			List<Integer> list = gson.fromJson(typeArray, new TypeToken<ArrayList<Integer>>() {
+			}.getType());
+			if (list == null || list.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("娌℃湁鍙洿鏀圭殑鍐呭"));
+				return;
+			}
+
+			if (uid == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛id涓嶈兘涓虹┖"));
+				return;
+			}
+
+			UserInfo find = userInfoService.getUserById(uid);
+			if (find == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛琚皝绂佹垨涓嶅瓨鍦�"));
+				return;
+			}
+
+			for (Integer type : list) {
+				String openid = find.getOpenid();
+				String wxUnionId = find.getWxUnionId();
+				String phone = find.getPhone();
+				if (1 == type) {
+					if (StringUtil.isNullOrEmpty(openid)) {
+						JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("褰撳墠鐢ㄦ埛鏈粦瀹氭窐瀹濓紒"));
+						return;
+					} else {
+						userInfoService.deleteBindInfo(find, type);
+					}
+				} else if (2 == type) {
+					if (StringUtil.isNullOrEmpty(wxUnionId)) {
+						JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("褰撳墠鐢ㄦ埛鏈粦瀹氬井淇★紒"));
+						return;
+					} else {
+						userInfoService.deleteBindInfo(find, type);
+					}
+				} else if (3 == type) {
+					if (StringUtil.isNullOrEmpty(phone)) {
+						JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("褰撳墠鐢ㄦ埛鏈粦瀹氭墜鏈哄彿锛�"));
+						return;
+					} else {
+						userInfoService.deleteBindInfo(find, type);
+					}
+				} else if (4 == type) {
+					// 鏌ヨ鏀粯瀹濈粦瀹�
+					BindingAccount account = bindingAccountService.getBindingAccountByUidAndType(uid,
+							BindingAccount.TYPE_ALIPAY);
+					if (account == null) {
+						JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("褰撳墠鐢ㄦ埛鏈粦瀹氭敮浠樺疂锛�"));
+						return;
+					} else {
+						bindingAccountService.deleteBindingAccount(account);
+					}
+				} else {
+					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璐︽埛绫诲瀷涓嶅尮閰嶏紒"));
+					return;
+				}
+			}
+
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("瑙g粦鎴愬姛"));
+		} catch (Exception e) {
+			e.printStackTrace();
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+		}
+	}
+
+	/**
+	 * 淇敼鐢ㄦ埛澶囨敞
+	 * 
+	 * @param callback
+	 * @param uid
+	 * @param mark
+	 * @param out
+	 */
+	@RequestMapping("addUserMark")
+	public void addUserMark(AdminAcceptData acceptData,String callback, Long uid, String mark, PrintWriter out) {
+		try {
+			if (uid == null || uid <= 0 || StringUtil.isNullOrEmpty(mark))
+				return;
+			UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+			if (userInfoExtra == null)
+				return;
+			UserInfoExtra updateExtra = new UserInfoExtra();
+			updateExtra.setId(userInfoExtra.getId());
+			updateExtra.setMark(mark);
+			userInfoExtraService.saveUserInfoExtra(updateExtra);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 鍒犻櫎鐢ㄦ埛-鏀瑰彉鍏剁姸鎬�
+	 * 
+	 * @param callback
+	 * @param idArray
+	 * @param out
+	 */
+	@RequestMapping(value = "deleteUser")
+	public void delete(AdminAcceptData acceptData,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("褰撳墠璐︽埛澶辨晥,璇烽噸鏂扮櫥闄嗐��")));
+				return;
+			}
+
+			if (StringUtil.isNullOrEmpty(idArray)) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鎿嶄綔鐨勬暟鎹�"));
+				return;
+			}
+
+			Gson gson = new Gson();
+			List<Long> list = gson.fromJson(idArray, new TypeToken<ArrayList<Long>>() {
+			}.getType());
+			if (list == null || list.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈娴嬪埌鍒犻櫎鐨勬暟鎹�"));
+				return;
+			}
+
+			for (Long id : list) {
+				UserInfo user = new UserInfo(id);
+				user.setState(UserInfo.STATE_DELETE);
+				user.setStateDesc(admin.getId() + " " + admin.getName() + "鍚庡彴鎵嬪姩鍒犻櫎");
+				userInfoService.updateByPrimaryKeySelective(user);
+			}
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎴愬姛鍒犻櫎"));
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍒犻櫎澶辫触"));
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 灏佺鐢ㄦ埛ID
+	 * 
+	 * @param callback
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "forbiddenUser")
+	public void forbiddenUser(AdminAcceptData acceptData,String callback, Long uid, HttpServletRequest request, PrintWriter out) {
+		try {
+			if (uid == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
+				return;
+			}
+
+			UserInfo currentInfo = userInfoService.selectByPKey(uid);
+			if (currentInfo == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ョ敤鎴峰凡涓嶅瓨鍦�"));
+				return;
+			}
+
+			AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
+			if (admin == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐧诲綍澶辨晥,璇风櫥褰�"));
+				return;
+			}
+
+			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("鎿嶄綔澶辫触"));
+		}
+	}
+
+	/**
+	 * 瑙i櫎灏佺鐢ㄦ埛ID
+	 * 
+	 * @param callback
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "relieveForbiddenUser")
+	public void relieveForbiddenUser(AdminAcceptData acceptData,String callback, Long uid, PrintWriter out) {
+		try {
+			if (uid == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
+				return;
+			}
+
+			UserInfo currentInfo = userInfoService.selectByPKey(uid);
+			if (currentInfo == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ョ敤鎴峰凡涓嶅瓨鍦�"));
+				return;
+			}
+
+			currentInfo.setState(UserInfo.STATE_NORMAL);
+			currentInfo.setStateDesc("绠$悊鍛樺凡瑙e皝");
+			userInfoService.updateByPrimaryKeySelective(currentInfo);
+
+			// 瑙e皝寰俊
+			ForbiddenUserIdentifyCode forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService
+					.listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, currentInfo.getWxUnionId());
+			if (forbiddenUserIdentifyCode != null)
+				forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode);
+
+			// 瑙e皝鎵嬫満
+			forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService
+					.listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, currentInfo.getPhone());
+			if (forbiddenUserIdentifyCode != null)
+				forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode);
+
+			// 瑙e皝娣樺疂
+			UserExtraTaoBaoInfo taoBao = userExtraTaoBaoInfoService.getByUid(uid);
+			if (taoBao != null && !StringUtil.isNullOrEmpty(taoBao.getTaoBaoUid())) {
+				forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService
+						.listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, taoBao.getTaoBaoUid());
+				if (forbiddenUserIdentifyCode != null)
+					forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode);
+			}
+
+			// 瑙e皝鏀粯瀹�
+			List<BindingAccount> list = bindingAccountService.getBindingAccountByUid(uid);
+			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("鐢ㄦ埛瑙e皝鎴愬姛"));
+		} catch (Exception e) {
+			e.printStackTrace();
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触"));
+		}
+	}
+
+	/**
+	 * 鐢ㄦ埛璐﹀彿- 灏佺/瑙e皝
+	 * 
+	 * @param callback
+	 * @param code
+	 * @param type     1("寰俊unionId"), 2("娣樺疂ID"), 3("鎵嬫満鍙�"), 4("鏀粯瀹濊处鍙�");
+	 * @param out
+	 */
+	@RequestMapping(value = "saveForbiddenInfo")
+	public void saveForbiddenInfo(AdminAcceptData acceptData,String callback, String code, Integer type, PrintWriter out) {
+		try {
+			if (code == null || code.trim().length() == 0 || type == null || "NULL".equalsIgnoreCase(code)) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+				return;
+			}
+
+			forbiddenUserIdentifyCodeService.saveForbiddenInfo(code, type);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("淇敼鎴愬姛"));
+		} catch (ForbiddenUserIdentifyCodeException e) {
+			e.printStackTrace();
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
+		} catch (Exception e) {
+			e.printStackTrace();
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+		}
+	}
+
+	/**
+	 * 闃熷憳鍏崇郴
+	 * 
+	 * @param pageIndex
+	 * @param state
+	 * @param startTime
+	 * @param endTime
+	 * @param out
+	 */
+	@RequestMapping(value = "getRelationList")
+	public void getRelationList(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, Long uid, Integer type,
+			Integer state, String startTime, String endTime, Integer validState, PrintWriter out) {
+
+		if (pageIndex == null || pageIndex < 1) {
+			pageIndex = 1;
+		}
+
+		if (pageSize == null || pageSize < 1) {
+			pageSize = Constant.PAGE_SIZE;
+		}
+
+		try {
+
+			if (!StringUtil.isNullOrEmpty(endTime)) {
+				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+				Date enddate = sdf.parse(endTime);
+				Calendar c = Calendar.getInstance();
+				c.setTime(enddate);
+				c.add(Calendar.DAY_OF_MONTH, 1);// 浠婂ぉ+1澶�
+				endTime = sdf.format(c.getTime());
+			}
+
+			List<ThreeSale> listQuery = null;
+			if (type == 0) {
+				// 涓婄骇鐢ㄦ埛
+				if (uid == null) {
+					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ涓婄骇闇�杈撳叆鐢ㄦ埛id"));
+					return;
+				}
+				listQuery = threeSaleService.listSuperiorQuery((pageIndex - 1) * pageSize, pageSize, state, uid);
+			} else if (type == 1) {
+				// 涓�绾х敤鎴�
+				listQuery = threeSaleService.listFirstTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, state,
+						startTime, endTime, validState);
+			} else if (type == 2) {
+				// 浜岀骇鐢ㄦ埛
+				listQuery = threeSaleService.listSecondTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, state,
+						startTime, endTime, validState);
+			}
+
+			if (listQuery == null || listQuery.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
+				return;
+			}
+
+			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); // 閭�璇锋垚鍔�
+				} else {
+					if (expire != null && expire == 1) {
+						threeSale.setExpire(2); // 閭�璇峰け鏁�
+					} else {
+						threeSale.setExpire(0);// 宸查個璇�
+					}
+				}
+			}
+
+			long count = 0;
+			if (type == 0) {
+				// 涓婄骇鐢ㄦ埛
+				count = threeSaleService.countSuperiorQuery(state, uid);
+			} else if (type == 1) {
+				// 涓�绾х敤鎴�
+				count = threeSaleService.countFirstTeamQuery(uid, state, startTime, endTime, validState);
+			} else if (type == 2) {
+				// 浜岀骇鐢ㄦ埛
+				count = threeSaleService.countSecondTeamQuery(uid, state, startTime, endTime, validState);
+			}
+
+			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", listQuery);
+
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触"));
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 鐢ㄦ埛璐︽埛鏄庣粏
+	 * 
+	 * @param callback
+	 * @param pageIndex
+	 * @param pageSize
+	 * @param out
+	 */
+	@RequestMapping(value = "getAccountDetails")
+	public void getAccountDetails(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, Long uid, PrintWriter out) {
+		if (pageIndex == null || pageIndex < 1) {
+			pageIndex = 1;
+		}
+
+		if (pageSize == null || pageSize < 1) {
+			pageSize = Constant.PAGE_SIZE;
+		}
+
+		if (uid == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
+			return;
+		}
+
+		try {
+			List<UserMoneyDetail> userMoneyDetailsList = userMoneyDetailService.listByUidWithState(uid, pageIndex,
+					pageSize);
+			if (userMoneyDetailsList == null || userMoneyDetailsList.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
+				return;
+			}
+
+			long count = userMoneyDetailService.countByUidWithState(uid);
+
+			int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
+			PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
+
+			Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
+			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("鏌ヨ澶辫触"));
+		}
+	}
+
+	/**
+	 * 鏍规嵁娓犻亾 缁熻褰撴棩鏂板鐢ㄦ埛鏁伴噺
+	 * 
+	 * @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(AdminAcceptData acceptData,String callback, String channelArray, Integer dateType, String year, String startTime,
+			String endTime, PrintWriter out) {
+		try {
+			String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
+			if (validateMsg != null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
+				return;
+			}
+
+			if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
+				startTime = null;
+				endTime = null;
+			}
+
+			Date beginDate = null;
+			Date endDate = null;
+
+			if (dateType == 1) {
+				beginDate = TimeUtil.parse(startTime);
+				endDate = TimeUtil.parse(endTime);
+			} else if (dateType == 2) {
+				Calendar calendar = Calendar.getInstance();
+				int currentYear = calendar.get(Calendar.YEAR);
+				if (!StringUtil.isNullOrEmpty(year)) {
+					currentYear = Integer.parseInt(year);
+				}
+				calendar.clear();
+				calendar.set(Calendar.YEAR, currentYear);
+				beginDate = calendar.getTime();
+
+				calendar.clear();
+				calendar.set(Calendar.YEAR, currentYear);
+				calendar.roll(Calendar.DAY_OF_YEAR, -1);
+				endDate = calendar.getTime();
+			} else if (dateType == 3) {
+				beginDate = TimeUtil.parse("2018-01-01");
+				endDate = new Date();
+			}
+			Gson gson = new Gson();
+			List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
+
+			// 娓犻亾
+			List<String> channelList = null;
+			if (channelArray != null && channelArray.trim().length() > 0) {
+				channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {
+				}.getType());
+			}
+
+			JSONArray line_list = new JSONArray();
+
+			if (channelList != null && channelList.size() > 0) {
+				for (String channel : channelList) {
+					List<Object> list = getNewUserData(dateList, dateType, beginDate, endDate, channel);
+					JSONObject innerList = new JSONObject();
+					innerList.put("name", channel);
+					innerList.put("data", gson.toJson(list));
+					line_list.add(innerList);
+				}
+			} else {
+				List<Object> list = getNewUserData(dateList, dateType, beginDate, endDate, null);
+				JSONObject innerList = new JSONObject();
+				innerList.put("name", "鍏ㄩ儴");
+				innerList.put("data", gson.toJson(list));
+				line_list.add(innerList);
+			}
+
+			JSONObject data = new JSONObject();
+			data.put("line_list", line_list);
+			data.put("xAxis_list", gson.toJson(dateList));
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("绯荤粺寮傚父"));
+			e.printStackTrace();
+		}
+	}
+
+	private List<Object> getNewUserData(List<String> dateList, Integer dateType, Date beginDate, Date endDate,
+			String channel) {
+		List<Object> list = new ArrayList<>();
+		List<CountUserInfo> listHistory = userInfoCountService.getNewUserData(beginDate, endDate, channel);
+		for (String date : dateList) {
+			int value = 0;
+			if (listHistory != null) {
+				for (CountUserInfo history : listHistory) {
+					if (dateType == 1) {
+						String gernalTime = TimeUtil.getGernalTime(history.getDay().getTime());
+						if (gernalTime.equalsIgnoreCase(date)) {
+							value += history.getNum();
+							continue;
+						}
+					} else if (dateType == 2) {
+						String gernalTime = TimeUtil.getMonthOnlyMM(history.getDay());
+						if (gernalTime.startsWith("0")) {
+							gernalTime = gernalTime.substring(1, 2);
+						}
+
+						if (gernalTime.equalsIgnoreCase(date)) {
+							value += history.getNum();
+							continue;
+						}
+					} else if (dateType == 3) {
+						String gernalTime = TimeUtil.getYearOnlyYYYY(history.getDay());
+						if (gernalTime.equalsIgnoreCase(date)) {
+							value += history.getNum();
+							continue;
+						}
+					}
+				}
+			}
+			list.add(value + "");
+		}
+
+		return list;
+	}
+
+	/**
+	 * 鏍规嵁娓犻亾 缁熻褰撴棩鏂板鐢ㄦ埛鏁伴噺
+	 * 
+	 * @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(AdminAcceptData acceptData,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) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
+			return;
+		}
+
+		if (dateType == 2 && StringUtil.isNullOrEmpty(year)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇疯緭鍏ュ勾浠�"));
+			return;
+		}
+
+		if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
+			startTime = null;
+			endTime = null;
+		}
+
+		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");
+		}
+
+		if (dateType == 1 && year != null) {
+			year = null; // 璁剧疆涓虹┖
+		} else if (dateType == 2) {
+			if (startTime != null)
+				startTime = null;
+
+			if (endTime != null)
+				endTime = null;
+
+		} else if (dateType == 3) {
+			if (year != null)
+				year = null;
+
+			if (startTime != null)
+				startTime = null;
+
+			if (endTime != null)
+				endTime = null;
+		}
+
+		try {
+
+			Gson gson = new Gson();
+			Object objectDate = null;
+			List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
+
+			JSONArray line_list = new JSONArray();
+			for (String channel : channelList) {
+
+				List<ChartTDO> list = userInfoCountService.getTodayBuyRate(channel, dateType, year, startTime, endTime);
+
+				if ("all".equalsIgnoreCase(channel)) {
+					channel = "鎬昏";
+				}
+
+				JSONObject innerList = new JSONObject();
+				innerList.put("name", channel);
+
+				if (dateType != 3) {
+					innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
+				} else {
+					// 骞磋鍥�
+					Map<String, Object> map = AdminUtils.yearsDataFactory(list);
+
+					if (objectDate == null) {
+						objectDate = map.get("date");
+					}
+					innerList.put("data", gson.toJson(map.get("value")));
+				}
+
+				line_list.add(innerList);
+			}
+
+			JSONObject data = new JSONObject();
+			if (objectDate != null) {
+				data.put("xAxis_list", gson.toJson(objectDate));
+			} else {
+				data.put("xAxis_list", gson.toJson(dateList));
+			}
+
+			data.put("line_list", line_list);
+
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+			e.printStackTrace();
+		}
+
+	}
+
+	/**
+	 * 褰撳懆浜х敓3鍗曠殑鏂板鐢ㄦ埛姒傜巼
+	 * 
+	 * @param callback
+	 * @param channelArray 娓犻亾鍚嶇О
+	 * @param startTime
+	 * @param endTime
+	 * @param orderNum     璁㈠崟鏁伴噺
+	 * @param out
+	 */
+	@RequestMapping(value = "getWeekBuyRate")
+	public void getWeekBuyRate(AdminAcceptData acceptData,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;
+		}
+
+		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");
+		}
+
+		if (orderNum < 1) {
+			orderNum = 1;
+		}
+
+		try {
+
+			Gson gson = new Gson();
+			List<String> dateList = AdminUtils.getDateList(1, startTime, endTime, null);
+
+			JSONArray line_list = new JSONArray();
+			for (String channel : channelList) {
+
+				List<Object> list = userInfoCountService.getWeekBuyRate(channel, startTime, endTime, orderNum,
+						dateList);
+
+				if ("all".equalsIgnoreCase(channel)) {
+					channel = "鎬昏";
+				}
+
+				JSONObject innerList = new JSONObject();
+				innerList.put("name", channel);
+				innerList.put("data", gson.toJson(list));
+				line_list.add(innerList);
+			}
+
+			JSONObject data = new JSONObject();
+			data.put("xAxis_list", gson.toJson(dateList));
+			data.put("line_list", line_list);
+
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 鑾峰彇閲戝竵鎺掕姒�
+	 * 
+	 * @param callback
+	 * @param pageIndex
+	 * @param pageSize
+	 * @param type
+	 * @param out
+	 */
+	@RequestMapping(value = "getGoldTop")
+	public void getGoldTop(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, Integer type, String key,
+			PrintWriter out) {
+		if (type == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("type涓嶈兘涓虹┖"));
+			return;
+		}
+
+		if (pageIndex == null)
+			pageIndex = 1;
+
+		if (pageSize == null)
+			pageSize = 50;
+
+		long count = 0;
+		List<UserGoldCoinVO> list = null;
+		if (type == 0) {
+			count = userInfoCountService.countByHasGoldCoin(key);
+			list = userInfoCountService.listByHasGoldCoin((pageIndex - 1) * pageSize, pageSize, key);
+		} else if (type == 1 || type == 2) {
+			count = userInfoCountService.countByUserGoldCoin(type, key);
+			list = userInfoCountService.listByUserGoldCoin((pageIndex - 1) * pageSize, pageSize, type, key);
+		}
+
+		if (list == null)
+			list = new ArrayList<>();
+
+		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("list", list);
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 鑾峰彇閲戝竵鎺掕姒�
+	 * 
+	 * @param callback
+	 * @param pageIndex
+	 * @param pageSize
+	 * @param out
+	 */
+	@RequestMapping(value = "getGoldCoinRecord")
+	public void getGoldCoinRecord(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, String key, PrintWriter out) {
+		if (pageIndex == null)
+			pageIndex = 1;
+
+		if (pageSize == null)
+			pageSize = 20;
+
+		List<IntegralDetail> list = integralDetailService.listQuery((pageIndex - 1) * pageSize, pageSize, key);
+		if (list == null || list.size() == 0) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鐩稿叧淇℃伅"));
+			return;
+		}
+
+		for (IntegralDetail integralDetail : list) {
+			Long uid = integralDetail.getUid();
+			UserInfo userInfo = userInfoService.getUserById(uid);
+			if (userInfo != null) {
+				integralDetail.setNickName(userInfo.getNickName());
+				integralDetail.setPortrait(userInfo.getPortrait());
+			}
+		}
+
+		long count = integralDetailService.countQuery(key);
+		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.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
+
+		JSONObject data = new JSONObject();
+		data.put("pe", pe);
+		data.put("list", gson.toJson(list));
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 
+	 * @param callback
+	 * @param pageIndex
+	 * @param pageSize
+	 * @param key       鎼滅储锛氭殏鍙彁渚泆id
+	 * @param state     鐘舵�侊細
+	 * @param out
+	 */
+	@RequestMapping(value = "queryVip")
+	public void queryVip(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, String key, Integer state,
+			PrintWriter out) {
+		try {
+			List<UserVIPInfo> list = userVIPInfoService.listQuery(pageIndex, pageSize, key, state);
+			if (list == null || list.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
+				return;
+			}
+
+			long count = userVIPInfoService.countQuery(key, state);
+			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.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
+
+			JSONObject data = new JSONObject();
+			data.put("pe", pe);
+			data.put("result_list", gson.toJson(list));
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 瓒呯骇浼氬憳鍗囩骇閫氳繃
+	 * 
+	 * @param callback
+	 * @param id
+	 * @param out
+	 * @param request
+	 */
+	@RequestSerializableByKey(key = "'passVIP-' +#id")
+	@RequestMapping(value = "passVIP")
+	public void passVIP(AdminAcceptData acceptData,String callback, Long id, PrintWriter out, HttpServletRequest request) {
+		try {
+			/* 妫�楠屾槸鍚︾櫥闄� */
+			AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
+			if (admin == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("褰撳墠璐︽埛澶辨晥,璇烽噸鏂扮櫥闄嗐��"));
+				return;
+			}
+			userVIPInfoService.passVIPApply(id);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛"));
+			LogHelper.userInfo(
+					"[ip:" + IPUtil.getRemotIP(request) + "]" + admin.getName() + "閫氳繃浜哰id=" + id + "]鐨勫崌绾ц秴绾т細鍛樼敵璇�!");
+		} catch (UserVIPInfoException e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触"));
+			return;
+		}
+	}
+
+	/**
+	 * 瓒呯骇浼氬憳鍗囩骇鎷掔粷
+	 * 
+	 * @param callback
+	 * @param id
+	 * @param reason
+	 * @param out
+	 * @param request
+	 */
+
+	@RequestMapping(value = "rejectVIP")
+	public void rejectVIP(AdminAcceptData acceptData,String callback, Long id, String reason, PrintWriter out, HttpServletRequest request) {
+		try {
+			/* 妫�楠屾槸鍚︾櫥闄� */
+			AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
+			if (admin == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("褰撳墠璐︽埛澶辨晥,璇烽噸鏂扮櫥闄�"));
+				return;
+			}
+			userVIPInfoService.rejectVIPApply(id, reason);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎷掔粷鎴愬姛"));
+			LogHelper.userInfo("[ip:" + IPUtil.getRemotIP(request) + "][绠$悊鍛�:" + admin.getName() + "] 鎷掔粷鎻愮幇id=" + id
+					+ "鐨勫崌绾ц秴绾т細鍛樼敵璇蜂笉瀛樺湪!");
+		} catch (UserVIPInfoException e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触"));
+			return;
+		}
+	}
+
+	/**
+	 * 鐢ㄦ埛璐︽埛鏄庣粏
+	 * 
+	 * @param callback
+	 * @param pageIndex
+	 * @param pageSize
+	 * @param id
+	 * @param out
+	 */
+	@RequestMapping(value = "getMoneyDetails")
+	public void getMoneyDetails(AdminAcceptData acceptData,String callback, Integer pageIndex, String key, Integer keyType, PrintWriter out) {
+		if (pageIndex == null) {
+			pageIndex = 1;
+		}
+		int pageSize = Constant.PAGE_SIZE;
+		try {
+			List<UserMoneyDetail> list = userMoneyDetailService.listQuery(pageIndex, pageSize, key, keyType);
+			if (list == null || list.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
+				return;
+			}
+
+			for (UserMoneyDetail detail : list) {
+				UserInfo userInfo = detail.getUserInfo();
+				if (userInfo == null) {
+					detail.setUserInfo(new UserInfo());
+					continue;
+				}
+
+				UserInfo user = userInfoService.selectByPKey(userInfo.getId());
+				if (user != null) {
+					detail.setUserInfo(user);
+				}
+			}
+
+			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>() {
+						@Override
+						public JsonElement serialize(UserMoneyDetailTypeEnum value, Type theType,
+								JsonSerializationContext context) {
+							if (value == null) {
+								return new JsonPrimitive("");
+							} else {
+								return new JsonPrimitive(value.getDesc());
+							}
+						}
+					});
+			Gson gson = gsonBuilder.create();
+
+			JSONObject data = new JSONObject();
+			data.put("pe", pe);
+			data.put("result_list", gson.toJson(list));
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			e.printStackTrace();
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触"));
+		}
+	}
+
+}

--
Gitblit v1.8.0