diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvBuyerDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvBuyerDao.java
new file mode 100644
index 0000000..cd38aba
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvBuyerDao.java
@@ -0,0 +1,36 @@
+package com.heyu.api.data.dao.vv;
+/**
+*
+* 买家信息 服务类
+*
+*
+* @author quyixiao
+* @since 2025-08-23
+*/
+import com.heyu.api.data.entity.vv.VvBuyerEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+@Mapper
+public interface VvBuyerDao extends BaseMapper {
+
+
+ VvBuyerEntity selectVvBuyerById(@Param("id")Long id);
+
+
+ Long insertVvBuyer(VvBuyerEntity vvBuyer);
+
+
+ Long insertOrUpdateVvBuyer(VvBuyerEntity vvBuyer);
+
+
+ int updateVvBuyerById(VvBuyerEntity vvBuyer);
+
+
+ int updateCoverVvBuyerById(VvBuyerEntity vvBuyer);
+
+
+ int deleteVvBuyerById(@Param("id")Long id);
+
+
+}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvShoppingCartDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvShoppingCartDao.java
index 8ace187..7f181ce 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvShoppingCartDao.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvShoppingCartDao.java
@@ -12,6 +12,7 @@ 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.IN;
import com.lz.mybatis.plugin.annotations.LIKE;
import com.lz.mybatis.plugin.annotations.OrderBy;
import org.apache.ibatis.annotations.Mapper;
@@ -47,4 +48,15 @@ public interface VvShoppingCartDao extends BaseMapper {
@IF @LIKE String buyerPhone,
@IF @LIKE String buyerName,
@IF @LIKE String buyerWeixin);
+
+
+
+ List selectAppByCondition(IPage page,
+ @IF String productName,
+ Long buyerId
+ );
+
+
+
+ Integer deleteVvShoppingCartByIds(@IN List id);
}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderDao.java
index 9d934e9..3a7981a 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderDao.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderDao.java
@@ -52,4 +52,15 @@ public interface VvTradeOrderDao extends BaseMapper {
@IF @GE Long minCreateTimestamp,
@IF @LE Long maxCreateTimestamp,
@OrderBy(VvTradeOrderEntity.create_timestamp) String createTimestampSort);
+
+
+
+
+ @OrderBy(VvTradeOrderEntity.id_)
+ List selectAppByCondition(IPage page,
+ @IF@IN List orderIds,
+ @IF String status,
+ @IF @GE Long minCreateTimestamp,
+ @IF@LE Long maxCreateTimestamp,
+ @IF String createTimestampSort);
}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvBuyerEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvBuyerEntity.java
new file mode 100644
index 0000000..0784c3b
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvBuyerEntity.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-23
+*/
+
+@Data
+@TableName("vv_buyer")
+public class VvBuyerEntity implements java.io.Serializable {
+private static final long serialVersionUID = 1L;
+
+ public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvBuyerEntity:";
+
+ 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 buyer_name = CLASS_NAME + "buyer_name"; // 买家名称
+ public final static String buyer_weixin = CLASS_NAME + "buyer_weixin"; // 买家微信
+ public final static String buyer_phone = CLASS_NAME + "buyer_phone"; // 买家手机号
+ //
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+ //是否删除:0 否 1 删除
+ private Integer isDelete;
+ //创建时间
+ private Date createTime;
+ //修改时间
+ private Date modifyTime;
+ //买家名称
+ private String buyerName;
+ //买家微信
+ private String buyerWeixin;
+ //买家手机号
+ private String buyerPhone;
+ /**
+ *
+ * @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;
+ }
+
+ /**
+ * 买家名称
+ * @return
+ */
+ public String getBuyerName() {
+ return buyerName;
+ }
+ /**
+ * 买家名称
+ * @param buyerName
+ */
+ public void setBuyerName(String buyerName) {
+ this.buyerName = buyerName;
+ }
+
+ /**
+ * 买家微信
+ * @return
+ */
+ public String getBuyerWeixin() {
+ return buyerWeixin;
+ }
+ /**
+ * 买家微信
+ * @param buyerWeixin
+ */
+ public void setBuyerWeixin(String buyerWeixin) {
+ this.buyerWeixin = buyerWeixin;
+ }
+
+ /**
+ * 买家手机号
+ * @return
+ */
+ public String getBuyerPhone() {
+ return buyerPhone;
+ }
+ /**
+ * 买家手机号
+ * @param buyerPhone
+ */
+ public void setBuyerPhone(String buyerPhone) {
+ this.buyerPhone = buyerPhone;
+ }
+
+ @Override
+ public String toString() {
+ return "VvBuyerEntity{" +
+ ",id=" + id +
+ ",isDelete=" + isDelete +
+ ",createTime=" + createTime +
+ ",modifyTime=" + modifyTime +
+ ",buyerName=" + buyerName +
+ ",buyerWeixin=" + buyerWeixin +
+ ",buyerPhone=" + buyerPhone +
+ "}";
+ }
+}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvShoppingCartEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvShoppingCartEntity.java
index 6af6653..8408745 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvShoppingCartEntity.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvShoppingCartEntity.java
@@ -33,6 +33,7 @@ private static final long serialVersionUID = 1L;
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 buyer_id = CLASS_NAME + "buyer_id"; // 买家id
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@@ -58,6 +59,8 @@ private static final long serialVersionUID = 1L;
private String buyerWeixin;
//总价
private BigDecimal allPrice;
+ //买家id
+ private Long buyerId;
/**
*
* @return
@@ -238,6 +241,21 @@ private static final long serialVersionUID = 1L;
this.allPrice = allPrice;
}
+ /**
+ * 买家id
+ * @return
+ */
+ public Long getBuyerId() {
+ return buyerId;
+ }
+ /**
+ * 买家id
+ * @param buyerId
+ */
+ public void setBuyerId(Long buyerId) {
+ this.buyerId = buyerId;
+ }
+
@Override
public String toString() {
return "VvShoppingCartEntity{" +
@@ -253,6 +271,7 @@ private static final long serialVersionUID = 1L;
",buyerName=" + buyerName +
",buyerWeixin=" + buyerWeixin +
",allPrice=" + allPrice +
+ ",buyerId=" + buyerId +
"}";
}
}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvBuyerServiceImpl.java b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvBuyerServiceImpl.java
new file mode 100644
index 0000000..337d28d
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvBuyerServiceImpl.java
@@ -0,0 +1,68 @@
+package com.heyu.api.data.service.impl.vv;
+/**
+*
+* 买家信息 服务类
+*
+*
+* @author quyixiao
+* @since 2025-08-23
+*/
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.heyu.api.data.dao.vv.VvBuyerDao;
+import com.heyu.api.data.entity.vv.VvBuyerEntity;
+import com.heyu.api.data.service.vv.VvBuyerService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+@Service
+public class VvBuyerServiceImpl extends ServiceImpl implements VvBuyerService {
+
+
+ @Autowired
+ private VvBuyerDao vvBuyerDao;
+
+
+
+ @Override
+ public VvBuyerEntity selectVvBuyerById(Long id){
+ return vvBuyerDao.selectVvBuyerById(id);
+ }
+
+
+
+ @Override
+ public Long insertVvBuyer(VvBuyerEntity vvBuyer){
+ return vvBuyerDao.insertVvBuyer(vvBuyer);
+ }
+
+
+
+ @Override
+ public Long insertOrUpdateVvBuyer(VvBuyerEntity vvBuyer){
+ return vvBuyerDao.insertOrUpdateVvBuyer(vvBuyer);
+ }
+
+
+
+ @Override
+ public int updateVvBuyerById(VvBuyerEntity vvBuyer){
+ return vvBuyerDao.updateVvBuyerById(vvBuyer);
+ }
+
+
+
+ @Override
+ public int updateCoverVvBuyerById(VvBuyerEntity vvBuyer){
+ return vvBuyerDao.updateCoverVvBuyerById(vvBuyer);
+ }
+
+
+
+ @Override
+ public int deleteVvBuyerById(Long id){
+ return vvBuyerDao.deleteVvBuyerById(id);
+ }
+
+
+
+}
diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvBuyerService.java b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvBuyerService.java
new file mode 100644
index 0000000..c280356
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvBuyerService.java
@@ -0,0 +1,34 @@
+package com.heyu.api.data.service.vv;
+/**
+*
+* 买家信息 服务类
+*
+*
+* @author quyixiao
+* @since 2025-08-23
+*/
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.heyu.api.data.entity.vv.VvBuyerEntity;
+public interface VvBuyerService extends IService {
+
+
+
+ VvBuyerEntity selectVvBuyerById(Long id);
+
+
+ Long insertVvBuyer(VvBuyerEntity vvBuyer);
+
+
+ Long insertOrUpdateVvBuyer(VvBuyerEntity vvBuyer);
+
+
+ int updateVvBuyerById(VvBuyerEntity vvBuyer);
+
+
+ int updateCoverVvBuyerById(VvBuyerEntity vvBuyer);
+
+
+ int deleteVvBuyerById(Long id);
+
+
+}
\ No newline at end of file
diff --git a/api-mapper/src/main/resources/mapper/vv/VvBuyerDao.xml b/api-mapper/src/main/resources/mapper/vv/VvBuyerDao.xml
new file mode 100644
index 0000000..e261207
--- /dev/null
+++ b/api-mapper/src/main/resources/mapper/vv/VvBuyerDao.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 67bb2da..1555439 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,11 +94,8 @@ public class MysqlMain_insert {
List list = new ArrayList();
- list.add(new TablesBean("vv_package"));
- list.add(new TablesBean("vv_trade_order"));
- list.add(new TablesBean("vv_buyer_address"));
- list.add(new TablesBean("vv_shopping_cart"));
- list.add(new TablesBean("vv_trade_order_line"));
+ list.add(new TablesBean("vv_buyer"));
+
diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppIndexPageRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppIndexPageRequest.java
index d68a30d..990451f 100644
--- a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppIndexPageRequest.java
+++ b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppIndexPageRequest.java
@@ -7,7 +7,6 @@ import lombok.Data;
public class AppIndexPageRequest {
-
private int pageNum = 1;
@@ -20,7 +19,6 @@ public class AppIndexPageRequest {
private String productName;
-
//一级类目id
private Integer categoryIdOne;
//二级类目
@@ -31,7 +29,6 @@ public class AppIndexPageRequest {
private Integer frontPage;
-
//销售价格
private String salePriceSort;
@@ -43,4 +40,5 @@ public class AppIndexPageRequest {
private String createTimestampSort;
+
}
diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppOrderRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppOrderRequest.java
new file mode 100644
index 0000000..e6ecb1c
--- /dev/null
+++ b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppOrderRequest.java
@@ -0,0 +1,41 @@
+package com.heyu.api.alibaba.request.vv;
+
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AppOrderRequest {
+
+ private int pageNum = 1;
+
+
+ private int pageSize = 10;
+
+
+ private Long buyerId;
+
+ private List orderIds;
+
+ //商品名称 , 子单维度
+ private String productName;
+
+
+ //创建时间撮,最大
+ private Long minCreateTimestamp;
+ //创建时间撮 最小
+ private Long maxCreateTimestamp;
+
+
+ /**
+ * 按时间排序
+ */
+ private String createTimestampSort;
+
+
+ //wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款
+ private String status;
+
+
+}
diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppShippingCartDeleteRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppShippingCartDeleteRequest.java
new file mode 100644
index 0000000..4b8cf6f
--- /dev/null
+++ b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppShippingCartDeleteRequest.java
@@ -0,0 +1,18 @@
+package com.heyu.api.alibaba.request.vv;
+
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AppShippingCartDeleteRequest {
+
+
+ /**
+ *
+ */
+ private List shoppingCartIds;
+
+
+}
diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppShippingCartRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppShippingCartRequest.java
new file mode 100644
index 0000000..49598e6
--- /dev/null
+++ b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppShippingCartRequest.java
@@ -0,0 +1,25 @@
+package com.heyu.api.alibaba.request.vv;
+
+
+import lombok.Data;
+
+@Data
+public class AppShippingCartRequest {
+
+
+ private Integer pageNum;
+
+ private Integer pageSize;
+
+
+ //商品标题
+ private String productName;
+
+ /***
+ * 买家id
+ */
+ private Long buyerId;
+
+
+
+}
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/VVIndexPageController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppIndexPageController.java
similarity index 97%
rename from api-web/api-interface/src/main/java/com/heyu/api/controller/vv/VVIndexPageController.java
rename to api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppIndexPageController.java
index bb66188..d13b1af 100644
--- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/VVIndexPageController.java
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppIndexPageController.java
@@ -23,8 +23,8 @@ import java.util.List;
@Slf4j
@RestController
-@RequestMapping("/app")
-public class VVIndexPageController {
+@RequestMapping("/app/index")
+public class AppIndexPageController {
@Autowired
private VvProductDao vvProductDao;
@@ -48,12 +48,10 @@ public class VVIndexPageController {
@Autowired
private VvProductPropertyValueDao vvProductPropertyValueDao;
-
-
/***
* 列表
*/
- @RequestMapping("/index/page/list")
+ @RequestMapping("/page/list")
public R list(AppIndexPageRequest vvProductRequest) {
PPageUtils pageUtils = PPageUtils.startPage(vvProductRequest.getPageNum(), vvProductRequest.getPageSize())
.doSelect(new ISelect() {
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java
new file mode 100644
index 0000000..03726b7
--- /dev/null
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java
@@ -0,0 +1,166 @@
+package com.heyu.api.controller.vv;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.heyu.api.alibaba.request.mm.order.resp.PackageDTO;
+import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp;
+import com.heyu.api.alibaba.request.vv.AppOrderRequest;
+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("/app/order")
+public class AppOrderController {
+
+
+ @Autowired
+ private VvTradeOrderLineDao vvTradeOrderLineDao;
+
+
+ @Autowired
+ private VvTradeOrderDao vvTradeOrderDao;
+
+
+ @Autowired
+ private VvPackageDao vvPackageDao;
+
+ /***
+ * 列表
+ */
+ @RequestMapping("/list")
+ public R list(AppOrderRequest vvOrderRequest) {
+
+ if (StringUtils.isNotBlank(vvOrderRequest.getProductName())) {
+ List list = vvTradeOrderLineDao.selectVvTradeOrderLineByProductName(vvOrderRequest.getProductName());
+ List 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.selectAppByCondition(page,
+ vvOrderRequest.getOrderIds(),
+ vvOrderRequest.getStatus(),
+ vvOrderRequest.getMinCreateTimestamp(),
+ vvOrderRequest.getMaxCreateTimestamp(),
+ vvOrderRequest.getCreateTimestampSort()
+ );
+ }
+ });
+
+
+ List vvTradeOrderEntities = pageUtils.getRows();
+
+ List tradeOrderIds = new ArrayList<>();
+
+ for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) {
+ tradeOrderIds.add(vvTradeOrderEntity.getId());
+ }
+
+ List list = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderIds(tradeOrderIds);
+
+
+ List trackNumbers = new ArrayList<>();
+ for (VvTradeOrderLineEntity vvTradeOrderLineEntity : list) {
+ trackNumbers.add(vvTradeOrderLineEntity.getTrackNumber());
+ }
+
+
+ Map vvPackageEntityMap = new HashMap<>();
+
+
+ if (CollectionUtils.isNotEmpty(trackNumbers)) {
+ List packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);
+ for (VvPackageEntity packageEntity : packageEntities) {
+ vvPackageEntityMap.put(packageEntity.getTrackNumber(), packageEntity);
+ }
+ }
+
+ List vvOrderListResps = new ArrayList<>();
+ for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) {
+ VVOrderListResp vvOrderListResp = new VVOrderListResp();
+ BeanUtils.copyProperties(vvTradeOrderEntity, vvOrderListResp);
+
+ List vvTradeOrderLineEntityList = new ArrayList<>();
+
+
+ for (VvTradeOrderLineEntity tradeOrderLineEntity : list) {
+ if (vvTradeOrderEntity.getId().equals(tradeOrderLineEntity.getTradeOrderId())) {
+ vvTradeOrderLineEntityList.add(tradeOrderLineEntity);
+ }
+ }
+
+ /***
+ * 订单行信息
+ */
+ List vvTradeOrderLineList = new ArrayList<>();
+ Map 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 vvTradeOrderLineEntitys = packageDTO.getVvTradeOrderLineEntityList();
+ if (vvTradeOrderLineEntitys == null) {
+ vvTradeOrderLineEntitys.add(tradeOrderLineEntity);
+ }
+ packageDTO.setVvTradeOrderLineEntityList(vvTradeOrderLineEntitys);
+
+ packageDTOMap.put(tradeOrderLineEntity.getTrackNumber(), packageDTO);
+
+ } else {
+ vvTradeOrderLineList.add(tradeOrderLineEntity);
+ }
+ }
+
+ List packageList = new ArrayList<>();
+ for (Map.Entry entry : packageDTOMap.entrySet()) {
+ packageList.add(entry.getValue());
+ }
+
+
+ vvOrderListResp.setVvTradeOrderLineList(vvTradeOrderLineList);
+ vvOrderListResp.setPackageList(packageList);
+
+ vvOrderListResps.add(vvOrderListResp);
+ }
+ return R.ok().setData(vvOrderListResps);
+ }
+
+
+}
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppShoppingCartController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppShoppingCartController.java
new file mode 100644
index 0000000..74767da
--- /dev/null
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppShoppingCartController.java
@@ -0,0 +1,77 @@
+package com.heyu.api.controller.vv;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.heyu.api.alibaba.request.vv.AppShippingCartDeleteRequest;
+import com.heyu.api.alibaba.request.vv.AppShippingCartRequest;
+import com.heyu.api.data.dao.vv.VvBuyerDao;
+import com.heyu.api.data.dao.vv.VvShoppingCartDao;
+import com.heyu.api.data.entity.vv.VvBuyerEntity;
+import com.heyu.api.data.entity.vv.VvShoppingCartEntity;
+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("/app/shipping/cart")
+public class AppShoppingCartController {
+
+
+ @Autowired
+ private VvShoppingCartDao vvShoppingCartDao;
+
+ @Autowired
+ private VvBuyerDao vvBuyerDao;
+
+ /***
+ * 列表
+ */
+ @RequestMapping("/list")
+ public R list(AppShippingCartRequest appShippingCartRequest) {
+ PPageUtils pageUtils = PPageUtils.startPage(appShippingCartRequest.getPageNum(), appShippingCartRequest.getPageSize())
+ .doSelect(new ISelect() {
+ @Override
+ public List doSelect(IPage page) {
+ return vvShoppingCartDao.selectAppByCondition(page,
+ appShippingCartRequest.getProductName(),
+ appShippingCartRequest.getBuyerId()
+ );
+ }
+ });
+ return R.ok().setData(pageUtils);
+ }
+
+
+ /***
+ * 更新 或 添加 ,如数量更新
+ */
+ @RequestMapping("/addOrUpdate")
+ public R add(VvShoppingCartEntity vvShoppingCartEntity) {
+ VvBuyerEntity vvBuyerEntity = vvBuyerDao.selectVvBuyerById(vvShoppingCartEntity.getBuyerId());
+ vvShoppingCartEntity.setBuyerName(vvBuyerEntity.getBuyerName());
+ vvShoppingCartEntity.setBuyerPhone(vvBuyerEntity.getBuyerPhone());
+ vvShoppingCartEntity.setBuyerWeixin(vvBuyerEntity.getBuyerWeixin());
+ vvShoppingCartDao.insertOrUpdateVvShoppingCart(vvShoppingCartEntity);
+ return R.ok();
+ }
+
+
+ /***
+ * 列表
+ */
+ @RequestMapping("/delete")
+ public R delete(AppShippingCartDeleteRequest appShippingCartDeleteRequest) {
+ vvShoppingCartDao.deleteVvShoppingCartByIds(appShippingCartDeleteRequest.getShoppingCartIds());
+ return R.ok();
+ }
+
+
+}