提交修改

This commit is contained in:
quyixiao 2025-08-23 13:18:30 +08:00
parent 9dcd832d50
commit 8ab71b41b7
14 changed files with 403 additions and 69 deletions

View File

@ -11,6 +11,9 @@ import com.heyu.api.data.entity.vv.VvPackageEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface VvPackageDao extends BaseMapper<VvPackageEntity> {
@ -33,4 +36,7 @@ public interface VvPackageDao extends BaseMapper<VvPackageEntity> {
int deleteVvPackageById(@Param("id")Long id);
List<VvPackageEntity> selectVvPackageByTrackNumbers(List<String> trackNumbers);
}

View File

@ -1,36 +1,50 @@
package com.heyu.api.data.dao.vv;
/**
* <p>
* 购物车 服务类
* </p>
*
* @author quyixiao
* @since 2025-08-23
*/
* <p>
* 购物车 服务类
* </p>
*
* @author quyixiao
* @since 2025-08-23
*/
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.data.entity.vv.VvShoppingCartEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lz.mybatis.plugin.annotations.IF;
import com.lz.mybatis.plugin.annotations.LIKE;
import com.lz.mybatis.plugin.annotations.OrderBy;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface VvShoppingCartDao extends BaseMapper<VvShoppingCartEntity> {
VvShoppingCartEntity selectVvShoppingCartById(@Param("id")Long id);
VvShoppingCartEntity selectVvShoppingCartById(@Param("id") Long id);
Long insertVvShoppingCart(VvShoppingCartEntity vvShoppingCart);
Long insertVvShoppingCart(VvShoppingCartEntity vvShoppingCart);
Long insertOrUpdateVvShoppingCart(VvShoppingCartEntity vvShoppingCart);
Long insertOrUpdateVvShoppingCart(VvShoppingCartEntity vvShoppingCart);
int updateVvShoppingCartById(VvShoppingCartEntity vvShoppingCart);
int updateVvShoppingCartById(VvShoppingCartEntity vvShoppingCart);
int updateCoverVvShoppingCartById(VvShoppingCartEntity vvShoppingCart);
int updateCoverVvShoppingCartById(VvShoppingCartEntity vvShoppingCart);
int deleteVvShoppingCartById(@Param("id")Long id);
int deleteVvShoppingCartById(@Param("id") Long id);
@OrderBy(VvShoppingCartEntity.id_)
List<VvShoppingCartEntity> selectByCondition(IPage page,
@IF @LIKE String productName,
@IF @LIKE String buyerPhone,
@IF @LIKE String buyerName,
@IF @LIKE String buyerWeixin);
}

View File

@ -1,36 +1,55 @@
package com.heyu.api.data.dao.vv;
/**
* <p>
* 购物车 服务类
* </p>
*
* @author quyixiao
* @since 2025-08-23
*/
* <p>
* 购物车 服务类
* </p>
*
* @author quyixiao
* @since 2025-08-23
*/
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.data.entity.vv.VvTradeOrderEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lz.mybatis.plugin.annotations.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
@Mapper
public interface VvTradeOrderDao extends BaseMapper<VvTradeOrderEntity> {
VvTradeOrderEntity selectVvTradeOrderById(@Param("id")Long id);
VvTradeOrderEntity selectVvTradeOrderById(@Param("id") Long id);
Long insertVvTradeOrder(VvTradeOrderEntity vvTradeOrder);
Long insertVvTradeOrder(VvTradeOrderEntity vvTradeOrder);
Long insertOrUpdateVvTradeOrder(VvTradeOrderEntity vvTradeOrder);
Long insertOrUpdateVvTradeOrder(VvTradeOrderEntity vvTradeOrder);
int updateVvTradeOrderById(VvTradeOrderEntity vvTradeOrder);
int updateVvTradeOrderById(VvTradeOrderEntity vvTradeOrder);
int updateCoverVvTradeOrderById(VvTradeOrderEntity vvTradeOrder);
int updateCoverVvTradeOrderById(VvTradeOrderEntity vvTradeOrder);
int deleteVvTradeOrderById(@Param("id")Long id);
int deleteVvTradeOrderById(@Param("id") Long id);
@OrderBy(VvTradeOrderEntity.id_)
List<VvTradeOrderEntity> selectByCondition(IPage page,
@IF @IN List<Long> id,
@IF @LIKE String buyerPhone,
@IF @LIKE String buyerWeixin,
@IF @LIKE String buyerName,
@IF @GE BigDecimal minAllPrice,
@IF @LE BigDecimal maxAllPrice,
@IF String status,
@IF @GE Long minCreateTimestamp,
@IF @LE Long maxCreateTimestamp,
@OrderBy(VvTradeOrderEntity.create_timestamp) String createTimestampSort);
}

View File

@ -9,8 +9,14 @@ package com.heyu.api.data.dao.vv;
*/
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lz.mybatis.plugin.annotations.GroupBy;
import com.lz.mybatis.plugin.annotations.LIKE;
import com.lz.mybatis.plugin.annotations.OrderBy;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface VvTradeOrderLineDao extends BaseMapper<VvTradeOrderLineEntity> {
@ -32,5 +38,12 @@ public interface VvTradeOrderLineDao extends BaseMapper<VvTradeOrderLineEntity>
int deleteVvTradeOrderLineById(@Param("id")Long id);
@OrderBy(VvTradeOrderLineEntity.id_)
@GroupBy(VvTradeOrderLineEntity.trade_order_id)
List<VvTradeOrderLineEntity> selectVvTradeOrderLineByProductName(@LIKE String productName);
List<VvTradeOrderLineEntity> selectVvTradeOrderLineByTradeOrderIds(List<Long> tradeOrderId);
}

View File

@ -1,12 +1,12 @@
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;
import java.util.Date;
/**
*包裹表
* @author quyixiao
@ -46,7 +46,7 @@ private static final long serialVersionUID = 1L;
//包裹物流信息
private String packageLogisticsInfo;
//订单追踪号
private Integer trackNumber;
private String trackNumber;
//物流公司
private String logisticsCompany;
//发货地址
@ -149,14 +149,14 @@ private static final long serialVersionUID = 1L;
* 订单追踪号
* @return
*/
public Integer getTrackNumber() {
public String getTrackNumber() {
return trackNumber;
}
/**
* 订单追踪号
* @param trackNumber
*/
public void setTrackNumber(Integer trackNumber) {
public void setTrackNumber(String trackNumber) {
this.trackNumber = trackNumber;
}

View File

@ -21,18 +21,18 @@ private static final long serialVersionUID = 1L;
public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvShoppingCartEntity:";
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 product_name = CLASS_NAME + "product_name"; // 商品标题
public final static String property_info = CLASS_NAME + "property_info"; // 属性信息json
public final static String single_price = CLASS_NAME + "single_price"; // 单价
public final static String num_ = CLASS_NAME + "num"; // 数量
public final static String buyer_phone = CLASS_NAME + "buyer_phone"; // 买家手机号
public final static String buyer_name = CLASS_NAME + "buyer_name"; // 买家名
public final static String buyer_weixin = CLASS_NAME + "buyer_weixin"; // 买家微信
public final static String all_price = CLASS_NAME + "all_price"; // 总价
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 product_name = CLASS_NAME + "product_name"; // 商品标题
public final static String sku_info = CLASS_NAME + "sku_info"; // 属性信息json
public final static String single_price = CLASS_NAME + "single_price"; // 单价
public final static String num_ = CLASS_NAME + "num"; // 数量
public final static String buyer_phone = CLASS_NAME + "buyer_phone"; // 买家手机号
public final static String buyer_name = CLASS_NAME + "buyer_name"; // 买家名
public final static String buyer_weixin = CLASS_NAME + "buyer_weixin"; // 买家微信
public final static String all_price = CLASS_NAME + "all_price"; // 总价
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ -45,7 +45,7 @@ private static final long serialVersionUID = 1L;
//商品标题
private String productName;
//属性信息json
private String propertyInfo;
private String skuInfo;
//单价
private BigDecimal singlePrice;
//数量
@ -137,15 +137,15 @@ private static final long serialVersionUID = 1L;
* 属性信息json
* @return
*/
public String getPropertyInfo() {
return propertyInfo;
public String getSkuInfo() {
return skuInfo;
}
/**
* 属性信息json
* @param propertyInfo
* @param skuInfo
*/
public void setPropertyInfo(String propertyInfo) {
this.propertyInfo = propertyInfo;
public void setSkuInfo(String skuInfo) {
this.skuInfo = skuInfo;
}
/**
@ -246,7 +246,7 @@ private static final long serialVersionUID = 1L;
",createTime=" + createTime +
",modifyTime=" + modifyTime +
",productName=" + productName +
",propertyInfo=" + propertyInfo +
",skuInfo=" + skuInfo +
",singlePrice=" + singlePrice +
",num=" + num +
",buyerPhone=" + buyerPhone +

View File

@ -31,7 +31,7 @@ private static final long serialVersionUID = 1L;
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"; // 退款金额
public final static String package_id = CLASS_NAME + "package_id"; // 包裹id
public final static String track_number = CLASS_NAME + "track_number"; // 包裹追踪号
public final static String refund_count = CLASS_NAME + "refund_count"; // 退货数量
public final static String product_id = CLASS_NAME + "product_id"; // 商品id
public final static String product_name = CLASS_NAME + "product_name"; // 商品名称
@ -58,8 +58,8 @@ private static final long serialVersionUID = 1L;
private Long tradeOrderId;
//退款金额
private BigDecimal refundAmount;
//包裹id
private Long packageId;
//包裹追踪号
private String trackNumber;
//退货数量
private Integer refundCount;
//商品id
@ -221,18 +221,18 @@ private static final long serialVersionUID = 1L;
}
/**
* 包裹id
* 包裹追踪号
* @return
*/
public Long getPackageId() {
return packageId;
public String getTrackNumber() {
return trackNumber;
}
/**
* 包裹id
* @param packageId
* 包裹追踪号
* @param trackNumber
*/
public void setPackageId(Long packageId) {
this.packageId = packageId;
public void setTrackNumber(String trackNumber) {
this.trackNumber = trackNumber;
}
/**
@ -323,7 +323,7 @@ private static final long serialVersionUID = 1L;
",status=" + status +
",tradeOrderId=" + tradeOrderId +
",refundAmount=" + refundAmount +
",packageId=" + packageId +
",trackNumber=" + trackNumber +
",refundCount=" + refundCount +
",productId=" + productId +
",productName=" + productName +

View File

@ -49,7 +49,7 @@ public class MysqlMain_update {
List<TablesBean> list = new ArrayList<TablesBean>();
String a = "vv_trade_order,vv_trade_order_line";
String a = "vv_shopping_cart";
for (String s : a.split(",")) {
list.add(new TablesBean(s));
}

View File

@ -3,12 +3,47 @@ package com.heyu.api.alibaba.request.mm.order;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class VVOrderRequest {
/**
* 订单id
*/
private List<Long> orderIds;
private Integer pageNum;
private Integer pageSize;
//买家手机号
private String buyerPhone;
//买家名
private String buyerName;
//买家微信
private String buyerWeixin;
//总价
private BigDecimal minAllPrice;
//总价
private BigDecimal maxAllPrice;
//wait_pay:待支付,待发货wait_shipping, 已经发货: shipping , 已接收delivered all_refund:全部退款part_refund,部分退款
private String status;
//创建时间撮最大
private Long minCreateTimestamp;
//创建时间撮 最小
private Long maxCreateTimestamp;
//商品名称 , 子单维度
private String productName;
/**
* 按时间排序
*/
private String createTimestampSort;
}

View File

@ -0,0 +1,14 @@
package com.heyu.api.alibaba.request.mm.order.resp;
import com.heyu.api.data.entity.vv.VvPackageEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import lombok.Data;
import java.util.List;
@Data
public class PackageDTO extends VvPackageEntity {
private List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList;
}

View File

@ -0,0 +1,26 @@
package com.heyu.api.alibaba.request.mm.order.resp;
import lombok.Data;
@Data
public class ShippingCartRequest {
private Integer pageNum;
private Integer pageSize;
//商品标题
private String productName;
//买家手机号
private String buyerPhone;
//买家名
private String buyerName;
//买家微信
private String buyerWeixin;
}

View File

@ -0,0 +1,28 @@
package com.heyu.api.alibaba.request.mm.order.resp;
import com.heyu.api.data.entity.vv.VvTradeOrderEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import lombok.Data;
import java.util.List;
@Data
public class VVOrderListResp extends VvTradeOrderEntity {
/***
* 订单行信息
*/
private List<VvTradeOrderLineEntity> vvTradeOrderLineList;
/***
* 包裹信息
*/
private List<PackageDTO> packageList;
}

View File

@ -1,34 +1,171 @@
package com.heyu.api.controller.mm;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.order.VVOrderRequest;
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.utils.R;
import com.heyu.api.data.utils.StringUtils;
import com.heyu.api.utils.ISelect;
import com.heyu.api.utils.PPageUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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;
@Slf4j
@RestController
@RequestMapping("/mm/order")
public class OrderController {
@Autowired
private VvTradeOrderDao vvTradeOrderDao;
@Autowired
private VvTradeOrderLineDao vvTradeOrderLineDao;
@Autowired
private VvPackageDao vvPackageDao;
/***
* 列表
*/
@RequestMapping("/list")
public R list(VVOrderRequest vvOrderRequest) {
if (StringUtils.isNotBlank(vvOrderRequest.getProductName())) {
List<VvTradeOrderLineEntity> list = vvTradeOrderLineDao.selectVvTradeOrderLineByProductName(vvOrderRequest.getProductName());
List<Long> orderIds = new ArrayList<>();
if (CollectionUtils.isNotEmpty(vvOrderRequest.getOrderIds())) {
orderIds.addAll(vvOrderRequest.getOrderIds());
}
for (VvTradeOrderLineEntity tradeOrderLineEntity : list) {
orderIds.add(tradeOrderLineEntity.getTradeOrderId());
}
vvOrderRequest.setOrderIds(orderIds);
}
PPageUtils pageUtils = PPageUtils.startPage(vvOrderRequest.getPageNum(), vvOrderRequest.getPageSize())
.doSelect(new ISelect() {
@Override
public List doSelect(IPage page) {
return vvTradeOrderDao.selectByCondition(page,
vvOrderRequest.getOrderIds(),
vvOrderRequest.getBuyerPhone(),
vvOrderRequest.getBuyerWeixin(),
vvOrderRequest.getBuyerName(),
vvOrderRequest.getMinAllPrice(),
vvOrderRequest.getMaxAllPrice(),
vvOrderRequest.getStatus(),
vvOrderRequest.getMinCreateTimestamp(),
vvOrderRequest.getMaxCreateTimestamp(),
vvOrderRequest.getCreateTimestampSort()
);
}
});
List<VvTradeOrderEntity> vvTradeOrderEntities = pageUtils.getRows();
List<Long> tradeOrderIds = new ArrayList<>();
for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) {
tradeOrderIds.add(vvTradeOrderEntity.getId());
}
List<VvTradeOrderLineEntity> list = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderIds(tradeOrderIds);
return R.ok();
List<String> trackNumbers = new ArrayList<>();
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : list) {
trackNumbers.add(vvTradeOrderLineEntity.getTrackNumber());
}
Map<String, VvPackageEntity> vvPackageEntityMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(trackNumbers)) {
List<VvPackageEntity> packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);
for (VvPackageEntity packageEntity : packageEntities) {
vvPackageEntityMap.put(packageEntity.getTrackNumber(), packageEntity);
}
}
List<VVOrderListResp> vvOrderListResps = new ArrayList<>();
for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) {
VVOrderListResp vvOrderListResp = new VVOrderListResp();
BeanUtils.copyProperties(vvTradeOrderEntity, vvOrderListResp);
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = new ArrayList<>();
for (VvTradeOrderLineEntity tradeOrderLineEntity : list) {
if (vvTradeOrderEntity.getId().equals(tradeOrderLineEntity.getTradeOrderId())) {
vvTradeOrderLineEntityList.add(tradeOrderLineEntity);
}
}
/***
* 订单行信息
*/
List<VvTradeOrderLineEntity> vvTradeOrderLineList = new ArrayList<>();
Map<String, PackageDTO> packageDTOMap = new HashMap();
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
if (StringUtils.isNotBlank(tradeOrderLineEntity.getTrackNumber())) {
PackageDTO packageDTO = packageDTOMap.get(tradeOrderLineEntity.getTrackNumber());
if (packageDTO == null) {
VvPackageEntity vvPackage = vvPackageEntityMap.get(tradeOrderLineEntity.getTrackNumber());
packageDTO = new PackageDTO();
BeanUtils.copyProperties(vvPackage, packageDTO);
}
List<VvTradeOrderLineEntity> vvTradeOrderLineEntitys = packageDTO.getVvTradeOrderLineEntityList();
if (vvTradeOrderLineEntitys == null) {
vvTradeOrderLineEntitys.add(tradeOrderLineEntity);
}
packageDTO.setVvTradeOrderLineEntityList(vvTradeOrderLineEntitys);
packageDTOMap.put(tradeOrderLineEntity.getTrackNumber(), packageDTO);
} else {
vvTradeOrderLineList.add(tradeOrderLineEntity);
}
}
List<PackageDTO> packageList = new ArrayList<>();
for (Map.Entry<String, PackageDTO> entry : packageDTOMap.entrySet()) {
packageList.add(entry.getValue());
}
vvOrderListResp.setVvTradeOrderLineList(vvTradeOrderLineList);
vvOrderListResp.setPackageList(packageList);
vvOrderListResps.add(vvOrderListResp);
}
return R.ok().setData(vvOrderListResps);
}
}

View File

@ -0,0 +1,42 @@
package com.heyu.api.controller.mm;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.order.resp.ShippingCartRequest;
import com.heyu.api.data.dao.vv.VvShoppingCartDao;
import com.heyu.api.data.utils.R;
import com.heyu.api.utils.ISelect;
import com.heyu.api.utils.PPageUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("/mm/shipping/cat")
public class ShoppingCartController {
@Autowired
private VvShoppingCartDao vvShoppingCartDao;
@RequestMapping("/list")
public R list(ShippingCartRequest vvShoppingCartRequest) {
PPageUtils pageUtils = PPageUtils.startPage(vvShoppingCartRequest.getPageNum(), vvShoppingCartRequest.getPageSize())
.doSelect(new ISelect() {
@Override
public List doSelect(IPage page) {
return vvShoppingCartDao.selectByCondition(page,
vvShoppingCartRequest.getProductName(),
vvShoppingCartRequest.getBuyerPhone(),
vvShoppingCartRequest.getBuyerName(),
vvShoppingCartRequest.getBuyerWeixin()
);
}
});
return R.ok().setData(pageUtils);
}
}