فهرست منبع

订单部分优化

liude 1 سال پیش
والد
کامیت
a536f42950

+ 5 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/MerchantDTO.java

@@ -121,4 +121,9 @@ public class MerchantDTO implements Serializable {
      * 商家是否被收藏
      */
     private boolean favorites = false;
+
+    /**
+     * 所属地区
+     */
+    private Integer region;
 }

+ 18 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/OmsOrderDTO.java

@@ -10,6 +10,7 @@ import lombok.experimental.SuperBuilder;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 订单对象 oms_order
@@ -155,4 +156,21 @@ public class OmsOrderDTO implements Serializable
     /** 评价时间 */
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date commentTime;
+    /**
+     * 商家ID
+     */
+    private Long merchantId;
+    /**
+     * 商品信息
+     */
+    private List<OmsOrderItemDTO> goodsInfo;
+    /**
+     * 商家信息
+     */
+    private MerchantDTO merchantInfo;
+
+    /**
+     * 下单时间
+     */
+    private Date createTime;
 }

+ 2 - 1
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/OmsOrderItemDTO.java

@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor;
 import lombok.ToString;
 import lombok.experimental.SuperBuilder;
 
+import java.io.Serializable;
 import java.math.BigDecimal;
 
 /**
@@ -19,7 +20,7 @@ import java.math.BigDecimal;
 @NoArgsConstructor
 @AllArgsConstructor
 @ToString(callSuper = true)
-public class OmsOrderItemDTO
+public class OmsOrderItemDTO implements Serializable
 {
     private static final long serialVersionUID = 1L;
 

+ 5 - 13
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/OmsCartItemModifyParam.java

@@ -1,14 +1,14 @@
 package com.chelvc.cloud.vehicle.api.param;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.ToString;
 import lombok.experimental.SuperBuilder;
 
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.math.BigDecimal;
-import java.util.Date;
 
 /**
  * 购物车对象 oms_cart_item
@@ -33,14 +33,12 @@ public class OmsCartItemModifyParam implements Serializable
     /**
      * 商品id
      */
+    @NotNull(message = "商品ID不能为空")
     private Long goodsId;
 
     /** $column.columnComment */
     private Long goodsSkuId;
 
-    /** $column.columnComment */
-    private Long userId;
-
     /** 购买数量 */
     private Integer quantity;
 
@@ -51,6 +49,7 @@ public class OmsCartItemModifyParam implements Serializable
     private String goodsPic;
 
     /** 商品名称 */
+    @NotEmpty(message = "商品名称不能为空")
     private String goodsName;
 
     /** 商品副标题(卖点) */
@@ -62,14 +61,6 @@ public class OmsCartItemModifyParam implements Serializable
     /** 会员昵称 */
     private String memberNickname;
 
-    /** 创建时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date createDate;
-
-    /** 修改时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date modifyDate;
-
     /** 是否删除 */
     private Integer deleteStatus;
 
@@ -87,6 +78,7 @@ public class OmsCartItemModifyParam implements Serializable
     /**
      * 商家id
      */
+    @NotNull(message = "商家ID不能为空")
     private Long merchantId;
     /**
      * 商品原价

+ 8 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/OmsCartItemService.java

@@ -56,4 +56,12 @@ public interface OmsCartItemService
     MerchantCartItemDTO listCartItem(Long merchantId);
 
 
+    /**
+     * 根据会员编号及商家获取购物车列表
+     */
+//    List<MerchantCartItemDTO> listCartItemByUserId();
+
+
+
+
 }

+ 4 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/OmsOrder.java

@@ -165,4 +165,8 @@ public class OmsOrder extends ModifyEntity<Long>
      * 商家ID
      */
     private Long merchantId;
+    /**
+     * 下单时间
+     */
+    private Date createTime;
 }

+ 2 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/OmsOrderItem.java

@@ -1,5 +1,6 @@
 package com.chelvc.cloud.vehicle.server.entity;
 
+import java.io.Serializable;
 import java.math.BigDecimal;
 
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -26,7 +27,7 @@ import lombok.experimental.SuperBuilder;
 @ToString(callSuper = true)
 @EqualsAndHashCode(callSuper = true)
 @TableName(autoResultMap = true)
-public class OmsOrderItem extends ModifyEntity<Long>
+public class OmsOrderItem extends ModifyEntity<Long> implements Serializable
 {
     private static final long serialVersionUID = 1L;
 

+ 7 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/IOmsOrderItemService.java

@@ -23,4 +23,11 @@ public interface IOmsOrderItemService extends IService<OmsOrderItem>
 
     List<OmsOrderItem> selectByExample(OmsOrderItem omsOrderItem);
 
+    /**
+     * 返回商品信息
+     * @param orderId
+     * @return
+     */
+    List<OmsOrderItemDTO> getOrderItemByOrderId(Long orderId);
+
 }

+ 8 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/MerchantService.java

@@ -1,6 +1,7 @@
 package com.chelvc.cloud.vehicle.server.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
 import com.chelvc.cloud.vehicle.server.entity.Merchant;
 
 import java.util.List;
@@ -18,4 +19,11 @@ public interface MerchantService extends IService<Merchant> {
      * @return
      */
     List<Long> getMerchantIdsByUserId(Long userId);
+
+    /**
+     * 商家信息
+     * @param merchantId
+     * @return
+     */
+    MerchantDTO getMerchantById(Long merchantId);
 }

+ 7 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/MerchantServiceImpl.java

@@ -107,6 +107,9 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
         List<Long> idSet = goods.stream()
                 .map(GoodsDTO::getCategoryId) // 将每个Person对象映射到其id
                 .collect(Collectors.toList());
+        if (idSet.isEmpty()){
+            return MerchantDetailDTO.builder().merchant(merchant).goods(goods).build();
+        }
         List<CategoryDTO> categories = this.categoryService.listCategories(idSet);
         return MerchantDetailDTO.builder().merchant(merchant).goods(goods).categories(categories).build();
     }
@@ -196,4 +199,8 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
                 .list();
         return MerchantCopier.INSTANCE.copying(merchants);
     }
+    @Override
+    public MerchantDTO getMerchantById(Long merchantId){
+        return MerchantCopier.INSTANCE.copying(this.getById(merchantId));
+    }
 }

+ 27 - 4
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsCartItemServiceImpl.java

@@ -19,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * 购物车Service业务层处理
@@ -43,10 +42,10 @@ public class OmsCartItemServiceImpl extends ServiceImpl<OmsCartItemMapper, OmsCa
         omsCartItem.setDeleteStatus(0);
         OmsCartItem existCartItem = getCartItem(omsCartItem);
         if (existCartItem == null) {
-            cartItem.setCreateDate(new Date());
+            omsCartItem.setCreateTime(new Date());
             count = this.baseMapper.insert(omsCartItem);
         } else {
-            cartItem.setModifyDate(new Date());
+            existCartItem.setUpdateTime(new Date());
             existCartItem.setQuantity(existCartItem.getQuantity() + cartItem.getQuantity());
             count = this.baseMapper.updateById(existCartItem);
         }
@@ -59,7 +58,9 @@ public class OmsCartItemServiceImpl extends ServiceImpl<OmsCartItemMapper, OmsCa
     private OmsCartItem getCartItem(OmsCartItem cartItem) {
         List<OmsCartItem> cartItemList = this.lambdaQuery()
                 .eq(OmsCartItem::getUserId, cartItem.getUserId())
-                .eq(OmsCartItem::getGoodsId, cartItem.getGoodsId()).list();
+                .eq(OmsCartItem::getGoodsId, cartItem.getGoodsId())
+                .eq(OmsCartItem::getDeleteStatus,0)
+                .eq(OmsCartItem::getMerchantId, cartItem.getMerchantId()).list();
         if (!CollectionUtils.isEmpty(cartItemList)) {
             return cartItemList.get(0);
         }
@@ -83,6 +84,7 @@ public class OmsCartItemServiceImpl extends ServiceImpl<OmsCartItemMapper, OmsCa
         omsCartItem.setUserId(userId);
         List<OmsCartItem> cartItemList = this.lambdaQuery()
                 .eq(OmsCartItem::getUserId, userId)
+                .eq(OmsCartItem::getDeleteStatus,0)
                 .in(OmsCartItem::getGoodsId,cartIds).list();
         List<OmsCartItemDTO> omsCartItemList = CartItemCopier.INSTANCE.copying(cartItemList);
         return omsCartItemList;
@@ -189,4 +191,25 @@ public class OmsCartItemServiceImpl extends ServiceImpl<OmsCartItemMapper, OmsCa
         merchantCartItemDTO.setMerchantDTO(MerchantCopier.INSTANCE.copying(merchant));
         return merchantCartItemDTO;
     }
+
+
+//    @Override
+//    public List<MerchantCartItemDTO> listCartItemByUserId() {
+//        Long userId = SessionContextHolder.getId();
+//        OmsCartItem omsCartItem = new OmsCartItem();
+//        omsCartItem.setUserId(userId);
+//        List<OmsCartItem> cartItemList = this.lambdaQuery()
+//                .eq(OmsCartItem::getUserId, userId)
+//                .eq(OmsCartItem::getDeleteStatus,"0")
+//                .orderByDesc(OmsCartItem::getCreateTime).list();
+//        List<OmsCartItemDTO> omsCartItemList = CartItemCopier.INSTANCE.copying(cartItemList);
+//        if (!omsCartItemList.isEmpty() && omsCartItemList.size() > 0){
+//            Merchant merchant = this.merchantService.getById(merchantId);
+//            MerchantCartItemDTO merchantCartItemDTO = new MerchantCartItemDTO();
+//            merchantCartItemDTO.setCartItems(omsCartItemList);
+//            merchantCartItemDTO.setMerchantDTO(MerchantCopier.INSTANCE.copying(merchant));
+//        }
+//
+//        return merchantCartItemDTO;
+//    }
 }

+ 6 - 2
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderItemServiceImpl.java

@@ -3,6 +3,7 @@ package com.chelvc.cloud.vehicle.server.service.impl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chelvc.cloud.vehicle.api.dto.OmsOrderItemDTO;
 import com.chelvc.cloud.vehicle.api.dto.OmsOrderItemExampleDTO;
+import com.chelvc.cloud.vehicle.server.copier.OrderItemCopier;
 import com.chelvc.cloud.vehicle.server.dao.OmsOrderItemMapper;
 import com.chelvc.cloud.vehicle.server.entity.OmsOrderItem;
 import com.chelvc.cloud.vehicle.server.service.IOmsOrderItemService;
@@ -34,6 +35,9 @@ public class OmsOrderItemServiceImpl extends ServiceImpl<OmsOrderItemMapper, Oms
     public List<OmsOrderItem> selectByExample(OmsOrderItem omsOrderItem){
         return this.lambdaQuery().eq(OmsOrderItem::getGoodsId,omsOrderItem.getGoodsId()).list();
     }
-
-
+    @Override
+    public List<OmsOrderItemDTO> getOrderItemByOrderId(Long orderId){
+        List<OmsOrderItem> omsOrderItem = this.lambdaQuery().eq(OmsOrderItem::getOrderId,orderId).list();
+        return OrderItemCopier.INSTANCE.copying(omsOrderItem);
+    }
 }

+ 12 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderServiceImpl.java

@@ -13,6 +13,18 @@ import com.chelvc.cloud.vehicle.server.dao.OmsOrderMapper;
 import com.chelvc.cloud.vehicle.server.dao.OmsOrderSettingMapper;
 import com.chelvc.cloud.vehicle.server.entity.*;
 import com.chelvc.cloud.vehicle.server.service.*;
+import com.chelvc.cloud.vehicle.server.entity.Merchant;
+import com.chelvc.cloud.vehicle.server.entity.OmsOrder;
+import com.chelvc.cloud.vehicle.server.entity.OmsOrderItem;
+import com.chelvc.cloud.vehicle.server.entity.OmsOrderSetting;
+import com.chelvc.cloud.vehicle.server.entity.UserCoupon;
+import com.chelvc.cloud.vehicle.server.service.GoodsService;
+import com.chelvc.cloud.vehicle.server.service.IOmsOrderItemService;
+import com.chelvc.cloud.vehicle.server.service.IOmsOrderService;
+import com.chelvc.cloud.vehicle.server.service.MerchantService;
+import com.chelvc.cloud.vehicle.server.service.OmsCartItemService;
+import com.chelvc.cloud.vehicle.server.service.OmsOrderSettingService;
+import com.chelvc.cloud.vehicle.server.service.UserCouponService;
 import com.chelvc.framework.base.context.SessionContextHolder;
 import com.chelvc.framework.common.model.Pagination;
 import com.chelvc.framework.common.util.StringUtils;