diff --git a/api-common/src/main/java/com/heyu/api/common/LBiFunction0.java b/api-common/src/main/java/com/heyu/api/common/LBiFunction0.java new file mode 100644 index 0000000..cad5058 --- /dev/null +++ b/api-common/src/main/java/com/heyu/api/common/LBiFunction0.java @@ -0,0 +1,13 @@ +package com.heyu.api.common; + +import java.io.Serializable; + + +@FunctionalInterface +public interface LBiFunction0 extends Serializable { + + + R apply(T1 t1); + + +} diff --git a/api-common/src/main/java/com/heyu/api/common/SanUtils.java b/api-common/src/main/java/com/heyu/api/common/SanUtils.java new file mode 100644 index 0000000..b964387 --- /dev/null +++ b/api-common/src/main/java/com/heyu/api/common/SanUtils.java @@ -0,0 +1,201 @@ +package com.heyu.api.common; + +import com.alibaba.fastjson.JSON; +import com.heyu.api.common.test.AriseUser; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.ClassUtils; + +import java.lang.invoke.SerializedLambda; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +public class SanUtils { + + + public static Map list2Map(List values, LBiFunction0 function) { + try { + if (CollectionUtils.isEmpty(values)) { + return new HashMap<>(); + + } + Map map = new HashMap<>(); + Method method = getMethod(function); + for (V value : values) { + map.put((R) method.invoke(value), value); + } + return map; + } catch (Exception e) { + e.printStackTrace(); + } + return new HashMap<>(); + } + + public static List list2listFilterNull(List values, LBiFunction0 function) { + + List list = list2list(values, function); + + List result = new ArrayList<>(); + + if(CollectionUtils.isEmpty(list)){ + for (R r : list) { + if(r!=null){ + result.add(r); + } + } + } + + return result; + } + + + + public static List list2list(List values, LBiFunction0 function) { + List list = new ArrayList<>(); + try { + if (CollectionUtils.isEmpty(values)) { + return list; + + } + Map map = new HashMap<>(); + Method method = getMethod(function); + for (V value : values) { + list.add((R) method.invoke(value)); + } + return list; + } catch (Exception e) { + e.printStackTrace(); + } + return list; + } + + public static Map> list2GroupBy(List values, LBiFunction0 function) { + Map> listmap = new HashMap<>(); + Method method = getMethod(function); + try { + for (int i = 0; i < values.size(); i++) { + V v = values.get(i); + R r = (R) method.invoke(v); + List list = listmap.get(r); + if (list == null) { + list = new ArrayList<>(); + } + list.add(v); + listmap.put(r, list); + } + } catch (Exception e) { + e.printStackTrace(); + } + return listmap; + } + + private static Method getMethod(LBiFunction0 function) { + try { + Method method = function.getClass().getDeclaredMethods()[1]; + method.setAccessible(true); + SerializedLambda serializedLambda = (SerializedLambda) method.invoke(function); + String methodName = serializedLambda.getImplMethodName(); + String className = serializedLambda.getImplClass().replace("/", "."); + Class clazz = Class.forName(className); + + Method methods[] = clazz.getDeclaredMethods(); + for (Method m : methods) { + if (m.getName().equals(methodName)) { + return m; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + + private static List getMethods(LBiFunction0 function) { + try { + Method method = function.getClass().getDeclaredMethods()[1]; + method.setAccessible(true); + SerializedLambda serializedLambda = (SerializedLambda) method.invoke(function); + String methodName = serializedLambda.getImplMethodName(); + String className = serializedLambda.getImplClass().replace("/", "."); + Class clazz = Class.forName(className); + + List list = new ArrayList<>(); + Method methods[] = clazz.getDeclaredMethods(); + for (Method m : methods) { + if (m.getName().equals(methodName)) { + list.add(m); + } + } + return list; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + private static Method getRealMethod(List methods, Class paramClazz) { + for (Method method : methods) { + Class[] parameterTypes = method.getParameterTypes(); + if (parameterTypes != null + && parameterTypes.length == 1 + && ClassUtils.isAssignable(paramClazz, parameterTypes[0])) { + return method; + } + } + return null; + } + + + public static List convert(List list, LBiFunction0 function) { + List methods = getMethods(function); + List result = new ArrayList<>(); + for (V v : list) { + try { + Class clazz = v.getClass(); + Method method = getRealMethod(methods, clazz); + int modifiers = method.getModifiers(); + Object object = null; + if (Modifier.isStatic(modifiers)) { + object = method.invoke(null, v); + } else { + object = method.invoke(v); + } + result.add(object); + } catch (Exception e) { + log.error("convert exception", e); + } + } + return result; + } + + public static void main(String[] args) { + AriseUser ai = new AriseUser(); + ai.setName("张三"); + ai.setAge(13); + AriseUser ai2 = new AriseUser(); + ai2.setName("李四"); + ai2.setAge(23); + + AriseUser ai3 = new AriseUser(); + ai3.setName("李四"); + ai3.setAge(25); + + + List list = new ArrayList<>(); + list.add(ai); + list.add(ai2); + list.add(ai3); + + Map> map = list2GroupBy(list, AriseUser::getName); + System.out.println(JSON.toJSONString(map)); + + + } + +} diff --git a/api-common/src/main/java/com/heyu/api/common/test/AriseUser.java b/api-common/src/main/java/com/heyu/api/common/test/AriseUser.java new file mode 100644 index 0000000..de07432 --- /dev/null +++ b/api-common/src/main/java/com/heyu/api/common/test/AriseUser.java @@ -0,0 +1,11 @@ +package com.heyu.api.common.test; + +import lombok.Data; + +@Data +public class AriseUser { + + private String name; + + private Integer age; +} 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 2f2d448..50a0eb3 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 @@ -65,4 +65,6 @@ public interface VvTradeOrderDao extends BaseMapper { void updateByBuerIdAndIds(String status,@By Long buyerId,@By List ids); + + List selectVvTradeOrderByTradeOrderIds(@IN List 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 3c38a7a..7be2afe 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 @@ -1,76 +1,116 @@ package com.heyu.api.data.dao.vv; /** -*

-* 购物车 服务类 -*

-* -* @author quyixiao -* @since 2025-08-23 -*/ + *

+ * 购物车 服务类 + *

+ * + * @author quyixiao + * @since 2025-08-23 + */ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; 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; +import java.math.BigDecimal; import java.util.List; @Mapper public interface VvTradeOrderLineDao extends BaseMapper { - VvTradeOrderLineEntity selectVvTradeOrderLineById(@Param("id")Long id); + VvTradeOrderLineEntity selectVvTradeOrderLineById(@Param("id") Long id); - Long insertVvTradeOrderLine(VvTradeOrderLineEntity vvTradeOrderLine); + Long insertVvTradeOrderLine(VvTradeOrderLineEntity vvTradeOrderLine); - Long insertOrUpdateVvTradeOrderLine(VvTradeOrderLineEntity vvTradeOrderLine); + Long insertOrUpdateVvTradeOrderLine(VvTradeOrderLineEntity vvTradeOrderLine); - int updateVvTradeOrderLineById(VvTradeOrderLineEntity vvTradeOrderLine); + int updateVvTradeOrderLineById(VvTradeOrderLineEntity vvTradeOrderLine); - int updateCoverVvTradeOrderLineById(VvTradeOrderLineEntity vvTradeOrderLine); + int updateCoverVvTradeOrderLineById(VvTradeOrderLineEntity vvTradeOrderLine); - int deleteVvTradeOrderLineById(@Param("id")Long id); + int deleteVvTradeOrderLineById(@Param("id") Long id); - @OrderBy(VvTradeOrderLineEntity.id_) - @GroupBy(VvTradeOrderLineEntity.trade_order_id) - List selectVvTradeOrderLineByProductName(@LIKE String productName); + @OrderBy(VvTradeOrderLineEntity.id_) + @GroupBy(VvTradeOrderLineEntity.trade_order_id) + List selectVvTradeOrderLineByProductName(@LIKE String productName); - - - List selectVvTradeOrderLineByTradeOrderIds(@IN List tradeOrderId, - @IF String status); + List selectVvTradeOrderLineByTradeOrderIds(@IN List tradeOrderId, + @IF String status); List selectVvTradeOrderLineByTradeOrderIdSkuId(Long tradeOrderId, Long skuId); - List selectVvTradeOrderLineByIds(@IN List id); + List selectVvTradeOrderLineByIds(@IN List id); + + + 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); + + @OrderBy(VvTradeOrderLineEntity.id_) + @GroupBy(VvTradeOrderLineEntity.trade_order_id) + List selectByAdminCondition(IPage page, + @IF @IN List tradeOrderIds, + @IF @LIKE String buyerPhone, + @IF @LIKE String buyerName, + @IF @LIKE String buyerWeixin, + @IF @GE @Column(VvTradeOrderLineEntity.sale_price) BigDecimal minSalePrice, + @IF @LE @Column(VvTradeOrderLineEntity.sale_price) BigDecimal maxSalePrice, + @IF String status, + @IF Integer settleStatus, + @IF @GE @Column(VvTradeOrderLineEntity.create_timestamp) Long minCreateTimestamp, + @IF @LE @Column(VvTradeOrderLineEntity.create_timestamp) Long maxCreateTimestamp, + @IF @LIKE String productName, + @IF Long sellerId, + @IF @LIKE String sellerName, + @IF Long buyerId, + @IF String reverseStatus, + @IF @OrderBy(VvTradeOrderLineEntity.create_timestamp) String createTimestampSort); - - List selectVvTradeOrderLineByTradeOrderId(Long tradeOrderId); + List selectByAdminConditionList( + @IF @IN List tradeOrderIds, + @IF @LIKE String buyerPhone, + @IF @LIKE String buyerName, + @IF @LIKE String buyerWeixin, + @IF @GE @Column(VvTradeOrderLineEntity.sale_price) BigDecimal minSalePrice, + @IF @LE @Column(VvTradeOrderLineEntity.sale_price) BigDecimal maxSalePrice, + @IF String status, + @IF Integer settleStatus, + @IF @GE @Column(VvTradeOrderLineEntity.create_timestamp) Long minCreateTimestamp, + @IF @LE @Column(VvTradeOrderLineEntity.create_timestamp) Long maxCreateTimestamp, + @IF @LIKE String productName, + @IF Long sellerId, + @IF @LIKE String sellerName, + @IF Long buyerId, + @IF String reverseStatus, + @IF @OrderBy(VvTradeOrderLineEntity.create_timestamp) String createTimestampSort); - 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/VvTradeOrderLineEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineEntity.java index 6d79aaf..2eac794 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 @@ -50,6 +50,15 @@ private static final long serialVersionUID = 1L; 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"; // 原来价格 + public final static String buyer_id = CLASS_NAME + "buyer_id"; // 订单id + public final static String create_timestamp = CLASS_NAME + "create_timestamp"; // 创建时间 + public final static String modify_timestamp = CLASS_NAME + "modify_timestamp"; // 修改时间 + 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 province_ = CLASS_NAME + "province"; // 省 + public final static String city_ = CLASS_NAME + "city"; // 市 + public final static String district_ = CLASS_NAME + "district"; // 区 // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -109,6 +118,24 @@ private static final long serialVersionUID = 1L; private BigDecimal profitAmount; //原来价格 private BigDecimal originPrice; + //订单id + private Long buyerId; + //创建时间 + private Long createTimestamp; + //修改时间 + private Date modifyTimestamp; + //买家手机号 + private String buyerPhone; + //买家名称 + private String buyerName; + //买家微信 + private String buyerWeixin; + //省 + private String province; + //市 + private String city; + //区 + private String district; /** * * @return @@ -544,6 +571,141 @@ private static final long serialVersionUID = 1L; this.originPrice = originPrice; } + /** + * 订单id + * @return + */ + public Long getBuyerId() { + return buyerId; + } + /** + * 订单id + * @param buyerId + */ + public void setBuyerId(Long buyerId) { + this.buyerId = buyerId; + } + + /** + * 创建时间 + * @return + */ + public Long getCreateTimestamp() { + return createTimestamp; + } + /** + * 创建时间 + * @param createTimestamp + */ + public void setCreateTimestamp(Long createTimestamp) { + this.createTimestamp = createTimestamp; + } + + /** + * 修改时间 + * @return + */ + public Date getModifyTimestamp() { + return modifyTimestamp; + } + /** + * 修改时间 + * @param modifyTimestamp + */ + public void setModifyTimestamp(Date modifyTimestamp) { + this.modifyTimestamp = modifyTimestamp; + } + + /** + * 买家手机号 + * @return + */ + public String getBuyerPhone() { + return buyerPhone; + } + /** + * 买家手机号 + * @param buyerPhone + */ + public void setBuyerPhone(String buyerPhone) { + this.buyerPhone = buyerPhone; + } + + /** + * 买家名称 + * @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 getProvince() { + return province; + } + /** + * 省 + * @param province + */ + public void setProvince(String province) { + this.province = province; + } + + /** + * 市 + * @return + */ + public String getCity() { + return city; + } + /** + * 市 + * @param city + */ + public void setCity(String city) { + this.city = city; + } + + /** + * 区 + * @return + */ + public String getDistrict() { + return district; + } + /** + * 区 + * @param district + */ + public void setDistrict(String district) { + this.district = district; + } + @Override public String toString() { return "VvTradeOrderLineEntity{" + @@ -576,6 +738,15 @@ private static final long serialVersionUID = 1L; ",reverseStatus=" + reverseStatus + ",profitAmount=" + profitAmount + ",originPrice=" + originPrice + + ",buyerId=" + buyerId + + ",createTimestamp=" + createTimestamp + + ",modifyTimestamp=" + modifyTimestamp + + ",buyerPhone=" + buyerPhone + + ",buyerName=" + buyerName + + ",buyerWeixin=" + buyerWeixin + + ",province=" + province + + ",city=" + city + + ",district=" + district + "}"; } } \ No newline at end of file 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 73b15e6..d28fb85 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_trade_order"; + String a = "vv_trade_order_line"; for (String s : a.split(",")) { list.add(new TablesBean(s)); } diff --git a/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java b/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java index 6fa5289..1274087 100644 --- a/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java +++ b/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java @@ -1,6 +1,6 @@ package com.test.xxx.mysql; -import com.heyu.api.data.dao.vv.VvCommentDao; +import com.heyu.api.data.dao.vv.VvTradeOrderLineDao; import com.lz.mybatis.plugin.utils.TestParseUtils; import com.lz.mybatis.plugin.utils.t.Tuple2; import org.junit.Test; @@ -12,7 +12,7 @@ SqlParseUtilsTest { public void test1() { - Tuple2 tuple = TestParseUtils.testSql(VvCommentDao::selectLogin).getData(); + Tuple2 tuple = TestParseUtils.testSql(VvTradeOrderLineDao::selectByAdminCondition).getData(); diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/OrderStatusEnums.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/OrderStatusEnums.java index f019141..6e184cc 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/OrderStatusEnums.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/OrderStatusEnums.java @@ -5,6 +5,7 @@ public enum OrderStatusEnums { wait_pay("wait_pay","待支付"), wait_shipping("wait_shipping","待发货"), + cancel("cancel","取消"), shipping("shipping","已发货"), delivered("delivered","已签收"), all_refund("all_refund","全部退款"), 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 index a92639c..5063acf 100644 --- 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 @@ -10,6 +10,7 @@ public enum ReverseStatusEnums { // agree_refunded 同意退款 , // refunded 退款完成 , // close 退款关闭 + cancel("cancel","订单取消"), wait_seller_agree("wait_seller_agree","等待卖家同意"), wait_buyer_post("wait_buyer_post","买家邮寄"), shipping("shipping","运送中"), @@ -17,9 +18,7 @@ public enum ReverseStatusEnums { reject_delivered("reject_delivered","拒绝接收"), agree_refunded("agree_refunded","同意退款"), refunded("refunded","退款完成"), - close("close","退款关闭"),; - - + close("close","退款关闭"); ReverseStatusEnums(String status, String desc) { this.status = status; diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVOrderRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVOrderRequest.java index 0a5ac7b..4020033 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVOrderRequest.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVOrderRequest.java @@ -11,39 +11,80 @@ public class VVOrderRequest { /** * 订单id */ - private List orderIds; + private List tradeOrderIds; - private Integer pageNum = 1 ; + private Integer pageNum = 1; - private Integer pageSize = 10 ; + private Integer pageSize = 10; //买家手机号 private String buyerPhone; + //买家名 private String buyerName; + //买家微信 private String buyerWeixin; - //总价 - private BigDecimal minAllPrice; //总价 - private BigDecimal maxAllPrice; + private BigDecimal minSalePrice; - //wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款 + //总价 + private BigDecimal maxSalePrice; + + //wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered private String status; + // 结算状态 + private Integer settleStatus; + //创建时间撮,最大 private Long minCreateTimestamp; + //创建时间撮 最小 private Long maxCreateTimestamp; //商品名称 , 子单维度 private String productName; + + /*** + * 卖家id + */ + private Long sellerId; + + /*** + * 卖家名称 + */ + private String sellerName; + + /*** + * 买家id + */ + private Long buyerId; + + /*** + * 逆向状态 状态 + * close 取消 + * wait_seller_agree 等待卖家同意 , + * wait_buyer_post 等待买家寄东西, + * shipping 运送中, delivered 妥投, + * reject_delivered 拒绝妥投, + * agree_refunded 同意退款 , + * refunded 退款完成 , + * close 退款关闭 + * + */ + private String reverseStatus; + /** + * * 按时间排序 */ private String createTimestampSort; + + + } 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 b5b8daa..9bce25c 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 @@ -7,6 +7,7 @@ import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums; 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.common.SanUtils; import com.heyu.api.data.dao.vv.*; import com.heyu.api.data.entity.vv.*; import com.heyu.api.data.utils.BigDecimalUtil; @@ -58,51 +59,66 @@ public class OrderController { */ @RequestMapping("/list") public R list(@RequestBody VVOrderRequest 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.selectByCondition(page, - vvOrderRequest.getOrderIds(), + return vvTradeOrderLineDao.selectByAdminCondition(page, + vvOrderRequest.getTradeOrderIds(), vvOrderRequest.getBuyerPhone(), - vvOrderRequest.getBuyerWeixin(), vvOrderRequest.getBuyerName(), - vvOrderRequest.getMinAllPrice(), - vvOrderRequest.getMaxAllPrice(), + vvOrderRequest.getBuyerWeixin(), + vvOrderRequest.getMinSalePrice(), + vvOrderRequest.getMaxSalePrice(), vvOrderRequest.getStatus(), + vvOrderRequest.getSettleStatus(), vvOrderRequest.getMinCreateTimestamp(), vvOrderRequest.getMaxCreateTimestamp(), + vvOrderRequest.getProductName(), + vvOrderRequest.getSellerId(), + vvOrderRequest.getSellerName(), + vvOrderRequest.getBuyerId(), + vvOrderRequest.getReverseStatus(), vvOrderRequest.getCreateTimestampSort() ); } }); - List vvTradeOrderEntities = pageUtils.getRows(); - List tradeOrderIds = new ArrayList<>(); + // 获取子单 + List vvTradeOrderLineEntities = pageUtils.getRows(); - for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) { - tradeOrderIds.add(vvTradeOrderEntity.getId()); + // 获取订单 + List tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntities,VvTradeOrderLineEntity::getTradeOrderId ); + List tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds); + + // 对订单进行排序,必须按照子单的顺序 + Map vvTradeOrderEntityMap = SanUtils.list2Map(tradeOrderEntities, VvTradeOrderEntity::getId); + List vvTradeOrderEntities = new ArrayList<>(); + for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) { + vvTradeOrderEntities.add(vvTradeOrderEntityMap.get(vvTradeOrderLineEntity.getTradeOrderId())); } - List list = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderIds(tradeOrderIds, vvOrderRequest.getStatus()); + // 重新获取子单 + List list = vvTradeOrderLineDao.selectByAdminConditionList( + vvOrderRequest.getTradeOrderIds(), + vvOrderRequest.getBuyerPhone(), + vvOrderRequest.getBuyerName(), + vvOrderRequest.getBuyerWeixin(), + vvOrderRequest.getMinSalePrice(), + vvOrderRequest.getMaxSalePrice(), + vvOrderRequest.getStatus(), + vvOrderRequest.getSettleStatus(), + vvOrderRequest.getMinCreateTimestamp(), + vvOrderRequest.getMaxCreateTimestamp(), + vvOrderRequest.getProductName(), + vvOrderRequest.getSellerId(), + vvOrderRequest.getSellerName(), + vvOrderRequest.getBuyerId(), + vvOrderRequest.getReverseStatus(), + vvOrderRequest.getCreateTimestampSort()); - List trackNumbers = new ArrayList<>(); - for (VvTradeOrderLineEntity vvTradeOrderLineEntity : list) { - trackNumbers.add(vvTradeOrderLineEntity.getTrackNumber()); - } + List trackNumbers = SanUtils.list2listFilterNull(list, VvTradeOrderLineEntity::getTrackNumber); Map vvPackageEntityMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(trackNumbers)) { List packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers); @@ -117,8 +133,6 @@ public class OrderController { BeanUtils.copyProperties(vvTradeOrderEntity, vvOrderListResp); List vvTradeOrderLineEntityList = new ArrayList<>(); - - for (VvTradeOrderLineEntity tradeOrderLineEntity : list) { if (vvTradeOrderEntity.getId().equals(tradeOrderLineEntity.getTradeOrderId())) { vvTradeOrderLineEntityList.add(tradeOrderLineEntity);