diff --git a/xdclass-order-service/src/main/java/net/jieyuu/mapper/ProductOrderItemMapper.java b/xdclass-order-service/src/main/java/net/jieyuu/mapper/ProductOrderItemMapper.java index 98a1f6f..ee5fa73 100644 --- a/xdclass-order-service/src/main/java/net/jieyuu/mapper/ProductOrderItemMapper.java +++ b/xdclass-order-service/src/main/java/net/jieyuu/mapper/ProductOrderItemMapper.java @@ -2,10 +2,13 @@ package net.jieyuu.mapper; import net.jieyuu.model.ProductOrderItemDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author jieyuu @@ -13,4 +16,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface ProductOrderItemMapper extends BaseMapper { + /** + * 批量插入 + * + * @param orderItemList + */ + void insertBatch(@Param("orderItemList") List orderItemList); } diff --git a/xdclass-order-service/src/main/java/net/jieyuu/model/ProductOrderDO.java b/xdclass-order-service/src/main/java/net/jieyuu/model/ProductOrderDO.java index c679d57..2515709 100644 --- a/xdclass-order-service/src/main/java/net/jieyuu/model/ProductOrderDO.java +++ b/xdclass-order-service/src/main/java/net/jieyuu/model/ProductOrderDO.java @@ -70,7 +70,7 @@ public class ProductOrderDO implements Serializable { /** * 用户id */ - private Integer userId; + private Long userId; /** * 0表示未删除,1表示已经删除 diff --git a/xdclass-order-service/src/main/java/net/jieyuu/service/impl/ProductOrderServiceImpl.java b/xdclass-order-service/src/main/java/net/jieyuu/service/impl/ProductOrderServiceImpl.java index 5e848d6..88b07bb 100644 --- a/xdclass-order-service/src/main/java/net/jieyuu/service/impl/ProductOrderServiceImpl.java +++ b/xdclass-order-service/src/main/java/net/jieyuu/service/impl/ProductOrderServiceImpl.java @@ -1,19 +1,21 @@ package net.jieyuu.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; -import net.jieyuu.enums.BizCodeEnum; -import net.jieyuu.enums.CouponStateEnum; +import net.jieyuu.enums.*; import net.jieyuu.exception.BizException; import net.jieyuu.feign.CouponFeignService; import net.jieyuu.feign.ProductFeignService; import net.jieyuu.feign.UserFeignService; import net.jieyuu.interceptor.LoginInterceptor; +import net.jieyuu.mapper.ProductOrderItemMapper; import net.jieyuu.model.LoginUser; import net.jieyuu.model.OrderItemVO; import net.jieyuu.model.ProductOrderDO; import net.jieyuu.mapper.ProductOrderMapper; +import net.jieyuu.model.ProductOrderItemDO; import net.jieyuu.request.ConfirmOrderRequest; import net.jieyuu.request.LockCouponRecordRequest; import net.jieyuu.request.LockProductRequest; @@ -29,6 +31,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -56,6 +59,9 @@ public class ProductOrderServiceImpl extends ServiceImpl orderItemList) { + + List orderItemDOList = orderItemList.stream().map(obj -> { + ProductOrderItemDO itemDO = new ProductOrderItemDO(); + itemDO.setBuyNum(obj.getBuyNum()); + + itemDO.setProductId(obj.getProductId()); + itemDO.setProductName(obj.getProductTitle()); + itemDO.setProductImg(obj.getProductImg()); + + itemDO.setOutTradeNo(orderOutTradeNo); + itemDO.setCreateTime(new Date()); + // 单价 + itemDO.setAmount(obj.getAmount()); + // 总价 + itemDO.setTotalAmount(obj.getTotalAmount()); + itemDO.setProductOrderId(orderId); + + return itemDO; + }).collect(Collectors.toList()); + + + productOrderItemMapper.insertBatch(orderItemDOList); + + + } + + /** + * 创建订单 + * + * @param orderRequest + * @param loginUser + * @param orderOutTradeNo + * @param addressVO + * @return + */ + private ProductOrderDO saveProductOrder(ConfirmOrderRequest orderRequest, LoginUser loginUser, String orderOutTradeNo, ProductOrderAddressVO addressVO) { + ProductOrderDO productOrderDO = new ProductOrderDO(); + productOrderDO.setUserId(loginUser.getId()); + productOrderDO.setHeadImg(loginUser.getHeadImg()); + productOrderDO.setNickname(loginUser.getName()); + + + productOrderDO.setOutTradeNo(orderOutTradeNo); + productOrderDO.setDel(0); + productOrderDO.setOrderType(ProductOrderTypeEnum.DAILY.name()); + + //实际支付的价格 + productOrderDO.setPayAmount(orderRequest.getRealPayAmount()); + productOrderDO.setTotalAmount(orderRequest.getTotalAmount()); + productOrderDO.setState(ProductOrderStateEnum.NEW.name()); + // + productOrderDO.setPayType(ProductOrderPayTypeEnum.valueOf(orderRequest.getPayType()).name()); + + // 收货地址 + productOrderDO.setReceiverAddress(JSON.toJSONString(addressVO)); + + // 插入数据库 + productOrderMapper.insert(productOrderDO); + + return productOrderDO; + + } + /** * 锁定商品库存 * diff --git a/xdclass-order-service/src/main/resources/mapper/ProductOrderItemMapper.xml b/xdclass-order-service/src/main/resources/mapper/ProductOrderItemMapper.xml index fa511ee..7eef4cf 100644 --- a/xdclass-order-service/src/main/resources/mapper/ProductOrderItemMapper.xml +++ b/xdclass-order-service/src/main/resources/mapper/ProductOrderItemMapper.xml @@ -21,4 +21,28 @@ id, product_order_id, out_trade_no, product_id, product_name, product_img, buy_num, create_time, total_amount, amount + + + id, product_order_id, out_trade_no, product_id, product_name, product_img, buy_num, create_time, total_amount, amount + + + + insert into product_order_item + () + values + + ( + #{item.productOrderId} + #{item.outTradeNo} + #{item.productId} + #{item.productName} + #{item.productImg} + #{item.buyNum} + #{item.createTime} + #{item.totalAmount} + #{item.amount} + ) + + +