| | |
| | | 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.bind.annotation.RequestMethod;
|
| | | import org.springframework.web.bind.annotation.RequestParam;
|
| | | import org.yeshi.utils.DateUtil;
|
| | | import org.yeshi.utils.IPUtil;
|
| | | import org.yeshi.utils.JsonUtil;
|
| | | import org.yeshi.utils.encrypt.DESUtil;
|
| | |
|
| | | import com.yeshi.fanli.entity.AppVersionInfo;
|
| | | import com.yeshi.fanli.entity.accept.AcceptData;
|
| | | import com.yeshi.fanli.entity.bus.user.LostOrder;
|
| | | import com.yeshi.fanli.entity.bus.user.Order;
|
| | | import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.order.CommonOrder;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
|
| | | import com.yeshi.fanli.exception.order.CommonOrderException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.config.AppVersionService;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
|
| | | import com.yeshi.fanli.service.inter.order.CommonOrderService;
|
| | | import com.yeshi.fanli.service.inter.order.LostOrderService;
|
| | | import com.yeshi.fanli.service.inter.order.OrderService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
|
| | | import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
|
| | | import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
|
| | | import com.yeshi.fanli.util.CMQManager;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.VersionUtil;
|
| | | import com.yeshi.fanli.util.account.UserUtil;
|
| | | import com.yeshi.fanli.vo.order.CommonOrderVO;
|
| | | import com.yeshi.fanli.vo.user.UserInfoExtraVO;
|
| | |
| | | @Resource
|
| | | private OrderService orderService;
|
| | |
|
| | | @Resource
|
| | | private LostOrderService lostOrderService;
|
| | |
|
| | | /**
|
| | | * 订单列表
|
| | | *
|
| | |
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getorder", method = RequestMethod.POST)
|
| | | public void getOrder(AcceptData acceptData, Integer page, Long uid, Integer state, Integer type, Integer orderState,
|
| | | String orderNo, String startTime, String endTime, Integer slotTime, boolean needCount, Integer dateType,
|
| | | PrintWriter out) {
|
| | |
|
| | | public void getOrder(AcceptData acceptData, Integer page, Long uid, Integer state,
|
| | | @RequestParam(name = "type",required = false) String type1, Integer orderState, String orderNo, String startTime, String endTime,
|
| | | Integer slotTime, Boolean needCount, Integer dateType, Integer goodsType, PrintWriter out) {
|
| | | Integer type = null;
|
| | | |
| | | if (StringUtil.isNullOrEmpty(type1)) {
|
| | | type = null;
|
| | | } else {
|
| | | type = Integer.parseInt(type1);
|
| | | }
|
| | | |
| | | if (uid == null) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
|
| | | return;
|
| | | }
|
| | | |
| | | if (needCount == null)
|
| | | needCount = false;
|
| | |
|
| | | if (page == null || page < 1) {
|
| | | page = 1;
|
| | |
| | | state = null; // 清空
|
| | | }
|
| | |
|
| | | // 转换状态
|
| | | if (state != null && state == 5) {
|
| | | orderState = 2; // 已维权
|
| | | state = null; // 清空
|
| | | }
|
| | | |
| | | if (type != null && type == 0) {
|
| | | type = null; // 所有类型订单
|
| | | }
|
| | | |
| | | Integer tempState = state;
|
| | | // 转换状态
|
| | | if (state != null && orderState != null && (orderState == 2|| orderState == 3)) {
|
| | | state = null; // 清空
|
| | | }
|
| | | |
| | | if (!VersionUtil.greaterThan_1_6_0(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | | goodsType = Constant.SOURCE_TYPE_TAOBAO;
|
| | | } else if (goodsType != null && goodsType == 0){
|
| | | goodsType = null; // 所有平台订单
|
| | | }
|
| | |
|
| | | try {
|
| | |
| | |
|
| | | try {
|
| | | long count = 0;
|
| | | int totalValid = 0;
|
| | | int totalProces = 0;
|
| | | int totalInvite = 0;
|
| | | long totalValid = 0;
|
| | | long totalProces = 0;
|
| | | long totalInvite = 0;
|
| | | long todayTotal = 0;
|
| | | BigDecimal todayMoney = null;
|
| | |
|
| | | // 查询列表
|
| | | List<CommonOrderVO> list = commonOrderService.getOrderByUid(page, uid, state, type, orderState, orderNo,
|
| | | startTime, endTime, dateType);
|
| | | List<CommonOrderVO> list = commonOrderService.getOrderByUid(acceptData, page, uid, state, type, orderState, orderNo,
|
| | | startTime, endTime, dateType, goodsType);
|
| | |
|
| | | if (list != null && list.size() > 0) {
|
| | | // 统计总数
|
| | | count = commonOrderService.countGroupOrderNoByUid(uid, state, type, orderState, orderNo, startTime,
|
| | | endTime, dateType);
|
| | | endTime, dateType, goodsType);
|
| | | }
|
| | |
|
| | | // 需要统计筛选信息 :未失效的总金额 以及订单
|
| | | if (needCount && page == 1) {
|
| | |
|
| | | todayMoney = commonOrderService.countBonusOrderMoney(uid, type, dateType, startTime, endTime);
|
| | | todayMoney = commonOrderService.countBonusOrderMoney(uid, type, dateType, startTime, endTime, goodsType);
|
| | |
|
| | | todayTotal = commonOrderService.countBonusOrderNumber(uid, type, dateType, startTime, endTime);
|
| | | todayTotal = commonOrderService.countBonusOrderNumber(uid, type, dateType, startTime, endTime, goodsType);
|
| | |
|
| | | // 统计有效的订单数量 、 失效订单数量 、维权订单数量
|
| | | Map<String, BigDecimal> countOrder = commonOrderService.countByUidAndOrderState(uid, type, startTime,
|
| | | endTime, dateType);
|
| | |
|
| | | if (countOrder.get("totalValid") != null) {
|
| | | totalValid = countOrder.get("totalValid").intValue();
|
| | | }
|
| | |
|
| | | if (countOrder.get("totalProces") != null) {
|
| | | totalProces = countOrder.get("totalProces").intValue();
|
| | | }
|
| | |
|
| | | if (countOrder.get("totalInvite") != null) {
|
| | | totalInvite = countOrder.get("totalInvite").intValue();
|
| | | }
|
| | | // 有效订单
|
| | | totalValid = commonOrderService.countUserOrderToApp(uid, type, startTime,
|
| | | endTime, dateType, goodsType, tempState, 1);
|
| | | |
| | | // 维权订单
|
| | | totalProces = commonOrderService.countUserOrderToApp(uid, type, startTime,
|
| | | endTime, dateType, goodsType, null, 2);
|
| | | |
| | | // 失效订单
|
| | | totalInvite = commonOrderService.countUserOrderToApp(uid, type, startTime,
|
| | | endTime, dateType, goodsType, null, 3);
|
| | | }
|
| | |
|
| | | if (todayMoney == null) {
|
| | |
| | | JSONObject data = new JSONObject();
|
| | | data.put("userInfo", userInfo);
|
| | |
|
| | | Integer goodsType = null; // 版本区分
|
| | | if (!VersionUtil.greaterThan_1_6_0(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | | goodsType = Constant.SOURCE_TYPE_TAOBAO;
|
| | | } |
| | | |
| | | /* 总订单统计 */
|
| | | Map<String, BigDecimal> countOrder = commonOrderService.countHistoryOrder(uid, null);
|
| | | Map<String, BigDecimal> countOrder = commonOrderService.countHistoryOrder(uid, null, goodsType);
|
| | | int self = 0;
|
| | | if (countOrder.get("totalSelf") != null) {
|
| | | self = countOrder.get("totalSelf").intValue();
|
| | |
| | | data.put("invite", invite);
|
| | |
|
| | | /* 今日订单统计 */
|
| | | Map<String, BigDecimal> countToday = commonOrderService.countHistoryOrder(uid, 1);
|
| | | Map<String, BigDecimal> countToday = commonOrderService.countHistoryOrder(uid, 1, goodsType);
|
| | |
|
| | | int todaySelf = 0;
|
| | | if (countToday.get("totalSelf") != null) {
|
| | |
| | | data.put("today", todaydata);
|
| | |
|
| | | /* 昨日订单统计 */
|
| | | Map<String, BigDecimal> countYesterday = commonOrderService.countHistoryOrder(uid, 2);
|
| | | Map<String, BigDecimal> countYesterday = commonOrderService.countHistoryOrder(uid, 2, goodsType);
|
| | | int yesterdaySelf = 0;
|
| | | if (countYesterday.get("totalSelf") != null) {
|
| | | yesterdaySelf = countYesterday.get("totalSelf").intValue();
|
| | |
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 统计各个平台数据
|
| | | * @param acceptData
|
| | | * @param uid
|
| | | * @param goodsType
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getNearOrderNum", method = RequestMethod.POST)
|
| | | public void getNearOrderNum(AcceptData acceptData, Long uid, Integer goodsType, PrintWriter out) {
|
| | |
|
| | | if (uid == null) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (goodsType == null || goodsType > 3 || goodsType < 1) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "平台类型缺失或不正确"));
|
| | | return;
|
| | | }
|
| | | |
| | | /* 今日订单统计 */
|
| | | Map<String, BigDecimal> countToday = commonOrderService.countHistoryOrder(uid, 1, goodsType);
|
| | |
|
| | | int todaySelf = 0;
|
| | | if (countToday.get("totalSelf") != null) {
|
| | | todaySelf = countToday.get("totalSelf").intValue();
|
| | | }
|
| | |
|
| | | int todayShared = 0;
|
| | | if (countToday.get("totalShared") != null) {
|
| | | todayShared = countToday.get("totalShared").intValue();
|
| | | }
|
| | |
|
| | | int todayInvite = 0;
|
| | | if (countToday.get("totalInvite") != null) {
|
| | | todayInvite = countToday.get("totalInvite").intValue();
|
| | | }
|
| | |
|
| | | int todayTotal = todaySelf + todayShared + todayInvite;
|
| | |
|
| | | JSONObject todaydata = new JSONObject();
|
| | | todaydata.put("total", todayTotal);
|
| | | todaydata.put("self", todaySelf);
|
| | | todaydata.put("shared", todayShared);
|
| | | todaydata.put("invite", todayInvite);
|
| | |
|
| | | /* 昨日订单统计 */
|
| | | Map<String, BigDecimal> countYesterday = commonOrderService.countHistoryOrder(uid, 2, goodsType);
|
| | | int yesterdaySelf = 0;
|
| | | if (countYesterday.get("totalSelf") != null) {
|
| | | yesterdaySelf = countYesterday.get("totalSelf").intValue();
|
| | | }
|
| | |
|
| | | int yesterdayShared = 0;
|
| | | if (countYesterday.get("totalShared") != null) {
|
| | | yesterdayShared = countYesterday.get("totalShared").intValue();
|
| | | }
|
| | | int yesterdayInvite = 0;
|
| | | if (countYesterday.get("totalInvite") != null) {
|
| | | yesterdayInvite = countYesterday.get("totalInvite").intValue();
|
| | | }
|
| | | int yesterdayTotal = yesterdaySelf + yesterdayShared + yesterdayInvite;
|
| | |
|
| | | JSONObject yesterdaydata = new JSONObject();
|
| | | yesterdaydata.put("total", yesterdayTotal);
|
| | | yesterdaydata.put("self", yesterdaySelf);
|
| | | yesterdaydata.put("shared", yesterdayShared);
|
| | | yesterdaydata.put("invite", yesterdayInvite);
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | |
|
| | | data.put("today", todaydata);
|
| | | data.put("yesterday", yesterdaydata);
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 统计奖金
|
| | | *
|
| | |
| | | BigDecimal sharemoney = new BigDecimal(0.00);
|
| | | Object inviteCount = 0;
|
| | | BigDecimal inviteMoney = new BigDecimal(0.00);
|
| | | |
| | | Integer goodsType = null; // 版本区分
|
| | | if (!VersionUtil.greaterThan_1_6_0(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | | goodsType = Constant.SOURCE_TYPE_TAOBAO;
|
| | | } |
| | |
|
| | | Map<String, Object> shareMap = commonOrderService.countBonusOrderMoneyAndNumber(uid, 2, dateType, null,
|
| | | null);
|
| | | null, goodsType);
|
| | | if (shareMap != null) {
|
| | | Object totalNum = shareMap.get("totalNum");
|
| | | if (totalNum != null) {
|
| | |
| | |
|
| | | // 邀请统计
|
| | | Map<String, Object> inviteMap = commonOrderService.countBonusOrderMoneyAndNumber(uid, 3, dateType, null,
|
| | | null);
|
| | | null, goodsType);
|
| | | if (inviteMap != null) {
|
| | | Object totalNum = inviteMap.get("totalNum");
|
| | | if (totalNum != null) {
|
| | |
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "uploadParsedOrder", method = RequestMethod.POST)
|
| | | public void uploadParsedOrder(AcceptData acceptData, Long uid, String orderData, String source, PrintWriter out) {
|
| | | public void uploadParsedOrder(AcceptData acceptData, Long uid, String orderData, String source,
|
| | | HttpServletRequest request, PrintWriter out) {
|
| | | if (uid == null || StringUtil.isNullOrEmpty(orderData)) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "数据错误"));
|
| | | return;
|
| | |
| | | }
|
| | |
|
| | | if ("findOrder".equalsIgnoreCase(source)) {
|
| | |
|
| | | boolean success = false;
|
| | | // 匹配订单
|
| | | for (String order : orders) {
|
| | | if (!StringUtil.isNullOrEmpty(order)) {
|
| | | List<TaoBaoOrder> orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(order);
|
| | | // 计算订单状态
|
| | |
|
| | | if (orderList != null && orderList.size() > 0) {
|
| | | int inValid = 0;
|
| | | for (TaoBaoOrder taoBaoOrder : orderList) {
|
| | | if (taoBaoOrder.getOrderState().equalsIgnoreCase("订单失效")) {
|
| | | inValid++;
|
| | | }
|
| | | }
|
| | | // 订单全是失效
|
| | | if (inValid == orderList.size())
|
| | | continue;
|
| | |
|
| | | List<CommonOrder> commonOrderList = commonOrderService
|
| | | .listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO, order);
|
| | | if (commonOrderList == null || commonOrderList.size() == 0) {
|
| | | Order o = orderService.findOrderByOrderIdAndType(order, Order.ORDER_TYPE_TAOBAO);
|
| | | if (o != null)// 原来已经存在,则不需要找回
|
| | | continue;
|
| | |
|
| | | Order or = new Order();
|
| | | or.setBeizhu("人工自动找回补单");
|
| | | or.setCreatetime(System.currentTimeMillis());
|
| | |
| | | try {
|
| | | isS = orderService.addOrder(or);
|
| | | if (isS) {
|
| | | CMQManager.getInstance().addTaoBaoOrderMsg(order, orderList);
|
| | | CMQManager.getInstance().addTaoBaoOrderMsg(order);
|
| | | // 加入到LostOrder
|
| | | LostOrder lo = new LostOrder();
|
| | | lo.setCreateTime(System.currentTimeMillis());
|
| | | lo.setHandleTime(System.currentTimeMillis());
|
| | | lo.setIpInfo(IPUtil.getRemotIP(request) + ":" + request.getRemotePort());
|
| | | lo.setOrder(or);
|
| | | lo.setOrderId(order);
|
| | | lo.setState(LostOrder.STATE_PASS);
|
| | | lo.setResultCode(LostOrder.RESULT_CODE_VERFING);
|
| | | lo.setType(LostOrder.TYPE_TAOBAO);
|
| | | lo.setUserInfo(new UserInfo(uid));
|
| | | lostOrderService.saveLostOrder(lo);
|
| | | if (success == false)
|
| | | success = true;
|
| | | }
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | try {
|
| | | LogHelper.errorDetailInfo(e, order, "");
|
| | | } catch (Exception e1) {
|
| | | e1.printStackTrace();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | if (success) {
|
| | | out.print(JsonUtil.loadTrue(0, null, "订单找回成功,请到“我的-订单”中查看"));
|
| | | return;
|
| | | } else {
|
| | | out.print(JsonUtil.loadFalseResult("没有可找回的订单,请尝试手动找回"));
|
| | | return;
|
| | | }
|
| | |
|
| | | } else {
|
| | | String orderId = null;
|
| | | if (orders != null && orders.length > 0)
|