商城电商day13一、订单业务简介

订单业务在整个电商平台中处于核心位置,也是比较复杂的一块业务。是把“物”变为“钱”的一个中转站。整个订单模块一共分四部分组成:结算下单对接支付服务对接库存管理系统入口:购物车点击计算按钮 ,结算必须要登录!分析页面需要的数据:1、 需要用户地址信息2、 购物车中选择的商品列表3、 用户地址信息在service-user模块,购物车信息在service-cart模块,所以我们要在相应模块提供api接口,通过feign client调用获取数据2.1在 service-user模块获
摘要由CSDN通过智能技术生成

在这里插入图片描述

订单业务在整个电商平台中处于核心位置,也是比较复杂的一块业务。是把“物”变为“钱”的一个中转站。
整个订单模块一共分四部分组成:

  1. 结算
  2. 下单
  3. 对接支付服务
  4. 对接库存管理系统

入口:购物车点击计算按钮 ,结算必须要登录!
在这里插入图片描述
分析页面需要的数据:
1、 需要用户地址信息
2、 购物车中选择的商品列表
3、 用户地址信息在service-user模块,购物车信息在service-cart模块,所以我们要在相应模块提供api接口,通过feign client调用获取数据

2.1在 service-user模块获取地址列表

常规

2.2 在service-cart模块获取选中商品数据

分析用到那几张表
cart_info(购物车表) user_id sku_id
SQL语句

控制层

业务层Dao层
List getCartCheckedList(String userId);

难点

1 定义key user:userId:cart 获取redis中的所有商品
2 // 获取选中的商品!遍历所有条件判断加入集合
if (cartInfo.getIsChecked().intValue() == 1) {
cartInfoList.add(cartInfo);
}
3 //返回集合

@Override
public List<CartInfo> getCartCheckedList(String userId) {
   
    List<CartInfo> cartInfoList = new ArrayList<>();

    // 定义key user:userId:cart
    String cartKey = this.getCartKey(userId);
    List<CartInfo> cartCachInfoList = redisTemplate.opsForHash().values(cartKey);
    if (null != cartCachInfoList && cartCachInfoList.size() > 0) {
   
        for (CartInfo cartInfo : cartCachInfoList) {
   
            // 获取选中的商品!
            if (cartInfo.getIsChecked().intValue() == 1) {
   
                cartInfoList.add(cartInfo);
            }
        }
    }
    return cartInfoList;
}

2.3 搭建service-order模块

2.3.4 订单的数据结构

orderInfo :订单表
orderDetail :订单明细

2.3.5 接口封装OrderApiController

确认订单
	1 // 获取到用户Id
	2 //远程调用 获取用户地址
	3 // 先得到用户想要购买的商品!
	        4 // 声明一个集合来存储订单明细  订单需要放每个用户选中的物品集合详情
   			 ArrayList<OrderDetail> detailArrayList = new ArrayList<>();
			循环添加完所有商品后
	5 // 计算总金额
    	 6 // 保存总金额

```java
package com.atguigu.gmall.order.controller;
@RestController
@RequestMapping("api/order")
public class OrderApiController {
   

    @Autowired
    private UserFeignClient userFeignClient;

    @Autowired
    private CartFeignClient cartFeignClient;


    /**
     * 确认订单
     * @param request
     * @return
     */
    @GetMapping("auth/trade")
    public Result<Map<String, Object>> trade(HttpServletRequest request) {
   
        // 获取到用户Id
        String userId = AuthContextHolder.getUserId(request);

        //获取用户地址
        List<UserAddress> userAddressList = userFeignClient.findUserAddressListByUserId(userId);

        // 渲染送货清单
        // 先得到用户想要购买的商品!
        List<CartInfo> cartInfoList = cartFeignClient.getCartCheckedList(userId);
        // 声明一个集合来存储订单明细
        ArrayList<OrderDetail> detailArrayList = new ArrayList<>();
        for (CartInfo cartInfo : cartInfoList) {
   
            OrderDetail orderDetail = new OrderDetail();

            orderDetail.setSkuId(cartInfo.getSkuId());
            orderDetail.setSkuName(cartInfo.getSkuName());
            orderDetail.setImgUrl(cartInfo.getImgUrl());
            orderDetail.setSkuNum(cartInfo.getSkuNum());
            orderDetail.setOrderPrice(cartInfo.getSkuPrice());

            // 添加到集合
            detailArrayList.add(orderDetail);
        }
        // 计算总金额
        OrderInfo orderInfo = new OrderInfo();
        orderInfo.setOrderDetailList(detailArrayList);
        orderInfo.sumTotalAmount();

        Map<String, Object> result = new HashMap
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
《淘淘商城-day08.docx》是一份关于淘淘商城第八天工作的文档。在这一天,淘淘商城的团队采取了一系列措施来进一步提升用户体验和销售业绩。 首先,团队进行了网站内容的优化。他们对商品详情进行了修复和更新,确保信息的准确性和完整性。同时,他们也对面的布局进行了调整,使得用户更容易浏览和购买商品。这些改进措施能够提升用户的满意度和购买转化率。 其次,团队还加强了与供应商的合作关系。他们与一些热门品牌建立起了合作伙伴关系,以获得独家销售权或更优惠的价格。这不仅能够吸引更多的用户,还能提高淘淘商城的竞争力。 另外,团队还对物流配送进行了优化。他们与一家可靠的物流公司合作,以确保商品能够及时、安全地送达给用户。他们还推出了更快速、更便捷的配送选项,如次日达和晚间配送,以满足用户的各种需求。 为了增加用户的复购率,团队还积极进行了促销活动。他们推出了限时限量的特价商品,以及购买一定金额就能获得赠品或折扣的优惠活动。这些促销措施能够吸引用户重复购买,并提升销售额。 总之,《淘淘商城-day08.docx》记录了淘淘商城团队在第八天所做的一系列工作。通过网站内容优化、供应商合作、物流配送优化和促销活动,团队致力于提升用户体验和销售业绩,从而使淘淘商城更加竞争和成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月常新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值