package com.yeshi.fanli.controller.admin;
|
|
import java.io.File;
|
import java.io.FileInputStream;
|
import java.io.InputStream;
|
import java.io.PrintWriter;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletResponse;
|
|
import net.sf.json.JSONArray;
|
import net.sf.json.JSONObject;
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Row;
|
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.yeshi.utils.JsonUtil;
|
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.yeshi.fanli.controller.admin.utils.AdminUtils;
|
import com.yeshi.fanli.entity.admin.UserInfoAdmin;
|
import com.yeshi.fanli.entity.bus.user.AccountDetails;
|
import com.yeshi.fanli.entity.bus.user.Extract;
|
import com.yeshi.fanli.entity.bus.user.HongBao;
|
import com.yeshi.fanli.entity.bus.user.MoneyRecord;
|
import com.yeshi.fanli.entity.bus.user.Order;
|
import com.yeshi.fanli.entity.bus.user.ThreeSale;
|
import com.yeshi.fanli.entity.bus.user.UserInfo;
|
import com.yeshi.fanli.entity.taobao.PidOrder;
|
import com.yeshi.fanli.entity.taobao.ScanHistory;
|
import com.yeshi.fanli.service.inter.config.ConfigService;
|
import com.yeshi.fanli.service.inter.count.UserInfoCountService;
|
import com.yeshi.fanli.service.inter.goods.ShareService;
|
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
|
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
|
import com.yeshi.fanli.service.inter.order.OrderItemServcie;
|
import com.yeshi.fanli.service.inter.order.OrderService;
|
import com.yeshi.fanli.service.inter.order.PidOrderService;
|
import com.yeshi.fanli.service.inter.user.AccountDetailsService;
|
import com.yeshi.fanli.service.inter.user.BindingAccountService;
|
import com.yeshi.fanli.service.inter.user.ExtractService;
|
import com.yeshi.fanli.service.inter.user.MoneyRecordService;
|
import com.yeshi.fanli.service.inter.user.ScanHistoryService;
|
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
|
import com.yeshi.fanli.service.inter.user.UserInfoService;
|
import com.yeshi.fanli.tag.PageEntity;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.GsonUtil;
|
import com.yeshi.fanli.util.HongBaoUtil;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.util.TimeUtil;
|
|
@Controller
|
@RequestMapping("admin/new/api/v1/user")
|
public class UserInfoAdminController {
|
@Resource
|
private UserInfoService userInfoService;
|
|
@Resource
|
private MoneyRecordService moneyRecordService;
|
|
@Resource
|
private OrderService orderService;
|
|
@Resource
|
private ScanHistoryService scanHistoryService;
|
|
@Resource
|
private ConfigService configService;
|
|
@Resource
|
private HongBaoService hongBaoService;
|
|
@Resource
|
private ExtractService extractService;
|
|
@Resource
|
private ThreeSaleSerivce threeSaleService;
|
|
@Resource
|
private OrderItemServcie orderItemService;
|
|
@Resource
|
private ShareService shareService;
|
|
@Resource
|
private PidOrderService pidOrderService;
|
|
@Resource
|
private AccountDetailsService accountDetailsService;
|
|
@Resource
|
private BindingAccountService bindingAccountService;
|
|
@Resource
|
private UserInfoCountService userInfoCountService;
|
|
@Resource
|
private UserActiveLogService userActiveLogService;
|
|
|
@RequestMapping(value = "getUserList", method = RequestMethod.POST)
|
public void getUserList(int pageIndex, String key, PrintWriter out) {
|
|
List<UserInfo> userList = userInfoService.getUserList(pageIndex - 1, key);
|
int count = userInfoService.getUserCount(key);
|
|
int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
|
PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
|
Map<String, String> map = new HashMap<String, String>();
|
map.put("key", key);
|
pe.setParams(map);
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("userList", userList);
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
/**
|
*
|
* 方法说明: 三级分销
|
*
|
* @author mawurui createTime 2018年5月21日 下午4:55:07
|
* @param pageIndex
|
* @param key
|
* @param out
|
*/
|
@RequestMapping(value = "getThreeSaleList", method = RequestMethod.POST)
|
public void getThreeSaleList(int pageIndex, String key, PrintWriter out) {
|
List<ThreeSale> list = threeSaleService.getLastestThreeSaleList(pageIndex, key);
|
int count = threeSaleService.getLastestThreeSaleCount(key);
|
|
int totalPage = (int) (count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE
|
: count / Constant.PAGE_SIZE + 1);
|
PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
|
Map<String, String> map = new HashMap<String, String>();
|
map.put("key", key);
|
pe.setParams(map);
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("threeSaleList", list);
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
/**
|
*
|
* 方法说明: 查询所有用户分享赚列表
|
*
|
* @author mawurui createTime 2018年4月24日 下午3:37:13
|
* @param pageIndex
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping(value = "getShareMoneyList", method = RequestMethod.POST)
|
public void getShareList(int pageIndex, PrintWriter out, String key) {
|
|
// int totalCount = shareService.getShareMoneyCount();
|
// PageEntity pageEntity = new PageEntity();
|
// pageEntity.setPageIndex(pageIndex);
|
// pageEntity.setPageSize(Constant.PAGE_SIZE);
|
// pageEntity.setTotalCount(totalCount);
|
|
int count = shareService.getCountByKey(key);
|
int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
|
PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
|
|
List<PidOrder> shareMoneyList = shareService.getShareMoneyList(pageIndex, key);
|
JSONObject data = new JSONObject();
|
data.put("pageEntity", pe);
|
data.put("shareMoneyList", JsonUtil.getSimpleGsonWithDate().toJson(shareMoneyList));
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
/**
|
*
|
* @param pageIndex
|
* @param type
|
* 1- 1级分销 2-2级分销
|
* @param uid
|
* @param key
|
* @param out
|
*/
|
@RequestMapping(value = "getThreeSaleDetailList", method = RequestMethod.POST)
|
public void getThreeSaleDetailList(int pageIndex, int type, long uid, String key, PrintWriter out) {
|
List<UserInfo> userList = null;
|
long count = 0;
|
if (type == 1) {
|
userList = threeSaleService.getFirstUsers(uid, pageIndex);
|
count = threeSaleService.getFirstUsersCount(uid);
|
} else if (type == 2) {
|
userList = threeSaleService.getSecondUsers(uid, pageIndex);
|
count = threeSaleService.getSecondUsersCount(uid);
|
}
|
|
int totalPage = (int) (count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE
|
: count / Constant.PAGE_SIZE + 1);
|
PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
|
Map<String, String> map = new HashMap<String, String>();
|
map.put("key", key);
|
pe.setParams(map);
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("userList", userList);
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
@RequestMapping(value = "getUserListByUid", method = RequestMethod.POST)
|
public void getUserListByUid(long uid, PrintWriter out) {
|
|
List<UserInfo> userList = userInfoService.getUserListByUid(uid);
|
int count = userList.size();
|
|
int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
|
PageEntity pe = new PageEntity(1, Constant.PAGE_SIZE, count, totalPage);
|
Map<String, String> map = new HashMap<String, String>();
|
pe.setParams(map);
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("userList", userList);
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
/**
|
*
|
* 方法说明: 查询用户订单状态
|
*
|
* @author mawurui createTime 2018年5月17日 上午10:55:41
|
* @param pageIndex
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping(value = "getUserOrderList", method = RequestMethod.POST)
|
public void getUserOrderList(int pageIndex, long uid, PrintWriter out) {
|
List<Order> orderList = orderService.getOrderByUid(pageIndex - 1, uid);
|
int count = orderService.getCount(uid);
|
int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
|
PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("orderList", JsonUtil.getSimpleGsonWithDateAndSerialization().toJson(orderList));
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
@RequestMapping(value = "getMoneyRecordList", method = RequestMethod.POST)
|
public void getMoneyRecordList(int pageIndex, long uid, PrintWriter out) {
|
List<MoneyRecord> moneyRecordList = moneyRecordService.getMoneyRecord(uid, pageIndex - 1);
|
if (moneyRecordList != null)
|
for (MoneyRecord mr : moneyRecordList) {
|
mr.setExtract(null);
|
mr.setUserInfo(null);
|
mr.setHongBao(null);
|
}
|
|
int count = moneyRecordService.getCount(uid);
|
int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
|
PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("moneyRecordList", GsonUtil.toJsonExpose(moneyRecordList));
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
/**
|
*
|
* 方法说明: 查询用户-红包详情列表
|
*
|
* @author mawurui createTime 2018年5月10日 上午11:48:58
|
* @param pageIndex
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping(value = "getHongBaoList", method = RequestMethod.POST)
|
public void getHongBaoList(int pageIndex, long uid, PrintWriter out) {
|
JSONObject data = new JSONObject();
|
List<HongBao> list = hongBaoService.getHongBaoList(pageIndex, uid);
|
if (list.size() != 0 || list != null) {
|
for (HongBao hb : list) {
|
int hbType = hb.getType();
|
if (hbType == HongBao.TYPE_SHARE_GOODS) { // type == 20
|
Long hongbaoId = hb.getId();
|
PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
|
Order order = new Order();
|
order.setThirdCreateTime(pidOrder.getOrderCreateTime());
|
order.setOrderId(pidOrder.getOrderId());
|
order.setThirdState(pidOrder.getState());
|
order.setMoney(pidOrder.getPayMoney());
|
hb.setOrder(order);
|
} else if (hbType == HongBao.TYPE_SHARE_YIJI || hbType == HongBao.TYPE_SHARE_ERJI) {
|
Long hongbaoId = hb.getParent().getId();
|
PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
|
Order order = new Order();
|
order.setThirdCreateTime(pidOrder.getOrderCreateTime());
|
order.setOrderId(pidOrder.getOrderId());
|
order.setThirdState(pidOrder.getState());
|
order.setMoney(pidOrder.getPayMoney());
|
hb.setOrder(order);
|
} else if (hbType == HongBao.TYPE_XINREN) {
|
Order order = new Order();
|
Long createtime = hb.getCreatetime();
|
if (createtime != null) {
|
Date ThirdCreateTime = new Date(createtime);
|
order.setThirdCreateTime(ThirdCreateTime);
|
}
|
|
hb.setOrder(order);
|
|
} else if (hb.getParent() != null) {
|
hb.setOrder(hb.getParent().getOrder());
|
}
|
}
|
}
|
int count = hongBaoService.getCount(uid);
|
PageEntity pe = new PageEntity();
|
pe.setPageIndex(pageIndex);
|
pe.setPageSize(Constant.PAGE_SIZE);
|
pe.setTotalCount(count);
|
|
data.put("pe", pe);
|
data.put("list", JsonUtil.getSimpleGsonWithDateAndSerialization().toJson(list));
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
/**
|
*
|
* 方法说明: 查询 分享赚页面列表
|
*
|
* @author mawurui createTime 2018年4月16日 上午9:54:39
|
* @param pageIndex
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping(value = "getShareList", method = RequestMethod.POST)
|
public void getShareList(int pageIndex, long uid, PrintWriter out) {
|
int totalCount = shareService.getCount(uid);
|
PageEntity pageEntity = new PageEntity();
|
pageEntity.setPageIndex(pageIndex);
|
pageEntity.setPageSize(Constant.PAGE_SIZE);
|
pageEntity.setTotalCount(totalCount);
|
|
List<HongBao> shareList = shareService.getShareList(pageIndex, uid);
|
if (shareList.size() != 0 || shareList != null) {
|
for (HongBao hb : shareList) {
|
int hbType = hb.getType();
|
if (hbType == HongBao.TYPE_SHARE_GOODS) { // type == 20
|
Long hongbaoId = hb.getId();
|
PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
|
Order order = new Order();
|
order.setThirdCreateTime(pidOrder.getCreateTime());
|
order.setThirdState(pidOrder.getState());
|
hb.setOrder(order);
|
} else if (hb.getParent() != null) {
|
hb.setOrder(hb.getParent().getOrder());
|
}
|
}
|
}
|
JSONObject data = new JSONObject();
|
data.put("pageEntity", pageEntity);
|
data.put("shareList", GsonUtil.toJsonExpose(shareList));
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
/**
|
*
|
* 方法说明: 查询 邀请赚页面列表
|
*
|
* @author mawurui createTime 2018年4月16日 上午9:54:39
|
* @param pageIndex
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping(value = "getInviteList", method = RequestMethod.POST)
|
public void getInviteList(int pageIndex, long uid, PrintWriter out) {
|
int totalCount = shareService.getInviteCount(uid);
|
PageEntity pageEntity = new PageEntity();
|
pageEntity.setPageIndex(pageIndex);
|
pageEntity.setPageSize(Constant.PAGE_SIZE);
|
pageEntity.setTotalCount(totalCount);
|
|
List<HongBao> inviteList = shareService.getInviteList(pageIndex, uid);
|
if (inviteList.size() != 0 || inviteList != null) {
|
for (HongBao hb : inviteList) {
|
int hbType = hb.getType();
|
if (hbType == HongBao.TYPE_SHARE_GOODS) { // type == 20
|
Long hongbaoId = hb.getId();
|
PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
|
Order order = new Order();
|
order.setThirdCreateTime(pidOrder.getCreateTime());
|
order.setThirdState(pidOrder.getState());
|
hb.setOrder(order);
|
} else if (hb.getParent() != null) {
|
hb.setOrder(hb.getParent().getOrder());
|
}
|
}
|
}
|
|
JSONObject data = new JSONObject();
|
data.put("pageEntity", pageEntity);
|
data.put("inviteList", JsonUtil.getSimpleGsonWithDateAndSerialization().toJson(inviteList));
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
/**
|
*
|
* 方法说明: 清除用户手势密码
|
*
|
* @author mawurui createTime 2018年5月4日 下午4:47:29
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping(value = "cleanPassword", method = RequestMethod.POST)
|
public void cleanPassword(long id, PrintWriter out) {
|
userInfoService.cleanPassword(id);
|
out.print(JsonUtil.loadTrueResult("清除成功"));
|
}
|
|
@RequestMapping(value = "getScanHistoryList", method = RequestMethod.POST)
|
public void getScanHistoryList(int pageIndex, long uid, PrintWriter out) {
|
List<ScanHistory> scanHistoryList = scanHistoryService.getScanHistoryByUid(pageIndex - 1, uid);
|
int count = scanHistoryService.getCountByUid(uid);
|
int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
|
PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("scanHistoryList", GsonUtil.toDFJson(scanHistoryList));
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
@RequestMapping(value = "getAssets", method = RequestMethod.POST)
|
public void getAssets(PrintWriter out) {
|
String minMoney = configService.get(Constant.EXTRACT_MIN_MONEY);
|
double min = Double.parseDouble(minMoney);
|
double freeze = userInfoService.getFreezeAssets(min);
|
double canAssets = userInfoService.getCanAssets(min);
|
JSONObject data = new JSONObject();
|
data.put("freeze", freeze);
|
data.put("can", canAssets);
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
/**
|
*
|
* 方法说明: Excel表格下载
|
*
|
* @author mawurui createTime 2018年5月21日 下午2:14:44
|
* @param uid
|
* @param response
|
*/
|
@SuppressWarnings("unused")
|
@RequestMapping(value = "downDetailedExcel", produces = { "application/vnd.ms-excel;charset=UTF-8" })
|
public void downDetailedExcel(long uid, HttpServletResponse response) {
|
try {
|
List<HongBao> list = hongBaoService.getHongBaoListAll(uid);
|
if (list.size() != 0 || list != null) {
|
for (HongBao hb : list) {
|
int hbType = hb.getType();
|
if (hbType == HongBao.TYPE_SHARE_GOODS) { // type == 20
|
Long hongbaoId = hb.getId();
|
PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
|
Order order = new Order();
|
order.setOrderId(pidOrder.getOrderId());
|
order.setMoney(pidOrder.getPayMoney());
|
order.setThirdCreateTime(pidOrder.getCreateTime());
|
order.setThirdState(pidOrder.getState());
|
hb.setOrder(order);
|
} else if (hbType == HongBao.TYPE_SHARE_ERJI || hbType == HongBao.TYPE_SHARE_YIJI) { // type
|
// ==
|
Long hongbaoId = hb.getParent().getId();
|
PidOrder pidOrder = pidOrderService.getPidOrderByHongBaoId(hongbaoId);
|
Order order = new Order();
|
order.setOrderId(pidOrder.getOrderId());
|
order.setMoney(pidOrder.getPayMoney());
|
order.setThirdCreateTime(pidOrder.getCreateTime());
|
order.setThirdState(pidOrder.getState());
|
hb.setOrder(order);
|
} else if (hb.getParent() != null) {
|
hb.setOrder(hb.getParent().getOrder());
|
}
|
}
|
}
|
|
File desc = new File(this.getClass().getResource("/muban.xls").toURI());
|
InputStream inStream = new FileInputStream(desc);
|
Workbook wb = new HSSFWorkbook(inStream);
|
Sheet sheet = wb.getSheetAt(0);
|
int i = 1;
|
for (; i <= list.size(); i++) {
|
Row row = sheet.createRow(i);
|
for (int c = 1; c < 10; c++) {
|
row.createCell(c);
|
}
|
Cell cell = row.createCell(1);
|
HongBao hongBao = list.get(i - 1);
|
long createtime = hongBao.getCreatetime();
|
String create = TimeUtil.getWholeTime(createtime);
|
cell.setCellValue(create);
|
|
Cell cell2 = row.getCell(2);
|
String title = HongBaoUtil.getHongBaoTitle(hongBao.getType());
|
cell2.setCellValue(title);
|
|
Order order = hongBao.getOrder();
|
if (order != null) {
|
Cell cell3 = row.getCell(3);
|
Integer orderType = order.getOrderType();
|
if (orderType == null) {
|
orderType = 1;
|
}
|
cell3.setCellValue(orderType == 1 ? "淘宝" : "其他");
|
|
String orderId = order.getOrderId();
|
if (orderId == null) {
|
orderId = "";
|
}
|
Cell cell4 = row.getCell(4);
|
cell4.setCellValue(orderId);
|
|
Cell cell5 = row.getCell(5);
|
// List<Order>
|
// orderItemService.findByOrderId(order.getId());
|
cell5.setCellValue(order.getMoney().doubleValue());
|
|
Cell cell6 = row.getCell(6);
|
String stateStr = order.getThirdState();
|
cell6.setCellValue(stateStr);
|
/*
|
* Cell cell11 = row.getCell(11); //下单时间 long orderTime =
|
* order.getCreatetime(); String oTime =
|
* TimeUtil.getWholeTime(orderTime);
|
* cell11.setCellValue(oTime);
|
*/
|
} else if (order == null) {
|
Cell cell3 = row.getCell(3);
|
cell3.setCellValue("淘宝");
|
|
Cell cell4 = row.getCell(4);
|
cell4.setCellValue("");
|
|
Cell cell5 = row.getCell(5);
|
cell5.setCellValue("");
|
|
Cell cell6 = row.getCell(6);
|
cell6.setCellValue("");
|
} else if (hongBao.getParent() != null) {// 属于分销红包
|
String orderId = "";
|
if (hongBao.getParent().getParent() != null) {
|
orderId = hongBao.getParent().getParent().getOrder().getOrderId();
|
} else {
|
orderId = hongBao.getParent().getOrder().getOrderId();
|
}
|
Cell cell4 = row.getCell(4);
|
cell4.setCellValue(orderId);
|
}
|
Cell cell7 = row.getCell(7);
|
cell7.setCellValue(hongBao.getMoney().doubleValue());
|
|
Cell cell8 = row.getCell(8);
|
cell8.setCellValue(HongBaoUtil.convertState(hongBao.getState()));
|
|
Cell cell9 = row.getCell(9);
|
if (hongBao.getGetTime() != 0) {
|
cell9.setCellValue(TimeUtil.getWholeTime(hongBao.getGetTime()));
|
}
|
}
|
List<Extract> extractList = extractService.getExtractInfoByUid(uid);
|
int ii = i;
|
for (int m = 0; m < extractList.size(); m++, ii++) {
|
Row row = sheet.createRow(ii);
|
for (int c = 1; c < 10; c++) {
|
row.createCell(c);
|
}
|
Cell cell = row.getCell(1);
|
Extract extract = extractList.get(m);
|
cell.setCellValue(TimeUtil.getWholeTime(extract.getExtractTime()));
|
Cell cell2 = row.getCell(2);
|
cell2.setCellValue("提现");
|
Cell cell7 = row.getCell(7);
|
cell7.setCellValue(-extract.getMoney().doubleValue());
|
}
|
CellRangeAddress cellRangeAddress = new CellRangeAddress(0, sheet.getLastRowNum(), 1, 9);
|
sheet.setAutoFilter(cellRangeAddress);
|
wb.write(response.getOutputStream());
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
/**
|
* 查询用户信息列表--相关数据统计
|
* @param callback
|
* @param pageIndex
|
* @param key 查询条件
|
* @param userType 用户类型:金冠、银冠、铜冠
|
* @param days 查询天数
|
* @param startTime 注册时间
|
* @param endTime 注册时间
|
* @param orderMode 排序方式 订单数量 今日订单 累计队员
|
* @param out
|
*/
|
@RequestMapping(value = "query")
|
public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer userType,
|
Integer days, String startTime, String endTime, Integer orderMode, PrintWriter out) {
|
|
try {
|
|
// 结束时间 2018-06-06 00:00:00 加上一天
|
if (!StringUtil.isNullOrEmpty(endTime)) {
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
Date enddate = sdf.parse(endTime);
|
Calendar c = Calendar.getInstance();
|
c.setTime(enddate);
|
c.add(Calendar.DAY_OF_MONTH, 1);// 今天+1天
|
endTime = sdf.format(c.getTime());
|
}
|
|
if (pageIndex == null)
|
pageIndex = 1;
|
|
if (pageSize == null)
|
pageSize = Constant.PAGE_SIZE;
|
|
Integer orderField = null;
|
if (orderMode != null) {
|
if (orderMode == 1 || orderMode == 2){
|
orderField = orderMode;
|
orderMode = 1;
|
} else if (orderMode == 3 || orderMode == 4){
|
orderField = orderMode;
|
orderMode = 2;
|
} else if (orderMode == 5 || orderMode == 6){
|
orderField = orderMode;
|
orderMode = 3;
|
}
|
}
|
|
|
List<UserInfoAdmin> userList = userInfoService.query((pageIndex - 1) * pageSize, pageSize,
|
key, userType, days, startTime, endTime,orderField, orderMode);
|
|
if (userList == null || userList.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无相关数据"));
|
return;
|
}
|
|
long count = userInfoService.queryCount(key, userType, days, startTime, endTime);
|
|
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
gsonBuilder.serializeNulls();
|
Gson gson = gsonBuilder.create();
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
//data.put("sumMoney", sumMoney);
|
data.put("resultList", gson.toJson(userList));
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
}
|
}
|
|
/**
|
* 统计今日用户总情况
|
* @param callback
|
* @param out
|
*/
|
@RequestMapping(value = "countInfo")
|
public void countInfo(String callback, PrintWriter out) {
|
try {
|
|
JSONObject data = new JSONObject();
|
|
// 总数-普通用户
|
long countNormal = userInfoCountService.countRank(0);
|
// 总数-铜用户
|
long countCuprum = userInfoCountService.countRank(1);
|
// 总数-银用户
|
long countSilver = userInfoCountService.countRank(2);
|
// 总数-金用户
|
long countGold = userInfoCountService.countRank(3);
|
|
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 totalUser = userInfoCountService.countNewUser(null, null);
|
// 流失用户数量(180天未使用登录并且无任何资金流动的账号数量)
|
long loseUser = userInfoCountService.countLoseUser(180);
|
// 累计有购买用户数
|
long orderUser = userInfoCountService.countHasOrderUser();
|
|
data.put("totalUser", totalUser);
|
data.put("loseUser", loseUser);
|
data.put("orderUser", orderUser);
|
|
// 今日新增用户数量
|
long todayUser = userInfoCountService.countNewUser(1, null);
|
// 本月新增用户数量
|
long monthUser = userInfoCountService.countNewUser(null, 1);
|
data.put("todayUser", todayUser);
|
data.put("monthUser", monthUser);
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
}
|
}
|
|
|
/**
|
* 修改用户的状态、等级信息
|
* @param callback
|
* @param userInfo
|
* @param out
|
*/
|
@RequestMapping(value = "setInfo")
|
public void setInfo(String callback, UserInfo userInfo, PrintWriter out) {
|
try {
|
|
Long id = userInfo.getId();
|
|
if (id == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据"));
|
return;
|
}
|
|
UserInfo currentInfo = userInfoService.selectByPKey(id);
|
if (currentInfo == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该用户已不存在"));
|
return;
|
}
|
|
boolean hasChange = false;
|
|
// 等级修改
|
Integer rank = userInfo.getRank();
|
if (rank != null) {
|
hasChange = true;
|
currentInfo.setRank(rank);
|
}
|
|
// 状态修改
|
Integer state = userInfo.getState();
|
if (state != null) {
|
hasChange = true;
|
currentInfo.setState(state);
|
}
|
|
if (hasChange) {
|
userInfoService.updateByPrimaryKeySelective(currentInfo);
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("修改成功"));
|
} else {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("无可修改内容"));
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("修改失败"));
|
}
|
}
|
|
/**
|
* 删除绑定的账户信息: 支付宝 微信
|
* @param callback
|
* @param bindId
|
* @param out
|
*/
|
@RequestMapping(value = "deleteBindingAccount")
|
public void deleteBindingAccount(String callback, Long bindId, PrintWriter out) {
|
try {
|
|
if (bindId == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据"));
|
return;
|
}
|
|
int count = bindingAccountService.deleteByPrimaryKey(bindId);
|
|
if (count > 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("删除成功"));
|
} else {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("删除失败"));
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
}
|
}
|
|
/**
|
*
|
* @param data
|
* @param uid
|
* 用户ID
|
* @param type
|
* 需要解绑的账户类型
|
*/
|
@RequestMapping("unBindUserInfo")
|
public void unBindUserInfo(String callback, Long id, Integer type, PrintWriter out) {
|
try {
|
|
if (id == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("不存在该用户!"));
|
return;
|
}
|
|
|
if (type == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("账户类型不可为空!"));
|
return;
|
}
|
|
|
UserInfo find = userInfoService.getUserById(id);
|
|
if (find == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("不存在该用户!"));
|
return;
|
}
|
|
String openid = find.getOpenid();
|
String wxUnionId = find.getWxUnionId();
|
String phone = find.getPhone();
|
if (1 == type) {
|
if (StringUtil.isNullOrEmpty(openid)) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当前用户未绑定支付宝!"));
|
return;
|
}
|
} else if (2 == type) {
|
if (StringUtil.isNullOrEmpty(wxUnionId)) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当前用户未绑定微信!"));
|
return;
|
}
|
} else if (3 == type) {
|
if (StringUtil.isNullOrEmpty(phone)) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当前用户未绑定手机号!"));
|
return;
|
}
|
} else {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("账户类型有误!"));
|
return;
|
}
|
|
userInfoService.deleteBindInfo(find, type);
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("解绑成功"));
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
}
|
}
|
|
|
|
@RequestMapping(value = "queryMyFirstTeams")
|
public void queryMyFirstTeams(String callback, Integer pageIndex, Integer pageSize, String key,
|
Long bossId, PrintWriter out) {
|
try {
|
|
if (bossId == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据"));
|
return;
|
}
|
|
if (pageIndex == null)
|
pageIndex = 1;
|
|
if (pageSize == null)
|
pageSize = Constant.PAGE_SIZE;
|
|
|
List<ThreeSale> firstTeamList =
|
threeSaleService.queryMyFirstTeamList((pageIndex - 1) * pageSize, pageSize, key, bossId);
|
if (firstTeamList == null || firstTeamList.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无一度队员"));
|
return;
|
}
|
|
/* 获取邀请用户头像 、昵称 */
|
for (ThreeSale threeSale: firstTeamList) {
|
UserInfo worker = threeSale.getWorker();
|
if (worker == null) {
|
worker = new UserInfo();
|
threeSale.setWorker(worker);
|
} else{
|
Long id = worker.getId();
|
|
UserInfo currentInfo = userInfoService.selectByPKey(id);
|
if (currentInfo != null) {
|
worker.setNickName(currentInfo.getNickName());
|
worker.setPortrait(currentInfo.getPortrait());
|
}
|
}
|
}
|
|
long count = threeSaleService.queryCountMyFirstTeamList(key, bossId);
|
|
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
gsonBuilder.serializeNulls();
|
Gson gson = gsonBuilder.create();
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("list", gson.toJson(firstTeamList));
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
}
|
}
|
|
|
@RequestMapping(value = "queryMySecondTeams")
|
public void queryMySecondTeams(String callback, Integer pageIndex, Integer pageSize, String key,
|
Long bossId, PrintWriter out) {
|
try {
|
|
if (bossId == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据"));
|
return;
|
}
|
|
if (pageIndex == null)
|
pageIndex = 1;
|
|
if (pageSize == null)
|
pageSize = Constant.PAGE_SIZE;
|
|
|
List<ThreeSale> firstTeamList =
|
threeSaleService.queryMySecondTeamList((pageIndex - 1) * pageSize, pageSize, key, bossId);
|
if (firstTeamList == null || firstTeamList.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无二度队员"));
|
return;
|
}
|
|
/* 获取邀请用户头像 、昵称 */
|
for (ThreeSale threeSale: firstTeamList) {
|
UserInfo worker = threeSale.getWorker();
|
if (worker == null) {
|
worker = new UserInfo();
|
threeSale.setWorker(worker);
|
} else{
|
Long id = worker.getId();
|
|
UserInfo currentInfo = userInfoService.selectByPKey(id);
|
if (currentInfo != null) {
|
worker.setNickName(currentInfo.getNickName());
|
worker.setPortrait(currentInfo.getPortrait());
|
}
|
}
|
}
|
|
long count = threeSaleService.queryCountMySecondTeamList(key, bossId);
|
|
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
gsonBuilder.serializeNulls();
|
Gson gson = gsonBuilder.create();
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("list", gson.toJson(firstTeamList));
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
}
|
}
|
|
|
@RequestMapping(value = "deleteThreeSale")
|
public void deleteThreeSale(String callback, Long id, PrintWriter out) {
|
try {
|
|
if (id == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据"));
|
return;
|
}
|
|
int count = threeSaleService.deleteByPrimaryKey(id);
|
|
if (count > 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("删除成功"));
|
} else{
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("删除失败"));
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
}
|
}
|
|
|
|
/**
|
* 队员关系
|
* @param pageIndex
|
* @param key
|
* @param state
|
* @param startTime
|
* @param endTime
|
* @param out
|
*/
|
@RequestMapping(value = "getRelationList")
|
public void getRelationList(String callback, Integer pageIndex, Integer pageSize, Long uid, Integer type,
|
Integer state, String startTime, String endTime, PrintWriter out) {
|
|
if (pageIndex == null || pageIndex < 1) {
|
pageIndex = 1;
|
}
|
|
if (pageSize == null || pageSize < 1) {
|
pageSize = Constant.PAGE_SIZE;
|
}
|
|
try {
|
|
if (!StringUtil.isNullOrEmpty(endTime)) {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
Date enddate = sdf.parse(endTime);
|
Calendar c = Calendar.getInstance();
|
c.setTime(enddate);
|
c.add(Calendar.DAY_OF_MONTH, 1);// 今天+1天
|
endTime = sdf.format(c.getTime());
|
}
|
|
List<ThreeSale> listQuery = null;
|
if (type == 0) {
|
// 上级用户
|
if (uid == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询上级需输入用户id"));
|
return;
|
}
|
listQuery = threeSaleService.listSuperiorQuery((pageIndex - 1) * pageSize, pageSize, state, uid);
|
} else if (type == 1) {
|
// 一级用户
|
listQuery = threeSaleService.listFirstTeamQuery((pageIndex - 1) * pageSize, pageSize, uid,
|
state, startTime, endTime);
|
} else if (type == 2) {
|
// 二级用户
|
listQuery = threeSaleService.listSecondTeamQuery((pageIndex - 1) * pageSize, pageSize, uid,
|
state, startTime, endTime);
|
}
|
|
if (listQuery == null || listQuery.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
|
return;
|
}
|
|
for (ThreeSale threeSale: listQuery) {
|
Integer expire = threeSale.getExpire();
|
if (threeSale.getState()) {
|
threeSale.setExpire(1); // 邀请成功
|
} else {
|
if (expire != null && expire == 1) {
|
threeSale.setExpire(2); // 邀请失效
|
} else {
|
threeSale.setExpire(0);// 已邀请
|
}
|
}
|
}
|
|
long count = 0;
|
if (type == 0) {
|
// 上级用户
|
count = threeSaleService.countSuperiorQuery(state, uid);
|
} else if (type == 1) {
|
// 一级用户
|
count = threeSaleService.countFirstTeamQuery(uid, state, startTime, endTime);
|
} else if (type == 2) {
|
// 二级用户
|
count = threeSaleService.countSecondTeamQuery(uid, state, startTime, endTime);
|
}
|
|
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("result_list", listQuery);
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
|
e.printStackTrace();
|
}
|
}
|
|
|
/**
|
* 用户账户明细
|
* @param callback
|
* @param pageIndex
|
* @param pageSize
|
* @param id
|
* @param out
|
*/
|
@RequestMapping(value = "getAccountDetails")
|
public void getAccountDetails(String callback, Integer pageIndex,Integer pageSize, Long uid, PrintWriter out) {
|
if (pageIndex == null || pageIndex < 1) {
|
pageIndex = 1;
|
}
|
|
if (pageSize == null || pageSize < 1) {
|
pageSize = Constant.PAGE_SIZE;
|
}
|
|
if (uid == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据"));
|
return;
|
}
|
|
try {
|
|
List<AccountDetails> detailsList = accountDetailsService.findAccountDetailsList(uid, pageIndex);
|
if (detailsList == null || detailsList.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
|
return;
|
}
|
|
int count = accountDetailsService.getCount(uid);
|
|
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("result_list", GsonUtil.toJsonExpose(detailsList));
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
|
}
|
}
|
|
/**
|
* 根据渠道 统计当日新增用户数量
|
* @param channelArray 名字数组
|
* @param dateType 类型 1日 2月 3年
|
* @param year 2018
|
* @param startTime 2018-12-01
|
* @param endTime 2018-12-01
|
* @param out
|
*/
|
@RequestMapping(value = "getNewUserCharts")
|
public void getNewUserCharts(String callback, String channelArray, Integer dateType,
|
String year, String startTime, String endTime, PrintWriter out) {
|
|
|
String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
|
if (validateMsg != null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
|
return;
|
}
|
|
if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
|
startTime = null;
|
endTime = null;
|
}
|
|
List<String> channelList = null;
|
if (channelArray != null && channelArray.trim().length() > 0) {
|
Gson gson = new Gson();
|
channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
|
}
|
|
if (channelList == null || channelList.size() == 0) {
|
channelList = new ArrayList<String>();
|
channelList.add("all");
|
}
|
|
|
if (dateType == 1 && year != null) {
|
year = null; // 设置为空
|
} else if (dateType == 2) {
|
if (startTime != null)
|
startTime = null;
|
|
if (endTime != null)
|
endTime = null;
|
|
} else if (dateType == 3) {
|
if (year != null)
|
year = null;
|
|
if (startTime != null)
|
startTime = null;
|
|
if (endTime != null)
|
endTime = null;
|
}
|
|
|
try {
|
|
Gson gson = new Gson();
|
Object objectDate = null;
|
List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
|
|
JSONArray line_list = new JSONArray();
|
for (String channel : channelList) {
|
|
List<Map<String, Object>> list = userInfoCountService.countNewUserByDate(channel,
|
dateType, year, startTime, endTime);
|
|
if ("all".equalsIgnoreCase(channel)) {
|
channel = "总计";
|
}
|
|
JSONObject innerList = new JSONObject();
|
innerList.put("name", channel);
|
|
if (dateType != 3) {
|
innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
|
} else {
|
// 年视图
|
Map<String, Object> map = AdminUtils.yearsDataFactory(list);
|
|
if (objectDate == null) {
|
objectDate = map.get("date");
|
}
|
innerList.put("data", gson.toJson(map.get("value")));
|
}
|
|
line_list.add(innerList);
|
}
|
|
|
JSONObject data = new JSONObject();
|
if (objectDate != null) {
|
data.put("xAxis_list", gson.toJson(objectDate));
|
} else {
|
data.put("xAxis_list", gson.toJson(dateList));
|
}
|
|
data.put("line_list", line_list);
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
e.printStackTrace();
|
}
|
}
|
|
|
/**
|
* 根据渠道 统计当日新增用户数量
|
* @param channelArray 名字数组
|
* @param dateType 类型 1日 2月 3年
|
* @param year 2018
|
* @param startTime 2018-12-01
|
* @param endTime 2018-12-01
|
* @param out
|
*/
|
@RequestMapping(value = "getTodayBuyRate")
|
public void getTodayBuyRate(String callback, String channelArray, Integer dateType,
|
String year, String startTime, String endTime, Integer orderNum, PrintWriter out) {
|
|
String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
|
if (validateMsg != null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
|
return;
|
}
|
|
if (dateType == 2 && StringUtil.isNullOrEmpty(year)) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请输入年份"));
|
return;
|
}
|
|
if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
|
startTime = null;
|
endTime = null;
|
}
|
|
List<String> channelList = null;
|
if (channelArray != null && channelArray.trim().length() > 0) {
|
Gson gson = new Gson();
|
channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
|
}
|
|
if (channelList == null || channelList.size() == 0) {
|
channelList = new ArrayList<String>();
|
channelList.add("all");
|
}
|
|
|
if (dateType == 1 && year != null) {
|
year = null; // 设置为空
|
} else if (dateType == 2) {
|
if (startTime != null)
|
startTime = null;
|
|
if (endTime != null)
|
endTime = null;
|
|
} else if (dateType == 3) {
|
if (year != null)
|
year = null;
|
|
if (startTime != null)
|
startTime = null;
|
|
if (endTime != null)
|
endTime = null;
|
}
|
|
|
try {
|
|
Gson gson = new Gson();
|
Object objectDate = null;
|
List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
|
|
JSONArray line_list = new JSONArray();
|
for (String channel : channelList) {
|
|
List<Map<String, Object>> list = userInfoCountService.getTodayBuyRate(channel, dateType,
|
year, startTime, endTime);
|
|
if ("all".equalsIgnoreCase(channel)) {
|
channel = "总计";
|
}
|
|
JSONObject innerList = new JSONObject();
|
innerList.put("name", channel);
|
|
if (dateType != 3) {
|
innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
|
} else {
|
// 年视图
|
Map<String, Object> map = AdminUtils.yearsDataFactory(list);
|
|
if (objectDate == null) {
|
objectDate = map.get("date");
|
}
|
innerList.put("data", gson.toJson(map.get("value")));
|
}
|
|
line_list.add(innerList);
|
}
|
|
|
JSONObject data = new JSONObject();
|
if (objectDate != null) {
|
data.put("xAxis_list", gson.toJson(objectDate));
|
} else {
|
data.put("xAxis_list", gson.toJson(dateList));
|
}
|
|
data.put("line_list", line_list);
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
e.printStackTrace();
|
}
|
|
}
|
|
|
/**
|
* 当周产生3单的新增用户概率
|
* @param callback
|
* @param channelArray 渠道名称
|
* @param startTime
|
* @param endTime
|
* @param orderNum 订单数量
|
* @param out
|
*/
|
@RequestMapping(value = "getWeekBuyRate")
|
public void getWeekBuyRate(String callback, String channelArray, String startTime, String endTime,
|
Integer orderNum, PrintWriter out) {
|
|
if (StringUtil.isNullOrEmpty(startTime) || StringUtil.isNullOrEmpty(endTime)) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当周订单统计对应时间区域不能为空"));
|
return;
|
}
|
|
List<String> channelList = null;
|
if (channelArray != null && channelArray.trim().length() > 0) {
|
Gson gson = new Gson();
|
channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
|
}
|
|
if (channelList == null || channelList.size() == 0) {
|
channelList = new ArrayList<String>();
|
channelList.add("all");
|
}
|
|
if (orderNum < 1) {
|
orderNum = 1;
|
}
|
|
try {
|
|
Gson gson = new Gson();
|
List<String> dateList = AdminUtils.getDateList(1, startTime, endTime, null);
|
|
JSONArray line_list = new JSONArray();
|
for (String channel : channelList) {
|
|
List<Object> list = userInfoCountService.getWeekBuyRate(channel, startTime, endTime,
|
orderNum, dateList);
|
|
if ("all".equalsIgnoreCase(channel)) {
|
channel = "总计";
|
}
|
|
JSONObject innerList = new JSONObject();
|
innerList.put("name", channel);
|
innerList.put("data", gson.toJson(list));
|
line_list.add(innerList);
|
}
|
|
|
JSONObject data = new JSONObject();
|
data.put("xAxis_list", gson.toJson(dateList));
|
data.put("line_list", line_list);
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
e.printStackTrace();
|
}
|
}
|
|
}
|