From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 30 七月 2019 09:07:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java | 1742 ++++++++++++++++++++++-----------------------------------
 1 files changed, 680 insertions(+), 1,062 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 1bdd638..a1731be 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,69 +1,55 @@
 package com.yeshi.fanli.controller.admin;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
 import java.io.PrintWriter;
-import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
 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 javax.servlet.http.HttpServletRequest;
 
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-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.entity.admin.UserInfoAdmin;
-import com.yeshi.fanli.entity.bus.user.AccountDetails;
-import com.yeshi.fanli.entity.bus.user.Extract;
-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.controller.admin.utils.AdminUtils;
+import com.yeshi.fanli.dto.money.AccountDetails;
+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.UserExtraTaoBaoInfo;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
-import com.yeshi.fanli.entity.taobao.PidOrder;
-import com.yeshi.fanli.entity.taobao.ScanHistory;
-import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.entity.bus.user.UserRank;
+import com.yeshi.fanli.entity.common.AdminUser;
+import com.yeshi.fanli.entity.money.UserMoneyDetail;
+import com.yeshi.fanli.exception.user.ForbiddenUserIdentifyCodeException;
 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.AccountDetailsService;
 import com.yeshi.fanli.service.inter.user.BindingAccountService;
-import com.yeshi.fanli.service.inter.user.ExtractService;
-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.ForbiddenUserIdentifyCodeService;
+import com.yeshi.fanli.service.inter.user.UserAccountService;
+import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
+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.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.UserInfoVO;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
 
 @Controller
 @RequestMapping("admin/new/api/v1/user")
@@ -72,561 +58,62 @@
 	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 AccountDetailsService accountDetailsService;
-	
-	@Resource
 	private BindingAccountService bindingAccountService;
-	
+
 	@Resource
 	private UserInfoCountService userInfoCountService;
-	
+
 	@Resource
-	private UserActiveLogService userActiveLogService;
-	
+	private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
 
-	@RequestMapping(value = "getUserList", method = RequestMethod.POST)
-	public void getUserList(int pageIndex, String key, PrintWriter out) {
+	@Resource
+	private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
 
-		List<UserInfo> userList = userInfoService.getUserList(pageIndex - 1, key);
-		int count = userInfoService.getUserCount(key);
+	@Resource
+	private UserInfoExtraService userInfoExtraService;
 
-		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));
-	}
+	@Resource
+	private UserRankService userRankService;
+
+	@Resource
+	private UserMoneyDetailService userMoneyDetailService;
+
+	@Resource
+	private UserInfoDeleteRecordService userInfoDeleteRecordService;
+
+	@Resource
+	private UserAccountService userAccountService;
 
 	/**
+	 * 鏌ヨ鐢ㄦ埛淇℃伅鍒楄〃 姝e父鐢ㄦ埛/寮傚父鐢ㄦ埛
 	 * 
-	 * 鏂规硶璇存槑: 涓夌骇鍒嗛攢
-	 * 
-	 * @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 key
+	 *            鏌ヨ鏉′欢
+	 * @param userType
+	 *            鐢ㄦ埛绫诲瀷锛氶噾鍐犮�侀摱鍐犮�侀摐鍐�
+	 * @param days
+	 *            鏌ヨ澶╂暟
+	 * @param startTime
+	 *            娉ㄥ唽鏃堕棿
+	 * @param endTime
+	 *            娉ㄥ唽鏃堕棿
+	 * @param orderMode
+	 *            鎺掑簭鏂瑰紡 璁㈠崟鏁伴噺 浠婃棩璁㈠崟 绱闃熷憳
 	 * @param out
 	 */
 	@RequestMapping(value = "query")
-	public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer userType, 
-			Integer days, String startTime,	String endTime, Integer orderMode, PrintWriter out) {
+	public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer keyType, Integer rank,
+			Integer days, String startTime, String endTime, Integer orderMode, Integer type, 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 (type == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛绫诲瀷type涓嶈兘涓虹┖"));
+				return;
 			}
 
 			if (pageIndex == null)
@@ -634,31 +121,50 @@
 
 			if (pageSize == null)
 				pageSize = Constant.PAGE_SIZE;
-			
+
 			Integer orderField = null;
 			if (orderMode != null) {
-				if (orderMode == 1 || orderMode == 2){
+				if (orderMode == 1 || orderMode == 2) {
 					orderField = orderMode;
 					orderMode = 1;
-				} else if (orderMode == 3 || orderMode == 4){
+				} else if (orderMode == 3 || orderMode == 4) {
 					orderField = orderMode;
 					orderMode = 2;
-				} else if (orderMode == 5 || orderMode == 6){
+				} 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);
+			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);
 
 			if (userList == null || userList.size() == 0) {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鐩稿叧鏁版嵁"));
 				return;
 			}
-			
-			long count = userInfoService.queryCount(key, userType, days, startTime, endTime);
+
+			long count = userInfoService.queryCount(type, key, keyType, userRank, days, startTime, endTime);
 
 			int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
 			PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
@@ -669,9 +175,8 @@
 
 			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) {
@@ -679,130 +184,329 @@
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
 		}
 	}
-	
+
 	/**
 	 * 缁熻浠婃棩鐢ㄦ埛鎬绘儏鍐�
+	 * 
 	 * @param callback
 	 * @param out
 	 */
 	@RequestMapping(value = "countInfo")
 	public void countInfo(String callback, PrintWriter out) {
 		try {
-			// 鎬荤敤鎴�
-			long countTotal = userInfoCountService.countNewUser(null, null);
-			// 浠婃棩鏂板
-			long countToday = userInfoCountService.countNewUser(1, null);
-			// 鏈湀鏂板
-			long countMonth = userInfoCountService.countNewUser(null, 1);
-			
+
+			// 绱鐢ㄦ埛鏁伴噺
+			long totalUser = userInfoCountService.countNewUser(null, null);
+			// 娴佸け鐢ㄦ埛鏁伴噺锛�180澶╂湭浣跨敤鐧诲綍骞朵笖鏃犱换浣曡祫閲戞祦鍔ㄧ殑璐﹀彿鏁伴噺锛�
+			long loseUser = userInfoCountService.countLoseUser(180);
+			// 绱鏈夎喘涔扮敤鎴锋暟
+			long orderUser = userInfoCountService.countHasOrderUser();
+
 			// 鎬绘暟-鏅�氱敤鎴�
-			long countNormal = userInfoCountService.countRank(0);
+			long countNormal = 0;
 			// 鎬绘暟-閾滅敤鎴�
-			long countCuprum = userInfoCountService.countRank(1);
+			long countCuprum = 0;
 			// 鎬绘暟-閾剁敤鎴�
-			long countSilver = userInfoCountService.countRank(2);
+			long countSilver = 0;
 			// 鎬绘暟-閲戠敤鎴�
-			long countGold = userInfoCountService.countRank(3);
-			
-			// 缁熻鎵�鏈夋�婚噾棰�
-			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);
-			
+			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("countTotal", countTotal);
-			data.put("countToday", countToday);
-			data.put("countMonth", countMonth);
+			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);
-			data.put("countTotalMoney", countTotalMoney);
-			data.put("countCanAssets", countCanAssets);
-			
+
+			/*
+			 * // 缁熻鎵�鏈夋�婚噾棰� BigDecimal countTotalMoney =
+			 * userInfoCountService.countAllMoney(null);
+			 * 
+			 * // 缁熻鎵�鏈夊彲鎻愮幇閲戦 String minMoney =
+			 * configService.get(Constant.EXTRACT_MIN_MONEY); if (minMoney ==
+			 * null) { minMoney = "20"; } double min =
+			 * Double.parseDouble(minMoney); BigDecimal countCanAssets =
+			 * userInfoCountService.countAllMoney(min);
+			 * data.put("countTotalMoney", countTotalMoney);
+			 * data.put("countCanAssets", countCanAssets);
+			 */
+
+			// 浠婃棩鏂板鐢ㄦ埛鏁伴噺
+			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 data
+	 * @param uid
+	 *            鐢ㄦ埛ID
+	 * @param type
+	 *            闇�瑕佽В缁戠殑璐︽埛绫诲瀷
+	 */
+	@RequestMapping("unBindUserInfo")
+	public void unBindUserInfo(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("鎿嶄綔寮傚父"));
+		}
+	}
+
+	/**
+	 * 灏佺鐢ㄦ埛ID
+	 * 
 	 * @param callback
-	 * @param userInfo
+	 * @param uid
 	 * @param out
 	 */
-	@RequestMapping(value = "setInfo")
-	public void setInfo(String callback, UserInfo userInfo, PrintWriter out) {
+	@RequestMapping(value = "forbiddenUser")
+	public void forbiddenUser(String callback, Long uid, HttpServletRequest request, PrintWriter out) {
 		try {
-			
-			Long id = userInfo.getId();
-			
-			if (id == null) {
+
+			if (uid == null) {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
 				return;
 			}
-			
-			UserInfo currentInfo = userInfoService.selectByPKey(id);
+
+			UserInfo currentInfo = userInfoService.selectByPKey(uid);
 			if (currentInfo == null) {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ョ敤鎴峰凡涓嶅瓨鍦�"));
 				return;
 			}
-			
-			boolean hasChange = false;
-			
-			// 绛夌骇淇敼
-			Integer rank = userInfo.getRank();
-			if (rank != null) {
-				hasChange = true;
-				currentInfo.setRank(rank);
+
+			AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
+			if (admin == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐧诲綍澶辨晥,璇风櫥褰�"));
+				return;
 			}
-			
-			// 鐘舵�佷慨鏀�
-			Integer state = userInfo.getState();
-			if (state != null) {
-				hasChange = true;
-				currentInfo.setState(state);
-			}
-			
-			if (hasChange) {
-				userInfoService.updateByPrimaryKeySelective(currentInfo);
-				JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("淇敼鎴愬姛"));
-			} else {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏃犲彲淇敼鍐呭"));
-			}
-			
+
+			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("淇敼澶辫触"));
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触"));
 		}
 	}
-	
+
 	/**
-	 * 鍒犻櫎缁戝畾鐨勮处鎴蜂俊鎭細 鏀粯瀹�  寰俊
+	 * 瑙i櫎灏佺鐢ㄦ埛ID
+	 * 
 	 * @param callback
-	 * @param bindId
+	 * @param uid
 	 * @param out
 	 */
-	@RequestMapping(value = "deleteBindingAccount")
-	public void deleteBindingAccount(String callback, Long bindId, PrintWriter out) {
+	@RequestMapping(value = "relieveForbiddenUser")
+	public void relieveForbiddenUser(String callback, Long uid, PrintWriter out) {
 		try {
 
-			if (bindId == null) {
+			if (uid == null) {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
 				return;
 			}
 
-			int count = bindingAccountService.deleteByPrimaryKey(bindId);
+			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(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 callback
+	 * @param id
+	 * @param out
+	 */
+	@RequestMapping(value = "deleteThreeSale")
+	public void deleteThreeSale(String callback, Long id, PrintWriter out) {
+		try {
+
+			if (id == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
+				return;
+			}
+
+			int count = threeSaleService.deleteByPrimaryKey(id);
 
 			if (count > 0) {
 				JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鍒犻櫎鎴愬姛"));
@@ -815,106 +519,39 @@
 			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) {
+	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);
+
+			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) {
+			for (ThreeSale threeSale : firstTeamList) {
 				UserInfo worker = threeSale.getWorker();
 				if (worker == null) {
 					worker = new UserInfo();
 					threeSale.setWorker(worker);
-				} else{
+				} else {
 					Long id = worker.getId();
-					
+
 					UserInfo currentInfo = userInfoService.selectByPKey(id);
 					if (currentInfo != null) {
 						worker.setNickName(currentInfo.getNickName());
@@ -922,7 +559,7 @@
 					}
 				}
 			}
-			
+
 			long count = threeSaleService.queryCountMyFirstTeamList(key, bossId);
 
 			int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
@@ -935,49 +572,47 @@
 			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) {
+	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);
+
+			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) {
+			for (ThreeSale threeSale : firstTeamList) {
 				UserInfo worker = threeSale.getWorker();
 				if (worker == null) {
 					worker = new UserInfo();
 					threeSale.setWorker(worker);
-				} else{
+				} else {
 					Long id = worker.getId();
-					
+
 					UserInfo currentInfo = userInfoService.selectByPKey(id);
 					if (currentInfo != null) {
 						worker.setNickName(currentInfo.getNickName());
@@ -985,7 +620,7 @@
 					}
 				}
 			}
-			
+
 			long count = threeSaleService.queryCountMySecondTeamList(key, bossId);
 
 			int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
@@ -998,43 +633,18 @@
 			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
@@ -1045,7 +655,7 @@
 	@RequestMapping(value = "getRelationList")
 	public void getRelationList(String callback, Integer pageIndex, Integer pageSize, Long uid, Integer type,
 			Integer state, String startTime, String endTime, PrintWriter out) {
-		
+
 		if (pageIndex == null || pageIndex < 1) {
 			pageIndex = 1;
 		}
@@ -1053,9 +663,9 @@
 		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);
@@ -1064,7 +674,7 @@
 				c.add(Calendar.DAY_OF_MONTH, 1);// 浠婂ぉ+1澶�
 				endTime = sdf.format(c.getTime());
 			}
-			
+
 			List<ThreeSale> listQuery = null;
 			if (type == 0) {
 				// 涓婄骇鐢ㄦ埛
@@ -1075,20 +685,20 @@
 				listQuery = threeSaleService.listSuperiorQuery((pageIndex - 1) * pageSize, pageSize, state, uid);
 			} else if (type == 1) {
 				// 涓�绾х敤鎴�
-				listQuery = threeSaleService.listFirstTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, 
-						state, startTime, endTime);
+				listQuery = threeSaleService.listFirstTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, state,
+						startTime, endTime);
 			} else if (type == 2) {
 				// 浜岀骇鐢ㄦ埛
-				listQuery = threeSaleService.listSecondTeamQuery((pageIndex - 1) * pageSize, pageSize, uid,
-						state, startTime, endTime);
+				listQuery = threeSaleService.listSecondTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, state,
+						startTime, endTime);
 			}
-			
+
 			if (listQuery == null || listQuery.size() == 0) {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
 				return;
 			}
-			
-			for (ThreeSale threeSale: listQuery) {
+
+			for (ThreeSale threeSale : listQuery) {
 				Integer expire = threeSale.getExpire();
 				if (threeSale.getState()) {
 					threeSale.setExpire(1); // 閭�璇锋垚鍔�
@@ -1100,7 +710,7 @@
 					}
 				}
 			}
-			
+
 			long count = 0;
 			if (type == 0) {
 				// 涓婄骇鐢ㄦ埛
@@ -1112,25 +722,25 @@
 				// 浜岀骇鐢ㄦ埛
 				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
@@ -1138,7 +748,7 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "getAccountDetails")
-	public void getAccountDetails(String callback, Integer pageIndex,Integer pageSize, Long uid, PrintWriter out) {
+	public void getAccountDetails(String callback, Integer pageIndex, Integer pageSize, Long uid, PrintWriter out) {
 		if (pageIndex == null || pageIndex < 1) {
 			pageIndex = 1;
 		}
@@ -1146,296 +756,332 @@
 		if (pageSize == null || pageSize < 1) {
 			pageSize = Constant.PAGE_SIZE;
 		}
-		
+
 		if (uid == null) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
 			return;
 		}
-		
+
 		try {
-			
-			List<AccountDetails> detailsList = accountDetailsService.findAccountDetailsList(uid, pageIndex);
-			if (detailsList == null || detailsList.size() == 0) {
+			List<UserMoneyDetail> userMoneyDetailsList = userMoneyDetailService.listByUidWithState(uid, pageIndex,
+					pageSize);
+			if (userMoneyDetailsList == null || userMoneyDetailsList.size() == 0) {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
 				return;
 			}
-			
-			int count = accountDetailsService.getCount(uid);
-			
+
+			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", GsonUtil.toJsonExpose(detailsList));
-			
+			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 = "getSameDayUserByChannel")
-	public void getSameDayUserByChannel(String callback, String channelArray, Integer dateType, 
-		 String year, String startTime, String endTime, PrintWriter out) {
-		
-		validateParams(callback, channelArray, dateType,year,startTime,endTime,out);
-		
-		if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
-			startTime = null;
-			endTime = null;
-		}
-		
-		try {
-
-			Gson gson = new Gson();
-			List<String> list = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
-
-			if (list == null || list.size() == 0) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟鏍煎紡涓嶆纭�"));
-				return;
-			}
-			
-			JSONArray array = new JSONArray();
-
-			for (String channel: list) {
-				JSONObject channelData = new JSONObject();
-				List<Object> resultList = userActiveLogService.countSameDayByChannel(channel, dateType, year, startTime, endTime);
-				if (resultList == null) {
-					resultList = new ArrayList<Object>();
-				}
-				channelData.put("name", channel);
-				channelData.put("data_list", resultList);
-				array.add(channelData);
-			}
-			
-			JSONObject data = new JSONObject();
-			data.put("result_list", array);
-			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 = "getBuyProportion")
-	public void getBuyProportion(String callback, String channelArray, Integer dateType, 
-		 String year, String startTime, String endTime, Integer orderNum, PrintWriter out) {
-		
-		validateParams(callback, channelArray, dateType,year,startTime,endTime,out);
-		
-		if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
-			startTime = null;
-			endTime = null;
-		}
-		
-		try {
-
-			Gson gson = new Gson();
-			List<String> list = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
-
-			if (list == null || list.size() == 0) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟鏍煎紡涓嶆纭�"));
-				return;
-			}
-			
-			JSONArray array = new JSONArray();
-
-			for (String channel: list) {
-				JSONObject channelData = new JSONObject();
-				List<Object> resultList = userActiveLogService.getBuyProportion(channel, dateType, year, startTime, endTime, orderNum);
-				if (resultList == null) {
-					resultList = new ArrayList<Object>();
-				}
-				channelData.put("name", channel);
-				channelData.put("data_list", resultList);
-				array.add(channelData);
-			}
-			
-			JSONObject data = new JSONObject();
-			data.put("result_list", array);
-			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 channelArray
+	 *            鍚嶅瓧鏁扮粍
+	 * @param dateType
+	 *            绫诲瀷 1鏃� 2鏈� 3骞�
+	 * @param year
+	 *            2018
+	 * @param startTime
+	 *            2018-12-01
 	 * @param endTime
-	 * @param orderNum 璁㈠崟鏁伴噺
+	 *            2018-12-01
 	 * @param out
 	 */
-	@RequestMapping(value = "getWeekProportion")
-	public void getWeekProportion(String callback, String channelArray, String startTime, String endTime, 
-			Integer orderNum, PrintWriter out) {
-		
-		if (StringUtil.isNullOrEmpty(startTime) || StringUtil.isNullOrEmpty(endTime)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨姝g‘鏃堕棿鍖洪棿"));
+	@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 {
 
-			if (orderNum == null ) {
-				orderNum = 0;
-			}
-			
+			Gson gson = new Gson();
+			Object objectDate = null;
+			List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
 
-			List<String> channelList = null;
-			if (channelArray != null && channelArray.trim().length() > 0) {
-				Gson gson = new Gson();
-				channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
-			}
-
-			if (channelList == null || channelList.size() == 0) {
-				channelList = new ArrayList<String>();
-				channelList.add("all");
-			}
-			
-			JSONArray array = new JSONArray();
+			JSONArray line_list = new JSONArray();
 			for (String channel : channelList) {
-				JSONObject channelData = new JSONObject();
 
-				
-				List<Map<String, Object>> resultList = userActiveLogService.countOneWeekUserInfo(channel, 
-						startTime, endTime, orderNum);
-
-				if (resultList == null) {
-					resultList = new ArrayList<Map<String, Object>>();
-				}
+				List<Map<String, Object>> list = userInfoCountService.countNewUserByDate(channel, dateType, year,
+						startTime, endTime);
 
 				if ("all".equalsIgnoreCase(channel)) {
 					channel = "鎬昏";
 				}
-				
-				channelData.put("name", channel);
-				channelData.put("data_list", resultList);
-				array.add(channelData);
+
+				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();
-			data.put("result_list", array);
+			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 callback
+	 * 鏍规嵁娓犻亾 缁熻褰撴棩鏂板鐢ㄦ埛鏁伴噺
+	 * 
+	 * @param channelArray
+	 *            鍚嶅瓧鏁扮粍
+	 * @param dateType
+	 *            绫诲瀷 1鏃� 2鏈� 3骞�
+	 * @param year
+	 *            2018
+	 * @param startTime
+	 *            2018-12-01
+	 * @param endTime
+	 *            2018-12-01
 	 * @param out
 	 */
-	@RequestMapping(value = "countUser")
-	public void countUser(String callback, PrintWriter out) {
-		try {
-			// 鎬荤敤鎴�
-			long totalUser = userInfoCountService.countNewUser(null, null);
-			// 娴佸け鐢ㄦ埛鏁伴噺锛�180澶╂湭浣跨敤鐧诲綍骞朵笖鏃犱换浣曡祫閲戞祦鍔ㄧ殑璐﹀彿鏁伴噺锛�
-			long loseUser = userInfoCountService.countLoseUser(180);
-			// 绱鏈夎喘涔扮敤鎴锋暟
-			long orderUser = userInfoCountService.countHasOrderUser();
-			
-			JSONObject data = new JSONObject();
-			data.put("totalUser", totalUser);
-			data.put("loseUser", loseUser);
-			data.put("orderUser", orderUser);
-			
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-		} catch (Exception e) {
-			e.printStackTrace();
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻寮傚父"));
-		}
-		
-	}
-	
-	/**
-	 * 缁熻鍘嗗彶鏂板鐢ㄦ埛
-	 * @param callback
-	 * @param dateType 绫诲瀷  1鏃�  2鏈�  3骞�
-	 * @param year 2018
-	 * @param startTime 2018-12-01 
-	 * @param endTime   2018-12-01 
-	 * @param out
-	 */
-	@RequestMapping(value = "getHistoryNewUser")
-	public void getHistoryNewUser(String callback, Integer dateType, String year, String startTime,
-			String endTime, PrintWriter out) {
-		
-		if (dateType == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鏄剧ず鏂瑰紡"));
+	@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 == 1 && (StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime))) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鏃堕棿鍖洪棿"));
+
+		if (dateType == 2 && StringUtil.isNullOrEmpty(year)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇疯緭鍏ュ勾浠�"));
 			return;
 		}
-		
-		if (!StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夌粨鏉熸棩鏈�"));
-			return;
-		}
-		
-		if (StringUtil.isNullOrEmpty(startTime) && !StringUtil.isNullOrEmpty(endTime)) {
-			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 {
 
-			List<Object> resultList = userInfoCountService.countNewUserByDate(dateType, year, startTime, endTime);
+			Gson gson = new Gson();
+			Object objectDate = null;
+			List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
 
-			if (resultList == null) {
-				resultList = new ArrayList<Object>();
+			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 innerList = new JSONObject();
-			innerList.put("name", "鏁伴噺");
-			innerList.put("data_list", resultList);
-			
-			JSONArray outList = new JSONArray();
-			outList.add(innerList);
-			
+
 			JSONObject data = new JSONObject();
-			data.put("result_list", outList);
-			
+			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) {
@@ -1443,33 +1089,5 @@
 			e.printStackTrace();
 		}
 	}
-	
-	public void validateParams(String callback, String channelArray, Integer dateType, 
-			 String year, String startTime, String endTime, PrintWriter out) {
 
-		if (StringUtil.isNullOrEmpty(channelArray)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨缁熻瀵瑰簲鍚嶇О"));
-			return;
-		}
-		
-		if (dateType == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鎺掑垪鏂瑰紡"));
-			return;
-		}
-		
-		if (dateType == 1 && (StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime))) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鏃堕棿鍖洪棿"));
-			return;
-		}
-		
-		if (!StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夌粨鏉熸棩鏈�"));
-			return;
-		}
-		
-		if (StringUtil.isNullOrEmpty(startTime) && !StringUtil.isNullOrEmpty(endTime)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夎捣濮嬫棩鏈�"));
-			return;
-		}
-	}
 }

--
Gitblit v1.8.0