| | |
| | | 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.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.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.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.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.MoneyBigDecimalUtil;
|
| | | 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(ConfigKeyEnum.extractMoneyMin.getKey());
|
| | | 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() > 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());
|
| | | }
|
| | | 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(String callback, Long uid, PrintWriter out) {
|
| | | if (uid == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请登录"));
|
| | | return;
|
| | | }
|
| | | // 查询同店铺商品,同商品订单超过一定数量的
|
| | | List<Integer> typeList = new ArrayList<>();
|
| | | typeList.add(HongBaoV2.TYPE_ZIGOU);
|
| | | long sameGoodsOrderCount = commonOrderCountService.countSameGoodsOrderByUidAndHongBaoType(typeList, uid,
|
| | | Integer.parseInt(configService.get(ConfigKeyEnum.adminMinSameGoodsOrderCount.getKey())));
|
| | | long sameShopOrderCount = commonOrderCountService.countSameShopOrderByUidAndHongBaoType(typeList, uid,
|
| | | Integer.parseInt(configService.get(ConfigKeyEnum.adminMinSameShopOrderCount.getKey())));
|
| | | if (sameGoodsOrderCount > 0 || sameShopOrderCount > 0) {
|
| | | String text = (String.format("同店铺:%s 同商品:%s", sameShopOrderCount, sameGoodsOrderCount));
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(text));
|
| | | return;
|
| | | }
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("店铺/商品无异常"));
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取今日提现记录:今日总额、总次数、成功次数、失败次数 获取系统提现记录:总额、总次数
|
| | | * |
| | | * @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) {
|
| | | 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);
|
| | | |
| | | String substring = stateArray.substring(1, stateArray.length()-1);
|
| | | List<Integer> channelList = null;
|
| | | if (stateArray != null && stateArray.trim().length() > 4) {
|
| | | channelList = gson.fromJson(stateArray, new TypeToken<ArrayList<Integer>>() {}.getType());
|
| | | }
|
| | | |
| | | JSONArray line_list = new JSONArray();
|
| | | |
| | | if (channelList != null && channelList.size() > 0) {
|
| | | for (Integer state : channelList) {
|
| | | List<Object> list = getAuditData(dateList, dateType, beginDate, endDate, state);
|
| | | String name = "";
|
| | | if (state == 1) {
|
| | | name = "通过";
|
| | | } else if (state == 2) {
|
| | | name = "驳回";
|
| | | }
|
| | | JSONObject innerList = new JSONObject();
|
| | | innerList.put("name", name);
|
| | | innerList.put("data", gson.toJson(list));
|
| | | line_list.add(innerList);
|
| | | }
|
| | | } else {
|
| | | List<Object> list = getAuditData(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> getAuditData(List<String> dateList, Integer dateType, Date beginDate, Date endDate, |
| | | Integer state) throws Exception{
|
| | | List<Object> list = new ArrayList<>();
|
| | | List<CountUserInfo> listHistory = extractAuditRecordService.getAuditCount(beginDate, endDate, state);
|
| | | 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 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) {
|
| | | 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> list = new ArrayList<>();
|
| | | List<CountUserInfo> listHistory = extractAuditRecordService.getApplyMoney(beginDate, endDate);
|
| | | for (String date: dateList) {
|
| | | BigDecimal money = new BigDecimal("0");
|
| | | if (listHistory == null) {
|
| | | list.add(money.toString());
|
| | | continue;
|
| | | }
|
| | | |
| | | for (CountUserInfo history: listHistory) {
|
| | | if (dateType == 1) {
|
| | | String gernalTime = TimeUtil.getGernalTime(history.getDay().getTime());
|
| | | if (gernalTime.equalsIgnoreCase(date)) {
|
| | | money = MoneyBigDecimalUtil.add(money, history.getMoney());
|
| | | continue;
|
| | | }
|
| | | } else if (dateType == 2){
|
| | | String gernalTime = TimeUtil.getMonthOnlyMM(history.getDay());
|
| | | if(gernalTime.startsWith("0")) {
|
| | | gernalTime = gernalTime.substring(1, 2);
|
| | | }
|
| | | if (gernalTime.equalsIgnoreCase(date)) {
|
| | | money = MoneyBigDecimalUtil.add(money, history.getMoney());
|
| | | continue;
|
| | | }
|
| | | } else if (dateType == 3) {
|
| | | String gernalTime = TimeUtil.getYearOnlyYYYY(history.getDay());
|
| | | if (gernalTime.equalsIgnoreCase(date)) {
|
| | | money = MoneyBigDecimalUtil.add(money, history.getMoney());
|
| | | continue;
|
| | | }
|
| | | }
|
| | | }
|
| | | list.add(money.toString());
|
| | | }
|
| | | |
| | | JSONObject innerList = new JSONObject();
|
| | | innerList.put("name", "金额");
|
| | | innerList.put("data", gson.toJson(list));
|
| | |
|
| | | JSONArray line_list = new JSONArray();
|
| | | line_list.add(innerList);
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("xAxis_list", gson.toJson(dateList));
|
| | | data.put("line_list", line_list);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 统计提现申请总次数
|
| | | * |
| | | * @param callback
|
| | | * @param 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) {
|
| | | 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<Object> list = new ArrayList<>();
|
| | | List<CountUserInfo> listHistory = extractAuditRecordService.geApplyNumber(beginDate, endDate);
|
| | | for (String date: dateList) {
|
| | | int value = 0;
|
| | | if (listHistory == null) {
|
| | | list.add(value + "");
|
| | | continue;
|
| | | }
|
| | | |
| | | 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 + "");
|
| | | }
|
| | | |
| | | JSONObject innerList = new JSONObject();
|
| | | innerList.put("name", "数量");
|
| | | innerList.put("data", gson.toJson(list));
|
| | |
|
| | | JSONArray line_list = new JSONArray();
|
| | | line_list.add(innerList);
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("xAxis_list", gson.toJson(dateList));
|
| | | data.put("line_list", line_list);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 下载提现红包Openid
|
| | | * |
| | | * @param callback
|
| | | * @param response
|
| | | * @param out
|
| | | */
|
| | | @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();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 上传提现红包Excel
|
| | | * |
| | | * @param file
|
| | | * @param out
|
| | | */
|
| | | @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 = 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(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();
|
| | | }
|
| | | }
|
| | | }
|
| | | |
| | | 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.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.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.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.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.MoneyBigDecimalUtil; |
| | | 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(ConfigKeyEnum.extractMoneyMin.getKey()); |
| | | 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() > 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()); |
| | | } |
| | | |
| | | Integer countOrder = commonOrderCountService.countOderByUidAndLess10(extract.getUserInfo().getId()); |
| | | if (countOrder != null && countOrder > 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(String callback, Long uid, PrintWriter out) { |
| | | if (uid == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请登录")); |
| | | return; |
| | | } |
| | | // 查询同店铺商品,同商品订单超过一定数量的 |
| | | List<Integer> typeList = new ArrayList<>(); |
| | | typeList.add(HongBaoV2.TYPE_ZIGOU); |
| | | long sameGoodsOrderCount = commonOrderCountService.countSameGoodsOrderByUidAndHongBaoType(typeList, uid, |
| | | Integer.parseInt(configService.get(ConfigKeyEnum.adminMinSameGoodsOrderCount.getKey()))); |
| | | long sameShopOrderCount = commonOrderCountService.countSameShopOrderByUidAndHongBaoType(typeList, uid, |
| | | Integer.parseInt(configService.get(ConfigKeyEnum.adminMinSameShopOrderCount.getKey()))); |
| | | if (sameGoodsOrderCount > 0 || sameShopOrderCount > 0) { |
| | | String text = (String.format("同店铺:%s 同商品:%s", sameShopOrderCount, sameGoodsOrderCount)); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(text)); |
| | | return; |
| | | } |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("店铺/商品无异常")); |
| | | } |
| | | |
| | | /** |
| | | * 获取今日提现记录:今日总额、总次数、成功次数、失败次数 获取系统提现记录:总额、总次数 |
| | | * |
| | | * @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(); |
| | | } |
| | | |
| | | 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 |
| | | * 页码 |
| | | * @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) { |
| | | 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); |
| | | |
| | | String substring = stateArray.substring(1, stateArray.length()-1); |
| | | List<Integer> channelList = null; |
| | | if (stateArray != null && stateArray.trim().length() > 4) { |
| | | channelList = gson.fromJson(stateArray, new TypeToken<ArrayList<Integer>>() {}.getType()); |
| | | } |
| | | |
| | | JSONArray line_list = new JSONArray(); |
| | | |
| | | if (channelList != null && channelList.size() > 0) { |
| | | for (Integer state : channelList) { |
| | | List<Object> list = getAuditData(dateList, dateType, beginDate, endDate, state); |
| | | String name = ""; |
| | | if (state == 1) { |
| | | name = "通过"; |
| | | } else if (state == 2) { |
| | | name = "驳回"; |
| | | } |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", name); |
| | | innerList.put("data", gson.toJson(list)); |
| | | line_list.add(innerList); |
| | | } |
| | | } else { |
| | | List<Object> list = getAuditData(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> getAuditData(List<String> dateList, Integer dateType, Date beginDate, Date endDate, |
| | | Integer state) throws Exception{ |
| | | List<Object> list = new ArrayList<>(); |
| | | List<CountUserInfo> listHistory = extractAuditRecordService.getAuditCount(beginDate, endDate, state); |
| | | 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 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) { |
| | | 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> list = new ArrayList<>(); |
| | | List<CountUserInfo> listHistory = extractAuditRecordService.getApplyMoney(beginDate, endDate); |
| | | for (String date: dateList) { |
| | | BigDecimal money = new BigDecimal("0"); |
| | | if (listHistory == null) { |
| | | list.add(money.toString()); |
| | | continue; |
| | | } |
| | | |
| | | for (CountUserInfo history: listHistory) { |
| | | if (dateType == 1) { |
| | | String gernalTime = TimeUtil.getGernalTime(history.getDay().getTime()); |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | money = MoneyBigDecimalUtil.add(money, history.getMoney()); |
| | | continue; |
| | | } |
| | | } else if (dateType == 2){ |
| | | String gernalTime = TimeUtil.getMonthOnlyMM(history.getDay()); |
| | | if(gernalTime.startsWith("0")) { |
| | | gernalTime = gernalTime.substring(1, 2); |
| | | } |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | money = MoneyBigDecimalUtil.add(money, history.getMoney()); |
| | | continue; |
| | | } |
| | | } else if (dateType == 3) { |
| | | String gernalTime = TimeUtil.getYearOnlyYYYY(history.getDay()); |
| | | if (gernalTime.equalsIgnoreCase(date)) { |
| | | money = MoneyBigDecimalUtil.add(money, history.getMoney()); |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | list.add(money.toString()); |
| | | } |
| | | |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", "金额"); |
| | | innerList.put("data", gson.toJson(list)); |
| | | |
| | | JSONArray line_list = new JSONArray(); |
| | | line_list.add(innerList); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("xAxis_list", gson.toJson(dateList)); |
| | | data.put("line_list", line_list); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 统计提现申请总次数 |
| | | * |
| | | * @param callback |
| | | * @param 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) { |
| | | 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<Object> list = new ArrayList<>(); |
| | | List<CountUserInfo> listHistory = extractAuditRecordService.geApplyNumber(beginDate, endDate); |
| | | for (String date: dateList) { |
| | | int value = 0; |
| | | if (listHistory == null) { |
| | | list.add(value + ""); |
| | | continue; |
| | | } |
| | | |
| | | 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 + ""); |
| | | } |
| | | |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", "数量"); |
| | | innerList.put("data", gson.toJson(list)); |
| | | |
| | | JSONArray line_list = new JSONArray(); |
| | | line_list.add(innerList); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("xAxis_list", gson.toJson(dateList)); |
| | | data.put("line_list", line_list); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 下载提现红包Openid |
| | | * |
| | | * @param callback |
| | | * @param response |
| | | * @param out |
| | | */ |
| | | @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(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 上传提现红包Excel |
| | | * |
| | | * @param file |
| | | * @param out |
| | | */ |
| | | @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 = 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(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(); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | package com.yeshi.fanli.controller.admin;
|
| | |
|
| | | import java.io.PrintWriter;
|
| | | import java.math.BigDecimal;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | | import javax.servlet.http.HttpServletRequest;
|
| | |
|
| | | import org.springframework.stereotype.Controller;
|
| | | import org.springframework.web.bind.annotation.RequestMapping;
|
| | | import org.springframework.web.multipart.MultipartFile;
|
| | | import org.springframework.web.multipart.MultipartHttpServletRequest;
|
| | | import org.yeshi.utils.JsonUtil;
|
| | |
|
| | | import com.google.gson.Gson;
|
| | | 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.HongBaoV2;
|
| | | import com.yeshi.fanli.entity.money.UserMoneyDebt;
|
| | | import com.yeshi.fanli.entity.money.UserMoneyDebt.UserMoneyDebtTypeEnum;
|
| | | import com.yeshi.fanli.entity.money.UserMoneyDetail;
|
| | | import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
|
| | | import com.yeshi.fanli.entity.order.CommonOrder;
|
| | | import com.yeshi.fanli.entity.order.HongBaoOrder;
|
| | | import com.yeshi.fanli.entity.order.UserOrderWeiQuanRecord;
|
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
|
| | | import com.yeshi.fanli.exception.order.CommonOrderException;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
|
| | | import com.yeshi.fanli.service.inter.count.TaoBaoOrderCountService;
|
| | | import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
|
| | | import com.yeshi.fanli.service.inter.money.UserMoneyDetailService;
|
| | | import com.yeshi.fanli.service.inter.money.tb.TaoBaoWeiQuanDrawBackService;
|
| | | import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
|
| | | import com.yeshi.fanli.service.inter.order.CommonOrderService;
|
| | | import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
|
| | | import com.yeshi.fanli.service.inter.order.OrderProcessService;
|
| | | import com.yeshi.fanli.service.inter.order.OrderService;
|
| | | import com.yeshi.fanli.service.inter.order.UserOrderWeiQuanRecordService;
|
| | | import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
|
| | | import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
|
| | | import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService;
|
| | | import com.yeshi.fanli.tag.PageEntity;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
|
| | | import com.yeshi.fanli.vo.order.CommonOrderVO;
|
| | |
|
| | | import net.sf.json.JSONArray;
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | | @Controller
|
| | | @RequestMapping("admin/new/api/v1/order")
|
| | | public class OrderAdminController {
|
| | |
|
| | | @Resource
|
| | | private OrderService orderService;
|
| | |
|
| | | @Resource
|
| | | private HongBaoV2CountService hongBaoV2CountService;
|
| | |
|
| | | @Resource
|
| | | private CommonOrderCountService commonOrderCountService;
|
| | |
|
| | | @Resource
|
| | | private CommonOrderService commonOrderService;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoOrderService taoBaoOrderService;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoOrderCountService taoBaoOrderCountService;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoWeiQuanDrawBackService taoBaoWeiQuanDrawBackService;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
|
| | |
|
| | | @Resource
|
| | | private UserMoneyDetailService userMoneyDetailService;
|
| | |
|
| | | @Resource
|
| | | private OrderProcessService orderProcessService;
|
| | |
|
| | | @Resource
|
| | | private HongBaoOrderService hongBaoOrderService;
|
| | |
|
| | | @Resource
|
| | | private UserMoneyDebtService userMoneyDebtService;
|
| | |
|
| | | @Resource
|
| | | private UserSystemCouponRecordService userSystemCouponRecordService;
|
| | |
|
| | | @Resource
|
| | | private ConfigService configService;
|
| | |
|
| | | @Resource
|
| | | private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
|
| | |
|
| | | /**
|
| | | * 统计历史订单-淘宝订单
|
| | | * |
| | | * @param callback
|
| | | * @param request
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "countTaoBaoOrder")
|
| | | public void countTaoBaoOrder(String callback, HttpServletRequest request, PrintWriter out) {
|
| | |
|
| | | try {
|
| | | Map<String, Object> countByOdrerType = taoBaoOrderCountService.countByOdrerType();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("typeOrder", countByOdrerType);
|
| | |
|
| | | // 统计今日 未失效订单数量 相同订单号合并为一单
|
| | | int todayOrder = taoBaoOrderCountService.countToday();
|
| | | // 统计昨日 未失效订单数量 相同订单号合并为一单
|
| | | int yesterdayOrder = taoBaoOrderCountService.countYesterday();
|
| | |
|
| | | data.put("todayOrder", todayOrder);
|
| | | data.put("yesterdayOrder", yesterdayOrder);
|
| | |
|
| | | data.put("genzong", yesterdayOrder);
|
| | | data.put("yesterdayOrder", yesterdayOrder);
|
| | |
|
| | | 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 uid
|
| | | * @param state
|
| | | * @param type
|
| | | * @param orderState
|
| | | * @param orderNo
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getUserOrderList")
|
| | | public void getUserOrderList(String callback, Integer pageIndex, Integer pageSize, Integer keyType, String key,
|
| | | Integer state, Integer type, Integer orderState, String startTime, String endTime, Integer sourceType,
|
| | | Integer riskType, PrintWriter out) {
|
| | |
|
| | | if (pageIndex == null || pageIndex < 1) {
|
| | | pageIndex = 1;
|
| | | }
|
| | |
|
| | | if (pageSize == null)
|
| | | pageSize = Constant.PAGE_SIZE;
|
| | |
|
| | | if (state != null && state == 0) {
|
| | | state = null;// 所有状态
|
| | | }
|
| | |
|
| | | if (type != null && type == 0) {
|
| | | type = null; // 所有类型订单
|
| | | }
|
| | |
|
| | | if (endTime != null && endTime.trim().length() > 0) {
|
| | | endTime += " 23:59:59";
|
| | | }
|
| | |
|
| | | try {
|
| | | Date minTime = null;
|
| | | BigDecimal money = null;
|
| | | List<Long> listShopId = null;
|
| | | List<Long> listGoodsId = null;
|
| | | // 风险
|
| | | if (riskType != null && !StringUtil.isNullOrEmpty(key) && keyType != null && keyType == 2) {
|
| | | long uid = Long.parseLong(key);
|
| | | // 查询同店铺商品,同商品订单超过一定数量的
|
| | | List<Integer> typeList = new ArrayList<>();
|
| | | typeList.add(HongBaoV2.TYPE_ZIGOU);
|
| | |
|
| | | if (riskType == 1) {
|
| | | listGoodsId = commonOrderCountService.getSameGoodsOrderByUidAndHongBaoType(typeList, uid,
|
| | | Integer.parseInt(configService.get(ConfigKeyEnum.adminMinSameGoodsOrderCount.getKey())));
|
| | | if (listGoodsId == null || listGoodsId.isEmpty()) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无同商品订单"));
|
| | | return;
|
| | | }
|
| | | } else if (riskType == 2) {
|
| | | listShopId = commonOrderCountService.getSameShopOrderByUidAndHongBaoType(typeList, uid,
|
| | | Integer.parseInt(configService.get(ConfigKeyEnum.adminMinSameShopOrderCount.getKey())));
|
| | | if (listShopId == null || listShopId.isEmpty()) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无同店铺订单"));
|
| | | return;
|
| | | }
|
| | | } else if (riskType == 3) {
|
| | | money = new BigDecimal(100);
|
| | | minTime = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 180L);
|
| | | }
|
| | | }
|
| | |
|
| | | // 查询列表
|
| | | List<CommonOrderVO> list = commonOrderService.listQuery((pageIndex - 1) * pageSize, pageSize, keyType, key,
|
| | | state, type, orderState, startTime, endTime, sourceType, listShopId, listGoodsId, minTime, money);
|
| | |
|
| | | // 统计总数
|
| | | long count = commonOrderService.countQuery(keyType, key, state, type, orderState, startTime, endTime,
|
| | | sourceType, listShopId, listGoodsId, minTime, money);
|
| | |
|
| | | // 查询是否维权
|
| | | for (CommonOrderVO order : list) {
|
| | | if (order.getUserId() == null)
|
| | | continue;
|
| | |
|
| | | // 查询是否维权
|
| | | TaoBaoWeiQuanOrder weiQuanOrder = taoBaoWeiQuanOrderService.listByorderItemId(order.getTradeId());
|
| | | if (weiQuanOrder != null)// 有维权
|
| | | {
|
| | | order.setWeiQuanState(weiQuanOrder.getState());
|
| | | order.setState(CommonOrder.STATE_WQ);
|
| | | TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackService.selectByOrderItemIdAndUid(
|
| | | weiQuanOrder.getOrderItemId(), Long.parseLong(order.getUserId()));
|
| | | if (drawBack != null) {// 已经退款
|
| | |
|
| | | // 计算退款资金
|
| | | UserMoneyDetail detail = null;
|
| | | switch (order.getHongBaoType()) {
|
| | | case 1:
|
| | | detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode(
|
| | | UserMoneyDetailTypeEnum.fanliWeiQuan, Long.parseLong(order.getUserId()),
|
| | | drawBack.getId());
|
| | | if (detail == null)
|
| | | detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode(
|
| | | UserMoneyDetailTypeEnum.weiQuan, Long.parseLong(order.getUserId()),
|
| | | drawBack.getId());
|
| | | break;
|
| | | case 3:
|
| | | detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode(
|
| | | UserMoneyDetailTypeEnum.inviteWeiQuan, Long.parseLong(order.getUserId()),
|
| | | drawBack.getId());
|
| | | break;
|
| | | case 2:
|
| | | detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode(
|
| | | UserMoneyDetailTypeEnum.shareWeiQuan, Long.parseLong(order.getUserId()),
|
| | | drawBack.getId());
|
| | | break;
|
| | | }
|
| | | if (detail != null) {
|
| | | // 退款成功
|
| | | order.setWeiQuanBackMoney(detail.getMoney().abs().toString());
|
| | | } else {// 尚未退款
|
| | | order.setWeiQuanBackMoney(drawBack.getDrawBackMoney().toString());
|
| | | // 查询出对应的hongBaoId
|
| | | CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(
|
| | | Constant.SOURCE_TYPE_TAOBAO, drawBack.getOrderItemId());
|
| | | if (commonOrder != null) {
|
| | | HongBaoOrder hongBaoOrder = hongBaoOrderService
|
| | | .selectDetailByCommonOrderId(commonOrder.getId());
|
| | | if (hongBaoOrder != null) {
|
| | | UserMoneyDebt debt = userMoneyDebtService.selectByTypeAndSourceId(
|
| | | UserMoneyDebtTypeEnum.order, hongBaoOrder.getHongBaoV2().getId());
|
| | | if (debt != null && debt.getLeftMoney().compareTo(new BigDecimal(0)) > 0) {
|
| | | order.setWeiQuanBackMoney(
|
| | | new BigDecimal(0).subtract(debt.getLeftMoney()).toString());// 未扣除
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | } else {// 尚未退款
|
| | | UserOrderWeiQuanRecord record = userOrderWeiQuanRecordService.selectByOrderInfoAndUid(
|
| | | Long.parseLong(order.getUserId()), weiQuanOrder.getOrderItemId(),
|
| | | Constant.SOURCE_TYPE_TAOBAO);
|
| | | if (record != null)
|
| | | order.setWeiQuanBackMoney("-" + record.getMoney());
|
| | | else {
|
| | | order.setWeiQuanBackMoney("-" + order.getHongBao());
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | 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", list);
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | } catch (CommonOrderException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 查询订单列表用户uid
|
| | | * |
| | | * @param callback
|
| | | * @param pageIndex
|
| | | * @param pageSize
|
| | | * @param uid
|
| | | * @param state
|
| | | * @param type
|
| | | * @param orderState
|
| | | * @param orderNo
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getHistoryOrder")
|
| | | public void getHistoryOrder(String callback, Integer pageIndex, Integer pageSize, Long uid, Integer state,
|
| | | Integer type, Integer orderState, String orderNo, String startTime, String endTime, PrintWriter out) {
|
| | |
|
| | | if (uid == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("uid不能为空"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (pageIndex == null || pageIndex < 1) {
|
| | | pageIndex = 1;
|
| | | }
|
| | |
|
| | | if (pageSize == null)
|
| | | pageSize = Constant.PAGE_SIZE;
|
| | |
|
| | | if (state != null && state == 0) {
|
| | | state = null;// 所有状态
|
| | | }
|
| | |
|
| | | if (type != null && type == 0) {
|
| | | type = null; // 所有类型订单
|
| | | }
|
| | |
|
| | | if (endTime != null && endTime.trim().length() > 0) {
|
| | | endTime += " 23:59:59";
|
| | | }
|
| | |
|
| | | try {
|
| | | long count = 0;
|
| | |
|
| | | // 查询列表
|
| | | List<CommonOrderVO> list = commonOrderService.listQueryByUid((pageIndex - 1) * pageSize, pageSize, uid,
|
| | | state, type, orderState, orderNo, startTime, endTime, null);
|
| | |
|
| | | if (list != null && list.size() > 0) {
|
| | | // 统计总数
|
| | | count = commonOrderService.countQueryByUid(uid, state, type, orderState, orderNo, startTime, endTime,
|
| | | null);
|
| | | }
|
| | |
|
| | | 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", list);
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | } catch (CommonOrderException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /**
|
| | | * 统计提现申请总金额
|
| | | * |
| | | * @param callback
|
| | | * @param channelArray
|
| | | * 渠道名 为空是统计所有
|
| | | * @param dateType
|
| | | * 显示视图:日-1 、月-2、 年-3
|
| | | * @param state
|
| | | * 状态: 1-未到账 2-已到账 3-已失效
|
| | | * @param year
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getHongBaoMoney")
|
| | | public void getHongBaoMoney(String callback, String channelArray, Integer dateType, Integer state, 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;
|
| | | }
|
| | |
|
| | | try {
|
| | |
|
| | | JSONObject data = countHistoryHongBao(channelArray, dateType, state, year, startTime, endTime, 2);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 统计红包信息
|
| | | * |
| | | * @param channelArray
|
| | | * @param dateType
|
| | | * @param state
|
| | | * @param year
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | public JSONObject countHistoryHongBao(String channelArray, Integer dateType, Integer state, String year,
|
| | | String startTime, String endTime, int countType) throws Exception {
|
| | | 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;
|
| | | }
|
| | |
|
| | | 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 = null;
|
| | | if (countType == 1) {
|
| | | list = hongBaoV2CountService.countHongBaoNum(channel, dateType, state, year, startTime, endTime);
|
| | | } else if (countType == 2) {
|
| | | list = hongBaoV2CountService.countHongBaoMoney(channel, dateType, state, 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);
|
| | | return data;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 分类型订单数与比例
|
| | | * |
| | | * @param callback
|
| | | * @param dateType
|
| | | * 日 -1 月-2 年-3
|
| | | * @param type
|
| | | * 返利订单-1 分享订单-2 邀请订单-3
|
| | | * @param year
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getTypeNumber")
|
| | | public void getTypeNumber(String callback, Integer dateType, String typeArray, 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<Integer> channelList = null;
|
| | | if (typeArray != null && typeArray.trim().length() > 0) {
|
| | | Gson gson = new Gson();
|
| | | channelList = gson.fromJson(typeArray, new TypeToken<ArrayList<Integer>>() {
|
| | | }.getType());
|
| | | }
|
| | |
|
| | | if (channelList == null || channelList.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("订单类型不能为空"));
|
| | | 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;
|
| | | }
|
| | |
|
| | | Gson gson = new Gson();
|
| | | Object objectDate = null;
|
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
|
| | | try {
|
| | | JSONArray line_list = new JSONArray();
|
| | | for (Integer type : channelList) {
|
| | | List<ChartTDO> list = hongBaoV2CountService.countHongBaoType(dateType, type, year, startTime, endTime);
|
| | | JSONObject innerList = new JSONObject();
|
| | | if (type == 1) {
|
| | | innerList.put("name", "返利订单");
|
| | | } else if (type == 2) {
|
| | | innerList.put("name", "分享订单");
|
| | | } else if (type == 3) {
|
| | | innerList.put("name", "邀请订单");
|
| | | }
|
| | |
|
| | | 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
|
| | | * 订单状态-暂未使用
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getHistoryUnreceived")
|
| | | public void getHistoryUnreceived(String callback, Integer type, PrintWriter out) {
|
| | | try {
|
| | |
|
| | | Long total = commonOrderCountService.countByState(1);
|
| | | if (total == null) {
|
| | | total = 0L;
|
| | | }
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("total", total);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 维权订单数
|
| | | * |
| | | * @param callback
|
| | | * @param dateType
|
| | | * @param year
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getWeiQaunOrderNumber")
|
| | | public void getWeiQaunOrderNumber(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;
|
| | | }
|
| | |
|
| | | try {
|
| | | JSONObject data = countWeiQaunOrder(dateType, year, startTime, endTime, 1);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 维权订单金额
|
| | | * |
| | | * @param callback
|
| | | * @param dateType
|
| | | * @param year
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getWeiQaunOrderMoney")
|
| | | public void getWeiQaunOrderMoney(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;
|
| | | }
|
| | |
|
| | | try {
|
| | | JSONObject data = countWeiQaunOrder(dateType, year, startTime, endTime, 2);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 统计红包信息
|
| | | * |
| | | * @param channelArray
|
| | | * @param dateType
|
| | | * @param state
|
| | | * @param year
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | public JSONObject countWeiQaunOrder(Integer dateType, String year, String startTime, String endTime, int countType)
|
| | | throws Exception {
|
| | |
|
| | | 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;
|
| | | }
|
| | |
|
| | | Gson gson = new Gson();
|
| | | Object objectDate = null;
|
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
|
| | |
|
| | | JSONArray line_list = new JSONArray();
|
| | | List<ChartTDO> list = null;
|
| | | if (countType == 1) {
|
| | | list = commonOrderCountService.countWeiQaunOrderNumber(dateType, year, startTime, endTime);
|
| | | } else if (countType == 2) {
|
| | | list = commonOrderCountService.countWeiQaunOrderMoney(dateType, year, startTime, endTime);
|
| | | }
|
| | |
|
| | | JSONObject innerList = new JSONObject();
|
| | | innerList.put("name", "总计");
|
| | |
|
| | | 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);
|
| | |
|
| | | return data;
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "uploadTaoBaoWeiQuanOrder")
|
| | | public void uploadWeiQuanOrder(String callback, HttpServletRequest request, PrintWriter out) {
|
| | | try {
|
| | | // 1. 先判断httpRequest 是否含有文件类型
|
| | | if (request instanceof MultipartHttpServletRequest) {
|
| | | MultipartHttpServletRequest fileRequest = (MultipartHttpServletRequest) request;
|
| | | MultipartFile file = fileRequest.getFile("file");
|
| | | List<TaoBaoWeiQuanOrder> orderList = TaoBaoOrderUtil.getWeiQuanOrders(file.getInputStream());
|
| | | for (TaoBaoWeiQuanOrder order : orderList)
|
| | | taoBaoWeiQuanOrderService.addWeiQuanOrder(order);// 添加维权订单到数据库
|
| | | // 处理维权订单
|
| | | orderProcessService.weiQuanOrder(orderList);
|
| | | }
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("更新成功"));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("更新失败"));
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | | package com.yeshi.fanli.controller.admin; |
| | | |
| | | import java.io.PrintWriter; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | import org.springframework.web.multipart.MultipartHttpServletRequest; |
| | | import org.yeshi.utils.JsonUtil; |
| | | |
| | | import com.google.gson.Gson; |
| | | 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.HongBaoV2; |
| | | import com.yeshi.fanli.entity.money.UserMoneyDebt; |
| | | import com.yeshi.fanli.entity.money.UserMoneyDebt.UserMoneyDebtTypeEnum; |
| | | import com.yeshi.fanli.entity.money.UserMoneyDetail; |
| | | import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum; |
| | | import com.yeshi.fanli.entity.order.CommonOrder; |
| | | import com.yeshi.fanli.entity.order.HongBaoOrder; |
| | | import com.yeshi.fanli.entity.order.UserOrderWeiQuanRecord; |
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum; |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack; |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; |
| | | import com.yeshi.fanli.exception.order.CommonOrderException; |
| | | import com.yeshi.fanli.service.inter.config.ConfigService; |
| | | import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; |
| | | import com.yeshi.fanli.service.inter.count.TaoBaoOrderCountService; |
| | | import com.yeshi.fanli.service.inter.money.UserMoneyDebtService; |
| | | import com.yeshi.fanli.service.inter.money.UserMoneyDetailService; |
| | | import com.yeshi.fanli.service.inter.money.tb.TaoBaoWeiQuanDrawBackService; |
| | | import com.yeshi.fanli.service.inter.order.CommonOrderCountService; |
| | | import com.yeshi.fanli.service.inter.order.CommonOrderService; |
| | | import com.yeshi.fanli.service.inter.order.HongBaoOrderService; |
| | | import com.yeshi.fanli.service.inter.order.OrderProcessService; |
| | | import com.yeshi.fanli.service.inter.order.OrderService; |
| | | import com.yeshi.fanli.service.inter.order.UserOrderWeiQuanRecordService; |
| | | import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService; |
| | | import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService; |
| | | import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService; |
| | | import com.yeshi.fanli.tag.PageEntity; |
| | | import com.yeshi.fanli.util.Constant; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; |
| | | import com.yeshi.fanli.vo.order.CommonOrderVO; |
| | | |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONObject; |
| | | |
| | | @Controller |
| | | @RequestMapping("admin/new/api/v1/order") |
| | | public class OrderAdminController { |
| | | |
| | | @Resource |
| | | private OrderService orderService; |
| | | |
| | | @Resource |
| | | private HongBaoV2CountService hongBaoV2CountService; |
| | | |
| | | @Resource |
| | | private CommonOrderCountService commonOrderCountService; |
| | | |
| | | @Resource |
| | | private CommonOrderService commonOrderService; |
| | | |
| | | @Resource |
| | | private TaoBaoOrderService taoBaoOrderService; |
| | | |
| | | @Resource |
| | | private TaoBaoOrderCountService taoBaoOrderCountService; |
| | | |
| | | @Resource |
| | | private TaoBaoWeiQuanDrawBackService taoBaoWeiQuanDrawBackService; |
| | | |
| | | @Resource |
| | | private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService; |
| | | |
| | | @Resource |
| | | private UserMoneyDetailService userMoneyDetailService; |
| | | |
| | | @Resource |
| | | private OrderProcessService orderProcessService; |
| | | |
| | | @Resource |
| | | private HongBaoOrderService hongBaoOrderService; |
| | | |
| | | @Resource |
| | | private UserMoneyDebtService userMoneyDebtService; |
| | | |
| | | @Resource |
| | | private UserSystemCouponRecordService userSystemCouponRecordService; |
| | | |
| | | @Resource |
| | | private ConfigService configService; |
| | | |
| | | @Resource |
| | | private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService; |
| | | |
| | | /** |
| | | * 统计历史订单-淘宝订单 |
| | | * |
| | | * @param callback |
| | | * @param request |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "countTaoBaoOrder") |
| | | public void countTaoBaoOrder(String callback, HttpServletRequest request, PrintWriter out) { |
| | | |
| | | try { |
| | | Map<String, Object> countByOdrerType = taoBaoOrderCountService.countByOdrerType(); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("typeOrder", countByOdrerType); |
| | | |
| | | // 统计今日 未失效订单数量 相同订单号合并为一单 |
| | | int todayOrder = taoBaoOrderCountService.countToday(); |
| | | // 统计昨日 未失效订单数量 相同订单号合并为一单 |
| | | int yesterdayOrder = taoBaoOrderCountService.countYesterday(); |
| | | |
| | | data.put("todayOrder", todayOrder); |
| | | data.put("yesterdayOrder", yesterdayOrder); |
| | | |
| | | data.put("genzong", yesterdayOrder); |
| | | data.put("yesterdayOrder", yesterdayOrder); |
| | | |
| | | 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 uid |
| | | * @param state |
| | | * @param type |
| | | * @param orderState |
| | | * @param orderNo |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getUserOrderList") |
| | | public void getUserOrderList(String callback, Integer pageIndex, Integer pageSize, Integer keyType, String key, |
| | | Integer state, Integer type, Integer orderState, String startTime, String endTime, Integer sourceType, |
| | | Integer riskType, BigDecimal payment, PrintWriter out) { |
| | | |
| | | if (pageIndex == null || pageIndex < 1) { |
| | | pageIndex = 1; |
| | | } |
| | | |
| | | if (pageSize == null) |
| | | pageSize = Constant.PAGE_SIZE; |
| | | |
| | | if (state != null && state == 0) { |
| | | state = null;// 所有状态 |
| | | } |
| | | |
| | | if (type != null && type == 0) { |
| | | type = null; // 所有类型订单 |
| | | } |
| | | |
| | | if (endTime != null && endTime.trim().length() > 0) { |
| | | endTime += " 23:59:59"; |
| | | } |
| | | |
| | | try { |
| | | Date minTime = null; |
| | | BigDecimal money = null; |
| | | List<Long> listShopId = null; |
| | | List<Long> listGoodsId = null; |
| | | // 风险 |
| | | if (riskType != null && !StringUtil.isNullOrEmpty(key) && keyType != null && keyType == 2) { |
| | | long uid = Long.parseLong(key); |
| | | // 查询同店铺商品,同商品订单超过一定数量的 |
| | | List<Integer> typeList = new ArrayList<>(); |
| | | typeList.add(HongBaoV2.TYPE_ZIGOU); |
| | | |
| | | if (riskType == 1) { |
| | | listGoodsId = commonOrderCountService.getSameGoodsOrderByUidAndHongBaoType(typeList, uid, |
| | | Integer.parseInt(configService.get(ConfigKeyEnum.adminMinSameGoodsOrderCount.getKey()))); |
| | | if (listGoodsId == null || listGoodsId.isEmpty()) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无同商品订单")); |
| | | return; |
| | | } |
| | | } else if (riskType == 2) { |
| | | listShopId = commonOrderCountService.getSameShopOrderByUidAndHongBaoType(typeList, uid, |
| | | Integer.parseInt(configService.get(ConfigKeyEnum.adminMinSameShopOrderCount.getKey()))); |
| | | if (listShopId == null || listShopId.isEmpty()) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无同店铺订单")); |
| | | return; |
| | | } |
| | | } else if (riskType == 3) { |
| | | money = new BigDecimal(100); |
| | | minTime = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 180L); |
| | | } |
| | | } |
| | | |
| | | // 查询列表 |
| | | List<CommonOrderVO> list = commonOrderService.listQuery((pageIndex - 1) * pageSize, pageSize, keyType, key, |
| | | state, type, orderState, startTime, endTime, sourceType, listShopId, listGoodsId, minTime, money, payment); |
| | | |
| | | // 统计总数 |
| | | long count = commonOrderService.countQuery(keyType, key, state, type, orderState, startTime, endTime, |
| | | sourceType, listShopId, listGoodsId, minTime, money, payment); |
| | | |
| | | // 查询是否维权 |
| | | for (CommonOrderVO order : list) { |
| | | if (order.getUserId() == null) |
| | | continue; |
| | | |
| | | // 查询是否维权 |
| | | TaoBaoWeiQuanOrder weiQuanOrder = taoBaoWeiQuanOrderService.listByorderItemId(order.getTradeId()); |
| | | if (weiQuanOrder != null)// 有维权 |
| | | { |
| | | order.setWeiQuanState(weiQuanOrder.getState()); |
| | | order.setState(CommonOrder.STATE_WQ); |
| | | TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackService.selectByOrderItemIdAndUid( |
| | | weiQuanOrder.getOrderItemId(), Long.parseLong(order.getUserId())); |
| | | if (drawBack != null) {// 已经退款 |
| | | |
| | | // 计算退款资金 |
| | | UserMoneyDetail detail = null; |
| | | switch (order.getHongBaoType()) { |
| | | case 1: |
| | | detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode( |
| | | UserMoneyDetailTypeEnum.fanliWeiQuan, Long.parseLong(order.getUserId()), |
| | | drawBack.getId()); |
| | | if (detail == null) |
| | | detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode( |
| | | UserMoneyDetailTypeEnum.weiQuan, Long.parseLong(order.getUserId()), |
| | | drawBack.getId()); |
| | | break; |
| | | case 3: |
| | | detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode( |
| | | UserMoneyDetailTypeEnum.inviteWeiQuan, Long.parseLong(order.getUserId()), |
| | | drawBack.getId()); |
| | | break; |
| | | case 2: |
| | | detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode( |
| | | UserMoneyDetailTypeEnum.shareWeiQuan, Long.parseLong(order.getUserId()), |
| | | drawBack.getId()); |
| | | break; |
| | | } |
| | | if (detail != null) { |
| | | // 退款成功 |
| | | order.setWeiQuanBackMoney(detail.getMoney().abs().toString()); |
| | | } else {// 尚未退款 |
| | | order.setWeiQuanBackMoney(drawBack.getDrawBackMoney().toString()); |
| | | // 查询出对应的hongBaoId |
| | | CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId( |
| | | Constant.SOURCE_TYPE_TAOBAO, drawBack.getOrderItemId()); |
| | | if (commonOrder != null) { |
| | | HongBaoOrder hongBaoOrder = hongBaoOrderService |
| | | .selectDetailByCommonOrderId(commonOrder.getId()); |
| | | if (hongBaoOrder != null) { |
| | | UserMoneyDebt debt = userMoneyDebtService.selectByTypeAndSourceId( |
| | | UserMoneyDebtTypeEnum.order, hongBaoOrder.getHongBaoV2().getId()); |
| | | if (debt != null && debt.getLeftMoney().compareTo(new BigDecimal(0)) > 0) { |
| | | order.setWeiQuanBackMoney( |
| | | new BigDecimal(0).subtract(debt.getLeftMoney()).toString());// 未扣除 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } else {// 尚未退款 |
| | | UserOrderWeiQuanRecord record = userOrderWeiQuanRecordService.selectByOrderInfoAndUid( |
| | | Long.parseLong(order.getUserId()), weiQuanOrder.getOrderItemId(), |
| | | Constant.SOURCE_TYPE_TAOBAO); |
| | | if (record != null) |
| | | order.setWeiQuanBackMoney("-" + record.getMoney()); |
| | | else { |
| | | order.setWeiQuanBackMoney("-" + order.getHongBao()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | 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", list); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | } catch (CommonOrderException e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg())); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 查询订单列表用户uid |
| | | * |
| | | * @param callback |
| | | * @param pageIndex |
| | | * @param pageSize |
| | | * @param uid |
| | | * @param state |
| | | * @param type |
| | | * @param orderState |
| | | * @param orderNo |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getHistoryOrder") |
| | | public void getHistoryOrder(String callback, Integer pageIndex, Integer pageSize, Long uid, Integer state, |
| | | Integer type, Integer orderState, String orderNo, String startTime, String endTime, PrintWriter out) { |
| | | |
| | | if (uid == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("uid不能为空")); |
| | | return; |
| | | } |
| | | |
| | | if (pageIndex == null || pageIndex < 1) { |
| | | pageIndex = 1; |
| | | } |
| | | |
| | | if (pageSize == null) |
| | | pageSize = Constant.PAGE_SIZE; |
| | | |
| | | if (state != null && state == 0) { |
| | | state = null;// 所有状态 |
| | | } |
| | | |
| | | if (type != null && type == 0) { |
| | | type = null; // 所有类型订单 |
| | | } |
| | | |
| | | if (endTime != null && endTime.trim().length() > 0) { |
| | | endTime += " 23:59:59"; |
| | | } |
| | | |
| | | try { |
| | | long count = 0; |
| | | |
| | | // 查询列表 |
| | | List<CommonOrderVO> list = commonOrderService.listQueryByUid((pageIndex - 1) * pageSize, pageSize, uid, |
| | | state, type, orderState, orderNo, startTime, endTime, null); |
| | | |
| | | if (list != null && list.size() > 0) { |
| | | // 统计总数 |
| | | count = commonOrderService.countQueryByUid(uid, state, type, orderState, orderNo, startTime, endTime, |
| | | null); |
| | | } |
| | | |
| | | 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", list); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | } catch (CommonOrderException e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg())); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 统计提现申请总金额 |
| | | * |
| | | * @param callback |
| | | * @param channelArray |
| | | * 渠道名 为空是统计所有 |
| | | * @param dateType |
| | | * 显示视图:日-1 、月-2、 年-3 |
| | | * @param state |
| | | * 状态: 1-未到账 2-已到账 3-已失效 |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getHongBaoMoney") |
| | | public void getHongBaoMoney(String callback, String channelArray, Integer dateType, Integer state, 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; |
| | | } |
| | | |
| | | try { |
| | | |
| | | JSONObject data = countHistoryHongBao(channelArray, dateType, state, year, startTime, endTime, 2); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 统计红包信息 |
| | | * |
| | | * @param channelArray |
| | | * @param dateType |
| | | * @param state |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public JSONObject countHistoryHongBao(String channelArray, Integer dateType, Integer state, String year, |
| | | String startTime, String endTime, int countType) throws Exception { |
| | | 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; |
| | | } |
| | | |
| | | 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 = null; |
| | | if (countType == 1) { |
| | | list = hongBaoV2CountService.countHongBaoNum(channel, dateType, state, year, startTime, endTime); |
| | | } else if (countType == 2) { |
| | | list = hongBaoV2CountService.countHongBaoMoney(channel, dateType, state, 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); |
| | | return data; |
| | | } |
| | | |
| | | /** |
| | | * 分类型订单数与比例 |
| | | * |
| | | * @param callback |
| | | * @param dateType |
| | | * 日 -1 月-2 年-3 |
| | | * @param type |
| | | * 返利订单-1 分享订单-2 邀请订单-3 |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getTypeNumber") |
| | | public void getTypeNumber(String callback, Integer dateType, String typeArray, 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<Integer> channelList = null; |
| | | if (typeArray != null && typeArray.trim().length() > 0) { |
| | | Gson gson = new Gson(); |
| | | channelList = gson.fromJson(typeArray, new TypeToken<ArrayList<Integer>>() { |
| | | }.getType()); |
| | | } |
| | | |
| | | if (channelList == null || channelList.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("订单类型不能为空")); |
| | | 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; |
| | | } |
| | | |
| | | Gson gson = new Gson(); |
| | | Object objectDate = null; |
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); |
| | | try { |
| | | JSONArray line_list = new JSONArray(); |
| | | for (Integer type : channelList) { |
| | | List<ChartTDO> list = hongBaoV2CountService.countHongBaoType(dateType, type, year, startTime, endTime); |
| | | JSONObject innerList = new JSONObject(); |
| | | if (type == 1) { |
| | | innerList.put("name", "返利订单"); |
| | | } else if (type == 2) { |
| | | innerList.put("name", "分享订单"); |
| | | } else if (type == 3) { |
| | | innerList.put("name", "邀请订单"); |
| | | } |
| | | |
| | | 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 |
| | | * 订单状态-暂未使用 |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getHistoryUnreceived") |
| | | public void getHistoryUnreceived(String callback, Integer type, PrintWriter out) { |
| | | try { |
| | | |
| | | Long total = commonOrderCountService.countByState(1); |
| | | if (total == null) { |
| | | total = 0L; |
| | | } |
| | | JSONObject data = new JSONObject(); |
| | | data.put("total", total); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 维权订单数 |
| | | * |
| | | * @param callback |
| | | * @param dateType |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getWeiQaunOrderNumber") |
| | | public void getWeiQaunOrderNumber(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; |
| | | } |
| | | |
| | | try { |
| | | JSONObject data = countWeiQaunOrder(dateType, year, startTime, endTime, 1); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 维权订单金额 |
| | | * |
| | | * @param callback |
| | | * @param dateType |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getWeiQaunOrderMoney") |
| | | public void getWeiQaunOrderMoney(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; |
| | | } |
| | | |
| | | try { |
| | | JSONObject data = countWeiQaunOrder(dateType, year, startTime, endTime, 2); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 统计红包信息 |
| | | * |
| | | * @param channelArray |
| | | * @param dateType |
| | | * @param state |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public JSONObject countWeiQaunOrder(Integer dateType, String year, String startTime, String endTime, int countType) |
| | | throws Exception { |
| | | |
| | | 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; |
| | | } |
| | | |
| | | Gson gson = new Gson(); |
| | | Object objectDate = null; |
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); |
| | | |
| | | JSONArray line_list = new JSONArray(); |
| | | List<ChartTDO> list = null; |
| | | if (countType == 1) { |
| | | list = commonOrderCountService.countWeiQaunOrderNumber(dateType, year, startTime, endTime); |
| | | } else if (countType == 2) { |
| | | list = commonOrderCountService.countWeiQaunOrderMoney(dateType, year, startTime, endTime); |
| | | } |
| | | |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", "总计"); |
| | | |
| | | 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); |
| | | |
| | | return data; |
| | | } |
| | | |
| | | @RequestMapping(value = "uploadTaoBaoWeiQuanOrder") |
| | | public void uploadWeiQuanOrder(String callback, HttpServletRequest request, PrintWriter out) { |
| | | try { |
| | | // 1. 先判断httpRequest 是否含有文件类型 |
| | | if (request instanceof MultipartHttpServletRequest) { |
| | | MultipartHttpServletRequest fileRequest = (MultipartHttpServletRequest) request; |
| | | MultipartFile file = fileRequest.getFile("file"); |
| | | List<TaoBaoWeiQuanOrder> orderList = TaoBaoOrderUtil.getWeiQuanOrders(file.getInputStream()); |
| | | for (TaoBaoWeiQuanOrder order : orderList) |
| | | taoBaoWeiQuanOrderService.addWeiQuanOrder(order);// 添加维权订单到数据库 |
| | | // 处理维权订单 |
| | | orderProcessService.weiQuanOrder(orderList); |
| | | } |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("更新成功")); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("更新失败")); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | package com.yeshi.fanli.dao.mybatis.order;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import org.apache.ibatis.annotations.Param;
|
| | |
|
| | | import com.yeshi.fanli.dto.ChartTDO;
|
| | | import com.yeshi.fanli.dto.order.CountOrderDTO;
|
| | |
|
| | | public interface CommonOrderCountMapper {
|
| | |
|
| | | /**
|
| | | * 当前各个状态订单数
|
| | | * |
| | | * @param state
|
| | | * 状态
|
| | | * @return
|
| | | */
|
| | | Long countByState(@Param("state") Integer state);
|
| | |
|
| | | |
| | | /**
|
| | | * 统计所有订单
|
| | | * |
| | | * @param channel
|
| | | * @return
|
| | | */
|
| | | Long countOrderBySourceTypeAndDay(@Param("preDay") String preDay, @Param("sourceType") int sourceType);
|
| | |
|
| | | |
| | | |
| | | /**
|
| | | * 奖金统计
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | Map<String, Object> countOrderNumberBySettleTime(@Param("uid") Long uid, @Param("state") Integer state,
|
| | | @Param("day") Integer day);
|
| | |
|
| | | /**
|
| | | * 统计自购、分享有效订单数量
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | long countValidOrder(@Param("uid") Long uid);
|
| | |
|
| | | /**
|
| | | * 根据订单号 查询金额
|
| | | * |
| | | * @param orderNo
|
| | | * @return
|
| | | */
|
| | | BigDecimal getMoneyByOrderNo(@Param("orderNo") String orderNo);
|
| | |
|
| | | /**
|
| | | * 统计已到账返利订单
|
| | | * |
| | | * @param uid
|
| | | * @param dateTime
|
| | | * @return
|
| | | */
|
| | | long countValidOrderByDate(@Param("uid") Long uid, @Param("dateTime") String dateTime);
|
| | |
|
| | | /**
|
| | | * 查询用户在同一店铺购买超过一定数量商品的店铺数量
|
| | | * |
| | | * @param typeList
|
| | | * -红包类型
|
| | | * @param uid
|
| | | * -用户ID
|
| | | * @param minSameShopGoodsCount
|
| | | * -同一店铺买的最小订单数
|
| | | * @return
|
| | | */
|
| | | long countSameShopOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid,
|
| | | @Param("minSameShopGoodsCount") int minSameShopGoodsCount);
|
| | | |
| | | /**
|
| | | * 查询用户购买相同商品超过一定的订单数量的商品数量
|
| | | * @param typeList
|
| | | * @param uid
|
| | | * @param minSameGoodsOrderCount
|
| | | * @return
|
| | | */
|
| | | long countSameGoodsOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid,
|
| | | @Param("minSameGoodsOrderCount") int minSameGoodsOrderCount);
|
| | | |
| | | |
| | | /**
|
| | | * 查询用户在同一店铺购买超过一定数量商品的店铺id
|
| | | * |
| | | * @param typeList
|
| | | * -红包类型
|
| | | * @param uid
|
| | | * -用户ID
|
| | | * @param minSameShopGoodsCount
|
| | | * -同一店铺买的最小订单数
|
| | | * @return
|
| | | */
|
| | | List<Long> getSameShopOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid,
|
| | | @Param("minSameShopGoodsCount") int minSameShopGoodsCount);
|
| | | |
| | | /**
|
| | | * 查询用户购买相同商品超过一定的订单数量的商品id
|
| | | * @param typeList
|
| | | * @param uid
|
| | | * @param minSameGoodsOrderCount
|
| | | * @return
|
| | | */
|
| | | List<Long> getSameGoodsOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid,
|
| | | @Param("minSameGoodsOrderCount") int minSameGoodsOrderCount);
|
| | | |
| | | |
| | | /**
|
| | | * 通过uid 日期筛选 下单数量
|
| | | * @param preDay
|
| | | * @param uid |
| | | * @return
|
| | | */
|
| | | Integer countOderByUidAndDate(@Param("preDay") Date preDay,@Param("uid") Long uid);
|
| | | |
| | | /**
|
| | | * 日期筛选 每个用户下单数量
|
| | | * @param preDay
|
| | | * @param uid |
| | | * @return
|
| | | */
|
| | | List<CountOrderDTO> countValidOrderByDay(@Param("preDay") String preDay);
|
| | | |
| | | /**
|
| | | * 通过多个uid 日期筛选 下单用户数量
|
| | | * @param preDay
|
| | | * @param uid |
| | | * @return
|
| | | */
|
| | | Integer countDownOrderUserByUidAndDate(@Param("preDay") Date preDay,@Param("list") List<Long> list);
|
| | | |
| | | /**
|
| | | * 统计订单产生佣金
|
| | | * @param preDay
|
| | | * @param list
|
| | | * @return
|
| | | */
|
| | | List<CountOrderDTO> countCommissionByDay(@Param("preDay") String preDay);
|
| | | |
| | | /**
|
| | | * 通过uid 日期筛选 下单数量
|
| | | * @param preDay
|
| | | * @return
|
| | | */
|
| | | Integer countOderByDate(@Param("preDay") String preDay);
|
| | | |
| | | /**
|
| | | * 统计订单产生佣金
|
| | | * @param preDay
|
| | | * @return
|
| | | */
|
| | | BigDecimal countCommissionByDate(@Param("preDay") String preDay);
|
| | | package com.yeshi.fanli.dao.mybatis.order; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import com.yeshi.fanli.dto.ChartTDO; |
| | | import com.yeshi.fanli.dto.order.CountOrderDTO; |
| | | |
| | | public interface CommonOrderCountMapper { |
| | | |
| | | /** |
| | | * 当前各个状态订单数 |
| | | * |
| | | * @param state |
| | | * 状态 |
| | | * @return |
| | | */ |
| | | Long countByState(@Param("state") Integer state); |
| | | |
| | | |
| | | /** |
| | | * 统计所有订单 |
| | | * |
| | | * @param channel |
| | | * @return |
| | | */ |
| | | Long countOrderBySourceTypeAndDay(@Param("preDay") String preDay, @Param("sourceType") int sourceType); |
| | | |
| | | |
| | | |
| | | /** |
| | | * 奖金统计 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | Map<String, Object> countOrderNumberBySettleTime(@Param("uid") Long uid, @Param("state") Integer state, |
| | | @Param("day") Integer day); |
| | | |
| | | /** |
| | | * 统计自购、分享有效订单数量 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | long countValidOrder(@Param("uid") Long uid); |
| | | |
| | | /** |
| | | * 根据订单号 查询金额 |
| | | * |
| | | * @param orderNo |
| | | * @return |
| | | */ |
| | | BigDecimal getMoneyByOrderNo(@Param("orderNo") String orderNo); |
| | | |
| | | /** |
| | | * 统计已到账返利订单 |
| | | * |
| | | * @param uid |
| | | * @param dateTime |
| | | * @return |
| | | */ |
| | | long countValidOrderByDate(@Param("uid") Long uid, @Param("dateTime") String dateTime); |
| | | |
| | | /** |
| | | * 查询用户在同一店铺购买超过一定数量商品的店铺数量 |
| | | * |
| | | * @param typeList |
| | | * -红包类型 |
| | | * @param uid |
| | | * -用户ID |
| | | * @param minSameShopGoodsCount |
| | | * -同一店铺买的最小订单数 |
| | | * @return |
| | | */ |
| | | long countSameShopOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid, |
| | | @Param("minSameShopGoodsCount") int minSameShopGoodsCount); |
| | | |
| | | /** |
| | | * 查询用户购买相同商品超过一定的订单数量的商品数量 |
| | | * @param typeList |
| | | * @param uid |
| | | * @param minSameGoodsOrderCount |
| | | * @return |
| | | */ |
| | | long countSameGoodsOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid, |
| | | @Param("minSameGoodsOrderCount") int minSameGoodsOrderCount); |
| | | |
| | | |
| | | /** |
| | | * 查询用户在同一店铺购买超过一定数量商品的店铺id |
| | | * |
| | | * @param typeList |
| | | * -红包类型 |
| | | * @param uid |
| | | * -用户ID |
| | | * @param minSameShopGoodsCount |
| | | * -同一店铺买的最小订单数 |
| | | * @return |
| | | */ |
| | | List<Long> getSameShopOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid, |
| | | @Param("minSameShopGoodsCount") int minSameShopGoodsCount); |
| | | |
| | | /** |
| | | * 查询用户购买相同商品超过一定的订单数量的商品id |
| | | * @param typeList |
| | | * @param uid |
| | | * @param minSameGoodsOrderCount |
| | | * @return |
| | | */ |
| | | List<Long> getSameGoodsOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid, |
| | | @Param("minSameGoodsOrderCount") int minSameGoodsOrderCount); |
| | | |
| | | |
| | | /** |
| | | * 通过uid 日期筛选 下单数量 |
| | | * @param preDay |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | Integer countOderByUidAndDate(@Param("preDay") Date preDay,@Param("uid") Long uid); |
| | | |
| | | /** |
| | | * 日期筛选 每个用户下单数量 |
| | | * @param preDay |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | List<CountOrderDTO> countValidOrderByDay(@Param("preDay") String preDay); |
| | | |
| | | /** |
| | | * 通过多个uid 日期筛选 下单用户数量 |
| | | * @param preDay |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | Integer countDownOrderUserByUidAndDate(@Param("preDay") Date preDay,@Param("list") List<Long> list); |
| | | |
| | | /** |
| | | * 统计订单产生佣金 |
| | | * @param preDay |
| | | * @param list |
| | | * @return |
| | | */ |
| | | List<CountOrderDTO> countCommissionByDay(@Param("preDay") String preDay); |
| | | |
| | | /** |
| | | * 通过uid 日期筛选 下单数量 |
| | | * @param preDay |
| | | * @return |
| | | */ |
| | | Integer countOderByDate(@Param("preDay") String preDay); |
| | | |
| | | /** |
| | | * 统计订单产生佣金 |
| | | * @param preDay |
| | | * @return |
| | | */ |
| | | BigDecimal countCommissionByDate(@Param("preDay") String preDay); |
| | | |
| | | |
| | | /** |
| | | * 查询最近50小于10的订单数量 |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | Integer countOderByUidAndLess10(@Param("uid") Long uid); |
| | | } |
| | |
| | | package com.yeshi.fanli.dao.mybatis.order;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import org.apache.ibatis.annotations.Param;
|
| | |
|
| | | import com.yeshi.fanli.dao.BaseMapper;
|
| | | import com.yeshi.fanli.entity.order.CommonOrder;
|
| | | import com.yeshi.fanli.entity.order.ESOrder;
|
| | | import com.yeshi.fanli.vo.order.CommonOrderVO;
|
| | | import com.yeshi.fanli.vo.order.OrderCountVO;
|
| | |
|
| | | public interface CommonOrderMapper extends BaseMapper<CommonOrder> {
|
| | |
|
| | | /**
|
| | | * 查询用户订单 并订单号分组
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | |
|
| | | List<CommonOrderVO> listUserOrder(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid,
|
| | | @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState,
|
| | | @Param("orderNo") String orderNo, @Param("startTime") String startTime, @Param("endTime") String endTime,
|
| | | @Param("day") Integer day, @Param("listSource") List<Integer> listSource);
|
| | |
|
| | | /**
|
| | | * 统计用户订单 并订单号分组
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | long countUserOrder(@Param("uid") Long uid, @Param("state") Integer state, @Param("type") Integer type,
|
| | | @Param("orderState") Integer orderState, @Param("orderNo") String orderNo,
|
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day,
|
| | | @Param("listSource") List<Integer> listSource);
|
| | |
|
| | | /**
|
| | | * 判断部分失效状态
|
| | | * |
| | | * @param uid
|
| | | * @param orderNo
|
| | | * @return
|
| | | */
|
| | | CommonOrderVO getBuFenOrderState(@Param("uid") Long uid, @Param("orderNo") String orderNo);
|
| | |
|
| | | /**
|
| | | * 根据用户ID,订单状态和订单结算时间统计订单的数量
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * @param minDate
|
| | | * @param maxDate
|
| | | * @return
|
| | | */
|
| | | long countByUidAndOrderStateWithOrderBalanceTime(@Param("uid") Long uid, @Param("state") int state,
|
| | | @Param("minDate") Date minDate, @Param("maxDate") Date maxDate);
|
| | |
|
| | | /**
|
| | | * 根据订单号、订单类型查询商品
|
| | | * |
| | | * @param list
|
| | | * 订单对象
|
| | | * @return
|
| | | */
|
| | | List<CommonOrderVO> listOrderGoodsInfo(List<CommonOrderVO> list);
|
| | |
|
| | | /**
|
| | | * 统计历史订单数量
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | Map<String, BigDecimal> countHistoryOrder(@Param("uid") Long uid, @Param("day") Integer day,
|
| | | @Param("source") Integer source);
|
| | |
|
| | | |
| | | /**
|
| | | * 统计有效订单数量
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | OrderCountVO getOrderCount(@Param("uid") Long uid, @Param("day")Integer day, @Param("listSource") List<Integer> listSource);
|
| | | |
| | | /**
|
| | | * 昨日总订单-根据红包类型 自购 邀请 分享
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | long countUserOrderToApp(@Param("uid") Long uid, @Param("type") Integer type,
|
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day,
|
| | | @Param("source") Integer source,@Param("state") Integer state, @Param("stateOrder") Integer stateOrder);
|
| | |
|
| | | /**
|
| | | * 奖金订单数量
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | long countBonusOrderNumber(@Param("uid") Long uid, @Param("type") Integer type, @Param("day") Integer day,
|
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source);
|
| | |
|
| | | /**
|
| | | * 奖金统计
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | BigDecimal countBonusOrderMoney(@Param("uid") Long uid, @Param("type") Integer type, @Param("day") Integer day,
|
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source);
|
| | |
|
| | | /**
|
| | | * 奖金统计
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | Map<String, Object> countBonusOrderMoneyAndNumber(@Param("uid") Long uid, @Param("type") Integer type,
|
| | | @Param("day") Integer day, @Param("startTime") String startTime, @Param("endTime") String endTime,
|
| | | @Param("source") Integer source);
|
| | |
|
| | | int countByOrderNOAndOrderType(@Param("orderNO") String orderNO, @Param("orderType") int orderType);
|
| | |
|
| | | /**
|
| | | * 根据订单号与订单排序值获取详情
|
| | | * |
| | | * @param orderNo
|
| | | * -订单号
|
| | | * @param orderBy
|
| | | * -订单排序值
|
| | | * @param orderType
|
| | | * -订单类型
|
| | | * @return
|
| | | */
|
| | | CommonOrder selectByOrderNoAndOrderTypeAndOrderBy(@Param("orderNo") String orderNo,
|
| | | @Param("orderType") int orderType, @Param("orderBy") int orderBy);
|
| | |
|
| | | /**
|
| | | * 订单列表查询
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @param state
|
| | | * @param type
|
| | | * @param orderState
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | */
|
| | | List<CommonOrderVO> listQueryByUid(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid,
|
| | | @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState,
|
| | | @Param("orderNo") String orderNo, @Param("startTime") String startTime, @Param("endTime") String endTime,
|
| | | @Param("day") Integer day);
|
| | |
|
| | | /**
|
| | | * 统计
|
| | | */
|
| | | long countQueryByUid(@Param("uid") Long uid, @Param("state") Integer state, @Param("type") Integer type,
|
| | | @Param("orderState") Integer orderState, @Param("orderNo") String orderNo,
|
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day);
|
| | |
|
| | | /**
|
| | | * 订单列表查询
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @param state
|
| | | * @param type
|
| | | * @param orderState
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | */
|
| | | List<CommonOrderVO> listQuery(@Param("start") long start, @Param("count") int count,
|
| | | @Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state,
|
| | | @Param("type") Integer type, @Param("orderState") Integer orderState, @Param("startTime") String startTime,
|
| | | @Param("endTime") String endTime, @Param("source") Integer source,
|
| | | @Param("listShopId")List<Long> listShopId, @Param("listGoodsId")List<Long> listGoodsId,
|
| | | @Param("minTime")Date minTime, @Param("money")BigDecimal money);
|
| | |
|
| | | /**
|
| | | * 订单列表查询(不包含子订单)
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param keyType
|
| | | * @param key
|
| | | * @param state
|
| | | * @param type
|
| | | * @param orderState
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @param source
|
| | | * @return
|
| | | */
|
| | | List<CommonOrderVO> listQueryWithNoChild(@Param("start") long start, @Param("count") int count,
|
| | | @Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state,
|
| | | @Param("type") Integer type, @Param("orderState") Integer orderState, @Param("startTime") String startTime,
|
| | | @Param("endTime") String endTime, @Param("source") Integer source);
|
| | |
|
| | | /**
|
| | | * 统计
|
| | | */
|
| | | long countQuery(@Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state,
|
| | | @Param("type") Integer type, @Param("orderState") Integer orderState, @Param("startTime") String startTime,
|
| | | @Param("endTime") String endTime, @Param("source") Integer source,
|
| | | @Param("listShopId")List<Long> listShopId, @Param("listGoodsId")List<Long> listGoodsId,
|
| | | @Param("minTime")Date minTime, @Param("money")BigDecimal money);
|
| | |
|
| | | long countQueryWithNoChild(@Param("keyType") Integer keyType, @Param("key") String key,
|
| | | @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState,
|
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source);
|
| | |
|
| | | /**
|
| | | * 根据来源类型与订单号查询列表
|
| | | * |
| | | * @param sourceType
|
| | | * @param orderNo
|
| | | * @return
|
| | | */
|
| | | List<CommonOrder> listBySourceTypeAndOrderNo(@Param("sourceType") int sourceType, @Param("orderNo") String orderNo);
|
| | |
|
| | | /**
|
| | | * 查询券奖励金额以及订单信息
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * @param orderNo
|
| | | * @return
|
| | | */
|
| | | List<CommonOrderVO> getCouponHongbaoByOrderNo(@Param("uid") Long uid, @Param("hongBaoState") Integer hongBaoState,
|
| | | @Param("orderNo") String orderNo);
|
| | |
|
| | | /**
|
| | | * 查询券奖励金额以及订单信息
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * @param orderNo
|
| | | * @return
|
| | | */
|
| | | CommonOrderVO getCommonOrderByOrderNo(@Param("uid") Long uid, @Param("orderNo") String orderNo,
|
| | | @Param("orderState") Integer orderState, @Param("sourceType") Integer sourceType);
|
| | |
|
| | | /**
|
| | | * 根据来源和交易ID获取订单详情
|
| | | * |
| | | * @param sourceType
|
| | | * @param tradeId
|
| | | * @return
|
| | | */
|
| | |
|
| | | CommonOrder selectBySourceTypeAndTradeId(@Param("sourceType") int sourceType, @Param("tradeId") String tradeId);
|
| | |
|
| | | /**
|
| | | * 根据来源和交易ID获取订单列表
|
| | | * |
| | | * @param sourceType
|
| | | * @param tradeId
|
| | | * @return
|
| | | */
|
| | | List<CommonOrder> listBySourceTypeAndTradeId(@Param("sourceType") int sourceType, @Param("tradeId") String tradeId);
|
| | |
|
| | | /**
|
| | | * 根据来源和交易ID获取订单列表
|
| | | * |
| | | * @param sourceType
|
| | | * @param tradeIdList
|
| | | * @return
|
| | | */
|
| | | List<CommonOrder> listBySourceTypeAndTradeIdList(@Param("sourceType") int sourceType,
|
| | | @Param("tradeIdList") List<String> tradeIdList);
|
| | |
|
| | | /**
|
| | | * |
| | | * @param sourceType
|
| | | * @param state
|
| | | * @param minTime
|
| | | * -最大创建时间
|
| | | * @param maxTime
|
| | | * -最小创建时间
|
| | | * @return
|
| | | */
|
| | | List<CommonOrder> listBySourceTypeAndStateAndThirdCrateTime(@Param("sourceType") int sourceType,
|
| | | @Param("state") Integer state, @Param("minTime") Long minTime, @Param("maxTime") Long maxTime,
|
| | | @Param("start") long start, @Param("count") int count);
|
| | |
|
| | | /**
|
| | | * 根据订单号查询
|
| | | * |
| | | * @param orderNO
|
| | | * @return
|
| | | */
|
| | | List<CommonOrder> getByOrderNo(@Param("uid") Long uid, @Param("orderNo") String orderNo);
|
| | |
|
| | | |
| | | /**
|
| | | * 根据用户ID查询
|
| | | * @param uid
|
| | | * @param stateList
|
| | | * @param start
|
| | | * @param count
|
| | | * @return
|
| | | */
|
| | | List<CommonOrder> listByUid(@Param("uid")Long uid,@Param("stateList") List<Integer> stateList,@Param("start") long start,@Param("count") int count);
|
| | |
|
| | | |
| | | /**
|
| | | * 查询首笔有效到账订单
|
| | | * @param uid |
| | | * @param typeHB 类型: 1自购 2分享 3邀请
|
| | | * @param typeDate 日期类型: 3本月 4上月
|
| | | * @return
|
| | | */
|
| | | CommonOrderVO firstValidOrderByUid(@Param("uid") Long uid, @Param("typeHB") Integer typeHB,
|
| | | @Param("typeDate") Integer typeDate);
|
| | | |
| | | |
| | | /**
|
| | | * 获取首笔分享订单;
|
| | | * @param uid |
| | | * @return
|
| | | */
|
| | | CommonOrder getFirstShareOrderByUid(@Param("uid") Long uid);
|
| | | |
| | | /**
|
| | | * 统计订单号到账金额
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | BigDecimal getTotalRewardMoneyByOrderNoAndSourceType(@Param("orderNo") String orderNo, @Param("sourceType") Integer sourceType);
|
| | | |
| | | /**
|
| | | * 统计24小时有效自购订单
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | long count24HValidOrderByUid(@Param("uid") Long uid, @Param("minTime") Date minTime);
|
| | | |
| | | |
| | | /**
|
| | | * 搜索订单
|
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @param list
|
| | | * @return
|
| | | */
|
| | | List<CommonOrderVO> searchOrderByUid(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid,
|
| | | @Param("list")List<ESOrder> list);
|
| | |
|
| | | |
| | | /**
|
| | | * 搜索订单
|
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @param list
|
| | | * @return
|
| | | */
|
| | | long countSearchOrderByUid(@Param("uid") Long uid, @Param("list")List<ESOrder> list);
|
| | |
|
| | | package com.yeshi.fanli.dao.mybatis.order; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import com.yeshi.fanli.dao.BaseMapper; |
| | | import com.yeshi.fanli.entity.order.CommonOrder; |
| | | import com.yeshi.fanli.entity.order.ESOrder; |
| | | import com.yeshi.fanli.vo.order.CommonOrderVO; |
| | | import com.yeshi.fanli.vo.order.OrderCountVO; |
| | | |
| | | public interface CommonOrderMapper extends BaseMapper<CommonOrder> { |
| | | |
| | | /** |
| | | * 查询用户订单 并订单号分组 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | |
| | | List<CommonOrderVO> listUserOrder(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid, |
| | | @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState, |
| | | @Param("orderNo") String orderNo, @Param("startTime") String startTime, @Param("endTime") String endTime, |
| | | @Param("day") Integer day, @Param("listSource") List<Integer> listSource); |
| | | |
| | | /** |
| | | * 统计用户订单 并订单号分组 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | long countUserOrder(@Param("uid") Long uid, @Param("state") Integer state, @Param("type") Integer type, |
| | | @Param("orderState") Integer orderState, @Param("orderNo") String orderNo, |
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day, |
| | | @Param("listSource") List<Integer> listSource); |
| | | |
| | | /** |
| | | * 判断部分失效状态 |
| | | * |
| | | * @param uid |
| | | * @param orderNo |
| | | * @return |
| | | */ |
| | | CommonOrderVO getBuFenOrderState(@Param("uid") Long uid, @Param("orderNo") String orderNo); |
| | | |
| | | /** |
| | | * 根据用户ID,订单状态和订单结算时间统计订单的数量 |
| | | * |
| | | * @param uid |
| | | * @param state |
| | | * @param minDate |
| | | * @param maxDate |
| | | * @return |
| | | */ |
| | | long countByUidAndOrderStateWithOrderBalanceTime(@Param("uid") Long uid, @Param("state") int state, |
| | | @Param("minDate") Date minDate, @Param("maxDate") Date maxDate); |
| | | |
| | | /** |
| | | * 根据订单号、订单类型查询商品 |
| | | * |
| | | * @param list |
| | | * 订单对象 |
| | | * @return |
| | | */ |
| | | List<CommonOrderVO> listOrderGoodsInfo(List<CommonOrderVO> list); |
| | | |
| | | /** |
| | | * 统计历史订单数量 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | Map<String, BigDecimal> countHistoryOrder(@Param("uid") Long uid, @Param("day") Integer day, |
| | | @Param("source") Integer source); |
| | | |
| | | |
| | | /** |
| | | * 统计有效订单数量 |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | OrderCountVO getOrderCount(@Param("uid") Long uid, @Param("day")Integer day, @Param("listSource") List<Integer> listSource); |
| | | |
| | | /** |
| | | * 昨日总订单-根据红包类型 自购 邀请 分享 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | long countUserOrderToApp(@Param("uid") Long uid, @Param("type") Integer type, |
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day, |
| | | @Param("source") Integer source,@Param("state") Integer state, @Param("stateOrder") Integer stateOrder); |
| | | |
| | | /** |
| | | * 奖金订单数量 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | long countBonusOrderNumber(@Param("uid") Long uid, @Param("type") Integer type, @Param("day") Integer day, |
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source); |
| | | |
| | | /** |
| | | * 奖金统计 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | BigDecimal countBonusOrderMoney(@Param("uid") Long uid, @Param("type") Integer type, @Param("day") Integer day, |
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source); |
| | | |
| | | /** |
| | | * 奖金统计 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | Map<String, Object> countBonusOrderMoneyAndNumber(@Param("uid") Long uid, @Param("type") Integer type, |
| | | @Param("day") Integer day, @Param("startTime") String startTime, @Param("endTime") String endTime, |
| | | @Param("source") Integer source); |
| | | |
| | | int countByOrderNOAndOrderType(@Param("orderNO") String orderNO, @Param("orderType") int orderType); |
| | | |
| | | /** |
| | | * 根据订单号与订单排序值获取详情 |
| | | * |
| | | * @param orderNo |
| | | * -订单号 |
| | | * @param orderBy |
| | | * -订单排序值 |
| | | * @param orderType |
| | | * -订单类型 |
| | | * @return |
| | | */ |
| | | CommonOrder selectByOrderNoAndOrderTypeAndOrderBy(@Param("orderNo") String orderNo, |
| | | @Param("orderType") int orderType, @Param("orderBy") int orderBy); |
| | | |
| | | /** |
| | | * 订单列表查询 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @param uid |
| | | * @param state |
| | | * @param type |
| | | * @param orderState |
| | | * @param startTime |
| | | * @param endTime |
| | | * @return |
| | | */ |
| | | List<CommonOrderVO> listQueryByUid(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid, |
| | | @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState, |
| | | @Param("orderNo") String orderNo, @Param("startTime") String startTime, @Param("endTime") String endTime, |
| | | @Param("day") Integer day); |
| | | |
| | | /** |
| | | * 统计 |
| | | */ |
| | | long countQueryByUid(@Param("uid") Long uid, @Param("state") Integer state, @Param("type") Integer type, |
| | | @Param("orderState") Integer orderState, @Param("orderNo") String orderNo, |
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day); |
| | | |
| | | /** |
| | | * 订单列表查询 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @param uid |
| | | * @param state |
| | | * @param type |
| | | * @param orderState |
| | | * @param startTime |
| | | * @param endTime |
| | | * @return |
| | | */ |
| | | List<CommonOrderVO> listQuery(@Param("start") long start, @Param("count") int count, |
| | | @Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state, |
| | | @Param("type") Integer type, @Param("orderState") Integer orderState, @Param("startTime") String startTime, |
| | | @Param("endTime") String endTime, @Param("source") Integer source, |
| | | @Param("listShopId")List<Long> listShopId, @Param("listGoodsId")List<Long> listGoodsId, |
| | | @Param("minTime")Date minTime, @Param("money")BigDecimal money, @Param("payment") BigDecimal payment); |
| | | |
| | | /** |
| | | * 订单列表查询(不包含子订单) |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @param keyType |
| | | * @param key |
| | | * @param state |
| | | * @param type |
| | | * @param orderState |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param source |
| | | * @return |
| | | */ |
| | | List<CommonOrderVO> listQueryWithNoChild(@Param("start") long start, @Param("count") int count, |
| | | @Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state, |
| | | @Param("type") Integer type, @Param("orderState") Integer orderState, @Param("startTime") String startTime, |
| | | @Param("endTime") String endTime, @Param("source") Integer source, @Param("payment") BigDecimal payment); |
| | | |
| | | /** |
| | | * 统计 |
| | | */ |
| | | long countQuery(@Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state, |
| | | @Param("type") Integer type, @Param("orderState") Integer orderState, @Param("startTime") String startTime, |
| | | @Param("endTime") String endTime, @Param("source") Integer source, |
| | | @Param("listShopId")List<Long> listShopId, @Param("listGoodsId")List<Long> listGoodsId, |
| | | @Param("minTime")Date minTime, @Param("money")BigDecimal money,@Param("payment") BigDecimal payment); |
| | | |
| | | long countQueryWithNoChild(@Param("keyType") Integer keyType, @Param("key") String key, |
| | | @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState, |
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source, @Param("payment") BigDecimal payment); |
| | | |
| | | /** |
| | | * 根据来源类型与订单号查询列表 |
| | | * |
| | | * @param sourceType |
| | | * @param orderNo |
| | | * @return |
| | | */ |
| | | List<CommonOrder> listBySourceTypeAndOrderNo(@Param("sourceType") int sourceType, @Param("orderNo") String orderNo); |
| | | |
| | | /** |
| | | * 查询券奖励金额以及订单信息 |
| | | * |
| | | * @param uid |
| | | * @param state |
| | | * @param orderNo |
| | | * @return |
| | | */ |
| | | List<CommonOrderVO> getCouponHongbaoByOrderNo(@Param("uid") Long uid, @Param("hongBaoState") Integer hongBaoState, |
| | | @Param("orderNo") String orderNo); |
| | | |
| | | /** |
| | | * 查询券奖励金额以及订单信息 |
| | | * |
| | | * @param uid |
| | | * @param state |
| | | * @param orderNo |
| | | * @return |
| | | */ |
| | | CommonOrderVO getCommonOrderByOrderNo(@Param("uid") Long uid, @Param("orderNo") String orderNo, |
| | | @Param("orderState") Integer orderState, @Param("sourceType") Integer sourceType); |
| | | |
| | | /** |
| | | * 根据来源和交易ID获取订单详情 |
| | | * |
| | | * @param sourceType |
| | | * @param tradeId |
| | | * @return |
| | | */ |
| | | |
| | | CommonOrder selectBySourceTypeAndTradeId(@Param("sourceType") int sourceType, @Param("tradeId") String tradeId); |
| | | |
| | | /** |
| | | * 根据来源和交易ID获取订单列表 |
| | | * |
| | | * @param sourceType |
| | | * @param tradeId |
| | | * @return |
| | | */ |
| | | List<CommonOrder> listBySourceTypeAndTradeId(@Param("sourceType") int sourceType, @Param("tradeId") String tradeId); |
| | | |
| | | /** |
| | | * 根据来源和交易ID获取订单列表 |
| | | * |
| | | * @param sourceType |
| | | * @param tradeIdList |
| | | * @return |
| | | */ |
| | | List<CommonOrder> listBySourceTypeAndTradeIdList(@Param("sourceType") int sourceType, |
| | | @Param("tradeIdList") List<String> tradeIdList); |
| | | |
| | | /** |
| | | * |
| | | * @param sourceType |
| | | * @param state |
| | | * @param minTime |
| | | * -最大创建时间 |
| | | * @param maxTime |
| | | * -最小创建时间 |
| | | * @return |
| | | */ |
| | | List<CommonOrder> listBySourceTypeAndStateAndThirdCrateTime(@Param("sourceType") int sourceType, |
| | | @Param("state") Integer state, @Param("minTime") Long minTime, @Param("maxTime") Long maxTime, |
| | | @Param("start") long start, @Param("count") int count); |
| | | |
| | | /** |
| | | * 根据订单号查询 |
| | | * |
| | | * @param orderNO |
| | | * @return |
| | | */ |
| | | List<CommonOrder> getByOrderNo(@Param("uid") Long uid, @Param("orderNo") String orderNo); |
| | | |
| | | |
| | | /** |
| | | * 根据用户ID查询 |
| | | * @param uid |
| | | * @param stateList |
| | | * @param start |
| | | * @param count |
| | | * @return |
| | | */ |
| | | List<CommonOrder> listByUid(@Param("uid")Long uid,@Param("stateList") List<Integer> stateList,@Param("start") long start,@Param("count") int count); |
| | | |
| | | |
| | | /** |
| | | * 查询首笔有效到账订单 |
| | | * @param uid |
| | | * @param typeHB 类型: 1自购 2分享 3邀请 |
| | | * @param typeDate 日期类型: 3本月 4上月 |
| | | * @return |
| | | */ |
| | | CommonOrderVO firstValidOrderByUid(@Param("uid") Long uid, @Param("typeHB") Integer typeHB, |
| | | @Param("typeDate") Integer typeDate); |
| | | |
| | | |
| | | /** |
| | | * 获取首笔分享订单; |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | CommonOrder getFirstShareOrderByUid(@Param("uid") Long uid); |
| | | |
| | | /** |
| | | * 统计订单号到账金额 |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | BigDecimal getTotalRewardMoneyByOrderNoAndSourceType(@Param("orderNo") String orderNo, @Param("sourceType") Integer sourceType); |
| | | |
| | | /** |
| | | * 统计24小时有效自购订单 |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | long count24HValidOrderByUid(@Param("uid") Long uid, @Param("minTime") Date minTime); |
| | | |
| | | |
| | | /** |
| | | * 搜索订单 |
| | | * @param start |
| | | * @param count |
| | | * @param uid |
| | | * @param list |
| | | * @return |
| | | */ |
| | | List<CommonOrderVO> searchOrderByUid(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid, |
| | | @Param("list")List<ESOrder> list); |
| | | |
| | | |
| | | /** |
| | | * 搜索订单 |
| | | * @param start |
| | | * @param count |
| | | * @param uid |
| | | * @param list |
| | | * @return |
| | | */ |
| | | long countSearchOrderByUid(@Param("uid") Long uid, @Param("list")List<ESOrder> list); |
| | | |
| | | } |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?>
|
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
| | |
|
| | | <mapper namespace="com.yeshi.fanli.dao.mybatis.order.CommonOrderCountMapper">
|
| | | <resultMap id="ChartMap" type="com.yeshi.fanli.dto.ChartTDO">
|
| | | <result column="showDate" property="showDate" jdbcType="VARCHAR" />
|
| | | <result column="showValue" property="showValue" jdbcType="VARCHAR" />
|
| | | </resultMap>
|
| | |
|
| | | <resultMap id="CountOrderMap" type="com.yeshi.fanli.dto.order.CountOrderDTO">
|
| | | <result column="uid" property="uid" jdbcType="BIGINT" />
|
| | | <result column="totalOrder" property="totalOrder" jdbcType="INTEGER" />
|
| | | <result column="commission" property="commission" jdbcType="DECIMAL" />
|
| | | </resultMap>
|
| | | |
| | | <sql id="Column_DateType">
|
| | | <if test="dateType == 1">
|
| | | DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d') AS 'showDate'
|
| | | </if>
|
| | | <if test="dateType == 2">
|
| | | DATE_FORMAT(t.`co_third_create_time`,'%m') AS 'showDate'
|
| | | </if>
|
| | | <if test="dateType == 3">
|
| | | DATE_FORMAT(t.`co_third_create_time`,'%Y') AS 'showDate'
|
| | | </if>
|
| | | </sql>
|
| | |
|
| | | <sql id="Count_Select_DateType">
|
| | | <if test="startTime != null and startTime != '' ">
|
| | | AND DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d')<![CDATA[ >= ]]>'${startTime}'
|
| | | </if>
|
| | | <if test="endTime != null and endTime != '' ">
|
| | | AND DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d') <![CDATA[ <= ]]>'${endTime}'
|
| | | </if>
|
| | | <if test="year != null and year != '' ">
|
| | | AND DATE_FORMAT(t.`co_third_create_time`,'%Y') = '${year}'
|
| | | </if>
|
| | | </sql>
|
| | |
|
| | | <sql id="Count_Group_DateType">
|
| | | <if test="dateType == 1">
|
| | | GROUP BY DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d')
|
| | | </if>
|
| | | <if test="dateType == 2">
|
| | | GROUP BY DATE_FORMAT(t.`co_third_create_time`,'%Y-%m')
|
| | | </if>
|
| | | <if test="dateType == 3">
|
| | | GROUP BY DATE_FORMAT(t.`co_third_create_time`,'%Y')
|
| | | </if>
|
| | | </sql>
|
| | |
|
| | | <select id="countByState" resultType="java.lang.Long">
|
| | | SELECT IFNULL(COUNT(t.`co_id`),0) FROM `yeshi_ec_common_order` t |
| | | WHERE 1=1 |
| | | <if test="type != null"> |
| | | AND t.`co_state` = #{state}
|
| | | </if>
|
| | | </select>
|
| | | |
| | | <select id="countOrderBySourceTypeAndDay" resultType="java.lang.Long">
|
| | | SELECT COUNT(t.`co_id`) FROM `yeshi_ec_common_order` t |
| | | WHERE t.co_source_type=#{sourceType} AND DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d') = #{preDay}
|
| | | </select>
|
| | | |
| | | |
| | | <select id="countOrderNumberBySettleTime" resultType="java.util.HashMap">
|
| | | <!-- 统计历史订单数量 根据结算时间 -->
|
| | | SELECT SUM(A.self)AS totalSelf,SUM(A.shared)AS totalShared,SUM(A.invite)AS totalInvite
|
| | | FROM ( |
| | | <!-- 返利订单 -->
|
| | | SELECT IFNULL(COUNT(ho_id),0) AS self,0 AS shared,0 AS invite
|
| | | FROM (SELECT ho.`ho_id` FROM yeshi_ec_hongbao_order ho |
| | | LEFT JOIN ( |
| | | SELECT * FROM yeshi_ec_hongbao_v2 v2 |
| | | WHERE v2.`hb_uid`= ${uid} and v2.hb_state!=4 AND (v2.`hb_type` = 1 OR v2.`hb_type` = 2)
|
| | | ) hb ON hb.hb_id=ho.`ho_hongbao_id` <!-- 自购订单 -->
|
| | | LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
|
| | | WHERE hb.hb_id IS NOT NULL |
| | | <if test="state != null"> |
| | | AND co.`co_state` = ${state} |
| | | </if>
|
| | | |
| | | <if test="day != null and day == 1"> <!-- 今天 -->
|
| | | AND TO_DAYS(co.`co_settle_time`) = TO_DAYS(NOW())
|
| | | </if>
|
| | | <if test="day != null and day == 2"> <!-- 昨天 -->
|
| | | AND TO_DAYS(NOW()) - TO_DAYS(co.co_settle_time) = 1
|
| | | </if>
|
| | | <if test="day != null and day == 3"> <!-- 本月 -->
|
| | | AND DATE_FORMAT(co.`co_settle_time`,'%Y%m') =
|
| | | DATE_FORMAT(CURDATE(),'%Y%m')
|
| | | </if>
|
| | | <if test="day != null and day == 4"> <!-- 上月 -->
|
| | | AND PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'),
|
| | | DATE_FORMAT(co.`co_settle_time`, '%Y%m')) = 1
|
| | | </if>
|
| | | GROUP BY co.`co_order_no`, co.`co_source_type`)YX
|
| | | |
| | | UNION ALL
|
| | | <!-- 分享订单 -->
|
| | | SELECT 0 AS self,IFNULL(COUNT(ho_id),0) AS shared,0 AS invite
|
| | | FROM (SELECT ho.`ho_id` FROM yeshi_ec_hongbao_order ho |
| | | LEFT JOIN ( |
| | | SELECT * FROM yeshi_ec_hongbao_v2 v2 |
| | | WHERE v2.`hb_uid`= ${uid} AND v2.`hb_type` = 20 and v2.hb_state!=4
|
| | | ) hb ON hb.hb_id=ho.`ho_hongbao_id` <!-- 分享订单 -->
|
| | | |
| | | LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
|
| | | WHERE hb.hb_id IS NOT NULL and hb.hb_state!=4
|
| | | <if test="state != null"> |
| | | AND co.`co_state` = ${state} |
| | | </if>
|
| | | |
| | | <if test="day != null and day == 1"> <!-- 今天 -->
|
| | | AND TO_DAYS(co.`co_settle_time`) = TO_DAYS(NOW())
|
| | | </if>
|
| | | <if test="day != null and day == 2"> <!-- 昨天 -->
|
| | | AND TO_DAYS(NOW()) - TO_DAYS(co.`co_settle_time`) = 1
|
| | | </if>
|
| | | <if test="day != null and day == 3"> <!-- 本月 -->
|
| | | AND DATE_FORMAT(co.`co_settle_time`,'%Y%m') =
|
| | | DATE_FORMAT(CURDATE(),'%Y%m')
|
| | | </if>
|
| | | <if test="day != null and day == 4"> <!-- 上月 -->
|
| | | AND PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'),
|
| | | DATE_FORMAT(co.`co_settle_time`, '%Y%m')) = 1
|
| | | </if>
|
| | | GROUP BY co.`co_order_no`, co.`co_source_type`)WQ
|
| | | |
| | | UNION ALL
|
| | | <!-- 邀请订单 -->
|
| | | SELECT 0 AS self,0 AS shared,IFNULL(COUNT(ho_id),0) AS invite |
| | | FROM (SELECT ho.`ho_id` FROM yeshi_ec_hongbao_order ho |
| | | LEFT JOIN ( |
| | | SELECT * FROM yeshi_ec_hongbao_v2 v2 |
| | | WHERE v2.`hb_uid`= ${uid}
|
| | | AND (v2.`hb_type` = 5 OR v2.`hb_type` = 6 OR v2.`hb_type` = 7
|
| | | OR v2.`hb_type` = 21 OR v2.`hb_type` = 22 ) and v2.hb_state!=4
|
| | | ) hbp ON hbp.hb_pid=ho.`ho_hongbao_id`
|
| | | LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
|
| | | WHERE hbp.hb_id IS NOT NULL and hbp.hb_state!=4
|
| | | <if test="state != null"> |
| | | AND co.`co_state` = ${state} |
| | | </if>
|
| | | <if test="day != null and day == 1"> <!-- 今天 -->
|
| | | AND TO_DAYS(co.`co_settle_time`) = TO_DAYS(NOW())
|
| | | </if>
|
| | | <if test="day != null and day == 2"> <!-- 昨天 -->
|
| | | AND TO_DAYS(NOW()) - TO_DAYS(co.`co_settle_time`) = 1
|
| | | </if>
|
| | | <if test="day != null and day == 3"> <!-- 本月 -->
|
| | | AND DATE_FORMAT(co.`co_settle_time`,'%Y%m') =
|
| | | DATE_FORMAT(CURDATE(),'%Y%m')
|
| | | </if>
|
| | | <if test="day != null and day == 4"> <!-- 上月 -->
|
| | | AND PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'),
|
| | | DATE_FORMAT(co.`co_settle_time`, '%Y%m')) = 1
|
| | | </if>
|
| | | GROUP BY co.`co_order_no`, co.`co_source_type`)SX
|
| | | )A
|
| | | </select>
|
| | | |
| | | <select id="countValidOrder" resultType="java.lang.Long">
|
| | | SELECT IFNULL(COUNT(co.`co_id`),0) FROM yeshi_ec_hongbao_order ho |
| | | LEFT JOIN (SELECT * FROM yeshi_ec_hongbao_v2 v2 |
| | | WHERE v2.`hb_uid`= #{uid} AND v2.`hb_type` IN(1,20))hb |
| | | ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id`
|
| | | LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
|
| | | WHERE hb.hb_id IS NOT NULL AND <![CDATA[co.`co_state` <> 4]]>
|
| | | </select>
|
| | | |
| | | <select id="getMoneyByOrderNo" resultType="java.math.BigDecimal">
|
| | | SELECT SUM(v2.`hb_money`) FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id`
|
| | | LEFT JOIN yeshi_ec_hongbao_v2 v2 ON v2.hb_id=ho.`ho_hongbao_id` |
| | | WHERE co.`co_order_no` = #{orderNo}
|
| | | </select>
|
| | | |
| | | <select id="countValidOrderByDate" resultType="Long">
|
| | | SELECT IFNULL(COUNT(co_order_no),0) FROM
|
| | | (SELECT DISTINCT co.co_order_no FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id`
|
| | | LEFT JOIN yeshi_ec_hongbao_v2 v2 ON v2.hb_id=ho.`ho_hongbao_id` |
| | | WHERE co.`co_uid` = #{uid} AND v2.`hb_type` = 1 |
| | | AND v2.`hb_state` = 3 AND AND co.`co_third_create_time` <![CDATA[>]]> #{dateTime})A
|
| | | </select>
|
| | | |
| | | <select id="countSameShopOrderByUidAndHongBaoType" resultType="Long">
|
| | | SELECT COUNT(*) FROM
|
| | | (
|
| | | SELECT a.*,COUNT(*) AS num FROM |
| | | (
|
| | | SELECT co.*,COUNT(*) AS c,g.`cog_shop_id` AS shopId FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` |
| | | LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` |
| | | LEFT JOIN yeshi_ec_common_order_goods g ON co.`co_order_goods_id`=g.`cog_id` |
| | | WHERE co.`co_uid`=#{uid} AND g.`cog_shop_id` <![CDATA[<>]]> 725677994 <!-- 天猫超市 -->
|
| | | <if test="typeList!=null">
|
| | | <foreach collection="typeList" item="type" open=" and (" separator=" or " close=")">
|
| | | v.`hb_type`=#{type}
|
| | | </foreach>
|
| | | </if>
|
| | | AND v.`hb_id` IS NOT NULL |
| | | AND (co.`co_state`=1 OR co.`co_state`=2 OR co.`co_state`=3) |
| | | AND g.`cog_shop_id`>0 GROUP BY co.`co_order_no`,co.`co_source_type`
|
| | | ) a GROUP BY a.shopId
|
| | | ) b WHERE b.num>=#{minSameShopGoodsCount};
|
| | | </select>
|
| | | |
| | | |
| | | <select id="countSameGoodsOrderByUidAndHongBaoType" resultType="Long">
|
| | | SELECT COUNT(*) FROM
|
| | | (
|
| | | SELECT a.goodsId,COUNT(*) AS c FROM
|
| | | (
|
| | | SELECT co.`co_order_goods_id` AS goodsId,co.`co_order_no` FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` |
| | | LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` |
| | | LEFT JOIN yeshi_ec_common_order_goods g ON co.`co_order_goods_id`=g.`cog_id` |
| | | WHERE co.`co_uid`=#{uid} AND g.`cog_shop_id` <![CDATA[<>]]> 725677994 <!-- 天猫超市 -->
|
| | | <if test="typeList!=null">
|
| | | <foreach collection="typeList" item="type" open=" and (" separator=" or " close=")">
|
| | | v.`hb_type`=#{type}
|
| | | </foreach>
|
| | | </if>
|
| | | AND v.`hb_id` IS NOT NULL
|
| | | AND (co.`co_state`=1 OR co.`co_state`=2 OR co.`co_state`=3) |
| | | GROUP BY co.`co_order_no`,co.`co_order_goods_id`
|
| | | ) a GROUP BY goodsId |
| | | ) b WHERE b.c>=#{minSameGoodsOrderCount}
|
| | | </select>
|
| | | |
| | | |
| | | |
| | | <select id="getSameShopOrderByUidAndHongBaoType" resultType="Long">
|
| | | SELECT b.shopId FROM
|
| | | (
|
| | | SELECT a.*,COUNT(*) AS num FROM |
| | | (
|
| | | SELECT co.*,COUNT(*) AS c,g.`cog_shop_id` AS shopId FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` |
| | | LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` |
| | | LEFT JOIN yeshi_ec_common_order_goods g ON co.`co_order_goods_id`=g.`cog_id` |
| | | WHERE co.`co_uid`=#{uid} AND g.`cog_shop_id` <![CDATA[<>]]> 725677994 <!-- 天猫超市 -->
|
| | | <if test="typeList!=null">
|
| | | <foreach collection="typeList" item="type" open=" and (" separator=" or " close=")">
|
| | | v.`hb_type`=#{type}
|
| | | </foreach>
|
| | | </if>
|
| | | AND v.`hb_id` IS NOT NULL |
| | | AND (co.`co_state`=1 OR co.`co_state`=2 OR co.`co_state`=3) |
| | | AND g.`cog_shop_id`>0 GROUP BY co.`co_order_no`,co.`co_source_type`
|
| | | ) a GROUP BY a.shopId
|
| | | ) b WHERE b.num>=#{minSameShopGoodsCount};
|
| | | </select>
|
| | | |
| | | |
| | | <select id="getSameGoodsOrderByUidAndHongBaoType" resultType="Long">
|
| | | SELECT b.goodsId FROM
|
| | | (
|
| | | SELECT a.goodsId,COUNT(*) AS c FROM
|
| | | (
|
| | | SELECT co.`co_order_goods_id` AS goodsId,co.`co_order_no` FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` |
| | | LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` |
| | | LEFT JOIN yeshi_ec_common_order_goods g ON co.`co_order_goods_id`=g.`cog_id` |
| | | WHERE co.`co_uid`=#{uid} AND g.`cog_shop_id` <![CDATA[<>]]> 725677994 <!-- 天猫超市 -->
|
| | | <if test="typeList!=null">
|
| | | <foreach collection="typeList" item="type" open=" and (" separator=" or " close=")">
|
| | | v.`hb_type`=#{type}
|
| | | </foreach>
|
| | | </if>
|
| | | AND v.`hb_id` IS NOT NULL
|
| | | AND (co.`co_state`=1 OR co.`co_state`=2 OR co.`co_state`=3) |
| | | GROUP BY co.`co_order_no`,co.`co_order_goods_id`
|
| | | ) a GROUP BY goodsId |
| | | ) b WHERE b.c>=#{minSameGoodsOrderCount}
|
| | | </select>
|
| | | |
| | | <select id="countOderByUidAndDate" resultType="Integer">
|
| | | SELECT COUNT(1) FROM (SELECT d.`co_id` FROM `yeshi_ec_common_order` d
|
| | | WHERE d.`co_third_create_time`<![CDATA[<=]]> #{preDay} AND d.`co_uid` = #{uid} |
| | | AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | GROUP BY d.`co_order_no`,d.`co_source_type`)A
|
| | | </select>
|
| | | |
| | | <select id="countValidOrderByDay" resultMap="CountOrderMap">
|
| | | SELECT co_uid AS uid ,totalOrder FROM (
|
| | | SELECT COUNT(d.`co_id`) AS totalOrder,d.`co_uid` FROM `yeshi_ec_common_order` d
|
| | | WHERE DATE_FORMAT(d.`co_third_create_time`,'%Y-%m-%d') = '2019-11-11' AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | GROUP BY d.`co_order_no`,d.`co_source_type`)A
|
| | | GROUP BY co_uid
|
| | | </select>
|
| | | |
| | | <select id="countDownOrderUserByUidAndDate" resultType="Integer">
|
| | | SELECT COUNT(DISTINCT d.`co_uid`) FROM `yeshi_ec_common_order` d
|
| | | WHERE d.`co_third_create_time`<![CDATA[<=]]> #{preDay} AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | <foreach collection="list" item="uid" open="AND (" separator="OR" close=")" >
|
| | | d.`co_uid` = #{uid} |
| | | </foreach>
|
| | | </select>
|
| | | |
| | | <select id="countCommissionByDay" resultMap="CountOrderMap">
|
| | | SELECT co_uid AS uid ,commission FROM (
|
| | | SELECT SUM(IFNULL(d.`co_eIncome`,d.`co_estimate`)) AS commission,d.`co_uid` FROM `yeshi_ec_common_order` d
|
| | | WHERE DATE_FORMAT(d.`co_third_create_time`,'%Y-%m-%d') = '2019-11-11' AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | GROUP BY d.`co_order_no`,d.`co_source_type`)A
|
| | | GROUP BY co_uid
|
| | | </select>
|
| | | |
| | | <select id="countOderByDate" resultType="Integer">
|
| | | SELECT COUNT(1) FROM (SELECT d.`co_id` FROM `yeshi_ec_common_order` d
|
| | | WHERE DATE_FORMAT(d.`co_third_create_time`,'%Y-%m-%d') = #{preDay} AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | GROUP BY d.`co_order_no`,d.`co_source_type`)A
|
| | | </select>
|
| | | |
| | | |
| | | <select id="countCommissionByDate" resultType="BigDecimal">
|
| | | SELECT SUM(IFNULL(d.`co_eIncome`,d.`co_estimate`)) FROM `yeshi_ec_common_order` d
|
| | | WHERE d.`co_third_create_time`= #{preDay} AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | </select>
|
| | | |
| | | </mapper>
|
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="com.yeshi.fanli.dao.mybatis.order.CommonOrderCountMapper"> |
| | | <resultMap id="ChartMap" type="com.yeshi.fanli.dto.ChartTDO"> |
| | | <result column="showDate" property="showDate" jdbcType="VARCHAR" /> |
| | | <result column="showValue" property="showValue" jdbcType="VARCHAR" /> |
| | | </resultMap> |
| | | |
| | | <resultMap id="CountOrderMap" type="com.yeshi.fanli.dto.order.CountOrderDTO"> |
| | | <result column="uid" property="uid" jdbcType="BIGINT" /> |
| | | <result column="totalOrder" property="totalOrder" jdbcType="INTEGER" /> |
| | | <result column="commission" property="commission" jdbcType="DECIMAL" /> |
| | | </resultMap> |
| | | |
| | | <sql id="Column_DateType"> |
| | | <if test="dateType == 1"> |
| | | DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d') AS 'showDate' |
| | | </if> |
| | | <if test="dateType == 2"> |
| | | DATE_FORMAT(t.`co_third_create_time`,'%m') AS 'showDate' |
| | | </if> |
| | | <if test="dateType == 3"> |
| | | DATE_FORMAT(t.`co_third_create_time`,'%Y') AS 'showDate' |
| | | </if> |
| | | </sql> |
| | | |
| | | <sql id="Count_Select_DateType"> |
| | | <if test="startTime != null and startTime != '' "> |
| | | AND DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d')<![CDATA[ >= ]]>'${startTime}' |
| | | </if> |
| | | <if test="endTime != null and endTime != '' "> |
| | | AND DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d') <![CDATA[ <= ]]>'${endTime}' |
| | | </if> |
| | | <if test="year != null and year != '' "> |
| | | AND DATE_FORMAT(t.`co_third_create_time`,'%Y') = '${year}' |
| | | </if> |
| | | </sql> |
| | | |
| | | <sql id="Count_Group_DateType"> |
| | | <if test="dateType == 1"> |
| | | GROUP BY DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d') |
| | | </if> |
| | | <if test="dateType == 2"> |
| | | GROUP BY DATE_FORMAT(t.`co_third_create_time`,'%Y-%m') |
| | | </if> |
| | | <if test="dateType == 3"> |
| | | GROUP BY DATE_FORMAT(t.`co_third_create_time`,'%Y') |
| | | </if> |
| | | </sql> |
| | | |
| | | <select id="countByState" resultType="java.lang.Long"> |
| | | SELECT IFNULL(COUNT(t.`co_id`),0) FROM `yeshi_ec_common_order` t |
| | | WHERE 1=1 |
| | | <if test="type != null"> |
| | | AND t.`co_state` = #{state} |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="countOrderBySourceTypeAndDay" resultType="java.lang.Long"> |
| | | SELECT COUNT(t.`co_id`) FROM `yeshi_ec_common_order` t |
| | | WHERE t.co_source_type=#{sourceType} AND DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d') = #{preDay} |
| | | </select> |
| | | |
| | | |
| | | <select id="countOrderNumberBySettleTime" resultType="java.util.HashMap"> |
| | | <!-- 统计历史订单数量 根据结算时间 --> |
| | | SELECT SUM(A.self)AS totalSelf,SUM(A.shared)AS totalShared,SUM(A.invite)AS totalInvite |
| | | FROM ( |
| | | <!-- 返利订单 --> |
| | | SELECT IFNULL(COUNT(ho_id),0) AS self,0 AS shared,0 AS invite |
| | | FROM (SELECT ho.`ho_id` FROM yeshi_ec_hongbao_order ho |
| | | LEFT JOIN ( |
| | | SELECT * FROM yeshi_ec_hongbao_v2 v2 |
| | | WHERE v2.`hb_uid`= ${uid} and v2.hb_state!=4 AND (v2.`hb_type` = 1 OR v2.`hb_type` = 2) |
| | | ) hb ON hb.hb_id=ho.`ho_hongbao_id` <!-- 自购订单 --> |
| | | LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id` |
| | | WHERE hb.hb_id IS NOT NULL |
| | | <if test="state != null"> |
| | | AND co.`co_state` = ${state} |
| | | </if> |
| | | |
| | | <if test="day != null and day == 1"> <!-- 今天 --> |
| | | AND TO_DAYS(co.`co_settle_time`) = TO_DAYS(NOW()) |
| | | </if> |
| | | <if test="day != null and day == 2"> <!-- 昨天 --> |
| | | AND TO_DAYS(NOW()) - TO_DAYS(co.co_settle_time) = 1 |
| | | </if> |
| | | <if test="day != null and day == 3"> <!-- 本月 --> |
| | | AND DATE_FORMAT(co.`co_settle_time`,'%Y%m') = |
| | | DATE_FORMAT(CURDATE(),'%Y%m') |
| | | </if> |
| | | <if test="day != null and day == 4"> <!-- 上月 --> |
| | | AND PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'), |
| | | DATE_FORMAT(co.`co_settle_time`, '%Y%m')) = 1 |
| | | </if> |
| | | GROUP BY co.`co_order_no`, co.`co_source_type`)YX |
| | | |
| | | UNION ALL |
| | | <!-- 分享订单 --> |
| | | SELECT 0 AS self,IFNULL(COUNT(ho_id),0) AS shared,0 AS invite |
| | | FROM (SELECT ho.`ho_id` FROM yeshi_ec_hongbao_order ho |
| | | LEFT JOIN ( |
| | | SELECT * FROM yeshi_ec_hongbao_v2 v2 |
| | | WHERE v2.`hb_uid`= ${uid} AND v2.`hb_type` = 20 and v2.hb_state!=4 |
| | | ) hb ON hb.hb_id=ho.`ho_hongbao_id` <!-- 分享订单 --> |
| | | |
| | | LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id` |
| | | WHERE hb.hb_id IS NOT NULL and hb.hb_state!=4 |
| | | <if test="state != null"> |
| | | AND co.`co_state` = ${state} |
| | | </if> |
| | | |
| | | <if test="day != null and day == 1"> <!-- 今天 --> |
| | | AND TO_DAYS(co.`co_settle_time`) = TO_DAYS(NOW()) |
| | | </if> |
| | | <if test="day != null and day == 2"> <!-- 昨天 --> |
| | | AND TO_DAYS(NOW()) - TO_DAYS(co.`co_settle_time`) = 1 |
| | | </if> |
| | | <if test="day != null and day == 3"> <!-- 本月 --> |
| | | AND DATE_FORMAT(co.`co_settle_time`,'%Y%m') = |
| | | DATE_FORMAT(CURDATE(),'%Y%m') |
| | | </if> |
| | | <if test="day != null and day == 4"> <!-- 上月 --> |
| | | AND PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'), |
| | | DATE_FORMAT(co.`co_settle_time`, '%Y%m')) = 1 |
| | | </if> |
| | | GROUP BY co.`co_order_no`, co.`co_source_type`)WQ |
| | | |
| | | UNION ALL |
| | | <!-- 邀请订单 --> |
| | | SELECT 0 AS self,0 AS shared,IFNULL(COUNT(ho_id),0) AS invite |
| | | FROM (SELECT ho.`ho_id` FROM yeshi_ec_hongbao_order ho |
| | | LEFT JOIN ( |
| | | SELECT * FROM yeshi_ec_hongbao_v2 v2 |
| | | WHERE v2.`hb_uid`= ${uid} |
| | | AND (v2.`hb_type` = 5 OR v2.`hb_type` = 6 OR v2.`hb_type` = 7 |
| | | OR v2.`hb_type` = 21 OR v2.`hb_type` = 22 ) and v2.hb_state!=4 |
| | | ) hbp ON hbp.hb_pid=ho.`ho_hongbao_id` |
| | | LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id` |
| | | WHERE hbp.hb_id IS NOT NULL and hbp.hb_state!=4 |
| | | <if test="state != null"> |
| | | AND co.`co_state` = ${state} |
| | | </if> |
| | | <if test="day != null and day == 1"> <!-- 今天 --> |
| | | AND TO_DAYS(co.`co_settle_time`) = TO_DAYS(NOW()) |
| | | </if> |
| | | <if test="day != null and day == 2"> <!-- 昨天 --> |
| | | AND TO_DAYS(NOW()) - TO_DAYS(co.`co_settle_time`) = 1 |
| | | </if> |
| | | <if test="day != null and day == 3"> <!-- 本月 --> |
| | | AND DATE_FORMAT(co.`co_settle_time`,'%Y%m') = |
| | | DATE_FORMAT(CURDATE(),'%Y%m') |
| | | </if> |
| | | <if test="day != null and day == 4"> <!-- 上月 --> |
| | | AND PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'), |
| | | DATE_FORMAT(co.`co_settle_time`, '%Y%m')) = 1 |
| | | </if> |
| | | GROUP BY co.`co_order_no`, co.`co_source_type`)SX |
| | | )A |
| | | </select> |
| | | |
| | | <select id="countValidOrder" resultType="java.lang.Long"> |
| | | SELECT IFNULL(COUNT(co.`co_id`),0) FROM yeshi_ec_hongbao_order ho |
| | | LEFT JOIN (SELECT * FROM yeshi_ec_hongbao_v2 v2 |
| | | WHERE v2.`hb_uid`= #{uid} AND v2.`hb_type` IN(1,20))hb |
| | | ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id` |
| | | LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id` |
| | | WHERE hb.hb_id IS NOT NULL AND <![CDATA[co.`co_state` <> 4]]> |
| | | </select> |
| | | |
| | | <select id="getMoneyByOrderNo" resultType="java.math.BigDecimal"> |
| | | SELECT SUM(v2.`hb_money`) FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` |
| | | LEFT JOIN yeshi_ec_hongbao_v2 v2 ON v2.hb_id=ho.`ho_hongbao_id` |
| | | WHERE co.`co_order_no` = #{orderNo} |
| | | </select> |
| | | |
| | | <select id="countValidOrderByDate" resultType="Long"> |
| | | SELECT IFNULL(COUNT(co_order_no),0) FROM |
| | | (SELECT DISTINCT co.co_order_no FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` |
| | | LEFT JOIN yeshi_ec_hongbao_v2 v2 ON v2.hb_id=ho.`ho_hongbao_id` |
| | | WHERE co.`co_uid` = #{uid} AND v2.`hb_type` = 1 |
| | | AND v2.`hb_state` = 3 AND AND co.`co_third_create_time` <![CDATA[>]]> #{dateTime})A |
| | | </select> |
| | | |
| | | <select id="countSameShopOrderByUidAndHongBaoType" resultType="Long"> |
| | | SELECT COUNT(*) FROM |
| | | ( |
| | | SELECT a.*,COUNT(*) AS num FROM |
| | | ( |
| | | SELECT co.*,COUNT(*) AS c,g.`cog_shop_id` AS shopId FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` |
| | | LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` |
| | | LEFT JOIN yeshi_ec_common_order_goods g ON co.`co_order_goods_id`=g.`cog_id` |
| | | WHERE co.`co_uid`=#{uid} AND g.`cog_shop_id` <![CDATA[<>]]> 725677994 <!-- 天猫超市 --> |
| | | <if test="typeList!=null"> |
| | | <foreach collection="typeList" item="type" open=" and (" separator=" or " close=")"> |
| | | v.`hb_type`=#{type} |
| | | </foreach> |
| | | </if> |
| | | AND v.`hb_id` IS NOT NULL |
| | | AND (co.`co_state`=1 OR co.`co_state`=2 OR co.`co_state`=3) |
| | | AND g.`cog_shop_id`>0 GROUP BY co.`co_order_no`,co.`co_source_type` |
| | | ) a GROUP BY a.shopId |
| | | ) b WHERE b.num>=#{minSameShopGoodsCount}; |
| | | </select> |
| | | |
| | | |
| | | <select id="countSameGoodsOrderByUidAndHongBaoType" resultType="Long"> |
| | | SELECT COUNT(*) FROM |
| | | ( |
| | | SELECT a.goodsId,COUNT(*) AS c FROM |
| | | ( |
| | | SELECT co.`co_order_goods_id` AS goodsId,co.`co_order_no` FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` |
| | | LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` |
| | | LEFT JOIN yeshi_ec_common_order_goods g ON co.`co_order_goods_id`=g.`cog_id` |
| | | WHERE co.`co_uid`=#{uid} AND g.`cog_shop_id` <![CDATA[<>]]> 725677994 <!-- 天猫超市 --> |
| | | <if test="typeList!=null"> |
| | | <foreach collection="typeList" item="type" open=" and (" separator=" or " close=")"> |
| | | v.`hb_type`=#{type} |
| | | </foreach> |
| | | </if> |
| | | AND v.`hb_id` IS NOT NULL |
| | | AND (co.`co_state`=1 OR co.`co_state`=2 OR co.`co_state`=3) |
| | | GROUP BY co.`co_order_no`,co.`co_order_goods_id` |
| | | ) a GROUP BY goodsId |
| | | ) b WHERE b.c>=#{minSameGoodsOrderCount} |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="getSameShopOrderByUidAndHongBaoType" resultType="Long"> |
| | | SELECT b.shopId FROM |
| | | ( |
| | | SELECT a.*,COUNT(*) AS num FROM |
| | | ( |
| | | SELECT co.*,COUNT(*) AS c,g.`cog_shop_id` AS shopId FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` |
| | | LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` |
| | | LEFT JOIN yeshi_ec_common_order_goods g ON co.`co_order_goods_id`=g.`cog_id` |
| | | WHERE co.`co_uid`=#{uid} AND g.`cog_shop_id` <![CDATA[<>]]> 725677994 <!-- 天猫超市 --> |
| | | <if test="typeList!=null"> |
| | | <foreach collection="typeList" item="type" open=" and (" separator=" or " close=")"> |
| | | v.`hb_type`=#{type} |
| | | </foreach> |
| | | </if> |
| | | AND v.`hb_id` IS NOT NULL |
| | | AND (co.`co_state`=1 OR co.`co_state`=2 OR co.`co_state`=3) |
| | | AND g.`cog_shop_id`>0 GROUP BY co.`co_order_no`,co.`co_source_type` |
| | | ) a GROUP BY a.shopId |
| | | ) b WHERE b.num>=#{minSameShopGoodsCount}; |
| | | </select> |
| | | |
| | | |
| | | <select id="getSameGoodsOrderByUidAndHongBaoType" resultType="Long"> |
| | | SELECT b.goodsId FROM |
| | | ( |
| | | SELECT a.goodsId,COUNT(*) AS c FROM |
| | | ( |
| | | SELECT co.`co_order_goods_id` AS goodsId,co.`co_order_no` FROM yeshi_ec_common_order co |
| | | LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` |
| | | LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` |
| | | LEFT JOIN yeshi_ec_common_order_goods g ON co.`co_order_goods_id`=g.`cog_id` |
| | | WHERE co.`co_uid`=#{uid} AND g.`cog_shop_id` <![CDATA[<>]]> 725677994 <!-- 天猫超市 --> |
| | | <if test="typeList!=null"> |
| | | <foreach collection="typeList" item="type" open=" and (" separator=" or " close=")"> |
| | | v.`hb_type`=#{type} |
| | | </foreach> |
| | | </if> |
| | | AND v.`hb_id` IS NOT NULL |
| | | AND (co.`co_state`=1 OR co.`co_state`=2 OR co.`co_state`=3) |
| | | GROUP BY co.`co_order_no`,co.`co_order_goods_id` |
| | | ) a GROUP BY goodsId |
| | | ) b WHERE b.c>=#{minSameGoodsOrderCount} |
| | | </select> |
| | | |
| | | <select id="countOderByUidAndDate" resultType="Integer"> |
| | | SELECT COUNT(1) FROM (SELECT d.`co_id` FROM `yeshi_ec_common_order` d |
| | | WHERE d.`co_third_create_time`<![CDATA[<=]]> #{preDay} AND d.`co_uid` = #{uid} |
| | | AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | GROUP BY d.`co_order_no`,d.`co_source_type`)A |
| | | </select> |
| | | |
| | | <select id="countValidOrderByDay" resultMap="CountOrderMap"> |
| | | SELECT co_uid AS uid ,totalOrder FROM ( |
| | | SELECT COUNT(d.`co_id`) AS totalOrder,d.`co_uid` FROM `yeshi_ec_common_order` d |
| | | WHERE DATE_FORMAT(d.`co_third_create_time`,'%Y-%m-%d') = '2019-11-11' AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | GROUP BY d.`co_order_no`,d.`co_source_type`)A |
| | | GROUP BY co_uid |
| | | </select> |
| | | |
| | | <select id="countDownOrderUserByUidAndDate" resultType="Integer"> |
| | | SELECT COUNT(DISTINCT d.`co_uid`) FROM `yeshi_ec_common_order` d |
| | | WHERE d.`co_third_create_time`<![CDATA[<=]]> #{preDay} AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | <foreach collection="list" item="uid" open="AND (" separator="OR" close=")" > |
| | | d.`co_uid` = #{uid} |
| | | </foreach> |
| | | </select> |
| | | |
| | | <select id="countCommissionByDay" resultMap="CountOrderMap"> |
| | | SELECT co_uid AS uid ,commission FROM ( |
| | | SELECT SUM(IFNULL(d.`co_eIncome`,d.`co_estimate`)) AS commission,d.`co_uid` FROM `yeshi_ec_common_order` d |
| | | WHERE DATE_FORMAT(d.`co_third_create_time`,'%Y-%m-%d') = '2019-11-11' AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | GROUP BY d.`co_order_no`,d.`co_source_type`)A |
| | | GROUP BY co_uid |
| | | </select> |
| | | |
| | | <select id="countOderByDate" resultType="Integer"> |
| | | SELECT COUNT(1) FROM (SELECT d.`co_id` FROM `yeshi_ec_common_order` d |
| | | WHERE DATE_FORMAT(d.`co_third_create_time`,'%Y-%m-%d') = #{preDay} AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | GROUP BY d.`co_order_no`,d.`co_source_type`)A |
| | | </select> |
| | | |
| | | |
| | | <select id="countCommissionByDate" resultType="BigDecimal"> |
| | | SELECT SUM(IFNULL(d.`co_eIncome`,d.`co_estimate`)) FROM `yeshi_ec_common_order` d |
| | | WHERE d.`co_third_create_time`= #{preDay} AND (d.`co_state`=1 OR d.`co_state`=2) |
| | | </select> |
| | | |
| | | <select id="countOderByUidAndLess10" resultType="Integer"> |
| | | SELECT count(1) from (SELECT SUM(d.co_payment) as payment FROM `yeshi_ec_common_order` d |
| | | where d.co_uid = #{uid} and d.co_source_type = 1 and d.co_state <![CDATA[<>]]> 4 |
| | | GROUP BY d.`co_order_no` |
| | | ORDER BY d.co_third_create_time desc |
| | | limit 50)A where A.payment<![CDATA[<]]> 10 |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <include refid="SELECT_PARAM_ORDER_CREATE_TIME" /> |
| | | <!-- 订单时间 --> |
| | | <if test="orderNo != null and orderNo !='' ">AND co.co_order_no = #{orderNo}</if> |
| | | |
| | | <if test="payment != null"> |
| | | AND co.co_payment <![CDATA[<]]> #{payment} |
| | | </if> |
| | | |
| | | ORDER BY co.co_third_create_time DESC LIMIT ${start},${count} |
| | | </select> |
| | | <select id="countQueryByUid" resultType="java.lang.Long"> |
| | |
| | | </if> |
| | | <!-- 订单来源 --> |
| | | <if test="source != null">AND co.co_source_type = #{source}</if> |
| | | <if test="payment != null"> |
| | | AND co.co_payment <![CDATA[<]]> #{payment} |
| | | </if> |
| | | ORDER BY co.co_third_create_time DESC LIMIT ${start},${count} ) A LEFT |
| | | JOIN yeshi_ec_user u ON u.id = A.hb_uid |
| | | </select> |
| | |
| | | <foreach collection="listShopId" item="shopId" open=" and (" |
| | | separator=" or " close=")">g.`cog_shop_id` =#{shopId}</foreach> |
| | | </if> |
| | | <if test="payment != null"> |
| | | AND co.co_payment <![CDATA[<]]> #{payment} |
| | | </if> |
| | | <if test="minTime != null"> |
| | | <!-- 高风险订单 --> |
| | | AND co.`co_third_create_time`>#{minTime} AND<![CDATA[ (co.`co_estimate`>= ${money} OR co.`co_eIncome`> ${money})]]> |
| | |
| | | <if test="keyType == 1 ">AND co.co_order_no = '${key}'</if> |
| | | <if test="keyType == 2 ">AND hb.hb_uid = ${key}</if> |
| | | </if> |
| | | <if test="payment != null"> |
| | | AND co.co_payment <![CDATA[<]]> #{payment} |
| | | </if> |
| | | <!-- 订单来源 --> |
| | | <if test="source != null">AND co.co_source_type = #{source}</if> |
| | | </select> |
| | |
| | | package com.yeshi.fanli.service.impl.count;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.yeshi.utils.DateUtil;
|
| | |
|
| | | import com.yeshi.fanli.dao.mybatis.jd.JDOrderItemMapper;
|
| | | import com.yeshi.fanli.dao.mybatis.order.CommonOrderCountMapper;
|
| | | import com.yeshi.fanli.dao.mybatis.pdd.PDDOrderMapper;
|
| | | import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderMapper;
|
| | | import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
|
| | | import com.yeshi.fanli.dao.user.count.CountOrderInfoDao;
|
| | | import com.yeshi.fanli.dao.user.count.CountOrderTrackRateDao;
|
| | | import com.yeshi.fanli.dto.ChartTDO;
|
| | | import com.yeshi.fanli.dto.order.CountOrderDTO;
|
| | | import com.yeshi.fanli.entity.admin.count.CountOrderTrackRate;
|
| | | import com.yeshi.fanli.entity.admin.count.CountOrderTrackRate.OrderTrackRateEnum;
|
| | | import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | |
|
| | | @Service
|
| | | public class CommonOrderCountServiceImpl implements CommonOrderCountService {
|
| | |
|
| | | @Resource
|
| | | private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoOrderMapper taoBaoOrderMapper;
|
| | |
|
| | | @Resource
|
| | | private JDOrderItemMapper jdOrderItemMapper;
|
| | |
|
| | | @Resource
|
| | | private PDDOrderMapper pddOrderMapper;
|
| | |
|
| | | @Resource
|
| | | private CommonOrderCountMapper commonOrderCountMapper;
|
| | | |
| | | |
| | | @Resource
|
| | | private CountOrderInfoDao countOrderInfoDao;
|
| | | |
| | | |
| | | @Resource
|
| | | private CountOrderTrackRateDao countOrderTrackRateDao;
|
| | | |
| | |
|
| | | @Override
|
| | | public Long countByState(Integer state) {
|
| | | return commonOrderCountMapper.countByState(state);
|
| | | }
|
| | |
|
| | | public List<ChartTDO> dayFactory(String startTime, String endTime, List<ChartTDO> list) throws Exception {
|
| | | List<ChartTDO> listObject = new ArrayList<ChartTDO>();
|
| | | if (startTime.equals(endTime)) {
|
| | | ChartTDO chartTDO = list.get(0);
|
| | | String showValue = chartTDO.getShowValue();
|
| | | if (showValue == null) {
|
| | | chartTDO.setShowValue("0");
|
| | | }
|
| | | listObject.add(chartTDO);
|
| | | return listObject;
|
| | | }
|
| | |
|
| | | String plusDay = "";
|
| | | for (int i = 0; i < 1000; i++) {
|
| | | if (i == 0) {
|
| | | plusDay = startTime;
|
| | | } else {
|
| | | plusDay = DateUtil.plusDay(i, startTime);
|
| | | }
|
| | |
|
| | | String total = null;
|
| | | for (int j = 0; j < list.size(); j++) {
|
| | | ChartTDO chartTDO = list.get(j);
|
| | | String showDate = chartTDO.getShowDate();
|
| | | if (plusDay.equalsIgnoreCase(showDate)) {
|
| | | total = chartTDO.getShowValue();
|
| | | break;
|
| | | }
|
| | | }
|
| | | if (total == null) {
|
| | | total = "0";
|
| | | }
|
| | | ChartTDO chartTDO = new ChartTDO();
|
| | | chartTDO.setShowDate(plusDay);
|
| | | chartTDO.setShowValue(total);
|
| | | listObject.add(chartTDO);
|
| | |
|
| | | if (plusDay.equals(endTime)) {
|
| | | break; // 时间结束
|
| | | }
|
| | | }
|
| | |
|
| | | return listObject;
|
| | | }
|
| | |
|
| | | public List<ChartTDO> monthFactory(List<ChartTDO> list) {
|
| | | List<ChartTDO> listObject = new ArrayList<ChartTDO>();
|
| | | // 12 个月处理
|
| | | for (int i = 1; i <= 12; i++) {
|
| | | String total = null;
|
| | | for (int j = 0; j < list.size(); j++) {
|
| | | ChartTDO chartTDO = list.get(j);
|
| | | String month = chartTDO.getShowDate();
|
| | | if ((i + "").equalsIgnoreCase(month) || i == Integer.parseInt(month)) {
|
| | | total = chartTDO.getShowValue();
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | if (total == null) {
|
| | | total = "0";
|
| | | }
|
| | |
|
| | | ChartTDO chartTDO = new ChartTDO();
|
| | | chartTDO.setShowValue(total);
|
| | | if (i < 10) {
|
| | | chartTDO.setShowDate("0" + i);
|
| | | } else {
|
| | | chartTDO.setShowDate(i + "");
|
| | | }
|
| | | listObject.add(chartTDO);
|
| | | }
|
| | | return listObject;
|
| | | }
|
| | |
|
| | | public List<ChartTDO> yearFactory(List<ChartTDO> list) {
|
| | | List<ChartTDO> listObject = new ArrayList<ChartTDO>();
|
| | | for (int i = 0; i < list.size(); i++) {
|
| | | ChartTDO chartTDO = list.get(i);
|
| | | String showValue = chartTDO.getShowValue();
|
| | | if (showValue == null) {
|
| | | chartTDO.setShowValue("0");
|
| | | }
|
| | | listObject.add(chartTDO);
|
| | | }
|
| | | return listObject;
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public List<ChartTDO> countWeiQaunOrderMoney(Integer dateType, String year, String startTime, String endTime)
|
| | | throws Exception {
|
| | | return taoBaoWeiQuanOrderMapper.countWeiQaunOrderMoney(dateType, year, startTime, endTime);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<ChartTDO> countWeiQaunOrderNumber(Integer dateType, String year, String startTime, String endTime)
|
| | | throws Exception {
|
| | | return taoBaoWeiQuanOrderMapper.countWeiQaunOrderNumber(dateType, year, startTime, endTime);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public Map<String, Object> countOrderNumberBySettleTime(Long uid, Integer state, Integer day) {
|
| | | return commonOrderCountMapper.countOrderNumberBySettleTime(uid, state, day);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 根据结算时间筛选 上个月已结算的订订单数量
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | @Override
|
| | | public Map<String, Object> lastMonthSettleOrderNumber(Long uid) {
|
| | | return countOrderNumberBySettleTime(uid, 2, 4); // 根据
|
| | | }
|
| | |
|
| | | @Override
|
| | | public BigDecimal getMoneyByOrderNo(String orderNo) {
|
| | | return commonOrderCountMapper.getMoneyByOrderNo(orderNo);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countValidOrderByDate(Long uid, String dateTime) {
|
| | | return commonOrderCountMapper.countValidOrderByDate(uid, dateTime);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount) {
|
| | | return commonOrderCountMapper.countSameShopOrderByUidAndHongBaoType(typeList, uid, minSameShopGoodsCount);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount) {
|
| | | return commonOrderCountMapper.countSameGoodsOrderByUidAndHongBaoType(typeList, uid, minSameGoodsOrderCount);
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | public List<Long> getSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount) {
|
| | | return commonOrderCountMapper.getSameShopOrderByUidAndHongBaoType(typeList, uid, minSameShopGoodsCount);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<Long> getSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount) {
|
| | | return commonOrderCountMapper.getSameGoodsOrderByUidAndHongBaoType(typeList, uid, minSameGoodsOrderCount);
|
| | | }
|
| | | |
| | | |
| | | @Override
|
| | | public Integer countOderByUidAndDate(Date preDay, Long uid) {
|
| | | return commonOrderCountMapper.countOderByUidAndDate(preDay, uid);
|
| | | }
|
| | | |
| | | @Override
|
| | | public List<CountOrderDTO> countValidOrderByDay(String preDay) {
|
| | | return commonOrderCountMapper.countValidOrderByDay(preDay);
|
| | | }
|
| | | |
| | | @Override
|
| | | public Integer countDownOrderUserByUidAndDate(Date preDay, List<Long> list) {
|
| | | return commonOrderCountMapper.countDownOrderUserByUidAndDate(preDay, list);
|
| | | }
|
| | | |
| | | @Override
|
| | | public List<CountOrderDTO> countCommissionByDay(String preDay) {
|
| | | return commonOrderCountMapper.countCommissionByDay(preDay);
|
| | | }
|
| | | |
| | | |
| | | @Override
|
| | | public Integer countOderByDate(String preDay) {
|
| | | return commonOrderCountMapper.countOderByDate(preDay);
|
| | | }
|
| | | |
| | | @Override
|
| | | public BigDecimal countCommissionByDate(String preDay) {
|
| | | return commonOrderCountMapper.countCommissionByDate(preDay);
|
| | | }
|
| | | |
| | | |
| | | |
| | | @Override
|
| | | public List<CountOrderTrackRate> getOrderTrackRate(int type, Date startTime, Date endTime) {
|
| | | |
| | | OrderTrackRateEnum trackRateEnum = null;
|
| | | if (type == 1) {
|
| | | trackRateEnum = OrderTrackRateEnum.taobao;
|
| | | } else if (type == 2) {
|
| | | trackRateEnum = OrderTrackRateEnum.jd;
|
| | | } else if (type == 3) {
|
| | | trackRateEnum = OrderTrackRateEnum.pdd;
|
| | | } else {
|
| | | trackRateEnum = OrderTrackRateEnum.taobao;
|
| | | }
|
| | |
|
| | | // 重新查询统计今日以及空缺
|
| | | initOrderTrackRate(trackRateEnum);
|
| | | |
| | | return countOrderTrackRateDao.query(trackRateEnum, startTime, endTime);
|
| | | }
|
| | |
|
| | | // 初始化统计
|
| | | private void initOrderTrackRate(OrderTrackRateEnum trackRateEnum) {
|
| | | try {
|
| | | CountOrderTrackRate lastRecord = countOrderTrackRateDao.getMaxDate(trackRateEnum);
|
| | | Date lastDay = null;
|
| | | if (lastRecord != null && lastRecord.getDay() != null) {
|
| | | lastDay = lastRecord.getDay();
|
| | | }
|
| | |
|
| | | if (lastDay == null) {
|
| | | lastDay = TimeUtil.parse("2018-01-01");
|
| | | }
|
| | |
|
| | | Date today = new Date();
|
| | | int betweenDays = DateUtil.daysBetween2(lastDay, today);
|
| | | if (betweenDays > 0) {
|
| | | for (int i = 0; i <= betweenDays; i++) {
|
| | | addOrderTrackRateCount(DateUtil.plusDay(i, lastDay), trackRateEnum);
|
| | | }
|
| | | } else {
|
| | | // 重新统计昨日
|
| | | addOrderTrackRateCount(DateUtil.reduceDay2(1, lastDay), trackRateEnum);
|
| | | // 重新统计今日
|
| | | addOrderTrackRateCount(TimeUtil.getGernalTime(today.getTime()), trackRateEnum);
|
| | | }
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | |
| | |
|
| | | private void addOrderTrackRateCount(String preDay, OrderTrackRateEnum trackRateEnum) throws Exception {
|
| | | int value = trackRateEnum.getValue();
|
| | | Long count = commonOrderCountMapper.countOrderBySourceTypeAndDay(preDay,value);
|
| | | if (count == null) {
|
| | | count = 0L;
|
| | | }
|
| | | |
| | | Long total = null;
|
| | | switch (value) {
|
| | | case Constant.SOURCE_TYPE_TAOBAO:
|
| | | total = taoBaoOrderMapper.countOrderByDay(preDay);
|
| | | break;
|
| | | case Constant.SOURCE_TYPE_JD:
|
| | | total = jdOrderItemMapper.countOrderByDay(preDay);
|
| | | break;
|
| | | case Constant.SOURCE_TYPE_PDD:
|
| | | total = pddOrderMapper.countOrderByDay(preDay);
|
| | | break;
|
| | | }
|
| | | |
| | | if(total == null)
|
| | | total = 0L;
|
| | | |
| | | CountOrderTrackRate record = new CountOrderTrackRate();
|
| | | record.setNum(count);
|
| | | record.setTotalNum(total);
|
| | | record.setDay(TimeUtil.parse(preDay));
|
| | | record.setType(trackRateEnum.name());
|
| | | record.setId(StringUtil.Md5(preDay + trackRateEnum.name()));
|
| | | countOrderTrackRateDao.save(record);
|
| | | }
|
| | | |
| | | |
| | | }
|
| | | package com.yeshi.fanli.service.impl.count; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import org.springframework.stereotype.Service; |
| | | import org.yeshi.utils.DateUtil; |
| | | |
| | | import com.yeshi.fanli.dao.mybatis.jd.JDOrderItemMapper; |
| | | import com.yeshi.fanli.dao.mybatis.order.CommonOrderCountMapper; |
| | | import com.yeshi.fanli.dao.mybatis.pdd.PDDOrderMapper; |
| | | import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderMapper; |
| | | import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper; |
| | | import com.yeshi.fanli.dao.user.count.CountOrderInfoDao; |
| | | import com.yeshi.fanli.dao.user.count.CountOrderTrackRateDao; |
| | | import com.yeshi.fanli.dto.ChartTDO; |
| | | import com.yeshi.fanli.dto.order.CountOrderDTO; |
| | | import com.yeshi.fanli.entity.admin.count.CountOrderTrackRate; |
| | | import com.yeshi.fanli.entity.admin.count.CountOrderTrackRate.OrderTrackRateEnum; |
| | | import com.yeshi.fanli.service.inter.order.CommonOrderCountService; |
| | | import com.yeshi.fanli.util.Constant; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import com.yeshi.fanli.util.TimeUtil; |
| | | |
| | | @Service |
| | | public class CommonOrderCountServiceImpl implements CommonOrderCountService { |
| | | |
| | | @Resource |
| | | private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper; |
| | | |
| | | @Resource |
| | | private TaoBaoOrderMapper taoBaoOrderMapper; |
| | | |
| | | @Resource |
| | | private JDOrderItemMapper jdOrderItemMapper; |
| | | |
| | | @Resource |
| | | private PDDOrderMapper pddOrderMapper; |
| | | |
| | | @Resource |
| | | private CommonOrderCountMapper commonOrderCountMapper; |
| | | |
| | | |
| | | @Resource |
| | | private CountOrderInfoDao countOrderInfoDao; |
| | | |
| | | |
| | | @Resource |
| | | private CountOrderTrackRateDao countOrderTrackRateDao; |
| | | |
| | | |
| | | @Override |
| | | public Long countByState(Integer state) { |
| | | return commonOrderCountMapper.countByState(state); |
| | | } |
| | | |
| | | @Override |
| | | public Integer countOderByUidAndLess10(Long uid) { |
| | | return commonOrderCountMapper.countOderByUidAndLess10(uid); |
| | | } |
| | | |
| | | public List<ChartTDO> dayFactory(String startTime, String endTime, List<ChartTDO> list) throws Exception { |
| | | List<ChartTDO> listObject = new ArrayList<ChartTDO>(); |
| | | if (startTime.equals(endTime)) { |
| | | ChartTDO chartTDO = list.get(0); |
| | | String showValue = chartTDO.getShowValue(); |
| | | if (showValue == null) { |
| | | chartTDO.setShowValue("0"); |
| | | } |
| | | listObject.add(chartTDO); |
| | | return listObject; |
| | | } |
| | | |
| | | String plusDay = ""; |
| | | for (int i = 0; i < 1000; i++) { |
| | | if (i == 0) { |
| | | plusDay = startTime; |
| | | } else { |
| | | plusDay = DateUtil.plusDay(i, startTime); |
| | | } |
| | | |
| | | String total = null; |
| | | for (int j = 0; j < list.size(); j++) { |
| | | ChartTDO chartTDO = list.get(j); |
| | | String showDate = chartTDO.getShowDate(); |
| | | if (plusDay.equalsIgnoreCase(showDate)) { |
| | | total = chartTDO.getShowValue(); |
| | | break; |
| | | } |
| | | } |
| | | if (total == null) { |
| | | total = "0"; |
| | | } |
| | | ChartTDO chartTDO = new ChartTDO(); |
| | | chartTDO.setShowDate(plusDay); |
| | | chartTDO.setShowValue(total); |
| | | listObject.add(chartTDO); |
| | | |
| | | if (plusDay.equals(endTime)) { |
| | | break; // 时间结束 |
| | | } |
| | | } |
| | | |
| | | return listObject; |
| | | } |
| | | |
| | | public List<ChartTDO> monthFactory(List<ChartTDO> list) { |
| | | List<ChartTDO> listObject = new ArrayList<ChartTDO>(); |
| | | // 12 个月处理 |
| | | for (int i = 1; i <= 12; i++) { |
| | | String total = null; |
| | | for (int j = 0; j < list.size(); j++) { |
| | | ChartTDO chartTDO = list.get(j); |
| | | String month = chartTDO.getShowDate(); |
| | | if ((i + "").equalsIgnoreCase(month) || i == Integer.parseInt(month)) { |
| | | total = chartTDO.getShowValue(); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (total == null) { |
| | | total = "0"; |
| | | } |
| | | |
| | | ChartTDO chartTDO = new ChartTDO(); |
| | | chartTDO.setShowValue(total); |
| | | if (i < 10) { |
| | | chartTDO.setShowDate("0" + i); |
| | | } else { |
| | | chartTDO.setShowDate(i + ""); |
| | | } |
| | | listObject.add(chartTDO); |
| | | } |
| | | return listObject; |
| | | } |
| | | |
| | | public List<ChartTDO> yearFactory(List<ChartTDO> list) { |
| | | List<ChartTDO> listObject = new ArrayList<ChartTDO>(); |
| | | for (int i = 0; i < list.size(); i++) { |
| | | ChartTDO chartTDO = list.get(i); |
| | | String showValue = chartTDO.getShowValue(); |
| | | if (showValue == null) { |
| | | chartTDO.setShowValue("0"); |
| | | } |
| | | listObject.add(chartTDO); |
| | | } |
| | | return listObject; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<ChartTDO> countWeiQaunOrderMoney(Integer dateType, String year, String startTime, String endTime) |
| | | throws Exception { |
| | | return taoBaoWeiQuanOrderMapper.countWeiQaunOrderMoney(dateType, year, startTime, endTime); |
| | | } |
| | | |
| | | @Override |
| | | public List<ChartTDO> countWeiQaunOrderNumber(Integer dateType, String year, String startTime, String endTime) |
| | | throws Exception { |
| | | return taoBaoWeiQuanOrderMapper.countWeiQaunOrderNumber(dateType, year, startTime, endTime); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> countOrderNumberBySettleTime(Long uid, Integer state, Integer day) { |
| | | return commonOrderCountMapper.countOrderNumberBySettleTime(uid, state, day); |
| | | } |
| | | |
| | | /** |
| | | * 根据结算时间筛选 上个月已结算的订订单数量 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Map<String, Object> lastMonthSettleOrderNumber(Long uid) { |
| | | return countOrderNumberBySettleTime(uid, 2, 4); // 根据 |
| | | } |
| | | |
| | | @Override |
| | | public BigDecimal getMoneyByOrderNo(String orderNo) { |
| | | return commonOrderCountMapper.getMoneyByOrderNo(orderNo); |
| | | } |
| | | |
| | | @Override |
| | | public long countValidOrderByDate(Long uid, String dateTime) { |
| | | return commonOrderCountMapper.countValidOrderByDate(uid, dateTime); |
| | | } |
| | | |
| | | @Override |
| | | public long countSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount) { |
| | | return commonOrderCountMapper.countSameShopOrderByUidAndHongBaoType(typeList, uid, minSameShopGoodsCount); |
| | | } |
| | | |
| | | @Override |
| | | public long countSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount) { |
| | | return commonOrderCountMapper.countSameGoodsOrderByUidAndHongBaoType(typeList, uid, minSameGoodsOrderCount); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<Long> getSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount) { |
| | | return commonOrderCountMapper.getSameShopOrderByUidAndHongBaoType(typeList, uid, minSameShopGoodsCount); |
| | | } |
| | | |
| | | @Override |
| | | public List<Long> getSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount) { |
| | | return commonOrderCountMapper.getSameGoodsOrderByUidAndHongBaoType(typeList, uid, minSameGoodsOrderCount); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Integer countOderByUidAndDate(Date preDay, Long uid) { |
| | | return commonOrderCountMapper.countOderByUidAndDate(preDay, uid); |
| | | } |
| | | |
| | | @Override |
| | | public List<CountOrderDTO> countValidOrderByDay(String preDay) { |
| | | return commonOrderCountMapper.countValidOrderByDay(preDay); |
| | | } |
| | | |
| | | @Override |
| | | public Integer countDownOrderUserByUidAndDate(Date preDay, List<Long> list) { |
| | | return commonOrderCountMapper.countDownOrderUserByUidAndDate(preDay, list); |
| | | } |
| | | |
| | | @Override |
| | | public List<CountOrderDTO> countCommissionByDay(String preDay) { |
| | | return commonOrderCountMapper.countCommissionByDay(preDay); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Integer countOderByDate(String preDay) { |
| | | return commonOrderCountMapper.countOderByDate(preDay); |
| | | } |
| | | |
| | | @Override |
| | | public BigDecimal countCommissionByDate(String preDay) { |
| | | return commonOrderCountMapper.countCommissionByDate(preDay); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<CountOrderTrackRate> getOrderTrackRate(int type, Date startTime, Date endTime) { |
| | | |
| | | OrderTrackRateEnum trackRateEnum = null; |
| | | if (type == 1) { |
| | | trackRateEnum = OrderTrackRateEnum.taobao; |
| | | } else if (type == 2) { |
| | | trackRateEnum = OrderTrackRateEnum.jd; |
| | | } else if (type == 3) { |
| | | trackRateEnum = OrderTrackRateEnum.pdd; |
| | | } else { |
| | | trackRateEnum = OrderTrackRateEnum.taobao; |
| | | } |
| | | |
| | | // 重新查询统计今日以及空缺 |
| | | initOrderTrackRate(trackRateEnum); |
| | | |
| | | return countOrderTrackRateDao.query(trackRateEnum, startTime, endTime); |
| | | } |
| | | |
| | | // 初始化统计 |
| | | private void initOrderTrackRate(OrderTrackRateEnum trackRateEnum) { |
| | | try { |
| | | CountOrderTrackRate lastRecord = countOrderTrackRateDao.getMaxDate(trackRateEnum); |
| | | Date lastDay = null; |
| | | if (lastRecord != null && lastRecord.getDay() != null) { |
| | | lastDay = lastRecord.getDay(); |
| | | } |
| | | |
| | | if (lastDay == null) { |
| | | lastDay = TimeUtil.parse("2018-01-01"); |
| | | } |
| | | |
| | | Date today = new Date(); |
| | | int betweenDays = DateUtil.daysBetween2(lastDay, today); |
| | | if (betweenDays > 0) { |
| | | for (int i = 0; i <= betweenDays; i++) { |
| | | addOrderTrackRateCount(DateUtil.plusDay(i, lastDay), trackRateEnum); |
| | | } |
| | | } else { |
| | | // 重新统计昨日 |
| | | addOrderTrackRateCount(DateUtil.reduceDay2(1, lastDay), trackRateEnum); |
| | | // 重新统计今日 |
| | | addOrderTrackRateCount(TimeUtil.getGernalTime(today.getTime()), trackRateEnum); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | private void addOrderTrackRateCount(String preDay, OrderTrackRateEnum trackRateEnum) throws Exception { |
| | | int value = trackRateEnum.getValue(); |
| | | Long count = commonOrderCountMapper.countOrderBySourceTypeAndDay(preDay,value); |
| | | if (count == null) { |
| | | count = 0L; |
| | | } |
| | | |
| | | Long total = null; |
| | | switch (value) { |
| | | case Constant.SOURCE_TYPE_TAOBAO: |
| | | total = taoBaoOrderMapper.countOrderByDay(preDay); |
| | | break; |
| | | case Constant.SOURCE_TYPE_JD: |
| | | total = jdOrderItemMapper.countOrderByDay(preDay); |
| | | break; |
| | | case Constant.SOURCE_TYPE_PDD: |
| | | total = pddOrderMapper.countOrderByDay(preDay); |
| | | break; |
| | | } |
| | | |
| | | if(total == null) |
| | | total = 0L; |
| | | |
| | | CountOrderTrackRate record = new CountOrderTrackRate(); |
| | | record.setNum(count); |
| | | record.setTotalNum(total); |
| | | record.setDay(TimeUtil.parse(preDay)); |
| | | record.setType(trackRateEnum.name()); |
| | | record.setId(StringUtil.Md5(preDay + trackRateEnum.name())); |
| | | countOrderTrackRateDao.save(record); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | package com.yeshi.fanli.service.inter.order;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import com.yeshi.fanli.dto.ChartTDO;
|
| | | import com.yeshi.fanli.dto.order.CountOrderDTO;
|
| | | import com.yeshi.fanli.entity.admin.count.CountOrderTrackRate;
|
| | |
|
| | | public interface CommonOrderCountService {
|
| | |
|
| | | /**
|
| | | * 当前各个状态订单数
|
| | | * |
| | | * @param state
|
| | | * 状态
|
| | | * @return
|
| | | */
|
| | | public Long countByState(Integer state);
|
| | |
|
| | |
|
| | | /**
|
| | | * 统计总金额
|
| | | * |
| | | * @param dateType
|
| | | * @param year
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | public List<ChartTDO> countWeiQaunOrderMoney(Integer dateType, String year, String startTime, String endTime)
|
| | | throws Exception;
|
| | |
|
| | | /**
|
| | | * 统计总个数
|
| | | * |
| | | * @param dateType
|
| | | * @param year
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | public List<ChartTDO> countWeiQaunOrderNumber(Integer dateType, String year, String startTime, String endTime)
|
| | | throws Exception;
|
| | |
|
| | | /**
|
| | | * 根据结算时间统计
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * @param day
|
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | public Map<String, Object> countOrderNumberBySettleTime(Long uid, Integer state, Integer day);
|
| | |
|
| | | /**
|
| | | * 根据结算时间筛选 上个月已结算的订订单数量
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public Map<String, Object> lastMonthSettleOrderNumber(Long uid);
|
| | |
|
| | | /**
|
| | | * 根据订单号 统计奖励券加成金额
|
| | | * |
| | | * @param orderNo
|
| | | * @return
|
| | | */
|
| | | BigDecimal getMoneyByOrderNo(String orderNo);
|
| | |
|
| | | /**
|
| | | * 统计已到账返利订单
|
| | | * |
| | | * @param uid
|
| | | * @param dateTime
|
| | | * @return
|
| | | */
|
| | | public long countValidOrderByDate(Long uid, String dateTime);
|
| | |
|
| | | /**
|
| | | * 查询用户在同一店铺购买超过一定数量商品的店铺数量
|
| | | * |
| | | * @param typeList
|
| | | * -红包类型
|
| | | * @param uid
|
| | | * -用户ID
|
| | | * @param minSameShopGoodsCount
|
| | | * -同一店铺买的最小订单数
|
| | | * @return
|
| | | */
|
| | | long countSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount);
|
| | |
|
| | | /**
|
| | | * 查询用户购买相同商品超过一定的订单数量的商品数量
|
| | | * |
| | | * @param typeList
|
| | | * @param uid
|
| | | * @param minSameGoodsOrderCount
|
| | | * @return
|
| | | */
|
| | | long countSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount);
|
| | |
|
| | | |
| | | /**
|
| | | * 查询用户在同一店铺购买超过一定数量商品的店铺id
|
| | | * |
| | | * @param typeList
|
| | | * -红包类型
|
| | | * @param uid
|
| | | * -用户ID
|
| | | * @param minSameShopGoodsCount
|
| | | * -同一店铺买的最小订单数
|
| | | * @return
|
| | | */
|
| | | List<Long> getSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount);
|
| | |
|
| | | /**
|
| | | * 查询用户购买相同商品超过一定的订单数量的商品id
|
| | | * |
| | | * @param typeList
|
| | | * @param uid
|
| | | * @param minSameGoodsOrderCount
|
| | | * @return
|
| | | */
|
| | | List<Long> getSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount);
|
| | |
|
| | | /**
|
| | | * 统计日期内产生有效订单数量(返利 + 分享)
|
| | | * @param preDay
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public Integer countOderByUidAndDate(Date preDay, Long uid);
|
| | | |
| | | /**
|
| | | * 统计日期内产生有效订单数量(返利 + 分享) 多个uid
|
| | | * @param preDay
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | //public Integer countOrderByUidsAndDate(Date preDay, List<Long> list);
|
| | | /**
|
| | | * 统计再此时间内 产生订单的用户数量
|
| | | * @param preDay
|
| | | * @param list
|
| | | * @return
|
| | | */
|
| | | public Integer countDownOrderUserByUidAndDate(Date preDay, List<Long> list);
|
| | |
|
| | | /**
|
| | | * 统计订单佣金
|
| | | * @param preDay
|
| | | * @param list
|
| | | * @return
|
| | | */
|
| | | List<CountOrderDTO> countCommissionByDay(String preDay);
|
| | | |
| | | /**
|
| | | * 总订单数 每-天
|
| | | * @param preDay
|
| | | * @return
|
| | | */
|
| | | public Integer countOderByDate(String preDay);
|
| | |
|
| | | /**
|
| | | * 统计订单佣金
|
| | | * @param preDay
|
| | | * @return
|
| | | */
|
| | | public BigDecimal countCommissionByDate(String preDay);
|
| | |
|
| | | /**
|
| | | * 当日每个用户下单数量
|
| | | * @param preDay
|
| | | * @return
|
| | | */
|
| | | public List<CountOrderDTO> countValidOrderByDay(String preDay);
|
| | |
|
| | | /**
|
| | | * 统计跟踪率
|
| | | * @param type
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | */
|
| | | public List<CountOrderTrackRate> getOrderTrackRate(int type, Date startTime, Date endTime);
|
| | |
|
| | | |
| | | }
|
| | | package com.yeshi.fanli.service.inter.order; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import com.yeshi.fanli.dto.ChartTDO; |
| | | import com.yeshi.fanli.dto.order.CountOrderDTO; |
| | | import com.yeshi.fanli.entity.admin.count.CountOrderTrackRate; |
| | | |
| | | public interface CommonOrderCountService { |
| | | |
| | | /** |
| | | * 当前各个状态订单数 |
| | | * |
| | | * @param state |
| | | * 状态 |
| | | * @return |
| | | */ |
| | | public Long countByState(Integer state); |
| | | |
| | | |
| | | /** |
| | | * 统计总金额 |
| | | * |
| | | * @param dateType |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public List<ChartTDO> countWeiQaunOrderMoney(Integer dateType, String year, String startTime, String endTime) |
| | | throws Exception; |
| | | |
| | | /** |
| | | * 统计总个数 |
| | | * |
| | | * @param dateType |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public List<ChartTDO> countWeiQaunOrderNumber(Integer dateType, String year, String startTime, String endTime) |
| | | throws Exception; |
| | | |
| | | /** |
| | | * 根据结算时间统计 |
| | | * |
| | | * @param uid |
| | | * @param state |
| | | * @param day |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public Map<String, Object> countOrderNumberBySettleTime(Long uid, Integer state, Integer day); |
| | | |
| | | /** |
| | | * 根据结算时间筛选 上个月已结算的订订单数量 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | public Map<String, Object> lastMonthSettleOrderNumber(Long uid); |
| | | |
| | | /** |
| | | * 根据订单号 统计奖励券加成金额 |
| | | * |
| | | * @param orderNo |
| | | * @return |
| | | */ |
| | | BigDecimal getMoneyByOrderNo(String orderNo); |
| | | |
| | | /** |
| | | * 统计已到账返利订单 |
| | | * |
| | | * @param uid |
| | | * @param dateTime |
| | | * @return |
| | | */ |
| | | public long countValidOrderByDate(Long uid, String dateTime); |
| | | |
| | | /** |
| | | * 查询用户在同一店铺购买超过一定数量商品的店铺数量 |
| | | * |
| | | * @param typeList |
| | | * -红包类型 |
| | | * @param uid |
| | | * -用户ID |
| | | * @param minSameShopGoodsCount |
| | | * -同一店铺买的最小订单数 |
| | | * @return |
| | | */ |
| | | long countSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount); |
| | | |
| | | /** |
| | | * 查询用户购买相同商品超过一定的订单数量的商品数量 |
| | | * |
| | | * @param typeList |
| | | * @param uid |
| | | * @param minSameGoodsOrderCount |
| | | * @return |
| | | */ |
| | | long countSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount); |
| | | |
| | | |
| | | /** |
| | | * 查询用户在同一店铺购买超过一定数量商品的店铺id |
| | | * |
| | | * @param typeList |
| | | * -红包类型 |
| | | * @param uid |
| | | * -用户ID |
| | | * @param minSameShopGoodsCount |
| | | * -同一店铺买的最小订单数 |
| | | * @return |
| | | */ |
| | | List<Long> getSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount); |
| | | |
| | | /** |
| | | * 查询用户购买相同商品超过一定的订单数量的商品id |
| | | * |
| | | * @param typeList |
| | | * @param uid |
| | | * @param minSameGoodsOrderCount |
| | | * @return |
| | | */ |
| | | List<Long> getSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount); |
| | | |
| | | /** |
| | | * 统计日期内产生有效订单数量(返利 + 分享) |
| | | * @param preDay |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | public Integer countOderByUidAndDate(Date preDay, Long uid); |
| | | |
| | | /** |
| | | * 统计日期内产生有效订单数量(返利 + 分享) 多个uid |
| | | * @param preDay |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | //public Integer countOrderByUidsAndDate(Date preDay, List<Long> list); |
| | | /** |
| | | * 统计再此时间内 产生订单的用户数量 |
| | | * @param preDay |
| | | * @param list |
| | | * @return |
| | | */ |
| | | public Integer countDownOrderUserByUidAndDate(Date preDay, List<Long> list); |
| | | |
| | | /** |
| | | * 统计订单佣金 |
| | | * @param preDay |
| | | * @param list |
| | | * @return |
| | | */ |
| | | List<CountOrderDTO> countCommissionByDay(String preDay); |
| | | |
| | | /** |
| | | * 总订单数 每-天 |
| | | * @param preDay |
| | | * @return |
| | | */ |
| | | public Integer countOderByDate(String preDay); |
| | | |
| | | /** |
| | | * 统计订单佣金 |
| | | * @param preDay |
| | | * @return |
| | | */ |
| | | public BigDecimal countCommissionByDate(String preDay); |
| | | |
| | | /** |
| | | * 当日每个用户下单数量 |
| | | * @param preDay |
| | | * @return |
| | | */ |
| | | public List<CountOrderDTO> countValidOrderByDay(String preDay); |
| | | |
| | | /** |
| | | * 统计跟踪率 |
| | | * @param type |
| | | * @param startTime |
| | | * @param endTime |
| | | * @return |
| | | */ |
| | | public List<CountOrderTrackRate> getOrderTrackRate(int type, Date startTime, Date endTime); |
| | | |
| | | |
| | | /** |
| | | * 查询最近50小于10的订单数量 |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | public Integer countOderByUidAndLess10(Long uid); |
| | | |
| | | |
| | | } |
| | |
| | | package com.yeshi.fanli.service.inter.order;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import com.yeshi.fanli.dto.order.CommonOrderAddResultDTO;
|
| | | import com.yeshi.fanli.entity.accept.AcceptData;
|
| | | import com.yeshi.fanli.entity.jd.JDOrder;
|
| | | import com.yeshi.fanli.entity.order.CommonOrder;
|
| | | import com.yeshi.fanli.entity.order.ESOrder;
|
| | | import com.yeshi.fanli.entity.pdd.PDDOrder;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
|
| | | import com.yeshi.fanli.exception.order.CommonOrderException;
|
| | | import com.yeshi.fanli.vo.order.CommonOrderVO;
|
| | | import com.yeshi.fanli.vo.order.OrderCountVO;
|
| | |
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | | public interface CommonOrderService {
|
| | |
|
| | | public int insert(CommonOrder record);
|
| | |
|
| | | public int insertSelective(CommonOrder record);
|
| | |
|
| | | public int updateByPrimaryKey(CommonOrder record);
|
| | |
|
| | | public int updateByPrimaryKeySelective(CommonOrder record);
|
| | |
|
| | | public int deleteByPrimaryKey(Long id);
|
| | |
|
| | | public CommonOrder selectByPrimaryKey(Long id);
|
| | |
|
| | | /**
|
| | | * 查询用户订单 并订单号分组
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @param state
|
| | | * @param type
|
| | | * @param orderNo
|
| | | * 订单号
|
| | | * @param startTime
|
| | | * 起始系统录入时间
|
| | | * @param endTime
|
| | | * 结束系统录入时间
|
| | | * @return
|
| | | * @throws CommonOrderException
|
| | | */
|
| | | public List<CommonOrderVO> listGroupOrderNoByUid(long start, int count, Long uid, Integer state, Integer type,
|
| | | Integer orderState, String orderNo, String startTime, String endTime, Integer dateType, Integer source)
|
| | | throws CommonOrderException;
|
| | |
|
| | | /**
|
| | | * 统计查询
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * @param type
|
| | | * @param orderNo
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | * @throws CommonOrderException
|
| | | */
|
| | | long countGroupOrderNoByUid(Long uid, Integer state, Integer type, Integer orderState, String orderNo,
|
| | | String startTime, String endTime, Integer dateType, List<Integer> listSource) throws CommonOrderException;
|
| | |
|
| | | /**
|
| | | * 移动段订单列表
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * 用户id
|
| | | * @param type
|
| | | * 到账状态
|
| | | * @return
|
| | | */
|
| | | public List<CommonOrderVO> getOrderByUid(AcceptData acceptData, Integer page, Long uid, Integer state, Integer type,
|
| | | Integer orderState, String orderNo, String startTime, String endTime, Integer dateType, List<Integer> listSource)
|
| | | throws CommonOrderException,Exception;
|
| | |
|
| | | /**
|
| | | * 统计订单-根据红包类型 自购 邀请 分享
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public Map<String, BigDecimal> countHistoryOrder(Long uid, Integer day, Integer source);
|
| | |
|
| | | /**
|
| | | * 统计订单
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public long countBonusOrderNumber(Long uid, Integer type, Integer isToday, String startTime, String endTime,
|
| | | Integer source);
|
| | |
|
| | | /**
|
| | | * 统计订单
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public BigDecimal countBonusOrderMoney(Long uid, Integer type, Integer isToday, String startTime, String endTime,
|
| | | Integer source);
|
| | |
|
| | | /**
|
| | | * 统计奖金订单数量、金额
|
| | | * |
| | | * @param uid
|
| | | * @param type
|
| | | * @param day
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | */
|
| | | public Map<String, Object> countBonusOrderMoneyAndNumber(Long uid, Integer type, Integer day, String startTime,
|
| | | String endTime, Integer source);
|
| | |
|
| | | /**
|
| | | * 根据条件统计
|
| | | * |
| | | * @param uid
|
| | | * @param type
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | */
|
| | | public Long countUserOrderToApp(Long uid, Integer type, String startTime, String endTime,
|
| | | Integer day, Integer source, Integer state, Integer stateOrder);
|
| | |
|
| | | /**
|
| | | * 根据订单号与订单类型查询订单
|
| | | * |
| | | * @param sourceType
|
| | | * @param orderId
|
| | | * @return
|
| | | */
|
| | | public List<CommonOrder> listBySourceTypeAndOrderId(int sourceType, String orderId);
|
| | |
|
| | | /**
|
| | | * 缓存淘宝类普通订单
|
| | | * |
| | | * @param taoBaoOrder
|
| | | * @param uid
|
| | | * @return
|
| | | * @throws CommonOrderException
|
| | | */
|
| | | public List<CommonOrderAddResultDTO> addTaoBaoOrder(List<TaoBaoOrder> taoBaoOrder, Long uid) throws CommonOrderException;
|
| | |
|
| | | /**
|
| | | * 缓存拼多多类普通订单
|
| | | * |
| | | * @param pddOrderList
|
| | | * @param uid
|
| | | * @return
|
| | | * @throws CommonOrderException
|
| | | */
|
| | | public List<CommonOrderAddResultDTO> addPDDOrder(List<PDDOrder> pddOrderList, Long uid) throws CommonOrderException;
|
| | |
|
| | | /**
|
| | | * 缓存京东普通订单
|
| | | * |
| | | * @param jdOrderList
|
| | | * @param uid
|
| | | * @return
|
| | | * @throws CommonOrderException
|
| | | */
|
| | | public List<CommonOrderAddResultDTO> addJDOrder(JDOrder jdOrder, Long uid) throws CommonOrderException;
|
| | |
|
| | | /**
|
| | | * 根据用户ID,订单状态,结算时间统计订单数量
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * @param minDate
|
| | | * @param maxDate
|
| | | * @return
|
| | | */
|
| | | public long countByUidAndOrderStateWithOrderBalanceTime(Long uid, int state, Date minDate, Date maxDate);
|
| | |
|
| | | /**
|
| | | * 后端查询订单列表
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @param state
|
| | | * @param type
|
| | | * @param orderState
|
| | | * @param orderNo
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @param dateType
|
| | | * 1昨天 2今天 3本月 4 上月
|
| | | * @return
|
| | | * @throws CommonOrderException
|
| | | */
|
| | | public List<CommonOrderVO> listQueryByUid(long start, int count, Long uid, Integer state, Integer type,
|
| | | Integer orderState, String orderNo, String startTime, String endTime, Integer dateType)
|
| | | throws CommonOrderException;
|
| | |
|
| | | public long countQueryByUid(Long uid, Integer state, Integer type, Integer orderState, String orderNo,
|
| | | String startTime, String endTime, Integer dateType) throws CommonOrderException;
|
| | |
|
| | | /**
|
| | | * 查询所有用户订单
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param keyType
|
| | | * @param key
|
| | | * @param state
|
| | | * @param type
|
| | | * @param orderState
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | * @throws CommonOrderException
|
| | | */
|
| | |
|
| | | public List<CommonOrderVO> listQuery(long start, int count, Integer keyType, String key, Integer state,
|
| | | Integer type, Integer orderState, String startTime, String endTime, Integer source,
|
| | | List<Long> listShopId, List<Long> listGoodsId, Date minTime, BigDecimal money)
|
| | | throws CommonOrderException;
|
| | |
|
| | | public long countQuery(Integer keyType, String key, Integer state, Integer type, Integer orderState,
|
| | | String startTime, String endTime, Integer source, |
| | | List<Long> listShopId, List<Long> listGoodsId,Date minTime, BigDecimal money) throws CommonOrderException;
|
| | |
|
| | | /**
|
| | | * 查询订单
|
| | | * |
| | | * @param uid
|
| | | * @param orderNo
|
| | | * @return
|
| | | * @throws CommonOrderException
|
| | | */
|
| | | public CommonOrderVO getCommonOrderByOrderNo(Long uid, String orderNo, Integer orderState, Integer sourceType)
|
| | | throws CommonOrderException;
|
| | |
|
| | | /**
|
| | | * 使用奖励券成功后跳转 修改
|
| | | * |
| | | * @param orderNo
|
| | | * @return
|
| | | */
|
| | | public JSONObject getRewardJumpInfo(String orderNo, Integer goodsType);
|
| | |
|
| | | /**
|
| | | * 根据交易号获取订单详情
|
| | | * |
| | | * @param sourceType
|
| | | * @param tradeId
|
| | | * @return
|
| | | */
|
| | | public CommonOrder selectBySourceTypeAndTradeId(int sourceType, String tradeId);
|
| | |
|
| | | /**
|
| | | * 删除错误订单
|
| | | * |
| | | * @param coId
|
| | | */
|
| | | public void deleteErrorCommonOrder(Long coId);
|
| | |
|
| | | /**
|
| | | * 根据订单类型与交易ID查询
|
| | | * |
| | | * @param sourceType
|
| | | * @param tradeId
|
| | | * @return
|
| | | */
|
| | | public List<CommonOrder> listBySourceTypeAndTradeId(int sourceType, String tradeId);
|
| | |
|
| | | /**
|
| | | * 根据条件查询订单
|
| | | * |
| | | * @param sourceType
|
| | | * @param state
|
| | | * @param minTime
|
| | | * @param maxTime
|
| | | * @param page
|
| | | * @param pageSize
|
| | | * @return
|
| | | */
|
| | | public List<CommonOrder> listBySourceTypeAndStateAndThirdCrateTime(int sourceType, Integer state, Long minTime,
|
| | | Long maxTime, int page, int pageSize);
|
| | |
|
| | | /**
|
| | | * 查询订单 -根据订单号
|
| | | * |
| | | * @param uid
|
| | | * @param orderNO
|
| | | * @return
|
| | | */
|
| | | public List<CommonOrder> getByOrderNo(Long uid, String orderNO);
|
| | |
|
| | | /**
|
| | | * 根据用户ID查询最近一条有效的订单
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public CommonOrder selectLatestValidByUid(Long uid);
|
| | | |
| | | /**
|
| | | * 查询首笔有效订单
|
| | | * @param uid |
| | | * @return
|
| | | */
|
| | | public CommonOrderVO firstValidOrderByUid(Long uid);
|
| | | |
| | |
|
| | | /**
|
| | | * 查询首笔有效订单
|
| | | * @param uid |
| | | * @param type 类型: 1自购 2分享 3邀请
|
| | | * @return
|
| | | */
|
| | | public CommonOrderVO firstValidOrderByUidAndType(Long uid, Integer type);
|
| | |
|
| | | /**
|
| | | * 查询是否上月到账订单
|
| | | * @param uid
|
| | | * @param type 类型: 1自购 2分享 3邀请
|
| | | * @return
|
| | | */
|
| | | public CommonOrderVO firstValidOrderLastMonthByUidAndType(Long uid, Integer type);
|
| | |
|
| | | /**
|
| | | * 首个分享订单
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public CommonOrder getFirstShareOrderByUid(Long uid);
|
| | |
|
| | | /**
|
| | | * 订单中获得有效奖金
|
| | | * @param orderNo
|
| | | * @param sourceType
|
| | | * @return
|
| | | */
|
| | | public BigDecimal getTotalRewardMoneyByOrderNoAndSourceType(String orderNo, Integer sourceType);
|
| | |
|
| | | /**
|
| | | * 统计24小时有效自购订单
|
| | | * @param uid
|
| | | * @param minTime
|
| | | * @return
|
| | | */
|
| | | public long count24HValidOrderByUid(Long uid, Date minTime);
|
| | |
|
| | | /**
|
| | | * 订单统计有效数量
|
| | | * @param uid
|
| | | * @param day
|
| | | * @param source
|
| | | * @return
|
| | | */
|
| | | public OrderCountVO getOrderCount(Long uid, Integer day, List<Integer> listSource);
|
| | |
|
| | | /**
|
| | | * 搜索订单信息
|
| | | * @param page
|
| | | * @param size
|
| | | * @param uid
|
| | | * @param list
|
| | | * @return
|
| | | */
|
| | | public List<CommonOrderVO> searchOrderByUid(int page, int size, Long uid, List<ESOrder> list) throws Exception;
|
| | |
|
| | | public long countSearchOrderByUid(Long uid, List<ESOrder> list);
|
| | |
|
| | | }
|
| | | package com.yeshi.fanli.service.inter.order; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import com.yeshi.fanli.dto.order.CommonOrderAddResultDTO; |
| | | import com.yeshi.fanli.entity.accept.AcceptData; |
| | | import com.yeshi.fanli.entity.jd.JDOrder; |
| | | import com.yeshi.fanli.entity.order.CommonOrder; |
| | | import com.yeshi.fanli.entity.order.ESOrder; |
| | | import com.yeshi.fanli.entity.pdd.PDDOrder; |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoOrder; |
| | | import com.yeshi.fanli.exception.order.CommonOrderException; |
| | | import com.yeshi.fanli.vo.order.CommonOrderVO; |
| | | import com.yeshi.fanli.vo.order.OrderCountVO; |
| | | |
| | | import net.sf.json.JSONObject; |
| | | |
| | | public interface CommonOrderService { |
| | | |
| | | public int insert(CommonOrder record); |
| | | |
| | | public int insertSelective(CommonOrder record); |
| | | |
| | | public int updateByPrimaryKey(CommonOrder record); |
| | | |
| | | public int updateByPrimaryKeySelective(CommonOrder record); |
| | | |
| | | public int deleteByPrimaryKey(Long id); |
| | | |
| | | public CommonOrder selectByPrimaryKey(Long id); |
| | | |
| | | /** |
| | | * 查询用户订单 并订单号分组 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @param uid |
| | | * @param state |
| | | * @param type |
| | | * @param orderNo |
| | | * 订单号 |
| | | * @param startTime |
| | | * 起始系统录入时间 |
| | | * @param endTime |
| | | * 结束系统录入时间 |
| | | * @return |
| | | * @throws CommonOrderException |
| | | */ |
| | | public List<CommonOrderVO> listGroupOrderNoByUid(long start, int count, Long uid, Integer state, Integer type, |
| | | Integer orderState, String orderNo, String startTime, String endTime, Integer dateType, Integer source) |
| | | throws CommonOrderException; |
| | | |
| | | /** |
| | | * 统计查询 |
| | | * |
| | | * @param uid |
| | | * @param state |
| | | * @param type |
| | | * @param orderNo |
| | | * @param startTime |
| | | * @param endTime |
| | | * @return |
| | | * @throws CommonOrderException |
| | | */ |
| | | long countGroupOrderNoByUid(Long uid, Integer state, Integer type, Integer orderState, String orderNo, |
| | | String startTime, String endTime, Integer dateType, List<Integer> listSource) throws CommonOrderException; |
| | | |
| | | /** |
| | | * 移动段订单列表 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @param uid |
| | | * 用户id |
| | | * @param type |
| | | * 到账状态 |
| | | * @return |
| | | */ |
| | | public List<CommonOrderVO> getOrderByUid(AcceptData acceptData, Integer page, Long uid, Integer state, Integer type, |
| | | Integer orderState, String orderNo, String startTime, String endTime, Integer dateType, List<Integer> listSource) |
| | | throws CommonOrderException,Exception; |
| | | |
| | | /** |
| | | * 统计订单-根据红包类型 自购 邀请 分享 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | public Map<String, BigDecimal> countHistoryOrder(Long uid, Integer day, Integer source); |
| | | |
| | | /** |
| | | * 统计订单 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | public long countBonusOrderNumber(Long uid, Integer type, Integer isToday, String startTime, String endTime, |
| | | Integer source); |
| | | |
| | | /** |
| | | * 统计订单 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | public BigDecimal countBonusOrderMoney(Long uid, Integer type, Integer isToday, String startTime, String endTime, |
| | | Integer source); |
| | | |
| | | /** |
| | | * 统计奖金订单数量、金额 |
| | | * |
| | | * @param uid |
| | | * @param type |
| | | * @param day |
| | | * @param startTime |
| | | * @param endTime |
| | | * @return |
| | | */ |
| | | public Map<String, Object> countBonusOrderMoneyAndNumber(Long uid, Integer type, Integer day, String startTime, |
| | | String endTime, Integer source); |
| | | |
| | | /** |
| | | * 根据条件统计 |
| | | * |
| | | * @param uid |
| | | * @param type |
| | | * @param startTime |
| | | * @param endTime |
| | | * @return |
| | | */ |
| | | public Long countUserOrderToApp(Long uid, Integer type, String startTime, String endTime, |
| | | Integer day, Integer source, Integer state, Integer stateOrder); |
| | | |
| | | /** |
| | | * 根据订单号与订单类型查询订单 |
| | | * |
| | | * @param sourceType |
| | | * @param orderId |
| | | * @return |
| | | */ |
| | | public List<CommonOrder> listBySourceTypeAndOrderId(int sourceType, String orderId); |
| | | |
| | | /** |
| | | * 缓存淘宝类普通订单 |
| | | * |
| | | * @param taoBaoOrder |
| | | * @param uid |
| | | * @return |
| | | * @throws CommonOrderException |
| | | */ |
| | | public List<CommonOrderAddResultDTO> addTaoBaoOrder(List<TaoBaoOrder> taoBaoOrder, Long uid) throws CommonOrderException; |
| | | |
| | | /** |
| | | * 缓存拼多多类普通订单 |
| | | * |
| | | * @param pddOrderList |
| | | * @param uid |
| | | * @return |
| | | * @throws CommonOrderException |
| | | */ |
| | | public List<CommonOrderAddResultDTO> addPDDOrder(List<PDDOrder> pddOrderList, Long uid) throws CommonOrderException; |
| | | |
| | | /** |
| | | * 缓存京东普通订单 |
| | | * |
| | | * @param jdOrderList |
| | | * @param uid |
| | | * @return |
| | | * @throws CommonOrderException |
| | | */ |
| | | public List<CommonOrderAddResultDTO> addJDOrder(JDOrder jdOrder, Long uid) throws CommonOrderException; |
| | | |
| | | /** |
| | | * 根据用户ID,订单状态,结算时间统计订单数量 |
| | | * |
| | | * @param uid |
| | | * @param state |
| | | * @param minDate |
| | | * @param maxDate |
| | | * @return |
| | | */ |
| | | public long countByUidAndOrderStateWithOrderBalanceTime(Long uid, int state, Date minDate, Date maxDate); |
| | | |
| | | /** |
| | | * 后端查询订单列表 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @param uid |
| | | * @param state |
| | | * @param type |
| | | * @param orderState |
| | | * @param orderNo |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param dateType |
| | | * 1昨天 2今天 3本月 4 上月 |
| | | * @return |
| | | * @throws CommonOrderException |
| | | */ |
| | | public List<CommonOrderVO> listQueryByUid(long start, int count, Long uid, Integer state, Integer type, |
| | | Integer orderState, String orderNo, String startTime, String endTime, Integer dateType) |
| | | throws CommonOrderException; |
| | | |
| | | public long countQueryByUid(Long uid, Integer state, Integer type, Integer orderState, String orderNo, |
| | | String startTime, String endTime, Integer dateType) throws CommonOrderException; |
| | | |
| | | /** |
| | | * 查询所有用户订单 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @param keyType |
| | | * @param key |
| | | * @param state |
| | | * @param type |
| | | * @param orderState |
| | | * @param startTime |
| | | * @param endTime |
| | | * @return |
| | | * @throws CommonOrderException |
| | | */ |
| | | |
| | | public List<CommonOrderVO> listQuery(long start, int count, Integer keyType, String key, Integer state, |
| | | Integer type, Integer orderState, String startTime, String endTime, Integer source, |
| | | List<Long> listShopId, List<Long> listGoodsId, Date minTime, BigDecimal money,BigDecimal payment) |
| | | throws CommonOrderException; |
| | | |
| | | public long countQuery(Integer keyType, String key, Integer state, Integer type, Integer orderState, |
| | | String startTime, String endTime, Integer source, |
| | | List<Long> listShopId, List<Long> listGoodsId,Date minTime, BigDecimal money,BigDecimal payment) throws CommonOrderException; |
| | | |
| | | /** |
| | | * 查询订单 |
| | | * |
| | | * @param uid |
| | | * @param orderNo |
| | | * @return |
| | | * @throws CommonOrderException |
| | | */ |
| | | public CommonOrderVO getCommonOrderByOrderNo(Long uid, String orderNo, Integer orderState, Integer sourceType) |
| | | throws CommonOrderException; |
| | | |
| | | /** |
| | | * 使用奖励券成功后跳转 修改 |
| | | * |
| | | * @param orderNo |
| | | * @return |
| | | */ |
| | | public JSONObject getRewardJumpInfo(String orderNo, Integer goodsType); |
| | | |
| | | /** |
| | | * 根据交易号获取订单详情 |
| | | * |
| | | * @param sourceType |
| | | * @param tradeId |
| | | * @return |
| | | */ |
| | | public CommonOrder selectBySourceTypeAndTradeId(int sourceType, String tradeId); |
| | | |
| | | /** |
| | | * 删除错误订单 |
| | | * |
| | | * @param coId |
| | | */ |
| | | public void deleteErrorCommonOrder(Long coId); |
| | | |
| | | /** |
| | | * 根据订单类型与交易ID查询 |
| | | * |
| | | * @param sourceType |
| | | * @param tradeId |
| | | * @return |
| | | */ |
| | | public List<CommonOrder> listBySourceTypeAndTradeId(int sourceType, String tradeId); |
| | | |
| | | /** |
| | | * 根据条件查询订单 |
| | | * |
| | | * @param sourceType |
| | | * @param state |
| | | * @param minTime |
| | | * @param maxTime |
| | | * @param page |
| | | * @param pageSize |
| | | * @return |
| | | */ |
| | | public List<CommonOrder> listBySourceTypeAndStateAndThirdCrateTime(int sourceType, Integer state, Long minTime, |
| | | Long maxTime, int page, int pageSize); |
| | | |
| | | /** |
| | | * 查询订单 -根据订单号 |
| | | * |
| | | * @param uid |
| | | * @param orderNO |
| | | * @return |
| | | */ |
| | | public List<CommonOrder> getByOrderNo(Long uid, String orderNO); |
| | | |
| | | /** |
| | | * 根据用户ID查询最近一条有效的订单 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | public CommonOrder selectLatestValidByUid(Long uid); |
| | | |
| | | /** |
| | | * 查询首笔有效订单 |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | public CommonOrderVO firstValidOrderByUid(Long uid); |
| | | |
| | | |
| | | /** |
| | | * 查询首笔有效订单 |
| | | * @param uid |
| | | * @param type 类型: 1自购 2分享 3邀请 |
| | | * @return |
| | | */ |
| | | public CommonOrderVO firstValidOrderByUidAndType(Long uid, Integer type); |
| | | |
| | | /** |
| | | * 查询是否上月到账订单 |
| | | * @param uid |
| | | * @param type 类型: 1自购 2分享 3邀请 |
| | | * @return |
| | | */ |
| | | public CommonOrderVO firstValidOrderLastMonthByUidAndType(Long uid, Integer type); |
| | | |
| | | /** |
| | | * 首个分享订单 |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | public CommonOrder getFirstShareOrderByUid(Long uid); |
| | | |
| | | /** |
| | | * 订单中获得有效奖金 |
| | | * @param orderNo |
| | | * @param sourceType |
| | | * @return |
| | | */ |
| | | public BigDecimal getTotalRewardMoneyByOrderNoAndSourceType(String orderNo, Integer sourceType); |
| | | |
| | | /** |
| | | * 统计24小时有效自购订单 |
| | | * @param uid |
| | | * @param minTime |
| | | * @return |
| | | */ |
| | | public long count24HValidOrderByUid(Long uid, Date minTime); |
| | | |
| | | /** |
| | | * 订单统计有效数量 |
| | | * @param uid |
| | | * @param day |
| | | * @param source |
| | | * @return |
| | | */ |
| | | public OrderCountVO getOrderCount(Long uid, Integer day, List<Integer> listSource); |
| | | |
| | | /** |
| | | * 搜索订单信息 |
| | | * @param page |
| | | * @param size |
| | | * @param uid |
| | | * @param list |
| | | * @return |
| | | */ |
| | | public List<CommonOrderVO> searchOrderByUid(int page, int size, Long uid, List<ESOrder> list) throws Exception; |
| | | |
| | | public long countSearchOrderByUid(Long uid, List<ESOrder> list); |
| | | |
| | | } |