清理部分 cart 冗余代码~

This commit is contained in:
YunaiV 2020-08-15 19:31:53 +08:00
parent 9fb421360f
commit 4bfb7c2e04
7 changed files with 1 additions and 571 deletions

View File

@ -1,33 +0,0 @@
package cn.iocoder.mall.order.rest.response;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.experimental.Accessors;
@ApiModel("计算商品 SKU 价格结果 VO")
@Data
@Accessors(chain = true)
public class UsersCalcSkuPriceResponse {
/**
* 满减送促销活动
*
* TODO 芋艿后续改成 VO
*/
// private PromotionActivityBO fullPrivilege;
/**
* 电视和折扣促销活动
*
* TODO 芋艿后续改成 VO
*/
// private PromotionActivityBO timeLimitedDiscount;
/**
* 原价格单位
*/
private Integer originalPrice;
/**
* 最终价格单位
*/
private Integer buyPrice;
}

View File

@ -1,209 +0,0 @@
package cn.iocoder.mall.order.rest.response;
import io.swagger.annotations.ApiModel;
import java.util.List;
import lombok.Data;
import lombok.experimental.Accessors;
@ApiModel(value = "购物车明细 VO")
@Data
@Accessors(chain = true)
public class UsersCartDetailResponse {
/**
* 商品分组数组
*/
private List<ItemGroup> itemGroups;
/**
* 费用
*/
private Fee fee;
/**
* 商品分组
*
* 多个商品参加同一个活动从而形成分组
*/
@Data
@Accessors(chain = true)
public static class ItemGroup {
/**
* 优惠活动
*/
// private PromotionActivityBO activity; // TODO 芋艿偷懒
/**
* 促销减少的金额
*
* 1. 若未参与促销活动或不满足促销条件返回 null
* 2. 该金额已经分摊到每个 Item discountTotal 需要注意
*/
private Integer activityDiscountTotal;
/**
* 商品数组
*/
private List<Sku> items;
}
@Data
@Accessors(chain = true)
public static class Sku {
// SKU 自带信息
/**
* sku 编号
*/
private Integer id;
/**
* SPU 信息
*/
private Spu spu;
/**
* 图片地址
*/
private String picURL;
/**
* 规格值数组
*/
// private List<ProductAttrAndValuePairBO> attrs; // TODO 后面改下
/**
* 价格单位
*/
private Integer price;
/**
* 库存数量
*/
private Integer quantity;
// SKU 自带信息
/**
* 购买数量
*/
private Integer buyQuantity;
/**
* 是否选中
*/
private Boolean selected;
/**
* 优惠活动
*/
// private PromotionActivityBO activity;
/**
* 原始单价单位
*/
private Integer originPrice;
/**
* 购买单价单位
*/
private Integer buyPrice;
/**
* 最终价格单位
*/
private Integer presentPrice;
/**
* 购买总金额单位
*
* 用途类似 {@link #presentTotal}
*/
private Integer buyTotal;
/**
* 优惠总金额单位
*/
private Integer discountTotal;
/**
* 最终总金额单位
*
* 注意presentPrice * quantity 不一定等于 presentTotal
* 因为存在无法整除的情况
* 举个例子presentPrice = 8.33 quantity = 3 的情况presentTotal 有可能是 24.99 也可能是 25
* 所以需要存储一个该字段
*/
private Integer presentTotal;
}
@Data
@Accessors(chain = true)
public static class Spu {
/**
* SPU 编号
*/
private Integer id;
// ========== 基本信息 =========
/**
* SPU 名字
*/
private String name;
/**
* 分类编号
*/
private Integer cid;
/**
* 商品主图地址
*
* 数组以逗号分隔
*
* 建议尺寸800*800像素你可以拖拽图片调整顺序最多上传15张
*/
private List<String> picUrls;
}
/**
* 费用合计
*/
@Data
@Accessors(chain = true)
public static class Fee {
/**
* 购买总价
*/
private Integer buyTotal;
/**
* 优惠总价
*
* 注意满多少元包邮不算在优惠中
*/
private Integer discountTotal;
/**
* 邮费
*/
private Integer postageTotal;
/**
* 最终价格
*
* 计算公式 = 总价 - 优惠总价 + 邮费
*/
private Integer presentTotal;
public Fee() {
}
public Fee(Integer buyTotal, Integer discountTotal, Integer postageTotal, Integer presentTotal) {
this.buyTotal = buyTotal;
this.discountTotal = discountTotal;
this.postageTotal = postageTotal;
this.presentTotal = presentTotal;
}
}
/**
* 邮费信息 TODO 芋艿未完成
*/
@Data
@Accessors(chain = true)
public static class Postage {
/**
* 需要满足多少钱可以包邮单位
*/
private Integer threshold;
}
}

View File

@ -1,93 +1,9 @@
package cn.iocoder.mall.order.api;
import cn.iocoder.mall.order.api.bo.CalcOrderPriceBO;
import cn.iocoder.mall.order.api.bo.CalcSkuPriceBO;
import cn.iocoder.mall.order.api.bo.CartItemBO;
import cn.iocoder.mall.order.api.dto.CalcOrderPriceDTO;
import org.springframework.lang.Nullable;
import java.util.Collection;
import java.util.List;
public interface CartService {
// ========== 购物车 Item 的逻辑 ==========
/**
* 添加商品至购物车
*
* @param userId 用户编号
* @param skuId 商品 SKU 编号
* @param quantity 数量
* @return 是否成功
*/
Boolean add(Integer userId, Integer skuId, Integer quantity);
/**
* 购物车更新商品数量
*
* @param userId 用户编号
* @param skuId 商品 SKU 编号
* @param quantity 数量
* @return 是否成功
*/
Boolean updateQuantity(Integer userId, Integer skuId, Integer quantity);
/**
* 购物车更新商品是否选中
*
* @param userId 用户编号
* @param skuIds 商品 SKU 编号数组
* @param selected 是否选中
* @return 是否成功
*/
Boolean updateSelected(Integer userId, Collection<Integer> skuIds, Boolean selected);
/**
* 购物车删除商品
*
* @param userId 用户编号
* @param skuIds 商品 SKU 编号的数组
*
* @return 是否成功
*/
Boolean deleteList(Integer userId, List<Integer> skuIds);
/**
* 清空购物车
*
* @param userId 用户编号
* @return 是否成功
*/
Boolean deleteAll(Integer userId);
/**
* 查询用户在购物车中的商品数量
*
* @param userId 用户编号
* @return 商品数量
*/
Integer count(Integer userId);
/**
* 显示买家购物车中的商品列表并根据 selected 进行过滤
*
* @param userId 用户编号
* @param selected 是否选中若为空则不进行筛选
* @return 购物车中商品列表信息
*/
List<CartItemBO> list(Integer userId, @Nullable Boolean selected);
// ========== 购物车与订单相关的逻辑 ==========
/**
* 计算订单金额返回计算结果
*
* @param calcOrderPriceDTO 计算订单金额 DTO
* @return 计算订单金额结果
*/
CalcOrderPriceBO calcOrderPrice(CalcOrderPriceDTO calcOrderPriceDTO);
/**
* 计算指定商品 SKU 的金额并返回计算结果
*

View File

@ -1,181 +0,0 @@
package cn.iocoder.mall.order.api.bo;
import cn.iocoder.mall.product.api.bo.ProductSkuDetailBO;
import cn.iocoder.mall.promotion.api.bo.PromotionActivityBO;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 计算订单价格结果 BO
*/
@Data
@Accessors(chain = true)
@Deprecated
public class CalcOrderPriceBO {
/**
* 商品分组数组
*/
private List<ItemGroup> itemGroups;
/**
* 优惠劵编号
*/
private Integer couponCardId;
/**
* 优惠劵减少的金额
*
* 1. 若未使用优惠劵返回 null
* 2. 该金额已经分摊到每个 Item discountTotal 需要注意
*/
private Integer couponCardDiscountTotal;
/**
* 邮费信息
*
* TODO 芋艿暂时未弄
*/
private Postage postage;
/**
* 费用
*/
private Fee fee;
/**
* 商品分组
*
* 多个商品参加同一个活动从而形成分组
*/
@Data
@Accessors(chain = true)
public static class ItemGroup {
/**
* 优惠活动
*/
// TODO 芋艿目前只会有满减送的情况未来有新的促销方式可能需要改成数组
private PromotionActivityBO activity;
/**
* 促销减少的金额
*
* 1. 若未参与促销活动或不满足促销条件返回 null
* 2. 该金额已经分摊到每个 Item discountTotal 需要注意
*/
private Integer activityDiscountTotal;
/**
* 商品数组
*/
private List<Item> items;
// /**
// * 费用
// *
// * TODO 芋艿这里先偷懒postageTotal 字段用不到
// */
// private Fee fee; // 注释原因不用这里了
}
@Data
@Accessors(chain = true)
public static class Item extends ProductSkuDetailBO { // TODO 芋艿此处先偷懒继承
/**
* 是否选中
*/
private Boolean selected;
/**
* 购买数量
*/
private Integer buyQuantity;
/**
* 优惠活动
*/
private PromotionActivityBO activity;
/**
* 原始单价单位
*/
private Integer originPrice;
/**
* 购买单价单位
*/
private Integer buyPrice;
/**
* 最终价格单位
*/
private Integer presentPrice;
/**
* 购买总金额单位
*
* 用途类似 {@link #presentTotal}
*/
private Integer buyTotal;
/**
* 优惠总金额单位
*/
private Integer discountTotal;
/**
* 最终总金额单位
*
* 注意presentPrice * quantity 不一定等于 presentTotal
* 因为存在无法整除的情况
* 举个例子presentPrice = 8.33 quantity = 3 的情况presentTotal 有可能是 24.99 也可能是 25
* 所以需要存储一个该字段
*/
private Integer presentTotal;
}
/**
* 费用合计
*/
@Data
@Accessors(chain = true)
public static class Fee {
/**
* 购买总价
*/
private Integer buyTotal;
/**
* 优惠总价
*
* 注意满多少元包邮不算在优惠中
*/
private Integer discountTotal;
/**
* 邮费 TODO 芋艿 postage 改成 logistics
*/
private Integer postageTotal;
/**
* 最终价格
*
* 计算公式 = 总价 - 优惠总价 + 邮费
*/
private Integer presentTotal;
public Fee() {
}
public Fee(Integer buyTotal, Integer discountTotal, Integer postageTotal, Integer presentTotal) {
this.buyTotal = buyTotal;
this.discountTotal = discountTotal;
this.postageTotal = postageTotal;
this.presentTotal = presentTotal;
}
}
/**
* 邮费信息
*/
@Data
@Accessors(chain = true)
public static class Postage {
/**
* 需要满足多少钱可以包邮单位
*/
private Integer threshold;
}
}

View File

@ -1,46 +0,0 @@
package cn.iocoder.mall.order.api.constant;
import java.util.Arrays;
public enum CartItemStatusEnum {
ENABLE(1, "正常"),
DELETE_BY_MANUAL(2, "主动删除"),
DELETE_BY_ORDER(3, "下单删除"),
;
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(CartItemStatusEnum::getValue).toArray();
/**
* 状态值
*/
private Integer value;
/**
* 状态名
*/
private String name;
CartItemStatusEnum(Integer value, String name) {
this.value = value;
this.name = name;
}
public Integer getValue() {
return value;
}
public CartItemStatusEnum setValue(Integer value) {
this.value = value;
return this;
}
public String getName() {
return name;
}
public CartItemStatusEnum setName(String name) {
this.name = name;
return this;
}
}

View File

@ -1,17 +0,0 @@
package cn.iocoder.mall.order.api.constant;
import cn.iocoder.common.framework.enums.ModuleErrorCodeInterval;
/**
* 错误码区间
*
* 当前模块化区间[1-008-000-000 ~ 1-008-000-000]
*
* @author Sin
* @time 2019-03-23 11:35
*/
public class ErrorCodeInterval extends ModuleErrorCodeInterval {
// OrderErrorCodeEnum 错误码区间 [1-008-000-000 ~ 1-008-000-000]
}

View File

@ -14,7 +14,7 @@
<artifactId>onemall</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>order</module>
<!-- <module>order</module>-->
<module>common</module>
<!-- <module>ops</module>-->
<!-- <module>pay</module>-->