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 | 3104 ++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 1,675 insertions(+), 1,429 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 5a5094a..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,1429 +1,1675 @@
-package com.yeshi.fanli.controller.admin;
-
-import java.io.PrintWriter;
-import java.net.URLDecoder;
-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 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.reflect.TypeToken;
-import com.yeshi.fanli.controller.admin.utils.AdminUtils;
-import com.yeshi.fanli.dto.ChartTDO;
-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.UserActiveNumHistory;
-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.UserRank;
-import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
-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.exception.user.vip.UserVIPInfoException;
-import com.yeshi.fanli.log.LogHelper;
-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.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.invite.ThreeSaleSerivce;
-import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
-import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
-import com.yeshi.fanli.tag.PageEntity;
-import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.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;
-	
-
-	/**
-	 * 鏌ヨ鐢ㄦ埛淇℃伅鍒楄〃 姝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(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 {
-			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);
-
-			if (userList == null || userList.size() == 0) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鐩稿叧鏁版嵁"));
-				return;
-			}
-
-			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);
-
-			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 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 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("鎿嶄綔寮傚父"));
-		}
-	}
-	
-	
-
-	/**
-	 * 淇敼鐢ㄦ埛澶囨敞
-	 * @param callback
-	 * @param uid
-	 * @param mark
-	 * @param out
-	 */
-	@RequestMapping("addUserMark")
-	public void addUserMark(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(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(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(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(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("鍒犻櫎鎴愬姛"));
-			} else {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍒犻櫎澶辫触"));
-			}
-
-		} catch (Exception e) {
-			e.printStackTrace();
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
-		}
-	}
-
-	@RequestMapping(value = "queryMyFirstTeams")
-	public void queryMyFirstTeams(String callback, Integer pageIndex, Integer pageSize, String key, Long bossId,
-			PrintWriter out) {
-		try {
-
-			if (bossId == null) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
-				return;
-			}
-
-			if (pageIndex == null)
-				pageIndex = 1;
-
-			if (pageSize == null)
-				pageSize = Constant.PAGE_SIZE;
-
-			List<ThreeSale> firstTeamList = threeSaleService.queryMyFirstTeamList((pageIndex - 1) * pageSize, pageSize,
-					key, bossId);
-			if (firstTeamList == null || firstTeamList.size() == 0) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤涓�搴﹂槦鍛�"));
-				return;
-			}
-
-			/* 鑾峰彇閭�璇风敤鎴峰ご鍍� 銆佹樀绉� */
-			for (ThreeSale threeSale : firstTeamList) {
-				UserInfo worker = threeSale.getWorker();
-				if (worker == null) {
-					worker = new UserInfo();
-					threeSale.setWorker(worker);
-				} else {
-					Long id = worker.getId();
-
-					UserInfo currentInfo = userInfoService.selectByPKey(id);
-					if (currentInfo != null) {
-						worker.setNickName(currentInfo.getNickName());
-						worker.setPortrait(currentInfo.getPortrait());
-					}
-				}
-			}
-
-			long count = threeSaleService.queryCountMyFirstTeamList(key, bossId);
-
-			int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
-			PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
-
-			GsonBuilder gsonBuilder = new GsonBuilder();
-			gsonBuilder.serializeNulls();
-			Gson gson = gsonBuilder.create();
-
-			JSONObject data = new JSONObject();
-			data.put("pe", pe);
-			data.put("list", gson.toJson(firstTeamList));
-
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-		} catch (Exception e) {
-			e.printStackTrace();
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
-		}
-	}
-
-	@RequestMapping(value = "queryMySecondTeams")
-	public void queryMySecondTeams(String callback, Integer pageIndex, Integer pageSize, String key, Long bossId,
-			PrintWriter out) {
-		try {
-
-			if (bossId == null) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�"));
-				return;
-			}
-
-			if (pageIndex == null)
-				pageIndex = 1;
-
-			if (pageSize == null)
-				pageSize = Constant.PAGE_SIZE;
-
-			List<ThreeSale> firstTeamList = threeSaleService.queryMySecondTeamList((pageIndex - 1) * pageSize, pageSize,
-					key, bossId);
-			if (firstTeamList == null || firstTeamList.size() == 0) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤浜屽害闃熷憳"));
-				return;
-			}
-
-			/* 鑾峰彇閭�璇风敤鎴峰ご鍍� 銆佹樀绉� */
-			for (ThreeSale threeSale : firstTeamList) {
-				UserInfo worker = threeSale.getWorker();
-				if (worker == null) {
-					worker = new UserInfo();
-					threeSale.setWorker(worker);
-				} else {
-					Long id = worker.getId();
-
-					UserInfo currentInfo = userInfoService.selectByPKey(id);
-					if (currentInfo != null) {
-						worker.setNickName(currentInfo.getNickName());
-						worker.setPortrait(currentInfo.getPortrait());
-					}
-				}
-			}
-
-			long count = threeSaleService.queryCountMySecondTeamList(key, bossId);
-
-			int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
-			PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
-
-			GsonBuilder gsonBuilder = new GsonBuilder();
-			gsonBuilder.serializeNulls();
-			Gson gson = gsonBuilder.create();
-
-			JSONObject data = new JSONObject();
-			data.put("pe", pe);
-			data.put("list", gson.toJson(firstTeamList));
-
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-		} catch (Exception e) {
-			e.printStackTrace();
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
-		}
-	}
-
-	/**
-	 * 闃熷憳鍏崇郴
-	 * 
-	 * @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;
-			}
-
-			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(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<ChartTDO> 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<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(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(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));
-	}
-	
-	
-	/**
-	 * 璁″綋澶╂椿璺冪敤鎴蜂腑鏈夊灏戜釜鐢ㄦ埛鏄�90澶╁墠鎵嶆椿璺冭繃锛屾湡闂翠粠鏈椿璺冪殑鐢ㄦ埛鏁伴噺
-	 * @param callback
-	 * @param dateType
-	 * @param year
-	 * @param startTime
-	 * @param endTime
-	 * @param out
-	 */
-	@RequestMapping(value = "getUserActiveCharts")
-	public void getUserActiveCharts(String callback, 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);
-			 
-			   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<Object> list = new ArrayList<>();
-			List<UserActiveNumHistory> listHistory = userActiveLogService.query(beginDate, endDate);
-			for (String date: dateList) {
-				ChartTDO chartTDO = new ChartTDO();
-				chartTDO.setShowDate(date);
-				int value = 0;
-				
-				if (listHistory != null) {
-					for (UserActiveNumHistory 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.equalsIgnoreCase(date)) {
-								value += history.getNum();
-								continue;
-							}
-						} else if (dateType == 3) {
-							String gernalTime = TimeUtil.getYearOnlyYYYY(history.getDay());
-							if (gernalTime.equalsIgnoreCase(date)) {
-								value += history.getNum();
-								continue;
-							}
-						}
-					}
-				}
-				
-				chartTDO.setShowValue(value + "");
-				list.add(value + "");
-			}
-			
-			JSONObject innerList = new JSONObject();
-			innerList.put("name", "鏁伴噺");
-			innerList.put("data", gson.toJson(list));
-
-			JSONArray line_list = new JSONArray();
-			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 鎼滅储锛氭殏鍙彁渚泆id
-	 * @param state 鐘舵�侊細
-	 * @param out
-	 */
-	@RequestMapping(value = "queryVip")
-	public void queryVip(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(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(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;
-		}
-	}
-
-}
+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