From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserOrderController.java | 1602 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 874 insertions(+), 728 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserOrderController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserOrderController.java index cf726e1..03905ae 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserOrderController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserOrderController.java @@ -1,728 +1,874 @@ -package com.yeshi.fanli.controller.client.v1; - -import java.io.PrintWriter; -import java.math.BigDecimal; -import java.text.SimpleDateFormat; -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.bind.annotation.RequestMethod; -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.user.UserInfoExtraService; -import com.yeshi.fanli.service.inter.user.UserInfoService; -import com.yeshi.fanli.util.CMQManager; -import com.yeshi.fanli.util.Constant; -import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.account.UserUtil; -import com.yeshi.fanli.vo.order.CommonOrderVO; -import com.yeshi.fanli.vo.user.UserInfoExtraVO; - -import net.sf.json.JSONObject; - -@Controller -@RequestMapping("api/v1/user/order") -public class UserOrderController { - - @Resource - private ConfigService configService; - - @Resource - private AppVersionService appVersionService; - - @Resource - private UserInfoService userInfoService; - - @Resource - private UserInfoExtraService userInfoExtraService; - - @Resource - private CommonOrderService commonOrderService; - - @Resource - private HongBaoV2CountService hongBaoV2CountService; - - @Resource - private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; - - @Resource - private TaoBaoOrderService taoBaoOrderService; - - @Resource - private OrderService orderService; - - @Resource - private LostOrderService lostOrderService; - - /** - * 璁㈠崟鍒楄〃 - * - * @param acceptData - * @param page - * @param uid - * @param state - * 鐘舵�侊細0鍏ㄩ儴 1-鏈埌璐� 2-宸插埌璐� 3-宸插け鏁� 4宸叉敹璐� - * @param type - * 绫诲瀷锛�1-杩斿埄璁㈠崟 2-鍒嗕韩璁㈠崟 3-閭�璇疯鍗� - * @param orderState - * 1鏈夋晥璁㈠崟 2 缁存潈璁㈠崟 3澶辨晥璁㈠崟 - * @param orderNo - * 璁㈠崟鍙� - * @param startTime - * 璧峰鏃堕棿 - * @param endTime - * 缁撴潫鏃堕棿 - * @param slotTime - * 鏃堕棿娈碉細1-鏈�杩戜笁澶� 2-鏈�杩戜竷澶� 3鏈�杩戝崐鏈� 4鏈湀 5杩戜笁鏈� 6杩戝崐骞� - * @param dateType - * 1-浠婃棩 2-鏄ㄥぉ 3-鏈湀 4-涓婁釜鏈� | - * @param needCount - * @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, - Integer goodsType, PrintWriter out) { - - if (uid == null) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } - - if (page == null || page < 1) { - page = 1; - } - - if (state != null && state == 0) { - state = null;// 鎵�鏈夌姸鎬� - } - - // 杞崲鐘舵�� - if (state != null && state == 4) { - orderState = state; // 宸叉敹璐х姸鎬� - state = null; // 娓呯┖ - } - - if (type != null && type == 0) { - type = null; // 鎵�鏈夌被鍨嬭鍗� - } - - if (goodsType != null && goodsType == 0) { - goodsType = null; // 鎵�鏈夊钩鍙拌鍗� - } - - try { - if (slotTime != null) { - SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); - endTime = sd.format(new Date()); - startTime = convertDate(slotTime, endTime); - } - } catch (Exception e) { - e.printStackTrace(); - } - - if (endTime != null && endTime.trim().length() > 0) { - endTime += " 23:59:59"; - } - - try { - long count = 0; - int totalValid = 0; - int totalProces = 0; - int totalInvite = 0; - long todayTotal = 0; - BigDecimal todayMoney = null; - - // 鏌ヨ鍒楄〃 - 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, goodsType); - } - - // 闇�瑕佺粺璁$瓫閫変俊鎭� 锛氭湭澶辨晥鐨勬�婚噾棰� 浠ュ強璁㈠崟 - if (needCount && page == 1) { - - todayMoney = commonOrderService.countBonusOrderMoney(uid, type, dateType, startTime, endTime, goodsType); - - todayTotal = commonOrderService.countBonusOrderNumber(uid, type, dateType, startTime, endTime, goodsType); - - // 缁熻鏈夋晥鐨勮鍗曟暟閲� 銆� 澶辨晥璁㈠崟鏁伴噺 銆佺淮鏉冭鍗曟暟閲� - Map<String, BigDecimal> countOrder = commonOrderService.countByUidAndOrderState(uid, type, startTime, - endTime, dateType, goodsType); - - 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(); - } - } - - if (todayMoney == null) { - todayMoney = new BigDecimal(0.00); - } - - String helpUrl = configService.get("order_list_help"); - - JSONObject data = new JSONObject(); - data.put("count", count); - data.put("result_list", JsonUtil.getApiCommonGson().toJson(list)); - - data.put("helpUrl", helpUrl); - - if (type != null && type == 1) { - data.put("todayMoney", "棰勪及杩斿埄鎬婚 楼" + todayMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); - } else if (type != null && (type == 2 || type == 3)) { - data.put("todayMoney", "棰勪及濂栭噾鎬婚 楼" + todayMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); - } else { - data.put("todayMoney", "棰勪及鎬婚 楼" + todayMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); - } - - data.put("todayTotal", "鍏�" + todayTotal + "绗�"); - data.put("totalValid", totalValid); // 鏈夋晥鏁伴噺 - data.put("totalProces", totalProces); // 缁存潈鏁伴噺 - data.put("totalInvite", totalInvite); // 澶辨晥鏁伴噺 - - out.print(JsonUtil.loadTrueResult(data)); - - } catch (CommonOrderException e) { - out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); - e.printStackTrace(); - } - - } - - /** - * 鐢ㄦ埛璁㈠崟缁熻 - * - * @param acceptData - * @param uid - * 鐢ㄦ埛id - * @param out - */ - @RequestMapping(value = "countorder", method = RequestMethod.POST) - public void countOrder(AcceptData acceptData, Long uid, PrintWriter out) { - - if (uid == null) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } - - try { - UserInfo user = userInfoService.selectByPKey(uid); - if (user == null) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛涓嶅瓨鍦�")); - return; - } - - UserInfo userInfo = UserUtil.filterForClientUser(user); - - // 1.5.0 鐗堟湰涔嬪悗杩斿洖鏂扮殑绛夌骇 - String version = acceptData.getVersion(); - if (version != null && version.trim().length() > 0) { - int versionCode = Integer.parseInt(version); - String platform = acceptData.getPlatform(); - - AppVersionInfo versionInfo = appVersionService.getByPlatformAndVersion(platform, "1.5.0"); - if (versionInfo != null) { - int versionCode150 = versionInfo.getVersionCode(); - if (versionCode >= versionCode150) { - UserInfoExtraVO userInfoExtra = userInfoExtraService.getInfoExtraVOByUid(user.getId()); - if (userInfoExtra != null && userInfoExtra.getUserRank() != null) { - String picture = userInfoExtra.getUserRank().getPicture(); - String icon = userInfoExtra.getUserRank().getIcon(); - - userInfo.setRankIcon(icon); - userInfo.setRankNamePicture(picture); - } - } - } - - } - - JSONObject data = new JSONObject(); - data.put("userInfo", userInfo); - - /* 鎬昏鍗曠粺璁� */ - Map<String, BigDecimal> countOrder = commonOrderService.countHistoryOrder(uid, null, null); - int self = 0; - if (countOrder.get("totalSelf") != null) { - self = countOrder.get("totalSelf").intValue(); - } - - int shared = 0; - if (countOrder.get("totalShared") != null) { - shared = countOrder.get("totalShared").intValue(); - } - - int invite = 0; - if (countOrder.get("totalInvite") != null) { - invite = countOrder.get("totalInvite").intValue(); - } - - int total = self + shared + invite; - - data.put("total", total); - data.put("self", self); - data.put("shared", shared); - data.put("invite", invite); - - /* 浠婃棩璁㈠崟缁熻 */ - Map<String, BigDecimal> countToday = commonOrderService.countHistoryOrder(uid, 1, null); - - 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); - - data.put("today", todaydata); - - /* 鏄ㄦ棩璁㈠崟缁熻 */ - Map<String, BigDecimal> countYesterday = commonOrderService.countHistoryOrder(uid, 2, null); - 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); - - data.put("yesterday", yesterdaydata); - - out.print(JsonUtil.loadTrueResult(data)); - - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult(1, "鑾峰彇淇℃伅澶辫触")); - e.printStackTrace(); - } - } - - - - @RequestMapping(value = "getTotalOrderNum") - public void getTotalOrderNum(AcceptData acceptData, Long uid, PrintWriter out) { - if (uid == null) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } - - UserInfo user = userInfoService.selectByPKey(uid); - if (user == null) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛涓嶅瓨鍦�")); - return; - } - - UserInfo userInfo = UserUtil.filterForClientUser(user); - - // 1.5.0 鐗堟湰涔嬪悗杩斿洖鏂扮殑绛夌骇 - String version = acceptData.getVersion(); - if (version != null && version.trim().length() > 0) { - int versionCode = Integer.parseInt(version); - String platform = acceptData.getPlatform(); - - AppVersionInfo versionInfo = appVersionService.getByPlatformAndVersion(platform, "1.5.0"); - if (versionInfo != null) { - int versionCode150 = versionInfo.getVersionCode(); - if (versionCode >= versionCode150) { - UserInfoExtraVO userInfoExtra = userInfoExtraService.getInfoExtraVOByUid(user.getId()); - if (userInfoExtra != null && userInfoExtra.getUserRank() != null) { - String picture = userInfoExtra.getUserRank().getPicture(); - String icon = userInfoExtra.getUserRank().getIcon(); - - userInfo.setRankIcon(icon); - userInfo.setRankNamePicture(picture); - } - } - } - } - - /* 鎬昏鍗曠粺璁� */ - Map<String, BigDecimal> countOrder = commonOrderService.countHistoryOrder(uid, null, null); - int self = 0; // 杩斿埄璁㈠崟 - if (countOrder.get("totalSelf") != null) { - self = countOrder.get("totalSelf").intValue(); - } - - int shared = 0; // 鍒嗕韩璁㈠崟 - if (countOrder.get("totalShared") != null) { - shared = countOrder.get("totalShared").intValue(); - } - - int invite = 0; // 閭�璇疯鍗� - if (countOrder.get("totalInvite") != null) { - invite = countOrder.get("totalInvite").intValue(); - } - int total = self + shared + invite; - - JSONObject data = new JSONObject(); - data.put("total", total); - data.put("self", self); - data.put("shared", shared); - data.put("invite", invite); - data.put("userInfo", userInfo); - out.print(JsonUtil.loadTrueResult(data)); - } - - - - @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 == 0) { - goodsType = null; - } - - - /* 浠婃棩璁㈠崟缁熻 */ - 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)); - } - - - /** - * 缁熻濂栭噾 - * - * @param acceptData - * @param uid - * @param out - */ - @RequestMapping(value = "countBonus", method = RequestMethod.POST) - public void countBonus(AcceptData acceptData, Long uid, Integer dateType, PrintWriter out) { - - if (uid == null) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } - - try { - - Object shareCount = 0; - BigDecimal sharemoney = new BigDecimal(0.00); - Object inviteCount = 0; - BigDecimal inviteMoney = new BigDecimal(0.00); - - Map<String, Object> shareMap = commonOrderService.countBonusOrderMoneyAndNumber(uid, 2, dateType, null, - null); - if (shareMap != null) { - Object totalNum = shareMap.get("totalNum"); - if (totalNum != null) { - shareCount = totalNum; - } - - Object totalmoney = shareMap.get("totalmoney"); - if (totalmoney != null) { - sharemoney = (BigDecimal) totalmoney; - } - } - - // 閭�璇风粺璁� - Map<String, Object> inviteMap = commonOrderService.countBonusOrderMoneyAndNumber(uid, 3, dateType, null, - null); - if (inviteMap != null) { - Object totalNum = inviteMap.get("totalNum"); - if (totalNum != null) { - inviteCount = totalNum; - } - - Object totalmoney = inviteMap.get("totalmoney"); - if (totalmoney != null) { - inviteMoney = (BigDecimal) totalmoney; - } - } - - JSONObject data = new JSONObject(); - data.put("shareCount", shareCount); - data.put("sharemoney", sharemoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); - data.put("inviteCount", inviteCount); - data.put("inviteMoney", inviteMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); - - data.put("showTiCheng", hongBaoV2CountService.getTotalTiChengCount(uid) > 0); - out.print(JsonUtil.loadTrueResult(data)); - - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult(1, "鑾峰彇淇℃伅澶辫触")); - e.printStackTrace(); - } - } - - /** - * 涓婁紶瑙f瀽鍒扮殑娣樺疂璁㈠崟 - * - * @param acceptData - * @param uid - * @param orderData - * @param source - * @param out - */ - @RequestMapping(value = "uploadParsedOrder", method = RequestMethod.POST) - 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; - } - - String[] orders = null; - try { - String orderIds = DESUtil.decode(orderData, StringUtil.getBase64String("YeShiFANLI889*+"), - StringUtil.getBase64String("*M#34f?,")); - orders = orderIds.split(","); - } catch (Exception e) { - e.printStackTrace(); - } - - 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()); - or.setOrderId(order); - or.setOrderType(1); - or.setState(Order.STATE_YIZHIFU); - or.setUserInfo(new UserInfo(uid)); - or.setVersion(2); - // 鍔犲叆鍒拌鍗曡〃 - boolean isS; - try { - isS = orderService.addOrder(or); - if (isS) { - CMQManager.getInstance().addTaoBaoOrderMsg(order, orderList); - // 鍔犲叆鍒癓ostOrder - 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) { - 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) - orderId = orders[0]; - if (!StringUtil.isNullOrEmpty(orderId) && orderId.length() > 6) { - orderId = orderId.substring(orderId.length() - 6, orderId.length()); - UserExtraTaoBaoInfo info = userExtraTaoBaoInfoService.getByUid(uid); - if (info != null) { - UserExtraTaoBaoInfo update = new UserExtraTaoBaoInfo(); - update.setId(info.getId()); - update.setTaoBaoOrderEnd6Num(orderId); - userExtraTaoBaoInfoService.updateSelective(update); - } - } - } - out.print(JsonUtil.loadTrueResult("")); - } - - /** - * 鏃堕棿杞崲 - * - * @param slotTime - * @param startTime - * @return - * @throws Exception - */ - public String convertDate(Integer slotTime, String endTime) throws Exception { - String startTime = null; - - switch (slotTime) { - case 1: // 鏈�杩戜笁澶� - startTime = DateUtil.reduceDay(2, endTime); - break; - case 2: // 鏈�杩戜竷澶� - startTime = DateUtil.reduceDay(6, endTime); - break; - case 3: // 鏈�杩�15澶� 锛堝崐鏈堬級 - startTime = DateUtil.reduceDay(14, endTime); - break; - case 4: // 鏈�杩戜笁鍗佸ぉ 锛堟湰鏈堬級 - startTime = DateUtil.reduceDay(29, endTime); - break; - case 5: // 鏈�杩戜節鍗佸ぉ锛堣繎涓夋湀锛� - startTime = DateUtil.reduceDay(3 * 30 - 1, endTime); - break; - case 6: // 鏈�杩戜竴鐧惧叓鍗佸ぉ锛堣繎鍗婂勾锛� - startTime = DateUtil.reduceDay(6 * 30 - 1, endTime); - break; - default: - break; - } - - return startTime; - } -} +package com.yeshi.fanli.controller.client.v1; + +import java.io.PrintWriter; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import com.yeshi.fanli.util.*; +import com.yeshi.fanli.util.mq.rabbit.RabbitmqManager; +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.TimeUtil; +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.HongBaoV2; +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.order.TeamOrderStatistic; +import com.yeshi.fanli.entity.system.ConfigKeyEnum; +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.order.TeamOrderStatisticService; +import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderService; +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.account.UserUtil; +import com.yeshi.fanli.vo.order.CommonOrderVO; +import com.yeshi.fanli.vo.order.TeamOrderStatisticVO; +import com.yeshi.fanli.vo.user.UserInfoExtraVO; + +import net.sf.json.JSONObject; + +@Controller +@RequestMapping("api/v1/user/order") +public class UserOrderController { + + @Resource + private ConfigService configService; + + @Resource + private AppVersionService appVersionService; + + @Resource + private UserInfoService userInfoService; + + @Resource + private UserInfoExtraService userInfoExtraService; + + @Resource + private CommonOrderService commonOrderService; + + @Resource + private HongBaoV2CountService hongBaoV2CountService; + + @Resource + private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; + + @Resource + private TaoBaoOrderService taoBaoOrderService; + + @Resource + private OrderService orderService; + + @Resource + private LostOrderService lostOrderService; + + @Resource + private RedisManager redisManager; + +// @Resource + private TeamOrderStatisticService teamOrderStatisticService; + + @Resource + private TeamDividentsSourceOrderService teamDividentsSourceOrderService; + + @Resource + private RabbitmqManager rabbitmqManager; + + /** + * 璁㈠崟鍒楄〃 + * + * @param acceptData + * @param page + * @param uid + * @param state + * 鐘舵�侊細0鍏ㄩ儴 1-鏈埌璐� 2-宸插埌璐� 3-宸插け鏁� 4宸叉敹璐� + * @param type + * 绫诲瀷锛�1-杩斿埄璁㈠崟 2-鍒嗕韩璁㈠崟 3-閭�璇疯鍗� + * @param orderState + * 1鏈夋晥璁㈠崟 2 缁存潈璁㈠崟 3澶辨晥璁㈠崟 + * @param orderNo + * 璁㈠崟鍙� + * @param startTime + * 璧峰鏃堕棿 + * @param endTime + * 缁撴潫鏃堕棿 + * @param slotTime + * 鏃堕棿娈碉細1-鏈�杩戜笁澶� 2-鏈�杩戜竷澶� 3鏈�杩戝崐鏈� 4鏈湀 5杩戜笁鏈� 6杩戝崐骞� + * @param dateType + * 1-浠婃棩 2-鏄ㄥぉ 3-鏈湀 4-涓婁釜鏈� | + * @param needCount + * @param out + */ + @RequestMapping(value = "getorder", method = RequestMethod.POST) + 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; + } + + if (state != null && state == 0) { + state = null;// 鎵�鏈夌姸鎬� + } + + // 杞崲鐘舵�� + if (state != null && state == 4) { + orderState = state; // 宸叉敹璐х姸鎬� + 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; // 鎵�鏈夊钩鍙拌鍗� + } + + List<Integer> listSource = new ArrayList<>(); + if (goodsType != null) { + listSource.add(goodsType); + } + + try { + if (slotTime != null) { + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); + endTime = sd.format(new Date()); + startTime = convertDate(slotTime, endTime); + } + } catch (Exception e) { + e.printStackTrace(); + } + + if (endTime != null && endTime.trim().length() > 0) { + endTime += " 23:59:59"; + } + + String orderFindUrl = null; + + try { + long count = 0; + long totalValid = 0; + long totalProces = 0; + long totalInvite = 0; + long todayTotal = 0; + BigDecimal todayMoney = null; + + // 鏌ヨ鍒楄〃 + List<CommonOrderVO> list = commonOrderService.getOrderByUid(acceptData, page, uid, state, type, orderState, + orderNo, startTime, endTime, dateType, listSource); + + if (list != null && list.size() > 0) { + // 缁熻鎬绘暟 + count = commonOrderService.countGroupOrderNoByUid(uid, state, type, orderState, orderNo, startTime, + endTime, dateType, listSource); + } + + // 闇�瑕佺粺璁$瓫閫変俊鎭� 锛氭湭澶辨晥鐨勬�婚噾棰� 浠ュ強璁㈠崟 + if (needCount && page == 1) { + + todayMoney = commonOrderService.countBonusOrderMoney(uid, type, dateType, startTime, endTime, + goodsType); + + todayTotal = commonOrderService.countBonusOrderNumber(uid, type, dateType, startTime, endTime, + goodsType); + + // 鏈夋晥璁㈠崟 + 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) { + todayMoney = new BigDecimal(0.00); + } + + // 鍒ゆ柇鏄惁闇�瑕佹樉绀鸿鍗曟壘鍥炴彁绀� + if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) + if (state == null && page == 1) { + if (redisManager.frequencyLimit("orderlist-" + acceptData.getDevice(), 8, 4) || count == 0L) {// 8绉掑唴璇锋眰3娆¤Е鍙� + orderFindUrl = configService.getValue(ConfigKeyEnum.orderFindNotifyUrl.getKey(), SystemInfoUtil.getSystem(acceptData)); + } + } + + JSONObject data = new JSONObject(); + data.put("count", count); + data.put("result_list", JsonUtil.getApiCommonGson().toJson(list)); + data.put("helpUrl", configService.getValue(ConfigKeyEnum.orderListHelp.getKey(),SystemInfoUtil.getSystem(acceptData))); + + if (type != null && type == 1) { + data.put("todayMoney", "棰勪及杩斿埄鎬婚 楼" + todayMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); + } else if (type != null && (type == 2 || type == 3)) { + data.put("todayMoney", "棰勪及濂栭噾鎬婚 楼" + todayMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); + } else { + data.put("todayMoney", "棰勪及鎬婚 楼" + todayMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); + } + + data.put("todayTotal", "鍏�" + todayTotal + "绗�"); + data.put("totalValid", totalValid); // 鏈夋晥鏁伴噺 + data.put("totalProces", totalProces); // 缁存潈鏁伴噺 + data.put("totalInvite", totalInvite); // 澶辨晥鏁伴噺 + if (orderFindUrl != null) + data.put("findOrderHelpUrl", orderFindUrl); + out.print(JsonUtil.loadTrueResult(data)); + } catch (CommonOrderException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); + LogHelper.errorDetailInfo(e); + } + } + + /** + * 鐢ㄦ埛璁㈠崟缁熻 + * + * @param acceptData + * @param uid + * 鐢ㄦ埛id + * @param out + */ + @RequestMapping(value = "countorder", method = RequestMethod.POST) + public void countOrder(AcceptData acceptData, Long uid, PrintWriter out) { + + if (uid == null) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + try { + UserInfo user = userInfoService.selectByPKey(uid); + if (user == null) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛涓嶅瓨鍦�")); + return; + } + + UserInfo userInfo = UserUtil.filterForClientUser(user); + + // 1.5.0 鐗堟湰涔嬪悗杩斿洖鏂扮殑绛夌骇 + String version = acceptData.getVersion(); + if (version != null && version.trim().length() > 0) { + int versionCode = Integer.parseInt(version); + String platform = acceptData.getPlatform(); + + AppVersionInfo versionInfo = appVersionService.getByPlatformAndVersion(platform, "1.5.0",acceptData.getSystem()); + if (versionInfo != null) { + int versionCode150 = versionInfo.getVersionCode(); + if (versionCode >= versionCode150) { + UserInfoExtraVO userInfoExtra = userInfoExtraService.getInfoExtraVOByUid(user.getId()); + if (userInfoExtra != null && userInfoExtra.getUserRank() != null) { + String picture = userInfoExtra.getUserRank().getPicture(); + String icon = userInfoExtra.getUserRank().getIcon(); + + userInfo.setRankIcon(icon); + userInfo.setRankNamePicture(picture); + } + } + } + + } + + 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, goodsType); + int self = 0; + if (countOrder.get("totalSelf") != null) { + self = countOrder.get("totalSelf").intValue(); + } + + int shared = 0; + if (countOrder.get("totalShared") != null) { + shared = countOrder.get("totalShared").intValue(); + } + + int invite = 0; + if (countOrder.get("totalInvite") != null) { + invite = countOrder.get("totalInvite").intValue(); + } + + int total = self + shared + invite; + + data.put("total", total); + data.put("self", self); + data.put("shared", shared); + data.put("invite", invite); + + /* 浠婃棩璁㈠崟缁熻 */ + 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); + + data.put("today", todaydata); + + /* 鏄ㄦ棩璁㈠崟缁熻 */ + 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); + + data.put("yesterday", yesterdaydata); + + out.print(JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult(1, "鑾峰彇淇℃伅澶辫触")); + 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, "骞冲彴绫诲瀷缂哄け鎴栦笉姝g‘")); + 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)); + } + + /** + * 缁熻濂栭噾 + * + * @param acceptData + * @param uid + * @param out + */ + @RequestMapping(value = "countBonus", method = RequestMethod.POST) + public void countBonus(AcceptData acceptData, Long uid, Integer dateType, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + long nowTime = System.currentTimeMillis(); + long recievedTime = TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(nowTime, "yyyy-MM") + "-25 10", + "yyyy-MM-dd HH"); + + try { + Object shareCount = 0; + BigDecimal sharemoney = new BigDecimal(0.00); + Object inviteCount = 0; + BigDecimal inviteMoney = new BigDecimal(0.00); + + if (nowTime > recievedTime && dateType == 4) {// 瀹為檯鍒拌处 + List<Integer> inviteTypes = new ArrayList<>(); + inviteTypes.add(HongBaoV2.TYPE_YIJI); + inviteTypes.add(HongBaoV2.TYPE_ERJI); + inviteTypes.add(HongBaoV2.TYPE_SHARE_YIJI); + inviteTypes.add(HongBaoV2.TYPE_SHARE_ERJI); + + List<Integer> shareTypes = new ArrayList<>(); + shareTypes.add(HongBaoV2.TYPE_SHARE_GOODS); + + Date minGetTime = new Date( + TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(nowTime, "yyyy-MM") + "-25", "yyyy-MM-dd")); + + Date maxGetTime = new Date(nowTime); + inviteMoney = hongBaoV2CountService.sumAlreadyGetMoneyByUid(uid, inviteTypes, minGetTime, maxGetTime); + inviteCount = hongBaoV2CountService.countAlreadyGetMoneyByUid(uid, inviteTypes, minGetTime, maxGetTime); + + sharemoney = hongBaoV2CountService.sumAlreadyGetMoneyByUid(uid, shareTypes, minGetTime, maxGetTime); + shareCount = hongBaoV2CountService.countAlreadyGetMoneyByUid(uid, shareTypes, minGetTime, maxGetTime); + + } else {// 棰勪及鍒拌处 + 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, goodsType); + if (shareMap != null) { + Object totalNum = shareMap.get("totalNum"); + if (totalNum != null) { + shareCount = totalNum; + } + + Object totalmoney = shareMap.get("totalmoney"); + if (totalmoney != null) { + sharemoney = (BigDecimal) totalmoney; + } + } + + // 閭�璇风粺璁� + + Map<String, Object> inviteMap = commonOrderService.countBonusOrderMoneyAndNumber(uid, 3, dateType, null, + null, goodsType); + if (inviteMap != null) { + Object totalNum = inviteMap.get("totalNum"); + if (totalNum != null) { + inviteCount = totalNum; + } + + Object totalmoney = inviteMap.get("totalmoney"); + if (totalmoney != null) { + inviteMoney = (BigDecimal) totalmoney; + } + } + } + + JSONObject data = new JSONObject(); + data.put("shareCount", shareCount); + data.put("sharemoney", sharemoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); + data.put("inviteCount", inviteCount); + data.put("inviteMoney", inviteMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); + + data.put("showTiCheng", hongBaoV2CountService.getTotalTiChengCount(uid) > 0); + out.print(JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult(1, "鑾峰彇淇℃伅澶辫触")); + e.printStackTrace(); + } + } + + /** + * 涓婁紶瑙f瀽鍒扮殑娣樺疂璁㈠崟 + * + * @param acceptData + * @param uid + * @param orderData + * @param source + * @param out + */ + @RequestMapping(value = "uploadParsedOrder", method = RequestMethod.POST) + 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; + } + + String[] orders = null; + try { + String orderIds = DESUtil.decode(orderData, StringUtil.getBase64String("YeShiFANLI889*+"), + StringUtil.getBase64String("*M#34f?,")); + orders = orderIds.split(","); + } catch (Exception e) { + e.printStackTrace(); + } + + 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()); + or.setOrderId(order); + or.setOrderType(1); + or.setState(Order.STATE_YIZHIFU); + or.setUserInfo(new UserInfo(uid)); + or.setVersion(2); + // 鍔犲叆鍒拌鍗曡〃 + boolean isS; + try { + isS = orderService.addOrder(or); + if (isS) { + rabbitmqManager.addTaoBaoOrderMsg(order); + // 鍔犲叆鍒癓ostOrder + 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) { + 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) + orderId = orders[0]; + if (!StringUtil.isNullOrEmpty(orderId) && orderId.length() > 6) { + orderId = orderId.substring(orderId.length() - 6, orderId.length()); + UserExtraTaoBaoInfo info = userExtraTaoBaoInfoService.getByUid(uid); + if (info != null) { + UserExtraTaoBaoInfo update = new UserExtraTaoBaoInfo(); + update.setId(info.getId()); + update.setTaoBaoOrderEnd6Num(orderId); + userExtraTaoBaoInfoService.updateSelective(update); + } + } + } + out.print(JsonUtil.loadTrueResult("")); + } + + /** + * 鏃堕棿杞崲 + * + * @param slotTime + * @param startTime + * @return + * @throws Exception + */ + public String convertDate(Integer slotTime, String endTime) throws Exception { + String startTime = null; + + switch (slotTime) { + case 1: // 鏈�杩戜笁澶� + startTime = DateUtil.reduceDay(2, endTime); + break; + case 2: // 鏈�杩戜竷澶� + startTime = DateUtil.reduceDay(6, endTime); + break; + case 3: // 鏈�杩�15澶� 锛堝崐鏈堬級 + startTime = DateUtil.reduceDay(14, endTime); + break; + case 4: // 鏈�杩戜笁鍗佸ぉ 锛堟湰鏈堬級 + startTime = DateUtil.reduceDay(29, endTime); + break; + case 5: // 鏈�杩戜節鍗佸ぉ锛堣繎涓夋湀锛� + startTime = DateUtil.reduceDay(3 * 30 - 1, endTime); + break; + case 6: // 鏈�杩戜竴鐧惧叓鍗佸ぉ锛堣繎鍗婂勾锛� + startTime = DateUtil.reduceDay(6 * 30 - 1, endTime); + break; + default: + break; + } + + return startTime; + } + + /** + * 鑾峰彇鍥㈤槦璁㈠崟缁熻 + * @Title: getTeamOrderStatistic + * @Description: + * @param acceptData + * @param uid + * @param out + * void 杩斿洖绫诲瀷 + * @throws + */ + @RequestMapping(value = "getTeamOrderStatistic") + public void getTeamOrderStatistic(AcceptData acceptData, Long uid, PrintWriter out) { + long now = System.currentTimeMillis(); + TeamOrderStatisticVO vo = new TeamOrderStatisticVO(); + Date minDate = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now, "yyyyMMdd"), "yyyyMMdd")); + Date maxDate = new Date( + TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now + 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd")); + List<Integer> countList = new ArrayList<>(); + // 缁熻浠婃棩 + TeamOrderStatistic statistic = teamOrderStatisticService.countByUidAndDate(uid, minDate, maxDate); + if (statistic == null) { + countList.add(0); + countList.add(0); + countList.add(0); + } else { + countList.add(statistic.getDirectOrderCount() == null ? 0 : statistic.getDirectOrderCount()); + countList.add(statistic.getInDirectOrderCount() == null ? 0 : statistic.getInDirectOrderCount()); + countList.add(statistic.getOtherOrderCount() == null ? 0 : statistic.getOtherOrderCount()); + } + + vo.setToday(countList); + + // 缁熻鏄ㄦ棩 + minDate = new Date( + TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now - 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd")); + maxDate = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now, "yyyyMMdd"), "yyyyMMdd")); + + countList = new ArrayList<>(); + statistic = teamOrderStatisticService.countByUidAndDate(uid, minDate, maxDate); + if (statistic == null) { + countList.add(0); + countList.add(0); + countList.add(0); + } else { + countList.add(statistic.getDirectOrderCount() == null ? 0 : statistic.getDirectOrderCount()); + countList.add(statistic.getInDirectOrderCount() == null ? 0 : statistic.getInDirectOrderCount()); + countList.add(statistic.getOtherOrderCount() == null ? 0 : statistic.getOtherOrderCount()); + } + + vo.setYesterday(countList); + + // 缁熻鏈湀 + + minDate = new Date( + TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now - 1000 * 60 * 60 * 24L, "yyyyMM"), "yyyyMM")); + Calendar ca = Calendar.getInstance(); + ca.setTimeInMillis(now); + + ca.add(Calendar.MONTH, 1); + + maxDate = new Date( + TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyyMM"), "yyyyMM")); + + countList = new ArrayList<>(); + statistic = teamOrderStatisticService.countByUidAndDate(uid, minDate, maxDate); + if (statistic == null) { + countList.add(0); + countList.add(0); + countList.add(0); + } else { + countList.add(statistic.getDirectOrderCount() == null ? 0 : statistic.getDirectOrderCount()); + countList.add(statistic.getInDirectOrderCount() == null ? 0 : statistic.getInDirectOrderCount()); + countList.add(statistic.getOtherOrderCount() == null ? 0 : statistic.getOtherOrderCount()); + } + + vo.setThisMonth(countList); + + // 缁熻 绱 + minDate = new Date(0L); + maxDate = new Date(now); + countList = new ArrayList<>(); + statistic = teamOrderStatisticService.countByUidAndDate(uid, minDate, maxDate); + if (statistic == null) { + countList.add(0); + countList.add(0); + countList.add(0); + } else { + countList.add(statistic.getDirectOrderCount() == null ? 0 : statistic.getDirectOrderCount()); + countList.add(statistic.getInDirectOrderCount() == null ? 0 : statistic.getInDirectOrderCount()); + countList.add(statistic.getOtherOrderCount() == null ? 0 : statistic.getOtherOrderCount()); + } + + vo.setTotal(countList); + } + + /** + * 鑾峰彇鍥㈤槦璁㈠崟鎺掕 + * @Title: getTeamOrderRank + * @Description: + * @param acceptData + * @param uid + * @param type 1-浠婃棩 2-鏄ㄦ棩 3-鏈湀 + * @param out + * void 杩斿洖绫诲瀷 + * @throws + */ + @RequestMapping(value = "getTeamOrderRank") + public void getTeamOrderRank(AcceptData acceptData, Long uid, int type, PrintWriter out) { + // TODO 闇�姹備笉鏄庣‘ + + } + + @RequestMapping(value = "searchOrderTeam") + public void searchOrderTeam(AcceptData acceptData, String key, PrintWriter out) { +// teamDividentsSourceOrderService.selectByOrderNoSourceType(orderNo, sourceType); + } + +} -- Gitblit v1.8.0