优惠劵相关逻辑的迁移
This commit is contained in:
@@ -1,72 +0,0 @@
|
||||
package cn.iocoder.mall.order.rest.controller.cart;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("users/cart")
|
||||
public class UsersCartController {
|
||||
|
||||
// @Reference(validation = "true", version = "${dubbo.provider.CartService.version}")
|
||||
// private CartService cartService;
|
||||
//
|
||||
// @Reference(validation = "true", version = "${dubbo.provider.OrderService.version}")
|
||||
// private OrderService orderService;
|
||||
//
|
||||
// @Reference(validation = "true", version = "${dubbo.consumer.CouponService.version}")
|
||||
// private CouponService couponService;
|
||||
//
|
||||
|
||||
|
||||
|
||||
//
|
||||
// @GetMapping("/confirm_create_order")
|
||||
// public CommonResult<UsersOrderConfirmCreateVO> getConfirmCreateOrder(@RequestParam(value = "couponCardId", required = false) Integer couponCardId) {
|
||||
// Integer userId = UserSecurityContextHolder.getContext().getUserId();
|
||||
// // 获得购物车中选中的
|
||||
// List<CartItemBO> cartItems = cartService.list(userId, true);
|
||||
// // 购物车为空时,构造空的 UsersOrderConfirmCreateVO 返回
|
||||
// if (cartItems.isEmpty()) {
|
||||
// UsersOrderConfirmCreateVO result = new UsersOrderConfirmCreateVO();
|
||||
// result.setItemGroups(Collections.emptyList());
|
||||
// result.setFee(new UsersOrderConfirmCreateVO.Fee(0, 0, 0, 0));
|
||||
// return success(result);
|
||||
// }
|
||||
// // 计算商品价格
|
||||
// CalcOrderPriceBO calcOrderPrice = list0(cartItems, couponCardId);
|
||||
// // 获得优惠劵
|
||||
// List<CouponCardAvailableBO> couponCards = couponService.getCouponCardList(userId,
|
||||
// CartConvert.INSTANCE.convertList(calcOrderPrice.getItemGroups()));
|
||||
// // 执行数据拼装
|
||||
// return success(CartConvert.INSTANCE.convert(calcOrderPrice).setCouponCards(couponCards));
|
||||
// }
|
||||
//
|
||||
// private CalcOrderPriceBO list0(List<CartItemBO> cartItems, Integer couponCardId) {
|
||||
// // 创建计算的 DTO
|
||||
// CalcOrderPriceDTO calcOrderPriceDTO = new CalcOrderPriceDTO()
|
||||
// .setUserId(UserSecurityContextHolder.getContext().getUserId())
|
||||
// .setItems(new ArrayList<>(cartItems.size()))
|
||||
// .setCouponCardId(couponCardId);
|
||||
// for (CartItemBO item : cartItems) {
|
||||
// calcOrderPriceDTO.getItems().add(new CalcOrderPriceDTO.Item(item.getSkuId(), item.getQuantity(), item.getSelected()));
|
||||
// }
|
||||
// // 执行计算
|
||||
// return cartService.calcOrderPrice(calcOrderPriceDTO);
|
||||
// }
|
||||
//
|
||||
// @GetMapping("/calc_sku_price")
|
||||
// public CommonResult<UsersCalcSkuPriceVO> calcSkuPrice(@RequestParam("skuId") Integer skuId) {
|
||||
// // 计算 sku 的价格
|
||||
// CalcSkuPriceBO calcSkuPrice = cartService.calcSkuPrice(skuId);
|
||||
// return success(CartConvert.INSTANCE.convert2(calcSkuPrice));
|
||||
// }
|
||||
//
|
||||
// public CommonResult<Object> confirmOrder() {
|
||||
// // 查询购物车列表(选中的)
|
||||
//// cartService.list(userId, true);
|
||||
// // 查询确认订单信息的明细
|
||||
//
|
||||
// return null;
|
||||
// }
|
||||
|
||||
}
|
||||
@@ -76,25 +76,7 @@ public class UsersOrderController {
|
||||
// return createResult;
|
||||
// }
|
||||
//
|
||||
// @GetMapping("confirm_create_order")
|
||||
// @RequiresLogin
|
||||
// @ApiOperation("确认创建订单")
|
||||
// public CommonResult<UsersOrderConfirmCreateVO> getConfirmCreateOrder(@RequestParam("skuId") Integer skuId,
|
||||
// @RequestParam("quantity") Integer quantity,
|
||||
// @RequestParam(value = "couponCardId", required = false) Integer couponCardId) {
|
||||
// Integer userId = UserSecurityContextHolder.getContext().getUserId();
|
||||
// // 创建 CalcOrderPriceDTO 对象,并执行价格计算
|
||||
// CalcOrderPriceDTO calcOrderPriceDTO = new CalcOrderPriceDTO()
|
||||
// .setUserId(userId)
|
||||
// .setItems(Collections.singletonList(new CalcOrderPriceDTO.Item(skuId, quantity, true)))
|
||||
// .setCouponCardId(couponCardId);
|
||||
// CalcOrderPriceBO calcOrderPrice = cartService.calcOrderPrice(calcOrderPriceDTO);
|
||||
// // 获得优惠劵
|
||||
// List<CouponCardAvailableBO> couponCards = couponService.getCouponCardList(userId,
|
||||
// CartConvert.INSTANCE.convertList(calcOrderPrice.getItemGroups()));
|
||||
// // 执行数据拼装
|
||||
// return success(CartConvert.INSTANCE.convert(calcOrderPrice).setCouponCards(couponCards));
|
||||
// }
|
||||
|
||||
//
|
||||
// @PostMapping("confirm_receiving")
|
||||
// @RequiresLogin
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
package cn.iocoder.mall.order.rest.convert;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
@Mapper
|
||||
public interface CartConvert {
|
||||
|
||||
CartConvert INSTANCE = Mappers.getMapper(CartConvert.class);
|
||||
|
||||
// UsersOrderConfirmCreateVO convert(CalcOrderPriceBO calcOrderPriceBO);
|
||||
//
|
||||
// UsersCartDetailVO convert2(CalcOrderPriceBO calcOrderPriceBO);
|
||||
//
|
||||
// UsersCalcSkuPriceVO convert2(CalcSkuPriceBO calcSkuPriceBO);
|
||||
//
|
||||
// default List<CouponCardSpuDTO> convertList(List<CalcOrderPriceBO.ItemGroup> itemGroups) {
|
||||
// List<CouponCardSpuDTO> items = new ArrayList<>();
|
||||
// itemGroups.forEach(itemGroup -> items.addAll(itemGroup.getItems().stream().map(
|
||||
// item -> new CouponCardSpuDTO()
|
||||
// .setSpuId(item.getSpu().getId())
|
||||
// .setSkuId(item.getId())
|
||||
// .setCategoryId(item.getSpu().getCid())
|
||||
// .setPrice(item.getBuyPrice())
|
||||
// .setQuantity(item.getBuyQuantity()))
|
||||
// .collect(Collectors.toList())));
|
||||
// return items;
|
||||
// }
|
||||
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
package cn.iocoder.mall.order.rest.convert;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/**
|
||||
* application 订单 convert
|
||||
*
|
||||
* TODO 这种方式 文件名不能一样哈!
|
||||
*
|
||||
* @author Sin
|
||||
* @time 2019-03-24 10:45
|
||||
*/
|
||||
@Mapper
|
||||
public interface OrderConvertAPP {
|
||||
|
||||
OrderConvertAPP INSTANCE = Mappers.getMapper(OrderConvertAPP.class);
|
||||
|
||||
// @Mappings({})
|
||||
// OrderQueryDTO convert(OrderPageQueryPO orderPageQueryVO);
|
||||
//
|
||||
// @Mappings({})
|
||||
// OrderLogisticsUpdateDTO convert(OrderLogisticsPO orderLogisticsVO);
|
||||
//
|
||||
// @Mappings({})
|
||||
// OrderItemUpdateDTO convert(OrderItemUpdatePO orderItemUpdateVO);
|
||||
//
|
||||
// @Mappings({})
|
||||
// OrderCreateDTO convert(OrderCreatePO orderCreatePO);
|
||||
//
|
||||
// @Mappings({})
|
||||
// List<OrderCreateDTO.OrderItem> convert(List<CartItemBO> cartItems);
|
||||
//
|
||||
// default OrderCreateDTO createOrderCreateDTO(Integer userId, Integer userAddressId,
|
||||
// String remark, String ip,
|
||||
// List<CartItemBO> cartItems, Integer couponCardId) {
|
||||
// return new OrderCreateDTO()
|
||||
// .setUserId(userId)
|
||||
// .setUserAddressId(userAddressId)
|
||||
// .setRemark(remark)
|
||||
// .setIp(ip)
|
||||
// .setOrderItems(this.convert(cartItems))
|
||||
// .setCouponCardId(couponCardId);
|
||||
// }
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package cn.iocoder.mall.order.rest.convert;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/**
|
||||
* @author Sin
|
||||
* @time 2019-04-05 17:00
|
||||
*/
|
||||
@Mapper
|
||||
public interface OrderDeliveryConvert {
|
||||
|
||||
OrderDeliveryConvert INSTANCE = Mappers.getMapper(OrderDeliveryConvert.class);
|
||||
|
||||
// @Mappings({})
|
||||
// OrderDeliveryDTO convert(OrderDeliverPO orderDeliverPO);
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
package cn.iocoder.mall.order.rest.convert;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/**
|
||||
* 订单退货
|
||||
*
|
||||
* @author Sin
|
||||
* @time 2019-04-25 21:54
|
||||
*/
|
||||
@Mapper
|
||||
public interface OrderReturnConvert {
|
||||
|
||||
OrderReturnConvert INSTANCE = Mappers.getMapper(OrderReturnConvert.class);
|
||||
|
||||
// @Mappings({})
|
||||
// OrderReturnApplyDTO convert(OrderReturnApplyPO orderReturnApplyPO);
|
||||
//
|
||||
// @Mappings({})
|
||||
// OrderReturnQueryDTO convert(OrderReturnQueryPO orderReturnQueryPO);
|
||||
}
|
||||
@@ -1,201 +0,0 @@
|
||||
package cn.iocoder.mall.order.rest.response;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class UsersOrderConfirmCreateResponse {
|
||||
|
||||
/**
|
||||
* 商品分组数组
|
||||
*/
|
||||
private List<ItemGroup> itemGroups;
|
||||
/**
|
||||
* 费用
|
||||
*/
|
||||
private Fee fee;
|
||||
/**
|
||||
* 优惠劵列表 TODO 芋艿,后续改改
|
||||
*/
|
||||
// private List<CouponCardAvailableBO> couponCards;
|
||||
/**
|
||||
* 优惠劵优惠金额
|
||||
*/
|
||||
private Integer couponCardDiscountTotal;
|
||||
/**
|
||||
* 商品分组
|
||||
*
|
||||
* 多个商品,参加同一个活动,从而形成分组。
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class ItemGroup {
|
||||
|
||||
/**
|
||||
* 优惠活动
|
||||
*/
|
||||
// TODO 芋艿,目前只会有【满减送】的情况,未来有新的促销方式,可能需要改成数组
|
||||
// TODO 芋艿,后面改成 VO
|
||||
// private PromotionActivityBO activity;
|
||||
/**
|
||||
* 商品数组
|
||||
*/
|
||||
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 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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 邮费信息
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class Postage {
|
||||
|
||||
/**
|
||||
* 需要满足多少钱,可以包邮。单位:分
|
||||
*/
|
||||
private Integer threshold;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
# 服务器的配置项
|
||||
server:
|
||||
port: 18088
|
||||
servlet:
|
||||
context-path: /order-api/
|
||||
|
||||
# Swagger 配置项
|
||||
swagger:
|
||||
title: 订单子系统
|
||||
description: 订单子系统
|
||||
version: 1.0.0
|
||||
base-package: cn.iocoder.mall.order.rest.controller
|
||||
Reference in New Issue
Block a user