| | |
| | | package com.yeshi.fanli.controller.admin;
|
| | |
|
| | | import java.io.File;
|
| | | import java.io.FileInputStream;
|
| | | import java.io.InputStream;
|
| | | import java.io.PrintWriter;
|
| | | import java.math.BigDecimal;
|
| | | import java.text.SimpleDateFormat;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Calendar;
|
| | | import java.util.Date;
|
| | | import java.util.HashMap;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | | import javax.servlet.http.HttpServletResponse;
|
| | |
|
| | | import 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 {
|
| | | // 总用户
|
| | | long countTotal = userInfoCountService.countNewUser(null, null);
|
| | | // 今日新增
|
| | | long countToday = userInfoCountService.countNewUser(1, null);
|
| | | // 本月新增
|
| | | long countMonth = userInfoCountService.countNewUser(null, 1);
|
| | | |
| | | // 总数-普通用户
|
| | | long countNormal = userInfoCountService.countRank(0);
|
| | | // 总数-铜用户
|
| | | long countCuprum = userInfoCountService.countRank(1);
|
| | | // 总数-银用户
|
| | | long countSilver = userInfoCountService.countRank(2);
|
| | | // 总数-金用户
|
| | | long countGold = userInfoCountService.countRank(3);
|
| | | |
| | | // 统计所有总金额
|
| | | BigDecimal countTotalMoney = userInfoCountService.countAllMoney(null);
|
| | | |
| | | // 统计所有可提现金额
|
| | | String minMoney = configService.get(Constant.EXTRACT_MIN_MONEY);
|
| | | if (minMoney == null) |
| | | minMoney = "20";
|
| | | |
| | | double min = Double.parseDouble(minMoney);
|
| | | BigDecimal countCanAssets = userInfoCountService.countAllMoney(min);
|
| | | |
| | | JSONObject data = new JSONObject();
|
| | | data.put("countTotal", countTotal);
|
| | | data.put("countToday", countToday);
|
| | | data.put("countMonth", countMonth);
|
| | | data.put("countNormal", countNormal);
|
| | | data.put("countCuprum", countCuprum);
|
| | | data.put("countSilver", countSilver);
|
| | | data.put("countGold", countGold);
|
| | | data.put("countTotalMoney", countTotalMoney);
|
| | | data.put("countCanAssets", countCanAssets);
|
| | | |
| | | 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 = "getSameDayUserByChannel")
|
| | | public void getSameDayUserByChannel(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 = userActiveLogService.countSameDayByChannel(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(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 = "getBuyProportion")
|
| | | public void getBuyProportion(String callback, String channelArray, Integer dateType, |
| | | String year, String startTime, String endTime, Integer orderNum, PrintWriter out) {
|
| | | |
| | | if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
|
| | | startTime = null;
|
| | | endTime = null;
|
| | | }
|
| | | |
| | | try {
|
| | |
|
| | | Gson gson = new Gson();
|
| | | List<String> list = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
|
| | |
|
| | | if (list == null || list.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数格式不正确"));
|
| | | return;
|
| | | }
|
| | | |
| | | JSONArray array = new JSONArray();
|
| | |
|
| | | for (String channel: list) {
|
| | | JSONObject channelData = new JSONObject();
|
| | | List<Object> resultList = userActiveLogService.getBuyProportion(channel, dateType, year, startTime, endTime, orderNum);
|
| | | if (resultList == null) {
|
| | | resultList = new ArrayList<Object>();
|
| | | }
|
| | | channelData.put("name", channel);
|
| | | channelData.put("data_list", resultList);
|
| | | array.add(channelData);
|
| | | }
|
| | | |
| | | JSONObject data = new JSONObject();
|
| | | data.put("result_list", array);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 当周产生3单的新增用户概率 |
| | | * @param callback
|
| | | * @param channelArray 渠道名称
|
| | | * @param startTime |
| | | * @param endTime
|
| | | * @param orderNum 订单数量
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getWeekProportion")
|
| | | public void getWeekProportion(String callback, String channelArray, String startTime, String endTime, |
| | | Integer orderNum, PrintWriter out) {
|
| | | |
| | | if (StringUtil.isNullOrEmpty(startTime) || StringUtil.isNullOrEmpty(endTime)) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择正确时间区间"));
|
| | | return;
|
| | | }
|
| | | |
| | | try {
|
| | |
|
| | | if (orderNum == null ) {
|
| | | orderNum = 0;
|
| | | }
|
| | | |
| | |
|
| | | List<String> channelList = null;
|
| | | if (channelArray != null && channelArray.trim().length() > 0) {
|
| | | Gson gson = new Gson();
|
| | | channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
|
| | | }
|
| | |
|
| | | if (channelList == null || channelList.size() == 0) {
|
| | | channelList = new ArrayList<String>();
|
| | | channelList.add("all");
|
| | | }
|
| | | |
| | | JSONArray array = new JSONArray();
|
| | | for (String channel : channelList) {
|
| | | JSONObject channelData = new JSONObject();
|
| | |
|
| | | |
| | | List<Map<String, Object>> resultList = userActiveLogService.countOneWeekUserInfo(channel, |
| | | startTime, endTime, orderNum);
|
| | |
|
| | | if (resultList == null) {
|
| | | resultList = new ArrayList<Map<String, Object>>();
|
| | | }
|
| | |
|
| | | if ("all".equalsIgnoreCase(channel)) {
|
| | | channel = "总计";
|
| | | }
|
| | | |
| | | channelData.put("name", channel);
|
| | | channelData.put("data_list", resultList);
|
| | | array.add(channelData);
|
| | | }
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("result_list", array);
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | /**
|
| | | * 用户统计 :总用户、流失用户数量、累计有购买用户数
|
| | | * @param callback
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "countUser")
|
| | | public void countUser(String callback, PrintWriter out) {
|
| | | try {
|
| | | // 总用户
|
| | | long totalUser = userInfoCountService.countNewUser(null, null);
|
| | | // 流失用户数量(180天未使用登录并且无任何资金流动的账号数量)
|
| | | long loseUser = userInfoCountService.countLoseUser(180);
|
| | | // 累计有购买用户数
|
| | | long orderUser = userInfoCountService.countHasOrderUser();
|
| | | |
| | | JSONObject data = new JSONObject();
|
| | | data.put("totalUser", totalUser);
|
| | | data.put("loseUser", loseUser);
|
| | | data.put("orderUser", orderUser);
|
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("统计异常"));
|
| | | }
|
| | | |
| | | }
|
| | | |
| | | /**
|
| | | * 统计历史新增用户
|
| | | * @param callback
|
| | | * @param dateType 类型 1日 2月 3年
|
| | | * @param year 2018
|
| | | * @param startTime 2018-12-01 |
| | | * @param endTime 2018-12-01 |
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getNewUserCharts")
|
| | | public void getNewUserCharts(String callback, 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;
|
| | | }
|
| | |
|
| | | 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();
|
| | |
|
| | | List<Map<String, Object>> list = userInfoCountService
|
| | | .countNewUserByDate(dateType, year, startTime, endTime);
|
| | |
|
| | | JSONObject innerList = new JSONObject();
|
| | | innerList.put("name", "总计");
|
| | |
|
| | | if (dateType != 3) {
|
| | | innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(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();
|
| | | }
|
| | | }
|
| | | |
| | | }
|
| | | 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; |
| | | |
| | | /** |
| | | * 查询用户信息列表 正常用户/异常用户 |
| | | * |
| | | * @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("该用户ID不存在")); |
| | | return; |
| | | } |
| | | |
| | | Date minDate = null; |
| | | Date maxDate = null; |
| | | long timeStamp = System.currentTimeMillis(); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTimeInMillis(timeStamp); |
| | | List<UserMoneyDetailTypeEnum> typeList = new ArrayList<>(); |
| | | typeList.add(UserMoneyDetailTypeEnum.extract); |
| | | typeList.add(UserMoneyDetailTypeEnum.extractNew); |
| | | typeList.add(UserMoneyDetailTypeEnum.extractVerify); |
| | | typeList.add(UserMoneyDetailTypeEnum.extractVerifyNew); |
| | | typeList.add(UserMoneyDetailTypeEnum.extractReject); |
| | | typeList.add(UserMoneyDetailTypeEnum.extractAutoWX); |
| | | minDate = new Date(0L); |
| | | maxDate = new Date(timeStamp); |
| | | // 累计成功提现 |
| | | BigDecimal totalExtractMoney = userMoneyDetailService |
| | | .statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs(); |
| | | // 提现中金额 |
| | | BigDecimal extractingMoney = extractService.sumVerifyingMoney(uid); |
| | | |
| | | // 全部未到账 |
| | | minDate = new Date(0); |
| | | maxDate = new Date(timeStamp); |
| | | BigDecimal unRecievedMoney = hongBaoV2Service.getUnRecievedMoneyWithCreateTime(uid, minDate, maxDate); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("totalExtractMoney", totalExtractMoney); |
| | | data.put("extractingMoney", extractingMoney); |
| | | data.put("balanceMoney", user.getMyHongBao()); |
| | | data.put("unRecievedMoney", unRecievedMoney); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 权益统计 |
| | | * |
| | | * @param callback |
| | | * @param uid |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "statisticsGoldCoin") |
| | | public void statisticsEquity(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", "正常"); |
| | | } 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("解绑成功")); |
| | | } 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("操作失败")); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 解除封禁用户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("管理员已解封"); |
| | | userInfoService.updateByPrimaryKeySelective(currentInfo); |
| | | |
| | | // 解封微信 |
| | | ForbiddenUserIdentifyCode forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService |
| | | .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, currentInfo.getWxUnionId()); |
| | | if (forbiddenUserIdentifyCode != null) |
| | | forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode); |
| | | |
| | | // 解封手机 |
| | | forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService |
| | | .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, currentInfo.getPhone()); |
| | | if (forbiddenUserIdentifyCode != null) |
| | | forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode); |
| | | |
| | | // 解封淘宝 |
| | | 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); |
| | | } |
| | | |
| | | // 解封支付宝 |
| | | 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("用户解封成功")); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败")); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 用户账号- 封禁/解封 |
| | | * |
| | | * @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 搜索:暂只提供uid |
| | | * @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("查询失败")); |
| | | } |
| | | } |
| | | |
| | | } |