From 220bfc71b653a3be33e1684a9df060608df5cfd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=81=E9=BD=90?= <280645618@qq.com> Date: Thu, 13 Jun 2024 18:18:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84pdd=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=8B=89=E5=8F=96=E3=80=81=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/qihang/oms/domain/OmsDouGoodsSku.java | 161 ++ .../com/qihang/oms/domain/OmsDouOrder.java | 420 +++++ .../qihang/oms/domain/OmsDouOrderItem.java | 283 +++ .../com/qihang/oms/domain/OmsPddGoodsSku.java | 84 + .../com/qihang/oms/domain/OmsPddOrder.java | 354 ++++ .../qihang/oms/domain/OmsPddOrderItem.java | 124 ++ .../oms/mapper/OmsDouGoodsSkuMapper.java | 18 + .../oms/mapper/OmsDouOrderItemMapper.java | 18 + .../qihang/oms/mapper/OmsDouOrderMapper.java | 18 + .../oms/mapper/OmsPddGoodsSkuMapper.java | 18 + .../oms/mapper/OmsPddOrderItemMapper.java | 18 + .../qihang/oms/mapper/OmsPddOrderMapper.java | 18 + .../com/qihang/oms/mq/KafkaMQConsumer.java | 9 + .../oms/service/ErpSaleOrderService.java | 2 + .../oms/service/OmsDouGoodsSkuService.java | 13 + .../oms/service/OmsDouOrderItemService.java | 13 + .../oms/service/OmsDouOrderService.java | 13 + .../oms/service/OmsPddGoodsSkuService.java | 13 + .../oms/service/OmsPddOrderItemService.java | 13 + .../oms/service/OmsPddOrderService.java | 13 + .../service/impl/ErpSaleOrderServiceImpl.java | 353 ++++ .../impl/OmsDouGoodsSkuServiceImpl.java | 22 + .../impl/OmsDouOrderItemServiceImpl.java | 22 + .../service/impl/OmsDouOrderServiceImpl.java | 22 + .../impl/OmsPddGoodsSkuServiceImpl.java | 22 + .../impl/OmsPddOrderItemServiceImpl.java | 22 + .../service/impl/OmsPddOrderServiceImpl.java | 22 + .../resources/mapper/OmsDouGoodsSkuMapper.xml | 51 + .../mapper/OmsDouOrderItemMapper.xml | 83 + .../resources/mapper/OmsDouOrderMapper.xml | 120 ++ .../resources/mapper/OmsPddGoodsSkuMapper.xml | 31 + .../mapper/OmsPddOrderItemMapper.xml | 42 + .../resources/mapper/OmsPddOrderMapper.xml | 103 ++ .../pdd/controller/PddOrderApiController.java | 1529 +++++++++-------- .../pdd/controller/PddOrderController.java | 152 +- .../com/qihang/pdd/domain/OmsPddOrder.java | 360 ++++ .../qihang/pdd/domain/OmsPddOrderItem.java | 124 ++ .../pdd/domain/SysShopPullLasttime.java | 139 +- .../qihang/pdd/domain/bo/PddOrderPushBo.java | 8 + .../pdd/mapper/OmsPddOrderItemMapper.java | 18 + .../qihang/pdd/mapper/OmsPddOrderMapper.java | 18 + .../pdd/service/OmsPddOrderItemService.java | 13 + .../pdd/service/OmsPddOrderService.java | 17 + .../service/SysShopPullLasttimeService.java | 2 +- .../impl/OmsPddOrderItemServiceImpl.java | 22 + .../service/impl/OmsPddOrderServiceImpl.java | 161 ++ .../impl/SysShopPullLasttimeServiceImpl.java | 12 + .../mapper/OmsPddOrderItemMapper.xml | 42 + .../resources/mapper/OmsPddOrderMapper.xml | 103 ++ vue/src/api/pdd/order.js | 39 +- vue/src/views/pdd/order/index.vue | 1217 ------------- vue/src/views/sale/order/pull/index.vue | 2 +- vue/src/views/shop/order_index.vue | 2 +- vue/src/views/shop/pdd/order/index.vue | 335 ++++ 54 files changed, 4610 insertions(+), 2243 deletions(-) create mode 100644 oms-api/src/main/java/com/qihang/oms/domain/OmsDouGoodsSku.java create mode 100644 oms-api/src/main/java/com/qihang/oms/domain/OmsDouOrder.java create mode 100644 oms-api/src/main/java/com/qihang/oms/domain/OmsDouOrderItem.java create mode 100644 oms-api/src/main/java/com/qihang/oms/domain/OmsPddGoodsSku.java create mode 100644 oms-api/src/main/java/com/qihang/oms/domain/OmsPddOrder.java create mode 100644 oms-api/src/main/java/com/qihang/oms/domain/OmsPddOrderItem.java create mode 100644 oms-api/src/main/java/com/qihang/oms/mapper/OmsDouGoodsSkuMapper.java create mode 100644 oms-api/src/main/java/com/qihang/oms/mapper/OmsDouOrderItemMapper.java create mode 100644 oms-api/src/main/java/com/qihang/oms/mapper/OmsDouOrderMapper.java create mode 100644 oms-api/src/main/java/com/qihang/oms/mapper/OmsPddGoodsSkuMapper.java create mode 100644 oms-api/src/main/java/com/qihang/oms/mapper/OmsPddOrderItemMapper.java create mode 100644 oms-api/src/main/java/com/qihang/oms/mapper/OmsPddOrderMapper.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/OmsDouGoodsSkuService.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/OmsDouOrderItemService.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/OmsDouOrderService.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/OmsPddGoodsSkuService.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/OmsPddOrderItemService.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/OmsPddOrderService.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouGoodsSkuServiceImpl.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouOrderItemServiceImpl.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouOrderServiceImpl.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddGoodsSkuServiceImpl.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddOrderItemServiceImpl.java create mode 100644 oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddOrderServiceImpl.java create mode 100644 oms-api/src/main/resources/mapper/OmsDouGoodsSkuMapper.xml create mode 100644 oms-api/src/main/resources/mapper/OmsDouOrderItemMapper.xml create mode 100644 oms-api/src/main/resources/mapper/OmsDouOrderMapper.xml create mode 100644 oms-api/src/main/resources/mapper/OmsPddGoodsSkuMapper.xml create mode 100644 oms-api/src/main/resources/mapper/OmsPddOrderItemMapper.xml create mode 100644 oms-api/src/main/resources/mapper/OmsPddOrderMapper.xml create mode 100644 open-api/pdd-api/src/main/java/com/qihang/pdd/domain/OmsPddOrder.java create mode 100644 open-api/pdd-api/src/main/java/com/qihang/pdd/domain/OmsPddOrderItem.java create mode 100644 open-api/pdd-api/src/main/java/com/qihang/pdd/domain/bo/PddOrderPushBo.java create mode 100644 open-api/pdd-api/src/main/java/com/qihang/pdd/mapper/OmsPddOrderItemMapper.java create mode 100644 open-api/pdd-api/src/main/java/com/qihang/pdd/mapper/OmsPddOrderMapper.java create mode 100644 open-api/pdd-api/src/main/java/com/qihang/pdd/service/OmsPddOrderItemService.java create mode 100644 open-api/pdd-api/src/main/java/com/qihang/pdd/service/OmsPddOrderService.java create mode 100644 open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/OmsPddOrderItemServiceImpl.java create mode 100644 open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/OmsPddOrderServiceImpl.java create mode 100644 open-api/pdd-api/src/main/resources/mapper/OmsPddOrderItemMapper.xml create mode 100644 open-api/pdd-api/src/main/resources/mapper/OmsPddOrderMapper.xml delete mode 100644 vue/src/views/pdd/order/index.vue create mode 100644 vue/src/views/shop/pdd/order/index.vue diff --git a/oms-api/src/main/java/com/qihang/oms/domain/OmsDouGoodsSku.java b/oms-api/src/main/java/com/qihang/oms/domain/OmsDouGoodsSku.java new file mode 100644 index 00000000..907234c0 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/domain/OmsDouGoodsSku.java @@ -0,0 +1,161 @@ +package com.qihang.oms.domain; + +import java.io.Serializable; +import lombok.Data; + +/** + * 抖店商品Sku表 + * @TableName oms_dou_goods_sku + */ +@Data +public class OmsDouGoodsSku implements Serializable { + /** + * 商品sku_id;抖店系统生成。 + */ + private Long id; + + /** + * 商品ID;抖店系统生成。 + */ + private Long productId; + + /** + * 规格ID + */ + private Long specId; + + /** + * sku外部编码 + */ + private String code; + + /** + * 库存类型;0-普通;1-区域库存;10-阶梯库存; + */ + private Integer skuType; + + /** + * sku状态 true上架 false下架 + */ + private String skuStatus; + + /** + * 外部的skuId;商家自定义;未设置返回为0。 + */ + private Long outSkuId; + + /** + * 第一级子规格 + */ + private Long specDetailId1; + + /** + * 第二级子规格 + */ + private Long specDetailId2; + + /** + * +第三级子规格 + */ + private Long specDetailId3; + + /** + * 第一级子规格名 + */ + private String specDetailName1; + + /** + * 第二级子规格名 + */ + private String specDetailName2; + + /** + * +第三级子规格名 + */ + private String specDetailName3; + + /** + * 商品价格,单位:分 + */ + private Integer price; + + /** + * 创建时间,时间戳:单位秒; + */ + private Integer createTime; + + /** + * ku_type=0时,表示普通库存数量 ;sku_type=1时,使用stock_map,表示区域库存数量 + */ + private Integer stockNum; + + /** + * sku_type=0时,表示预占库存数量; sku_type=1时,表示区域库存数量,使用prehold_stock_map + */ + private Integer preholdStockNum; + + /** + * 活动库存 + */ + private Integer promStockNum; + + /** + * +阶梯库存 + */ + private Integer stepStockNum; + + /** + * 预占阶梯库存 + */ + private Integer preholdStepStockNum; + + /** + * 活动阶梯库存 + */ + private Integer promStepStockNum; + + /** + * 库存模型V2新增 普通库存 非活动可售 + */ + private Integer normalStockNum; + + /** + * 库存模型V2新增 渠道库存 + */ + private Integer channelStockNum; + + /** + * 销售属性,代替spec_detail_id123、spec_detail_name123 + */ + private String sellProperties; + + /** + * 商品id(o_goods外键) + */ + private Long erpGoodsId; + + /** + * 商品skuid(o_goods_sku外键) + */ + private Long erpGoodsSkuId; + + /** + * 店铺id + */ + private Integer shopId; + + /** + * 商品标题。 + */ + private String name; + + /** + * 商品主图的第一张图 + */ + private String img; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/oms-api/src/main/java/com/qihang/oms/domain/OmsDouOrder.java b/oms-api/src/main/java/com/qihang/oms/domain/OmsDouOrder.java new file mode 100644 index 00000000..ae3f65b0 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/domain/OmsDouOrder.java @@ -0,0 +1,420 @@ +package com.qihang.oms.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 抖店订单表 + * @TableName oms_dou_order + */ +@Data +public class OmsDouOrder implements Serializable { + /** + * + */ + private Long id; + + /** + * 店铺父订单号,抖店平台生成,平台下唯一; + */ + private String orderId; + + /** + * 订单层级,主订单是2级 + */ + private Integer orderLevel; + + /** + * 定金预售阶段单json + */ + private String orderPhaseList; + + /** + * 订单状态1 待确认/待支付(订单创建完毕)105 已支付 2 备货中 101 部分发货 3 已发货(全部发货)4 已取消5 已完成(已收货) + */ + private Integer orderStatus; + + /** + * 订单状态描述 + */ + private String orderStatusDesc; + + /** + * +订单的一些c端标签json + */ + private String orderTag; + + /** + * 【订单类型】 0、普通订单 2、虚拟商品订单 4、电子券(poi核销) 5、三方核销 + */ + private Integer orderType; + + /** + * 订单类型描述 + */ + private String orderTypeDesc; + + /** + * 具体某个小程序的ID + */ + private Integer appId; + + /** + * 抖音小程序ID + */ + private String openId; + + /** + * 小时达订单的接单状态 0-未接单;1-已接单;2-超时取消,或商家取消 + */ + private Integer acceptOrderStatus; + + /** + * 预约发货时间 + */ + private Integer appointmentShipTime; + + /** + * 作者(达人)承担金额(单位:分),订单参与活动和优惠中作者(达人)承担部分的总金额 + */ + private Integer authorCostAmount; + + /** + * 达人抖音号,样品订单场景下才会返回的申样达人信息; + */ + private String awemeId; + + /** + * 【下单端】 0、站外 1、火山 2、抖音 3、头条 4、西瓜 5、微信 6、值点app 7、头条lite 8、懂车帝 9、皮皮虾 11、抖音极速版 12、TikTok 13、musically 14、穿山甲 15、火山极速版 16、服务市场 26、番茄小说 27、UG教育营销电商平台 28、Jumanji 29、电商SDK + */ + private Integer bType; + + /** + * 下单端描述 + */ + private String bTypeDesc; + + /** + * 【下单场景】 0、未知 1、app内-原生 2、app内-小程序 3、H5 13、电商SDK-头条 35、电商SDK-头条lite + */ + private Integer subBType; + + /** + * 下单场景描述 + */ + private String subBTypeDesc; + + /** + * 【业务来源】 1 -鲁班 2 -小店 3 -好好学习 4 -ev 5 -虚拟 6 -建站 7 -核销 8 -玉石 9 -ez 10 -ep 11 -虚拟卡券 12 -服务市场 13 - EP 视频课 14 - EP 直播课 21 -跨境BBC 22 -跨境BC 23 -跨境CC|UPU 24 -手机充值 25 -拍卖保证金 26 -懂车帝抵扣券 27 -懂车帝返现券 28 -离岛免税 29 -海南会员购 30 -抽奖 31 -清北-企业代付 32 -抖+券 33 -联盟寄样 49 -刀剑 53 -通信卡 66 -加油包 76 -大闸蟹 99 -保险 102-小店海外 108-上门取件收款 + */ + private Integer biz; + + /** + * 业务来源描述 + */ + private String bizDesc; + + /** + * 买家留言 + */ + private String buyerWords; + + /** + * 商家备注 + */ + private String sellerWords; + + /** + * 插旗信息:0-灰 1-紫 2-青 3-绿 4-橙 5-红 + */ + private Integer sellerRemarkStars; + + /** + * 取消原因 + */ + private String cancelReason; + + /** + * 支付渠道的流水号 + */ + private String channelPaymentNo; + + /** + * 下单时间,时间戳,秒 + */ + private Integer createTime; + + /** + * 支付时间,时间戳,秒 + */ + private Integer payTime; + + /** + * 订单更新时间,时间戳,秒 + */ + private Integer updateTime; + + /** + * 订单完成时间,时间戳,秒 + */ + private Integer finishTime; + + /** + * 订单过期时间,时间戳,秒 + */ + private Integer orderExpireTime; + + /** + * 用户唯一id + */ + private String doudianOpenId; + + /** + * 收件人姓名 + */ + private String encryptPostReceiver; + + /** + * 收件人电话 + */ + private String encryptPostTel; + + /** + * 收件地址 + */ + private String encryptPostAddress; + + /** + * 预计发货时间,时间戳,秒 + */ + private Integer expShipTime; + + /** + * 物流信息JSON + */ + private String logisticsInfo; + + /** + * 主流程状态,1 待确认/待支付(订单创建完毕)103 部分支付105 已支付2 备货中101 部分发货3 已发货(全部发货)4 已取消5 已完成(已收货)21 发货前退款完结22 发货后退款完结39 收货后退款完结 + */ + private Integer mainStatus; + + /** + * 主流程状态描述 + */ + private String mainStatusDesc; + + /** + * 收件人姓名(脱敏后) + */ + private String maskPostReceiver; + + /** + * 收件人电话(脱敏后) + */ + private String maskPostTel; + + /** + * 收件人地址(脱敏后) + */ + private String maskPostAddress; + + /** + * 省 + */ + private String provinceName; + + /** + * + */ + private Integer provinceId; + + /** + * + */ + private String cityName; + + /** + * + */ + private Integer cityId; + + /** + * + */ + private String townName; + + /** + * + */ + private Integer townId; + + /** + * + */ + private String streetName; + + /** + * + */ + private Integer streetId; + + /** + * 标识收件人地址的id,可用于合单 + */ + private String openAddressId; + + /** + * 改价金额变化量(单位:分) + */ + private Integer modifyAmount; + + /** + * 改价运费金额变化量(单位:分) + */ + private Integer modifyPostAmount; + + /** + * 仅平台承担金额(单位:分),订单参与活动和优惠中平台承担部分的总金额 + */ + private Integer onlyPlatformCostAmount; + + /** + * 订单金额(单位:分) + */ + private Integer orderAmount; + + /** + * 支付金额(单位:分) + */ + private Integer payAmount; + + /** + * 7=无需支付(0元单);8=DOU分期(信用支付);9=新卡支付;12=先用后付;16=收银台支付 + */ + private Integer payType; + + /** + * 快递费(单位:分) + */ + private Integer postAmount; + + /** + * 运费险金额(单位:分) + */ + private Integer postInsuranceAmount; + + /** + * 运费原价(单位:分),post_origin_amount = post_amount + post_promotion_amount + */ + private Integer postOriginAmount; + + /** + * 运费优惠金额(单位:分) + */ + private Integer postPromotionAmount; + + /** + * 订单优惠总金额(单位:分) = 店铺优惠金额 + 平台优惠金额 + 达人优惠金额 + */ + private Integer promotionAmount; + + /** + * 支付优惠金额(单位:分),支付渠道上的优惠金额 + */ + private Integer promotionPayAmount; + + /** + * 平台优惠金额(单位:分),属于平台的优惠活动、优惠券、红包的总优惠金额 + */ + private Integer promotionPlatformAmount; + + /** + * 红包优惠金额(单位:分) + */ + private Integer promotionRedpackAmount; + + /** + * 平台红包优惠金额(单位:分),属于平台的红包的优惠金额 + */ + private Integer promotionRedpackPlatformAmount; + + /** + * 达人红包优惠金额(单位:分),属于达人的红包的优惠金额 + */ + private Integer promotionRedpackTalentAmount; + + /** + * 店铺优惠金额(单位:分),属于店铺的优惠活动、优惠券、红包的总优惠金额 + */ + private Integer promotionShopAmount; + + /** + * 达人优惠金额(单位:分),属于达人的优惠活动、优惠券、红包的总优惠金额 + */ + private Integer promotionTalentAmount; + + /** + * 发货时间,时间戳,秒 + */ + private Integer shipTime; + + /** + * 商家承担金额(单位:分),订单参与活动和优惠中商家承担部分的总金额 + */ + private Integer shopCostAmount; + + /** + * 平台承担金额(单位:分),订单参与活动和优惠中平台+作者(达人)承担部分的总金额,包含作者(达人)承担金额:platform_cost_amount = only_platform_cost_amount + author_cost_amount + */ + private Integer platformCostAmount; + + /** + * 店铺id,抖店平台生成,平台下唯一; + */ + private Long shopId; + + /** + * 商户名称 + */ + private String shopName; + + /** + * 总优惠金额(单位:分),total_promotion_amount = promotion_amount + post_promotion_amount + */ + private Integer totalPromotionAmount; + + /** + * 用户特征标签;JSON + */ + private String userTagUi; + + /** + * 系统店铺id + */ + private Integer sShopId; + + /** + * 第一次拉取时间 + */ + private Date pullTime; + + /** + * 最后一次拉取时间 + */ + private Date lastPullTime; + + /** + * 0待确认,1已确认2已拦截-9未拉取 + */ + private Integer auditStatus; + + /** + * 审核时间 + */ + private Date auditTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/oms-api/src/main/java/com/qihang/oms/domain/OmsDouOrderItem.java b/oms-api/src/main/java/com/qihang/oms/domain/OmsDouOrderItem.java new file mode 100644 index 00000000..d7edc205 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/domain/OmsDouOrderItem.java @@ -0,0 +1,283 @@ +package com.qihang.oms.domain; + +import java.io.Serializable; +import lombok.Data; + +/** + * 抖店订单明细表 + * @TableName oms_dou_order_item + */ +@Data +public class OmsDouOrderItem implements Serializable { + /** + * + */ + private Long id; + + /** + * 店铺子订单号,抖店平台生成,平台下唯一;注意:一笔订单下有一个子订单和父订单单号相同。 + */ + private String orderId; + + /** + * 店铺父订单号,抖店平台生成,平台下唯一; + */ + private String parentOrderId; + + /** + * 订单层级 + */ + private Integer orderLevel; + + /** + * 广告来源,video-短视频 live-直播 + */ + private String adEnvType; + + /** + * 售后状态;6-售后申请;27-拒绝售后申请;12-售后成功;7-售后退货中;11-售后已发货;29-售后退货拒绝;13-【换货返回:换货售后换货商家发货】,【补寄返回:补寄待用户收货】; 14-【换货返回:(换货)售后换货用户收货】,【补寄返回:(补寄)用户已收货】 ;28-售后失败;51-订单取消成功;53-逆向交易已完成; + */ + private Integer afterSaleStatus; + + /** + * 售后类型 ;0-退货退款;1-已发货仅退款;2-未发货仅退款;3-换货;4-系统取消;5-用户取消;6-价保;7-补寄; + */ + private Integer afterSaleType; + + /** + * 退款状态:1-待退款;3-退款成功; 4-退款失败;当买家发起售后后又主动取消售后,此时after_sale_status=28并且refund_status=1的状态不变,不会流转至4状态; + */ + private Integer refundStatus; + + /** + * 作者(达人)承担金额(单位:分),订单参与活动和优惠中作者(达人)承担部分的总金额 + */ + private Integer authorCostAmount; + + /** + * 直播主播id(达人);仅直播间和橱窗产生的订单会有值返回; + */ + private Integer authorId; + + /** + * 直播主播名称;仅直播间和橱窗产生的订单会有值返回 + */ + private String authorName; + + /** + * 【C端流量来源】 0-unknown 2-精选联盟 8-小店自卖 + */ + private Integer cBiz; + + /** + * C端流量来源业务类型描述 + */ + private String cBizDesc; + + /** + * +取消原因 + */ + private String cancelReason; + + /** + * 支付渠道的流水号 + */ + private String channelPaymentNo; + + /** + * 商家后台商品编码 + */ + private String code; + + /** + * 用户确认收货时间 + */ + private Integer confirmReceiptTime; + + /** + * 订单完成时间,时间戳,秒 + */ + private Integer finishTime; + + /** + * +商品原价(单位:分) + */ + private Integer goodsPrice; + + /** + * 【商品类型】 0-实体 1-虚拟 + */ + private Integer goodsType; + + /** + * +是否评价 :1-已评价,0-未评价,2 -追评 + */ + private Integer isComment; + + /** + * 订单商品数量 + */ + private Integer itemNum; + + /** + * 物流收货时间 + */ + private Integer logisticsReceiptTime; + + /** + * +改价金额变化量(单位:分) + */ + private Integer modifyAmount; + + /** + * 改价运费金额变化量(单位:分) + */ + private Integer modifyPostAmount; + + /** + * 仅平台承担金额(单位:分),订单参与活动和优惠中平台承担部分的总金额 + */ + private Integer onlyPlatformCostAmount; + + /** + * 订单金额(单位:分) + */ + private Integer orderAmount; + + /** + * 支付金额(单位:分) + */ + private Integer payAmount; + + /** + * 运费险金额(单位:分) + */ + private Integer postInsuranceAmount; + + /** + * 订单优惠总金额(单位:分) = 店铺优惠金额 + 平台优惠金额 + 达人优惠金额 + */ + private Integer promotionAmount; + + /** + * 店铺优惠金额(单位:分),属于店铺的优惠活动、优惠券、红包的总优惠金额 + */ + private Integer promotionShopAmount; + + /** + * 平台优惠金额(单位:分),属于平台的优惠活动、优惠券、红包的总优惠金额 + */ + private Integer promotionPlatformAmount; + + /** + * 商家承担金额(单位:分),订单参与活动和优惠中商家承担部分的总金额 + */ + private Integer shopCostAmount; + + /** + * 平台承担金额(单位:分),订单参与活动和优惠中平台+作者(达人)承担部分的总金额,包含作者(达人)承担金额:platform_cost_amount = only_platform_cost_amount + author_cost_amount + */ + private Integer platformCostAmount; + + /** + * 达人优惠金额(单位:分),属于达人的优惠活动、优惠券、红包的总优惠金额 + */ + private Integer promotionTalentAmount; + + /** + * 支付优惠金额(单位:分),支付渠道上的优惠金额 + */ + private Integer promotionPayAmount; + + /** + * 商品现价(单位:分) + */ + private Integer originAmount; + + /** + * 商品外部编码 + */ + private String outProductId; + + /** + * 外部Skuid + */ + private String outSkuId; + + /** + * 商品ID + */ + private Long productId; + + /** + * 商品skuId + */ + private Long skuId; + + /** + * 商品名称 + */ + private String productName; + + /** + * 商品图片 + */ + private String productPic; + + /** + * 平台优惠金额(单位:分),属于平台的优惠活动、优惠券、红包的总优惠金额 + */ + private Integer promotionRedpackAmount; + + /** + * 平台红包优惠金额(单位:分),属于平台的红包的优惠金额 + */ + private Integer promotionRedpackPlatformAmount; + + /** + * 达人红包优惠金额(单位:分),属于达人的红包的优惠金额 + */ + private Integer promotionRedpackTalentAmount; + + /** + * 直播间id,有值则代表订单来自直播间 + */ + private Integer roomId; + + /** + * +发货时间 + */ + private Integer shipTime; + + /** + * 规格信息JSON + */ + private String spec; + + /** + * 下单来源描述(废弃) + */ + private String themeTypeDesc; + + /** + * 订单更新时间,时间戳,秒 + */ + private Integer updateTime; + + /** + * 下单时间,时间戳,秒 + */ + private Integer createTime; + + /** + * 视频id,有值则代表订单来自短视频video_id + */ + private String videoId; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/oms-api/src/main/java/com/qihang/oms/domain/OmsPddGoodsSku.java b/oms-api/src/main/java/com/qihang/oms/domain/OmsPddGoodsSku.java new file mode 100644 index 00000000..af238fc0 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/domain/OmsPddGoodsSku.java @@ -0,0 +1,84 @@ +package com.qihang.oms.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * pdd商品SKU表 + * @TableName oms_pdd_goods_sku + */ +@Data +public class OmsPddGoodsSku implements Serializable { + /** + * + */ + private Long id; + + /** + * sku编码 + */ + private Long skuId; + + /** + * pdd商品编码 + */ + private Long goodsId; + + /** + * 商品名称 + */ + private String goodsName; + + /** + * 商品缩略图 + */ + private String thumbUrl; + + /** + * 商家外部编码(sku) + */ + private String outerId; + + /** + * sku库存 + */ + private Long skuQuantity; + + /** + * 规格名称 + */ + private String spec; + + /** + * sku是否在架上,0-下架中,1-架上 + */ + private Integer isSkuOnsale; + + /** + * 商品id(o_goods外键) + */ + private Long erpGoodsId; + + /** + * 商品skuid(o_goods_sku外键) + */ + private Long erpGoodsSkuId; + + /** + * 店铺id + */ + private Integer shopId; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改时间 + */ + private Date updateTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/oms-api/src/main/java/com/qihang/oms/domain/OmsPddOrder.java b/oms-api/src/main/java/com/qihang/oms/domain/OmsPddOrder.java new file mode 100644 index 00000000..15ea9c68 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/domain/OmsPddOrder.java @@ -0,0 +1,354 @@ +package com.qihang.oms.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 拼多多订单表 + * @TableName oms_pdd_order + */ +@Data +public class OmsPddOrder implements Serializable { + /** + * 订单id,自增 + */ + private Long id; + + /** + * 内部店铺ID + */ + private Integer shopId; + + /** + * 订单编号 + */ + private String orderSn; + + /** + * 订单类型 0-普通订单 ,1- 定金订单 + */ + private Integer tradeType; + + /** + * 是否顺丰包邮,1-是 0-否 + */ + private Integer freeSf; + + /** + * 是否是抽奖订单,1-非抽奖订单,2-抽奖订单 + */ + private Integer isLuckyFlag; + + /** + * 成团状态:0:拼团中、1:已成团、2:团失败 + */ + private Integer groupStatus; + + /** + * 成交状态:0:未成交、1:已成交、2:已取消、 + */ + private Integer confirmStatus; + + /** + * 订单状态1:待发货,2:已发货待签收,3:已签收 + */ + private Integer orderStatus; + + /** + * 售后状态 1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 5:全部 + */ + private Integer refundStatus; + + /** + * 团长免单金额,单位:元 + */ + private Double capitalFreeDiscount; + + /** + * 商家优惠金额,单位:元 + */ + private Double sellerDiscount; + + /** + * 平台优惠金额,单位:元 + */ + private Double platformDiscount; + + /** + * 商品金额,单位:元,商品金额=商品销售价格*商品数量-改价金额(接口暂无该字段) + */ + private Double goodsAmount; + + /** + * 折扣金额,单位:元,折扣金额=平台优惠+商家优惠+团长免单优惠金额 + */ + private Double discountAmount; + + /** + * 支付金额,单位:元,支付金额=商品金额-折扣金额+邮费 + */ + private Double payAmount; + + /** + * 邮费,单位:元 + */ + private Double postage; + + /** + * 订单备注 + */ + private String remark; + + /** + * 订单备注标记,1-红色,2-黄色,3-绿色,4-蓝色,5-紫色 + */ + private Integer remarkTag; + + /** + * 订单备注标记名称 + */ + private String remarkTagName; + + /** + * 买家留言信息 + */ + private String buyerMemo; + + /** + * 订单的更新时间 + */ + private String updatedAt; + + /** + * 发货时间 + */ + private String shippingTime; + + /** + * 快递单号 + */ + private String trackingNumber; + + /** + * 物流公司 + */ + private String trackingCompany; + + /** + * 支付方式,枚举值:QQ,WEIXIN,ALIPAY,LIANLIANPAY + */ + private String payType; + + /** + * 支付单号 + */ + private String payNo; + + /** + * 收件人地址,不拼接省市区 + */ + private String receiverAddress; + + /** + * 收件人地址(打码) + */ + private String receiverAddressMask; + + /** + * 收件人姓名 + */ + private String receiverName; + + /** + * 收件人电话 + */ + private String receiverPhone; + + /** + * + */ + private String receiverPhoneMask; + + /** + * + */ + private String receiverNameMask; + + /** + * + */ + private String addressMask; + + /** + * 详细地址 + */ + private String address; + + /** + * 区县 + */ + private String town; + + /** + * + */ + private Integer townId; + + /** + * 市 + */ + private String city; + + /** + * 城市编码 + */ + private Integer cityId; + + /** + * 省 + */ + private String province; + + /** + * + */ + private Integer provinceId; + + /** + * 国家地区 + */ + private String country; + + /** + * + */ + private Integer countryId; + + /** + * 订单创建时间 + */ + private Date createdTime; + + /** + * 支付时间 + */ + private String payTime; + + /** + * 成交时间 + */ + private String confirmTime; + + /** + * 确认收货时间 + */ + private String receiveTime; + + /** + * 售后状态 0:无售后 2:买家申请退款,待商家处理 3:退货退款,待商家处理 4:商家同意退款,退款中 5:平台同意退款,退款中 6:驳回退款, 待买家处理 7:已同意退货退款,待用户发货 8:平台处理中 9:平台拒 绝退款,退款关闭 10:退款成功 11:买家撤销 12:买家逾期未处 理,退款失败 13:买家逾期,超过有效期 14 : 换货补寄待商家处理 15:换货补寄待用户处理 16:换货补寄成功 17:换货补寄失败 18:换货补寄待用户确认完成 + */ + private Integer afterSalesStatus; + + /** + * 订单承诺发货时间 + */ + private String lastShipTime; + + /** + * 标签 + */ + private String tag; + + /** + * 是否当日发货,1-是,0-否 + */ + private Integer deliveryOneDay; + + /** + * 是否多多批发,1-是,0-否 + */ + private Integer duoduoWholesale; + + /** + * 送货入户并安装服务 0-不支持送货,1-送货入户不安装,2-送货入户并安装 + */ + private Integer homeDeliveryType; + + /** + * 发票申请,1代表有 0代表无 + */ + private Integer invoiceStatus; + + /** + * 是否为预售商品 1表示是 0表示否 + */ + private Integer isPreSale; + + /** + * 是否缺货 0-无缺货处理 1: 有缺货处理 + */ + private Integer isStockOut; + + /** + * 快递公司在拼多多的代码 + */ + private Long logisticsId; + + /** + * 市场业务类型,0-普通订单,1-拼内购订单 + */ + private Integer mktBizType; + + /** + * 只换不修,1:是,0:否 + */ + private Integer onlySupportReplace; + + /** + * 订单改价折扣金额,单位元 + */ + private Double orderChangeAmount; + + /** + * 预售时间 + */ + private String preSaleTime; + + /** + * 退货包运费,1:是,0:否 + */ + private Integer returnFreightPayer; + + /** + * 订单审核状态(0-正常订单, 1-审核中订单) + */ + private Integer riskControlStatus; + + /** + * 催发货时间 + */ + private String urgeShippingTime; + + /** + * 0待确认,1已确认2已拦截-9未拉取 + */ + private Integer auditStatus; + + /** + * 发货时间(仓库真实发货时间) + */ + private Date auditTime; + + /** + * 系统创建时间 + */ + private Date createTime; + + /** + * 系统更新时间 + */ + private Date updateTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/oms-api/src/main/java/com/qihang/oms/domain/OmsPddOrderItem.java b/oms-api/src/main/java/com/qihang/oms/domain/OmsPddOrderItem.java new file mode 100644 index 00000000..1106be77 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/domain/OmsPddOrderItem.java @@ -0,0 +1,124 @@ +package com.qihang.oms.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 拼多多订单明细表 + * @TableName oms_pdd_order_item + */ +@Data +public class OmsPddOrderItem implements Serializable { + /** + * id,自增 + */ + private Long id; + + /** + * 订单ID + */ + private Long orderId; + + /** + * 订单编号 + */ + private String orderSn; + + /** + * erp系统商品id + */ + private Integer erpGoodsId; + + /** + * erp系统商品规格id + */ + private Integer erpSpecId; + + /** + * 拼多多商品id + */ + private Long goodId; + + /** + * 拼多多商品skuid + */ + private Long skuId; + + /** + * 商品名称 + */ + private String goodsName; + + /** + * 商品图片 + */ + private String goodsImg; + + /** + * 商品规格 + */ + private String goodsSpec; + + /** + * 商品单价 + */ + private Double goodsPrice; + + /** + * 商家外部编码(商品) + */ + private String outerGoodsId; + + /** + * 商家外部编码(sku) + */ + private String outerId; + + /** + * 商品数量 + */ + private Integer goodsCount; + + /** + * 备注 + */ + private String remark; + + /** + * 子订单金额 + */ + private Double itemAmount; + + /** + * 是否礼品0否1是 + */ + private Integer isGift; + + /** + * 已退货数量 + */ + private Integer refundCount; + + /** + * 售后状态 1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 + */ + private Integer refundStatus; + + /** + * 内部店铺ID + */ + private Integer shopId; + + /** + * 系统创建时间 + */ + private Date createTime; + + /** + * 系统更新时间 + */ + private Date updateTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouGoodsSkuMapper.java b/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouGoodsSkuMapper.java new file mode 100644 index 00000000..88846f42 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouGoodsSkuMapper.java @@ -0,0 +1,18 @@ +package com.qihang.oms.mapper; + +import com.qihang.oms.domain.OmsDouGoodsSku; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_dou_goods_sku(抖店商品Sku表)】的数据库操作Mapper +* @createDate 2024-06-13 17:52:03 +* @Entity com.qihang.oms.domain.OmsDouGoodsSku +*/ +public interface OmsDouGoodsSkuMapper extends BaseMapper { + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouOrderItemMapper.java b/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouOrderItemMapper.java new file mode 100644 index 00000000..4d18c5f0 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouOrderItemMapper.java @@ -0,0 +1,18 @@ +package com.qihang.oms.mapper; + +import com.qihang.oms.domain.OmsDouOrderItem; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_dou_order_item(抖店订单明细表)】的数据库操作Mapper +* @createDate 2024-06-13 17:52:03 +* @Entity com.qihang.oms.domain.OmsDouOrderItem +*/ +public interface OmsDouOrderItemMapper extends BaseMapper { + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouOrderMapper.java b/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouOrderMapper.java new file mode 100644 index 00000000..3e831c8b --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouOrderMapper.java @@ -0,0 +1,18 @@ +package com.qihang.oms.mapper; + +import com.qihang.oms.domain.OmsDouOrder; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_dou_order(抖店订单表)】的数据库操作Mapper +* @createDate 2024-06-13 17:52:03 +* @Entity com.qihang.oms.domain.OmsDouOrder +*/ +public interface OmsDouOrderMapper extends BaseMapper { + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddGoodsSkuMapper.java b/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddGoodsSkuMapper.java new file mode 100644 index 00000000..22b3992b --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddGoodsSkuMapper.java @@ -0,0 +1,18 @@ +package com.qihang.oms.mapper; + +import com.qihang.oms.domain.OmsPddGoodsSku; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_pdd_goods_sku(pdd商品SKU表)】的数据库操作Mapper +* @createDate 2024-06-13 17:34:46 +* @Entity com.qihang.oms.domain.OmsPddGoodsSku +*/ +public interface OmsPddGoodsSkuMapper extends BaseMapper { + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddOrderItemMapper.java b/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddOrderItemMapper.java new file mode 100644 index 00000000..a9956e65 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddOrderItemMapper.java @@ -0,0 +1,18 @@ +package com.qihang.oms.mapper; + +import com.qihang.oms.domain.OmsPddOrderItem; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_pdd_order_item(拼多多订单明细表)】的数据库操作Mapper +* @createDate 2024-06-13 17:34:46 +* @Entity com.qihang.oms.domain.OmsPddOrderItem +*/ +public interface OmsPddOrderItemMapper extends BaseMapper { + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddOrderMapper.java b/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddOrderMapper.java new file mode 100644 index 00000000..38a9c18f --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddOrderMapper.java @@ -0,0 +1,18 @@ +package com.qihang.oms.mapper; + +import com.qihang.oms.domain.OmsPddOrder; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_pdd_order(拼多多订单表)】的数据库操作Mapper +* @createDate 2024-06-13 17:34:46 +* @Entity com.qihang.oms.domain.OmsPddOrder +*/ +public interface OmsPddOrderMapper extends BaseMapper { + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/mq/KafkaMQConsumer.java b/oms-api/src/main/java/com/qihang/oms/mq/KafkaMQConsumer.java index 6555257b..58eb6159 100644 --- a/oms-api/src/main/java/com/qihang/oms/mq/KafkaMQConsumer.java +++ b/oms-api/src/main/java/com/qihang/oms/mq/KafkaMQConsumer.java @@ -37,6 +37,15 @@ public class KafkaMQConsumer { }else if(vo.getShopType().getIndex() == EnumShopType.TAO.getIndex()) { logger.info("Kafka订单消息TAO"+vo.getKeyId()); orderService.taoOrderMessage(vo.getKeyId()); + }else if(vo.getShopType().getIndex() == EnumShopType.PDD.getIndex()) { + logger.info("Kafka订单消息PDD"+vo.getKeyId()); + orderService.pddOrderMessage(vo.getKeyId()); + } else if(vo.getShopType().getIndex() == EnumShopType.DOU.getIndex()) { + logger.info("Kafka订单消息DOU"+vo.getKeyId()); + orderService.douOrderMessage(vo.getKeyId()); + } else if(vo.getShopType().getIndex() == EnumShopType.WEI.getIndex()) { + logger.info("Kafka订单消息WEI"+vo.getKeyId()); +// orderService.weiOrderMessage(vo.getKeyId()); } } diff --git a/oms-api/src/main/java/com/qihang/oms/service/ErpSaleOrderService.java b/oms-api/src/main/java/com/qihang/oms/service/ErpSaleOrderService.java index 93124022..c9357f2b 100644 --- a/oms-api/src/main/java/com/qihang/oms/service/ErpSaleOrderService.java +++ b/oms-api/src/main/java/com/qihang/oms/service/ErpSaleOrderService.java @@ -16,6 +16,8 @@ import java.util.List; public interface ErpSaleOrderService extends IService { ResultVo jdOrderMessage(String orderId); ResultVo taoOrderMessage(String orderId); + ResultVo pddOrderMessage(String orderId); + ResultVo douOrderMessage(String orderId); List getList(ErpSaleOrder order); PageResult queryPageList(ErpSaleOrder bo, PageQuery pageQuery); diff --git a/oms-api/src/main/java/com/qihang/oms/service/OmsDouGoodsSkuService.java b/oms-api/src/main/java/com/qihang/oms/service/OmsDouGoodsSkuService.java new file mode 100644 index 00000000..85a3c20b --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/OmsDouGoodsSkuService.java @@ -0,0 +1,13 @@ +package com.qihang.oms.service; + +import com.qihang.oms.domain.OmsDouGoodsSku; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_dou_goods_sku(抖店商品Sku表)】的数据库操作Service +* @createDate 2024-06-13 17:52:03 +*/ +public interface OmsDouGoodsSkuService extends IService { + +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/OmsDouOrderItemService.java b/oms-api/src/main/java/com/qihang/oms/service/OmsDouOrderItemService.java new file mode 100644 index 00000000..ffabb0f5 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/OmsDouOrderItemService.java @@ -0,0 +1,13 @@ +package com.qihang.oms.service; + +import com.qihang.oms.domain.OmsDouOrderItem; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_dou_order_item(抖店订单明细表)】的数据库操作Service +* @createDate 2024-06-13 17:52:03 +*/ +public interface OmsDouOrderItemService extends IService { + +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/OmsDouOrderService.java b/oms-api/src/main/java/com/qihang/oms/service/OmsDouOrderService.java new file mode 100644 index 00000000..dac1c727 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/OmsDouOrderService.java @@ -0,0 +1,13 @@ +package com.qihang.oms.service; + +import com.qihang.oms.domain.OmsDouOrder; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_dou_order(抖店订单表)】的数据库操作Service +* @createDate 2024-06-13 17:52:03 +*/ +public interface OmsDouOrderService extends IService { + +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/OmsPddGoodsSkuService.java b/oms-api/src/main/java/com/qihang/oms/service/OmsPddGoodsSkuService.java new file mode 100644 index 00000000..908f2a94 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/OmsPddGoodsSkuService.java @@ -0,0 +1,13 @@ +package com.qihang.oms.service; + +import com.qihang.oms.domain.OmsPddGoodsSku; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_pdd_goods_sku(pdd商品SKU表)】的数据库操作Service +* @createDate 2024-06-13 17:34:46 +*/ +public interface OmsPddGoodsSkuService extends IService { + +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/OmsPddOrderItemService.java b/oms-api/src/main/java/com/qihang/oms/service/OmsPddOrderItemService.java new file mode 100644 index 00000000..89713bc8 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/OmsPddOrderItemService.java @@ -0,0 +1,13 @@ +package com.qihang.oms.service; + +import com.qihang.oms.domain.OmsPddOrderItem; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_pdd_order_item(拼多多订单明细表)】的数据库操作Service +* @createDate 2024-06-13 17:34:46 +*/ +public interface OmsPddOrderItemService extends IService { + +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/OmsPddOrderService.java b/oms-api/src/main/java/com/qihang/oms/service/OmsPddOrderService.java new file mode 100644 index 00000000..f279459d --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/OmsPddOrderService.java @@ -0,0 +1,13 @@ +package com.qihang.oms.service; + +import com.qihang.oms.domain.OmsPddOrder; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_pdd_order(拼多多订单表)】的数据库操作Service +* @createDate 2024-06-13 17:34:46 +*/ +public interface OmsPddOrderService extends IService { + +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/ErpSaleOrderServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/ErpSaleOrderServiceImpl.java index 3217eb17..7c5f0729 100644 --- a/oms-api/src/main/java/com/qihang/oms/service/impl/ErpSaleOrderServiceImpl.java +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/ErpSaleOrderServiceImpl.java @@ -42,6 +42,12 @@ public class ErpSaleOrderServiceImpl extends ServiceImpl pddOrderMessage(String orderId) { + log.info("PDD订单消息处理"+orderId); + List originOrders = pddOrderMapper.selectList(new LambdaQueryWrapper().eq(OmsPddOrder::getOrderSn, orderId)); + + if(originOrders == null || originOrders.size() == 0) { + // 没有找到订单信息 + return ResultVo.error(ResultVoEnum.NotFound,"没有找到PDD原始订单:"+orderId); + } + OmsPddOrder originOrder = originOrders.get(0); + List oOrders = orderMapper.selectList(new LambdaQueryWrapper().eq(ErpSaleOrder::getOrderNum, orderId)); +// List oOrders = orderMapper.selectList(new LambdaQueryWrapper().eq(OOrder::getOrderNum, orderId)); + if(oOrders == null || oOrders.isEmpty()) { + // 新增订单 + ErpSaleOrder insert = new ErpSaleOrder(); + insert.setOrderNum(originOrder.getOrderSn()); + insert.setShopType(EnumShopType.PDD.getIndex()); + insert.setShopId(originOrder.getShopId()); + insert.setBuyerMemo(originOrder.getBuyerMemo()); + insert.setSellerMemo(originOrder.getRemark()); + // 状态 订单状态0:新订单,1:待发货,2:已发货,3:已完成,11已取消;12退款中;21待付款;22锁定,29删除 + int orderStatus = -1; + int refundStatus = -1; + if(originOrder.getRefundStatus()==1){ + // 没有售后 + orderStatus = originOrder.getOrderStatus(); + refundStatus = 1; + }else{ + if(originOrder.getRefundStatus()==4){ + refundStatus=4; + orderStatus = 11; + }else{ + refundStatus=originOrder.getRefundStatus(); + orderStatus = 12; + } + } + insert.setRefundStatus(refundStatus); + insert.setOrderStatus(orderStatus); + insert.setGoodsAmount(originOrder.getGoodsAmount()); + insert.setDiscountAmount(originOrder.getSellerDiscount()); + insert.setPostage(originOrder.getPostage()); + Double orderAmount =originOrder.getPayAmount(); + if(originOrder.getPlatformDiscount()!=null){ + orderAmount += originOrder.getPlatformDiscount(); + } + insert.setAmount(orderAmount); + +// insert.setPayment(originOrder.getPayAmount()); + insert.setReceiverName(originOrder.getReceiverNameMask()); + insert.setReceiverPhone(originOrder.getReceiverPhoneMask()); + insert.setAddress(originOrder.getReceiverAddressMask()); + insert.setProvince(originOrder.getProvince()); + insert.setCity(originOrder.getCity()); + insert.setTown(originOrder.getTown()); + insert.setOrderTime(DateUtils.parseDate(originOrder.getCreatedTime())); + insert.setShipType(0); + insert.setShipStatus(0); + insert.setCreateTime(new Date()); + insert.setCreateBy("ORDER_MESSAGE"); + + orderMapper.insert(insert); + // 插入orderItem + addPddOrderItem(insert.getId(),originOrder.getOrderSn(), insert.getShopId(), orderStatus,refundStatus); + + }else{ + // 修改订单 (修改:) + ErpSaleOrder update = new ErpSaleOrder(); + update.setId(oOrders.get(0).getId()); + // 状态 订单状态0:新订单,1:待发货,2:已发货,3:已完成,11已取消;12退款中;21待付款;22锁定,29删除 + int orderStatus = -1; + int refundStatus = -1; + if(originOrder.getRefundStatus()==1){ + // 没有售后 + orderStatus = originOrder.getOrderStatus(); + refundStatus = 1; + }else{ + if(originOrder.getRefundStatus()==4){ + refundStatus=4; + orderStatus = 11; + }else{ + refundStatus=originOrder.getRefundStatus(); + orderStatus = 12; + } + } + update.setRefundStatus(refundStatus); + update.setOrderStatus(orderStatus); +// update.setGoodsAmount(originOrder.getGoodsAmount()); +// update.setPostFee(originOrder.getPostage()); +// update.setAmount(originOrder.getPayAmount()); +// update.setPayment(originOrder.getPayAmount()); + update.setReceiverName(originOrder.getReceiverNameMask()); + update.setReceiverPhone(originOrder.getReceiverPhoneMask()); + update.setAddress(originOrder.getReceiverAddressMask()); + + update.setUpdateTime(new Date()); + update.setUpdateBy("ORDER_MESSAGE"); + orderMapper.updateById(update); + + // 删除orderItem + orderItemMapper.delete(new LambdaQueryWrapper().eq(ErpSaleOrderItem::getOrderId,update.getId())); + // 插入orderItem + addPddOrderItem(update.getId(),originOrder.getOrderSn(), oOrders.get(0).getShopId(), orderStatus,refundStatus); + } + return ResultVo.success(); + } + + private void addPddOrderItem(String oOrderId,String orderSn,Integer shopId,Integer orderStatus,Integer refundStatus){ + List originOrderItems = pddOrderItemMapper.selectList(new LambdaQueryWrapper().eq(OmsPddOrderItem::getOrderSn, orderSn)); + if(originOrderItems!=null && originOrderItems.size()>0) { + for (var item : originOrderItems) { + ErpSaleOrderItem orderItem = new ErpSaleOrderItem(); + orderItem.setOrderId(Long.parseLong(oOrderId)); + orderItem.setOriginalOrderId(orderSn); + orderItem.setOriginalOrderItemId(item.getId().toString()); + orderItem.setOriginalSkuId(item.getSkuId().toString()); + orderItem.setShopId(shopId); + orderItem.setShipStatus(0); + // 这里将订单商品skuid转换成erp系统的skuid + Long erpGoodsId = 0L; + Long erpSkuId = 0L; + + List pddGoodsSku = pddGoodsSkuMapper.selectList(new LambdaQueryWrapper().eq(OmsPddGoodsSku::getSkuId, item.getSkuId())); + if (pddGoodsSku != null && !pddGoodsSku.isEmpty()) { + erpGoodsId = pddGoodsSku.get(0).getErpGoodsId(); + erpSkuId = pddGoodsSku.get(0).getErpGoodsSkuId(); +// orderItem.setGoodsImg(taoGoodsSku.get(0).getLogo()); +// orderItem.setGoodsSpec(jdGoodsSkus.get(0).getSkuName()); +// orderItem.setSkuNum(taoGoodsSku.get(0).getOuterId()); + } + orderItem.setGoodsId(erpGoodsId); + orderItem.setSpecId(erpSkuId); + orderItem.setGoodsImg(item.getGoodsImg()); + orderItem.setGoodsSpec(item.getGoodsSpec()); + orderItem.setGoodsTitle(item.getGoodsName()); + orderItem.setGoodsPrice(item.getGoodsPrice()); + orderItem.setItemAmount(item.getGoodsPrice()); + orderItem.setQuantity(item.getGoodsCount()); + orderItem.setOrderStatus(orderStatus); + orderItem.setRefundStatus(refundStatus); + orderItem.setRefundCount(0); + orderItem.setCreateTime(new Date()); + orderItem.setCreateBy("ORDER_MESSAGE"); + orderItemMapper.insert(orderItem); + } + } + } + + @Transactional + @Override + public ResultVo douOrderMessage(String orderId) { + log.info("Dou订单消息处理"+orderId); + List originOrders = douOrderMapper.selectList(new LambdaQueryWrapper().eq(OmsDouOrder::getOrderId, orderId)); + + if(originOrders == null || originOrders.size() == 0) { + // 没有找到订单信息 + return ResultVo.error(ResultVoEnum.NotFound,"没有找到DOU原始订单:"+orderId); + } + OmsDouOrder originOrder = originOrders.get(0); + + List oOrders = orderMapper.selectList(new LambdaQueryWrapper().eq(ErpSaleOrder::getOrderNum, orderId)); +// List oOrders = orderMapper.selectList(new LambdaQueryWrapper().eq(OOrder::getOrderNum, orderId)); + if(oOrders == null || oOrders.isEmpty()) { + // 新增订单 + ErpSaleOrder insert = new ErpSaleOrder(); + insert.setOrderNum(originOrder.getOrderId()); + insert.setShopType(EnumShopType.DOU.getIndex()); + insert.setShopId(originOrder.getShopId().intValue()); + insert.setBuyerMemo(originOrder.getBuyerWords()); + insert.setSellerMemo(originOrder.getSellerWords()); + // 状态 订单状态0:新订单,1:待发货,2:已发货,3:已完成,11已取消;12退款中;21待付款;22锁定,29删除,101部分发货 + // 抖店订单状态 1 待确认/待支付(订单创建完毕)105 已支付 2 备货中 101 部分发货 3 已发货(全部发货)4 已取消 5 已完成(已收货) + int orderStatus = -1; + int refundStatus = -1; + if(originOrder.getOrderStatus()==1){ + // 1待确认/待支付(订单创建完毕) + orderStatus = 21; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==105){ + // 105 已支付 + orderStatus = 0; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==2){ + // 105 已支付 + orderStatus = 1; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==101){ + // 101 部分发货 + orderStatus = 101; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==3){ + // 3 已发货(全部发货) + orderStatus = 2; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==4){ + // 4 已取消 + orderStatus = 11; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==5){ + // 5 已完成(已收货) + orderStatus = 3; + refundStatus = 1; + } + + insert.setRefundStatus(refundStatus); + insert.setOrderStatus(orderStatus); + + insert.setGoodsAmount(originOrder.getOrderAmount().doubleValue()/100); + insert.setPostage(originOrder.getPostAmount().doubleValue()/100); + insert.setAmount(originOrder.getOrderAmount().doubleValue()/100); +// insert.setPayment(originOrder.getPayAmount().doubleValue()/100); + insert.setReceiverName(originOrder.getMaskPostReceiver()); + insert.setReceiverPhone(originOrder.getMaskPostTel()); + insert.setAddress(originOrder.getMaskPostAddress()); + insert.setProvince(originOrder.getProvinceName()); + insert.setCity(originOrder.getCityName()); + insert.setTown(originOrder.getTownName()); + long time = originOrder.getCreateTime().longValue() * 1000; + insert.setOrderTime(new Date(time)); + insert.setShipType(0); + insert.setShipStatus(0); + insert.setCreateTime(new Date()); + insert.setCreateBy("ORDER_MESSAGE"); + + orderMapper.insert(insert); + // 插入orderItem + addDouOrderItem(insert.getId(),originOrder.getOrderId(),insert.getShopId(),orderStatus,refundStatus); + + }else{ + // 修改订单 (修改:) + ErpSaleOrder update = new ErpSaleOrder(); + update.setId(oOrders.get(0).getId()); + // 状态 订单状态0:新订单,1:待发货,2:已发货,3:已完成,11已取消;12退款中;21待付款;22锁定,29删除,101部分发货 + // 抖店订单状态 1 待确认/待支付(订单创建完毕)105 已支付 2 备货中 101 部分发货 3 已发货(全部发货)4 已取消 5 已完成(已收货) + int orderStatus = -1; + int refundStatus = -1; + if(originOrder.getOrderStatus()==1){ + // 1待确认/待支付(订单创建完毕) + orderStatus = 21; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==105){ + // 105 已支付 + orderStatus = 0; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==2){ + // 105 已支付 + orderStatus = 1; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==101){ + // 101 部分发货 + orderStatus = 101; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==3){ + // 3 已发货(全部发货) + orderStatus = 2; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==4){ + // 4 已取消 + orderStatus = 11; + refundStatus = 1; + }else if(originOrder.getOrderStatus()==5){ + // 5 已完成(已收货) + orderStatus = 3; + refundStatus = 1; + } + update.setRefundStatus(refundStatus); + update.setOrderStatus(orderStatus); +// long time = originOrder.getCreateTime().longValue() * 1000; +// update.setOrderTime(new Date(time)); +// update.setGoodsAmount(originOrder.getOrderAmount().doubleValue()/100); +// update.setPostFee(originOrder.getPostAmount().doubleValue()/100); +// update.setAmount(originOrder.getOrderAmount().doubleValue()/100); +// update.setPayment(originOrder.getPayAmount().doubleValue()/100); + update.setReceiverName(originOrder.getMaskPostReceiver()); + update.setReceiverPhone(originOrder.getMaskPostTel()); + update.setAddress(originOrder.getMaskPostAddress()); + + + update.setUpdateTime(new Date()); + update.setUpdateBy("ORDER_MESSAGE"); + orderMapper.updateById(update); + + // 删除orderItem + orderItemMapper.delete(new LambdaQueryWrapper().eq(ErpSaleOrderItem::getOrderId,update.getId())); + // 插入orderItem + addDouOrderItem(update.getId(),originOrder.getOrderId(),update.getShopId(),orderStatus,refundStatus); + } + return ResultVo.success(); + } + private void addDouOrderItem(String oOrderId,String originOrderId,Integer shopId,Integer orderStatus,Integer refundStatus){ + List originOrderItems = douOrderItemMapper.selectList(new LambdaQueryWrapper().eq(OmsDouOrderItem::getParentOrderId, originOrderId)); + if(originOrderItems!=null && originOrderItems.size()>0) { + for (var item : originOrderItems) { +// OOrderItem orderItem = new OOrderItem(); +// orderItem.setOrderId(oOrderId); +// orderItem.setOrderNum(item.getParentOrderId()); +// orderItem.setSubOrderNum(item.getOrderId()); + ErpSaleOrderItem orderItem = new ErpSaleOrderItem(); + orderItem.setOrderId(Long.parseLong(oOrderId)); + orderItem.setOriginalOrderId(item.getParentOrderId()); + orderItem.setOriginalOrderItemId(item.getOrderId()); + orderItem.setOriginalSkuId(item.getSkuId().toString()); + orderItem.setShopId(shopId); + orderItem.setShipStatus(0); + // 这里将订单商品skuid转换成erp系统的skuid + Long erpGoodsId = 0L; + Long erpSkuId = 0L; + + OmsDouGoodsSku douGoodsSku = douGoodsSkuMapper.selectById(item.getSkuId()); + if (douGoodsSku != null ) { + erpGoodsId = douGoodsSku.getErpGoodsId(); + erpSkuId = douGoodsSku.getErpGoodsSkuId(); +// orderItem.setGoodsImg(taoGoodsSku.get(0).getLogo()); +// orderItem.setGoodsSpec(jdGoodsSkus.get(0).getSkuName()); +// orderItem.setSkuNum(taoGoodsSku.get(0).getOuterId()); + } +// List douGoodsSku = douGoodsSkuMapper.selectList(new LambdaQueryWrapper().eq(DouGoodsSku::getId, item.getSkuId())); +// if (douGoodsSku != null && !douGoodsSku.isEmpty()) { +// erpGoodsId = douGoodsSku.get(0).getOGoodsId(); +// erpSkuId = douGoodsSku.get(0).getOGoodsSkuId(); +//// orderItem.setGoodsImg(taoGoodsSku.get(0).getLogo()); +//// orderItem.setGoodsSpec(jdGoodsSkus.get(0).getSkuName()); +//// orderItem.setSkuNum(taoGoodsSku.get(0).getOuterId()); +// } + + orderItem.setGoodsId(erpGoodsId); + orderItem.setSpecId(erpSkuId); + orderItem.setGoodsImg(item.getProductPic()); + if(org.springframework.util.StringUtils.hasText(item.getSpec())) { + orderItem.setGoodsSpec(item.getSpec().length()>500?item.getSpec().substring(0,499):item.getSpec()); + } + orderItem.setGoodsTitle(item.getProductName()); + orderItem.setGoodsPrice(item.getOriginAmount().doubleValue()/100); + orderItem.setItemAmount(item.getOrderAmount().doubleValue()/100); + orderItem.setQuantity(item.getItemNum()); + orderItem.setOrderStatus(orderStatus); + orderItem.setRefundStatus(refundStatus); + orderItem.setRefundCount(0); + orderItem.setCreateTime(new Date()); + orderItem.setCreateBy("ORDER_MESSAGE"); + orderItemMapper.insert(orderItem); + } + } + } + + @Override public List getList(ErpSaleOrder order) { return orderMapper.selectList(new LambdaQueryWrapper<>()); diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouGoodsSkuServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouGoodsSkuServiceImpl.java new file mode 100644 index 00000000..e4bd2425 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouGoodsSkuServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.oms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.oms.domain.OmsDouGoodsSku; +import com.qihang.oms.service.OmsDouGoodsSkuService; +import com.qihang.oms.mapper.OmsDouGoodsSkuMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_dou_goods_sku(抖店商品Sku表)】的数据库操作Service实现 +* @createDate 2024-06-13 17:52:03 +*/ +@Service +public class OmsDouGoodsSkuServiceImpl extends ServiceImpl + implements OmsDouGoodsSkuService{ + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouOrderItemServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouOrderItemServiceImpl.java new file mode 100644 index 00000000..9e600cb5 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouOrderItemServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.oms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.oms.domain.OmsDouOrderItem; +import com.qihang.oms.service.OmsDouOrderItemService; +import com.qihang.oms.mapper.OmsDouOrderItemMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_dou_order_item(抖店订单明细表)】的数据库操作Service实现 +* @createDate 2024-06-13 17:52:03 +*/ +@Service +public class OmsDouOrderItemServiceImpl extends ServiceImpl + implements OmsDouOrderItemService{ + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouOrderServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouOrderServiceImpl.java new file mode 100644 index 00000000..9d16224b --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouOrderServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.oms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.oms.domain.OmsDouOrder; +import com.qihang.oms.service.OmsDouOrderService; +import com.qihang.oms.mapper.OmsDouOrderMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_dou_order(抖店订单表)】的数据库操作Service实现 +* @createDate 2024-06-13 17:52:03 +*/ +@Service +public class OmsDouOrderServiceImpl extends ServiceImpl + implements OmsDouOrderService{ + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddGoodsSkuServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddGoodsSkuServiceImpl.java new file mode 100644 index 00000000..0161ac7d --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddGoodsSkuServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.oms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.oms.domain.OmsPddGoodsSku; +import com.qihang.oms.service.OmsPddGoodsSkuService; +import com.qihang.oms.mapper.OmsPddGoodsSkuMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_pdd_goods_sku(pdd商品SKU表)】的数据库操作Service实现 +* @createDate 2024-06-13 17:34:46 +*/ +@Service +public class OmsPddGoodsSkuServiceImpl extends ServiceImpl + implements OmsPddGoodsSkuService{ + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddOrderItemServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddOrderItemServiceImpl.java new file mode 100644 index 00000000..c193efa3 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddOrderItemServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.oms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.oms.domain.OmsPddOrderItem; +import com.qihang.oms.service.OmsPddOrderItemService; +import com.qihang.oms.mapper.OmsPddOrderItemMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_pdd_order_item(拼多多订单明细表)】的数据库操作Service实现 +* @createDate 2024-06-13 17:34:46 +*/ +@Service +public class OmsPddOrderItemServiceImpl extends ServiceImpl + implements OmsPddOrderItemService{ + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddOrderServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddOrderServiceImpl.java new file mode 100644 index 00000000..f581f713 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddOrderServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.oms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.oms.domain.OmsPddOrder; +import com.qihang.oms.service.OmsPddOrderService; +import com.qihang.oms.mapper.OmsPddOrderMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_pdd_order(拼多多订单表)】的数据库操作Service实现 +* @createDate 2024-06-13 17:34:46 +*/ +@Service +public class OmsPddOrderServiceImpl extends ServiceImpl + implements OmsPddOrderService{ + +} + + + + diff --git a/oms-api/src/main/resources/mapper/OmsDouGoodsSkuMapper.xml b/oms-api/src/main/resources/mapper/OmsDouGoodsSkuMapper.xml new file mode 100644 index 00000000..8f481634 --- /dev/null +++ b/oms-api/src/main/resources/mapper/OmsDouGoodsSkuMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,product_id,spec_id, + code,sku_type,sku_status, + out_sku_id,spec_detail_id1,spec_detail_id2, + spec_detail_id3,spec_detail_name1,spec_detail_name2, + spec_detail_name3,price,create_time, + stock_num,prehold_stock_num,prom_stock_num, + step_stock_num,prehold_step_stock_num,prom_step_stock_num, + normal_stock_num,channel_stock_num,sell_properties, + erp_goods_id,erp_goods_sku_id,shop_id, + name,img + + diff --git a/oms-api/src/main/resources/mapper/OmsDouOrderItemMapper.xml b/oms-api/src/main/resources/mapper/OmsDouOrderItemMapper.xml new file mode 100644 index 00000000..8114e993 --- /dev/null +++ b/oms-api/src/main/resources/mapper/OmsDouOrderItemMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,order_id,parent_order_id, + order_level,ad_env_type,after_sale_status, + after_sale_type,refund_status,author_cost_amount, + author_id,author_name,c_biz, + c_biz_desc,cancel_reason,channel_payment_no, + code,confirm_receipt_time,finish_time, + goods_price,goods_type,is_comment, + item_num,logistics_receipt_time,modify_amount, + modify_post_amount,only_platform_cost_amount,order_amount, + pay_amount,post_insurance_amount,promotion_amount, + promotion_shop_amount,promotion_platform_amount,shop_cost_amount, + platform_cost_amount,promotion_talent_amount,promotion_pay_amount, + origin_amount,out_product_id,out_sku_id, + product_id,sku_id,product_name, + product_pic,promotion_redpack_amount,promotion_redpack_platform_amount, + promotion_redpack_talent_amount,room_id,ship_time, + spec,theme_type_desc,update_time, + create_time,video_id + + diff --git a/oms-api/src/main/resources/mapper/OmsDouOrderMapper.xml b/oms-api/src/main/resources/mapper/OmsDouOrderMapper.xml new file mode 100644 index 00000000..ecb321b0 --- /dev/null +++ b/oms-api/src/main/resources/mapper/OmsDouOrderMapper.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,order_id,order_level, + order_phase_list,order_status,order_status_desc, + order_tag,order_type,order_type_desc, + app_id,open_id,accept_order_status, + appointment_ship_time,author_cost_amount,aweme_id, + b_type,b_type_desc,sub_b_type, + sub_b_type_desc,biz,biz_desc, + buyer_words,seller_words,seller_remark_stars, + cancel_reason,channel_payment_no,create_time, + pay_time,update_time,finish_time, + order_expire_time,doudian_open_id,encrypt_post_receiver, + encrypt_post_tel,encrypt_post_address,exp_ship_time, + logistics_info,main_status,main_status_desc, + mask_post_receiver,mask_post_tel,mask_post_address, + province_name,province_id,city_name, + city_id,town_name,town_id, + street_name,street_id,open_address_id, + modify_amount,modify_post_amount,only_platform_cost_amount, + order_amount,pay_amount,pay_type, + post_amount,post_insurance_amount,post_origin_amount, + post_promotion_amount,promotion_amount,promotion_pay_amount, + promotion_platform_amount,promotion_redpack_amount,promotion_redpack_platform_amount, + promotion_redpack_talent_amount,promotion_shop_amount,promotion_talent_amount, + ship_time,shop_cost_amount,platform_cost_amount, + shop_id,shop_name,total_promotion_amount, + user_tag_ui,s_shop_id,pull_time, + last_pull_time,audit_status,audit_time + + diff --git a/oms-api/src/main/resources/mapper/OmsPddGoodsSkuMapper.xml b/oms-api/src/main/resources/mapper/OmsPddGoodsSkuMapper.xml new file mode 100644 index 00000000..3b407ff1 --- /dev/null +++ b/oms-api/src/main/resources/mapper/OmsPddGoodsSkuMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + id,sku_id,goods_id, + goods_name,thumb_url,outer_id, + sku_quantity,spec,is_sku_onsale, + erp_goods_id,erp_goods_sku_id,shop_id, + create_time,update_time + + diff --git a/oms-api/src/main/resources/mapper/OmsPddOrderItemMapper.xml b/oms-api/src/main/resources/mapper/OmsPddOrderItemMapper.xml new file mode 100644 index 00000000..8423faa3 --- /dev/null +++ b/oms-api/src/main/resources/mapper/OmsPddOrderItemMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,order_id,order_sn, + erp_goods_id,erp_spec_id,good_id, + sku_id,goods_name,goods_img, + goods_spec,goods_price,outer_goods_id, + outer_id,goods_count,remark, + item_amount,is_gift,refund_count, + refund_status,shop_id,create_time, + update_time + + diff --git a/oms-api/src/main/resources/mapper/OmsPddOrderMapper.xml b/oms-api/src/main/resources/mapper/OmsPddOrderMapper.xml new file mode 100644 index 00000000..43d28077 --- /dev/null +++ b/oms-api/src/main/resources/mapper/OmsPddOrderMapper.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,shop_id,order_sn, + trade_type,free_sf,is_lucky_flag, + group_status,confirm_status,order_status, + refund_status,capital_free_discount,seller_discount, + platform_discount,goods_amount,discount_amount, + pay_amount,postage,remark, + remark_tag,remark_tag_name,buyer_memo, + updated_at,shipping_time,tracking_number, + tracking_company,pay_type,pay_no, + receiver_address,receiver_address_mask,receiver_name, + receiver_phone,receiver_phone_mask,receiver_name_mask, + address_mask,address,town, + town_id,city,city_id, + province,province_id,country, + country_id,created_time,pay_time, + confirm_time,receive_time,after_sales_status, + last_ship_time,tag,delivery_one_day, + duoduo_wholesale,home_delivery_type,invoice_status, + is_pre_sale,is_stock_out,logistics_id, + mkt_biz_type,only_support_replace,order_change_amount, + pre_sale_time,return_freight_payer,risk_control_status, + urge_shipping_time,audit_status,audit_time, + create_time,update_time + + diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/PddOrderApiController.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/PddOrderApiController.java index c3095b33..f995c481 100644 --- a/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/PddOrderApiController.java +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/PddOrderApiController.java @@ -1,782 +1,791 @@ -//package com.qihang.pdd.controller; -// -// -//import cn.qihangerp.open.pdd.OrderApiHelper; -//import cn.qihangerp.open.pdd.common.ApiResultVo; -//import cn.qihangerp.open.pdd.model.OrderListResultVo; -//import com.qihang.common.common.AjaxResult; -//import com.qihang.common.enums.HttpStatus; -//import com.qihang.pdd.openapi.ApiCommon; -//import com.qihang.pdd.openapi.PullRequest; -//import com.qihang.pdd.service.OmsPddGoodsService; -//import lombok.AllArgsConstructor; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.beans.BeanUtils; -//import org.springframework.util.StringUtils; -//import org.springframework.web.bind.annotation.PostMapping; -//import org.springframework.web.bind.annotation.RequestBody; -//import org.springframework.web.bind.annotation.RequestMapping; -//import org.springframework.web.bind.annotation.RestController; -// -//import java.util.ArrayList; -//import java.util.List; -// -//@AllArgsConstructor -//@RequestMapping("/pdd-api/order") -//@RestController -//public class PddOrderApiController { -// private static Logger logger = LoggerFactory.getLogger(PddOrderApiController.class); -// private final OmsPddGoodsService goodsService; -// private final OmsPddOrderService orderService; -// private final ApiCommon pddApiHelper; +package com.qihang.pdd.controller; + + +import cn.qihangerp.open.pdd.OrderApiHelper; +import cn.qihangerp.open.pdd.common.ApiResultVo; +import cn.qihangerp.open.pdd.model.OrderListResultVo; +import com.alibaba.fastjson2.JSONObject; +import com.qihang.common.common.AjaxResult; +import com.qihang.common.common.ResultVoEnum; +import com.qihang.common.enums.EnumShopType; +import com.qihang.common.enums.HttpStatus; +import com.qihang.common.mq.MqMessage; +import com.qihang.common.mq.MqType; +import com.qihang.pdd.domain.OmsPddOrder; +import com.qihang.pdd.domain.OmsPddOrderItem; +import com.qihang.pdd.domain.SysShopPullLasttime; +import com.qihang.pdd.openapi.ApiCommon; +import com.qihang.pdd.openapi.PullRequest; +import com.qihang.pdd.service.OmsPddGoodsService; +import com.qihang.pdd.service.OmsPddOrderService; +import com.qihang.pdd.service.SysShopPullLasttimeService; +import com.qihang.pdd.service.SysShopPullLogsService; +import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +@AllArgsConstructor +@RequestMapping("/pdd-api/order") +@RestController +public class PddOrderApiController { + private static Logger logger = LoggerFactory.getLogger(PddOrderApiController.class); + private final OmsPddGoodsService goodsService; + private final OmsPddOrderService orderService; + private final ApiCommon pddApiHelper; + private final SysShopPullLasttimeService pullLasttimeService; + private final SysShopPullLogsService pullLogsService; + private final KafkaTemplate kafkaTemplate; + /** + * 接口拉取订单 + * + * @param + * @param + * @return + * @throws Exception + */ + @PostMapping ("/pull_order") + public AjaxResult getOrderList(@RequestBody PullRequest req) throws Exception { + + Long shopId = req.getShopId();// 拼多多shopId + var checkResult = pddApiHelper.checkBefore(req.getShopId()); + if (checkResult.getCode() != HttpStatus.SUCCESS) { + return AjaxResult.error(checkResult.getCode(), checkResult.getMsg(), checkResult.getData()); + } + String accessToken = checkResult.getData().getAccessToken(); + String url = checkResult.getData().getServerUrl(); + String appKey = checkResult.getData().getAppKey(); + String appSecret = checkResult.getData().getAppSecret(); + +// Long endTime = System.currentTimeMillis() / 1000;// 订单更新结束时间(默认值) +// Long startTime = endTime - 60 * 60 * 24 + 10;// 订单更新开始时间(默认值) + + // 查询上次更新时间 + // 获取最后更新时间 + LocalDateTime startTime = null; + LocalDateTime endTime = null; + SysShopPullLasttime lasttime = pullLasttimeService.getLasttimeByShop(req.getShopId(), "ORDER"); + if(lasttime == null){ + endTime = LocalDateTime.now(); + startTime = endTime.minusDays(1); + }else{ + startTime = lasttime.getLasttime().minusHours(1);//取上次结束一个小时前 + endTime = startTime.plusDays(1);//取24小时 + if(endTime.isAfter(LocalDateTime.now())){ + endTime = LocalDateTime.now(); + } + } + String startTimeStr = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + String endTimeStr = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + Long startTimestamp = startTime.toEpochSecond(ZoneOffset.ofHours(8)); + Long endTimestamp = endTime.toEpochSecond(ZoneOffset.ofHours(8)); + + logger.info("开始循环更新拼多多订单。开始时间:" + startTimeStr + "结束时间:" + endTimeStr); + int hasExistOrder = 0; + int insertSuccess = 0; + int totalError = 0; + + + + ApiResultVo apiResultVo = OrderApiHelper.pullOrderList(appKey, appSecret, accessToken, startTimestamp.intValue(), endTimestamp.intValue(), 1, 20); + if (apiResultVo.getCode() != 0) return AjaxResult.error(apiResultVo.getCode(), apiResultVo.getMsg()); + //成功 + if (apiResultVo.getData().getOrderList() != null) { + //循环插入订单数据到数据库 + for (var trade : apiResultVo.getData().getOrderList()) { + OmsPddOrder order = new OmsPddOrder(); + BeanUtils.copyProperties(trade,order); + List items = new ArrayList<>(); + for (var it:trade.getItemList()) { + OmsPddOrderItem item = new OmsPddOrderItem(); + BeanUtils.copyProperties(it,item); + items.add(item); + } + order.setItemList(items); + //插入订单数据 + var result = orderService.saveOrder(req.getShopId(), order); + if (result.getCode() == ResultVoEnum.DataExist.getIndex()) { + //已经存在 + logger.info("/**************主动更新pdd订单:开始更新数据库:" + order.getId() + "存在、更新****************/"); + kafkaTemplate.send(MqType.ORDER_MQ, JSONObject.toJSONString(MqMessage.build(EnumShopType.PDD, MqType.ORDER_MESSAGE,order.getOrderSn()))); + hasExistOrder++; + } else if (result.getCode() == ResultVoEnum.SUCCESS.getIndex()) { + logger.info("/**************主动更新pdd订单:开始更新数据库:" + order.getId() + "不存在、新增****************/"); + kafkaTemplate.send(MqType.ORDER_MQ, JSONObject.toJSONString(MqMessage.build(EnumShopType.PDD, MqType.ORDER_MESSAGE,order.getOrderSn()))); + insertSuccess++; + } else { + logger.info("/**************主动更新pdd订单:开始更新数据库:" + order.getId() + "报错****************/"); + totalError++; + } + } + } + String msg = "成功,总共找到:" + apiResultVo.getData().getOrderList().size() + "条商品数据,新增:" + insertSuccess + "条,添加错误:" + totalError + "条,更新:" + hasExistOrder + "条"; + logger.info(msg); + + return AjaxResult.success(msg); + + } + + + + // /** -// * 接口拉取订单 +// * 更新订单状态(根据订单号) // * -// * @param -// * @param +// * @param reqData +// * @param req // * @return // * @throws Exception // */ -// @PostMapping ("/pull_order") -// public AjaxResult getOrderList(@RequestBody PullRequest req) throws Exception { +// @RequestMapping(value = "/pull_order_status", method = RequestMethod.POST) +// public ApiResult updOrderStatus(@RequestBody DataRow reqData, HttpServletRequest req) +// throws Exception { +// // String startDate = reqData.getString("startTime"); +// // String endDate = reqData.getString("endTime"); +// log.info("开始接口更新订单状态"); +// Integer shopId = reqData.getInt("shopId");// 拼多多shopId +// String orderS = reqData.getString("orderS");// // -// Long shopId = req.getShopId();// 拼多多shopId -// var checkResult = pddApiHelper.checkBefore(req.getShopId()); -// if (checkResult.getCode() != HttpStatus.SUCCESS) { -// return AjaxResult.error(checkResult.getCode(), checkResult.getMsg(), checkResult.getData()); -// } -// String accessToken = checkResult.getData().getAccessToken(); -// String url = checkResult.getData().getServerUrl(); -// String appKey = checkResult.getData().getAppKey(); -// String appSecret = checkResult.getData().getAppSecret(); +// ApiResult result = null;// 返回结果 // -// Long endTime = System.currentTimeMillis() / 1000;// 订单更新结束时间(默认值) -// Long startTime = endTime - 60 * 60 * 24 + 10;// 订单更新开始时间(默认值) +// String clientId = DataConfigObject.getInstance().getPddClientId(); +// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); +// var shop = shopService.getShop(shopId); +// // var settingEntity = thirdSettingService.getEntity(shop.getType()); // -// // 查询上次更新时间 -// /*String startTime_ = orderPddService.getPddUpTodate(shopId); -// if (!StringUtils.isEmpty(startTime_)) -// startTime = DateUtil.dateTimeToStamp(startTime_).longValue();*/ +// String accessToken = shop.getSessionKey();// settingEntity.getAccess_token(); +// PopClient client = new PopHttpClient(clientId, clientSecret); // -// if (!StringUtils.isEmpty(startDate)) { -// // 选择了开始日期,从开始时间直接循环更新到结束时间,如果选择的时间大于数据库订单最后的时间,那么就用数据库的订单时间 -// Long startTimeTmp = DateUtil.dateTimeToStamp(startDate).longValue(); -// if (startTimeTmp < startTime) -// startTime = startTimeTmp; -// -// // 如果选择的结束时间不为空,就用选择的时间 -// if (!StringUtils.isEmpty(endDate)) -// endTime = DateUtil.dateTimeToStamp(endDate).longValue(); -// } -// -// /* -// * if (StringUtils.isEmpty(startDate)) { //没有选择开始日期 var pullOrderLog = -// * salesOrderService.getErpOrderPullLogByShopId(shopId, 1); if (pullOrderLog != -// * null) { startTime = pullOrderLog.getEndTime() - 60 * 10; } else { return new -// * ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择开始拉取时间"); } } else { -// * //选择了开始日期,从开始时间直接循环更新到结束时间 startTime = -// * DateUtil.dateToStamp(startDate).longValue(); if -// * (StringUtils.isEmpty(endDate)) endTime = System.currentTimeMillis() / 1000; -// * else endTime = DateUtil.dateTimeToStamp(endDate + " 23:59:00").longValue(); } -// */ -// -// -// logger.info("开始循环更新拼多多订单。开始时间:" + DateUtil.unixTimeStampToDate(startTime) + "结束时间:" -// + DateUtil.unixTimeStampToDate(endTime)); -// int hasExistOrder = 0; -// int insertSuccess = 0; -// int totalError = 0; -// -// -// -// ApiResultVo apiResultVo = OrderApiHelper.pullOrderList(appKey, appSecret, accessToken, 1716160072, 1716242872, 1, 20); -// if (apiResultVo.getCode() != 0) return AjaxResult.error(apiResultVo.getCode(), apiResultVo.getMsg()); -// //成功 -// if (apiResultVo.getData().getOrderList() != null) { -// //循环插入订单数据到数据库 -// for (var trade : apiResultVo.getData().getOrderList()) { -// OmsPddOrder order = new OmsPddOrder(); -// BeanUtils.copyProperties(trade,order); -// List items = new ArrayList<>(); -// for (var it:trade.getItemList()) { -// OmsPddOrderItem item = new OmsPddOrderItem(); -// BeanUtils.copyProperties(it,item); -// items.add(item); -// } -// order.setItemList(items); -// //插入订单数据 -// var result = orderService.saveOrder(req.getShopId(), order); -// if (result.getCode() == ResultVoEnum.DataExist.getIndex()) { -// //已经存在 -// logger.info("/**************主动更新pdd订单:开始更新数据库:" + order.getId() + "存在、更新****************/"); -// -// hasExistOrder++; -// } else if (result.getCode() == ResultVoEnum.SUCCESS.getIndex()) { -// logger.info("/**************主动更新pdd订单:开始更新数据库:" + order.getId() + "不存在、新增****************/"); -// -// insertSuccess++; -// } else { -// logger.info("/**************主动更新pdd订单:开始更新数据库:" + order.getId() + "报错****************/"); -// totalError++; +// PddOrderStatusGetRequest request = new PddOrderStatusGetRequest(); +// request.setOrderSns(orderS); +// PddOrderStatusGetResponse response = client.syncInvoke(request, accessToken); +// // System.out.println(JsonUtil.transferToJson(response)); +// // 更新订单状态 +// if (response.getErrorResponse() != null) { +// if (response.getErrorResponse().getErrorCode().intValue() == 10019) { +// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "Token过期"); +// } else +// return new ApiResult<>(EnumResultVo.SystemException.getIndex(), +// "接口调用失败:" + response.getErrorResponse().getErrorMsg()); +// } else { +// // 获取到了数据 +// if (response.getOrderStatusGetResponse().getOrderStatusList().size() > 0) { +// for (var item : response.getOrderStatusGetResponse().getOrderStatusList()) { +// orderPddService.updPddOrderStatus(item.getOrderSn(), item.getOrderStatus(), item.getRefundStatus()); +// log.info("更新订单状态:" + JsonUtil.transferToJson(item)); // } // } -// } -// String msg = "成功,总共找到:" + apiResultVo.getData().getOrderList().size() + "条商品数据,新增:" + insertSuccess + "条,添加错误:" + totalError + "条,更新:" + hasExistOrder + "条"; -// logger.info(msg); // -// return AjaxResult.success(msg); +// log.info("更新订单状态 完成"); +// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "SUCCESS"); +// +// } +// } +// +// @RequestMapping(value = "/pull_order_status_all", method = RequestMethod.POST) +// public ApiResult updOrderStatusAll(@RequestBody DataRow reqData, HttpServletRequest req) +// throws Exception { +// log.info("开始接口更新订单状态ALL"); +// Integer shopId = reqData.getInt("shopId");// 拼多多shopId +// var shop = shopService.getShop(shopId); +// String clientId = DataConfigObject.getInstance().getPddClientId(); +// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); +// // 获取店铺信息,判断店铺是否一致 +// var shopResult = PddApiUtils.getShopInfo(clientId, clientSecret, shop.getSessionKey()); +// if (shopResult.getCode() != EnumResultVo.SUCCESS.getIndex()) +// return new ApiResult<>(shopResult.getCode(), shopResult.getMsg()); +// +// if (shopResult.getData().getMallId().longValue() != shop.getSellerUserId().longValue()) { +// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "该店铺不是授权店铺"); +// } +// +// String orderStatus = reqData.getString("orderStatus"); +// String refundStatusStr = reqData.getString("refundStatus"); +// Integer status = null; +// Integer refundStatus = null; +// if (!StringUtils.isEmpty(orderStatus)) { +// try { +// status = Integer.parseInt(orderStatus); +// } catch (Exception e) { +// } +// } +// if (!StringUtils.isEmpty(refundStatusStr)) { +// try { +// refundStatus = Integer.parseInt(refundStatusStr); +// } catch (Exception e) { +// } +// } +// +// Integer pageIndex = 1; +// Integer pageSize = 50; +// +// // 查询订单 +// var result = orderPddService.getOrderListByStatus(pageIndex, pageSize, shopId, status, refundStatus); +// log.info("查询到" + result.getTotalPage() + "页需要更新,总共" + result.getTotalSize() + "条记录"); +// +// String orderS = ""; +// for (var o : result.getList()) { +// orderS += o.getOrderSn() + ","; +// } +// log.info("开始更新第1页"); +// upd(shopId, orderS); +// +// while (result.isHasNextPage()) { +// pageIndex++; +// log.info("开始更新第" + pageIndex + "页"); +// result = orderPddService.getOrderListByStatus(pageIndex, pageSize, shopId, status, refundStatus); +// +// String orderS1 = ""; +// for (var o : result.getList()) { +// orderS1 += o.getOrderSn() + ","; +// } +// upd(shopId, orderS1); +// } +// log.info("已更新" + pageIndex + "页,总计:" + result.getTotalSize() + "条,更新完成"); +// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "SUCCESS"); +// } + +// private ApiResult upd(Integer shopId, String orderS) throws Exception { +// String clientId = DataConfigObject.getInstance().getPddClientId(); +// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); +// var shop = shopService.getShop(shopId); +// // var settingEntity = thirdSettingService.getEntity(shop.getType()); +// +// String accessToken = shop.getSessionKey();// settingEntity.getAccess_token(); +// PopClient client = new PopHttpClient(clientId, clientSecret); +// +// PddOrderStatusGetRequest request = new PddOrderStatusGetRequest(); +// request.setOrderSns(orderS); +// PddOrderStatusGetResponse response = client.syncInvoke(request, accessToken); +// // System.out.println(JsonUtil.transferToJson(response)); +// // 更新订单状态 +// if (response.getErrorResponse() != null) { +// if (response.getErrorResponse().getErrorCode().intValue() == 10019) { +// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "Token过期"); +// } else +// return new ApiResult<>(EnumResultVo.SystemException.getIndex(), +// "接口调用失败:" + response.getErrorResponse().getErrorMsg()); +// } else { +// // 获取到了数据 +// if (response.getOrderStatusGetResponse().getOrderStatusList().size() > 0) { +// for (var item : response.getOrderStatusGetResponse().getOrderStatusList()) { +// orderPddService.updPddOrderStatus(item.getOrderSn(), item.getOrderStatus(), item.getRefundStatus()); +// log.info("更新订单状态:" + JsonUtil.transferToJson(item)); +// } +// } +// +// log.info("更新订单状态 完成"); +// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "SUCCESS"); +// +// } +// } + +// /** +// * 重复打印 +// * +// * @param reqData +// * @return +// * @throws Exception +// */ +// @RequestMapping(value = "/pdd_order_repeat_print", method = RequestMethod.POST) +// public ApiResult pdd_order_repeat_print(@RequestBody DataRow reqData) throws Exception { +// if (StringUtils.isEmpty(reqData.get("printName"))) +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择打印机"); +// var orders = orderPddService.getPrintOrderRepeat(reqData.getString("orderNo")); +// if (orders.size() == 0) +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "订单物流打印信息不存在"); +// Integer total = 0; +// StringBuilder sb = new StringBuilder(""); +// for (var order : orders) { +// total += order.getQuantity(); +// sb.append(order.getGoodsSpecNum()); +// sb.append("(" + order.getGoodsSpec() + ")"); +// sb.append(order.getQuantity()).append("件"); +// sb.append("[" + order.getLocationNumber() + "]").append("\\n"); +// } +// var shop = shopService.getShop(orders.get(0).getShopId()); +// StringBuilder remark = new StringBuilder("【" + shop.getNickName() + "】").append("订单:").append(orders.size()) +// .append("商品:").append(total).append("件").append("\\n"); +// +// if (!StringUtils.isEmpty(orders.get(0).getEncryptedData())) { +// // templateUrl=EnumPddPrintCompany.getValueByName(orders.get(0).getTrackingCompany()); +// remark.append(sb.toString()).append("备注:").append(orders.get(0).getRemark()); +// String taskId = orders.get(0).getTrackingNumber() + "_" + OrderNumberUtils.getOrderIdByTime(); +// StringBuilder printStr = new StringBuilder( +// "{\"ERPId\":303379400,\"cmd\":\"print\",\"requestID\":\"90E06437\",\"task\":{\"documents\":[{\"contents\":[{\"addData\":{\"sender\":{\"address\":{\"city\":\"东莞市\",\"detail\":\"聚新二路42号华衣云商科技\",\"district\":\"大朗镇\",\"province\":\"广东省\"},\"mobile\":\"13018605585\",\"name\":\"杨辉\"}},"); +// printStr.append("\"encryptedData\": \"").append(orders.get(0).getEncryptedData()).append("\","); +// printStr.append("\"signature\": \"").append(orders.get(0).getSignature()).append("\","); +// printStr.append( +// "\"templateUrl\":\"http://pinduoduoimg.yangkeduo.com/print_template/2019-08-01/4f0d85f35ca5729ad7df47314c990c31.xml\",\"userid\":\"593374804\",\"ver\":\"3\"},"); +// // printStr.append("\"templateUrl\": +// // \"").append("https://commfile.pddpic.com/galerie-go/logistics/9238dbb5-1c4e-445e-bac6-45a6832b4e47.xml").append("\",\"userid\":\"593374804\",\"ver\":\"3\"},"); +// printStr.append("{\"data\":{\"height\":120,\"list\":[{\"fontSize\":29,\"height\":120,\"left\":2.08,"); +// printStr.append("\"text\": \"").append(remark.toString()).append("\","); +// printStr.append( +// "\"top\":10,\"width\":600}],\"waterdata\":{\"text\":\"\"},\"width\":560},\"templateURL\":\"http://pinduoduoimg.yangkeduo.com/logistics/2019-07-14/5d7e8b5969d954539fcfba3268bbeb3a.xml\"}],"); +// // printStr.append("\"top\":10,\"width\":413.52}],\"waterdata\":{\"text\":\"\"},\"width\":560},\"templateURL\":\"").append("https://commfile.pddpic.com/galerie-go/logistics/9238dbb5-1c4e-445e-bac6-45a6832b4e47.xml").append("\"}],"); +// printStr.append("\"documentID\": \"").append(taskId).append("\"}],"); +// printStr.append("\"notifyType\": [\"print\"],\"preview\": false,\"previewType\": \"image\","); +// printStr.append("\"printer\": \"").append(reqData.getString("printName")).append("\","); +// printStr.append("\"taskID\": \"").append(taskId).append("\"},"); +// printStr.append("\"version\": \"1.0\"}"); +// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "成功", printStr.toString()); +// } +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "没有原始打单数据"); // // } // +// @RequestMapping(value = "/pdd_order_print", method = RequestMethod.POST) +// public ApiResult pdd_order_print(@RequestBody DataRow reqData) throws Exception { +// if (StringUtils.isEmpty(reqData.get("printName"))) +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择打印机"); +// var orders = orderPddService.getPrintOrderRepeatNumber(reqData.getString("trackingNumber")); +// if (orders.size() == 0) +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "订单物流打印信息不存在"); +// Integer total = 0; +// StringBuilder sb = new StringBuilder(""); +// for (var order : orders) { +// total += order.getQuantity(); +// sb.append(order.getGoodsSpecNum()); +// sb.append("(" + order.getGoodsSpec() + ")"); +// sb.append(order.getQuantity()).append("件,"); +// sb.append("[" + order.getLocationNumber() + "]").append("\\n"); +// } +// var shop = shopService.getShop(orders.get(0).getShopId()); +// StringBuilder remark = new StringBuilder("【" + shop.getNickName() + "】").append("订单:").append(orders.size()) +// .append("商品:").append(total).append("件").append("\\n"); // +// if (!StringUtils.isEmpty(orders.get(0).getEncryptedData())) { +// // String +// // templateUrl=EnumPddPrintCompany.getValueByName(orders.get(0).getTrackingCompany()); +// remark.append(sb.toString()).append("备注:").append(orders.get(0).getRemark()); +// String taskId = orders.get(0).getTrackingNumber() + "_" + OrderNumberUtils.getOrderIdByTime(); +// StringBuilder printStr = new StringBuilder( +// "{\"ERPId\":303379400,\"cmd\":\"print\",\"requestID\":\"90E06437\",\"task\":{\"documents\":[{\"contents\":[{\"addData\":{\"sender\":{\"address\":{\"city\":\"东莞市\",\"detail\":\"聚新二路42号华衣云商科技\",\"district\":\"大朗镇\",\"province\":\"广东省\"},\"mobile\":\"13018605585\",\"name\":\"杨辉\"}},"); +// printStr.append("\"encryptedData\": \"").append(orders.get(0).getEncryptedData()).append("\","); +// printStr.append("\"signature\": \"").append(orders.get(0).getSignature()).append("\","); +// printStr.append( +// "\"templateUrl\":\"http://pinduoduoimg.yangkeduo.com/print_template/2019-08-01/4f0d85f35ca5729ad7df47314c990c31.xml\",\"userid\":\"593374804\",\"ver\":\"3\"},"); +// // printStr.append("\"templateUrl\": +// // \"").append("http://pinduoduoimg.yangkeduo.com/print_template/2019-08-01/4f0d85f35ca5729ad7df47314c990c31.xml").append("\",\"userid\":\"593374804\",\"ver\":\"3\"},"); +// printStr.append("{\"data\":{\"height\":120,\"list\":[{\"fontSize\":29,\"height\":120,\"left\":2.08,"); +// printStr.append("\"text\": \"").append(remark.toString()).append("\","); +// printStr.append( +// "\"top\":10,\"width\":600}],\"waterdata\":{\"text\":\"\"},\"width\":560},\"templateURL\":\"http://pinduoduoimg.yangkeduo.com/logistics/2019-07-14/5d7e8b5969d954539fcfba3268bbeb3a.xml\"}],"); +// // printStr.append("\"top\":10,\"width\":413.52}],\"waterdata\":{\"text\":\"\"},\"width\":560},\"templateURL\":\"").append("http://pinduoduoimg.yangkeduo.com/print_template/2019-08-01/4f0d85f35ca5729ad7df47314c990c31.xml").append("\"}],"); +// printStr.append("\"documentID\": \"").append(taskId).append("\"}],"); +// printStr.append("\"notifyType\": [\"print\"],\"preview\": false,\"previewType\": \"image\","); +// printStr.append("\"printer\": \"").append(reqData.getString("printName")).append("\","); +// printStr.append("\"taskID\": \"").append(taskId).append("\"},"); +// printStr.append("\"version\": \"1.0\"}"); +// for (var order : orders) { +// orderPddService.updPddOrderResult(order.getOrderId(), "打印成功", 1, DateUtil.getCurrentDateTime()); +// } +// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "成功", printStr.toString()); +// } +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "没有原始打单数据"); // +// } // -//// /** -//// * 更新订单状态(根据订单号) -//// * -//// * @param reqData -//// * @param req -//// * @return -//// * @throws Exception -//// */ -//// @RequestMapping(value = "/pull_order_status", method = RequestMethod.POST) -//// public ApiResult updOrderStatus(@RequestBody DataRow reqData, HttpServletRequest req) -//// throws Exception { -//// // String startDate = reqData.getString("startTime"); -//// // String endDate = reqData.getString("endTime"); -//// log.info("开始接口更新订单状态"); -//// Integer shopId = reqData.getInt("shopId");// 拼多多shopId -//// String orderS = reqData.getString("orderS");// -//// -//// ApiResult result = null;// 返回结果 -//// -//// String clientId = DataConfigObject.getInstance().getPddClientId(); -//// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); -//// var shop = shopService.getShop(shopId); -//// // var settingEntity = thirdSettingService.getEntity(shop.getType()); -//// -//// String accessToken = shop.getSessionKey();// settingEntity.getAccess_token(); -//// PopClient client = new PopHttpClient(clientId, clientSecret); -//// -//// PddOrderStatusGetRequest request = new PddOrderStatusGetRequest(); -//// request.setOrderSns(orderS); -//// PddOrderStatusGetResponse response = client.syncInvoke(request, accessToken); -//// // System.out.println(JsonUtil.transferToJson(response)); -//// // 更新订单状态 -//// if (response.getErrorResponse() != null) { -//// if (response.getErrorResponse().getErrorCode().intValue() == 10019) { -//// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "Token过期"); -//// } else -//// return new ApiResult<>(EnumResultVo.SystemException.getIndex(), -//// "接口调用失败:" + response.getErrorResponse().getErrorMsg()); -//// } else { -//// // 获取到了数据 -//// if (response.getOrderStatusGetResponse().getOrderStatusList().size() > 0) { -//// for (var item : response.getOrderStatusGetResponse().getOrderStatusList()) { -//// orderPddService.updPddOrderStatus(item.getOrderSn(), item.getOrderStatus(), item.getRefundStatus()); -//// log.info("更新订单状态:" + JsonUtil.transferToJson(item)); -//// } -//// } -//// -//// log.info("更新订单状态 完成"); -//// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "SUCCESS"); -//// -//// } -//// } -//// -//// @RequestMapping(value = "/pull_order_status_all", method = RequestMethod.POST) -//// public ApiResult updOrderStatusAll(@RequestBody DataRow reqData, HttpServletRequest req) -//// throws Exception { -//// log.info("开始接口更新订单状态ALL"); -//// Integer shopId = reqData.getInt("shopId");// 拼多多shopId -//// var shop = shopService.getShop(shopId); -//// String clientId = DataConfigObject.getInstance().getPddClientId(); -//// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); -//// // 获取店铺信息,判断店铺是否一致 -//// var shopResult = PddApiUtils.getShopInfo(clientId, clientSecret, shop.getSessionKey()); -//// if (shopResult.getCode() != EnumResultVo.SUCCESS.getIndex()) -//// return new ApiResult<>(shopResult.getCode(), shopResult.getMsg()); -//// -//// if (shopResult.getData().getMallId().longValue() != shop.getSellerUserId().longValue()) { -//// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "该店铺不是授权店铺"); -//// } -//// -//// String orderStatus = reqData.getString("orderStatus"); -//// String refundStatusStr = reqData.getString("refundStatus"); -//// Integer status = null; -//// Integer refundStatus = null; -//// if (!StringUtils.isEmpty(orderStatus)) { -//// try { -//// status = Integer.parseInt(orderStatus); -//// } catch (Exception e) { -//// } -//// } -//// if (!StringUtils.isEmpty(refundStatusStr)) { -//// try { -//// refundStatus = Integer.parseInt(refundStatusStr); -//// } catch (Exception e) { -//// } -//// } -//// -//// Integer pageIndex = 1; -//// Integer pageSize = 50; -//// -//// // 查询订单 -//// var result = orderPddService.getOrderListByStatus(pageIndex, pageSize, shopId, status, refundStatus); -//// log.info("查询到" + result.getTotalPage() + "页需要更新,总共" + result.getTotalSize() + "条记录"); -//// -//// String orderS = ""; -//// for (var o : result.getList()) { -//// orderS += o.getOrderSn() + ","; -//// } -//// log.info("开始更新第1页"); -//// upd(shopId, orderS); -//// -//// while (result.isHasNextPage()) { -//// pageIndex++; -//// log.info("开始更新第" + pageIndex + "页"); -//// result = orderPddService.getOrderListByStatus(pageIndex, pageSize, shopId, status, refundStatus); -//// -//// String orderS1 = ""; -//// for (var o : result.getList()) { -//// orderS1 += o.getOrderSn() + ","; -//// } -//// upd(shopId, orderS1); -//// } -//// log.info("已更新" + pageIndex + "页,总计:" + result.getTotalSize() + "条,更新完成"); -//// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "SUCCESS"); -//// } +// @RequestMapping(value = "/pdd_order_print_code", method = RequestMethod.POST) +// public ApiResult testPddPrint(@RequestBody DataRow reqData) throws Exception { +// if (StringUtils.isEmpty(reqData.get("company"))) +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择快递公司"); // -//// private ApiResult upd(Integer shopId, String orderS) throws Exception { -//// String clientId = DataConfigObject.getInstance().getPddClientId(); -//// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); -//// var shop = shopService.getShop(shopId); -//// // var settingEntity = thirdSettingService.getEntity(shop.getType()); -//// -//// String accessToken = shop.getSessionKey();// settingEntity.getAccess_token(); -//// PopClient client = new PopHttpClient(clientId, clientSecret); -//// -//// PddOrderStatusGetRequest request = new PddOrderStatusGetRequest(); -//// request.setOrderSns(orderS); -//// PddOrderStatusGetResponse response = client.syncInvoke(request, accessToken); -//// // System.out.println(JsonUtil.transferToJson(response)); -//// // 更新订单状态 -//// if (response.getErrorResponse() != null) { -//// if (response.getErrorResponse().getErrorCode().intValue() == 10019) { -//// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "Token过期"); -//// } else -//// return new ApiResult<>(EnumResultVo.SystemException.getIndex(), -//// "接口调用失败:" + response.getErrorResponse().getErrorMsg()); -//// } else { -//// // 获取到了数据 -//// if (response.getOrderStatusGetResponse().getOrderStatusList().size() > 0) { -//// for (var item : response.getOrderStatusGetResponse().getOrderStatusList()) { -//// orderPddService.updPddOrderStatus(item.getOrderSn(), item.getOrderStatus(), item.getRefundStatus()); -//// log.info("更新订单状态:" + JsonUtil.transferToJson(item)); -//// } -//// } -//// -//// log.info("更新订单状态 完成"); -//// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "SUCCESS"); -//// -//// } -//// } +// String clientId = DataConfigObject.getInstance().getPddClientId(); +// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); // -//// /** -//// * 重复打印 -//// * -//// * @param reqData -//// * @return -//// * @throws Exception -//// */ -//// @RequestMapping(value = "/pdd_order_repeat_print", method = RequestMethod.POST) -//// public ApiResult pdd_order_repeat_print(@RequestBody DataRow reqData) throws Exception { -//// if (StringUtils.isEmpty(reqData.get("printName"))) -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择打印机"); -//// var orders = orderPddService.getPrintOrderRepeat(reqData.getString("orderNo")); -//// if (orders.size() == 0) -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "订单物流打印信息不存在"); -//// Integer total = 0; -//// StringBuilder sb = new StringBuilder(""); -//// for (var order : orders) { -//// total += order.getQuantity(); -//// sb.append(order.getGoodsSpecNum()); -//// sb.append("(" + order.getGoodsSpec() + ")"); -//// sb.append(order.getQuantity()).append("件"); -//// sb.append("[" + order.getLocationNumber() + "]").append("\\n"); -//// } -//// var shop = shopService.getShop(orders.get(0).getShopId()); -//// StringBuilder remark = new StringBuilder("【" + shop.getNickName() + "】").append("订单:").append(orders.size()) -//// .append("商品:").append(total).append("件").append("\\n"); -//// -//// if (!StringUtils.isEmpty(orders.get(0).getEncryptedData())) { -//// // templateUrl=EnumPddPrintCompany.getValueByName(orders.get(0).getTrackingCompany()); -//// remark.append(sb.toString()).append("备注:").append(orders.get(0).getRemark()); -//// String taskId = orders.get(0).getTrackingNumber() + "_" + OrderNumberUtils.getOrderIdByTime(); -//// StringBuilder printStr = new StringBuilder( -//// "{\"ERPId\":303379400,\"cmd\":\"print\",\"requestID\":\"90E06437\",\"task\":{\"documents\":[{\"contents\":[{\"addData\":{\"sender\":{\"address\":{\"city\":\"东莞市\",\"detail\":\"聚新二路42号华衣云商科技\",\"district\":\"大朗镇\",\"province\":\"广东省\"},\"mobile\":\"13018605585\",\"name\":\"杨辉\"}},"); -//// printStr.append("\"encryptedData\": \"").append(orders.get(0).getEncryptedData()).append("\","); -//// printStr.append("\"signature\": \"").append(orders.get(0).getSignature()).append("\","); -//// printStr.append( -//// "\"templateUrl\":\"http://pinduoduoimg.yangkeduo.com/print_template/2019-08-01/4f0d85f35ca5729ad7df47314c990c31.xml\",\"userid\":\"593374804\",\"ver\":\"3\"},"); -//// // printStr.append("\"templateUrl\": -//// // \"").append("https://commfile.pddpic.com/galerie-go/logistics/9238dbb5-1c4e-445e-bac6-45a6832b4e47.xml").append("\",\"userid\":\"593374804\",\"ver\":\"3\"},"); -//// printStr.append("{\"data\":{\"height\":120,\"list\":[{\"fontSize\":29,\"height\":120,\"left\":2.08,"); -//// printStr.append("\"text\": \"").append(remark.toString()).append("\","); -//// printStr.append( -//// "\"top\":10,\"width\":600}],\"waterdata\":{\"text\":\"\"},\"width\":560},\"templateURL\":\"http://pinduoduoimg.yangkeduo.com/logistics/2019-07-14/5d7e8b5969d954539fcfba3268bbeb3a.xml\"}],"); -//// // printStr.append("\"top\":10,\"width\":413.52}],\"waterdata\":{\"text\":\"\"},\"width\":560},\"templateURL\":\"").append("https://commfile.pddpic.com/galerie-go/logistics/9238dbb5-1c4e-445e-bac6-45a6832b4e47.xml").append("\"}],"); -//// printStr.append("\"documentID\": \"").append(taskId).append("\"}],"); -//// printStr.append("\"notifyType\": [\"print\"],\"preview\": false,\"previewType\": \"image\","); -//// printStr.append("\"printer\": \"").append(reqData.getString("printName")).append("\","); -//// printStr.append("\"taskID\": \"").append(taskId).append("\"},"); -//// printStr.append("\"version\": \"1.0\"}"); -//// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "成功", printStr.toString()); -//// } -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "没有原始打单数据"); -//// -//// } -//// -//// @RequestMapping(value = "/pdd_order_print", method = RequestMethod.POST) -//// public ApiResult pdd_order_print(@RequestBody DataRow reqData) throws Exception { -//// if (StringUtils.isEmpty(reqData.get("printName"))) -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择打印机"); -//// var orders = orderPddService.getPrintOrderRepeatNumber(reqData.getString("trackingNumber")); -//// if (orders.size() == 0) -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "订单物流打印信息不存在"); -//// Integer total = 0; -//// StringBuilder sb = new StringBuilder(""); -//// for (var order : orders) { -//// total += order.getQuantity(); -//// sb.append(order.getGoodsSpecNum()); -//// sb.append("(" + order.getGoodsSpec() + ")"); -//// sb.append(order.getQuantity()).append("件,"); -//// sb.append("[" + order.getLocationNumber() + "]").append("\\n"); -//// } -//// var shop = shopService.getShop(orders.get(0).getShopId()); -//// StringBuilder remark = new StringBuilder("【" + shop.getNickName() + "】").append("订单:").append(orders.size()) -//// .append("商品:").append(total).append("件").append("\\n"); -//// -//// if (!StringUtils.isEmpty(orders.get(0).getEncryptedData())) { -//// // String -//// // templateUrl=EnumPddPrintCompany.getValueByName(orders.get(0).getTrackingCompany()); -//// remark.append(sb.toString()).append("备注:").append(orders.get(0).getRemark()); -//// String taskId = orders.get(0).getTrackingNumber() + "_" + OrderNumberUtils.getOrderIdByTime(); -//// StringBuilder printStr = new StringBuilder( -//// "{\"ERPId\":303379400,\"cmd\":\"print\",\"requestID\":\"90E06437\",\"task\":{\"documents\":[{\"contents\":[{\"addData\":{\"sender\":{\"address\":{\"city\":\"东莞市\",\"detail\":\"聚新二路42号华衣云商科技\",\"district\":\"大朗镇\",\"province\":\"广东省\"},\"mobile\":\"13018605585\",\"name\":\"杨辉\"}},"); -//// printStr.append("\"encryptedData\": \"").append(orders.get(0).getEncryptedData()).append("\","); -//// printStr.append("\"signature\": \"").append(orders.get(0).getSignature()).append("\","); -//// printStr.append( -//// "\"templateUrl\":\"http://pinduoduoimg.yangkeduo.com/print_template/2019-08-01/4f0d85f35ca5729ad7df47314c990c31.xml\",\"userid\":\"593374804\",\"ver\":\"3\"},"); -//// // printStr.append("\"templateUrl\": -//// // \"").append("http://pinduoduoimg.yangkeduo.com/print_template/2019-08-01/4f0d85f35ca5729ad7df47314c990c31.xml").append("\",\"userid\":\"593374804\",\"ver\":\"3\"},"); -//// printStr.append("{\"data\":{\"height\":120,\"list\":[{\"fontSize\":29,\"height\":120,\"left\":2.08,"); -//// printStr.append("\"text\": \"").append(remark.toString()).append("\","); -//// printStr.append( -//// "\"top\":10,\"width\":600}],\"waterdata\":{\"text\":\"\"},\"width\":560},\"templateURL\":\"http://pinduoduoimg.yangkeduo.com/logistics/2019-07-14/5d7e8b5969d954539fcfba3268bbeb3a.xml\"}],"); -//// // printStr.append("\"top\":10,\"width\":413.52}],\"waterdata\":{\"text\":\"\"},\"width\":560},\"templateURL\":\"").append("http://pinduoduoimg.yangkeduo.com/print_template/2019-08-01/4f0d85f35ca5729ad7df47314c990c31.xml").append("\"}],"); -//// printStr.append("\"documentID\": \"").append(taskId).append("\"}],"); -//// printStr.append("\"notifyType\": [\"print\"],\"preview\": false,\"previewType\": \"image\","); -//// printStr.append("\"printer\": \"").append(reqData.getString("printName")).append("\","); -//// printStr.append("\"taskID\": \"").append(taskId).append("\"},"); -//// printStr.append("\"version\": \"1.0\"}"); -//// for (var order : orders) { -//// orderPddService.updPddOrderResult(order.getOrderId(), "打印成功", 1, DateUtil.getCurrentDateTime()); -//// } -//// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "成功", printStr.toString()); -//// } -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "没有原始打单数据"); -//// -//// } -//// -//// @RequestMapping(value = "/pdd_order_print_code", method = RequestMethod.POST) -//// public ApiResult testPddPrint(@RequestBody DataRow reqData) throws Exception { -//// if (StringUtils.isEmpty(reqData.get("company"))) -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择快递公司"); -//// -//// String clientId = DataConfigObject.getInstance().getPddClientId(); -//// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); -//// -//// PopClient client = new PopHttpClient(clientId, clientSecret); -//// // 使用东方概念旗舰店授权打单,所有要用东方概念旗舰店accessToken获取电子面单 -//// /* -//// * var dfgnShop = shopService.getShop(5); //检查获取单号的token是否过期 String accessToken5 -//// * = dfgnShop.getSessionKey(); PddOrderStatusGetRequest request5 = new -//// * PddOrderStatusGetRequest(); request5.setOrderSns(""); -//// * PddOrderStatusGetResponse response5 = client.syncInvoke(request5, -//// * accessToken5); -//// * -//// * if (response5.getErrorResponse() != null && -//// * response5.getErrorResponse().getErrorCode() ==10019) { return new -//// * ApiResult<>(EnumResultVo.TokenFail.getIndex(),"东方符号店铺token过期","5"); } -//// * -//// * var checkTokenResult = -//// * PddApiUtils.getShopInfo(clientId,clientSecret,accessToken5); -//// * if(checkTokenResult.getData().getMallId().longValue() != 593374804L){ return -//// * new ApiResult<>(EnumResultVo.TokenFail.getIndex(),"东方符号店铺token过期","5"); } -//// */ -//// Integer shopId = reqData.getInt("shopId"); -//// var shop = shopService.getShop(shopId); -//// synchronized (this) { -//// var orders = (ArrayList) reqData.getObject("orders"); -//// for (var orderSn : orders) { -//// // 查询需要打印的订单 -//// var printOrderRes = orderPddService.getPrintOrderList(String.valueOf(orderSn), -//// reqData.getInt("isHebing"), reqData.getString("goodsNum")); -//// if (printOrderRes.getCode() > 0) { -//// log.info("订单不符号打印条件:" + printOrderRes.getMsg()); -//// continue; -//// } -//// var orderList = printOrderRes.getData().getOrders(); -//// System.out.println("订单数:" + orderList.size()); -//// String accessToken = shop.getSessionKey();// settingEntity.getAccess_token(); -//// PddOrderStatusGetRequest request = new PddOrderStatusGetRequest(); -//// -//// StringBuilder orderSns = new StringBuilder(); -//// for (var order : orderList) { -//// orderSns.append(order.getOrderSn()).append(","); -//// } -//// request.setOrderSns(orderSns.toString()); -//// -//// PddOrderStatusGetResponse response = client.syncInvoke(request, accessToken); -//// -//// // 检查订单状态是否存在退款 -//// if (response.getErrorResponse() != null) { -//// if (response.getErrorResponse().getErrorCode() == 10019) { -//// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "token过期", shopId.toString()); -//// } else { -//// log.error("拼多多订单打印接口请求错误:" + orderSns.toString() + response.getErrorResponse().getErrorMsg()); -//// continue; -//// } -//// } -//// -//// for (var o : response.getOrderStatusGetResponse().getOrderStatusList()) { -//// if (o.getOrderStatus().intValue() != 1 || o.getRefundStatus().intValue() != 1) { -//// orderPddService.updPddOrderStatus(o.getOrderSn(), o.getOrderStatus(), o.getRefundStatus()); -//// continue; -//// } -//// } -//// -//// String encryptedData = ""; -//// String signature = ""; -//// String billCode = ""; -//// var printRes = getPddPrint(orderList, reqData.getString("company")); -//// if (!StringUtils.isEmpty(printRes.getJSONObject("error"))) { -//// orderList.forEach(o -> orderPddService.updPddOrderResult(o.getOrderId(), -//// printRes.getJSONObject("error").getString("sub_msg"), 0, null)); -//// continue; -//// } -//// if (!StringUtils.isEmpty(printRes.getString("waybill_code"))) { -//// encryptedData = printRes.getString("encryptedData"); -//// signature = printRes.getString("signature"); -//// billCode = printRes.getString("waybill_code"); -//// // 3.更新库存确认到仓库 -//// for (var o : orderList) { -//// String company = EnumPddPrintCompany.getName(reqData.getString("company")); -//// var result = orderPddService.updPddOrderPrint(o, company, billCode, encryptedData, signature); -//// log.info("拼多多订单:" + o.getOrderSn() + "物流:" + billCode + "结果:" + result.getMsg()); -//// } -//// } -//// } -//// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "订单取号完成"); -//// } -//// -//// } -//// -//// public JSONObject getPddPrint(List orders, String company) throws Exception { -//// String clientId = DataConfigObject.getInstance().getPddClientId(); -//// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); -//// -//// PopClient client = new PopHttpClient(clientId, clientSecret); -//// var order = orders.get(0); -//// var dfgnShop = shopService.getShop(order.getShopId());// 固定使用东方概念旗舰店accessToken -//// String accessToken = dfgnShop.getSessionKey();// thirdSettingService.getEntity(5).getAccess_token(); -//// -//// PddWaybillGetRequest request = new PddWaybillGetRequest(); -//// -//// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequest paramWaybillCloudPrintApplyNewRequest = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequest(); -//// paramWaybillCloudPrintApplyNewRequest.setNeedEncrypt(false); -//// -//// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestSender sender = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestSender(); -//// -//// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestSenderAddress address = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestSenderAddress(); -//// -//// address.setProvince("广东省"); -//// address.setCity("东莞市"); -//// address.setDistrict("大朗镇"); -//// // 百货店地址 -//// if(order.getShopId()==18){ -//// address.setDetail(company.equals("JTSD") ? "聚新2路42号" : "聚新二路42号华衣云商科技"); -//// } -//// // 东方店地址 -//// if(order.getShopId()==5){ -//// address.setDetail("聚新二路42号华衣云商科技"); -//// } -//// -//// sender.setAddress(address); -//// sender.setMobile("15920623872"); -//// sender.setName("胡生"); -//// sender.setPhone("15920623872"); -//// -//// paramWaybillCloudPrintApplyNewRequest.setSender(sender); -//// List tradeOrderInfoDtos = new ArrayList<>(); -//// -//// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItem item = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItem(); -//// // item.setLogisticsServices("{ "SVC-COD": { "value": "200" } }"); -//// item.setObjectId("str"); -//// -//// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemOrderInfo orderInfo = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemOrderInfo(); -//// orderInfo.setOrderChannelsType("PDD"); -//// List tradeOrderList = new ArrayList(); -//// orders.forEach(i -> tradeOrderList.add(i.getOrderSn())); -//// // tradeOrderList.add(order.getOrderSn()); -//// orderInfo.setTradeOrderList(tradeOrderList); -//// item.setOrderInfo(orderInfo); -//// -//// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemPackageInfo packageInfo = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemPackageInfo(); -//// packageInfo.setGoodsDescription("str"); -//// packageInfo.setId("str"); -//// List items = new ArrayList<>(); -//// -//// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemPackageInfoItemsItem item1 = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemPackageInfoItemsItem(); -//// item1.setCount(1); -//// item1.setName("衣服"); -//// items.add(item1); -//// packageInfo.setItems(items); -//// packageInfo.setPackagingDescription(""); -//// packageInfo.setTotalPackagesCount(0); -//// packageInfo.setVolume(0L); -//// packageInfo.setWeight(0L); -//// item.setPackageInfo(packageInfo); -//// -//// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemRecipient recipient = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemRecipient(); -//// -//// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemRecipientAddress address1 = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemRecipientAddress(); -//// address1.setCountry("中国"); -//// address1.setProvince(order.getProvince()); -//// address1.setCity(order.getCity()); -//// address1.setDistrict(order.getTown()); -//// address1.setDetail(order.getAddress()); -//// // address.setTown(); -//// recipient.setAddress(address1); -//// recipient.setMobile(order.getReceiverPhone()); -//// recipient.setName(order.getReceiverName()); -//// recipient.setPhone(order.getReceiverPhone()); -//// item.setRecipient(recipient); -//// item.setTemplateUrl(EnumPddPrintCompany.getValue(company)); -//// item.setUserId(0L); -//// tradeOrderInfoDtos.add(item); -//// paramWaybillCloudPrintApplyNewRequest.setTradeOrderInfoDtos(tradeOrderInfoDtos); -//// paramWaybillCloudPrintApplyNewRequest.setWpCode(company); -//// request.setParamWaybillCloudPrintApplyNewRequest(paramWaybillCloudPrintApplyNewRequest); -//// try { -//// JSONObject resObj = new JSONObject(); -//// -//// // log.info(JsonUtil.transferToJson(request)); -//// -//// PddWaybillGetResponse response = client.syncInvoke(request, accessToken); -//// String jsonStr = JsonUtil.transferToJson(response); -//// var res = JSONObject.parseObject(jsonStr); -//// if (!StringUtils.isEmpty(res.getJSONObject("error_response"))) { -//// resObj.put("error", res.getJSONObject("error_response")); -//// return resObj; -//// } -//// // log.info("获取面单密文结果:"+res); -//// var resObjs = res.getJSONObject("pdd_waybill_get_response").getJSONArray("modules"); -//// for (int i = 0; i < resObjs.size(); i++) { -//// resObj = JSONObject.parseObject(resObjs.getJSONObject(i).getString("print_data")); -//// resObj.put("waybill_code", resObjs.getJSONObject(i).getString("waybill_code")); -//// } -//// // String -//// // resJsonStr="{\"pdd_waybill_get_response\":{\"modules\":[{\"object_id\":\"str\",\"print_data\":\"{\\\"encryptedData\\\":\\\"a67d4819d0cd21554e9437e0bc2caa629864b0effd1aec65833023f78e93733ca9eec3468dc487b24682b9d64f176ca6bb3f602c2b383571c725bae8ff84957579b574f231f3f4bff51447906ce0566b74210e61bb9379a1ad3647cd9c5648fc1e2a627dde855be135aeadb4dffd020554bf84a05f39d50f49bf8875895fc79ec23933bbf375987929f129b6bd30521b8259c104e564a45b5d2c4d3ccd45aa9dae43e27c34c91c6be269d3028ff1f579a866bed94696a9d697851edb30ee8411975486bc993fee8c4cad2525e0e33638978c8fcb8dea75a1d05d2b586ff0174bc18a3a0680e0ae48d73444fc440fb55f7b2a0485f4d2d7396601ba9ea295d895023b4d2299cb87cca5be2a147bc62f078e716dcce4f563215d8098b6eefe7df465c05a88f80098f6175441f711f5ca193c60b61435c58c5d32fa6a39b9b8a3699c4411dca8921be94ba5fd5de113a76c34eb0bad6fcbbfcfe4eacd400a1ff63e51d603c8aaada8969165607d149c0e6bcf724924fcacc9248818a219719e2c46199ced5ada6f6b42a2c3555fddcfe2fb5309cae5dca4a0c5d389ecee8bcf66062ff3aa7c09ee6aa9ebfa86139a7a4adce21cceb4729e0a448f762f6d5b379790093943651240f93932eb106d25341df44bb4dfb2e9b5ed3c827a6c063585cf2fbd9b5886886efea7ac89fb734130da262a22b282c8a8bbddc2d79fcd35814e3fa24c3538dac9bbdb096054263f7f2541191c0b1aa5207f8be1ae1292aea443d3fabf1fb837b58758738eebe494941af774ace3ac436420fc4c15b41b97c5553c1483ecfb87c3691e80f0d30e75d4339bc7e5d9de6ccf3e65d1008ba61d6803b0e8b874ab353ccb368536cc35b4ddde1f43d509ee8146ffd6b7a4841299dba4512af7b533a44fcabce1224c91ca9785659abf2f5f4f8dd2ccc6c264f7ed25587ab5b023ae2089e748bdf34eca6948198d366e879863b41cfe558bd0ce9f6c5361c1ea29d905e5e73b42f945e573cd9b519f17629fa8134a8dd4cdfd48aac911ea2140ece7269d71e8230ab6fff4ab9f08771f849cf3eb3a34f41743fd7b4f3e5532c6fc98a38cd63f7a48750d056fd25fad54f31ce2e8c3f4a679baf83f18202280c8069fe3c5c942cc5d95412b9ca707c62c0ba3c19f88bd4c518a6bdfda6670cf84a7ab6b23d4a8bb996fc9c6d8dc65318a82e5e637eb2aa2a91e3a146f01fecb2d02f6e768c90f72296d56563e9cf1e7d6d377ffcd7817c00d9db2e5abc93e515b23218e92df1f23e774580caee71824adfcc4a7d3c36f9113954f03eb84b7acecee2eb77d38935af1ec1ff0f7a5c965616166a5d9f427b5f5d497f83dfe67acb745f1e887e9c2af61f79fa802293e18a7d6a1f4666ff4913249f708623d5b619e7824c199474395b26cc26613b74d00a653ec4d3bcb580629a1716610a5341242ffbc10b176cddd186aa336f9cbe3fbaa2e9904c52c9e92da89f36539aba33e8883dd4b2b0792b8c93ec80508fb476d96fa689c3171135a3c03ee17c5e7f20387b2948bc4b9c371c1bbe57f4efa3b75054d77e191bcb8339c61c7d4efac045455da183eed3e331ec26fcc60e768f5\\\",\\\"signature\\\":\\\"g/C/uwNK5sTXC07e9z4KGoykKqoEuAL/txQtIGKCM6UMBkY1WmTpM43T8ylaoq0nsa3pEQBoWuu1QreS7kUAXU8egugpr8PMGnVg5plrDkAa/zaOAV+8q8xv3dR/7vU/VBmCWcR3z3dmlRBXNomyW6KNmXTeH1vh3tQPtPllho4=\\\",\\\"templateUrl\\\":\\\"https://file-link.pinduoduo.com/jtsd_one\\\",\\\"ver\\\":\\\"3\\\"}\",\"waybill_code\":\"JT5049988959708\"}]}}"; -//// /* -//// * var resObjs= -//// * JSONObject.parseObject(resJsonStr).getJSONObject("pdd_waybill_get_response"). -//// * getJSONArray("modules"); for(int i=0;i pdd_order_print_select_hebing(@RequestBody DataRow reqData) throws Exception { -//// if (StringUtils.isEmpty(reqData.get("company"))) -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择快递公司"); -//// var orders = (ArrayList) reqData.getObject("orders"); -//// if (orders.isEmpty()) -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择需要发货的订单"); -//// -//// String clientId = DataConfigObject.getInstance().getPddClientId(); -//// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); -//// -//// PopClient client = new PopHttpClient(clientId, clientSecret); -//// // 检查获取单号的token是否过期 -/////* var dfgnShop = shopService.getShop(5); -//// String accessToken5 = dfgnShop.getSessionKey(); -//// PddOrderStatusGetRequest request5 = new PddOrderStatusGetRequest(); -//// request5.setOrderSns(""); -//// PddOrderStatusGetResponse response5 = client.syncInvoke(request5, accessToken5); -//// -//// if (response5.getErrorResponse() != null && response5.getErrorResponse().getErrorCode() == 10019) { -//// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "东方符号店铺token过期", "5"); -//// } -//// -//// var checkTokenResult = PddApiUtils.getShopInfo(clientId, clientSecret, accessToken5); -//// if (checkTokenResult.getData().getMallId().longValue() != 593374804L) { -//// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "东方符号店铺token过期", "5"); -//// }*/ -//// -//// Integer shopId = reqData.getInt("shopId"); -//// var shop = shopService.getShop(shopId); -//// -//// var printOrders = orderPddService.getPrintOrderSelectList(orders); -//// -//// String accessToken = shop.getSessionKey();// settingEntity.getAccess_token(); -//// PddOrderStatusGetRequest request = new PddOrderStatusGetRequest(); -//// -//// StringBuilder orderSns = new StringBuilder(); -//// for (var order : printOrders.getData()) { -//// orderSns.append(order.getOrderSn()).append(","); -//// } -//// request.setOrderSns(orderSns.toString()); -//// -//// PddOrderStatusGetResponse response = client.syncInvoke(request, accessToken); -//// -//// // 检查订单状态是否存在退款 -//// if (response.getErrorResponse() != null) { -//// if (response.getErrorResponse().getErrorCode() == 10019) { -//// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "token过期", shopId.toString()); -//// } else { -//// return new ApiResult<>(EnumResultVo.Fail.getIndex(), -//// "拼多多接口请求错误" + response.getErrorResponse().getErrorMsg()); -//// } -//// } -//// -//// for (var o : response.getOrderStatusGetResponse().getOrderStatusList()) { -//// if (o.getOrderStatus().intValue() != 1 || o.getRefundStatus().intValue() != 1) { -//// orderPddService.updPddOrderStatus(o.getOrderSn(), o.getOrderStatus(), o.getRefundStatus()); -//// return new ApiResult<>(EnumResultVo.SystemException.getIndex(), orderSns.toString() + "订单状态已发货或已申请退款"); -//// } -//// } -//// -//// var checkRes = orderPddService.checkPrint(printOrders.getData()); -//// -//// if (checkRes.getCode() > 0) -//// return new ApiResult<>(checkRes.getCode(), checkRes.getMsg()); -//// // 取电子面单号 -//// var printRes = getPddPrint(printOrders.getData(), reqData.getString("company")); -//// if (!StringUtils.isEmpty(printRes.getJSONObject("error"))) { -//// printOrders.getData().forEach(o -> orderPddService.updPddOrderResult(o.getOrderId(), -//// printRes.getJSONObject("error").getString("sub_msg"), 0, null)); -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), -//// orderSns.toString() + printRes.getJSONObject("error").getString("sub_msg")); -//// } -//// String billCode = ""; -//// String encryptedData = ""; -//// String signature = ""; -//// if (!StringUtils.isEmpty(printRes.getString("waybill_code"))) { -//// billCode = printRes.getString("waybill_code"); -//// encryptedData = printRes.getString("encryptedData"); -//// signature = printRes.getString("signature"); -//// // 3.更新库存确认到仓库 -//// for (var o : printOrders.getData()) { -//// var result = orderPddService.updPddOrderPrint(o, -//// EnumPddPrintCompany.getName(reqData.getString("company")), billCode, encryptedData, signature); -//// log.info("拼多多订单:" + o.getOrderSn() + "物流:" + billCode + "结果:" + result.getMsg()); -//// } -//// } -//// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "订单取号完成"); -//// } -//// -//// @RequestMapping(value = "/pdd_order_send", method = RequestMethod.POST) -//// public ApiResult pdd_order_send(@RequestBody DataRow reqData) throws Exception { -//// String clientId = DataConfigObject.getInstance().getPddClientId(); -//// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); -//// var shop = shopService.getShop(reqData.getInt("shopId")); -//// -//// PopClient client = new PopHttpClient(clientId, clientSecret); -//// -//// String accessToken = shop.getSessionKey(); -//// // 获取店铺信息,判断店铺是否一致 -//// var shopResult = PddApiUtils.getShopInfo(clientId, clientSecret, accessToken); -//// if (shopResult.getCode() != EnumResultVo.SUCCESS.getIndex()) -//// return new ApiResult<>(shopResult.getCode(), shopResult.getMsg()); -//// -//// if (shopResult.getData().getMallId().longValue() != shop.getSellerUserId().longValue()) { -//// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "该店铺不是授权店铺"); -//// } -//// -//// var orders = (ArrayList) reqData.getObject("orders"); -//// if (orders.isEmpty()) -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择需要发货的订单"); -//// for (var orderNo : orders) { -//// var order = orderPddService.getOrder((String) orderNo); -//// PddLogisticsOnlineSendRequest request = new PddLogisticsOnlineSendRequest(); -//// request.setLogisticsId(orderPddService.getPddLogisticsCompanyId(order.getTracking_company()).longValue());// 快递公司编号 -//// request.setOrderSn(order.getOrderSn());// 订单编号 -//// request.setTrackingNumber(order.getTracking_number());// 快递公司单号 -//// PddLogisticsOnlineSendResponse response = client.syncInvoke(request, accessToken); -//// if (!StringUtils.isEmpty(response.getErrorResponse())) { -//// orderPddService.updPddOrderResult(order.getId(), response.getErrorResponse().getErrorMsg(), 1, null); -//// continue; -//// } -//// if (response.getLogisticsOnlineSendResponse().getIsSuccess()) { -//// var result = orderPddService.orderSend(order); -//// log.info("PDD订单发货:" + result.getMsg()); -//// } -//// } -//// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "成功"); -//// } -//// -//// /** -//// * 回收单号 -//// * -//// * @param reqData -//// * @return -//// */ -//// @RequestMapping(value = "/pdd_cancel_print", method = RequestMethod.POST) -//// public ApiResult pdd_cancel_print(@RequestBody DataRow reqData) { -//// String clientId = DataConfigObject.getInstance().getPddClientId(); -//// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); -//// PopClient client = new PopHttpClient(clientId, clientSecret); -//// // 固定使用东方概念旗舰店accessToken -//// var dfgnShop = shopService.getShop(18); -//// String accessToken = dfgnShop.getSessionKey(); -//// var orders = orderPddService.getPrintOrderRepeat(reqData.getString("orderNo")); -//// try { -//// // 取消电子面单 -//// PddWaybillCancelRequest request = new PddWaybillCancelRequest(); -//// request.setWaybillCode(orders.get(0).getTrackingNumber()); -//// request.setWpCode(EnumPddPrintCompany.getIndexByName(orders.get(0).getTrackingCompany())); -//// PddWaybillCancelResponse response = client.syncInvoke(request, accessToken); -//// String jsonStr = JsonUtil.transferToJson(response); -//// var res = JSONObject.parseObject(jsonStr); -//// if (!StringUtils.isEmpty(res.getJSONObject("error_response"))) { -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), -//// res.getJSONObject("error_response").getString("sub_msg")); -//// } -//// if (!StringUtils.isEmpty(res.getJSONObject("pdd_waybill_cancel_response"))) { -//// if (res.getJSONObject("pdd_waybill_cancel_response").getBoolean("cancel_result")) { -//// for (var order : orders) { -//// orderPddService.cancelOrderPrint(order.getOrderId()); -//// } -//// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "成功"); -//// } else -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "取消电子面单失败"); -//// } -//// } catch (Exception e) { -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "系统异常"); -//// } -//// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "取消电子面单失败"); -//// -//// } -//// +// PopClient client = new PopHttpClient(clientId, clientSecret); +// // 使用东方概念旗舰店授权打单,所有要用东方概念旗舰店accessToken获取电子面单 +// /* +// * var dfgnShop = shopService.getShop(5); //检查获取单号的token是否过期 String accessToken5 +// * = dfgnShop.getSessionKey(); PddOrderStatusGetRequest request5 = new +// * PddOrderStatusGetRequest(); request5.setOrderSns(""); +// * PddOrderStatusGetResponse response5 = client.syncInvoke(request5, +// * accessToken5); +// * +// * if (response5.getErrorResponse() != null && +// * response5.getErrorResponse().getErrorCode() ==10019) { return new +// * ApiResult<>(EnumResultVo.TokenFail.getIndex(),"东方符号店铺token过期","5"); } +// * +// * var checkTokenResult = +// * PddApiUtils.getShopInfo(clientId,clientSecret,accessToken5); +// * if(checkTokenResult.getData().getMallId().longValue() != 593374804L){ return +// * new ApiResult<>(EnumResultVo.TokenFail.getIndex(),"东方符号店铺token过期","5"); } +// */ +// Integer shopId = reqData.getInt("shopId"); +// var shop = shopService.getShop(shopId); +// synchronized (this) { +// var orders = (ArrayList) reqData.getObject("orders"); +// for (var orderSn : orders) { +// // 查询需要打印的订单 +// var printOrderRes = orderPddService.getPrintOrderList(String.valueOf(orderSn), +// reqData.getInt("isHebing"), reqData.getString("goodsNum")); +// if (printOrderRes.getCode() > 0) { +// log.info("订单不符号打印条件:" + printOrderRes.getMsg()); +// continue; +// } +// var orderList = printOrderRes.getData().getOrders(); +// System.out.println("订单数:" + orderList.size()); +// String accessToken = shop.getSessionKey();// settingEntity.getAccess_token(); +// PddOrderStatusGetRequest request = new PddOrderStatusGetRequest(); // +// StringBuilder orderSns = new StringBuilder(); +// for (var order : orderList) { +// orderSns.append(order.getOrderSn()).append(","); +// } +// request.setOrderSns(orderSns.toString()); // -//} +// PddOrderStatusGetResponse response = client.syncInvoke(request, accessToken); +// +// // 检查订单状态是否存在退款 +// if (response.getErrorResponse() != null) { +// if (response.getErrorResponse().getErrorCode() == 10019) { +// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "token过期", shopId.toString()); +// } else { +// log.error("拼多多订单打印接口请求错误:" + orderSns.toString() + response.getErrorResponse().getErrorMsg()); +// continue; +// } +// } +// +// for (var o : response.getOrderStatusGetResponse().getOrderStatusList()) { +// if (o.getOrderStatus().intValue() != 1 || o.getRefundStatus().intValue() != 1) { +// orderPddService.updPddOrderStatus(o.getOrderSn(), o.getOrderStatus(), o.getRefundStatus()); +// continue; +// } +// } +// +// String encryptedData = ""; +// String signature = ""; +// String billCode = ""; +// var printRes = getPddPrint(orderList, reqData.getString("company")); +// if (!StringUtils.isEmpty(printRes.getJSONObject("error"))) { +// orderList.forEach(o -> orderPddService.updPddOrderResult(o.getOrderId(), +// printRes.getJSONObject("error").getString("sub_msg"), 0, null)); +// continue; +// } +// if (!StringUtils.isEmpty(printRes.getString("waybill_code"))) { +// encryptedData = printRes.getString("encryptedData"); +// signature = printRes.getString("signature"); +// billCode = printRes.getString("waybill_code"); +// // 3.更新库存确认到仓库 +// for (var o : orderList) { +// String company = EnumPddPrintCompany.getName(reqData.getString("company")); +// var result = orderPddService.updPddOrderPrint(o, company, billCode, encryptedData, signature); +// log.info("拼多多订单:" + o.getOrderSn() + "物流:" + billCode + "结果:" + result.getMsg()); +// } +// } +// } +// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "订单取号完成"); +// } +// +// } +// +// public JSONObject getPddPrint(List orders, String company) throws Exception { +// String clientId = DataConfigObject.getInstance().getPddClientId(); +// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); +// +// PopClient client = new PopHttpClient(clientId, clientSecret); +// var order = orders.get(0); +// var dfgnShop = shopService.getShop(order.getShopId());// 固定使用东方概念旗舰店accessToken +// String accessToken = dfgnShop.getSessionKey();// thirdSettingService.getEntity(5).getAccess_token(); +// +// PddWaybillGetRequest request = new PddWaybillGetRequest(); +// +// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequest paramWaybillCloudPrintApplyNewRequest = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequest(); +// paramWaybillCloudPrintApplyNewRequest.setNeedEncrypt(false); +// +// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestSender sender = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestSender(); +// +// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestSenderAddress address = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestSenderAddress(); +// +// address.setProvince("广东省"); +// address.setCity("东莞市"); +// address.setDistrict("大朗镇"); +// // 百货店地址 +// if(order.getShopId()==18){ +// address.setDetail(company.equals("JTSD") ? "聚新2路42号" : "聚新二路42号华衣云商科技"); +// } +// // 东方店地址 +// if(order.getShopId()==5){ +// address.setDetail("聚新二路42号华衣云商科技"); +// } +// +// sender.setAddress(address); +// sender.setMobile("15920623872"); +// sender.setName("胡生"); +// sender.setPhone("15920623872"); +// +// paramWaybillCloudPrintApplyNewRequest.setSender(sender); +// List tradeOrderInfoDtos = new ArrayList<>(); +// +// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItem item = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItem(); +// // item.setLogisticsServices("{ "SVC-COD": { "value": "200" } }"); +// item.setObjectId("str"); +// +// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemOrderInfo orderInfo = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemOrderInfo(); +// orderInfo.setOrderChannelsType("PDD"); +// List tradeOrderList = new ArrayList(); +// orders.forEach(i -> tradeOrderList.add(i.getOrderSn())); +// // tradeOrderList.add(order.getOrderSn()); +// orderInfo.setTradeOrderList(tradeOrderList); +// item.setOrderInfo(orderInfo); +// +// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemPackageInfo packageInfo = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemPackageInfo(); +// packageInfo.setGoodsDescription("str"); +// packageInfo.setId("str"); +// List items = new ArrayList<>(); +// +// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemPackageInfoItemsItem item1 = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemPackageInfoItemsItem(); +// item1.setCount(1); +// item1.setName("衣服"); +// items.add(item1); +// packageInfo.setItems(items); +// packageInfo.setPackagingDescription(""); +// packageInfo.setTotalPackagesCount(0); +// packageInfo.setVolume(0L); +// packageInfo.setWeight(0L); +// item.setPackageInfo(packageInfo); +// +// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemRecipient recipient = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemRecipient(); +// +// PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemRecipientAddress address1 = new PddWaybillGetRequest.ParamWaybillCloudPrintApplyNewRequestTradeOrderInfoDtosItemRecipientAddress(); +// address1.setCountry("中国"); +// address1.setProvince(order.getProvince()); +// address1.setCity(order.getCity()); +// address1.setDistrict(order.getTown()); +// address1.setDetail(order.getAddress()); +// // address.setTown(); +// recipient.setAddress(address1); +// recipient.setMobile(order.getReceiverPhone()); +// recipient.setName(order.getReceiverName()); +// recipient.setPhone(order.getReceiverPhone()); +// item.setRecipient(recipient); +// item.setTemplateUrl(EnumPddPrintCompany.getValue(company)); +// item.setUserId(0L); +// tradeOrderInfoDtos.add(item); +// paramWaybillCloudPrintApplyNewRequest.setTradeOrderInfoDtos(tradeOrderInfoDtos); +// paramWaybillCloudPrintApplyNewRequest.setWpCode(company); +// request.setParamWaybillCloudPrintApplyNewRequest(paramWaybillCloudPrintApplyNewRequest); +// try { +// JSONObject resObj = new JSONObject(); +// +// // log.info(JsonUtil.transferToJson(request)); +// +// PddWaybillGetResponse response = client.syncInvoke(request, accessToken); +// String jsonStr = JsonUtil.transferToJson(response); +// var res = JSONObject.parseObject(jsonStr); +// if (!StringUtils.isEmpty(res.getJSONObject("error_response"))) { +// resObj.put("error", res.getJSONObject("error_response")); +// return resObj; +// } +// // log.info("获取面单密文结果:"+res); +// var resObjs = res.getJSONObject("pdd_waybill_get_response").getJSONArray("modules"); +// for (int i = 0; i < resObjs.size(); i++) { +// resObj = JSONObject.parseObject(resObjs.getJSONObject(i).getString("print_data")); +// resObj.put("waybill_code", resObjs.getJSONObject(i).getString("waybill_code")); +// } +// // String +// // resJsonStr="{\"pdd_waybill_get_response\":{\"modules\":[{\"object_id\":\"str\",\"print_data\":\"{\\\"encryptedData\\\":\\\"a67d4819d0cd21554e9437e0bc2caa629864b0effd1aec65833023f78e93733ca9eec3468dc487b24682b9d64f176ca6bb3f602c2b383571c725bae8ff84957579b574f231f3f4bff51447906ce0566b74210e61bb9379a1ad3647cd9c5648fc1e2a627dde855be135aeadb4dffd020554bf84a05f39d50f49bf8875895fc79ec23933bbf375987929f129b6bd30521b8259c104e564a45b5d2c4d3ccd45aa9dae43e27c34c91c6be269d3028ff1f579a866bed94696a9d697851edb30ee8411975486bc993fee8c4cad2525e0e33638978c8fcb8dea75a1d05d2b586ff0174bc18a3a0680e0ae48d73444fc440fb55f7b2a0485f4d2d7396601ba9ea295d895023b4d2299cb87cca5be2a147bc62f078e716dcce4f563215d8098b6eefe7df465c05a88f80098f6175441f711f5ca193c60b61435c58c5d32fa6a39b9b8a3699c4411dca8921be94ba5fd5de113a76c34eb0bad6fcbbfcfe4eacd400a1ff63e51d603c8aaada8969165607d149c0e6bcf724924fcacc9248818a219719e2c46199ced5ada6f6b42a2c3555fddcfe2fb5309cae5dca4a0c5d389ecee8bcf66062ff3aa7c09ee6aa9ebfa86139a7a4adce21cceb4729e0a448f762f6d5b379790093943651240f93932eb106d25341df44bb4dfb2e9b5ed3c827a6c063585cf2fbd9b5886886efea7ac89fb734130da262a22b282c8a8bbddc2d79fcd35814e3fa24c3538dac9bbdb096054263f7f2541191c0b1aa5207f8be1ae1292aea443d3fabf1fb837b58758738eebe494941af774ace3ac436420fc4c15b41b97c5553c1483ecfb87c3691e80f0d30e75d4339bc7e5d9de6ccf3e65d1008ba61d6803b0e8b874ab353ccb368536cc35b4ddde1f43d509ee8146ffd6b7a4841299dba4512af7b533a44fcabce1224c91ca9785659abf2f5f4f8dd2ccc6c264f7ed25587ab5b023ae2089e748bdf34eca6948198d366e879863b41cfe558bd0ce9f6c5361c1ea29d905e5e73b42f945e573cd9b519f17629fa8134a8dd4cdfd48aac911ea2140ece7269d71e8230ab6fff4ab9f08771f849cf3eb3a34f41743fd7b4f3e5532c6fc98a38cd63f7a48750d056fd25fad54f31ce2e8c3f4a679baf83f18202280c8069fe3c5c942cc5d95412b9ca707c62c0ba3c19f88bd4c518a6bdfda6670cf84a7ab6b23d4a8bb996fc9c6d8dc65318a82e5e637eb2aa2a91e3a146f01fecb2d02f6e768c90f72296d56563e9cf1e7d6d377ffcd7817c00d9db2e5abc93e515b23218e92df1f23e774580caee71824adfcc4a7d3c36f9113954f03eb84b7acecee2eb77d38935af1ec1ff0f7a5c965616166a5d9f427b5f5d497f83dfe67acb745f1e887e9c2af61f79fa802293e18a7d6a1f4666ff4913249f708623d5b619e7824c199474395b26cc26613b74d00a653ec4d3bcb580629a1716610a5341242ffbc10b176cddd186aa336f9cbe3fbaa2e9904c52c9e92da89f36539aba33e8883dd4b2b0792b8c93ec80508fb476d96fa689c3171135a3c03ee17c5e7f20387b2948bc4b9c371c1bbe57f4efa3b75054d77e191bcb8339c61c7d4efac045455da183eed3e331ec26fcc60e768f5\\\",\\\"signature\\\":\\\"g/C/uwNK5sTXC07e9z4KGoykKqoEuAL/txQtIGKCM6UMBkY1WmTpM43T8ylaoq0nsa3pEQBoWuu1QreS7kUAXU8egugpr8PMGnVg5plrDkAa/zaOAV+8q8xv3dR/7vU/VBmCWcR3z3dmlRBXNomyW6KNmXTeH1vh3tQPtPllho4=\\\",\\\"templateUrl\\\":\\\"https://file-link.pinduoduo.com/jtsd_one\\\",\\\"ver\\\":\\\"3\\\"}\",\"waybill_code\":\"JT5049988959708\"}]}}"; +// /* +// * var resObjs= +// * JSONObject.parseObject(resJsonStr).getJSONObject("pdd_waybill_get_response"). +// * getJSONArray("modules"); for(int i=0;i pdd_order_print_select_hebing(@RequestBody DataRow reqData) throws Exception { +// if (StringUtils.isEmpty(reqData.get("company"))) +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择快递公司"); +// var orders = (ArrayList) reqData.getObject("orders"); +// if (orders.isEmpty()) +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择需要发货的订单"); +// +// String clientId = DataConfigObject.getInstance().getPddClientId(); +// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); +// +// PopClient client = new PopHttpClient(clientId, clientSecret); +// // 检查获取单号的token是否过期 +///* var dfgnShop = shopService.getShop(5); +// String accessToken5 = dfgnShop.getSessionKey(); +// PddOrderStatusGetRequest request5 = new PddOrderStatusGetRequest(); +// request5.setOrderSns(""); +// PddOrderStatusGetResponse response5 = client.syncInvoke(request5, accessToken5); +// +// if (response5.getErrorResponse() != null && response5.getErrorResponse().getErrorCode() == 10019) { +// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "东方符号店铺token过期", "5"); +// } +// +// var checkTokenResult = PddApiUtils.getShopInfo(clientId, clientSecret, accessToken5); +// if (checkTokenResult.getData().getMallId().longValue() != 593374804L) { +// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "东方符号店铺token过期", "5"); +// }*/ +// +// Integer shopId = reqData.getInt("shopId"); +// var shop = shopService.getShop(shopId); +// +// var printOrders = orderPddService.getPrintOrderSelectList(orders); +// +// String accessToken = shop.getSessionKey();// settingEntity.getAccess_token(); +// PddOrderStatusGetRequest request = new PddOrderStatusGetRequest(); +// +// StringBuilder orderSns = new StringBuilder(); +// for (var order : printOrders.getData()) { +// orderSns.append(order.getOrderSn()).append(","); +// } +// request.setOrderSns(orderSns.toString()); +// +// PddOrderStatusGetResponse response = client.syncInvoke(request, accessToken); +// +// // 检查订单状态是否存在退款 +// if (response.getErrorResponse() != null) { +// if (response.getErrorResponse().getErrorCode() == 10019) { +// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "token过期", shopId.toString()); +// } else { +// return new ApiResult<>(EnumResultVo.Fail.getIndex(), +// "拼多多接口请求错误" + response.getErrorResponse().getErrorMsg()); +// } +// } +// +// for (var o : response.getOrderStatusGetResponse().getOrderStatusList()) { +// if (o.getOrderStatus().intValue() != 1 || o.getRefundStatus().intValue() != 1) { +// orderPddService.updPddOrderStatus(o.getOrderSn(), o.getOrderStatus(), o.getRefundStatus()); +// return new ApiResult<>(EnumResultVo.SystemException.getIndex(), orderSns.toString() + "订单状态已发货或已申请退款"); +// } +// } +// +// var checkRes = orderPddService.checkPrint(printOrders.getData()); +// +// if (checkRes.getCode() > 0) +// return new ApiResult<>(checkRes.getCode(), checkRes.getMsg()); +// // 取电子面单号 +// var printRes = getPddPrint(printOrders.getData(), reqData.getString("company")); +// if (!StringUtils.isEmpty(printRes.getJSONObject("error"))) { +// printOrders.getData().forEach(o -> orderPddService.updPddOrderResult(o.getOrderId(), +// printRes.getJSONObject("error").getString("sub_msg"), 0, null)); +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), +// orderSns.toString() + printRes.getJSONObject("error").getString("sub_msg")); +// } +// String billCode = ""; +// String encryptedData = ""; +// String signature = ""; +// if (!StringUtils.isEmpty(printRes.getString("waybill_code"))) { +// billCode = printRes.getString("waybill_code"); +// encryptedData = printRes.getString("encryptedData"); +// signature = printRes.getString("signature"); +// // 3.更新库存确认到仓库 +// for (var o : printOrders.getData()) { +// var result = orderPddService.updPddOrderPrint(o, +// EnumPddPrintCompany.getName(reqData.getString("company")), billCode, encryptedData, signature); +// log.info("拼多多订单:" + o.getOrderSn() + "物流:" + billCode + "结果:" + result.getMsg()); +// } +// } +// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "订单取号完成"); +// } +// +// @RequestMapping(value = "/pdd_order_send", method = RequestMethod.POST) +// public ApiResult pdd_order_send(@RequestBody DataRow reqData) throws Exception { +// String clientId = DataConfigObject.getInstance().getPddClientId(); +// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); +// var shop = shopService.getShop(reqData.getInt("shopId")); +// +// PopClient client = new PopHttpClient(clientId, clientSecret); +// +// String accessToken = shop.getSessionKey(); +// // 获取店铺信息,判断店铺是否一致 +// var shopResult = PddApiUtils.getShopInfo(clientId, clientSecret, accessToken); +// if (shopResult.getCode() != EnumResultVo.SUCCESS.getIndex()) +// return new ApiResult<>(shopResult.getCode(), shopResult.getMsg()); +// +// if (shopResult.getData().getMallId().longValue() != shop.getSellerUserId().longValue()) { +// return new ApiResult<>(EnumResultVo.TokenFail.getIndex(), "该店铺不是授权店铺"); +// } +// +// var orders = (ArrayList) reqData.getObject("orders"); +// if (orders.isEmpty()) +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "请选择需要发货的订单"); +// for (var orderNo : orders) { +// var order = orderPddService.getOrder((String) orderNo); +// PddLogisticsOnlineSendRequest request = new PddLogisticsOnlineSendRequest(); +// request.setLogisticsId(orderPddService.getPddLogisticsCompanyId(order.getTracking_company()).longValue());// 快递公司编号 +// request.setOrderSn(order.getOrderSn());// 订单编号 +// request.setTrackingNumber(order.getTracking_number());// 快递公司单号 +// PddLogisticsOnlineSendResponse response = client.syncInvoke(request, accessToken); +// if (!StringUtils.isEmpty(response.getErrorResponse())) { +// orderPddService.updPddOrderResult(order.getId(), response.getErrorResponse().getErrorMsg(), 1, null); +// continue; +// } +// if (response.getLogisticsOnlineSendResponse().getIsSuccess()) { +// var result = orderPddService.orderSend(order); +// log.info("PDD订单发货:" + result.getMsg()); +// } +// } +// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "成功"); +// } +// +// /** +// * 回收单号 +// * +// * @param reqData +// * @return +// */ +// @RequestMapping(value = "/pdd_cancel_print", method = RequestMethod.POST) +// public ApiResult pdd_cancel_print(@RequestBody DataRow reqData) { +// String clientId = DataConfigObject.getInstance().getPddClientId(); +// String clientSecret = DataConfigObject.getInstance().getPddClientSecret(); +// PopClient client = new PopHttpClient(clientId, clientSecret); +// // 固定使用东方概念旗舰店accessToken +// var dfgnShop = shopService.getShop(18); +// String accessToken = dfgnShop.getSessionKey(); +// var orders = orderPddService.getPrintOrderRepeat(reqData.getString("orderNo")); +// try { +// // 取消电子面单 +// PddWaybillCancelRequest request = new PddWaybillCancelRequest(); +// request.setWaybillCode(orders.get(0).getTrackingNumber()); +// request.setWpCode(EnumPddPrintCompany.getIndexByName(orders.get(0).getTrackingCompany())); +// PddWaybillCancelResponse response = client.syncInvoke(request, accessToken); +// String jsonStr = JsonUtil.transferToJson(response); +// var res = JSONObject.parseObject(jsonStr); +// if (!StringUtils.isEmpty(res.getJSONObject("error_response"))) { +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), +// res.getJSONObject("error_response").getString("sub_msg")); +// } +// if (!StringUtils.isEmpty(res.getJSONObject("pdd_waybill_cancel_response"))) { +// if (res.getJSONObject("pdd_waybill_cancel_response").getBoolean("cancel_result")) { +// for (var order : orders) { +// orderPddService.cancelOrderPrint(order.getOrderId()); +// } +// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), "成功"); +// } else +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "取消电子面单失败"); +// } +// } catch (Exception e) { +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "系统异常"); +// } +// return new ApiResult<>(EnumResultVo.ParamsError.getIndex(), "取消电子面单失败"); +// +// } +// + + +} diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/PddOrderController.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/PddOrderController.java index 0b109339..9077e9e7 100644 --- a/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/PddOrderController.java +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/PddOrderController.java @@ -1,100 +1,52 @@ -//package com.qihang.pdd.controller; -// -// -//import com.qihang.common.common.TableDataInfo; -//import com.qihang.security.common.BaseController; -//import lombok.AllArgsConstructor; -//import org.springframework.web.bind.annotation.RequestMapping; -//import org.springframework.web.bind.annotation.RequestMethod; -//import org.springframework.web.bind.annotation.RestController; -// -///** -// * 拼多多订单Controller -// * -// * @author qihang -// * @date 2024-01-02 -// */ -//@AllArgsConstructor -//@RestController -//@RequestMapping("/order") -//public class PddOrderController extends BaseController -//{ -// -// private final OmsPddOrderService orderService; -// @RequestMapping(value = "/list", method = RequestMethod.GET) -// public TableDataInfo orderList(OmsPddOrder bo, PageQuery pageQuery) { -// PageResult result = orderService.queryPageList(bo, pageQuery); -// -// return getDataTable(result); -// } -//// @Autowired -//// private IPddOrderService pddOrderService; -//// -//// /** -//// * 查询拼多多订单列表 -//// */ -//// @PreAuthorize("@ss.hasPermi('pdd:order:list')") -//// @GetMapping("/list") -//// public TableDataInfo list(PddOrder pddOrder) -//// { -//// startPage(); -//// List list = pddOrderService.selectPddOrderList(pddOrder); -//// return getDataTable(list); -//// } -//// -//// /** -//// * 导出拼多多订单列表 -//// */ -//// @PreAuthorize("@ss.hasPermi('pdd:order:export')") -//// @Log(title = "拼多多订单", businessType = BusinessType.EXPORT) -//// @PostMapping("/export") -//// public void export(HttpServletResponse response, PddOrder pddOrder) -//// { -//// List list = pddOrderService.selectPddOrderList(pddOrder); -//// ExcelUtil util = new ExcelUtil(PddOrder.class); -//// util.exportExcel(response, list, "拼多多订单数据"); -//// } -//// -//// /** -//// * 获取拼多多订单详细信息 -//// */ -//// @PreAuthorize("@ss.hasPermi('pdd:order:query')") -//// @GetMapping(value = "/{id}") -//// public AjaxResult getInfo(@PathVariable("id") Long id) -//// { -//// return success(pddOrderService.selectPddOrderById(id)); -//// } -//// -//// /** -//// * 新增拼多多订单 -//// */ -//// @PreAuthorize("@ss.hasPermi('pdd:order:add')") -//// @Log(title = "拼多多订单", businessType = BusinessType.INSERT) -//// @PostMapping -//// public AjaxResult add(@RequestBody PddOrder pddOrder) -//// { -//// Integer result = pddOrderService.insertPddOrder(pddOrder); -//// if(result == -1) return new AjaxResult(505,"订单号已存在"); -//// else if(result == -2) return new AjaxResult(506,"请添加商品"); -//// else if(result == -3) return new AjaxResult(507,"商品数据错误"); -//// return toAjax(result); -//// } -//// -//// @Log(title = "拼多多订单", businessType = BusinessType.UPDATE) -//// @PostMapping("/confirm") -//// public AjaxResult confirmOrder(@RequestBody PddOrder pddOrder) -//// { -//// pddOrder.setUpdateBy(getUsername()); -//// Integer result = pddOrderService.confirmOrder(pddOrder); -//// if(result == -1) return new AjaxResult(505,"订单不存在"); -//// else if(result == -2) return new AjaxResult(506,"订单已确认过了"); -//// else if(result == -3) return new AjaxResult(507,"订单售后中!无法操作!"); -//// else if(result == -4) return new AjaxResult(508,"订单号确认过了!请检查订单号是否正确!"); -//// else if(result == -5) return new AjaxResult(509,"不支持的发货方式!"); -//// else if(result == -11) return new AjaxResult(511,"商品SKU编码不存在!"); -//// else if(result == -12) return new AjaxResult(512,"商品信息不存在!"); -//// return toAjax(result); -//// } -//// -// -//} +package com.qihang.pdd.controller; + + +import com.alibaba.fastjson2.JSONObject; +import com.qihang.common.common.AjaxResult; +import com.qihang.common.common.PageQuery; +import com.qihang.common.common.PageResult; +import com.qihang.common.common.TableDataInfo; +import com.qihang.common.enums.EnumShopType; +import com.qihang.common.mq.MqMessage; +import com.qihang.common.mq.MqType; +import com.qihang.pdd.domain.OmsPddOrder; +import com.qihang.pdd.domain.bo.PddOrderPushBo; +import com.qihang.pdd.service.OmsPddOrderService; +import com.qihang.security.common.BaseController; +import lombok.AllArgsConstructor; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.web.bind.annotation.*; + +/** + * 拼多多订单Controller + * + * @author qihang + * @date 2024-01-02 + */ +@AllArgsConstructor +@RestController +@RequestMapping("/order") +public class PddOrderController extends BaseController +{ + private final KafkaTemplate kafkaTemplate; + private final OmsPddOrderService orderService; + @RequestMapping(value = "/list", method = RequestMethod.GET) + public TableDataInfo orderList(OmsPddOrder bo, PageQuery pageQuery) { + PageResult result = orderService.queryPageList(bo, pageQuery); + + return getDataTable(result); + } + @PostMapping("/push_oms") + @ResponseBody + public AjaxResult pushOms(@RequestBody PddOrderPushBo bo) { + // TODO:需要优化消息格式 + if(bo!=null && bo.getIds()!=null) { + for(String id: bo.getIds()) { + kafkaTemplate.send(MqType.ORDER_MQ, JSONObject.toJSONString(MqMessage.build(EnumShopType.PDD, MqType.ORDER_MESSAGE,id))); +// mqUtils.sendApiMessage(MqMessage.build(EnumShopType.JD, MqType.ORDER_MESSAGE, id)); + } + } + return success(); + } + +} diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/OmsPddOrder.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/OmsPddOrder.java new file mode 100644 index 00000000..f4aa0ec8 --- /dev/null +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/OmsPddOrder.java @@ -0,0 +1,360 @@ +package com.qihang.pdd.domain; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +/** + * 拼多多订单表 + * @TableName oms_pdd_order + */ +@Data +public class OmsPddOrder implements Serializable { + /** + * 订单id,自增 + */ + private Long id; + + /** + * 内部店铺ID + */ + private Long shopId; + + /** + * 订单编号 + */ + private String orderSn; + + /** + * 订单类型 0-普通订单 ,1- 定金订单 + */ + private Integer tradeType; + + /** + * 是否顺丰包邮,1-是 0-否 + */ + private Integer freeSf; + + /** + * 是否是抽奖订单,1-非抽奖订单,2-抽奖订单 + */ + private Integer isLuckyFlag; + + /** + * 成团状态:0:拼团中、1:已成团、2:团失败 + */ + private Integer groupStatus; + + /** + * 成交状态:0:未成交、1:已成交、2:已取消、 + */ + private Integer confirmStatus; + + /** + * 订单状态1:待发货,2:已发货待签收,3:已签收 + */ + private Integer orderStatus; + + /** + * 售后状态 1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 5:全部 + */ + private Integer refundStatus; + + /** + * 团长免单金额,单位:元 + */ + private Double capitalFreeDiscount; + + /** + * 商家优惠金额,单位:元 + */ + private Double sellerDiscount; + + /** + * 平台优惠金额,单位:元 + */ + private Double platformDiscount; + + /** + * 商品金额,单位:元,商品金额=商品销售价格*商品数量-改价金额(接口暂无该字段) + */ + private Double goodsAmount; + + /** + * 折扣金额,单位:元,折扣金额=平台优惠+商家优惠+团长免单优惠金额 + */ + private Double discountAmount; + + /** + * 支付金额,单位:元,支付金额=商品金额-折扣金额+邮费 + */ + private Double payAmount; + + /** + * 邮费,单位:元 + */ + private Double postage; + + /** + * 订单备注 + */ + private String remark; + + /** + * 订单备注标记,1-红色,2-黄色,3-绿色,4-蓝色,5-紫色 + */ + private Integer remarkTag; + + /** + * 订单备注标记名称 + */ + private String remarkTagName; + + /** + * 买家留言信息 + */ + private String buyerMemo; + + /** + * 订单的更新时间 + */ + private String updatedAt; + + /** + * 发货时间 + */ + private String shippingTime; + + /** + * 快递单号 + */ + private String trackingNumber; + + /** + * 物流公司 + */ + private String trackingCompany; + + /** + * 支付方式,枚举值:QQ,WEIXIN,ALIPAY,LIANLIANPAY + */ + private String payType; + + /** + * 支付单号 + */ + private String payNo; + + /** + * 收件人地址,不拼接省市区 + */ + private String receiverAddress; + + /** + * 收件人地址(打码) + */ + private String receiverAddressMask; + + /** + * 收件人姓名 + */ + private String receiverName; + + /** + * 收件人电话 + */ + private String receiverPhone; + + /** + * + */ + private String receiverPhoneMask; + + /** + * + */ + private String receiverNameMask; + + /** + * + */ + private String addressMask; + + /** + * 详细地址 + */ + private String address; + + /** + * 区县 + */ + private String town; + + /** + * + */ + private Integer townId; + + /** + * 市 + */ + private String city; + + /** + * 城市编码 + */ + private Integer cityId; + + /** + * 省 + */ + private String province; + + /** + * + */ + private Integer provinceId; + + /** + * 国家地区 + */ + private String country; + + /** + * + */ + private Integer countryId; + + /** + * 订单创建时间 + */ + private Date createdTime; + + /** + * 支付时间 + */ + private String payTime; + + /** + * 成交时间 + */ + private String confirmTime; + + /** + * 确认收货时间 + */ + private String receiveTime; + + /** + * 售后状态 0:无售后 2:买家申请退款,待商家处理 3:退货退款,待商家处理 4:商家同意退款,退款中 5:平台同意退款,退款中 6:驳回退款, 待买家处理 7:已同意退货退款,待用户发货 8:平台处理中 9:平台拒 绝退款,退款关闭 10:退款成功 11:买家撤销 12:买家逾期未处 理,退款失败 13:买家逾期,超过有效期 14 : 换货补寄待商家处理 15:换货补寄待用户处理 16:换货补寄成功 17:换货补寄失败 18:换货补寄待用户确认完成 + */ + private Integer afterSalesStatus; + + /** + * 订单承诺发货时间 + */ + private String lastShipTime; + + /** + * 标签 + */ + private String tag; + + /** + * 是否当日发货,1-是,0-否 + */ + private Integer deliveryOneDay; + + /** + * 是否多多批发,1-是,0-否 + */ + private Integer duoduoWholesale; + + /** + * 送货入户并安装服务 0-不支持送货,1-送货入户不安装,2-送货入户并安装 + */ + private Integer homeDeliveryType; + + /** + * 发票申请,1代表有 0代表无 + */ + private Integer invoiceStatus; + + /** + * 是否为预售商品 1表示是 0表示否 + */ + private Integer isPreSale; + + /** + * 是否缺货 0-无缺货处理 1: 有缺货处理 + */ + private Integer isStockOut; + + /** + * 快递公司在拼多多的代码 + */ + private Long logisticsId; + + /** + * 市场业务类型,0-普通订单,1-拼内购订单 + */ + private Integer mktBizType; + + /** + * 只换不修,1:是,0:否 + */ + private Integer onlySupportReplace; + + /** + * 订单改价折扣金额,单位元 + */ + private Double orderChangeAmount; + + /** + * 预售时间 + */ + private String preSaleTime; + + /** + * 退货包运费,1:是,0:否 + */ + private Integer returnFreightPayer; + + /** + * 订单审核状态(0-正常订单, 1-审核中订单) + */ + private Integer riskControlStatus; + + /** + * 催发货时间 + */ + private String urgeShippingTime; + + /** + * 0待确认,1已确认2已拦截-9未拉取 + */ + private Integer auditStatus; + + /** + * 发货时间(仓库真实发货时间) + */ + private Date auditTime; + + /** + * 系统创建时间 + */ + private Date createTime; + + /** + * 系统更新时间 + */ + private Date updateTime; + + @TableField(exist = false) + private List itemList; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/OmsPddOrderItem.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/OmsPddOrderItem.java new file mode 100644 index 00000000..8d30c2a0 --- /dev/null +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/OmsPddOrderItem.java @@ -0,0 +1,124 @@ +package com.qihang.pdd.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 拼多多订单明细表 + * @TableName oms_pdd_order_item + */ +@Data +public class OmsPddOrderItem implements Serializable { + /** + * id,自增 + */ + private Long id; + + /** + * 订单ID + */ + private Long orderId; + + /** + * 订单编号 + */ + private String orderSn; + + /** + * erp系统商品id + */ + private Integer erpGoodsId; + + /** + * erp系统商品规格id + */ + private Integer erpSpecId; + + /** + * 拼多多商品id + */ + private Long goodId; + + /** + * 拼多多商品skuid + */ + private Long skuId; + + /** + * 商品名称 + */ + private String goodsName; + + /** + * 商品图片 + */ + private String goodsImg; + + /** + * 商品规格 + */ + private String goodsSpec; + + /** + * 商品单价 + */ + private Double goodsPrice; + + /** + * 商家外部编码(商品) + */ + private String outerGoodsId; + + /** + * 商家外部编码(sku) + */ + private String outerId; + + /** + * 商品数量 + */ + private Integer goodsCount; + + /** + * 备注 + */ + private String remark; + + /** + * 子订单金额 + */ + private Double itemAmount; + + /** + * 是否礼品0否1是 + */ + private Integer isGift; + + /** + * 已退货数量 + */ + private Integer refundCount; + + /** + * 售后状态 1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 + */ + private Integer refundStatus; + + /** + * 内部店铺ID + */ + private Long shopId; + + /** + * 系统创建时间 + */ + private Date createTime; + + /** + * 系统更新时间 + */ + private Date updateTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/SysShopPullLasttime.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/SysShopPullLasttime.java index 96236875..bb965239 100644 --- a/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/SysShopPullLasttime.java +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/SysShopPullLasttime.java @@ -1,12 +1,16 @@ package com.qihang.pdd.domain; +import lombok.Data; + import java.io.Serializable; +import java.time.LocalDateTime; import java.util.Date; /** * 店铺更新最后时间记录 * @TableName sys_shop_pull_lasttime */ +@Data public class SysShopPullLasttime implements Serializable { /** * @@ -26,7 +30,7 @@ public class SysShopPullLasttime implements Serializable { /** * 最后更新时间 */ - private Date lasttime; + private LocalDateTime lasttime; /** * 创建时间 @@ -40,137 +44,4 @@ public class SysShopPullLasttime implements Serializable { private static final long serialVersionUID = 1L; - /** - * - */ - public Integer getId() { - return id; - } - - /** - * - */ - public void setId(Integer id) { - this.id = id; - } - - /** - * 店铺id - */ - public Integer getShopId() { - return shopId; - } - - /** - * 店铺id - */ - public void setShopId(Integer shopId) { - this.shopId = shopId; - } - - /** - * 类型(ORDER:订单,REFUND:退款) - */ - public Object getPullType() { - return pullType; - } - - /** - * 类型(ORDER:订单,REFUND:退款) - */ - public void setPullType(Object pullType) { - this.pullType = pullType; - } - - /** - * 最后更新时间 - */ - public Date getLasttime() { - return lasttime; - } - - /** - * 最后更新时间 - */ - public void setLasttime(Date lasttime) { - this.lasttime = lasttime; - } - - /** - * 创建时间 - */ - public Date getCreateTime() { - return createTime; - } - - /** - * 创建时间 - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - /** - * 更新时间 - */ - public Date getUpdateTime() { - return updateTime; - } - - /** - * 更新时间 - */ - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } - - @Override - public boolean equals(Object that) { - if (this == that) { - return true; - } - if (that == null) { - return false; - } - if (getClass() != that.getClass()) { - return false; - } - SysShopPullLasttime other = (SysShopPullLasttime) that; - return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) - && (this.getShopId() == null ? other.getShopId() == null : this.getShopId().equals(other.getShopId())) - && (this.getPullType() == null ? other.getPullType() == null : this.getPullType().equals(other.getPullType())) - && (this.getLasttime() == null ? other.getLasttime() == null : this.getLasttime().equals(other.getLasttime())) - && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime())) - && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime())); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); - result = prime * result + ((getShopId() == null) ? 0 : getShopId().hashCode()); - result = prime * result + ((getPullType() == null) ? 0 : getPullType().hashCode()); - result = prime * result + ((getLasttime() == null) ? 0 : getLasttime().hashCode()); - result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode()); - result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode()); - return result; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", shopId=").append(shopId); - sb.append(", pullType=").append(pullType); - sb.append(", lasttime=").append(lasttime); - sb.append(", createTime=").append(createTime); - sb.append(", updateTime=").append(updateTime); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } } \ No newline at end of file diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/bo/PddOrderPushBo.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/bo/PddOrderPushBo.java new file mode 100644 index 00000000..8e7199ef --- /dev/null +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/domain/bo/PddOrderPushBo.java @@ -0,0 +1,8 @@ +package com.qihang.pdd.domain.bo; + +import lombok.Data; + +@Data +public class PddOrderPushBo { + private String[] ids; +} diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/mapper/OmsPddOrderItemMapper.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/mapper/OmsPddOrderItemMapper.java new file mode 100644 index 00000000..abfbf24d --- /dev/null +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/mapper/OmsPddOrderItemMapper.java @@ -0,0 +1,18 @@ +package com.qihang.pdd.mapper; + +import com.qihang.pdd.domain.OmsPddOrderItem; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_pdd_order_item(拼多多订单明细表)】的数据库操作Mapper +* @createDate 2024-06-13 16:54:36 +* @Entity com.qihang.pdd.domain.OmsPddOrderItem +*/ +public interface OmsPddOrderItemMapper extends BaseMapper { + +} + + + + diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/mapper/OmsPddOrderMapper.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/mapper/OmsPddOrderMapper.java new file mode 100644 index 00000000..73f22a99 --- /dev/null +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/mapper/OmsPddOrderMapper.java @@ -0,0 +1,18 @@ +package com.qihang.pdd.mapper; + +import com.qihang.pdd.domain.OmsPddOrder; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_pdd_order(拼多多订单表)】的数据库操作Mapper +* @createDate 2024-06-13 16:54:36 +* @Entity com.qihang.pdd.domain.OmsPddOrder +*/ +public interface OmsPddOrderMapper extends BaseMapper { + +} + + + + diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/OmsPddOrderItemService.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/OmsPddOrderItemService.java new file mode 100644 index 00000000..ba52e626 --- /dev/null +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/OmsPddOrderItemService.java @@ -0,0 +1,13 @@ +package com.qihang.pdd.service; + +import com.qihang.pdd.domain.OmsPddOrderItem; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_pdd_order_item(拼多多订单明细表)】的数据库操作Service +* @createDate 2024-06-13 16:54:36 +*/ +public interface OmsPddOrderItemService extends IService { + +} diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/OmsPddOrderService.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/OmsPddOrderService.java new file mode 100644 index 00000000..27a93395 --- /dev/null +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/OmsPddOrderService.java @@ -0,0 +1,17 @@ +package com.qihang.pdd.service; + +import com.qihang.common.common.PageQuery; +import com.qihang.common.common.PageResult; +import com.qihang.common.common.ResultVo; +import com.qihang.pdd.domain.OmsPddOrder; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_pdd_order(拼多多订单表)】的数据库操作Service +* @createDate 2024-06-13 16:54:36 +*/ +public interface OmsPddOrderService extends IService { + PageResult queryPageList(OmsPddOrder bo, PageQuery pageQuery); + ResultVo saveOrder(Long shopId, OmsPddOrder order); +} diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/SysShopPullLasttimeService.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/SysShopPullLasttimeService.java index 119f8d92..a2b6b895 100644 --- a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/SysShopPullLasttimeService.java +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/SysShopPullLasttimeService.java @@ -9,5 +9,5 @@ import com.baomidou.mybatisplus.extension.service.IService; * @createDate 2024-03-13 17:43:42 */ public interface SysShopPullLasttimeService extends IService { - + SysShopPullLasttime getLasttimeByShop(Long shopId,String pullType); } diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/OmsPddOrderItemServiceImpl.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/OmsPddOrderItemServiceImpl.java new file mode 100644 index 00000000..55cacdd2 --- /dev/null +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/OmsPddOrderItemServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.pdd.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.pdd.domain.OmsPddOrderItem; +import com.qihang.pdd.service.OmsPddOrderItemService; +import com.qihang.pdd.mapper.OmsPddOrderItemMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_pdd_order_item(拼多多订单明细表)】的数据库操作Service实现 +* @createDate 2024-06-13 16:54:36 +*/ +@Service +public class OmsPddOrderItemServiceImpl extends ServiceImpl + implements OmsPddOrderItemService{ + +} + + + + diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/OmsPddOrderServiceImpl.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/OmsPddOrderServiceImpl.java new file mode 100644 index 00000000..88e9944a --- /dev/null +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/OmsPddOrderServiceImpl.java @@ -0,0 +1,161 @@ +package com.qihang.pdd.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.common.common.PageQuery; +import com.qihang.common.common.PageResult; +import com.qihang.common.common.ResultVo; +import com.qihang.common.common.ResultVoEnum; +import com.qihang.pdd.domain.OmsPddOrder; +import com.qihang.pdd.domain.OmsPddOrderItem; +import com.qihang.pdd.mapper.OmsPddOrderItemMapper; +import com.qihang.pdd.service.OmsPddOrderService; +import com.qihang.pdd.mapper.OmsPddOrderMapper; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; +import org.springframework.util.StringUtils; + +import java.util.Date; +import java.util.List; + +/** +* @author TW +* @description 针对表【oms_pdd_order(拼多多订单表)】的数据库操作Service实现 +* @createDate 2024-06-13 16:54:36 +*/ +@AllArgsConstructor +@Service +public class OmsPddOrderServiceImpl extends ServiceImpl + implements OmsPddOrderService{ + private final OmsPddOrderMapper orderMapper; + private final OmsPddOrderItemMapper orderItemMapper; + + @Override + public PageResult queryPageList(OmsPddOrder bo, PageQuery pageQuery) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(bo.getShopId()!=null,OmsPddOrder::getShopId,bo.getShopId()); + + Page goodsPage = orderMapper.selectPage(pageQuery.build(), queryWrapper); + if(goodsPage.getRecords()!=null){ + for (var o: goodsPage.getRecords()) { + o.setItemList(orderItemMapper.selectList(new LambdaQueryWrapper().eq(OmsPddOrderItem::getOrderSn,o.getOrderSn()))); + } + } + return PageResult.build(goodsPage); + } + + @Transactional + @Override + public ResultVo saveOrder(Long shopId, OmsPddOrder order) { + if(order == null ) return ResultVo.error(ResultVoEnum.SystemException); + try { + List taoOrders = orderMapper.selectList(new LambdaQueryWrapper().eq(OmsPddOrder::getOrderSn, order.getOrderSn())); + if (taoOrders != null && taoOrders.size() > 0) { + // 存在,修改 + OmsPddOrder update = new OmsPddOrder(); + update.setId(taoOrders.get(0).getId()); + if(StringUtils.hasText(order.getReceiverName())){ + update.setReceiverName(order.getReceiverName()); + } + if(StringUtils.hasText(order.getReceiverPhone())){ + update.setReceiverPhone(order.getReceiverPhone()); + } + if(StringUtils.hasText(order.getReceiverAddress())){ + update.setReceiverAddress(order.getReceiverAddress()); + } + if(StringUtils.hasText(order.getAddress())){ + update.setAddress(order.getAddress()); + } + update.setReceiverNameMask(order.getReceiverNameMask()); + update.setReceiverPhoneMask(order.getReceiverPhoneMask()); + update.setReceiverAddressMask(order.getReceiverAddressMask()); + update.setAddressMask(order.getAddressMask()); + + update.setGroupStatus(order.getGroupStatus()); + update.setConfirmStatus(order.getConfirmStatus()); + update.setOrderStatus(order.getOrderStatus()); + update.setRefundStatus(order.getRefundStatus()); + update.setCapitalFreeDiscount(order.getCapitalFreeDiscount()); + update.setSellerDiscount(order.getSellerDiscount()); + update.setPlatformDiscount(order.getPlatformDiscount()); + update.setGoodsAmount(order.getGoodsAmount()); + update.setDiscountAmount(order.getDiscountAmount()); + update.setPayAmount(order.getPayAmount()); + update.setPostage(order.getPostage()); + update.setOrderChangeAmount(order.getOrderChangeAmount()); + update.setRemark(order.getRemark()); + update.setRemarkTag(order.getRemarkTag()); + update.setRemarkTagName(order.getRemarkTagName()); + update.setBuyerMemo(order.getBuyerMemo()); + update.setUpdatedAt(order.getUpdatedAt()); + update.setShippingTime(order.getShippingTime()); + update.setTrackingNumber(order.getTrackingNumber()); + update.setPayType(order.getPayType()); + update.setPayNo(order.getPayNo()); + update.setPayTime(order.getPayTime()); + update.setConfirmTime(order.getConfirmTime()); + update.setReceiveTime(order.getReceiveTime()); + update.setAfterSalesStatus(order.getAfterSalesStatus()); + + update.setLastShipTime(order.getLastShipTime()); + update.setLogisticsId(order.getLogisticsId()); + update.setRiskControlStatus(order.getRiskControlStatus()); + update.setUrgeShippingTime(order.getUrgeShippingTime()); + update.setUpdateTime(new Date()); + orderMapper.updateById(update); + // 更新item + for (var item : order.getItemList()) { + List taoOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper().eq(OmsPddOrderItem::getOrderSn, order.getOrderSn()).eq(OmsPddOrderItem::getSkuId,item.getSkuId())); + if (taoOrderItems != null && taoOrderItems.size() > 0) { + // 存在,不操作 + } else { + // 新增 + // TODO:子订单价格计算 + item.setIsGift(0); + item.setRefundCount(0); + item.setRefundStatus(1); + item.setShopId(shopId); + item.setOrderSn(order.getOrderSn()); + item.setOrderId(update.getId()); + item.setCreateTime(new Date()); + orderItemMapper.insert(item); + } + } + return ResultVo.error(ResultVoEnum.DataExist, "订单已经存在,更新成功"); + } else { + // 不存在,新增 + order.setShopId(shopId); + order.setAuditStatus(0); + order.setCreateTime(new Date()); + orderMapper.insert(order); + // 添加item + for (var item : order.getItemList()) { + // 新增 + // TODO:子订单价格计算 + item.setIsGift(0); + item.setRefundCount(0); + item.setRefundStatus(1); + item.setShopId(shopId); + item.setOrderSn(order.getOrderSn()); + item.setOrderId(order.getId()); + item.setCreateTime(new Date()); + orderItemMapper.insert(item); + } + return ResultVo.success(); + } + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + e.printStackTrace(); + System.out.println("保存订单数据错误:"+e.getMessage()); + return ResultVo.error(ResultVoEnum.SystemException, "系统异常:" + e.getMessage()); + } + + } +} + + + + diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/SysShopPullLasttimeServiceImpl.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/SysShopPullLasttimeServiceImpl.java index 7b4db53e..3c11fb78 100644 --- a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/SysShopPullLasttimeServiceImpl.java +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/SysShopPullLasttimeServiceImpl.java @@ -1,20 +1,32 @@ package com.qihang.pdd.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qihang.pdd.domain.SysShopPullLasttime; import com.qihang.pdd.service.SysShopPullLasttimeService; import com.qihang.pdd.mapper.SysShopPullLasttimeMapper; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author TW * @description 针对表【sys_shop_pull_lasttime(店铺更新最后时间记录)】的数据库操作Service实现 * @createDate 2024-03-13 17:43:42 */ +@AllArgsConstructor @Service public class SysShopPullLasttimeServiceImpl extends ServiceImpl implements SysShopPullLasttimeService{ + private final SysShopPullLasttimeMapper mapper; + @Override + public SysShopPullLasttime getLasttimeByShop(Long shopId, String pullType) { + List sysShopPullLasttimes = mapper.selectList(new LambdaQueryWrapper().eq(SysShopPullLasttime::getShopId, shopId).eq(SysShopPullLasttime::getPullType, pullType)); + if(sysShopPullLasttimes != null && !sysShopPullLasttimes.isEmpty()) return sysShopPullLasttimes.get(0); + else return null; + } } diff --git a/open-api/pdd-api/src/main/resources/mapper/OmsPddOrderItemMapper.xml b/open-api/pdd-api/src/main/resources/mapper/OmsPddOrderItemMapper.xml new file mode 100644 index 00000000..4852aeba --- /dev/null +++ b/open-api/pdd-api/src/main/resources/mapper/OmsPddOrderItemMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,order_id,order_sn, + erp_goods_id,erp_spec_id,good_id, + sku_id,goods_name,goods_img, + goods_spec,goods_price,outer_goods_id, + outer_id,goods_count,remark, + item_amount,is_gift,refund_count, + refund_status,shop_id,create_time, + update_time + + diff --git a/open-api/pdd-api/src/main/resources/mapper/OmsPddOrderMapper.xml b/open-api/pdd-api/src/main/resources/mapper/OmsPddOrderMapper.xml new file mode 100644 index 00000000..bde212e9 --- /dev/null +++ b/open-api/pdd-api/src/main/resources/mapper/OmsPddOrderMapper.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,shop_id,order_sn, + trade_type,free_sf,is_lucky_flag, + group_status,confirm_status,order_status, + refund_status,capital_free_discount,seller_discount, + platform_discount,goods_amount,discount_amount, + pay_amount,postage,remark, + remark_tag,remark_tag_name,buyer_memo, + updated_at,shipping_time,tracking_number, + tracking_company,pay_type,pay_no, + receiver_address,receiver_address_mask,receiver_name, + receiver_phone,receiver_phone_mask,receiver_name_mask, + address_mask,address,town, + town_id,city,city_id, + province,province_id,country, + country_id,created_time,pay_time, + confirm_time,receive_time,after_sales_status, + last_ship_time,tag,delivery_one_day, + duoduo_wholesale,home_delivery_type,invoice_status, + is_pre_sale,is_stock_out,logistics_id, + mkt_biz_type,only_support_replace,order_change_amount, + pre_sale_time,return_freight_payer,risk_control_status, + urge_shipping_time,audit_status,audit_time, + create_time,update_time + + diff --git a/vue/src/api/pdd/order.js b/vue/src/api/pdd/order.js index b4356ade..f0a5d584 100644 --- a/vue/src/api/pdd/order.js +++ b/vue/src/api/pdd/order.js @@ -3,7 +3,7 @@ import request from '@/utils/request' // 查询拼多多订单列表 export function listOrder(query) { return request({ - url: '/pdd/order/list', + url: '/pdd-api/order/list', method: 'get', params: query }) @@ -12,43 +12,24 @@ export function listOrder(query) { // 查询拼多多订单详细 export function getOrder(id) { return request({ - url: '/pdd/order/' + id, + url: '/pdd-api/order/' + id, method: 'get' }) } -// 新增拼多多订单 -export function addOrder(data) { - return request({ - url: '/pdd/order', - method: 'post', - data: data - }) -} - -// 修改拼多多订单 -export function confirmOrder(data) { - return request({ - url: '/pdd/order/confirm', - method: 'post', - data: data - }) -} - -// 删除拼多多订单 -export function delOrder(id) { - return request({ - url: '/pdd/order/' + id, - method: 'delete' - }) -} - // 接口拉取淘宝订单 export function pullOrder(query) { return request({ - url: '/pdd_api/order/pull_order', + url: '/pdd-api/order/pull_order', method: 'get', params: query }) } +export function pushOms(data) { + return request({ + url: '/pdd-api/order/push_oms', + method: 'post', + data: data + }) +} diff --git a/vue/src/views/pdd/order/index.vue b/vue/src/views/pdd/order/index.vue deleted file mode 100644 index 6302bca3..00000000 --- a/vue/src/views/pdd/order/index.vue +++ /dev/null @@ -1,1217 +0,0 @@ - - - - diff --git a/vue/src/views/sale/order/pull/index.vue b/vue/src/views/sale/order/pull/index.vue index 0b866155..1a96b4b4 100644 --- a/vue/src/views/sale/order/pull/index.vue +++ b/vue/src/views/sale/order/pull/index.vue @@ -23,7 +23,7 @@ import OrderTao from "@/views/shop/tao/order/index"; import OrderJd from "@/views/shop/jd/order/index"; import OrderDou from "@/views/dou/order/index"; -import OrderPdd from "@/views/pdd/order/index"; +import OrderPdd from "@/views/shop/pdd/order/index"; export default { name: "Order", components:{OrderTao,OrderJd,OrderDou,OrderPdd}, diff --git a/vue/src/views/shop/order_index.vue b/vue/src/views/shop/order_index.vue index 0d182f52..7304564f 100644 --- a/vue/src/views/shop/order_index.vue +++ b/vue/src/views/shop/order_index.vue @@ -26,7 +26,7 @@ import OrderTao from "@/views/shop/tao/order/index"; import OrderJd from "@/views/shop/jd/order/index"; import OrderDou from "@/views/dou/order/index"; -import OrderPdd from "@/views/pdd/order/index"; +import OrderPdd from "@/views/shop/pdd/order/index"; import OrderWei from "@/views/shop/wei/order/index"; export default { name: "Order", diff --git a/vue/src/views/shop/pdd/order/index.vue b/vue/src/views/shop/pdd/order/index.vue new file mode 100644 index 00000000..ca153d17 --- /dev/null +++ b/vue/src/views/shop/pdd/order/index.vue @@ -0,0 +1,335 @@ + + +