diff --git a/oms-api/src/main/java/com/qihang/oms/domain/ErpSaleAfterRefund.java b/oms-api/src/main/java/com/qihang/oms/domain/ErpSaleAfterRefund.java index 7273de88..82ec0d4c 100644 --- a/oms-api/src/main/java/com/qihang/oms/domain/ErpSaleAfterRefund.java +++ b/oms-api/src/main/java/com/qihang/oms/domain/ErpSaleAfterRefund.java @@ -53,7 +53,7 @@ public class ErpSaleAfterRefund implements Serializable { /** * 原始子订单号(来自于第三方平台) */ - private String originalOrderItemId; +// private String originalOrderItemId; /** * 原始子订单skuId diff --git a/oms-api/src/main/java/com/qihang/oms/domain/OmsDouRefund.java b/oms-api/src/main/java/com/qihang/oms/domain/OmsDouRefund.java new file mode 100644 index 00000000..7c39a116 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/domain/OmsDouRefund.java @@ -0,0 +1,263 @@ +package com.qihang.oms.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 抖店退款表 + * @TableName oms_dou_refund + */ +@Data +public class OmsDouRefund implements Serializable { + /** + * 售后订单id,自增 + */ + private Long id; + + /** + * 订单所属商户id + */ + private Long shopId; + + /** + * 售后id + */ + private Long aftersaleId; + + /** + * 售后订单类型,枚举为-1(历史订单),1(商品单),2(店铺单) + */ + private Long aftersaleOrderType; + + /** + * 售后类型;0-退货退款;1-已发货仅退款;2-未发货仅退款;3-换货;6-价保;7-补寄;8-维修 + */ + private Long aftersaleType; + + /** + * 售后状态和请求参数standard_aftersale_status字段对应;3-换货待买家收货;6-待商家同意;7-待买家退货;8-待商家发货;11-待商家二次同意;12-售后成功;14-换货成功;27-商家一次拒绝;28-售后失败;29-商家二次拒绝; + */ + private Long aftersaleStatus; + + /** + * 售后完结时间,完结时间是平台根据商品的类型,售后状态等综合判断生成,当售后单有完结时间返回时售后单不可再做任何操作;未完结售后单的该字段值为0;Unix时间戳:秒 + */ + private Long aftersaleStatusToFinalTime; + + /** + * +关联的订单ID + */ + private String relatedId; + + /** + * 抖音子订单id + */ + private String orderSkuOrderId; + + /** + * 订单状态 + */ + private Long orderStatus; + + /** + * 付款金额 + */ + private Long orderPayAmount; + + /** + * +付运费金额 + */ + private Long orderPostAmount; + + /** + * 购买数量 + */ + private Long orderItemNum; + + /** + * 商品名 + */ + private String orderProductName; + + /** + * 商品图片 + */ + private String orderProductImage; + + /** + * 商品id + */ + private String orderProductId; + + /** + * 商品规格JSON + */ + private String orderSkuSpec; + + /** + * 商家SKU编码 + */ + private String orderShopSkuCode; + + /** + * 申请时间 + */ + private Long applyTime; + + /** + * 最近更新时间 + */ + private Long updateTime; + + /** + * 当前节点逾期时间 + */ + private Long statusDeadline; + + /** + * 售后退款金额,单位为分 + */ + private Long refundAmount; + + /** + * 售后退运费金额,单位为分 + */ + private Long refundPostAmount; + + /** + * +售后数量 + */ + private Long aftersaleNum; + + /** + * 部分退类型 + */ + private Long partType; + + /** + * 售后退款类型,枚举为-1(历史数据默认值),0(订单货款/原路退款),1(货到付款线下退款),2(备用金),3(保证金),4(无需退款),5(平台垫付) + */ + private Long aftersaleRefundType; + + /** + * 退款方式,枚举为1(极速退款助手)、2(售后小助手)、3(售后急速退)、4(闪电退货) + */ + private Long refundType; + + /** + * 仲裁状态,枚举为0(无仲裁记录),1(仲裁中),2(客服同意),3(客服拒绝),4(待商家举证),5(协商期),255(仲裁结束) + */ + private Long arbitrateStatus; + + /** + * +售后单创建时间 + */ + private Long createTime; + + /** + * 风控理由 + */ + private String riskDecisionReason; + + /** + * 风控描述 + */ + private String riskDecisionDescription; + + /** + * 退优惠金额 + */ + private Long returnPromotionAmount; + + /** + * 退款状态;1-待退款;2-退款中;3-退款成功;4-退款失败;5-追缴成功; + */ + private Long refundStatus; + + /** + * 仲裁责任方 1:商家责任,2:买家责任,3:双方有责,4:平台责任,5:达人责任 + */ + private Long arbitrateBlame; + + /** + * 退货物流单号 + */ + private String returnLogisticsCode; + + /** + * 退货物流公司名称 + */ + private String returnLogisticsCompanyName; + + /** + * 换货SKU信息JSON + */ + private String exchangeSkuInfo; + + /** + * 换货物流公司名称 + */ + private String exchangeLogisticsCompanyName; + + /** + * 备注 + */ + private String remark; + + /** + * 买家是否收到货物,0表示未收到,1表示收到 + */ + private Long gotPkg; + + /** + * 是否拒签后退款(1:已同意拒签, 2:未同意拒签) + */ + private Long isAgreeRefuseSign; + + /** + * 商家首次发货的正向物流信息JSON + */ + private String orderLogistics; + + /** + * 售后标签(含时效延长、风险预警、豁免体验分等标签)标签在平台侧会有更新,标签仅做展示使用,请勿作为系统判断依赖。JSON + */ + private String aftersaleTags; + + /** + * 售后子类型;8001-以换代修。 + */ + private Long aftersaleSubType; + + /** + * 自动审核方式:1-发货前极速退;2-小助手自动同意退款;3-发货后极速退;4-闪电退货;5-跨境零秒退;6-云仓拦截自动退;7-小助手自动同意退货;8-小助手自动同意拒签后退款;9-商家代客填写卡片发起售后;10-治理未发货自动同意退款;11-治理已发货自动同意退款;12-商家快递拦截成功自动退款;13-质检商品免审核;14-协商方案自动同意退款;15-平台卡券自动同意退款;16-三方卡券自动同意退款;17-治理一审自动同意退货退款 + */ + private String autoAuditBits; + + /** + * 文案部分JSON + */ + private String textPart; + + /** + * 售后关联的订单信息JSON + */ + private String relatedOrderInfo; + + /** + * 第一次拉取时间 + */ + private Date pullTime; + + /** + * 最后一次拉取时间 + */ + private Date pullLastTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/oms-api/src/main/java/com/qihang/oms/domain/OmsJdAfterSale.java b/oms-api/src/main/java/com/qihang/oms/domain/OmsJdAfterSale.java new file mode 100644 index 00000000..defd0848 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/domain/OmsJdAfterSale.java @@ -0,0 +1,275 @@ +package com.qihang.oms.domain; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import lombok.Data; + +/** + * 京东退款与售后表 + * @TableName oms_jd_after_sale + */ +@Data +public class OmsJdAfterSale implements Serializable { + /** + * + */ + private Long id; + + /** + * 店铺id + */ + private Integer shopId; + + /** + * 申请单号 + */ + private Long applyId; + + /** + * 服务单号 + */ + private Long serviceId; + + /** + * 退款单id + */ + private Long refundId; + + /** + * 订单号 + */ + private Long orderId; + + /** + * 申请时间 + */ + private Date applyTime; + + /** + * 退款金额(单位分) + */ + private Double applyRefundSum; + + /** + * 客户期望(1-售前退款 10-退货 20-换货 30-维修 40-大家电安装 50-大家电移机 60-大家电增值服务 70-上门维修 90-优鲜赔 80-补发商品 100-试用收回 11-仅退款) + */ + private Integer customerExpect; + + /** + * 客户期望名称 + */ + private String customerExpectName; + + /** + * 服务单状态(10000-待审核领取 10001-待审核 10002-待客户反馈 10004-审核关闭 10005-待收货 10006-待处理领取 10007-待处理 10009-待用户确认 10010-完成 10011-取消 10012-客户已反馈 10013-待审核和待客户反馈 10041-提交退款申请 1100-待下发维修中心接单 12000-上门维修中 14000-上门检测中 13000-商家催收待处理 13000-未收货,待收款 13000-已收货,待收款) + */ + private Integer serviceStatus; + + /** + * 服务单状态名称 + */ + private String serviceStatusName; + + /** + * 客户账号 + */ + private String customerPin; + + /** + * 客户姓名 + */ + private String customerName; + + /** + * 用户电话 + */ + private String customerTel; + + /** + * 取件地址 + */ + private String pickwareAddress; + + /** + * 取件方式(4-上门取件 5-上门换新取件 7-客户送货 8-大家电上门取件 9-大家电换新取件 40-客户发货 70-送货至门店 71-快递至门店 72-门店上门取件 80-京东快运上门取件 85-德邦取件) + */ + private Integer pickwareType; + + /** + * 订单类型(0-一般订单 2-拍卖订单 11-售后调货 15-返修发货 16-直接赔偿 21-POPFBP 22-POPSOP 23-POPLBP 24-POPLBV 25-POPSOPL 18-厂商直送 19-客服补件 42-通用合约 61-EPT订单 69-京东服务产品订单 19-客服补件 75-LOC订单 77-LSP订单 42-虚拟订单 88-总代订单 96-sop虚拟订单 100-提货卡订单 33-电子礼品卡 49-礼品卡 108-京东维修服务产品订单 131-X无人超市订单 142-企业店铺IBS订单 151-品牌门店线下订单 112-自营采购,以销定结 159-领货码订单 89-移动仓库订单 170-实体领货码订单 140-商家采购订单 193-scf订单 54-线下礼品卡订单 202-月卡订单 4-虚拟商品) + */ + private Integer orderType; + + /** + * 订单类型名称 + */ + private String orderTypeName; + + /** + * 实付金额 + */ + private BigDecimal actualPayPrice; + + /** + * 商品编号 + */ + private Long skuId; + + /** + * 售后商品类型(10-申请主商品 20-申请的赠品 30-附件 40-发票 50-发票复印件 60-出检报告 70-包装 80-防损吊牌 90-贺卡 100-礼品购包装 110-loc订单验证码 120-服务产品标识) + */ + private Integer wareType; + + /** + * 商品类型名称 + */ + private String wareTypeName; + + /** + * 商品名称 + */ + private String wareName; + + /** + * 商品类型(1-单品 2-赠品套装中的主商品 3-赠品套装中的赠品 4-套装中的单品 5-套装中的赠品 6-加价购赠品 7-延保通 8-延保通赠品) + */ + private Integer skuType; + + /** + * skuType对应名称 + */ + private String skuTypeName; + + /** + * 审核人账号 + */ + private String approvePin; + + /** + * 审核人姓名 + */ + private String approveName; + + /** + * 审核时间 + */ + private Date approveTime; + + /** + * 审核结果(11-直赔积分 12-直赔余额 13-直赔优惠卷 14-直赔京豆 21-直赔商品 22-上门换新 31-自营取件 32-客户送货 33-客户发货 34-闪电退款 35-虚拟退款 36-上门检测 37-客户送货至门店 38-保外维修 39-快递至门店 40-门店上门取件 80-大家电检测 81-大家电安装 82-大家电移机 83-大家电维修 84-大家电其它 85-闪电催收 86-上门维修 87-补发商品 91-退款不退货 92-预授权冻结 93-ACS换新 95-(超级体验店)门店换新 96-(超级体验店)主站换新 97-厂商维修-寄修 98-厂商维修-上门维修 99-厂商维修-送修 101-厂商大家电检测鉴定 102-厂商大家电安装 103-厂商大家电移机拆机 104-厂商大家电维修(上门维修) 105-厂商大家电拆机鉴定 106-换货 100-客户退货至团长 107-3c上门维修 108-增值服务 109-退货(筋斗云使用) 110-直赔(筋斗云使用) 111-上门检测取件) + */ + private Integer approveResult; + + /** + * 审核结果名称 + */ + private String approveResultName; + + /** + * 处理人账号 + */ + private String processPin; + + /** + * 处理人姓名 + */ + private String processName; + + /** + * 处理时间 + */ + private Date processTime; + + /** + * 处理结果(0-初始化 1-安装完成 2-维修完成 3-检测完成 4-拆机完成 5-咨询解释 6-取消 70-原返 80-换货 100-赔付) + */ + private Integer processResult; + + /** + * 处理结果名称 + */ + private String processResultName; + + /** + * 平台来源 + */ + private Integer platformSrc; + + /** + * 平台来源名称 + */ + private String platformSrcName; + + /** + * 服务单售后数量 + */ + private Integer serviceCount; + + /** + * 用户电话 + */ + private String desenCustomerTel; + + /** + * 客户帐号 + */ + private String buyerId; + + /** + * 客户姓名 + */ + private String buyerName; + + /** + * 审核日期 + */ + private String refundCheckTime; + + /** + * 退款审核状态: 0代表未审核, 1代表审核通过 2代表审核不通过 3代表京东财务审核通过;4代表京东财务审核不通过 + */ + private Integer refundStatus; + + /** + * 审核人 + */ + private String refundCheckUsername; + + /** + * 审核备注 + */ + private String refundCheckRemark; + + /** + * 退款原因 + */ + private String refundReason; + + /** + * 退款来源(10:客服; 11:网站; 12:配送拒收; 28:APP; 87:分拣中心,逆向物流; 98:微信手Q;) + */ + private Integer refundSystemId; + + /** + * 订单创建时间 + */ + private Date createTime; + + /** + * 创建人 + */ + private String createBy; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + 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/OmsPddRefund.java b/oms-api/src/main/java/com/qihang/oms/domain/OmsPddRefund.java new file mode 100644 index 00000000..2a2c3a5f --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/domain/OmsPddRefund.java @@ -0,0 +1,164 @@ +package com.qihang.oms.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 拼多多订单退款表 + * @TableName oms_pdd_refund + */ +@Data +public class OmsPddRefund implements Serializable { + /** + * 售后编号 + */ + private Long id; + + /** + * 内部店铺ID + */ + private Integer shopId; + + /** + * 订单编号 + */ + private String orderSn; + + /** + * 售后类型 1:全部 2:仅退款 3:退货退款 4:换货 5:缺货补寄 6:维修 + */ + private Integer afterSalesType; + + /** + * 售后状态 0:无售后 2:买家申请退款,待商家处理 3:退货退款,待商家处理 4:商家同意退款,退款中 5:平台同意退款,退款中 6:驳回退款,待买家处理 7:已同意退货退款,待用户发货 8:平台处理中 9:平台拒绝退款,退款关闭 10:退款成功 11:买家撤销 12:买家逾期未处理,退款失败 13:买家逾期,超过有效期 14:换货补寄待商家处理 15:换货补寄待用户处理 16:换货补寄成功 17:换货补寄失败 18:换货补寄待用户确认完成 21:待商家同意维修 22:待用户确认发货 24:维修关闭 25:维修成功 27:待用户确认收货 31:已同意拒收退款,待用户拒收 32:补寄待商家发货 33:待商家召回 + */ + private Integer afterSalesStatus; + + /** + * 售后原因 + */ + private String afterSaleReason; + + /** + * 订单成团时间 + */ + private String confirmTime; + + /** + * 创建时间 + */ + private String createdTime; + + /** + * 订单折扣金额(元) + */ + private Double discountAmount; + + /** + * 1纠纷退款 0非纠纷退款 + */ + private Double disputeRefundStatus; + + /** + * 商品图片 + */ + private String goodsImage; + + /** + * 拼多多商品id + */ + private Long goodsId; + + /** + * 商品名称 + */ + private String goodsName; + + /** + * 商品价格,单位:元 + */ + private Double goodsPrice; + + /** + * 订单金额(元) + */ + private Double orderAmount; + + /** + * 退款金额(元) + */ + private Double refundAmount; + + /** + * 同意退款操作人角色0:"默认",1:"用户",2:"商家",3:"平台",4:"系统",5:"团长",6:"司机",7:"代理人" + */ + private Integer refundOperatorRole; + + /** + * 拼多多商品skuid + */ + private Long skuId; + + /** + * 商家外部编码(商品) + */ + private String outerGoodsId; + + /** + * 商家外部编码(sku) + */ + private String outerId; + + /** + * 商品规格 + */ + private String goodsSpec; + + /** + * 数量 + */ + private Integer goodsNumber; + + /** + * 退货物流公司名称 + */ + private String shippingName; + + /** + * 极速退款标志位 1:极速退款,0:非极速退款 + */ + private Integer speedRefundFlag; + + /** + * 极速退款状态,"1":有极速退款资格,"2":极速退款失败, "3" 表示极速退款成功,其他表示非极速退款 + */ + private Integer speedRefundStatus; + + /** + * 0-未勾选 1-消费者选择的收货状态为未收到货 2-消费者选择的收货状态为已收到货 + */ + private Integer userShippingStatus; + + /** + * 快递单号 + */ + private String trackingNumber; + + /** + * 更新时间 + */ + private String updatedTime; + + /** + * + */ + 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/OmsTaoRefund.java b/oms-api/src/main/java/com/qihang/oms/domain/OmsTaoRefund.java new file mode 100644 index 00000000..04f41576 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/domain/OmsTaoRefund.java @@ -0,0 +1,250 @@ +package com.qihang.oms.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 淘宝退款表 + * @TableName oms_tao_refund + */ +@Data +public class OmsTaoRefund implements Serializable { + /** + * + */ + private Long id; + + /** + * 退款id + */ + private String refundId; + + /** + * 退款类型,可选值REFUND(仅退款),REFUND_AND_RETURN(退货退款),TMALL_EXCHANGE(天猫换货),TAOBAO_EXCHANGE(淘宝换货),REPAIR(维修),RESHIPPING(补寄),OTHERS(其他) + */ + private String disputeType; + + /** + * 店铺id + */ + private Integer shopId; + + /** + * 淘宝交易单号(订单号) + */ + private Long tid; + + /** + * 子订单号。如果是单笔交易oid会等于tid + */ + private Long oid; + + /** + * 支付给卖家的金额(交易总金额-退还给买家的金额)。精确到2位小数;单位:元。如:200.07,表示:200元7分 + */ + private Double payment; + + /** + * 商品价格。 + */ + private Double price; + + /** + * 交易总金额。精确到2位小数;单位:元。如:200.07,表示:200元7分 + */ + private Double totalFee; + + /** + * 退还金额(退还给买家的金额)。精确到2位小数;单位:元。如:200.07,表示:200元7分 + */ + private Double refundFee; + + /** + * 分账给卖家的钱 + */ + private Double splitSellerFee; + + /** + * 分账给淘宝的钱 + */ + private Double splitTaobaoFee; + + /** + * 退款申请时间。格式:yyyy-MM-dd HH:mm:ss + */ + private Date created; + + /** + * 更新时间。格式:yyyy-MM-dd HH:mm:ss + */ + private Date modified; + + /** + * 卖家昵称 + */ + private String sellerNick; + + /** + * 不需客服介入1;需要客服介入2;客服已经介入3;客服初审完成4;客服主管复审失败5;客服处理完成6;系统撤销(B2B使用),维权撤销(集市使用) 7;支持买家 8;支持卖家 9;举证中 10;开放申诉 11; + */ + private String csStatus; + + /** + * 退款状态。可选值WAIT_SELLER_AGREE(买家已经申请退款,等待卖家同意) WAIT_BUYER_RETURN_GOODS(卖家已经同意退款,等待买家退货) WAIT_SELLER_CONFIRM_GOODS(买家已经退货,等待卖家确认收货) SELLER_REFUSE_BUYER(卖家拒绝退款) CLOSED(退款关闭) SUCCESS(退款成功) + */ + private String status; + + /** + * 退款对应的订单交易状态。可选值TRADE_NO_CREATE_PAY(没有创建支付宝交易) WAIT_BUYER_PAY(等待买家付款) WAIT_SELLER_SEND_GOODS(等待卖家发货,即:买家已付款) WAIT_BUYER_CONFIRM_GOODS(等待买家确认收货,即:卖家已发货) TRADE_BUYER_SIGNED(买家已签收,货到付款专用) TRADE_FINISHED(交易成功) TRADE_CLOSED(交易关闭) TRADE_CLOSED_BY_TAOBAO(交易被淘宝关闭) ALL_WAIT_PAY(包含:WAIT_BUYER_PAY、TRADE_NO_CREATE_PAY) ALL_CLOSED(包含:TRADE_CLOSED、TRADE_CLOSED_BY_TAOBAO) 取自"http://open.taobao.com/dev/index.php/%E4%BA%A4%E6%98%93%E7%8A%B6%E6%80%81" + */ + private String orderStatus; + + /** + * 卖家收货地址 + */ + private String address; + + /** + * 退款先行垫付默认的未申请状态 0;退款先行垫付申请中 1;退款先行垫付,垫付完成 2;退款先行垫付,卖家拒绝收货 3;退款先行垫付,垫付关闭 4;退款先行垫付,垫付分账成功 5; + */ + private String advanceStatus; + + /** + * 支付宝交易号 + */ + private String alipayNo; + + /** + * 退货时间。格式:yyyy-MM-dd HH:mm:ss + */ + private Date goodReturnTime; + + /** + * 货物状态。可选值BUYER_NOT_RECEIVED (买家未收到货) BUYER_RECEIVED (买家已收到货) BUYER_RETURNED_GOODS (买家已退货) + */ + private String goodStatus; + + /** + * 买家是否需要退货。可选值:true(是),false(否) + */ + private Integer hasGoodReturn; + + /** + * 申请退款的商品数字编号 + */ + private Long numIid; + + /** + * 退货数量 + */ + private Long num; + + /** + * 商品外部商家编码 + */ + private String outerId; + + /** + * 退款原因 + */ + private String reason; + + /** + * 退款阶段,可选值:onsale/aftersale + */ + private String refundPhase; + + /** + * 物流方式.可选值:free(卖家包邮),post(平邮),express(快递),ems(EMS). + */ + private String shippingType; + + /** + * 退款说明 + */ + private String desc1; + + /** + * 物流公司 + */ + private String companyName; + + /** + * 退货运单号 + */ + private String sid; + + /** + * 买家发货时间 + */ + private String sendTime; + + /** + * 完结时间。格式:yyyy-MM-dd HH:mm:ss + */ + private Date endTime; + + /** + * 商品标题 + */ + private String title; + + /** + * 商品SKU信息 + */ + private String sku; + + /** + * 买家openUid + */ + private String buyerOpenUid; + + /** + * 买家昵称 + */ + private String buyerNick; + + /** + * 组合品信息 +num_iid String 2342344 商品数字编号 +item_name String 测试商品 商品标题 +quantity Number 123 数量 +sku_id String 123 sku_id +outer_iid String 123 商家外部编码(可与商家外部系统对接) +outer_sku_id String 123 123 + */ + private String combineItemInfo; + + /** + * 订单创建时间 + */ + private Date createTime; + + /** + * 创建人 + */ + private String createBy; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 推送状态(0未推送;1推送成功;2推送失败) + */ + private Integer pullStatus; + + /** + * 订单审核时间 + */ + private Date pullTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/oms-api/src/main/java/com/qihang/oms/domain/OmsWeiRefund.java b/oms-api/src/main/java/com/qihang/oms/domain/OmsWeiRefund.java new file mode 100644 index 00000000..b27202f6 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/domain/OmsWeiRefund.java @@ -0,0 +1,166 @@ +package com.qihang.oms.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 视频号小店退款 + * @TableName oms_wei_refund + */ +@Data +public class OmsWeiRefund implements Serializable { + /** + * + */ + private Long id; + + /** + * 店铺id + */ + private Integer shopId; + + /** + * 售后单号 + */ + private String afterSaleOrderId; + + /** + * 售后单当前状态,参考: +USER_CANCELD 用户取消申请 +MERCHANT_PROCESSING 商家受理中 +MERCHANT_REJECT_REFUND 商家拒绝退款 +MERCHANT_REJECT_RETURN 商家拒绝退货退款 +USER_WAIT_RETURN 待买家退货 +RETURN_CLOSED 退货退款关闭 +MERCHANT_WAIT_RECEIPT 待商家收货 +MERCHANT_OVERDUE_REFUND 商家逾期未退款 +MERCHANT_REFUND_SUCCESS 退款完成 +MERCHANT_RETURN_SUCCESS 退货退款完成 +PLATFORM_REFUNDING 平台退款中 +PLATFORM_REFUND_FAIL 平台退款失败 +USER_WAIT_CONFIRM 待用户确认 +MERCHANT_REFUND_RETRY_FAIL 商家打款失败,客服关闭售后 +MERCHANT_FAIL 售后关闭 +USER_WAIT_CONFIRM_UPDATE 待用户处理商家协商 +USER_WAIT_HANDLE_MERCHANT_AFTER_SALE 待用户处理商家代发起的售后申请 + */ + private String status; + + /** + * 买家身份标识 + */ + private String openid; + + /** + * 买家在开放平台的唯一标识符,若当前视频号小店已绑定到微信开放平台账号下会返回 + */ + private String unionid; + + /** + * 商品spuid + */ + private String productId; + + /** + * 商品skuid + */ + private String skuId; + + /** + * 售后数量 + */ + private Integer count; + + /** + * 是否极速退款RefundInfo + */ + private String fastRefund; + + /** + * 标明售后单退款直接原因, 枚举值参考 RefundReason + */ + private Integer refundReason; + + /** + * 退款金额(分) + */ + private Integer refundAmount; + + /** + * 快递单号 + */ + private String returnWaybillId; + + /** + * 物流公司id + */ + private String returnDeliveryId; + + /** + * 物流公司名称 + */ + private String returnDeliveryName; + + /** + * 售后相关商品信息JSON + */ + private String merchantUploadInfo; + + /** + * 售后单创建时间戳 + */ + private Integer createTime; + + /** + * 售后单更新时间戳 + */ + private Integer updateTime; + + /** + * 退款原因 + */ + private String reason; + + /** + * 退款原因解释 + */ + private String reasonText; + + /** + * 售后类型。REFUND:退款;RETURN:退货退款。 + */ + private String type; + + /** + * 订单号,该字段可用于获取订单 + */ + private String orderId; + + /** + * detail json + */ + private String details; + + /** + * 纠纷id,该字段可用于获取纠纷信息 + */ + private String complaintId; + + /** + * 微信支付退款的响应 + */ + private String refundResp; + + /** + * 推送状态(0未推送;1推送成功;2推送失败) + */ + private Integer pullStatus; + + /** + * 订单审核时间 + */ + private Date pullTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouRefundMapper.java b/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouRefundMapper.java new file mode 100644 index 00000000..4809ea39 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/mapper/OmsDouRefundMapper.java @@ -0,0 +1,18 @@ +package com.qihang.oms.mapper; + +import com.qihang.oms.domain.OmsDouRefund; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_dou_refund(抖店退款表)】的数据库操作Mapper +* @createDate 2024-06-20 11:17:16 +* @Entity com.qihang.oms.domain.OmsDouRefund +*/ +public interface OmsDouRefundMapper extends BaseMapper { + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/mapper/OmsJdAfterSaleMapper.java b/oms-api/src/main/java/com/qihang/oms/mapper/OmsJdAfterSaleMapper.java new file mode 100644 index 00000000..99fd2c1a --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/mapper/OmsJdAfterSaleMapper.java @@ -0,0 +1,18 @@ +package com.qihang.oms.mapper; + +import com.qihang.oms.domain.OmsJdAfterSale; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_jd_after_sale(京东退款与售后表)】的数据库操作Mapper +* @createDate 2024-06-20 11:17:16 +* @Entity com.qihang.oms.domain.OmsJdAfterSale +*/ +public interface OmsJdAfterSaleMapper extends BaseMapper { + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddRefundMapper.java b/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddRefundMapper.java new file mode 100644 index 00000000..89c25dd9 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/mapper/OmsPddRefundMapper.java @@ -0,0 +1,18 @@ +package com.qihang.oms.mapper; + +import com.qihang.oms.domain.OmsPddRefund; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_pdd_refund(拼多多订单退款表)】的数据库操作Mapper +* @createDate 2024-06-20 11:17:16 +* @Entity com.qihang.oms.domain.OmsPddRefund +*/ +public interface OmsPddRefundMapper extends BaseMapper { + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/mapper/OmsTaoRefundMapper.java b/oms-api/src/main/java/com/qihang/oms/mapper/OmsTaoRefundMapper.java new file mode 100644 index 00000000..5f1883ab --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/mapper/OmsTaoRefundMapper.java @@ -0,0 +1,18 @@ +package com.qihang.oms.mapper; + +import com.qihang.oms.domain.OmsTaoRefund; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_tao_refund(淘宝退款表)】的数据库操作Mapper +* @createDate 2024-06-20 11:17:16 +* @Entity com.qihang.oms.domain.OmsTaoRefund +*/ +public interface OmsTaoRefundMapper extends BaseMapper { + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/mapper/OmsWeiRefundMapper.java b/oms-api/src/main/java/com/qihang/oms/mapper/OmsWeiRefundMapper.java new file mode 100644 index 00000000..c9fd1985 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/mapper/OmsWeiRefundMapper.java @@ -0,0 +1,18 @@ +package com.qihang.oms.mapper; + +import com.qihang.oms.domain.OmsWeiRefund; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_wei_refund(视频号小店退款)】的数据库操作Mapper +* @createDate 2024-06-20 11:17:17 +* @Entity com.qihang.oms.domain.OmsWeiRefund +*/ +public interface OmsWeiRefundMapper 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 f6c20162..a374470e 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 @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON; import com.qihang.common.enums.EnumShopType; import com.qihang.common.mq.MqMessage; import com.qihang.common.mq.MqType; +import com.qihang.oms.service.ErpSaleAfterRefundService; import com.qihang.oms.service.ErpSaleOrderService; import lombok.AllArgsConstructor; import org.apache.kafka.clients.consumer.ConsumerRecord; @@ -21,6 +22,7 @@ import org.springframework.stereotype.Component; public class KafkaMQConsumer { private static final Logger logger = LoggerFactory.getLogger(KafkaMQConsumer.class); private final ErpSaleOrderService orderService; + private final ErpSaleAfterRefundService refundService; /** * 订单消息处理 @@ -56,6 +58,23 @@ public class KafkaMQConsumer { @KafkaListener(topics = {MqType.REFUND_MQ}) public void onRefundMessage(ConsumerRecord message) { logger.info("收到kafka消息REFUND============"+message.topic()+"====="+message.partition()+"======"+message.value()); + MqMessage vo = JSON.parseObject(message.value().toString(), MqMessage.class); + if(vo.getShopType().getIndex() == EnumShopType.JD.getIndex()) { + logger.info("Kafka售后消息JD"+vo.getKeyId()); + refundService.jdRefundMessage(vo.getKeyId()); + }else if(vo.getShopType().getIndex() == EnumShopType.TAO.getIndex()) { + logger.info("Kafka售后消息TAO"+vo.getKeyId()); + refundService.taoRefundMessage(vo.getKeyId()); + }else if(vo.getShopType().getIndex() == EnumShopType.PDD.getIndex()) { + logger.info("Kafka售后消息PDD"+vo.getKeyId()); + refundService.pddRefundMessage(vo.getKeyId()); + } else if(vo.getShopType().getIndex() == EnumShopType.DOU.getIndex()) { + logger.info("Kafka售后消息DOU"+vo.getKeyId()); + refundService.douRefundMessage(vo.getKeyId()); + } else if(vo.getShopType().getIndex() == EnumShopType.WEI.getIndex()) { + logger.info("Kafka售后消息WEI"+vo.getKeyId()); + refundService.weiRefundMessage(vo.getKeyId()); + } } /** diff --git a/oms-api/src/main/java/com/qihang/oms/service/ErpSaleAfterRefundService.java b/oms-api/src/main/java/com/qihang/oms/service/ErpSaleAfterRefundService.java index be020360..ac09a141 100644 --- a/oms-api/src/main/java/com/qihang/oms/service/ErpSaleAfterRefundService.java +++ b/oms-api/src/main/java/com/qihang/oms/service/ErpSaleAfterRefundService.java @@ -2,6 +2,7 @@ package com.qihang.oms.service; import com.qihang.common.common.PageQuery; import com.qihang.common.common.PageResult; +import com.qihang.common.common.ResultVo; import com.qihang.oms.domain.ErpSaleAfterRefund; import com.baomidou.mybatisplus.extension.service.IService; import com.qihang.oms.domain.ErpSaleOrder; @@ -13,4 +14,10 @@ import com.qihang.oms.domain.ErpSaleOrder; */ public interface ErpSaleAfterRefundService extends IService { PageResult queryPageList(ErpSaleAfterRefund bo, PageQuery pageQuery); + + ResultVo jdRefundMessage(String serviceId); + ResultVo weiRefundMessage(String afterSaleOrderId); + ResultVo taoRefundMessage(String refundId); + ResultVo pddRefundMessage(String refundId); + ResultVo douRefundMessage(String refundId); } 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 5681a55d..3ccd012a 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 @@ -20,6 +20,7 @@ public interface ErpSaleOrderService extends IService { ResultVo douOrderMessage(String orderId); ResultVo weiOrderMessage(String orderId); + List getList(ErpSaleOrder order); PageResult queryPageList(ErpSaleOrder bo, PageQuery pageQuery); diff --git a/oms-api/src/main/java/com/qihang/oms/service/OmsDouRefundService.java b/oms-api/src/main/java/com/qihang/oms/service/OmsDouRefundService.java new file mode 100644 index 00000000..3a120cbb --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/OmsDouRefundService.java @@ -0,0 +1,13 @@ +package com.qihang.oms.service; + +import com.qihang.oms.domain.OmsDouRefund; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_dou_refund(抖店退款表)】的数据库操作Service +* @createDate 2024-06-20 11:17:16 +*/ +public interface OmsDouRefundService extends IService { + +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/OmsJdAfterSaleService.java b/oms-api/src/main/java/com/qihang/oms/service/OmsJdAfterSaleService.java new file mode 100644 index 00000000..c53d44a8 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/OmsJdAfterSaleService.java @@ -0,0 +1,13 @@ +package com.qihang.oms.service; + +import com.qihang.oms.domain.OmsJdAfterSale; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_jd_after_sale(京东退款与售后表)】的数据库操作Service +* @createDate 2024-06-20 11:17:16 +*/ +public interface OmsJdAfterSaleService extends IService { + +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/OmsPddRefundService.java b/oms-api/src/main/java/com/qihang/oms/service/OmsPddRefundService.java new file mode 100644 index 00000000..43f1c1ff --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/OmsPddRefundService.java @@ -0,0 +1,13 @@ +package com.qihang.oms.service; + +import com.qihang.oms.domain.OmsPddRefund; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_pdd_refund(拼多多订单退款表)】的数据库操作Service +* @createDate 2024-06-20 11:17:16 +*/ +public interface OmsPddRefundService extends IService { + +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/OmsTaoRefundService.java b/oms-api/src/main/java/com/qihang/oms/service/OmsTaoRefundService.java new file mode 100644 index 00000000..96ae10f1 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/OmsTaoRefundService.java @@ -0,0 +1,13 @@ +package com.qihang.oms.service; + +import com.qihang.oms.domain.OmsTaoRefund; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_tao_refund(淘宝退款表)】的数据库操作Service +* @createDate 2024-06-20 11:17:16 +*/ +public interface OmsTaoRefundService extends IService { + +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/OmsWeiRefundService.java b/oms-api/src/main/java/com/qihang/oms/service/OmsWeiRefundService.java new file mode 100644 index 00000000..c4dbfbbe --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/OmsWeiRefundService.java @@ -0,0 +1,13 @@ +package com.qihang.oms.service; + +import com.qihang.oms.domain.OmsWeiRefund; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_wei_refund(视频号小店退款)】的数据库操作Service +* @createDate 2024-06-20 11:17:17 +*/ +public interface OmsWeiRefundService extends IService { + +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/ErpSaleAfterRefundServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/ErpSaleAfterRefundServiceImpl.java index aefdd619..a5e9d044 100644 --- a/oms-api/src/main/java/com/qihang/oms/service/impl/ErpSaleAfterRefundServiceImpl.java +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/ErpSaleAfterRefundServiceImpl.java @@ -5,25 +5,40 @@ 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.oms.domain.ErpSaleAfterRefund; -import com.qihang.oms.domain.ErpSaleOrder; -import com.qihang.oms.domain.ErpSaleOrderItem; +import com.qihang.common.common.ResultVo; +import com.qihang.common.common.ResultVoEnum; +import com.qihang.common.enums.EnumShopType; +import com.qihang.oms.domain.*; +import com.qihang.oms.mapper.*; import com.qihang.oms.service.ErpSaleAfterRefundService; -import com.qihang.oms.mapper.ErpSaleAfterRefundMapper; +import com.qihang.oms.service.OmsWeiRefundService; import lombok.AllArgsConstructor; +import lombok.extern.java.Log; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; +import java.util.Date; +import java.util.List; + /** * @author TW * @description 针对表【erp_sale_after_refund(售后退款表)】的数据库操作Service实现 * @createDate 2024-06-19 17:59:48 */ +@Log @AllArgsConstructor @Service public class ErpSaleAfterRefundServiceImpl extends ServiceImpl implements ErpSaleAfterRefundService{ - private final ErpSaleAfterRefundMapper mapper; + private final ErpSaleAfterRefundMapper mapper; + private final ErpSaleOrderItemMapper orderItemMapper; + private final OmsJdAfterSaleMapper jdAfterSaleMapper; + private final OmsTaoRefundMapper taoRefundMapper; + private final OmsPddRefundMapper pddRefundMapper; + private final OmsDouRefundMapper douRefundMapper; + private final OmsWeiRefundMapper weiRefundMapper; + @Override public PageResult queryPageList(ErpSaleAfterRefund bo, PageQuery pageQuery) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() @@ -37,6 +52,968 @@ public class ErpSaleAfterRefundServiceImpl extends ServiceImpl jdRefundMessage(String serviceId) { + log.info("京东退款消息处理"+serviceId); + // TODO:业务问题:一个订单退款单是否包含多个商品;一个京东订单是否包含多个ITEM + List afterList = jdAfterSaleMapper.selectList(new LambdaQueryWrapper().eq(OmsJdAfterSale::getServiceId, serviceId)); + if(afterList == null || afterList.size() == 0) { + // 没有找到订单信息 + return ResultVo.error(ResultVoEnum.NotFound,"没有找到京东售后单:"+serviceId); + } + OmsJdAfterSale jdAfter = afterList.get(0); + // 查询ERP订单 + Long erpGoodsId = 0L; + Long erpGoodsSkuId = 0L; + String specNum = ""; + String goodsSpec = ""; + String goodsImage = ""; + List orderItems = orderItemMapper.selectList(new LambdaQueryWrapper() + .eq(ErpSaleOrderItem::getOriginalOrderId,jdAfter.getOrderId()) + .eq(ErpSaleOrderItem::getOriginalSkuId,jdAfter.getSkuId())); + if(orderItems!=null && orderItems.size()>0){ + erpGoodsId = orderItems.get(0).getGoodsId(); + erpGoodsSkuId = orderItems.get(0).getSpecId(); + specNum = orderItems.get(0).getSpecNum(); + goodsSpec = orderItems.get(0).getGoodsSpec(); + goodsImage = orderItems.get(0).getGoodsImg(); + } +// OOrder order = null; +// OOrderItem orderItem = null; +// List oOrders = orderMapper.selectList(new LambdaQueryWrapper().eq(OOrder::getOrderNum, jdAfter.getOrderId()).eq(OOrder::getShopId, jdAfter.getShopId())); +// if(oOrders!=null && oOrders.size()>0){ +// order = oOrders.get(0); +// List oOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper().eq(OOrderItem::getOrderId, oOrders.get(0).getId()).eq(OOrderItem::getSkuId, jdAfter.getSkuId())); +// if(oOrderItems!=null && oOrderItems.size()>0){ +// orderItem = oOrderItems.get(0); +// }else{ +// return ResultVo.error(ResultVoEnum.NotFound,"没有找到京东子订单erp信息:"+jdAfter.getOrderId()+",SKU:"+jdAfter.getSkuId()); +// } +// }else{ +// return ResultVo.error(ResultVoEnum.NotFound,"没有找到京东订单erp信息:"+jdAfter.getOrderId()); +// } + + List refunds = mapper.selectList(new LambdaQueryWrapper().eq(ErpSaleAfterRefund::getRefundNum, jdAfter.getServiceId())); + if(refunds == null || refunds.isEmpty()) { + // 新增 + ErpSaleAfterRefund insert = new ErpSaleAfterRefund(); + insert.setRefundNum(jdAfter.getServiceId().toString()); + + insert.setShopId(jdAfter.getShopId()); + insert.setShopType(EnumShopType.JD.getIndex()); + insert.setOriginalOrderId(jdAfter.getOrderId().toString()); +// insert.setOrderItemNum(orderItem.getSubOrderNum()); + insert.setOriginalSkuId(jdAfter.getSkuId().toString()); + insert.setErpGoodsId(erpGoodsId); + insert.setErpGoodsSkuId(erpGoodsSkuId); + insert.setSpecNum(specNum); + insert.setGoodsName(jdAfter.getWareName()); + insert.setGoodsSku(goodsSpec); + insert.setGoodsImage(goodsImage); + insert.setQuantity(jdAfter.getServiceCount().longValue()); + + // 售后类型:1-售前退款 2-退货退款 3-换货 4-维修 5-补发 9-仅退款 10其他 + Integer refundType=null; + //买家是否需要退货。1(是),0(否) + Integer hasReturnGoods = null; + //状态(10001待审核10002等待买家退货10003待客户反馈 10005等待卖家收货10007待商家处理10008商家处理中14000拒绝退款10011退款关闭10010退款完成) + Integer status = null; + + //客户期望(1-售前退款 10-退货 20-换货 30-维修 40-大家电安装 50-大家电移机 60-大家电增值服务 70-上门维修 90-优鲜赔 80-补发商品 100-试用收回 11-仅退款) + if(jdAfter.getCustomerExpect() == 1){ + hasReturnGoods = 0; + refundType=1; + // refund_status 退款审核状态: 0代表未审核, 1代表审核通过 2代表审核不通过 3代表京东财务审核通过;4代表京东财务审核不通过 + if(jdAfter.getRefundStatus() == 0){ + // 10001-待审核 + status = 10001; + } + else if(jdAfter.getRefundStatus() == 1){ + // 10003-审核通过 等待平台审核 + status = 10003; + } + else if(jdAfter.getRefundStatus() == 3){ + // 10010-退款成功(完成) + status = 10010; + } + else if(jdAfter.getRefundStatus() == 2){ + // 14000-卖家拒绝退款 + status = 14000; + } + else if(jdAfter.getRefundStatus() == 4){ + // 10011-退款关闭(取消) + status = 10011; + } + insert.setRefundReason(jdAfter.getRefundReason()); + insert.setRefundFee(jdAfter.getApplyRefundSum()!=null?jdAfter.getApplyRefundSum()/100:0.0); + }else{ + insert.setRefundFee(0.0); + //服务单状态(10000-待审核领取 10001-待审核 + // 10002-待客户反馈 10009-待用户确认 10006-待处理领取 10013-待审核和待客户反馈 13000-商家催收待处理 + // 10004-审核关闭 10011-取消 + // 10005-待收货 + // 10010-完成 + // 10007-待处理 10012-客户已反馈 10041-提交退款申请 1100-待下发维修中心接单 13000-未收货,待收款 13000-已收货,待收款 + // 12000-上门维修中 14000-上门检测中 +// insert.setStatus(jdAfter.getServiceStatus()); + if(jdAfter.getServiceStatus() == 10000||jdAfter.getServiceStatus() == 10001){ + //状态(10001待审核10002等待买家退货10003待客户反馈 10005等待卖家收货10007待商家处理10008商家处理中14000拒绝退款10011退款关闭10010退款完成) + status=10001; + }else if(jdAfter.getServiceStatus() == 10002||jdAfter.getServiceStatus() == 10009 ||jdAfter.getServiceStatus() == 10006||jdAfter.getServiceStatus() == 10013||jdAfter.getServiceStatus() == 13000){ + status=10003;//待客户反馈 + }else if(jdAfter.getServiceStatus() == 10004||jdAfter.getServiceStatus() == 10011){ + status = 10011; + }else if(jdAfter.getServiceStatus() == 10005){ + status = 10005; + }else if(jdAfter.getServiceStatus() == 10010){ + status = 10010; + }else if(jdAfter.getServiceStatus() == 10007||jdAfter.getServiceStatus() == 10012||jdAfter.getServiceStatus() == 10041||jdAfter.getServiceStatus() == 1100||jdAfter.getServiceStatus() == 13000){ + status = 10007; + }else if(jdAfter.getServiceStatus() == 12000||jdAfter.getServiceStatus() == 14000){ + status = 10008; + } + //客户期望(1-售前退款 10-退货 20-换货 30-维修 40-大家电安装 50-大家电移机 60-大家电增值服务 70-上门维修 90-优鲜赔 80-补发商品 100-试用收回 11-仅退款) + if(jdAfter.getCustomerExpect() == 11){ + hasReturnGoods = 0; + // 售后类型:1-售前退款 2-退货退款 3-换货 4-维修 5-补发 6-上门服务 8-退差价 9-仅退款 10其他 + refundType=9; + }else if(jdAfter.getCustomerExpect() == 10){ + hasReturnGoods = 1; + refundType=2; + }else if(jdAfter.getCustomerExpect() == 20){ + hasReturnGoods = 1; + refundType=3; + } else if(jdAfter.getCustomerExpect() == 30){ + hasReturnGoods = 0; + refundType=4; + }else if(jdAfter.getCustomerExpect() == 40||jdAfter.getCustomerExpect() == 50||jdAfter.getCustomerExpect() == 60||jdAfter.getCustomerExpect() == 70){ + hasReturnGoods = 0; + refundType=6; + }else if(jdAfter.getCustomerExpect() == 90){ + hasReturnGoods = 0; + refundType=8; + }else if(jdAfter.getCustomerExpect() == 80){ + hasReturnGoods = 0; + refundType=5; + }else if(jdAfter.getCustomerExpect() == 100){ + hasReturnGoods = 1; + refundType=10; + } + } + + insert.setRefundType(refundType); + insert.setHasGoodReturn(hasReturnGoods); + insert.setStatus(status); + insert.setCreateTime(new Date()); + insert.setCreateBy("REFUND_MESSAGE"); + mapper.insert(insert); + }else{ + // 修改 + Integer status = null; + if(jdAfter.getCustomerExpect() == 1){ + // refund_status 退款审核状态: 0代表未审核, 1代表审核通过 2代表审核不通过 3代表京东财务审核通过;4代表京东财务审核不通过 + if(jdAfter.getRefundStatus() == 0){ + // 10001-待审核 + status = 10001; + } + else if(jdAfter.getRefundStatus() == 1){ + // 10003-审核通过 等待平台审核 + status = 10003; + } + else if(jdAfter.getRefundStatus() == 3){ + // 10010-退款成功(完成) + status = 10010; + } + else if(jdAfter.getRefundStatus() == 2){ + // 14000-卖家拒绝退款 + status = 14000; + } + else if(jdAfter.getRefundStatus() == 4){ + // 10011-退款关闭(取消) + status = 10011; + } + }else{ + //服务单状态(10000-待审核领取 10001-待审核 + // 10002-待客户反馈 10009-待用户确认 10006-待处理领取 10013-待审核和待客户反馈 13000-商家催收待处理 + // 10004-审核关闭 10011-取消 + // 10005-待收货 + // 10010-完成 + // 10007-待处理 10012-客户已反馈 10041-提交退款申请 1100-待下发维修中心接单 13000-未收货,待收款 13000-已收货,待收款 + // 12000-上门维修中 14000-上门检测中 +// insert.setStatus(jdAfter.getServiceStatus()); + if(jdAfter.getServiceStatus() == 10000||jdAfter.getServiceStatus() == 10001){ + //状态(10001待审核10002等待买家退货10003待客户反馈 10005等待卖家收货10007待商家处理10008商家处理中14000拒绝退款10011退款关闭10010退款完成) + status=10001; + }else if(jdAfter.getServiceStatus() == 10002||jdAfter.getServiceStatus() == 10009 ||jdAfter.getServiceStatus() == 10006||jdAfter.getServiceStatus() == 10013||jdAfter.getServiceStatus() == 13000){ + status=10003;//待客户反馈 + }else if(jdAfter.getServiceStatus() == 10004||jdAfter.getServiceStatus() == 10011){ + status = 10011; + }else if(jdAfter.getServiceStatus() == 10005){ + status = 10005; + }else if(jdAfter.getServiceStatus() == 10010){ + status = 10010; + }else if(jdAfter.getServiceStatus() == 10007||jdAfter.getServiceStatus() == 10012||jdAfter.getServiceStatus() == 10041||jdAfter.getServiceStatus() == 1100||jdAfter.getServiceStatus() == 13000){ + status = 10007; + }else if(jdAfter.getServiceStatus() == 12000||jdAfter.getServiceStatus() == 14000){ + status = 10008; + } + } + ErpSaleAfterRefund update = new ErpSaleAfterRefund(); + update.setId(refunds.get(0).getId()); + update.setStatus(status); + update.setUpdateTime(new Date()); + update.setUpdateBy("REFUND_MESSAGE"); + mapper.updateById(update); + } + return ResultVo.success(); + } + + @Transactional + @Override + public ResultVo weiRefundMessage(String afterSaleOrderId) { + log.info("wei售后消息处理" + afterSaleOrderId); + List returnList = weiRefundMapper.selectList(new LambdaQueryWrapper().eq(OmsWeiRefund::getAfterSaleOrderId, afterSaleOrderId)); + if (returnList == null || returnList.size() == 0) { + // 没有找到订单信息 + return ResultVo.error(ResultVoEnum.NotFound, "没有找到wei售后:" + afterSaleOrderId); + } + OmsWeiRefund refund = returnList.get(0); + + //查询ERP goods + // 查询ERP订单 + Long erpGoodsId = 0L; + Long erpGoodsSkuId = 0L; + String specNum = ""; + String goodsSpec = ""; + String goodsImage = ""; + String goodsName = ""; + List orderItems = orderItemMapper.selectList(new LambdaQueryWrapper() + .eq(ErpSaleOrderItem::getOriginalOrderId,refund.getOrderId()) + .eq(ErpSaleOrderItem::getOriginalSkuId,refund.getSkuId())); + if(orderItems!=null && orderItems.size()>0){ + erpGoodsId = orderItems.get(0).getGoodsId(); + erpGoodsSkuId = orderItems.get(0).getSpecId(); + specNum = orderItems.get(0).getSpecNum(); + goodsSpec = orderItems.get(0).getGoodsSpec(); + goodsImage = orderItems.get(0).getGoodsImg(); + goodsName = orderItems.get(0).getGoodsTitle(); + } + + List refunds = mapper.selectList(new LambdaQueryWrapper().eq(ErpSaleAfterRefund::getRefundNum, refund.getAfterSaleOrderId())); + if (refunds == null || refunds.isEmpty()) { + // 新增 + ErpSaleAfterRefund insert = new ErpSaleAfterRefund(); + insert.setRefundNum(refund.getAfterSaleOrderId()); + insert.setShopId(refund.getShopId()); + insert.setShopType(EnumShopType.WEI.getIndex()); + insert.setOriginalOrderId(refund.getOrderId()); + insert.setOriginalSkuId(refund.getSkuId()); + insert.setErpGoodsId(erpGoodsId); + insert.setErpGoodsSkuId(erpGoodsSkuId); + insert.setSpecNum(specNum); + insert.setGoodsName(goodsName); + insert.setGoodsSku(goodsSpec); + insert.setGoodsImage(goodsImage); + insert.setQuantity(refund.getCount().longValue()); + insert.setRefundReason(refund.getReasonText()); + try { + insert.setRefundFee(refund.getRefundAmount().doubleValue() / 100); + }catch (Exception e){ + insert.setRefundFee(0.0); + } + //类型 type REFUND:退款;RETURN:退货退款。 + //refund_type 售后类型:1-售前退款 2-退货退款 3-换货 4-维修 5-补发 6-上门服务 8-退差价 9-仅退款 10其他 + Integer refundType=null; + //买家是否需要退货。1(是),0(否) + Integer hasReturnGoods = null; + //状态(10001-待审核 10002-等待买家退货 10003-待客户反馈 10005-等待卖家收货 10007-待商家处理 10008-商家处理中 14000-拒绝退款 10011-退款关闭 10010-退款完成 10020-平台处理中 10021-平台处理失败) + Integer status = null; + if(refund.equals("REFUND")){ + refundType = 9; + hasReturnGoods = 0; + }else if(refund.equals("RETURN")){ + refundType = 2; + hasReturnGoods = 1; + } + + + //AfterSaleStatus + /** + * USER_CANCELD 用户取消申请 10011 + * MERCHANT_PROCESSING 商家受理中 10007 + * MERCHANT_REJECT_REFUND 商家拒绝退款 14000 + * MERCHANT_REJECT_RETURN 商家拒绝退货退款 14000 + * USER_WAIT_RETURN 待买家退货 10002 + * RETURN_CLOSED 退货退款关闭 10011 + * MERCHANT_WAIT_RECEIPT 待商家收货 10005 + * MERCHANT_OVERDUE_REFUND 商家逾期未退款 10007 + * MERCHANT_REFUND_SUCCESS 退款完成 10010 + * MERCHANT_RETURN_SUCCESS 退货退款完成 10010 + * PLATFORM_REFUNDING 平台退款中 10020 + * PLATFORM_REFUND_FAIL 平台退款失败 10021 + * USER_WAIT_CONFIRM 待用户确认 10003 + * MERCHANT_REFUND_RETRY_FAIL 商家打款失败,客服关闭售后 10021 + * MERCHANT_FAIL 售后关闭 10011 + * USER_WAIT_CONFIRM_UPDATE 待用户处理商家协商 10003 + * USER_WAIT_HANDLE_MERCHANT_AFTER_SALE 待用户处理商家代发起的售后申请 10003 + */ + if(refund.getStatus().equals("USER_CANCELD")||refund.getStatus().equals("MERCHANT_FAIL")){ + status = 10011; + }else if(refund.getStatus().equals("MERCHANT_PROCESSING")||refund.getStatus().equals("MERCHANT_OVERDUE_REFUND")){ + status = 10007; + }else if(refund.getStatus().equals("MERCHANT_REJECT_REFUND")||refund.getStatus().equals("MERCHANT_REJECT_RETURN")){ + status = 14000; + }else if(refund.getStatus().equals("USER_WAIT_RETURN")){ + status = 10002; + }else if(refund.getStatus().equals("RETURN_CLOSED")){ + status = 10011; + }else if(refund.getStatus().equals("MERCHANT_WAIT_RECEIPT")){ + status = 10005; + }else if(refund.getStatus().equals("MERCHANT_REFUND_SUCCESS")||refund.getStatus().equals("MERCHANT_RETURN_SUCCESS")){ + status = 10010; + }else if(refund.getStatus().equals("PLATFORM_REFUNDING")){ + status = 10020; + }else if(refund.getStatus().equals("PLATFORM_REFUND_FAIL")||refund.getStatus().equals("MERCHANT_REFUND_RETRY_FAIL")){ + status = 10021; + }else if(refund.getStatus().equals("USER_WAIT_CONFIRM")||refund.getStatus().equals("USER_WAIT_CONFIRM_UPDATE")||refund.getStatus().equals("USER_WAIT_HANDLE_MERCHANT_AFTER_SALE")){ + status = 10003; + } + + insert.setHasGoodReturn(hasReturnGoods); + insert.setRefundType(refundType); + insert.setStatus(status); + insert.setCreateTime(new Date()); + insert.setCreateBy("REFUND_MESSAGE"); + mapper.insert(insert); + } else { + // 修改 + Integer status = null; + if (refund.getStatus().equals("USER_CANCELD") || refund.getStatus().equals("MERCHANT_FAIL")) { + status = 10011; + } else if (refund.getStatus().equals("MERCHANT_PROCESSING") || refund.getStatus().equals("MERCHANT_OVERDUE_REFUND")) { + status = 10007; + } else if (refund.getStatus().equals("MERCHANT_REJECT_REFUND") || refund.getStatus().equals("MERCHANT_REJECT_RETURN")) { + status = 14000; + } else if (refund.getStatus().equals("USER_WAIT_RETURN")) { + status = 10002; + } else if (refund.getStatus().equals("RETURN_CLOSED")) { + status = 10011; + } else if (refund.getStatus().equals("MERCHANT_WAIT_RECEIPT")) { + status = 10005; + } else if (refund.getStatus().equals("MERCHANT_REFUND_SUCCESS") || refund.getStatus().equals("MERCHANT_RETURN_SUCCESS")) { + status = 10010; + } else if (refund.getStatus().equals("PLATFORM_REFUNDING")) { + status = 10020; + } else if (refund.getStatus().equals("PLATFORM_REFUND_FAIL") || refund.getStatus().equals("MERCHANT_REFUND_RETRY_FAIL")) { + status = 10021; + } else if (refund.getStatus().equals("USER_WAIT_CONFIRM") || refund.getStatus().equals("USER_WAIT_CONFIRM_UPDATE") || refund.getStatus().equals("USER_WAIT_HANDLE_MERCHANT_AFTER_SALE")) { + status = 10003; + } + + ErpSaleAfterRefund update = new ErpSaleAfterRefund(); + update.setId(refunds.get(0).getId()); + update.setStatus(status); + update.setUpdateTime(new Date()); + update.setUpdateBy("REFUND_MESSAGE"); + mapper.updateById(update); + } + + + return ResultVo.success(); + } + + @Transactional + @Override + public ResultVo taoRefundMessage(String refundId) { + log.info("TAO退款消息处理" + refundId); + List refundList = taoRefundMapper.selectList(new LambdaQueryWrapper().eq(OmsTaoRefund::getRefundId, refundId)); + if (refundList == null || refundList.size() == 0) { + // 没有找到订单信息 + log.info("没有找到TAO售后单:"+refundId); + return ResultVo.error(ResultVoEnum.NotFound, "没有找到TAO售后单:" + refundId); + } + OmsTaoRefund taoRefund = refundList.get(0); + +// List taoOrderItems = taoOrderItemMapper.selectList(new LambdaQueryWrapper().eq(TaoOrderItem::getOid, taoRefund.getOid())); +// if(taoOrderItems == null || taoOrderItems.size()==0) { +// log.info("没有找到TAO子订单:"+taoRefund.getOid()); +// return ResultVo.error(ResultVoEnum.NotFound, "没有找到TAO子订单:" + taoRefund.getOid()); +// } +// // 查询ERP订单 +// OOrder order = null; +// OOrderItem orderItem = null; +// List oOrders = orderMapper.selectList(new LambdaQueryWrapper().eq(OOrder::getOrderNum, taoRefund.getTid()).eq(OOrder::getShopId, taoRefund.getShopId())); +// if(oOrders!=null && oOrders.size()>0){ +// order = oOrders.get(0); +// List oOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper().eq(OOrderItem::getOrderId, oOrders.get(0).getId()).eq(OOrderItem::getSubOrderNum, taoRefund.getOid())); +// if(oOrderItems!=null && oOrderItems.size()>0){ +// orderItem = oOrderItems.get(0); +// }else{ +// log.info("没有找到TAO子订单erp信息:"+taoRefund.getOid()); +// return ResultVo.error(ResultVoEnum.NotFound,"没有找到TAO子订单erp信息:"+taoRefund.getOid()); +// } +// }else{ +// log.info("没有找到TAO订单erp信息:"+taoRefund.getOid()); +// return ResultVo.error(ResultVoEnum.NotFound,"没有找到TAO订单erp信息:"+taoRefund.getTid()); +// } + //查询ERP goods + // 查询ERP订单 + Long erpGoodsId = 0L; + Long erpGoodsSkuId = 0L; + String originSkuId = "0"; + String specNum = ""; + String goodsSpec = ""; + String goodsImage = ""; +// String goodsName = ""; + List orderItems = orderItemMapper.selectList(new LambdaQueryWrapper() + .eq(ErpSaleOrderItem::getOriginalOrderId,taoRefund.getTid()) + .eq(ErpSaleOrderItem::getOriginalOrderItemId,taoRefund.getOid())); + if(orderItems!=null && orderItems.size()>0){ + erpGoodsId = orderItems.get(0).getGoodsId(); + erpGoodsSkuId = orderItems.get(0).getSpecId(); + originSkuId = orderItems.get(0).getOriginalSkuId(); + specNum = orderItems.get(0).getSpecNum(); + goodsSpec = orderItems.get(0).getGoodsSpec(); + goodsImage = orderItems.get(0).getGoodsImg(); +// goodsName = orderItems.get(0).getGoodsTitle(); + } + + List refunds = mapper.selectList(new LambdaQueryWrapper().eq(ErpSaleAfterRefund::getRefundNum, taoRefund.getRefundId())); + if (refunds == null || refunds.isEmpty()) { + // 新增 + ErpSaleAfterRefund insert = new ErpSaleAfterRefund(); + insert.setRefundNum(taoRefund.getRefundId()); + insert.setShopId(taoRefund.getShopId()); + insert.setShopType(EnumShopType.TAO.getIndex()); + insert.setOriginalOrderId(taoRefund.getTid().toString()); +// insert.setOriginalOrderItemId(taoRefund.getOid().toString()); + insert.setOriginalSkuId(originSkuId); + insert.setErpGoodsId(erpGoodsId); + insert.setErpGoodsSkuId(erpGoodsSkuId); + insert.setSpecNum(specNum); + insert.setGoodsName(taoRefund.getTitle()); + insert.setGoodsSku(goodsSpec); + insert.setGoodsImage(goodsImage); + insert.setQuantity(taoRefund.getNum()); + // 售后类型:1-售前退款 2-退货退款 3-换货 4-维修 5-补发 6-上门服务 8-退差价 9-仅退款 10其他 + Integer refundType = null; + // REFUND(仅退款),REFUND_AND_RETURN(退货退款),TMALL_EXCHANGE(天猫换货),TAOBAO_EXCHANGE(淘宝换货),REPAIR(维修),RESHIPPING(补寄),OTHERS(其他) + if (taoRefund.getDisputeType().equals("REFUND")) { + refundType = 9; + } else if (taoRefund.getDisputeType().equals("REFUND_AND_RETURN")) { + refundType = 2; + } else if (taoRefund.getDisputeType().equals("TMALL_EXCHANGE") || taoRefund.getDisputeType().equals("TAOBAO_EXCHANGE")) { + refundType = 3; + } else if (taoRefund.getDisputeType().equals("REPAIR")) { + refundType = 4; + } else if (taoRefund.getDisputeType().equals("RESHIPPING")) { + refundType = 5; + } else if (taoRefund.getDisputeType().equals("OTHERS")) { + refundType = 10; + } + insert.setRefundType(refundType); + insert.setHasGoodReturn(taoRefund.getHasGoodReturn()); + Integer status= null; + //退款状态。WAIT_SELLER_AGREE(买家已经申请退款,等待卖家同意) WAIT_BUYER_RETURN_GOODS(卖家已经同意退款,等待买家退货) WAIT_SELLER_CONFIRM_GOODS(买家已经退货,等待卖家确认收货) + // SELLER_REFUSE_BUYER(卖家拒绝退款) CLOSED(退款关闭) SUCCESS(退款成功) + + //状态(10001-待审核 10002-等待买家退货 10003-待客户反馈 10005-等待卖家收货 10007-待商家处理 10008-商家处理中 14000-拒绝退款 10011-退款关闭 10010-退款完成 10020-平台处理中 10021-平台处理失败) + if(taoRefund.getStatus().equals("WAIT_SELLER_AGREE")){ + // 10001-待审核 + status = 10001; + }else if(taoRefund.getStatus().equals("WAIT_BUYER_RETURN_GOODS")){ + // 10002-等待买家退货(待客户反馈) + status = 10002; + }else if(taoRefund.getStatus().equals("WAIT_SELLER_CONFIRM_GOODS")){ + // 10005-等待卖家确认收货(待收货) + status = 10005; + }else if(taoRefund.getStatus().equals("SELLER_REFUSE_BUYER")){ + // 14000-卖家拒绝退款 + status = 14000; + }else if(taoRefund.getStatus().equals("CLOSED")){ + // 10011-退款关闭(取消) + status = 10011; + }else if(taoRefund.getStatus().equals("SUCCESS")){ + // 10010-退款成功(完成) + status = 10010; + } + insert.setStatus(status); + insert.setRefundFee(taoRefund.getRefundFee()); + insert.setRefundReason(taoRefund.getReason()); + insert.setRemark(taoRefund.getDesc1()); + + insert.setCreateTime(new Date()); + insert.setCreateBy("REFUND_MESSAGE"); + mapper.insert(insert); + } else { + // 修改 + ErpSaleAfterRefund update = new ErpSaleAfterRefund(); + update.setId(taoRefund.getId()); + update.setHasGoodReturn(taoRefund.getHasGoodReturn()); + Integer status= null; + //退款状态。WAIT_SELLER_AGREE(买家已经申请退款,等待卖家同意) WAIT_BUYER_RETURN_GOODS(卖家已经同意退款,等待买家退货) WAIT_SELLER_CONFIRM_GOODS(买家已经退货,等待卖家确认收货) + // SELLER_REFUSE_BUYER(卖家拒绝退款) CLOSED(退款关闭) SUCCESS(退款成功) + if(taoRefund.getStatus().equals("WAIT_SELLER_AGREE")){ + // 10001-待审核 + status = 10001; + }else if(taoRefund.getStatus().equals("WAIT_BUYER_RETURN_GOODS")){ + // 10002-等待买家退货(待客户反馈) + status = 10002; + }else if(taoRefund.getStatus().equals("WAIT_SELLER_CONFIRM_GOODS")){ + // 10005-等待卖家确认收货(待收货) + status = 10005; + }else if(taoRefund.getStatus().equals("SELLER_REFUSE_BUYER")){ + // 14000-卖家拒绝退款 + status = 14000; + }else if(taoRefund.getStatus().equals("CLOSED")){ + // 10011-退款关闭(取消) + status = 10011; + }else if(taoRefund.getStatus().equals("SUCCESS")){ + // 10010-退款成功(完成) + status = 10010; + } + update.setStatus(status); + update.setUpdateTime(new Date()); + update.setUpdateBy("REFUND_MESSAGE"); + mapper.updateById(update); + } + return ResultVo.success(); + } + + @Override + public ResultVo pddRefundMessage(String refundId) { + log.info("PDD退款消息处理" + refundId); + List refundList = pddRefundMapper.selectList(new LambdaQueryWrapper().eq(OmsPddRefund::getId, refundId)); + if (refundList == null || refundList.size() == 0) { + // 没有找到订单信息 + log.info("没有找到PDD售后单:"+refundId); + return ResultVo.error(ResultVoEnum.NotFound, "没有找到PDD售后单:" + refundId); + } + OmsPddRefund originRefund = refundList.get(0); + + // 查询ERP订单 +// OOrder order = null; +// OOrderItem orderItem = null; +// List oOrders = orderMapper.selectList( +// new LambdaQueryWrapper() +// .eq(OOrder::getOrderNum, originRefund.getOrderSn()) +// .eq(OOrder::getShopId, originRefund.getShopId()) +// ); +// +// if(oOrders!=null && oOrders.size()>0){ +// order = oOrders.get(0); +// List oOrderItems = orderItemMapper.selectList( +// new LambdaQueryWrapper() +// .eq(OOrderItem::getOrderId, oOrders.get(0).getId()) +// .eq(OOrderItem::getSkuId, originRefund.getSkuId()) +// ); +// +// if(oOrderItems!=null && oOrderItems.size()>0){ +// orderItem = oOrderItems.get(0); +// }else{ +// log.info("没有找到PDD子订单erp信息:"+originRefund.getOrderSn()+"===="+originRefund.getSkuId()); +// return ResultVo.error(ResultVoEnum.NotFound,"没有找到PDD子订单erp信息:"+originRefund.getOrderSn()+"===="+originRefund.getSkuId()); +// } +// }else{ +// log.info("没有找到PDD订单erp信息:"+originRefund.getOrderSn()); +// return ResultVo.error(ResultVoEnum.NotFound,"没有找到PDD订单erp信息:"+originRefund.getOrderSn()); +// } + + //查询ERP goods + // 查询ERP订单 + Long erpGoodsId = 0L; + Long erpGoodsSkuId = 0L; + String specNum = ""; + String goodsSpec = ""; + String goodsImage = ""; + String goodsName = ""; + List orderItems = orderItemMapper.selectList(new LambdaQueryWrapper() + .eq(ErpSaleOrderItem::getOriginalOrderId,originRefund.getOrderSn()) + .eq(ErpSaleOrderItem::getOriginalSkuId,originRefund.getSkuId())); + if(orderItems!=null && orderItems.size()>0){ + erpGoodsId = orderItems.get(0).getGoodsId(); + erpGoodsSkuId = orderItems.get(0).getSpecId(); + specNum = orderItems.get(0).getSpecNum(); + goodsSpec = orderItems.get(0).getGoodsSpec(); + goodsImage = orderItems.get(0).getGoodsImg(); + goodsName = orderItems.get(0).getGoodsTitle(); + } + + List refunds = mapper.selectList(new LambdaQueryWrapper().eq(ErpSaleAfterRefund::getRefundNum, originRefund.getId())); + + if (refunds == null || refunds.isEmpty()) { + // 新增 + ErpSaleAfterRefund insert = new ErpSaleAfterRefund(); + insert.setRefundNum(originRefund.getId().toString()); + + Integer hasGoodReturn = 0; + // 售后类型:1-售前退款 2-退货退款 3-换货 4-维修 5-补发 6-上门服务 8-退差价 9-仅退款 10其他 + Integer refundType = null; + // PDD 售后类型 2:仅退款 3:退货退款 4:换货 5:缺货补寄 6:维修 + if (originRefund.getAfterSalesType()==2) { + refundType = 9; + } else if (originRefund.getAfterSalesType()==3) { + refundType = 2; + if(originRefund.getUserShippingStatus()==2){ + hasGoodReturn = 1; + } + } else if (originRefund.getAfterSalesType()==4) { + refundType = 3; + hasGoodReturn = 1; + } else if (originRefund.getAfterSalesType()==6) { + refundType = 4; + } else if (originRefund.getAfterSalesType()==5) { + refundType = 5; + } + insert.setRefundType(refundType); + insert.setHasGoodReturn(hasGoodReturn); + insert.setShopId(originRefund.getShopId()); + insert.setShopType(EnumShopType.PDD.getIndex()); + insert.setOriginalSkuId(originRefund.getOrderSn()); +// insert.setOrderItemNum(orderItem.getId()); + insert.setOriginalSkuId(originRefund.getSkuId().toString()); + insert.setErpGoodsId(erpGoodsId); + insert.setErpGoodsSkuId(erpGoodsSkuId); + insert.setSpecNum(specNum); +// insert.setSpecNum(originRefund.getOuterId()); + insert.setGoodsName(originRefund.getGoodsName()); + insert.setGoodsSku(originRefund.getGoodsSpec()); + insert.setGoodsImage(originRefund.getGoodsImage()); + insert.setQuantity(originRefund.getGoodsNumber().longValue()); + Integer status= null; + //退款状态O_Refund + // 状态(10001-待审核 10002-等待买家退货 10003-待客户反馈 10005-等待卖家收货 10006-补寄待商家发货 10007-待商家处理 10008-商家处理中 14000-拒绝退款 10011-退款关闭 10010-退款完成 10020-平台处理中 10021-平台处理失败) + + // PDD 售后状态 + // (10001) 2:买家申请退款,待商家处理 3:退货退款,待商家处理 + // (10020) 4:商家同意退款,退款中 5:平台同意退款,退款中 + // (10003) 6:驳回退款,待买家处理 + // (10002) 7:已同意退货退款,待用户发货 + // (10020) 8:平台处理中 + // (10011) 9:平台拒绝退款,退款关闭 + // (10010) 10:退款成功 + // (10011) 11:买家撤销 12:买家逾期未处理,退款失败 13:买家逾期,超过有效期 + // (10005) 14:换货补寄待商家处理 21:待商家同意维修 33:待商家召回 + // (10003) 15:换货补寄待用户处理 18:换货补寄待用户确认完成 27:待用户确认收货 22:待用户确认发货 31:已同意拒收退款,待用户拒收 + // (10091) 16:换货补寄成功 + // (10092) 17:换货补寄失败 + // (10093) 24:维修关闭 + // (10094) 25:维修成功 + // (10006) 32:补寄待商家发货 + if(originRefund.getAfterSalesStatus()== 2 ||originRefund.getAfterSalesStatus()== 3){ + // 10001-待审核(待商家处理) + status = 10001; + }else if(originRefund.getAfterSalesStatus()==4 ||originRefund.getAfterSalesStatus()== 5){ + // 10090退款中 + status = 10020; + }else if(originRefund.getAfterSalesStatus() == 6 ){ + // 10004 驳回退款,待买家处理 + status = 10003; + }else if(originRefund.getAfterSalesStatus() == 7 ){ + // 10002等待买家退货 + status = 10002; + }else if(originRefund.getAfterSalesStatus() == 8 ){ + // 10003等待平台审核 + status = 10020; + }else if(originRefund.getAfterSalesStatus() == 9 ||originRefund.getAfterSalesStatus() == 11||originRefund.getAfterSalesStatus() == 12||originRefund.getAfterSalesStatus() == 13){ + // 10011退款关闭 + status = 10011; + }else if(originRefund.getAfterSalesStatus() == 10 ){ + // 10010退款完成 + status = 10010; + }else if(originRefund.getAfterSalesStatus() == 14 ||originRefund.getAfterSalesStatus() == 21||originRefund.getAfterSalesStatus() == 33){ + // 10005等待卖家处理 + status = 10005; + }else if(originRefund.getAfterSalesStatus() == 15 ||originRefund.getAfterSalesStatus() == 18||originRefund.getAfterSalesStatus() == 22||originRefund.getAfterSalesStatus() == 27||originRefund.getAfterSalesStatus() == 31){ + // 10004待买家处理 + status = 10003; + }else if(originRefund.getAfterSalesStatus() == 32 ){ + // 10006等待卖家发货 + status = 10006; + }else if(originRefund.getAfterSalesStatus() == 16 ){ + // 10091换货成功 + status = 10091; + }else if(originRefund.getAfterSalesStatus() == 17 ){ + // 10092换货失败 + status = 10092; + }else if(originRefund.getAfterSalesStatus() == 24 ){ + // 10093维修关闭 + status = 10093; + }else if(originRefund.getAfterSalesStatus() == 25 ){ + // 10094维修成功 + status = 10094; + } + + insert.setStatus(status); + insert.setRefundFee(originRefund.getRefundAmount()); + insert.setRefundReason(originRefund.getAfterSaleReason()); + insert.setRemark(""); + insert.setCreateTime(new Date()); + insert.setCreateBy("REFUND_MESSAGE"); + mapper.insert(insert); + } else { + // 修改 + ErpSaleAfterRefund update = new ErpSaleAfterRefund(); + update.setId(originRefund.getId()); + Integer status= null; + //退款状态O_Refund + // 状态(10001-待审核 10002-等待买家退货 10003-待客户反馈 10005-等待卖家收货 10006-补寄待商家发货 10007-待商家处理 10008-商家处理中 14000-拒绝退款 10011-退款关闭 10010-退款完成 10020-平台处理中 10021-平台处理失败) + + // PDD 售后状态 + // (10001) 2:买家申请退款,待商家处理 3:退货退款,待商家处理 + // (10020) 4:商家同意退款,退款中 5:平台同意退款,退款中 + // (10003) 6:驳回退款,待买家处理 + // (10002) 7:已同意退货退款,待用户发货 + // (10020) 8:平台处理中 + // (10011) 9:平台拒绝退款,退款关闭 + // (10010) 10:退款成功 + // (10011) 11:买家撤销 12:买家逾期未处理,退款失败 13:买家逾期,超过有效期 + // (10005) 14:换货补寄待商家处理 21:待商家同意维修 33:待商家召回 + // (10003) 15:换货补寄待用户处理 18:换货补寄待用户确认完成 27:待用户确认收货 22:待用户确认发货 31:已同意拒收退款,待用户拒收 + // (10091) 16:换货补寄成功 + // (10092) 17:换货补寄失败 + // (10093) 24:维修关闭 + // (10094) 25:维修成功 + // (10006) 32:补寄待商家发货 + if(originRefund.getAfterSalesStatus()== 2 ||originRefund.getAfterSalesStatus()== 3){ + // 10001-待审核(待商家处理) + status = 10001; + }else if(originRefund.getAfterSalesStatus()==4 ||originRefund.getAfterSalesStatus()== 5){ + // 10090退款中 + status = 10020; + }else if(originRefund.getAfterSalesStatus() == 6 ){ + // 10004 驳回退款,待买家处理 + status = 10003; + }else if(originRefund.getAfterSalesStatus() == 7 ){ + // 10002等待买家退货 + status = 10002; + }else if(originRefund.getAfterSalesStatus() == 8 ){ + // 10003等待平台审核 + status = 10020; + }else if(originRefund.getAfterSalesStatus() == 9 ||originRefund.getAfterSalesStatus() == 11||originRefund.getAfterSalesStatus() == 12||originRefund.getAfterSalesStatus() == 13){ + // 10011退款关闭 + status = 10011; + }else if(originRefund.getAfterSalesStatus() == 10 ){ + // 10010退款完成 + status = 10010; + }else if(originRefund.getAfterSalesStatus() == 14 ||originRefund.getAfterSalesStatus() == 21||originRefund.getAfterSalesStatus() == 33){ + // 10005等待卖家处理 + status = 10005; + }else if(originRefund.getAfterSalesStatus() == 15 ||originRefund.getAfterSalesStatus() == 18||originRefund.getAfterSalesStatus() == 22||originRefund.getAfterSalesStatus() == 27||originRefund.getAfterSalesStatus() == 31){ + // 10004待买家处理 + status = 10003; + }else if(originRefund.getAfterSalesStatus() == 32 ){ + // 10006等待卖家发货 + status = 10006; + }else if(originRefund.getAfterSalesStatus() == 16 ){ + // 10091换货成功 + status = 10091; + }else if(originRefund.getAfterSalesStatus() == 17 ){ + // 10092换货失败 + status = 10092; + }else if(originRefund.getAfterSalesStatus() == 24 ){ + // 10093维修关闭 + status = 10093; + }else if(originRefund.getAfterSalesStatus() == 25 ){ + // 10094维修成功 + status = 10094; + } + update.setStatus(status); + update.setUpdateTime(new Date()); + update.setUpdateBy("REFUND_MESSAGE"); + mapper.updateById(update); + } + return ResultVo.success(); + } + + @Override + public ResultVo douRefundMessage(String refundId) { + log.info("DOU退款消息处理" + refundId); + List refundList = douRefundMapper.selectList(new LambdaQueryWrapper().eq(OmsDouRefund::getAftersaleId, refundId)); + if (refundList == null || refundList.size() == 0) { + // 没有找到订单信息 + log.info("没有找到DOU售后单:"+refundId); + return ResultVo.error(ResultVoEnum.NotFound, "没有找到DOU售后单:" + refundId); + } + OmsDouRefund originRefund = refundList.get(0); + + // 查询ERP订单 +// OOrder order = null; +// OOrderItem orderItem = null; +// List oOrders = orderMapper.selectList( +// new LambdaQueryWrapper() +// .eq(OOrder::getOrderNum, originRefund.getRelatedId()) +// .eq(OOrder::getShopId, originRefund.getShopId())); +// if(oOrders!=null && oOrders.size()>0){ +// order = oOrders.get(0); +// List oOrderItems = orderItemMapper.selectList( +// new LambdaQueryWrapper() +// .eq(OOrderItem::getOrderId, oOrders.get(0).getId()) +// .eq(OOrderItem::getSubOrderNum, originRefund.getOrderSkuOrderId()) +// ); +// if(oOrderItems!=null && oOrderItems.size()>0){ +// orderItem = oOrderItems.get(0); +// }else{ +// log.info("没有找到DOU子订单erp信息:"+ originRefund.getAftersaleId()); +// return ResultVo.error(ResultVoEnum.NotFound,"没有找到DOU子订单erp信息:"+originRefund.getAftersaleId()); +// } +// }else{ +// log.info("没有找到DOU订单erp信息:"+originRefund.getAftersaleId()); +// return ResultVo.error(ResultVoEnum.NotFound,"没有找到DOU订单erp信息:"+originRefund.getAftersaleId()); +// } + + //查询ERP goods + // 查询ERP订单 + Long erpGoodsId = 0L; + Long erpGoodsSkuId = 0L; + String originalSkuId =""; + String specNum = ""; + String goodsSpec = ""; + String goodsImage = ""; + String goodsName = ""; + + List orderItems = orderItemMapper.selectList(new LambdaQueryWrapper() + .eq(ErpSaleOrderItem::getOriginalOrderId,originRefund.getRelatedId()) + .eq(ErpSaleOrderItem::getOriginalOrderItemId,originRefund.getOrderSkuOrderId())); + if(orderItems!=null && orderItems.size()>0){ + erpGoodsId = orderItems.get(0).getGoodsId(); + erpGoodsSkuId = orderItems.get(0).getSpecId(); + specNum = orderItems.get(0).getSpecNum(); + goodsSpec = orderItems.get(0).getGoodsSpec(); + goodsImage = orderItems.get(0).getGoodsImg(); + goodsName = orderItems.get(0).getGoodsTitle(); + originalSkuId = orderItems.get(0).getOriginalSkuId(); + } + + List refunds = mapper.selectList(new LambdaQueryWrapper().eq(ErpSaleAfterRefund::getRefundNum, originRefund.getAftersaleId())); + + if (refunds == null || refunds.isEmpty()) { + // 新增 + ErpSaleAfterRefund insert = new ErpSaleAfterRefund(); + insert.setRefundNum(originRefund.getAftersaleId().toString()); + // 售后类型:1-售前退款 2-退货退款 3-换货 4-维修 5-补发 6-上门服务 8-退差价 9-仅退款 10其他 + Integer refundType = null; + Integer hasGoodReturn = 0; + // dou_refund售后类型;0-退货退款;1-已发货仅退款;2-未发货仅退款;3-换货;6-价保;7-补寄;8-维修 + if (originRefund.getAftersaleType()==0) { + refundType = 2; + if(originRefund.getGotPkg()==1) { + hasGoodReturn = 1; + } + } else if (originRefund.getAftersaleType()==1) { + refundType = 9; + if(originRefund.getGotPkg()==1) { + hasGoodReturn = 1; + } + } else if (originRefund.getAftersaleType()==2) { + refundType = 1; + hasGoodReturn = 0; + } else if (originRefund.getAftersaleType()==3) { + refundType = 3; + hasGoodReturn = 1; + } else if (originRefund.getAftersaleType()==7) { + refundType = 5; + } else if (originRefund.getAftersaleType()==8) { + refundType = 4; + }else if (originRefund.getAftersaleType()==6) { + refundType = 8; + } + insert.setRefundType(refundType); + insert.setHasGoodReturn(hasGoodReturn); + insert.setShopId(originRefund.getShopId().intValue()); + insert.setShopType(EnumShopType.DOU.getIndex()); + insert.setOriginalOrderId(originRefund.getRelatedId()); +// insert.setOrderItemNum(originRefund.getOrderSkuOrderId()); + insert.setOriginalSkuId(originalSkuId); + insert.setErpGoodsId(erpGoodsId); + insert.setErpGoodsSkuId(erpGoodsSkuId); + insert.setSpecNum(originRefund.getOrderShopSkuCode()); + insert.setGoodsName(originRefund.getOrderProductName()); + insert.setGoodsSku(originRefund.getOrderSkuSpec()); + insert.setGoodsImage(originRefund.getOrderProductImage()); + insert.setQuantity(originRefund.getAftersaleNum()); + //退款状态O_Refund + //状态(10001-待审核 10002-等待买家退货 10003-待买家处理 10005-等待卖家收货 10006-补寄待商家发货 10007-待商家处理 10008-商家处理中 14000-拒绝退款 10011-退款关闭 10010-退款完成 10020-平台处理中 10021-平台处理失败 10030-售后成功 10031-售后失败 10091-换货成功) + Integer status= null; + //DOU退款状态。3-换货待买家收货;6-待商家同意;7-待买家退货;8-待商家发货;11-待商家二次同意;12-售后成功;14-换货成功;27-商家一次拒绝;28-售后失败;29-商家二次拒绝; + + if(originRefund.getAftersaleStatus()==3){ + // 10004待买家处理 + status = 10003; + }else if(originRefund.getAftersaleStatus()==6||originRefund.getAftersaleStatus()==11){ + // 10007等待卖家处理 + status = 10007; + }else if(originRefund.getAftersaleStatus()==7){ + // 10002等待买家退货 + status = 10002; + }else if(originRefund.getAftersaleStatus()==8){ + // 10006等待卖家发货 + status = 10006; + }else if(originRefund.getAftersaleStatus()==12){ + // 10030售后成功 + status = 10030; + }else if(originRefund.getAftersaleStatus()==14){ + // 10091换货成功 + status = 10091; + }else if(originRefund.getAftersaleStatus()==28){ + // 10031售后失败 + status = 10031; + }else if(originRefund.getAftersaleStatus()==27||originRefund.getAftersaleStatus()==29){ + // 14000拒绝退款 + status = 14000; + } + insert.setStatus(status); + insert.setRefundFee(originRefund.getRefundAmount().doubleValue()/100); + insert.setRefundReason(""); + insert.setRemark(""); + insert.setCreateTime(new Date()); + insert.setCreateBy("REFUND_MESSAGE"); + mapper.insert(insert); + } else { + // 修改 + ErpSaleAfterRefund update = new ErpSaleAfterRefund(); + update.setId(originRefund.getId()); + + //状态(10001-待审核 10002-等待买家退货 10003-待买家处理 10005-等待卖家收货 10006-补寄待商家发货 10007-待商家处理 10008-商家处理中 14000-拒绝退款 10011-退款关闭 10010-退款完成 10020-平台处理中 10021-平台处理失败 10030-售后成功 10031-售后失败 10091-换货成功) + Integer status= null; + //DOU退款状态。3-换货待买家收货;6-待商家同意;7-待买家退货;8-待商家发货;11-待商家二次同意;12-售后成功;14-换货成功;27-商家一次拒绝;28-售后失败;29-商家二次拒绝; + + if(originRefund.getAftersaleStatus()==3){ + // 10004待买家处理 + status = 10003; + }else if(originRefund.getAftersaleStatus()==6||originRefund.getAftersaleStatus()==11){ + // 10007等待卖家处理 + status = 10007; + }else if(originRefund.getAftersaleStatus()==7){ + // 10002等待买家退货 + status = 10002; + }else if(originRefund.getAftersaleStatus()==8){ + // 10006等待卖家发货 + status = 10006; + }else if(originRefund.getAftersaleStatus()==12){ + // 10030售后成功 + status = 10030; + }else if(originRefund.getAftersaleStatus()==14){ + // 10091换货成功 + status = 10091; + }else if(originRefund.getAftersaleStatus()==28){ + // 10031售后失败 + status = 10031; + }else if(originRefund.getAftersaleStatus()==27||originRefund.getAftersaleStatus()==29){ + // 14000拒绝退款 + status = 14000; + } + update.setStatus(status); + update.setUpdateTime(new Date()); + update.setUpdateBy("REFUND_MESSAGE"); + mapper.updateById(update); + } + return ResultVo.success(); + } + } diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouRefundServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouRefundServiceImpl.java new file mode 100644 index 00000000..f7dbbe76 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsDouRefundServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.oms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.oms.domain.OmsDouRefund; +import com.qihang.oms.service.OmsDouRefundService; +import com.qihang.oms.mapper.OmsDouRefundMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_dou_refund(抖店退款表)】的数据库操作Service实现 +* @createDate 2024-06-20 11:17:16 +*/ +@Service +public class OmsDouRefundServiceImpl extends ServiceImpl + implements OmsDouRefundService{ + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OmsJdAfterSaleServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsJdAfterSaleServiceImpl.java new file mode 100644 index 00000000..049be664 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsJdAfterSaleServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.oms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.oms.domain.OmsJdAfterSale; +import com.qihang.oms.service.OmsJdAfterSaleService; +import com.qihang.oms.mapper.OmsJdAfterSaleMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_jd_after_sale(京东退款与售后表)】的数据库操作Service实现 +* @createDate 2024-06-20 11:17:16 +*/ +@Service +public class OmsJdAfterSaleServiceImpl extends ServiceImpl + implements OmsJdAfterSaleService{ + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddRefundServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddRefundServiceImpl.java new file mode 100644 index 00000000..e0c12243 --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsPddRefundServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.oms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.oms.domain.OmsPddRefund; +import com.qihang.oms.service.OmsPddRefundService; +import com.qihang.oms.mapper.OmsPddRefundMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_pdd_refund(拼多多订单退款表)】的数据库操作Service实现 +* @createDate 2024-06-20 11:17:16 +*/ +@Service +public class OmsPddRefundServiceImpl extends ServiceImpl + implements OmsPddRefundService{ + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OmsTaoRefundServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsTaoRefundServiceImpl.java new file mode 100644 index 00000000..dc7000cc --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsTaoRefundServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.oms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.oms.domain.OmsTaoRefund; +import com.qihang.oms.service.OmsTaoRefundService; +import com.qihang.oms.mapper.OmsTaoRefundMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_tao_refund(淘宝退款表)】的数据库操作Service实现 +* @createDate 2024-06-20 11:17:16 +*/ +@Service +public class OmsTaoRefundServiceImpl extends ServiceImpl + implements OmsTaoRefundService{ + +} + + + + diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OmsWeiRefundServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsWeiRefundServiceImpl.java new file mode 100644 index 00000000..feb8b2ef --- /dev/null +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OmsWeiRefundServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.oms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.oms.domain.OmsWeiRefund; +import com.qihang.oms.service.OmsWeiRefundService; +import com.qihang.oms.mapper.OmsWeiRefundMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_wei_refund(视频号小店退款)】的数据库操作Service实现 +* @createDate 2024-06-20 11:17:17 +*/ +@Service +public class OmsWeiRefundServiceImpl extends ServiceImpl + implements OmsWeiRefundService{ + +} + + + + diff --git a/oms-api/src/main/resources/mapper/OmsDouRefundMapper.xml b/oms-api/src/main/resources/mapper/OmsDouRefundMapper.xml new file mode 100644 index 00000000..7726c144 --- /dev/null +++ b/oms-api/src/main/resources/mapper/OmsDouRefundMapper.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,shop_id,aftersale_id, + aftersale_order_type,aftersale_type,aftersale_status, + aftersale_status_to_final_time,related_id,order_sku_order_id, + order_status,order_pay_amount,order_post_amount, + order_item_num,order_product_name,order_product_image, + order_product_id,order_sku_spec,order_shop_sku_code, + apply_time,update_time,status_deadline, + refund_amount,refund_post_amount,aftersale_num, + part_type,aftersale_refund_type,refund_type, + arbitrate_status,create_time,risk_decision_reason, + risk_decision_description,return_promotion_amount,refund_status, + arbitrate_blame,return_logistics_code,return_logistics_company_name, + exchange_sku_info,exchange_logistics_company_name,remark, + got_pkg,is_agree_refuse_sign,order_logistics, + aftersale_tags,aftersale_sub_type,auto_audit_bits, + text_part,related_order_info,pull_time, + pull_last_time + + diff --git a/oms-api/src/main/resources/mapper/OmsJdAfterSaleMapper.xml b/oms-api/src/main/resources/mapper/OmsJdAfterSaleMapper.xml new file mode 100644 index 00000000..ee81965c --- /dev/null +++ b/oms-api/src/main/resources/mapper/OmsJdAfterSaleMapper.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,shop_id,apply_id, + service_id,refund_id,order_id, + apply_time,apply_refund_sum,customer_expect, + customer_expect_name,service_status,service_status_name, + customer_pin,customer_name,customer_tel, + pickware_address,pickware_type,order_type, + order_type_name,actual_pay_price,sku_id, + ware_type,ware_type_name,ware_name, + sku_type,sku_type_name,approve_pin, + approve_name,approve_time,approve_result, + approve_result_name,process_pin,process_name, + process_time,process_result,process_result_name, + platform_src,platform_src_name,service_count, + desen_customer_tel,buyer_id,buyer_name, + refund_check_time,refund_status,refund_check_username, + refund_check_remark,refund_reason,refund_system_id, + create_time,create_by,update_by, + update_time + + diff --git a/oms-api/src/main/resources/mapper/OmsPddRefundMapper.xml b/oms-api/src/main/resources/mapper/OmsPddRefundMapper.xml new file mode 100644 index 00000000..309301c7 --- /dev/null +++ b/oms-api/src/main/resources/mapper/OmsPddRefundMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,shop_id,order_sn, + after_sales_type,after_sales_status,after_sale_reason, + confirm_time,created_time,discount_amount, + dispute_refund_status,goods_image,goods_id, + goods_name,goods_price,order_amount, + refund_amount,refund_operator_role,sku_id, + outer_goods_id,outer_id,goods_spec, + goods_number,shipping_name,speed_refund_flag, + speed_refund_status,user_shipping_status,tracking_number, + updated_time,create_time,update_time + + diff --git a/oms-api/src/main/resources/mapper/OmsTaoRefundMapper.xml b/oms-api/src/main/resources/mapper/OmsTaoRefundMapper.xml new file mode 100644 index 00000000..24b5f0f1 --- /dev/null +++ b/oms-api/src/main/resources/mapper/OmsTaoRefundMapper.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,refund_id,dispute_type, + shop_id,tid,oid, + payment,price,total_fee, + refund_fee,split_seller_fee,split_taobao_fee, + created,modified,seller_nick, + cs_status,status,order_status, + address,advance_status,alipay_no, + good_return_time,good_status,has_good_return, + num_iid,num,outer_id, + reason,refund_phase,shipping_type, + desc1,company_name,sid, + send_time,end_time,title, + sku,buyer_open_uid,buyer_nick, + combine_item_info,create_time,create_by, + update_by,update_time,pull_status, + pull_time + + diff --git a/oms-api/src/main/resources/mapper/OmsWeiRefundMapper.xml b/oms-api/src/main/resources/mapper/OmsWeiRefundMapper.xml new file mode 100644 index 00000000..7af62cee --- /dev/null +++ b/oms-api/src/main/resources/mapper/OmsWeiRefundMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,shop_id,after_sale_order_id, + status,openid,unionid, + product_id,sku_id,count, + fast_refund,refund_reason,refund_amount, + return_waybill_id,return_delivery_id,return_delivery_name, + merchant_upload_info,create_time,update_time, + reason,reason_text,type, + order_id,details,complaint_id, + refund_resp,pull_status,pull_time + + diff --git a/open-api/tao-api/src/main/java/com/qihang/tao/controller/RefundApiController.java b/open-api/tao-api/src/main/java/com/qihang/tao/controller/RefundApiController.java index 0458c360..d3e9ceaa 100644 --- a/open-api/tao-api/src/main/java/com/qihang/tao/controller/RefundApiController.java +++ b/open-api/tao-api/src/main/java/com/qihang/tao/controller/RefundApiController.java @@ -3,6 +3,7 @@ package com.qihang.tao.controller; import cn.qihangerp.open.tao.RefundApiHelper; import cn.qihangerp.open.tao.common.ApiResultVo; import cn.qihangerp.open.tao.model.Refund; +import com.alibaba.fastjson2.JSONObject; import com.qihang.common.common.AjaxResult; import com.qihang.common.common.ResultVo; import com.qihang.common.common.ResultVoEnum; @@ -23,6 +24,7 @@ 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.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -37,10 +39,11 @@ import java.util.Date; public class RefundApiController { private static Logger log = LoggerFactory.getLogger(RefundApiController.class); private final ApiCommon apiCommon; - private final MqUtils mqUtils; +// private final MqUtils mqUtils; private final SysShopPullLogsService pullLogsService; private final SysShopPullLasttimeService pullLasttimeService; private OmsTaoRefundService refundService; + private final KafkaTemplate kafkaTemplate; /** * 更新退货订单 * @@ -115,12 +118,14 @@ public class RefundApiController { // var result = refundService.saveAndUpdateRefund(shopId, refund); if (resultVo.getCode() == ResultVoEnum.DataExist.getIndex()) { //已经存在 - mqUtils.sendApiMessage(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE, refund.getRefundId())); +// mqUtils.sendApiMessage(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE, refund.getRefundId())); + kafkaTemplate.send(MqType.REFUND_MQ, JSONObject.toJSONString(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE,taoRefund.getRefundId()))); log.info("/**************主动更新tao退货订单:开始更新数据库:" + refund.getRefundId() + "存在、更新****************/"); hasExistOrder++; } else if (resultVo.getCode() == ResultVoEnum.SUCCESS.getIndex()) { log.info("/**************主动更新tao退货订单:开始插入数据库:" + refund.getRefundId() + "不存在、新增****************/"); - mqUtils.sendApiMessage(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE, refund.getRefundId())); +// mqUtils.sendApiMessage(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE, refund.getRefundId())); + kafkaTemplate.send(MqType.REFUND_MQ, JSONObject.toJSONString(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE,taoRefund.getRefundId()))); insertSuccess++; } else { log.info("/**************主动更新tao退货订单:开始更新数据库:" + refund.getRefundId() + "报错****************/"); @@ -194,7 +199,8 @@ public class RefundApiController { BeanUtils.copyProperties(refundApiResultVo.getData(), taoRefund); ResultVo resultVo = refundService.saveAndUpdateRefund(taoRequest.getShopId(), taoRefund); if(resultVo.getCode()==0){ - mqUtils.sendApiMessage(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE, taoRequest.getRefundId().toString())); + kafkaTemplate.send(MqType.REFUND_MQ, JSONObject.toJSONString(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE,taoRefund.getRefundId()))); +// mqUtils.sendApiMessage(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE, taoRequest.getRefundId().toString())); } return AjaxResult.success(); }else{ diff --git a/open-api/tao-api/src/main/java/com/qihang/tao/controller/RefundContoller.java b/open-api/tao-api/src/main/java/com/qihang/tao/controller/RefundContoller.java index ce06cccd..6029c9e1 100644 --- a/open-api/tao-api/src/main/java/com/qihang/tao/controller/RefundContoller.java +++ b/open-api/tao-api/src/main/java/com/qihang/tao/controller/RefundContoller.java @@ -1,5 +1,6 @@ package com.qihang.tao.controller; +import com.alibaba.fastjson2.JSONObject; import com.qihang.common.common.AjaxResult; import com.qihang.common.common.PageQuery; import com.qihang.common.common.PageResult; @@ -16,6 +17,7 @@ import com.qihang.tao.domain.bo.TaoRefundBo; import com.qihang.tao.service.OmsTaoRefundService; import lombok.AllArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.springframework.kafka.core.KafkaTemplate; import org.springframework.web.bind.annotation.*; @@ -24,7 +26,8 @@ import org.springframework.web.bind.annotation.*; @RequestMapping("/refund") public class RefundContoller extends BaseController { private final OmsTaoRefundService refundService; - private final MqUtils mqUtils; +// private final MqUtils mqUtils; + private final KafkaTemplate kafkaTemplate; @RequestMapping(value = "/list", method = RequestMethod.GET) public TableDataInfo goodsList(TaoRefundBo bo, PageQuery pageQuery) throws Exception { // OmsTaoRefund refund = new OmsTaoRefund(); @@ -44,7 +47,8 @@ public class RefundContoller extends BaseController { // TODO:需要优化消息格式 if(bo!=null && bo.getIds()!=null) { for(String id: bo.getIds()) { - mqUtils.sendApiMessage(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE, id)); +// mqUtils.sendApiMessage(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE, id)); + kafkaTemplate.send(MqType.REFUND_MQ, JSONObject.toJSONString(MqMessage.build(EnumShopType.TAO, MqType.REFUND_MESSAGE,id))); } } return success(); diff --git a/vue/src/views/sale/refund/index.vue b/vue/src/views/sale/refund/index.vue index 59c0d71f..5f71a9f1 100644 --- a/vue/src/views/sale/refund/index.vue +++ b/vue/src/views/sale/refund/index.vue @@ -25,15 +25,15 @@ :label="item.name" :value="item.id"> {{ item.name }} - 1688 - 视频号小店 - 京东 - 淘宝天猫 - 拼多多 - 抖店 - 小红书 - 快手小店 - 其他 + 1688 + 视频号小店 + 京东 + 淘宝天猫 + 拼多多 + 抖店 + 小红书 + 快手小店 + 其他 @@ -117,10 +117,15 @@ diff --git a/vue/src/views/shipping/ewaybillPrint/index.vue b/vue/src/views/shipping/ewaybillPrint/index.vue index 45980937..f7fd56c2 100644 --- a/vue/src/views/shipping/ewaybillPrint/index.vue +++ b/vue/src/views/shipping/ewaybillPrint/index.vue @@ -35,7 +35,7 @@ export default { components:{PrintJd, printWei,printTao,printPdd,printDou}, data() { return { - activeName: 'printWei' + activeName: 'printTao' }; }, created() {