From b4e08d38da2619766ed7ac86e503526201d76308 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Tue, 26 Aug 2025 13:04:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/vv/VvSettlementProveDetailDao.java | 36 ++++ .../api/data/dao/vv/VvTradeOrderLineDao.java | 12 +- .../vv/VvSettlementProveDetailEntity.java | 163 ++++++++++++++++++ .../entity/vv/VvSettlementProveEntity.java | 49 ++---- .../heyu/api/data/entity/vv/VvSkuEntity.java | 21 ++- .../data/entity/vv/VvTradeOrderEntity.java | 65 ++++++- .../entity/vv/VvTradeOrderLineEntity.java | 81 +++++---- ...VvTradeOrderLineSettlementProveEntity.java | 46 ++++- .../VvSettlementProveDetailServiceImpl.java | 68 ++++++++ .../vv/VvSettlementProveDetailService.java | 34 ++++ .../mapper/vv/VvSettlementProveDetailDao.xml | 6 + .../java/com/test/xxx/MysqlMain_insert.java | 2 +- .../java/com/test/xxx/MysqlMain_update.java | 2 +- .../request/mm/enums/ReverseStatusEnums.java | 49 ++++++ .../request/mm/enums/SettleStatusEnums.java | 33 ++++ .../alibaba/request/mm/order/ResourceDTO.java | 19 ++ .../request/mm/order/VvSettleProveDTO.java | 23 +++ .../api/controller/mm/OrderController.java | 95 ++++++++-- 18 files changed, 710 insertions(+), 94 deletions(-) create mode 100644 api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvSettlementProveDetailDao.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSettlementProveDetailEntity.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvSettlementProveDetailServiceImpl.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/vv/VvSettlementProveDetailService.java create mode 100644 api-mapper/src/main/resources/mapper/vv/VvSettlementProveDetailDao.xml create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/ReverseStatusEnums.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/SettleStatusEnums.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/ResourceDTO.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvSettleProveDTO.java diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvSettlementProveDetailDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvSettlementProveDetailDao.java new file mode 100644 index 0000000..3071220 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvSettlementProveDetailDao.java @@ -0,0 +1,36 @@ +package com.heyu.api.data.dao.vv; +/** +*

+* 结算证明 服务类 +*

+* +* @author quyixiao +* @since 2025-08-26 +*/ +import com.heyu.api.data.entity.vv.VvSettlementProveDetailEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +@Mapper +public interface VvSettlementProveDetailDao extends BaseMapper { + + + VvSettlementProveDetailEntity selectVvSettlementProveDetailById(@Param("id")Long id); + + + Long insertVvSettlementProveDetail(VvSettlementProveDetailEntity vvSettlementProveDetail); + + + Long insertOrUpdateVvSettlementProveDetail(VvSettlementProveDetailEntity vvSettlementProveDetail); + + + int updateVvSettlementProveDetailById(VvSettlementProveDetailEntity vvSettlementProveDetail); + + + int updateCoverVvSettlementProveDetailById(VvSettlementProveDetailEntity vvSettlementProveDetail); + + + int deleteVvSettlementProveDetailById(@Param("id")Long id); + + +} \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java index 87c6d6a..3c38a7a 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java @@ -7,8 +7,9 @@ package com.heyu.api.data.dao.vv; * @author quyixiao * @since 2025-08-23 */ -import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; + import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; import com.lz.mybatis.plugin.annotations.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -58,15 +59,18 @@ public interface VvTradeOrderLineDao extends BaseMapper List selectVvTradeOrderLineByTradeOrderId(Long tradeOrderId); - - - List selectVvTradeOrderLineByTradeOrderIdNEStatus(Long tradeOrderId, @IF @NE String status); + List selectVvTradeOrderLineByTradeOrderIdNEStatusList(Long tradeOrderId, + @IF @NE List status); List selectVvTradeOrderLineByTradeOrderIdStatus(Long tradeOrderId, @IF String status); + + List selectVvTradeOrderLineByTradeOrderIdStatusAndReverseStatus(Long tradeOrderId, + @LBracket String status, + @RBracket @IN List reverseStatus); } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSettlementProveDetailEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSettlementProveDetailEntity.java new file mode 100644 index 0000000..ab7da63 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSettlementProveDetailEntity.java @@ -0,0 +1,163 @@ +package com.heyu.api.data.entity.vv; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.lz.mybatis.plugin.annotations.AS; + +import java.math.BigDecimal; +import java.util.Date;import java.util.Date; +/** +*结算证明 +* @author quyixiao +* @since 2025-08-26 +*/ + +@Data +@TableName("vv_settlement_prove_detail") +public class VvSettlementProveDetailEntity implements java.io.Serializable { +private static final long serialVersionUID = 1L; + + public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvSettlementProveDetailEntity:"; + + public final static String all = CLASS_NAME + "*"; + public final static String id_ = CLASS_NAME + "id"; // + public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除 + public final static String create_time = CLASS_NAME + "create_time"; // 创建时间 + public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间 + public final static String type_ = CLASS_NAME + "type"; // image or video + public final static String resource_url = CLASS_NAME + "resource_url"; // url + public final static String settlement_prove_id = CLASS_NAME + "settlement_prove_id"; // 结算id + // + @TableId(value = "id", type = IdType.AUTO) + private Long id; + //是否删除:0 否 1 删除 + private Integer isDelete; + //创建时间 + private Date createTime; + //修改时间 + private Date modifyTime; + //image or video + private String type; + //url + private String resourceUrl; + //结算id + private Long settlementProveId; + /** + * + * @return + */ + public Long getId() { + return id; + } + /** + * + * @param id + */ + public void setId(Long id) { + this.id = id; + } + + /** + * 是否删除:0 否 1 删除 + * @return + */ + public Integer getIsDelete() { + return isDelete; + } + /** + * 是否删除:0 否 1 删除 + * @param isDelete + */ + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + /** + * 创建时间 + * @return + */ + public Date getCreateTime() { + return createTime; + } + /** + * 创建时间 + * @param createTime + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + /** + * 修改时间 + * @return + */ + public Date getModifyTime() { + return modifyTime; + } + /** + * 修改时间 + * @param modifyTime + */ + public void setModifyTime(Date modifyTime) { + this.modifyTime = modifyTime; + } + + /** + * image or video + * @return + */ + public String getType() { + return type; + } + /** + * image or video + * @param type + */ + public void setType(String type) { + this.type = type; + } + + /** + * url + * @return + */ + public String getResourceUrl() { + return resourceUrl; + } + /** + * url + * @param resourceUrl + */ + public void setResourceUrl(String resourceUrl) { + this.resourceUrl = resourceUrl; + } + + /** + * 结算id + * @return + */ + public Long getSettlementProveId() { + return settlementProveId; + } + /** + * 结算id + * @param settlementProveId + */ + public void setSettlementProveId(Long settlementProveId) { + this.settlementProveId = settlementProveId; + } + + @Override + public String toString() { + return "VvSettlementProveDetailEntity{" + + ",id=" + id + + ",isDelete=" + isDelete + + ",createTime=" + createTime + + ",modifyTime=" + modifyTime + + ",type=" + type + + ",resourceUrl=" + resourceUrl + + ",settlementProveId=" + settlementProveId + + "}"; + } +} \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSettlementProveEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSettlementProveEntity.java index 0e3a2a6..3565821 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSettlementProveEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSettlementProveEntity.java @@ -21,12 +21,11 @@ private static final long serialVersionUID = 1L; public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvSettlementProveEntity:"; public final static String all = CLASS_NAME + "*"; - public final static String id_ = CLASS_NAME + "id"; // - public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除 - public final static String create_time = CLASS_NAME + "create_time"; // 创建时间 - public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间 - public final static String type_ = CLASS_NAME + "type"; // image or video - public final static String resource_url = CLASS_NAME + "resource_url"; // url + public final static String id_ = CLASS_NAME + "id"; // + public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除 + public final static String create_time = CLASS_NAME + "create_time"; // 创建时间 + public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间 + public final static String login_user = CLASS_NAME + "login_user"; // 谁结算的 // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -36,10 +35,8 @@ private static final long serialVersionUID = 1L; private Date createTime; //修改时间 private Date modifyTime; - //image or video - private String type; - //url - private String resourceUrl; + //谁结算的 + private String loginUser; /** * * @return @@ -101,33 +98,18 @@ private static final long serialVersionUID = 1L; } /** - * image or video + * 谁结算的 * @return */ - public String getType() { - return type; + public String getLoginUser() { + return loginUser; } /** - * image or video - * @param type + * 谁结算的 + * @param loginUser */ - public void setType(String type) { - this.type = type; - } - - /** - * url - * @return - */ - public String getResourceUrl() { - return resourceUrl; - } - /** - * url - * @param resourceUrl - */ - public void setResourceUrl(String resourceUrl) { - this.resourceUrl = resourceUrl; + public void setLoginUser(String loginUser) { + this.loginUser = loginUser; } @Override @@ -137,8 +119,7 @@ private static final long serialVersionUID = 1L; ",isDelete=" + isDelete + ",createTime=" + createTime + ",modifyTime=" + modifyTime + - ",type=" + type + - ",resourceUrl=" + resourceUrl + + ",loginUser=" + loginUser + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSkuEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSkuEntity.java index c2e7285..f8f36a1 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSkuEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvSkuEntity.java @@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date; /** *sku详描 * @author quyixiao -* @since 2025-08-25 +* @since 2025-08-26 */ @Data @@ -32,6 +32,7 @@ private static final long serialVersionUID = 1L; public final static String stock_ = CLASS_NAME + "stock"; // 库存 public final static String real_sale_count = CLASS_NAME + "real_sale_count"; // 真实销售数量 public final static String show_sale_count = CLASS_NAME + "show_sale_count"; // 展示销售数量 + public final static String promotion_price = CLASS_NAME + "promotion_price"; // 促销价格 // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -55,6 +56,8 @@ private static final long serialVersionUID = 1L; private Integer realSaleCount; //展示销售数量 private Integer showSaleCount; + //促销价格 + private BigDecimal promotionPrice; /** * * @return @@ -220,6 +223,21 @@ private static final long serialVersionUID = 1L; this.showSaleCount = showSaleCount; } + /** + * 促销价格 + * @return + */ + public BigDecimal getPromotionPrice() { + return promotionPrice; + } + /** + * 促销价格 + * @param promotionPrice + */ + public void setPromotionPrice(BigDecimal promotionPrice) { + this.promotionPrice = promotionPrice; + } + @Override public String toString() { return "VvSkuEntity{" + @@ -234,6 +252,7 @@ private static final long serialVersionUID = 1L; ",stock=" + stock + ",realSaleCount=" + realSaleCount + ",showSaleCount=" + showSaleCount + + ",promotionPrice=" + promotionPrice + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderEntity.java index fc3074f..973696a 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderEntity.java @@ -31,7 +31,7 @@ private static final long serialVersionUID = 1L; public final static String buyer_weixin = CLASS_NAME + "buyer_weixin"; // 买家微信 public final static String buyer_address = CLASS_NAME + "buyer_address"; // 买家收货地址 public final static String all_price = CLASS_NAME + "all_price"; // 总价 - public final static String status_ = CLASS_NAME + "status"; // wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款 + public final static String status_ = CLASS_NAME + "status"; // wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered public final static String refund_amount = CLASS_NAME + "refund_amount"; // 退款金额 public final static String refund_count = CLASS_NAME + "refund_count"; // 退货数量 public final static String buyer_id = CLASS_NAME + "buyer_id"; // 买家id @@ -44,6 +44,9 @@ private static final long serialVersionUID = 1L; public final static String buyer_detail_address = CLASS_NAME + "buyer_detail_address"; // 买家详细地址 public final static String gmt_down_order = CLASS_NAME + "gmt_down_order"; // 下单时间 public final static String gmt_pay = CLASS_NAME + "gmt_pay"; // 支付时间 + public final static String reverse_status = CLASS_NAME + "reverse_status"; // all_refund:全部退款,part_refund,部分退款 + public final static String settle_status = CLASS_NAME + "settle_status"; // 0 未结清,1 已经结清 + public final static String profit_amount = CLASS_NAME + "profit_amount"; // 最终这笔单子的获利益 // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -65,7 +68,7 @@ private static final long serialVersionUID = 1L; private String buyerAddress; //总价 private BigDecimal allPrice; - //wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款 + //wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered private String status; //退款金额 private BigDecimal refundAmount; @@ -91,6 +94,12 @@ private static final long serialVersionUID = 1L; private Date gmtDownOrder; //支付时间 private Date gmtPay; + //all_refund:全部退款,part_refund,部分退款 + private String reverseStatus; + //0 未结清,1 已经结清 + private Integer settleStatus; + //最终这笔单子的获利益 + private BigDecimal profitAmount; /** * * @return @@ -242,14 +251,14 @@ private static final long serialVersionUID = 1L; } /** - * wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款 + * wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered * @return */ public String getStatus() { return status; } /** - * wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款 + * wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered * @param status */ public void setStatus(String status) { @@ -436,6 +445,51 @@ private static final long serialVersionUID = 1L; this.gmtPay = gmtPay; } + /** + * all_refund:全部退款,part_refund,部分退款 + * @return + */ + public String getReverseStatus() { + return reverseStatus; + } + /** + * all_refund:全部退款,part_refund,部分退款 + * @param reverseStatus + */ + public void setReverseStatus(String reverseStatus) { + this.reverseStatus = reverseStatus; + } + + /** + * 0 未结清,1 已经结清 + * @return + */ + public Integer getSettleStatus() { + return settleStatus; + } + /** + * 0 未结清,1 已经结清 + * @param settleStatus + */ + public void setSettleStatus(Integer settleStatus) { + this.settleStatus = settleStatus; + } + + /** + * 最终这笔单子的获利益 + * @return + */ + public BigDecimal getProfitAmount() { + return profitAmount; + } + /** + * 最终这笔单子的获利益 + * @param profitAmount + */ + public void setProfitAmount(BigDecimal profitAmount) { + this.profitAmount = profitAmount; + } + @Override public String toString() { return "VvTradeOrderEntity{" + @@ -462,6 +516,9 @@ private static final long serialVersionUID = 1L; ",buyerDetailAddress=" + buyerDetailAddress + ",gmtDownOrder=" + gmtDownOrder + ",gmtPay=" + gmtPay + + ",reverseStatus=" + reverseStatus + + ",settleStatus=" + settleStatus + + ",profitAmount=" + profitAmount + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineEntity.java index 42c77aa..6d79aaf 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineEntity.java @@ -25,9 +25,8 @@ private static final long serialVersionUID = 1L; public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除 public final static String create_time = CLASS_NAME + "create_time"; // 创建时间 public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间 - public final static String single_price = CLASS_NAME + "single_price"; // 单价 + public final static String sale_price = CLASS_NAME + "sale_price"; // 单价 public final static String num_ = CLASS_NAME + "num"; // 数量 - public final static String all_price = CLASS_NAME + "all_price"; // 总价 public final static String status_ = CLASS_NAME + "status"; // wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款 public final static String trade_order_id = CLASS_NAME + "trade_order_id"; // 订单号 public final static String refund_amount = CLASS_NAME + "refund_amount"; // 退款金额 @@ -48,7 +47,9 @@ private static final long serialVersionUID = 1L; public final static String settle_status = CLASS_NAME + "settle_status"; // 0 未结算 public final static String gmt_settle = CLASS_NAME + "gmt_settle"; // 结算时间 public final static String seller_id = CLASS_NAME + "seller_id"; // 卖家id - public final static String reverse_status = CLASS_NAME + "reverse_status"; // 逆向状态 + public final static String reverse_status = CLASS_NAME + "reverse_status"; // 逆向状态。 + public final static String profit_amount = CLASS_NAME + "profit_amount"; // 这笔子单获得利益 + public final static String origin_price = CLASS_NAME + "origin_price"; // 原来价格 // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -59,11 +60,9 @@ private static final long serialVersionUID = 1L; //修改时间 private Date modifyTime; //单价 - private BigDecimal singlePrice; + private BigDecimal salePrice; //数量 private Integer num; - //总价 - private BigDecimal allPrice; //wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款 private String status; //订单号 @@ -104,8 +103,12 @@ private static final long serialVersionUID = 1L; private Date gmtSettle; //卖家id private Long sellerId; - //逆向状态 + //逆向状态。 private String reverseStatus; + //这笔子单获得利益 + private BigDecimal profitAmount; + //原来价格 + private BigDecimal originPrice; /** * * @return @@ -170,15 +173,15 @@ private static final long serialVersionUID = 1L; * 单价 * @return */ - public BigDecimal getSinglePrice() { - return singlePrice; + public BigDecimal getSalePrice() { + return salePrice; } /** * 单价 - * @param singlePrice + * @param salePrice */ - public void setSinglePrice(BigDecimal singlePrice) { - this.singlePrice = singlePrice; + public void setSalePrice(BigDecimal salePrice) { + this.salePrice = salePrice; } /** @@ -196,21 +199,6 @@ private static final long serialVersionUID = 1L; this.num = num; } - /** - * 总价 - * @return - */ - public BigDecimal getAllPrice() { - return allPrice; - } - /** - * 总价 - * @param allPrice - */ - public void setAllPrice(BigDecimal allPrice) { - this.allPrice = allPrice; - } - /** * wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款 * @return @@ -512,20 +500,50 @@ private static final long serialVersionUID = 1L; } /** - * 逆向状态 + * 逆向状态。 * @return */ public String getReverseStatus() { return reverseStatus; } /** - * 逆向状态 + * 逆向状态。 * @param reverseStatus */ public void setReverseStatus(String reverseStatus) { this.reverseStatus = reverseStatus; } + /** + * 这笔子单获得利益 + * @return + */ + public BigDecimal getProfitAmount() { + return profitAmount; + } + /** + * 这笔子单获得利益 + * @param profitAmount + */ + public void setProfitAmount(BigDecimal profitAmount) { + this.profitAmount = profitAmount; + } + + /** + * 原来价格 + * @return + */ + public BigDecimal getOriginPrice() { + return originPrice; + } + /** + * 原来价格 + * @param originPrice + */ + public void setOriginPrice(BigDecimal originPrice) { + this.originPrice = originPrice; + } + @Override public String toString() { return "VvTradeOrderLineEntity{" + @@ -533,9 +551,8 @@ private static final long serialVersionUID = 1L; ",isDelete=" + isDelete + ",createTime=" + createTime + ",modifyTime=" + modifyTime + - ",singlePrice=" + singlePrice + + ",salePrice=" + salePrice + ",num=" + num + - ",allPrice=" + allPrice + ",status=" + status + ",tradeOrderId=" + tradeOrderId + ",refundAmount=" + refundAmount + @@ -557,6 +574,8 @@ private static final long serialVersionUID = 1L; ",gmtSettle=" + gmtSettle + ",sellerId=" + sellerId + ",reverseStatus=" + reverseStatus + + ",profitAmount=" + profitAmount + + ",originPrice=" + originPrice + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineSettlementProveEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineSettlementProveEntity.java index d812640..7b456a6 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineSettlementProveEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineSettlementProveEntity.java @@ -21,10 +21,12 @@ private static final long serialVersionUID = 1L; public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvTradeOrderLineSettlementProveEntity:"; public final static String all = CLASS_NAME + "*"; - public final static String id_ = CLASS_NAME + "id"; // - public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除 - public final static String create_time = CLASS_NAME + "create_time"; // 创建时间 - public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间 + public final static String id_ = CLASS_NAME + "id"; // + public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除 + public final static String create_time = CLASS_NAME + "create_time"; // 创建时间 + public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间 + public final static String trade_order_line_id = CLASS_NAME + "trade_order_line_id"; // + public final static String settlement_prove_id = CLASS_NAME + "settlement_prove_id"; // // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -34,6 +36,10 @@ private static final long serialVersionUID = 1L; private Date createTime; //修改时间 private Date modifyTime; + // + private Long tradeOrderLineId; + // + private Long settlementProveId; /** * * @return @@ -94,6 +100,36 @@ private static final long serialVersionUID = 1L; this.modifyTime = modifyTime; } + /** + * + * @return + */ + public Long getTradeOrderLineId() { + return tradeOrderLineId; + } + /** + * + * @param tradeOrderLineId + */ + public void setTradeOrderLineId(Long tradeOrderLineId) { + this.tradeOrderLineId = tradeOrderLineId; + } + + /** + * + * @return + */ + public Long getSettlementProveId() { + return settlementProveId; + } + /** + * + * @param settlementProveId + */ + public void setSettlementProveId(Long settlementProveId) { + this.settlementProveId = settlementProveId; + } + @Override public String toString() { return "VvTradeOrderLineSettlementProveEntity{" + @@ -101,6 +137,8 @@ private static final long serialVersionUID = 1L; ",isDelete=" + isDelete + ",createTime=" + createTime + ",modifyTime=" + modifyTime + + ",tradeOrderLineId=" + tradeOrderLineId + + ",settlementProveId=" + settlementProveId + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvSettlementProveDetailServiceImpl.java b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvSettlementProveDetailServiceImpl.java new file mode 100644 index 0000000..20ab6e0 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvSettlementProveDetailServiceImpl.java @@ -0,0 +1,68 @@ +package com.heyu.api.data.service.impl.vv; +/** +*

+* 结算证明 服务类 +*

+* +* @author quyixiao +* @since 2025-08-26 +*/ + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.heyu.api.data.dao.vv.VvSettlementProveDetailDao; +import com.heyu.api.data.entity.vv.VvSettlementProveDetailEntity; +import com.heyu.api.data.service.vv.VvSettlementProveDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +@Service +public class VvSettlementProveDetailServiceImpl extends ServiceImpl implements VvSettlementProveDetailService { + + + @Autowired + private VvSettlementProveDetailDao vvSettlementProveDetailDao; + + + + @Override + public VvSettlementProveDetailEntity selectVvSettlementProveDetailById(Long id){ + return vvSettlementProveDetailDao.selectVvSettlementProveDetailById(id); + } + + + + @Override + public Long insertVvSettlementProveDetail(VvSettlementProveDetailEntity vvSettlementProveDetail){ + return vvSettlementProveDetailDao.insertVvSettlementProveDetail(vvSettlementProveDetail); + } + + + + @Override + public Long insertOrUpdateVvSettlementProveDetail(VvSettlementProveDetailEntity vvSettlementProveDetail){ + return vvSettlementProveDetailDao.insertOrUpdateVvSettlementProveDetail(vvSettlementProveDetail); + } + + + + @Override + public int updateVvSettlementProveDetailById(VvSettlementProveDetailEntity vvSettlementProveDetail){ + return vvSettlementProveDetailDao.updateVvSettlementProveDetailById(vvSettlementProveDetail); + } + + + + @Override + public int updateCoverVvSettlementProveDetailById(VvSettlementProveDetailEntity vvSettlementProveDetail){ + return vvSettlementProveDetailDao.updateCoverVvSettlementProveDetailById(vvSettlementProveDetail); + } + + + + @Override + public int deleteVvSettlementProveDetailById(Long id){ + return vvSettlementProveDetailDao.deleteVvSettlementProveDetailById(id); + } + + + +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvSettlementProveDetailService.java b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvSettlementProveDetailService.java new file mode 100644 index 0000000..fd9cbce --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvSettlementProveDetailService.java @@ -0,0 +1,34 @@ +package com.heyu.api.data.service.vv; +/** +*

+* 结算证明 服务类 +*

+* +* @author quyixiao +* @since 2025-08-26 +*/ +import com.baomidou.mybatisplus.extension.service.IService; +import com.heyu.api.data.entity.vv.VvSettlementProveDetailEntity; +public interface VvSettlementProveDetailService extends IService { + + + + VvSettlementProveDetailEntity selectVvSettlementProveDetailById(Long id); + + + Long insertVvSettlementProveDetail(VvSettlementProveDetailEntity vvSettlementProveDetail); + + + Long insertOrUpdateVvSettlementProveDetail(VvSettlementProveDetailEntity vvSettlementProveDetail); + + + int updateVvSettlementProveDetailById(VvSettlementProveDetailEntity vvSettlementProveDetail); + + + int updateCoverVvSettlementProveDetailById(VvSettlementProveDetailEntity vvSettlementProveDetail); + + + int deleteVvSettlementProveDetailById(Long id); + + +} \ No newline at end of file diff --git a/api-mapper/src/main/resources/mapper/vv/VvSettlementProveDetailDao.xml b/api-mapper/src/main/resources/mapper/vv/VvSettlementProveDetailDao.xml new file mode 100644 index 0000000..d882165 --- /dev/null +++ b/api-mapper/src/main/resources/mapper/vv/VvSettlementProveDetailDao.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java index 04eef2b..f6c235c 100644 --- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java +++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java @@ -94,7 +94,7 @@ public class MysqlMain_insert { List list = new ArrayList(); - list.add(new TablesBean("vv_reverse_order_prove")); + list.add(new TablesBean("vv_settlement_prove_detail")); diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java index 861399e..84cfea8 100644 --- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java +++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java @@ -49,7 +49,7 @@ public class MysqlMain_update { List list = new ArrayList(); - String a = "vv_product"; + String a = "vv_trade_order_line_settlement_prove"; for (String s : a.split(",")) { list.add(new TablesBean(s)); } diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/ReverseStatusEnums.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/ReverseStatusEnums.java new file mode 100644 index 0000000..a92639c --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/ReverseStatusEnums.java @@ -0,0 +1,49 @@ +package com.heyu.api.alibaba.request.mm.enums; + +public enum ReverseStatusEnums { + + // 逆向状态状态 wait_seller_agree 等待卖家同意 , + // wait_buyer_post 等待买家寄东西, + // shipping 运送中, + // delivered 妥投, + // reject_delivered 拒绝妥投, + // agree_refunded 同意退款 , + // refunded 退款完成 , + // close 退款关闭 + wait_seller_agree("wait_seller_agree","等待卖家同意"), + wait_buyer_post("wait_buyer_post","买家邮寄"), + shipping("shipping","运送中"), + delivered("delivered","已签收"), + reject_delivered("reject_delivered","拒绝接收"), + agree_refunded("agree_refunded","同意退款"), + refunded("refunded","退款完成"), + close("close","退款关闭"),; + + + + ReverseStatusEnums(String status, String desc) { + this.status = status; + this.desc = desc; + } + + private String status; + + private String desc; + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/SettleStatusEnums.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/SettleStatusEnums.java new file mode 100644 index 0000000..5924170 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/SettleStatusEnums.java @@ -0,0 +1,33 @@ +package com.heyu.api.alibaba.request.mm.enums; + +public enum SettleStatusEnums { + + + not_settle(0,"未结算"), + settle_finished(1,"结算完成"), + ; + SettleStatusEnums(int status, String desc) { + this.status = status; + this.desc = desc; + } + + private int status; + + private String desc; + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/ResourceDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/ResourceDTO.java new file mode 100644 index 0000000..db85e14 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/ResourceDTO.java @@ -0,0 +1,19 @@ +package com.heyu.api.alibaba.request.mm.order; + + +import lombok.Data; + +@Data +public class ResourceDTO { + + /*** + * 类型 + */ + private String type ; + + /*** + * 资源 + */ + private String resourceUrl; + +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvSettleProveDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvSettleProveDTO.java new file mode 100644 index 0000000..192a8c8 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvSettleProveDTO.java @@ -0,0 +1,23 @@ +package com.heyu.api.alibaba.request.mm.order; + + +import lombok.Data; + +import java.util.List; + +@Data +public class VvSettleProveDTO { + + /*** + * 子订单号 + */ + private List tradeOrderLineIds; + + /*** + * 资源信息 + */ + private List resources; + +} + + diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java index edf51d7..aa45078 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java @@ -4,17 +4,13 @@ package com.heyu.api.controller.mm; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums; -import com.heyu.api.alibaba.request.mm.order.VVOrderRequest; -import com.heyu.api.alibaba.request.mm.order.VvDeliveredDTO; -import com.heyu.api.alibaba.request.mm.order.VvToPackDTO; +import com.heyu.api.alibaba.request.mm.enums.ReverseStatusEnums; +import com.heyu.api.alibaba.request.mm.order.*; import com.heyu.api.alibaba.request.mm.order.resp.PackageDTO; import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp; -import com.heyu.api.data.dao.vv.VvPackageDao; -import com.heyu.api.data.dao.vv.VvTradeOrderDao; -import com.heyu.api.data.dao.vv.VvTradeOrderLineDao; -import com.heyu.api.data.entity.vv.VvPackageEntity; -import com.heyu.api.data.entity.vv.VvTradeOrderEntity; -import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; +import com.heyu.api.data.dao.vv.*; +import com.heyu.api.data.entity.vv.*; +import com.heyu.api.data.utils.BigDecimalUtil; import com.heyu.api.data.utils.R; import com.heyu.api.data.utils.StringUtils; import com.heyu.api.utils.ISelect; @@ -27,10 +23,8 @@ 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.HashMap; -import java.util.List; -import java.util.Map; +import java.math.BigDecimal; +import java.util.*; @Slf4j @RestController @@ -49,6 +43,15 @@ public class OrderController { @Autowired private VvPackageDao vvPackageDao; + @Autowired + private VvSettlementProveDao vvSettlementProveDao; + + @Autowired + private VvSettlementProveDetailDao vvSettlementProveDetailDao; + + @Autowired + private VvTradeOrderLineSettlementProveDao vvTradeOrderLineSettlementProveDao; + /*** * 列表 */ @@ -231,7 +234,7 @@ public class OrderController { * 订单打包 */ @RequestMapping("/delivered") - public R topack(@RequestBody VvDeliveredDTO vvDeliveredDTO) { + public R delivered(@RequestBody VvDeliveredDTO vvDeliveredDTO) { List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(vvDeliveredDTO.getTradeOrderLineIds()); for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { if(!OrderStatusEnums.shipping.getStatus().equals(tradeOrderLineEntity.getStatus())){ @@ -253,4 +256,68 @@ public class OrderController { } + + /*** + * 上传结算证据 + */ + @RequestMapping("/upload/settlement/prove") + public R settlement(@RequestBody VvSettleProveDTO vvSettleProveDTO) { + List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(vvSettleProveDTO.getTradeOrderLineIds()); + + List tradeOrderIds = new ArrayList<>(); + + VvSettlementProveEntity vvSettlementProveEntity = new VvSettlementProveEntity(); + + vvSettlementProveDao.insertOrUpdateVvSettlementProve(vvSettlementProveEntity); + + + for (ResourceDTO resource : vvSettleProveDTO.getResources()) { + + VvSettlementProveDetailEntity vvSettlementProveDetailEntity = new VvSettlementProveDetailEntity(); + vvSettlementProveDetailEntity.setType(resource.getType()); + vvSettlementProveDetailEntity.setResourceUrl(resource.getResourceUrl()); + vvSettlementProveDetailEntity.setSettlementProveId(vvSettlementProveEntity.getId()); + vvSettlementProveDetailDao.insertOrUpdateVvSettlementProveDetail(vvSettlementProveDetailEntity); + } + + for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { + tradeOrderIds.add(tradeOrderLineEntity.getTradeOrderId()); + tradeOrderLineEntity.setSettleStatus(1); + // 更新利润 + tradeOrderLineEntity.setProfitAmount(BigDecimalUtil.subtract(tradeOrderLineEntity.getSalePrice(), tradeOrderLineEntity.getOriginPrice())); + vvTradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity); + + + + // 将子单和证据关联 + VvTradeOrderLineSettlementProveEntity vvTradeOrderLineSettlementProveEntity = new VvTradeOrderLineSettlementProveEntity(); + vvTradeOrderLineSettlementProveEntity.setTradeOrderLineId(tradeOrderLineEntity.getId()); + vvTradeOrderLineSettlementProveEntity.setSettlementProveId(vvSettlementProveEntity.getId()); + vvTradeOrderLineSettlementProveDao.insertOrUpdateVvTradeOrderLineSettlementProve(vvTradeOrderLineSettlementProveEntity); + } + + // 设置这笔订单已经结算 + for (Long tradeOrderId : tradeOrderIds) { + VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao.selectVvTradeOrderById(tradeOrderId); + List vvTradeOrderLineList0 = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderIdStatusAndReverseStatus( + tradeOrderId, OrderStatusEnums.delivered.getStatus(), + Arrays.asList(ReverseStatusEnums.refunded.getStatus(), ReverseStatusEnums.close.getStatus()) + ); + + List vvTradeOrderLineList1 = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(tradeOrderId); + if (CollectionUtils.isNotEmpty(vvTradeOrderLineList0) + && CollectionUtils.isNotEmpty(vvTradeOrderLineList1) + && vvTradeOrderLineList0.size() == vvTradeOrderLineList1.size()) { + vvTradeOrderEntity.setSettleStatus(1); + BigDecimal profitAmount = BigDecimal.ZERO; + for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineList1) { + profitAmount= BigDecimalUtil.add(profitAmount, tradeOrderLineEntity.getProfitAmount()); + } + vvTradeOrderEntity.setProfitAmount(profitAmount); + vvTradeOrderDao.updateVvTradeOrderById(vvTradeOrderEntity); + } + } + return R.ok(); + } + }