From 5e7b0ed4a154ad067cbcf4aa1a1c7cce32f9864c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 26 四月 2024 18:02:17 +0800 Subject: [PATCH] 唯品会链接解析升级 --- fanli/src/main/java/com/yeshi/fanli/controller/admin/order/TaoBaoOrderController.java | 593 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 400 insertions(+), 193 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/admin/order/TaoBaoOrderController.java b/fanli/src/main/java/com/yeshi/fanli/controller/admin/order/TaoBaoOrderController.java index e20b294..347f94b 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/admin/order/TaoBaoOrderController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/admin/order/TaoBaoOrderController.java @@ -1,193 +1,400 @@ -package com.yeshi.fanli.controller.admin.order; - -import java.io.PrintWriter; -import java.lang.reflect.Type; -import java.util.Date; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import javax.annotation.Resource; - -import com.yeshi.fanli.entity.accept.AdminAcceptData; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.yeshi.utils.JsonUtil; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonElement; -import com.google.gson.JsonPrimitive; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; -import com.yeshi.fanli.entity.taobao.TaoBaoOrder; -import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; -import com.yeshi.fanli.job.order.taobao.UpdateOrderJob; -import com.yeshi.fanli.job.order.taobao.UpdateTBRelationAndSpecialOrderJob; -import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService; -import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService; -import com.yeshi.common.entity.PageEntity; -import com.yeshi.fanli.util.Constant; -import com.yeshi.fanli.util.StringUtil; -import org.yeshi.utils.TimeUtil; - -import net.sf.json.JSONObject; - -@Controller -@RequestMapping("admin/new/api/v1/taobaoOrder") -public class TaoBaoOrderController { - - @Resource - private TaoBaoOrderService taoBaoOrderService; - - @Resource - private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService; - - @Resource - private UpdateTBRelationAndSpecialOrderJob updateRelationAndSpecialOrderJob; - - @Resource - private UpdateOrderJob updateOrderJob; - - /** - * 鏌ヨ鍒楄〃 - 鏂板悗鍙� - * - * @param callback - * @param key - * 鏌ヨ璇� 鍚嶇О - * @param pageIndex - * @param out - */ - @RequestMapping(value = "listTaoBaoOrder") - public void listTaoBaoOrder(AdminAcceptData acceptData, String callback, String key, Integer pageIndex, PrintWriter out) { - - try { - - if (pageIndex == null || pageIndex < 0) { - pageIndex = 1; - } - - List<TaoBaoOrder> orderList = null; - Long count = null; - - if (!StringUtil.isNullOrEmpty(key)) { - orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(key); - count = (long) orderList.size(); - } else { - orderList = taoBaoOrderService.listAllOrder(pageIndex, Constant.PAGE_SIZE); - count = taoBaoOrderService.countAllOrder(); - } - - int pageSize = Constant.PAGE_SIZE; - - int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); - PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); - - Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() { - @Override - public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { - if (value == null) { - return new JsonPrimitive(""); - } else { - return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy-MM-dd HH:mm:ss")); - } - } - }).create(); - - JSONObject data = new JSONObject(); - data.put("pe", pe); - data.put("result_list", gson.toJson(orderList)); - - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触")); - e.printStackTrace(); - } - } - - @RequestMapping(value = "updateTaoBaoOrder") - public void updateTaoBaoOrder(AdminAcceptData acceptData,String callback, String ids, PrintWriter out) { - try { - if (StringUtil.isNullOrEmpty(ids)) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂笂浼犺鍗旾D")); - return; - } - net.sf.json.JSONArray idsArray = net.sf.json.JSONArray.fromObject(ids); - - Set<String> orderIds = new HashSet<>(); - - for (int i = 0; i < idsArray.size(); i++) { - TaoBaoOrder taoBaoOrder = taoBaoOrderService.selectByPrimaryKey(idsArray.optLong(i)); - orderIds.add(taoBaoOrder.getOrderId()); - } - - Long[] startTimes = new Long[orderIds.size()]; - Long[] endTimes = new Long[orderIds.size()]; - - int p = 0; - for (Iterator<String> its = orderIds.iterator(); its.hasNext();) { - String orderId = its.next(); - List<TaoBaoOrder> list = taoBaoOrderService.getTaoBaoOrderByOrderId(orderId); - startTimes[p] = TimeUtil.convertToTimeTemp(list.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss") - 1000L; - endTimes[p] = TimeUtil.convertToTimeTemp(list.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss") + 1000L; - p++; - } - - for (int i = 0; i < idsArray.size(); i++) { - updateRelationAndSpecialOrderJob.updateRelationAndSpecialOrder(startTimes[i], endTimes[i]); - updateOrderJob.updateOrder(startTimes[i], endTimes[i]); - } - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鏇存柊鎴愬姛")); - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏇存柊澶辫触")); - e.printStackTrace(); - } - } - - @RequestMapping(value = "listTaoBaoWQOrder") - public void listTaoBaoWeiQuanOrder(AdminAcceptData acceptData,String callback, String key, Integer pageIndex, PrintWriter out) { - try { - if (pageIndex == null || pageIndex < 0) { - pageIndex = 1; - } - List<TaoBaoWeiQuanOrder> orderList = null; - Long count = null; - if (!StringUtil.isNullOrEmpty(key)) { - orderList = taoBaoWeiQuanOrderService.listByOrderId(key); - count = (long) orderList.size(); - } else { - orderList = taoBaoWeiQuanOrderService.listByState(null, pageIndex, Constant.PAGE_SIZE); - count = taoBaoWeiQuanOrderService.countByState(null); - } - - int pageSize = Constant.PAGE_SIZE; - - int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); - PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); - - Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() { - @Override - public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { - if (value == null) { - return new JsonPrimitive(""); - } else { - return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy-MM-dd HH:mm:ss")); - } - } - }).create(); - - JSONObject data = new JSONObject(); - data.put("pe", pe); - data.put("result_list", gson.toJson(orderList)); - - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触")); - e.printStackTrace(); - } - } - -} +package com.yeshi.fanli.controller.admin.order; + +import com.google.gson.*; +import com.yeshi.common.entity.PageEntity; +import com.yeshi.fanli.dao.mybatis.HongBaoV2Mapper; +import com.yeshi.fanli.dao.mybatis.order.CommonOrderMapper; +import com.yeshi.fanli.dao.mybatis.order.HongBaoOrderMapper; +import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderMapper; +import com.yeshi.fanli.dao.taobao.TaoBaoOrderBackUpDao; +import com.yeshi.fanli.entity.accept.AdminAcceptData; +import com.yeshi.fanli.entity.bus.user.HongBaoV2; +import com.yeshi.fanli.entity.order.CommonOrder; +import com.yeshi.fanli.entity.order.HongBaoOrder; +import com.yeshi.fanli.entity.taobao.TaoBaoOrder; +import com.yeshi.fanli.entity.taobao.TaoBaoOrderBackUp; +import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; +import com.yeshi.fanli.job.order.taobao.TaoBaoOrderUpdateJob; +import com.yeshi.fanli.job.order.taobao.UpdateOrderJob; +import com.yeshi.fanli.job.order.taobao.UpdateTBRelationAndSpecialOrderJob; +import com.yeshi.fanli.service.inter.order.OrderProcessService; +import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService; +import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService; +import com.yeshi.fanli.util.BeanUtil; +import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.ThreadUtil; +import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; +import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil; +import net.sf.json.JSONObject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.commons.CommonsMultipartFile; +import org.yeshi.utils.JsonUtil; +import org.yeshi.utils.TimeUtil; + +import javax.annotation.Resource; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.PrintWriter; +import java.lang.reflect.Type; +import java.math.BigDecimal; +import java.util.*; + +@Controller +@RequestMapping("admin/new/api/v1/taobaoOrder") +public class TaoBaoOrderController { + + @Resource + private TaoBaoOrderService taoBaoOrderService; + + @Resource + private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService; + + @Resource + private OrderProcessService orderProcessService; + + @Resource + private TaoBaoOrderUpdateJob taoBaoOrderUpdateJob; + + + @Resource + private CommonOrderMapper commonOrderMapper; + @Resource + private HongBaoOrderMapper hongBaoOrderMapper; + @Resource + private HongBaoV2Mapper hongBaoV2Mapper; + + /** + * 鏌ヨ鍒楄〃 - 鏂板悗鍙� + * + * @param callback + * @param key 鏌ヨ璇� 鍚嶇О + * @param pageIndex + * @param out + */ + @RequestMapping(value = "listTaoBaoOrder") + public void listTaoBaoOrder(AdminAcceptData acceptData, String callback, String key, Integer pageIndex, PrintWriter out) { + + try { + + if (pageIndex == null || pageIndex < 0) { + pageIndex = 1; + } + + List<TaoBaoOrder> orderList = null; + Long count = null; + + if (!StringUtil.isNullOrEmpty(key)) { + orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(key); + count = (long) orderList.size(); + } else { + orderList = taoBaoOrderService.listAllOrder(pageIndex, Constant.PAGE_SIZE); + count = taoBaoOrderService.countAllOrder(); + } + + int pageSize = Constant.PAGE_SIZE; + + int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); + PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); + + Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() { + @Override + public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); + } else { + return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy-MM-dd HH:mm:ss")); + } + } + }).create(); + + JSONObject data = new JSONObject(); + data.put("pe", pe); + data.put("result_list", gson.toJson(orderList)); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触")); + e.printStackTrace(); + } + } + + + @RequestMapping(value = "listTaoBaoOrderNoUpdate") + public void listTaoBaoOrderUnUpdate(AdminAcceptData acceptData, String callback, String key, Integer pageIndex, PrintWriter out) { + + try { + if (pageIndex == null || pageIndex < 0) { + pageIndex = 1; + } + + List<TaoBaoOrder> orderList = null; + Long count = null; + + if (!StringUtil.isNullOrEmpty(key)) { + orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(key); + count = (long) orderList.size(); + } else { + orderList = taoBaoOrderService.listAllOrder(pageIndex, Constant.PAGE_SIZE); + count = taoBaoOrderService.countAllOrder(); + } + + int pageSize = Constant.PAGE_SIZE; + + int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); + PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); + + Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() { + @Override + public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); + } else { + return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy-MM-dd HH:mm:ss")); + } + } + }).create(); + + JSONObject data = new JSONObject(); + data.put("pe", pe); + data.put("result_list", gson.toJson(orderList)); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触")); + e.printStackTrace(); + } + } + + + @RequestMapping(value = "updateTaoBaoOrder") + public void updateTaoBaoOrder(AdminAcceptData acceptData, String callback, String ids, PrintWriter out) { + try { + if (StringUtil.isNullOrEmpty(ids)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂笂浼犺鍗旾D")); + return; + } + net.sf.json.JSONArray idsArray = net.sf.json.JSONArray.fromObject(ids); + + Set<String> orderIds = new HashSet<>(); + + for (int i = 0; i < idsArray.size(); i++) { + orderIds.add(idsArray.optString(i)); + } + + int p = 0; + for (Iterator<String> its = orderIds.iterator(); its.hasNext(); ) { + String orderId = its.next(); + taoBaoOrderUpdateJob.updateTaoBaoOrder(orderId); + } + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鏇存柊鎴愬姛")); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏇存柊澶辫触")); + e.printStackTrace(); + } + } + + @RequestMapping(value = "listTaoBaoWQOrder") + public void listTaoBaoWeiQuanOrder(AdminAcceptData acceptData, String callback, String key, Integer pageIndex, PrintWriter out) { + try { + if (pageIndex == null || pageIndex < 0) { + pageIndex = 1; + } + List<TaoBaoWeiQuanOrder> orderList = null; + Long count = null; + if (!StringUtil.isNullOrEmpty(key)) { + orderList = taoBaoWeiQuanOrderService.listByOrderId(key); + count = (long) orderList.size(); + } else { + orderList = taoBaoWeiQuanOrderService.listByState(null, pageIndex, Constant.PAGE_SIZE); + count = taoBaoWeiQuanOrderService.countByState(null); + } + + int pageSize = Constant.PAGE_SIZE; + + int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); + PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); + + Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() { + @Override + public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); + } else { + return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy-MM-dd HH:mm:ss")); + } + } + }).create(); + + JSONObject data = new JSONObject(); + data.put("pe", pe); + data.put("result_list", gson.toJson(orderList)); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触")); + e.printStackTrace(); + } + } + + + /** + * 鏂板悗鍙扮 涓婁紶璁㈠崟鏂囦欢 + * + * @param acceptData + * @param file + * @param out + */ + @RequestMapping(value = "uploadWQOrderFile") + public void uploadWQOrderFile(AdminAcceptData acceptData, @RequestParam("file") CommonsMultipartFile file, PrintWriter out) { + + if (file == null) { + out.print(JsonUtil.loadFalseResult("涓婁紶鏂囦欢涓嶈兘涓虹┖")); + return; + } + + List<TaoBaoWeiQuanOrder> orderList = null; + try { + orderList = TaoBaoOrderUtil.parseWeiQuanOrder( + file.getInputStream()); + int pos = 0; + for (TaoBaoWeiQuanOrder order : orderList) + try { + pos++; + // if (pos == 19||pos == 26) + taoBaoWeiQuanOrderService.addWeiQuanOrder(order);// 娣诲姞缁存潈璁㈠崟鍒版暟鎹簱 + } catch (Exception e) { + System.out.println("浣嶇疆:" + pos); + e.printStackTrace(); + } + // 澶勭悊缁存潈璁㈠崟 + out.print(JsonUtil.loadTrueResult("涓婁紶鎴愬姛,绯荤粺姝e湪澶勭悊涓�...")); + } catch (IOException e) { + out.print(JsonUtil.loadFalseResult("涓婁紶鏂囦欢澶辫触")); + e.printStackTrace(); + } + + final List<TaoBaoWeiQuanOrder> finalOrderList = orderList; + + ThreadUtil.run(new Runnable() { + @Override + public void run() { + orderProcessService.weiQuanOrder(finalOrderList); + } + }); + + } + + /** + * @return void + * @author hxh + * @description 杩濊璁㈠崟澶勭悊 + * @date 15:06 2021/10/23 + * @param: acceptData + * @param: content + * @param: out + **/ + @RequestMapping(value = "weiGui") + public void weiGuiOrder(AdminAcceptData acceptData, String content, String callback, PrintWriter out) { + + if (StringUtil.isNullOrEmpty(content)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂笂浼犺鍗曞彿")); + return; + } + + List<String> orderIdList = new ArrayList<>(); + Scanner scanner = new Scanner(content); + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + if (!StringUtil.isNullOrEmpty(line)) + orderIdList.add(line.trim()); + } + scanner.close(); + + if (orderIdList.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂笂浼犺鍗曞彿")); + return; + } + + BigDecimal fanliMoney = new BigDecimal(0); + BigDecimal unFanliMoney = new BigDecimal(0); + BigDecimal childFanliMoney = new BigDecimal(0); + int validCount = 0; + int inValidCount = 0; + Set<Long> uids = new HashSet<>(); + try { + for (int c = 0; c < orderIdList.size(); c++) { + String orderId = orderIdList.get(c); + List<CommonOrder> orderList = commonOrderMapper.listBySourceTypeAndOrderNo(Constant.SOURCE_TYPE_TAOBAO, + orderId); + if (orderList.size() > 0) { + validCount++; + for (CommonOrder commonOrder : orderList) { + uids.add(commonOrder.getUserInfo().getId()); + HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId()); + if (hongBaoOrder != null) { + HongBaoV2 v2 = hongBaoOrder.getHongBaoV2(); + if (v2.getState() == 3) { + fanliMoney = fanliMoney.add(v2.getMoney()); + // 鏌ヨ涓婄骇鏄惁鍒拌处 + List<HongBaoV2> children = hongBaoV2Mapper.listChildrenById(v2.getId()); + if (children != null && children.size() > 0) { + for (HongBaoV2 hongBao : children) { + if (hongBao.getState() == HongBaoV2.STATE_BUKELINGQU + || hongBao.getState() == HongBaoV2.STATE_KELINGQU) { + HongBaoV2 updateHongBao = new HongBaoV2(hongBao.getId()); + updateHongBao.setState(HongBaoV2.STATE_SHIXIAO); + updateHongBao.setBeizhu("鑱旂洘杩濊"); + updateHongBao.setUpdateTime(new Date()); + hongBaoV2Mapper.updateByPrimaryKeySelective(updateHongBao); + } else {// + childFanliMoney = childFanliMoney.add(hongBao.getMoney()); + } + } + } + } else if (v2.getState() == 1 || v2.getState() == 2) { + unFanliMoney = unFanliMoney.add(v2.getMoney()); + HongBaoV2 update = new HongBaoV2(v2.getId()); + update.setState(HongBaoV2.STATE_SHIXIAO); + update.setBeizhu("鑱旂洘杩濊"); + update.setUpdateTime(new Date()); + hongBaoV2Mapper.updateByPrimaryKeySelective(update); + // 鍙戠幇瀛愯鍗� + List<HongBaoV2> children = hongBaoV2Mapper.listChildrenById(v2.getId()); + if (children != null && children.size() > 0) { + for (HongBaoV2 hongBao : children) { + HongBaoV2 updateHongBao = new HongBaoV2(hongBao.getId()); + updateHongBao.setState(HongBaoV2.STATE_SHIXIAO); + updateHongBao.setBeizhu("鑱旂洘杩濊"); + updateHongBao.setUpdateTime(new Date()); + hongBaoV2Mapper.updateByPrimaryKeySelective(updateHongBao); + } + } + } + } + } + } else + inValidCount++; + } + + System.out.println( + validCount + "-" + inValidCount + "-" + fanliMoney + "-" + unFanliMoney + "-" + childFanliMoney); + Iterator<Long> its = uids.iterator(); + while (its.hasNext()) { + System.out.println(its.next()); + } + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("澶勭悊鎴愬姛")); + } catch (Exception e) { + e.printStackTrace(); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("澶勭悊鍑洪敊锛�" + e.getMessage())); + } + } + +} -- Gitblit v1.8.0