| | |
| | | package com.yeshi.fanli.controller.admin;
|
| | |
|
| | | import java.io.OutputStream;
|
| | | import java.io.PrintWriter;
|
| | | import java.math.BigDecimal;
|
| | | import java.net.URLDecoder;
|
| | | import java.net.URLEncoder;
|
| | | import java.text.ParseException;
|
| | | 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 javax.servlet.http.HttpServletResponse;
|
| | |
|
| | | import org.springframework.stereotype.Controller;
|
| | | import org.springframework.web.bind.annotation.RequestMapping;
|
| | | import org.springframework.web.bind.annotation.RequestMethod;
|
| | | import org.springframework.web.bind.annotation.RequestParam;
|
| | | import org.springframework.web.multipart.commons.CommonsMultipartFile;
|
| | | import org.yeshi.utils.CsvUtil;
|
| | | import org.yeshi.utils.DateUtil;
|
| | | import org.yeshi.utils.IPUtil;
|
| | | import org.yeshi.utils.JsonUtil;
|
| | | import org.yeshi.utils.entity.wx.RedPackRecord;
|
| | |
|
| | | import com.google.gson.Gson;
|
| | | import com.google.gson.GsonBuilder;
|
| | | import com.google.gson.reflect.TypeToken;
|
| | | import com.yeshi.fanli.controller.admin.utils.AdminUtils;
|
| | | import com.yeshi.fanli.dto.ChartTDO;
|
| | | import com.yeshi.fanli.entity.bus.user.Extract;
|
| | | import com.yeshi.fanli.entity.bus.user.ExtractAuditRecord;
|
| | | import com.yeshi.fanli.entity.bus.user.HongBaoV2;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.common.AdminUser;
|
| | | import com.yeshi.fanli.exception.ExtractException;
|
| | | import com.yeshi.fanli.exception.NotExistObjectException;
|
| | | import com.yeshi.fanli.exception.ObjectStateException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.AdminUserService;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
|
| | | import com.yeshi.fanli.service.inter.count.UserInfoCountService;
|
| | | import com.yeshi.fanli.service.inter.money.extract.ExtractAuditRecordService;
|
| | | import com.yeshi.fanli.service.inter.money.extract.ExtractCountService;
|
| | | import com.yeshi.fanli.service.inter.money.extract.ExtractService;
|
| | | import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
|
| | | import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
|
| | | import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
|
| | | import com.yeshi.fanli.service.inter.push.PushRecordService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
| | | import com.yeshi.fanli.tag.PageEntity;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.RedisManager;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | |
|
| | | import net.sf.json.JSONArray;
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | | @Controller
|
| | | @RequestMapping("admin/new/api/v1/extract")
|
| | | public class ExtractAdminController {
|
| | |
|
| | | @Resource
|
| | | private ExtractService extractService;
|
| | |
|
| | | @Resource
|
| | | private ConfigService configService;
|
| | |
|
| | | @Resource
|
| | | private UserInfoCountService userInfoCountService;
|
| | |
|
| | | @Resource
|
| | | private ExtractCountService extractCountService;
|
| | |
|
| | | @Resource
|
| | | private PushRecordService pushRecordService;
|
| | |
|
| | | @Resource
|
| | | private PushController xingePushController;
|
| | |
|
| | | @Resource
|
| | | private ExtractAuditRecordService extractAuditRecordService;
|
| | |
|
| | | @Resource
|
| | | private HongBaoV2CountService hongBaoV2CountService;
|
| | |
|
| | | @Resource
|
| | | private AdminUserService adminUserService;
|
| | |
|
| | | @Resource
|
| | | private RedisManager redisManager;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoOrderService taoBaoOrderService;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
|
| | |
|
| | | @Resource
|
| | | private UserInfoExtraService userInfoExtraService;
|
| | |
|
| | | @Resource
|
| | | private CommonOrderCountService commonOrderCountService;
|
| | |
|
| | | /**
|
| | | * |
| | | * 方法说明: 通过提现请求 可jsonP方式
|
| | | * |
| | | * @param id
|
| | | * @param code
|
| | | * 验证码
|
| | | * @param out
|
| | | * @param request
|
| | | */
|
| | | @RequestMapping(value = "passExtractJP")
|
| | | public void passExtractJP(String callback, Long id, String code, PrintWriter out, HttpServletRequest request) {
|
| | |
|
| | | /* 检验是否登陆 */
|
| | | AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
|
| | | if (admin == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆。"));
|
| | | return;
|
| | | }
|
| | |
|
| | | /* 检验是否通过验证 */
|
| | | String codeType = (String) request.getSession().getAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT);
|
| | | if (!"1".equals(codeType)) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(3, "邮箱验证未通过"));
|
| | | return;
|
| | | }
|
| | |
|
| | | /* 允许提现 操作 */
|
| | | Integer integer = extractService.passExtract(id, admin);
|
| | |
|
| | | // 日志记录
|
| | | if (integer == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("已通过"));
|
| | | LogHelper
|
| | | .userInfo("[ip:" + IPUtil.getRemotIP(request) + "]" + admin.getName() + "通过了[id=" + id + "]的提现申请!");
|
| | | } else if (integer == 1) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该提现记录已不存在,请刷新"));
|
| | | LogHelper.userInfo(
|
| | | "[ip:" + IPUtil.getRemotIP(request) + "][管理员:" + admin.getName() + "] 同意提现id=" + id + "的提现申请不存在");
|
| | | } else {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该用户已被处理,请刷新"));
|
| | | LogHelper.userInfo(
|
| | | "[ip:" + IPUtil.getRemotIP(request) + "][管理员:" + admin.getName() + "] 同意提现id=" + id + "的提现申请状态异常");
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | /**
|
| | | * |
| | | * 方法说明: 拒绝提现请求jsonP
|
| | | * |
| | | * @author mawurui createTime 2018年3月14日 下午3:15:55
|
| | | * @param id
|
| | | * @param reason
|
| | | * @param out
|
| | | * @param request
|
| | | */
|
| | | @RequestMapping(value = "rejectExtractJP")
|
| | | public void rejectExtractJP(String callback, Long id, String code, String reason, PrintWriter out,
|
| | | HttpServletRequest request) {
|
| | | /* 检验是否登陆 */
|
| | | AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
|
| | | if (admin == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆"));
|
| | | return;
|
| | | }
|
| | |
|
| | | /* 检验是否通过验证 */
|
| | | String codeType = (String) request.getSession().getAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT);
|
| | | if (!"1".equals(codeType)) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(3, "邮箱验证未通过"));
|
| | | return;
|
| | | }
|
| | |
|
| | | try {
|
| | | // 编码转换
|
| | | reason = URLDecoder.decode(reason, "UTF-8");
|
| | | } catch (Exception e1) {
|
| | | e1.printStackTrace();
|
| | | }
|
| | |
|
| | | try {
|
| | |
|
| | | extractService.rejectExtract(id, reason, admin);// 提现失败
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("拒绝成功"));
|
| | |
|
| | | LogHelper.userInfo("[ip:" + IPUtil.getRemotIP(request) + "]" + admin.getName() + "拒绝了[id=" + id
|
| | | + "]的提现申请!拒绝原因是" + reason);
|
| | |
|
| | | } catch (ObjectStateException e) {
|
| | | LogHelper.userInfo(
|
| | | "[ip:" + IPUtil.getRemotIP(request) + "][管理员:" + admin.getName() + "] 拒绝提现id=" + id + "的提现申请状态异常!"); //
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMessage()));
|
| | |
|
| | | } catch (NotExistObjectException e) {
|
| | | LogHelper.userInfo(
|
| | | "[ip:" + IPUtil.getRemotIP(request) + "][管理员:" + admin.getName() + "] 拒绝提现id=" + id + "的提现申请不存在!");
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMessage()));
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取今日提现记录:今日总额、总次数、成功次数、失败次数 获取系统提现记录:总额、总次数
|
| | | * |
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "countExtract")
|
| | | public void countExtract(String callback, PrintWriter out) {
|
| | |
|
| | | Map<String, Object> totalcount = extractCountService.getTodayCount();
|
| | |
|
| | | // 今日提现成功金额
|
| | | BigDecimal todayextractMoney = extractCountService.getTodayTotalSuccessMoney();
|
| | |
|
| | | // 当前用户余额总计:所有用户总余额
|
| | | BigDecimal amountMoney = userInfoCountService.countAllMoney(null);
|
| | |
|
| | | // 可提现金额限制
|
| | | String minMoney = configService.get(Constant.EXTRACT_MIN_MONEY);
|
| | | if (minMoney == null) {
|
| | | minMoney = "0";
|
| | | }
|
| | | // 当前可提现金额总计: 超过最低提现金额---计入统计
|
| | | BigDecimal extractApply = userInfoCountService.countAllMoney(Double.parseDouble(minMoney));
|
| | |
|
| | | // 累计已提现金额总计:已提现成功的总额/ 次数
|
| | | Map<String, Object> resultData = extractCountService.countTotalSuccess();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("todayCount", totalcount);
|
| | | data.put("todayextractMoney", todayextractMoney);
|
| | |
|
| | | data.put("amountMoney", amountMoney); // 所有用户总余额
|
| | | data.put("extractApply", extractApply); // 可提现金额总计
|
| | | data.put("extractNumber", resultData.get("totalamount")); // 提现成功次数
|
| | | data.put("extractMoney", resultData.get("totalmoney")); // 提现成功金额
|
| | |
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
|
| | | }
|
| | |
|
| | | /**
|
| | | * 查询所有审核记录信息
|
| | | * |
| | | * @param callback
|
| | | * @param pageIndex
|
| | | * @param key
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getFinishRecordList")
|
| | | public void getFinishRecordList(String callback, Integer pageIndex, String key, String startTime, String endTime,
|
| | | PrintWriter out) {
|
| | |
|
| | | try {
|
| | |
|
| | | // 起始时间 为空设置默认值:
|
| | | if (StringUtil.isNullOrEmpty(startTime)) {
|
| | | startTime = "1970-01-01";
|
| | | }
|
| | |
|
| | | // 结束时间 为空设置默认值当前日期
|
| | | if (StringUtil.isNullOrEmpty(endTime)) {
|
| | | Date curDate = new Date();
|
| | | endTime = TimeUtil.getSimpleDate(curDate);
|
| | | }
|
| | |
|
| | | 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;
|
| | |
|
| | | int pageSize = Constant.PAGE_SIZE;
|
| | |
|
| | | List<ExtractAuditRecord> auditList = extractAuditRecordService.getList(pageIndex, pageSize, key, startTime,
|
| | | endTime);
|
| | |
|
| | | int count = extractAuditRecordService.getCount(key, startTime, endTime);
|
| | | int totalPage = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;
|
| | | PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
| | |
|
| | | if (auditList == null || auditList.size() == 0) {
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("暂无数据")));
|
| | | } else {
|
| | |
|
| | | for (ExtractAuditRecord extractAuditRecord : auditList) {
|
| | | int countByUid = 0;
|
| | | int countCancel = 0;
|
| | | Extract extract = extractAuditRecord.getExtract();
|
| | | if (extract != null) {
|
| | | UserInfo userInfo = extract.getUserInfo();
|
| | | Long id = userInfo.getId();
|
| | | countByUid = hongBaoV2CountService.countNumberByUid(id);
|
| | | countCancel = hongBaoV2CountService.countNumberByUidAndState(id, HongBaoV2.STATE_SHIXIAO);
|
| | | }
|
| | | extractAuditRecord.setCancelOrderNum((long) countCancel);
|
| | | extractAuditRecord.setOrderNum((long) countByUid);
|
| | | }
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | GsonBuilder gsonBuilder = new GsonBuilder();
|
| | | gsonBuilder.serializeNulls(); // 重点
|
| | | Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
|
| | |
|
| | | data.put("pe", pe);
|
| | | data.put("auditList", gson.toJson(auditList));
|
| | |
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
|
| | | }
|
| | |
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("操作异常")));
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 查询客服个人提现审批记录信息
|
| | | * |
| | | * @param callback
|
| | | * @param pageIndex
|
| | | * 页码
|
| | | * @param key
|
| | | * 筛选条件
|
| | | * @param timeSlot
|
| | | * 查询时间段
|
| | | * @param state
|
| | | * 查看审核状态
|
| | | * @param out
|
| | | * @param request
|
| | | */
|
| | | @RequestMapping(value = "getMyAuditedList")
|
| | | public void getMyAuditedList(String callback, Integer pageIndex, String key, String timeSlot, Integer state,
|
| | | PrintWriter out, HttpServletRequest request) {
|
| | |
|
| | | try {
|
| | |
|
| | | // AdminUser admin = (AdminUser)
|
| | | // request.getSession().getAttribute(Constant.SESSION_ADMIN);
|
| | | // if (admin == null) {
|
| | | // JsonUtil.printMode(out, callback,
|
| | | // JsonUtil.loadFalseResult("当前账户失效,请重新登陆"));
|
| | | // return;
|
| | | // }
|
| | |
|
| | | int pageSize = Constant.PAGE_SIZE;
|
| | | Integer days = null;
|
| | | if ("1".equals(timeSlot)) {
|
| | | days = 0; // 今日
|
| | | } else if ("2".equals(timeSlot)) {
|
| | | days = 3; // 前3天
|
| | | } else if ("3".equals(timeSlot)) {
|
| | | days = 7; // 前7天
|
| | | }
|
| | |
|
| | | if (state != null && state != 0 && state != 1 && state != 2) {
|
| | | state = null;
|
| | | }
|
| | |
|
| | | // 查询当前人员的审核列表信息
|
| | | // Long adminId = admin.getId();
|
| | | // auditList =
|
| | | // extractAuditRecordService.getMyAuditedTimeSlotList(pageIndex,
|
| | | // pageSize, key,state, adminId, days);
|
| | | // count = extractAuditRecordService.getMyAuditedTimeSlotCount(key,
|
| | | // state, adminId,days);
|
| | |
|
| | | // 暂不区分账号,默认所有
|
| | | List<ExtractAuditRecord> auditList = extractAuditRecordService.getMyAuditedTimeSlotList(pageIndex, pageSize,
|
| | | key, state, null, days);
|
| | | if (auditList == null || auditList.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
|
| | | return;
|
| | | }
|
| | |
|
| | | for (ExtractAuditRecord record : auditList) {
|
| | | AdminUser adminUser = record.getAdminUser();
|
| | | if (adminUser == null) {
|
| | | record.setAdminUser(new AdminUser());
|
| | | }
|
| | | // 查询用户备注信息
|
| | | UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(record.getExtract().getUserInfo().getId());
|
| | | if (extra != null) {
|
| | | record.getExtract().getUserInfo().setStateDesc(extra.getMark());
|
| | | }
|
| | |
|
| | | int warnLevel = 0;
|
| | | Extract extract = record.getExtract();
|
| | | if (extract != null) {
|
| | | Integer extractState = extract.getState();
|
| | | if (extractState != null && extractState == Extract.STATE_NOT_PROCESS) {
|
| | | UserInfo userInfo = extract.getUserInfo();
|
| | | if (userInfo != null) {
|
| | | BigDecimal countTodayMoney = extractService.sumTodayApplyMoney(userInfo.getId(),
|
| | | TimeUtil.getGernalTime(extract.getExtractTime()));
|
| | | if (countTodayMoney.compareTo(new BigDecimal(100)) > 0) {
|
| | | warnLevel = 1;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | if (record.getExtraInfo() != null) {
|
| | | StringBuffer desc = new StringBuffer();
|
| | | if (System.currentTimeMillis() > TimeUtil.convertToTimeTemp("2019-06-21", "yyyy-MM-dd")) {
|
| | | desc.append("大笔订单数:" + record.getExtraInfo().getOrderCount50More() + "\n#");
|
| | | desc.append("维权订单数:" + record.getExtraInfo().getWeiQuanOrderCount() + "\n#");
|
| | | desc.append("维权订单佣金:" + record.getExtraInfo().getWeiQuanOrderFanAmount() + "\n#");
|
| | | if (record.getExtraInfo().getOrderCount50More() > 0
|
| | | || record.getExtraInfo().getWeiQuanOrderCount() > 1
|
| | | || record.getExtraInfo().getWeiQuanOrderFanAmount().compareTo(new BigDecimal(10)) >= 0)
|
| | | warnLevel = 2;
|
| | | } else {
|
| | | if (record.getExtraInfo().getOrderCount50More() > 0
|
| | | || record.getExtraInfo().getWeiQuanOrderCount() > 0
|
| | | || record.getExtraInfo().getWeiQuanOrderFanAmount().compareTo(new BigDecimal(0)) > 0)
|
| | | warnLevel = 2;
|
| | | desc.append("大于50元订单:" + record.getExtraInfo().getOrderCount50More() + "\n#");
|
| | | desc.append("维权订单数:" + record.getExtraInfo().getWeiQuanOrderCount() + "\n#");
|
| | | desc.append("维权订单退回金额:" + record.getExtraInfo().getWeiQuanOrderFanAmount() + "\n#");
|
| | | desc.append("180天安全订单数:" + record.getExtraInfo().getSafeOrderCount());
|
| | | }
|
| | | record.setExtraInfoStr(desc.toString());
|
| | | }
|
| | |
|
| | | if (warnLevel == 0) {
|
| | | // 查询同店铺商品,同商品订单超过一定数量的
|
| | | List<Integer> typeList = new ArrayList<>();
|
| | | typeList.add(HongBaoV2.TYPE_ZIGOU);
|
| | | long sameGoodsOrderCount = commonOrderCountService.countSameGoodsOrderByUidAndHongBaoType(typeList,
|
| | | record.getExtract().getUserInfo().getId(),
|
| | | Integer.parseInt(configService.get("admin_min_same_goods_order_count")));
|
| | | long sameShopOrderCount = commonOrderCountService.countSameShopOrderByUidAndHongBaoType(typeList,
|
| | | record.getExtract().getUserInfo().getId(),
|
| | | Integer.parseInt(configService.get("admin_min_same_shop_order_count")));
|
| | | if (sameGoodsOrderCount > 0 || sameShopOrderCount > 0) {
|
| | | warnLevel = 3;
|
| | | record.setExtraInfoStr(
|
| | | String.format("同店铺:%s 同商品:%s", sameShopOrderCount, sameGoodsOrderCount));
|
| | | }
|
| | | }
|
| | |
|
| | | record.setWarnLevel(warnLevel);
|
| | |
|
| | | }
|
| | |
|
| | | int count = extractAuditRecordService.getMyAuditedTimeSlotCount(key, state, null, days);
|
| | | int totalPage = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;
|
| | | PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
| | |
|
| | | GsonBuilder gsonBuilder = new GsonBuilder();
|
| | | gsonBuilder.serializeNulls();
|
| | | gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
| | |
|
| | | Gson gson = gsonBuilder.create();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("pe", pe);
|
| | | data.put("list", gson.toJson(auditList));
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | out.print(JsonUtil.loadFalseResult(e.getMessage()));
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取今日提现记录:今日总额、总次数、成功次数、失败次数 获取系统提现记录:总额、总次数
|
| | | * |
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getMyAuditedCount")
|
| | | public void getMyAuditedCount(String callback, HttpServletRequest request, PrintWriter out) {
|
| | |
|
| | | AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
|
| | |
|
| | | if (admin == null) {
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆。")));
|
| | | } else {
|
| | | Long adminId = admin.getId();
|
| | |
|
| | | int taskToday = extractCountService.countTodayApply();
|
| | | // int countTodayComplete = extractService.countTodayComplete();
|
| | |
|
| | | // 今日累计处理数据
|
| | | int countToday = extractAuditRecordService.getMyAuditedCountToday(adminId);
|
| | | // 本周累计处理数据
|
| | | int countWeek = extractAuditRecordService.getMyAuditedCountWeek(adminId);
|
| | | // 本月累计处理数据
|
| | | int countMonth = extractAuditRecordService.getMyAuditedCountMonth(adminId);
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("adminUser", admin);
|
| | | data.put("taskToday", taskToday);
|
| | | data.put("countToday", countToday);
|
| | | data.put("countWeek", countWeek);
|
| | | data.put("countMonth", countMonth);
|
| | |
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | /**
|
| | | * 客服任务页面展示数据:传入提现申请id 则显示当前申请,若无id则显示客服任务下第一个申请数据
|
| | | * |
| | | * @param callback
|
| | | * @param extractId
|
| | | * 提现id
|
| | | * @param request
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getIaskInfo")
|
| | | public void getIaskInfo(String callback, Long extractId, HttpServletRequest request, PrintWriter out) {
|
| | | try {
|
| | |
|
| | | String surplusTime = "";
|
| | | JSONObject data = new JSONObject();
|
| | | Extract extract = new Extract();
|
| | | AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
|
| | | if (admin == null) {
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆。")));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (extractId != null) {
|
| | | /* 传入提现申请id 查询前客服任务数据 */
|
| | |
|
| | | extract = extractService.selectByPrimaryKey(extractId);
|
| | | if (extract == null) {
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("当前申请已不存在")));
|
| | | return;
|
| | | }
|
| | |
|
| | | // 当前任务指定为该账户处理
|
| | | /*
|
| | | * extract.setAdminId(admin.getId());
|
| | | * extractService.updateByPrimaryKeySelective(extract);
|
| | | */
|
| | |
|
| | | BigDecimal beforeMoney = null;
|
| | | List<ExtractAuditRecord> records = extractAuditRecordService.getbyExtractId(extract.getId());
|
| | | if (records != null && records.size() > 0) {
|
| | | ExtractAuditRecord extractAuditRecord = records.get(0);
|
| | | if (extractAuditRecord != null) {
|
| | | beforeMoney = extractAuditRecord.getBeforeMoney();
|
| | | }
|
| | | }
|
| | |
|
| | | Long extractTime = extract.getExtractTime();
|
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
| | | Date date = new Date(extractTime);
|
| | | Calendar c = Calendar.getInstance();
|
| | | c.setTime(date);
|
| | | c.add(Calendar.DAY_OF_MONTH, 3);// 今天+3天
|
| | | Date todayTime = new Date();
|
| | | String formattodayTime = sdf.format(todayTime);
|
| | | String formatTime = sdf.format(c.getTime());
|
| | |
|
| | | long diff = sdf.parse(formatTime).getTime() - sdf.parse(formattodayTime).getTime();
|
| | | if (diff <= 0) {
|
| | | surplusTime = "已超时";
|
| | | } else {
|
| | | surplusTime = DateUtil.dateDiff(formattodayTime, formatTime);
|
| | | }
|
| | |
|
| | | String mark = "";
|
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(extract.getUserInfo().getId());
|
| | | if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getMark())) {
|
| | | mark = "警惕!! " + userInfoExtra.getMark();
|
| | | }
|
| | |
|
| | | data.put("mark", mark);
|
| | | data.put("extract", extract);
|
| | | data.put("beforeMoney", beforeMoney);
|
| | | data.put("surplusTime", surplusTime);
|
| | |
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
|
| | |
|
| | | } else {
|
| | | /* 未传入提现申请id 查询当前客服任务 中的第一个 数据 */
|
| | |
|
| | | boolean newTask = false;
|
| | |
|
| | | // 查询之前未处理完的任务
|
| | | extract = extractService.getMyTaskInfo(admin.getId());
|
| | |
|
| | | if (extract == null) {
|
| | | // 新任务
|
| | | extract = extractService.getNewTaskInfo();
|
| | | if (extract != null)
|
| | | newTask = true;
|
| | | }
|
| | |
|
| | | if (extract == null) {
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("暂无用户提现申请")));
|
| | | } else {
|
| | |
|
| | | if (newTask) {
|
| | | // 当前任务指定为该账户处理
|
| | | /*
|
| | | * extract.setAdminId(admin.getId());
|
| | | * |
| | | * extractService.updateByPrimaryKeySelective(extract);
|
| | | */
|
| | | }
|
| | |
|
| | | BigDecimal beforeMoney = null;
|
| | |
|
| | | List<ExtractAuditRecord> records = extractAuditRecordService.getbyExtractId(extract.getId());
|
| | | if (records != null && records.size() > 0) {
|
| | | ExtractAuditRecord extractAuditRecord = records.get(0);
|
| | | if (extractAuditRecord != null) {
|
| | | beforeMoney = extractAuditRecord.getBeforeMoney();
|
| | | }
|
| | | }
|
| | |
|
| | | Long extractTime = extract.getExtractTime();
|
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
| | | Date date = new Date(extractTime);
|
| | |
|
| | | Calendar c = Calendar.getInstance();
|
| | | c.setTime(date);
|
| | | c.add(Calendar.DAY_OF_MONTH, 3);// 今天+3天
|
| | | Date todayTime = new Date();
|
| | |
|
| | | String formattodayTime = sdf.format(todayTime);
|
| | | String formatTime = sdf.format(c.getTime());
|
| | |
|
| | | long diff = sdf.parse(formatTime).getTime() - sdf.parse(formattodayTime).getTime();
|
| | | if (diff <= 0) {
|
| | | surplusTime = "已超时";
|
| | | } else {
|
| | | surplusTime = DateUtil.dateDiff(formattodayTime, formatTime);
|
| | | }
|
| | |
|
| | | String mark = "";
|
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(extract.getUserInfo().getId());
|
| | | if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getMark())) {
|
| | | mark = "警惕!! " + userInfoExtra.getMark();
|
| | | }
|
| | |
|
| | | data.put("mark", mark);
|
| | | data.put("extract", extract);
|
| | | data.put("beforeMoney", beforeMoney);
|
| | | data.put("surplusTime", surplusTime);
|
| | |
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | } catch (ParseException e) {
|
| | | // TODO Auto-generated catch block
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | /**
|
| | | * 查询用户历史提现记录
|
| | | * |
| | | * @param callback
|
| | | * @param pageIndex
|
| | | * 页码
|
| | | * @param key
|
| | | * 用户id
|
| | | * @param request
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getByUidList")
|
| | | public void getByUidList(String callback, Integer pageIndex, Long uid, HttpServletRequest request,
|
| | | PrintWriter out) {
|
| | | try {
|
| | | if (uid == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户不存在"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (pageIndex == null)
|
| | | pageIndex = 1;
|
| | |
|
| | | int pageSize = Constant.PAGE_SIZE;
|
| | |
|
| | | List<ExtractAuditRecord> list = extractAuditRecordService.getByUidList(pageIndex, pageSize, uid);
|
| | | if (list == null || list.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无提现记录"));
|
| | | return;
|
| | | }
|
| | |
|
| | | for (ExtractAuditRecord record : list) {
|
| | |
|
| | | if (record.getExtraInfo() != null) {
|
| | | StringBuffer desc = new StringBuffer();
|
| | | desc.append("大于50元订单:" + record.getExtraInfo().getOrderCount50More() + "\n#");
|
| | | desc.append("维权订单数:" + record.getExtraInfo().getWeiQuanOrderCount() + "\n#");
|
| | | desc.append("维权订单退回金额:" + record.getExtraInfo().getWeiQuanOrderFanAmount() + "\n#");
|
| | | desc.append("180天安全订单数:" + record.getExtraInfo().getSafeOrderCount());
|
| | | record.setExtraInfoStr(desc.toString());
|
| | | }
|
| | | }
|
| | |
|
| | | int count = extractAuditRecordService.getByUidCount(uid);
|
| | | int totalPage = 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(list));
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | } catch (Exception e) {
|
| | | // TODO: handle exception
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 数量统计
|
| | | * |
| | | * @param callback
|
| | | * @param uid
|
| | | * 用户id
|
| | | * @param request
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "countByUid")
|
| | | public void countByUid(String callback, Long uid, HttpServletRequest request, PrintWriter out) {
|
| | |
|
| | | try {
|
| | |
|
| | | // 统计已领取金额 账户历史总收益
|
| | | BigDecimal receiveMoneys = hongBaoV2CountService.countMoneyByUidAndState(uid, HongBaoV2.STATE_YILINGQU);
|
| | | if (receiveMoneys == null) {
|
| | | receiveMoneys = new BigDecimal(0);
|
| | | }
|
| | |
|
| | | // 历史提现成功金额
|
| | | double successMoneys = extractCountService.countSuccessMoneysByUid(uid);
|
| | |
|
| | | // 历史提现总次数、成功次数、失败次数
|
| | | Map<String, Object> map = extractCountService.countRecordsByUid(uid);
|
| | |
|
| | | GsonBuilder gsonBuilder = new GsonBuilder();
|
| | | gsonBuilder.serializeNulls();
|
| | | Gson gson = gsonBuilder.create();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("map", gson.toJson(map));
|
| | | data.put("successMoneys", gson.toJson(successMoneys));
|
| | | data.put("receiveMoneys", gson.toJson(receiveMoneys));
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 校验用户资金是否异常
|
| | | * |
| | | * @param uid
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "checkMoney")
|
| | | public void checkMoney(String callback, String uid, PrintWriter out) {
|
| | |
|
| | | if (StringUtil.isNullOrEmpty(uid)) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("UID不能为空"));
|
| | | return;
|
| | | }
|
| | |
|
| | | try {
|
| | | extractService.checkExtract(Long.parseLong(uid));
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("资金正常"));
|
| | | } catch (ExtractException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 统计审核次数
|
| | | * |
| | | * @param callback
|
| | | * @param state
|
| | | * 审核状态:所有-3 通过-1 拒绝- 2
|
| | | * @param type
|
| | | * 统计类型 1-24小时 2-所有3
|
| | | * @param dateType
|
| | | * 类型 1日 2月 3年
|
| | | * @param year
|
| | | * 2018
|
| | | * @param startTime
|
| | | * 2018-12-01
|
| | | * @param endTime
|
| | | * 2018-12-01
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getAuditTotal")
|
| | | public void getAuditTotal(String callback, String stateArray, 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 && 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 {
|
| | | Object objectDate = null;
|
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
|
| | |
|
| | | Gson gson = new Gson();
|
| | | List<Integer> stateList = gson.fromJson(stateArray, new TypeToken<ArrayList<Integer>>() {
|
| | | }.getType());
|
| | |
|
| | | JSONArray line_list = new JSONArray();
|
| | | for (Integer state : stateList) {
|
| | | JSONObject innerList = new JSONObject();
|
| | | if (state == null || state == 3) {
|
| | | innerList.put("name", "总计");
|
| | | } else if (state == 1) {
|
| | | innerList.put("name", "通过数");
|
| | | } else if (state == 2) {
|
| | | innerList.put("name", "驳回数");
|
| | | }
|
| | |
|
| | | List<ChartTDO> list = extractAuditRecordService.countAuditTotal(state, dateType, year, startTime,
|
| | | endTime);
|
| | | if (dateType != 3) {
|
| | | innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
|
| | | } else {
|
| | | // 年视图
|
| | | Map<String, Object> map = AdminUtils.yearsDataFactory(list);
|
| | |
|
| | | if (objectDate == null) {
|
| | | objectDate = map.get("date");
|
| | | }
|
| | | innerList.put("data", gson.toJson(map.get("value")));
|
| | | }
|
| | | line_list.add(innerList);
|
| | | }
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | if (objectDate != null) {
|
| | | data.put("xAxis_list", gson.toJson(objectDate));
|
| | | } else {
|
| | | data.put("xAxis_list", gson.toJson(dateList));
|
| | | }
|
| | |
|
| | | data.put("line_list", line_list);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 统计提现申请总额
|
| | | * |
| | | * @param callback
|
| | | * @param type
|
| | | * 统计类型 1-24小时 2-所有
|
| | | * @param dateType
|
| | | * 类型 1日 2月 3
|
| | | * @param year
|
| | | * 2018
|
| | | * @param startTime
|
| | | * 2018-12-01
|
| | | * @param endTime
|
| | | * 2018-12-01
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getExtractApplyMoney")
|
| | | public void getExtractApplyMoney(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 && 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 {
|
| | |
|
| | | Object objectDate = null;
|
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
|
| | |
|
| | | Gson gson = new Gson();
|
| | | JSONObject innerList = new JSONObject();
|
| | | innerList.put("name", "总计");
|
| | |
|
| | | List<ChartTDO> list = extractAuditRecordService.countExtractApplyMoney(null, dateType, year, startTime,
|
| | | endTime);
|
| | |
|
| | | 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")));
|
| | | }
|
| | |
|
| | | JSONArray line_list = new JSONArray();
|
| | | 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 callback
|
| | | * @param state
|
| | | * 所有-空值或者不传 待审核-0 通过-1 拒绝- 2
|
| | | * @param type
|
| | | * 统计类型 1-24小时 2-所有
|
| | | * @param dateType
|
| | | * 类型 1日 2月 3年
|
| | | * @param year
|
| | | * 2018
|
| | | * @param startTime
|
| | | * 2018-12-01
|
| | | * @param endTime
|
| | | * 2018-12-01
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getExtractApplyNumber")
|
| | | public void getExtractApplyNumber(String callback, Integer state, 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 && 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 {
|
| | | Object objectDate = null;
|
| | | Gson gson = new Gson();
|
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
|
| | |
|
| | | JSONObject innerList = new JSONObject();
|
| | | innerList.put("name", "总计");
|
| | |
|
| | | List<ChartTDO> list = extractAuditRecordService.countExtractApplyNumber(null, dateType, year, startTime,
|
| | | endTime);
|
| | |
|
| | | 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")));
|
| | | }
|
| | |
|
| | | JSONArray line_list = new JSONArray();
|
| | | 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();
|
| | | }
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "downAutoExtractTxt")
|
| | | public void downAutoExtractTxt(String callback, HttpServletResponse response, PrintWriter out) {
|
| | | try {
|
| | | List<String> list = extractService.getAutoExtractOpenIds();
|
| | | if (list == null || list.size() <= 1) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无用户满足自动提现条件"));
|
| | | return;
|
| | | }
|
| | |
|
| | | String filepath = "自动提现OpenId " + java.lang.System.currentTimeMillis() + ".txt";
|
| | | response.reset();
|
| | | response.setContentType("application/octet-stream");
|
| | | String fileName = URLDecoder.decode(filepath, "utf-8");
|
| | | response.addHeader("Content-Disposition",
|
| | | "attachment;" + "filename=\"" + URLEncoder.encode(fileName, "utf-8") + "\"");
|
| | |
|
| | | StringBuilder sb = new StringBuilder();
|
| | | for (String t : list) {
|
| | | sb.append(t + "\r\n");
|
| | | }
|
| | |
|
| | | String opid_str = sb.toString();
|
| | | if (!StringUtil.isNullOrEmpty(opid_str) && opid_str.endsWith("\r\n")) {
|
| | | opid_str = opid_str.substring(0, opid_str.length() - 2);
|
| | | }
|
| | |
|
| | | OutputStream os = response.getOutputStream();
|
| | | byte[] byt = opid_str.getBytes();
|
| | | os.write(byt);
|
| | | os.flush();
|
| | | os.close();
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "uploadExcel", method = RequestMethod.POST)
|
| | | public void uploadExcel(@RequestParam("file") CommonsMultipartFile file, PrintWriter out) {
|
| | | if (file == null) {
|
| | | out.print(JsonUtil.loadFalseResult("上传文件不能为空!"));
|
| | | return;
|
| | | }
|
| | |
|
| | | try {
|
| | | List<RedPackRecord> list = CsvUtil.getCsvData(file, RedPackRecord.class);
|
| | | extractService.updateManualExtractRecord(list);
|
| | | out.print(JsonUtil.loadTrueResult("上传成功"));
|
| | | } catch (ExtractException e) {
|
| | | out.print(JsonUtil.loadFalseResult(e.getMsg()));
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | out.print(JsonUtil.loadFalseResult("上传失败"));
|
| | | }
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "preAutoUser")
|
| | | public void preAutoUser(String callback, Integer pageIndex, Integer pageSize, PrintWriter out) {
|
| | | try {
|
| | | List<UserInfo> list = extractService.preAutoUser();
|
| | | if (list == null || list.isEmpty()) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无用户满足自动提现条件"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (pageIndex == null || pageIndex < 1) {
|
| | | pageIndex = 1;
|
| | | }
|
| | |
|
| | | if (pageSize == null || pageSize < 1) {
|
| | | pageSize = Constant.PAGE_SIZE;
|
| | | }
|
| | |
|
| | | int count = list.size();
|
| | | int totalPage = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;
|
| | | PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
| | |
|
| | | List<UserInfo> listResult = null;
|
| | | if (pageIndex < totalPage) {
|
| | | int start = (pageIndex - 1) * pageSize;
|
| | | listResult = list.subList(start, start + pageSize);
|
| | | } else if (pageIndex == totalPage) {
|
| | | listResult = list.subList((pageIndex - 1) * pageSize, list.size());
|
| | | } else {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("没有更多了"));
|
| | | return;
|
| | | }
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("pe", pe);
|
| | | data.put("result_list", listResult);
|
| | | 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.OutputStream; |
| | | import java.io.PrintWriter; |
| | | import java.math.BigDecimal; |
| | | import java.net.URLDecoder; |
| | | import java.net.URLEncoder; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import com.yeshi.fanli.entity.SystemEnum; |
| | | import com.yeshi.fanli.entity.accept.AdminAcceptData; |
| | | import com.yeshi.fanli.entity.order.CommonOrder; |
| | | import com.yeshi.fanli.service.inter.order.CommonOrderService; |
| | | import com.yeshi.fanli.service.inter.user.UserInfoService; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.multipart.commons.CommonsMultipartFile; |
| | | import org.yeshi.utils.DateUtil; |
| | | import org.yeshi.utils.IPUtil; |
| | | import org.yeshi.utils.JsonUtil; |
| | | import org.yeshi.utils.entity.wx.RedPackRecord; |
| | | import org.yeshi.utils.wx.WXRedPackUtil; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | | import com.yeshi.fanli.entity.bus.user.Extract; |
| | | import com.yeshi.fanli.entity.bus.user.ExtractAuditRecord; |
| | | import com.yeshi.fanli.entity.bus.user.HongBaoV2; |
| | | import com.yeshi.fanli.entity.bus.user.UserInfo; |
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra; |
| | | import com.yeshi.fanli.entity.common.AdminUser; |
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum; |
| | | import com.yeshi.fanli.exception.ExtractException; |
| | | import com.yeshi.fanli.exception.NotExistObjectException; |
| | | import com.yeshi.fanli.exception.ObjectStateException; |
| | | import com.yeshi.fanli.log.LogHelper; |
| | | import com.yeshi.fanli.service.inter.config.ConfigService; |
| | | import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; |
| | | import com.yeshi.fanli.service.inter.count.UserInfoCountService; |
| | | import com.yeshi.fanli.service.inter.money.extract.ExtractAuditRecordService; |
| | | import com.yeshi.fanli.service.inter.money.extract.ExtractCountService; |
| | | import com.yeshi.fanli.service.inter.money.extract.ExtractService; |
| | | import com.yeshi.fanli.service.inter.order.CommonOrderCountService; |
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService; |
| | | import com.yeshi.common.entity.PageEntity; |
| | | import com.yeshi.fanli.util.Constant; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import org.yeshi.utils.TimeUtil; |
| | | |
| | | import net.sf.json.JSONObject; |
| | | |
| | | @Controller |
| | | @RequestMapping("admin/new/api/v1/extract") |
| | | public class ExtractAdminController { |
| | | |
| | | @Resource |
| | | private ExtractService extractService; |
| | | |
| | | @Resource |
| | | private ConfigService configService; |
| | | |
| | | @Resource |
| | | private UserInfoCountService userInfoCountService; |
| | | |
| | | @Resource |
| | | private ExtractCountService extractCountService; |
| | | |
| | | @Resource |
| | | private ExtractAuditRecordService extractAuditRecordService; |
| | | |
| | | @Resource |
| | | private HongBaoV2CountService hongBaoV2CountService; |
| | | |
| | | @Resource |
| | | private UserInfoExtraService userInfoExtraService; |
| | | |
| | | @Resource |
| | | private CommonOrderCountService commonOrderCountService; |
| | | |
| | | @Resource |
| | | private CommonOrderService commonOrderService; |
| | | |
| | | @Resource |
| | | private UserInfoService userInfoService; |
| | | |
| | | /** |
| | | * 方法说明: 通过提现请求 可jsonP方式 |
| | | * |
| | | * @param id |
| | | * @param code 验证码 |
| | | * @param out |
| | | * @param request |
| | | */ |
| | | @RequestMapping(value = "passExtractJP") |
| | | public void passExtractJP(AdminAcceptData acceptData, String callback, Long id, String code, PrintWriter out, HttpServletRequest request) { |
| | | |
| | | /* 检验是否登陆 */ |
| | | AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN); |
| | | if (admin == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆。")); |
| | | return; |
| | | } |
| | | |
| | | /* 检验是否通过验证 */ |
| | | String codeType = (String) request.getSession().getAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT); |
| | | if (!"1".equals(codeType)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(3, "邮箱验证未通过")); |
| | | return; |
| | | } |
| | | |
| | | /* 允许提现 操作 */ |
| | | Integer integer = extractService.passExtract(id, admin); |
| | | |
| | | // 日志记录 |
| | | if (integer == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("已通过")); |
| | | LogHelper |
| | | .userInfo("[ip:" + IPUtil.getRemotIP(request) + "]" + admin.getName() + "通过了[id=" + id + "]的提现申请!"); |
| | | } else if (integer == 1) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该提现记录已不存在,请刷新")); |
| | | LogHelper.userInfo( |
| | | "[ip:" + IPUtil.getRemotIP(request) + "][管理员:" + admin.getName() + "] 同意提现id=" + id + "的提现申请不存在"); |
| | | } else { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该用户已被处理,请刷新")); |
| | | LogHelper.userInfo( |
| | | "[ip:" + IPUtil.getRemotIP(request) + "][管理员:" + admin.getName() + "] 同意提现id=" + id + "的提现申请状态异常"); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 方法说明: 拒绝提现请求jsonP |
| | | * |
| | | * @param id |
| | | * @param reason |
| | | * @param out |
| | | * @param request |
| | | * @author mawurui createTime 2018年3月14日 下午3:15:55 |
| | | */ |
| | | @RequestMapping(value = "rejectExtractJP") |
| | | public void rejectExtractJP(AdminAcceptData acceptData, String callback, Long id, String code, String reason, PrintWriter out, |
| | | HttpServletRequest request) { |
| | | /* 检验是否登陆 */ |
| | | AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN); |
| | | if (admin == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆")); |
| | | return; |
| | | } |
| | | |
| | | /* 检验是否通过验证 */ |
| | | String codeType = (String) request.getSession().getAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT); |
| | | if (!"1".equals(codeType)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(3, "邮箱验证未通过")); |
| | | return; |
| | | } |
| | | |
| | | try { |
| | | // 编码转换 |
| | | reason = URLDecoder.decode(reason, "UTF-8"); |
| | | } catch (Exception e1) { |
| | | e1.printStackTrace(); |
| | | } |
| | | |
| | | try { |
| | | |
| | | extractService.rejectExtract(id, reason, admin);// 提现失败 |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("拒绝成功")); |
| | | |
| | | LogHelper.userInfo("[ip:" + IPUtil.getRemotIP(request) + "]" + admin.getName() + "拒绝了[id=" + id |
| | | + "]的提现申请!拒绝原因是" + reason); |
| | | |
| | | } catch (ObjectStateException e) { |
| | | LogHelper.userInfo( |
| | | "[ip:" + IPUtil.getRemotIP(request) + "][管理员:" + admin.getName() + "] 拒绝提现id=" + id + "的提现申请状态异常!"); // |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMessage())); |
| | | |
| | | } catch (NotExistObjectException e) { |
| | | LogHelper.userInfo( |
| | | "[ip:" + IPUtil.getRemotIP(request) + "][管理员:" + admin.getName() + "] 拒绝提现id=" + id + "的提现申请不存在!"); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMessage())); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 获取今日提现记录:今日总额、总次数、成功次数、失败次数 获取系统提现记录:总额、总次数 |
| | | * |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "countExtract") |
| | | public void countExtract(AdminAcceptData acceptData, String callback, PrintWriter out) { |
| | | |
| | | Map<String, Object> totalcount = extractCountService.getTodayCount(); |
| | | |
| | | // 今日提现成功金额 |
| | | BigDecimal todayextractMoney = extractCountService.getTodayTotalSuccessMoney(); |
| | | |
| | | // 当前用户余额总计:所有用户总余额 |
| | | BigDecimal amountMoney = userInfoCountService.countAllMoney(null); |
| | | |
| | | // 可提现金额限制 |
| | | String minMoney = configService.getValue(ConfigKeyEnum.extractMoneyMin.getKey(), acceptData.getSystem()); |
| | | if (minMoney == null) { |
| | | minMoney = "0"; |
| | | } |
| | | // 当前可提现金额总计: 超过最低提现金额---计入统计 |
| | | BigDecimal extractApply = userInfoCountService.countAllMoney(Double.parseDouble(minMoney)); |
| | | |
| | | // 累计已提现金额总计:已提现成功的总额/ 次数 |
| | | Map<String, Object> resultData = extractCountService.countTotalSuccess(); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("todayCount", totalcount); |
| | | data.put("todayextractMoney", todayextractMoney); |
| | | |
| | | data.put("amountMoney", amountMoney); // 所有用户总余额 |
| | | data.put("extractApply", extractApply); // 可提现金额总计 |
| | | data.put("extractNumber", resultData.get("totalamount")); // 提现成功次数 |
| | | data.put("extractMoney", resultData.get("totalmoney")); // 提现成功金额 |
| | | |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data))); |
| | | } |
| | | |
| | | /** |
| | | * 查询所有审核记录信息 |
| | | * |
| | | * @param callback |
| | | * @param pageIndex |
| | | * @param key |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getFinishRecordList") |
| | | public void getFinishRecordList(AdminAcceptData acceptData, String callback, Integer pageIndex, String key, String startTime, String endTime, |
| | | PrintWriter out) { |
| | | |
| | | try { |
| | | |
| | | // 起始时间 为空设置默认值: |
| | | if (StringUtil.isNullOrEmpty(startTime)) { |
| | | startTime = "1970-01-01"; |
| | | } |
| | | |
| | | // 结束时间 为空设置默认值当前日期 |
| | | if (StringUtil.isNullOrEmpty(endTime)) { |
| | | Date curDate = new Date(); |
| | | endTime = TimeUtil.getSimpleDate(curDate); |
| | | } |
| | | |
| | | 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; |
| | | |
| | | int pageSize = Constant.PAGE_SIZE; |
| | | |
| | | List<ExtractAuditRecord> auditList = extractAuditRecordService.getList(pageIndex, pageSize, key, startTime, |
| | | endTime); |
| | | |
| | | int count = extractAuditRecordService.getCount(key, startTime, endTime); |
| | | int totalPage = count % pageSize == 0 ? count / pageSize : count / pageSize + 1; |
| | | PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); |
| | | |
| | | if (auditList == null || auditList.size() == 0) { |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("暂无数据"))); |
| | | } else { |
| | | |
| | | for (ExtractAuditRecord extractAuditRecord : auditList) { |
| | | int countByUid = 0; |
| | | int countCancel = 0; |
| | | Extract extract = extractAuditRecord.getExtract(); |
| | | if (extract != null) { |
| | | UserInfo userInfo = extract.getUserInfo(); |
| | | Long id = userInfo.getId(); |
| | | countByUid = hongBaoV2CountService.countNumberByUid(id); |
| | | countCancel = hongBaoV2CountService.countNumberByUidAndState(id, HongBaoV2.STATE_SHIXIAO); |
| | | } |
| | | extractAuditRecord.setCancelOrderNum((long) countCancel); |
| | | extractAuditRecord.setOrderNum((long) countByUid); |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | GsonBuilder gsonBuilder = new GsonBuilder(); |
| | | gsonBuilder.serializeNulls(); // 重点 |
| | | Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create(); |
| | | |
| | | data.put("pe", pe); |
| | | data.put("auditList", gson.toJson(auditList)); |
| | | |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data))); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("操作异常"))); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 查询客服个人提现审批记录信息 |
| | | * |
| | | * @param callback |
| | | * @param pageIndex 页码 |
| | | * @param key 筛选条件 |
| | | * @param timeSlot 查询时间段 |
| | | * @param state 查看审核状态 |
| | | * @param out |
| | | * @param request |
| | | */ |
| | | @RequestMapping(value = "getMyAuditedList") |
| | | public void getMyAuditedList(AdminAcceptData acceptData, String callback, Integer pageIndex, String key, String timeSlot, Integer state, |
| | | PrintWriter out, HttpServletRequest request) { |
| | | |
| | | try { |
| | | |
| | | // AdminUser admin = (AdminUser) |
| | | // request.getSession().getAttribute(Constant.SESSION_ADMIN); |
| | | // if (admin == null) { |
| | | // JsonUtil.printMode(out, callback, |
| | | // JsonUtil.loadFalseResult("当前账户失效,请重新登陆")); |
| | | // return; |
| | | // } |
| | | |
| | | int pageSize = Constant.PAGE_SIZE; |
| | | Integer days = null; |
| | | if ("1".equals(timeSlot)) { |
| | | days = 0; // 今日 |
| | | } else if ("2".equals(timeSlot)) { |
| | | days = 3; // 前3天 |
| | | } else if ("3".equals(timeSlot)) { |
| | | days = 7; // 前7天 |
| | | } |
| | | |
| | | if (state != null && state != 0 && state != 1 && state != 2) { |
| | | state = null; |
| | | } |
| | | |
| | | // 查询当前人员的审核列表信息 |
| | | // Long adminId = admin.getId(); |
| | | // auditList = |
| | | // extractAuditRecordService.getMyAuditedTimeSlotList(pageIndex, |
| | | // pageSize, key,state, adminId, days); |
| | | // count = extractAuditRecordService.getMyAuditedTimeSlotCount(key, |
| | | // state, adminId,days); |
| | | |
| | | // 暂不区分账号,默认所有 |
| | | List<ExtractAuditRecord> auditList = extractAuditRecordService.getMyAuditedTimeSlotList(pageIndex, pageSize, |
| | | key, state, null, days); |
| | | if (auditList == null || auditList.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据")); |
| | | return; |
| | | } |
| | | |
| | | for (ExtractAuditRecord record : auditList) { |
| | | AdminUser adminUser = record.getAdminUser(); |
| | | if (adminUser == null) { |
| | | record.setAdminUser(new AdminUser()); |
| | | } |
| | | // 查询用户备注信息 |
| | | UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(record.getExtract().getUserInfo().getId()); |
| | | if (extra != null) { |
| | | record.getExtract().getUserInfo().setStateDesc(extra.getMark()); |
| | | } |
| | | |
| | | int warnLevel = 0; |
| | | Extract extract = record.getExtract(); |
| | | if (extract != null) { |
| | | Integer extractState = extract.getState(); |
| | | if (extractState != null && extractState == Extract.STATE_NOT_PROCESS) { |
| | | UserInfo userInfo = extract.getUserInfo(); |
| | | if (userInfo != null) { |
| | | BigDecimal countTodayMoney = extractService.sumTodayApplyMoney(userInfo.getId(), |
| | | TimeUtil.getGernalTime(extract.getExtractTime())); |
| | | if (countTodayMoney.compareTo(new BigDecimal(100)) > 0) { |
| | | warnLevel = 1; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (record.getExtraInfo() != null) { |
| | | StringBuffer desc = new StringBuffer(); |
| | | if (System.currentTimeMillis() > TimeUtil.convertToTimeTemp("2019-06-21", "yyyy-MM-dd")) { |
| | | desc.append("大笔订单数:" + record.getExtraInfo().getOrderCount50More() + "\n#"); |
| | | desc.append("维权订单数:" + record.getExtraInfo().getWeiQuanOrderCount() + "\n#"); |
| | | desc.append("维权订单佣金:" + record.getExtraInfo().getWeiQuanOrderFanAmount() + "\n#"); |
| | | if (record.getExtraInfo().getOrderCount50More() > 0 |
| | | || record.getExtraInfo().getWeiQuanOrderCount() > 0 |
| | | || record.getExtraInfo().getWeiQuanOrderFanAmount().compareTo(new BigDecimal(10)) >= 0) |
| | | warnLevel = 2; |
| | | } else { |
| | | if (record.getExtraInfo().getOrderCount50More() > 0 |
| | | || record.getExtraInfo().getWeiQuanOrderCount() > 0 |
| | | || record.getExtraInfo().getWeiQuanOrderFanAmount().compareTo(new BigDecimal(0)) > 0) |
| | | warnLevel = 2; |
| | | desc.append("大于50元订单:" + record.getExtraInfo().getOrderCount50More() + "\n#"); |
| | | desc.append("维权订单数:" + record.getExtraInfo().getWeiQuanOrderCount() + "\n#"); |
| | | desc.append("维权订单退回金额:" + record.getExtraInfo().getWeiQuanOrderFanAmount() + "\n#"); |
| | | desc.append("180天安全订单数:" + record.getExtraInfo().getSafeOrderCount()); |
| | | } |
| | | |
| | | if (record.getExtraInfo().getLess10OrderCount() != null && record.getExtraInfo().getLess10OrderCount() > 10) { |
| | | desc.append("刷单嫌疑\n#"); |
| | | } |
| | | |
| | | record.setExtraInfoStr(desc.toString()); |
| | | } |
| | | |
| | | |
| | | // if (warnLevel == 0) { |
| | | // // 查询同店铺商品,同商品订单超过一定数量的 |
| | | // List<Integer> typeList = new ArrayList<>(); |
| | | // typeList.add(HongBaoV2.TYPE_ZIGOU); |
| | | // long sameGoodsOrderCount = |
| | | // commonOrderCountService.countSameGoodsOrderByUidAndHongBaoType(typeList, |
| | | // record.getExtract().getUserInfo().getId(), |
| | | // Integer.parseInt(configService.get(ConfigKeyEnum.adminMinSameGoodsOrderCount.getKey()))); |
| | | // long sameShopOrderCount = |
| | | // commonOrderCountService.countSameShopOrderByUidAndHongBaoType(typeList, |
| | | // record.getExtract().getUserInfo().getId(), |
| | | // Integer.parseInt(configService.get(ConfigKeyEnum.adminMinSameShopOrderCount.getKey()))); |
| | | // if (sameGoodsOrderCount > 0 || sameShopOrderCount > 0) { |
| | | // warnLevel = 3; |
| | | // record.setExtraInfoStr( |
| | | // String.format("同店铺:%s 同商品:%s", sameShopOrderCount, |
| | | // sameGoodsOrderCount)); |
| | | // } |
| | | // } |
| | | |
| | | record.setWarnLevel(warnLevel); |
| | | } |
| | | |
| | | int count = extractAuditRecordService.getMyAuditedTimeSlotCount(key, state, null, days); |
| | | int totalPage = count % pageSize == 0 ? count / pageSize : count / pageSize + 1; |
| | | PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); |
| | | |
| | | GsonBuilder gsonBuilder = new GsonBuilder(); |
| | | gsonBuilder.serializeNulls(); |
| | | gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | Gson gson = gsonBuilder.create(); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("pe", pe); |
| | | data.put("list", gson.toJson(auditList)); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | out.print(JsonUtil.loadFalseResult(e.getMessage())); |
| | | } |
| | | } |
| | | |
| | | @RequestMapping(value = "getMyAuditedDanger") |
| | | public void getMyAuditedDanger(AdminAcceptData acceptData, String callback, Long uid, PrintWriter out) { |
| | | if (uid == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请登录")); |
| | | return; |
| | | } |
| | | SystemEnum system = userInfoService.getUserSystem(uid); |
| | | acceptData.setSystem(system); |
| | | |
| | | |
| | | // 查询同店铺商品,同商品订单超过一定数量的 |
| | | List<Integer> typeList = new ArrayList<>(); |
| | | typeList.add(HongBaoV2.TYPE_ZIGOU); |
| | | |
| | | List<Long> goodsIds = commonOrderCountService.listSameGoodsIdByUidAndHongBaoType(typeList, uid, |
| | | Integer.parseInt(configService.getValue(ConfigKeyEnum.adminMinSameGoodsOrderCount.getKey(), acceptData.getSystem()))); |
| | | int sameGoodsDangerCount = 0; |
| | | if (goodsIds.size() > 0) { |
| | | for (int i = 0; i < goodsIds.size(); i++) { |
| | | long goodsId = goodsIds.get(i); |
| | | Date minDate = new Date(System.currentTimeMillis() - 1000 * 60 * 60L * 24 * 365L); |
| | | List<CommonOrder> commonOrdersList = commonOrderService.listByGoodsIdAndUidAndMinThirdCreateTime(goodsId, uid, minDate); |
| | | Map<String, Date> cmap = new HashMap<>(); |
| | | if (commonOrdersList != null) |
| | | for (CommonOrder co : commonOrdersList) { |
| | | if (co.getState() == CommonOrder.STATE_FK || co.getState() == CommonOrder.STATE_JS || co.getState() == CommonOrder.STATE_WQ) |
| | | cmap.put(co.getOrderNo(), co.getThirdCreateTime()); |
| | | } |
| | | List<Date> dateList = new ArrayList<>(); |
| | | for (Iterator<String> its = cmap.keySet().iterator(); its.hasNext(); ) { |
| | | String orderNo = its.next(); |
| | | dateList.add(cmap.get(orderNo)); |
| | | } |
| | | Collections.sort(dateList); |
| | | Date lastDate = null; |
| | | |
| | | for (Date date : dateList) { |
| | | if (lastDate != null) { |
| | | if (Math.abs(date.getTime() - lastDate.getTime()) < 1000 * 60 * 60 * 24L * 15) { |
| | | sameGoodsDangerCount++; |
| | | break; |
| | | } |
| | | } else { |
| | | lastDate = date; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | long sameShopOrderCount = commonOrderCountService.countSameShopOrderByUidAndHongBaoType(typeList, uid, |
| | | Integer.parseInt(configService.getValue(ConfigKeyEnum.adminMinSameShopOrderCount.getKey(), acceptData.getSystem()))); |
| | | if (sameGoodsDangerCount>0 || sameShopOrderCount > 0) { |
| | | String text = (String.format("同店铺:%s 同商品:%s", sameShopOrderCount, sameGoodsDangerCount)); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(text)); |
| | | return; |
| | | } |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("店铺/商品无异常")); |
| | | } |
| | | |
| | | /** |
| | | * 获取今日提现记录:今日总额、总次数、成功次数、失败次数 获取系统提现记录:总额、总次数 |
| | | * |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getMyAuditedCount") |
| | | public void getMyAuditedCount(AdminAcceptData acceptData, String callback, HttpServletRequest request, PrintWriter out) { |
| | | |
| | | AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN); |
| | | |
| | | if (admin == null) { |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆。"))); |
| | | } else { |
| | | Long adminId = admin.getId(); |
| | | |
| | | int taskToday = extractCountService.countTodayApply(); |
| | | // int countTodayComplete = extractService.countTodayComplete(); |
| | | |
| | | // 今日累计处理数据 |
| | | int countToday = extractAuditRecordService.getMyAuditedCountToday(adminId); |
| | | // 本周累计处理数据 |
| | | int countWeek = extractAuditRecordService.getMyAuditedCountWeek(adminId); |
| | | // 本月累计处理数据 |
| | | int countMonth = extractAuditRecordService.getMyAuditedCountMonth(adminId); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("adminUser", admin); |
| | | data.put("taskToday", taskToday); |
| | | data.put("countToday", countToday); |
| | | data.put("countWeek", countWeek); |
| | | data.put("countMonth", countMonth); |
| | | |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data))); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 客服任务页面展示数据:传入提现申请id 则显示当前申请,若无id则显示客服任务下第一个申请数据 |
| | | * |
| | | * @param callback |
| | | * @param extractId 提现id |
| | | * @param request |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getIaskInfo") |
| | | public void getIaskInfo(AdminAcceptData acceptData, String callback, Long extractId, HttpServletRequest request, PrintWriter out) { |
| | | try { |
| | | |
| | | String surplusTime = ""; |
| | | JSONObject data = new JSONObject(); |
| | | Extract extract = new Extract(); |
| | | AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN); |
| | | if (admin == null) { |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆。"))); |
| | | return; |
| | | } |
| | | |
| | | if (extractId != null) { |
| | | /* 传入提现申请id 查询前客服任务数据 */ |
| | | |
| | | extract = extractService.selectByPrimaryKey(extractId); |
| | | if (extract == null) { |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("当前申请已不存在"))); |
| | | return; |
| | | } |
| | | |
| | | // 当前任务指定为该账户处理 |
| | | /* |
| | | * extract.setAdminId(admin.getId()); |
| | | * extractService.updateByPrimaryKeySelective(extract); |
| | | */ |
| | | |
| | | BigDecimal beforeMoney = null; |
| | | List<ExtractAuditRecord> records = extractAuditRecordService.getbyExtractId(extract.getId()); |
| | | if (records != null && records.size() > 0) { |
| | | ExtractAuditRecord extractAuditRecord = records.get(0); |
| | | if (extractAuditRecord != null) { |
| | | beforeMoney = extractAuditRecord.getBeforeMoney(); |
| | | } |
| | | } |
| | | |
| | | Long extractTime = extract.getExtractTime(); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Date date = new Date(extractTime); |
| | | Calendar c = Calendar.getInstance(); |
| | | c.setTime(date); |
| | | c.add(Calendar.DAY_OF_MONTH, 3);// 今天+3天 |
| | | Date todayTime = new Date(); |
| | | String formattodayTime = sdf.format(todayTime); |
| | | String formatTime = sdf.format(c.getTime()); |
| | | |
| | | long diff = sdf.parse(formatTime).getTime() - sdf.parse(formattodayTime).getTime(); |
| | | if (diff <= 0) { |
| | | surplusTime = "已超时"; |
| | | } else { |
| | | surplusTime = DateUtil.dateDiff(formattodayTime, formatTime); |
| | | } |
| | | |
| | | String mark = ""; |
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(extract.getUserInfo().getId()); |
| | | if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getMark())) { |
| | | mark = "警惕!! " + userInfoExtra.getMark(); |
| | | } |
| | | |
| | | Integer countOrder = commonOrderCountService.countOderByUidAndLess10(extract.getUserInfo().getId()); |
| | | if (countOrder != null && countOrder >= 10) { |
| | | if (StringUtil.isNullOrEmpty(mark)) { |
| | | mark = "刷单预警!!"; |
| | | } else { |
| | | mark = mark + " 刷单预警!!"; |
| | | } |
| | | } |
| | | data.put("mark", mark); |
| | | data.put("extract", extract); |
| | | data.put("beforeMoney", beforeMoney); |
| | | data.put("surplusTime", surplusTime); |
| | | |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data))); |
| | | |
| | | } else { |
| | | /* 未传入提现申请id 查询当前客服任务 中的第一个 数据 */ |
| | | |
| | | boolean newTask = false; |
| | | |
| | | // 查询之前未处理完的任务 |
| | | extract = extractService.getMyTaskInfo(admin.getId()); |
| | | |
| | | if (extract == null) { |
| | | // 新任务 |
| | | extract = extractService.getNewTaskInfo(); |
| | | if (extract != null) |
| | | newTask = true; |
| | | } |
| | | |
| | | if (extract == null) { |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("暂无用户提现申请"))); |
| | | } else { |
| | | |
| | | if (newTask) { |
| | | // 当前任务指定为该账户处理 |
| | | /* |
| | | * extract.setAdminId(admin.getId()); |
| | | * |
| | | * extractService.updateByPrimaryKeySelective(extract); |
| | | */ |
| | | } |
| | | |
| | | BigDecimal beforeMoney = null; |
| | | |
| | | List<ExtractAuditRecord> records = extractAuditRecordService.getbyExtractId(extract.getId()); |
| | | if (records != null && records.size() > 0) { |
| | | ExtractAuditRecord extractAuditRecord = records.get(0); |
| | | if (extractAuditRecord != null) { |
| | | beforeMoney = extractAuditRecord.getBeforeMoney(); |
| | | } |
| | | } |
| | | |
| | | Long extractTime = extract.getExtractTime(); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Date date = new Date(extractTime); |
| | | |
| | | Calendar c = Calendar.getInstance(); |
| | | c.setTime(date); |
| | | c.add(Calendar.DAY_OF_MONTH, 3);// 今天+3天 |
| | | Date todayTime = new Date(); |
| | | |
| | | String formattodayTime = sdf.format(todayTime); |
| | | String formatTime = sdf.format(c.getTime()); |
| | | |
| | | long diff = sdf.parse(formatTime).getTime() - sdf.parse(formattodayTime).getTime(); |
| | | if (diff <= 0) { |
| | | surplusTime = "已超时"; |
| | | } else { |
| | | surplusTime = DateUtil.dateDiff(formattodayTime, formatTime); |
| | | } |
| | | |
| | | String mark = ""; |
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(extract.getUserInfo().getId()); |
| | | if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getMark())) { |
| | | mark = "警惕!! " + userInfoExtra.getMark(); |
| | | } |
| | | |
| | | Integer countOrder = commonOrderCountService.countOderByUidAndLess10(extract.getUserInfo().getId()); |
| | | if (countOrder != null && countOrder >= 10) { |
| | | if (StringUtil.isNullOrEmpty(mark)) { |
| | | mark = "刷单预警!!"; |
| | | } else { |
| | | mark = mark + " 刷单预警!!"; |
| | | } |
| | | } |
| | | |
| | | data.put("mark", mark); |
| | | data.put("extract", extract); |
| | | data.put("beforeMoney", beforeMoney); |
| | | data.put("surplusTime", surplusTime); |
| | | |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data))); |
| | | } |
| | | |
| | | } |
| | | |
| | | } catch (ParseException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 查询用户历史提现记录 |
| | | * |
| | | * @param callback |
| | | * @param pageIndex 页码 |
| | | * 用户id |
| | | * @param request |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getByUidList") |
| | | public void getByUidList(AdminAcceptData acceptData, String callback, Integer pageIndex, Long uid, HttpServletRequest request, |
| | | PrintWriter out) { |
| | | try { |
| | | if (uid == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户不存在")); |
| | | return; |
| | | } |
| | | |
| | | if (pageIndex == null) |
| | | pageIndex = 1; |
| | | |
| | | int pageSize = Constant.PAGE_SIZE; |
| | | |
| | | List<ExtractAuditRecord> list = extractAuditRecordService.getByUidList(pageIndex, pageSize, uid); |
| | | if (list == null || list.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无提现记录")); |
| | | return; |
| | | } |
| | | |
| | | for (ExtractAuditRecord record : list) { |
| | | |
| | | if (record.getExtraInfo() != null) { |
| | | StringBuffer desc = new StringBuffer(); |
| | | desc.append("大于50元订单:" + record.getExtraInfo().getOrderCount50More() + "\n#"); |
| | | desc.append("维权订单数:" + record.getExtraInfo().getWeiQuanOrderCount() + "\n#"); |
| | | desc.append("维权订单退回金额:" + record.getExtraInfo().getWeiQuanOrderFanAmount() + "\n#"); |
| | | desc.append("180天安全订单数:" + record.getExtraInfo().getSafeOrderCount()); |
| | | record.setExtraInfoStr(desc.toString()); |
| | | } |
| | | } |
| | | |
| | | int count = extractAuditRecordService.getByUidCount(uid); |
| | | int totalPage = 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(list)); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | } catch (Exception e) { |
| | | // TODO: handle exception |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 数量统计 |
| | | * |
| | | * @param callback |
| | | * @param uid 用户id |
| | | * @param request |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "countByUid") |
| | | public void countByUid(AdminAcceptData acceptData, String callback, Long uid, HttpServletRequest request, PrintWriter out) { |
| | | |
| | | try { |
| | | |
| | | // 统计已领取金额 账户历史总收益 |
| | | BigDecimal receiveMoneys = hongBaoV2CountService.countMoneyByUidAndState(uid, HongBaoV2.STATE_YILINGQU); |
| | | if (receiveMoneys == null) { |
| | | receiveMoneys = new BigDecimal(0); |
| | | } |
| | | |
| | | // 历史提现成功金额 |
| | | double successMoneys = extractCountService.countSuccessMoneysByUid(uid); |
| | | |
| | | // 历史提现总次数、成功次数、失败次数 |
| | | Map<String, Object> map = extractCountService.countRecordsByUid(uid); |
| | | |
| | | GsonBuilder gsonBuilder = new GsonBuilder(); |
| | | gsonBuilder.serializeNulls(); |
| | | Gson gson = gsonBuilder.create(); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("map", gson.toJson(map)); |
| | | data.put("successMoneys", gson.toJson(successMoneys)); |
| | | data.put("receiveMoneys", gson.toJson(receiveMoneys)); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 校验用户资金是否异常 |
| | | * |
| | | * @param uid |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "checkMoney") |
| | | public void checkMoney(AdminAcceptData acceptData, String callback, String uid, PrintWriter out) { |
| | | |
| | | if (StringUtil.isNullOrEmpty(uid)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("UID不能为空")); |
| | | return; |
| | | } |
| | | |
| | | try { |
| | | extractService.checkExtract(Long.parseLong(uid)); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("资金正常")); |
| | | } catch (ExtractException e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg())); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 下载提现红包Openid |
| | | * |
| | | * @param callback |
| | | * @param response |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "downAutoExtractTxt") |
| | | public void downAutoExtractTxt(AdminAcceptData acceptData, String callback, HttpServletResponse response, PrintWriter out) { |
| | | try { |
| | | List<String> list = extractService.getAutoExtractOpenIds(); |
| | | if (list == null || list.size() <= 1) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无用户满足自动提现条件")); |
| | | return; |
| | | } |
| | | |
| | | String filepath = "自动提现OpenId " + java.lang.System.currentTimeMillis() + ".txt"; |
| | | response.reset(); |
| | | response.setContentType("application/octet-stream"); |
| | | String fileName = URLDecoder.decode(filepath, "utf-8"); |
| | | response.addHeader("Content-Disposition", |
| | | "attachment;" + "filename=\"" + URLEncoder.encode(fileName, "utf-8") + "\""); |
| | | |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (String t : list) { |
| | | sb.append(t + "\r\n"); |
| | | } |
| | | |
| | | String opid_str = sb.toString(); |
| | | if (!StringUtil.isNullOrEmpty(opid_str) && opid_str.endsWith("\r\n")) { |
| | | opid_str = opid_str.substring(0, opid_str.length() - 2); |
| | | } |
| | | |
| | | OutputStream os = response.getOutputStream(); |
| | | byte[] byt = opid_str.getBytes(); |
| | | os.write(byt); |
| | | os.flush(); |
| | | os.close(); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 上传提现红包Excel |
| | | * |
| | | * @param file |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "uploadExcel", method = RequestMethod.POST) |
| | | public void uploadExcel(AdminAcceptData acceptData, @RequestParam("file") CommonsMultipartFile file, PrintWriter out) { |
| | | if (file == null) { |
| | | out.print(JsonUtil.loadFalseResult("上传文件不能为空!")); |
| | | return; |
| | | } |
| | | |
| | | try { |
| | | List<RedPackRecord> list = WXRedPackUtil.readCsv(file.getInputStream()); |
| | | extractService.updateManualExtractRecord(list); |
| | | out.print(JsonUtil.loadTrueResult("上传成功")); |
| | | } catch (ExtractException e) { |
| | | out.print(JsonUtil.loadFalseResult(e.getMsg())); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | out.print(JsonUtil.loadFalseResult("上传失败")); |
| | | } |
| | | } |
| | | |
| | | |
| | | public static String getValue(String[] item, int index) { |
| | | if (item.length > index) { |
| | | String value = item[index]; |
| | | return value; |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | /** |
| | | * 预览红包发生人 |
| | | * |
| | | * @param callback |
| | | * @param pageIndex |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "preAutoUser") |
| | | public void preAutoUser(AdminAcceptData acceptData, String callback, Integer pageIndex, PrintWriter out) { |
| | | try { |
| | | List<UserInfo> list = extractService.preAutoUser(); |
| | | if (list == null || list.isEmpty()) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无用户满足自动提现条件")); |
| | | return; |
| | | } |
| | | |
| | | if (pageIndex == null || pageIndex < 1) { |
| | | pageIndex = 1; |
| | | } |
| | | |
| | | Integer pageSize = 100; |
| | | if (pageSize == null || pageSize < 1) { |
| | | pageSize = Constant.PAGE_SIZE; |
| | | } |
| | | |
| | | int count = list.size(); |
| | | int totalPage = count % pageSize == 0 ? count / pageSize : count / pageSize + 1; |
| | | PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); |
| | | |
| | | List<UserInfo> listResult = null; |
| | | if (pageIndex < totalPage) { |
| | | int start = (pageIndex - 1) * pageSize; |
| | | listResult = list.subList(start, start + pageSize); |
| | | } else if (pageIndex == totalPage) { |
| | | listResult = list.subList((pageIndex - 1) * pageSize, list.size()); |
| | | } else { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("没有更多了")); |
| | | return; |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("pe", pe); |
| | | data.put("result_list", listResult); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | |