京淘day20-商品订单的实现

1.订单确认页面跳转

1.1 需求分析

页面跳转: order-cart.jsp页面,需要展现商品数据信息,同时有收件人地址信息.
京淘day20-商品订单的实现_第1张图片

1.2 编辑OrderController

完成订单确认页面跳转

package com.jt.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.jt.pojo.Cart;
import com.jt.service.DubboCartService;
import com.jt.util.UserThreadLocal;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
@RequestMapping("/order")
public class OrderController {
    @Reference(check = false)
    private DubboCartService cartService;
    /**
     * 1.实现订单确认页面跳转
     * url地址: http://www.jt.com/order/create.html
     * 参数说明:  获取userId
     * 返回值结果: 订单确认页面  order-cart.jsp
     * 页面取值方式:  ${carts}
     */
    @RequestMapping("/create")
    public String orderCart(Model model){
        long userId = UserThreadLocal.getUser().getId();
        List cartList = cartService.findCartList(userId);
        model.addAttribute("carts", cartList);
        return "order-cart";
    }
}

京淘day20-商品订单的实现_第2张图片

2. 创建订单项目

2.1 订单模块表设计

京淘day20-商品订单的实现_第3张图片

2.2 导入POJO对象

京淘day20-商品订单的实现_第4张图片

2.3 创建订单项目

1).创建项目
京淘day20-商品订单的实现_第5张图片
2).添加继承/依赖/插件


        jt
        com.jt
        1.0-SNAPSHOT
    

    
    
        
            com.jt
            jt-common
            1.0-SNAPSHOT
        
    

    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

3).完成订单模块创建
京淘day20-商品订单的实现_第6张图片

3. SpringMVC 参数传递说明

3.1 简单参数赋值

1).html标记


2).controller方法
京淘day20-商品订单的实现_第7张图片

3.2 对象赋值

1).html标记


2).利用对象的方式接收参数
京淘day20-商品订单的实现_第8张图片

3.3 对象的引用赋值

问题: 如果页面中有重名属性,如何处理???
解决方案: 利用对象的引用封装
1).html标记

  




2).参数的获取
京淘day20-商品订单的实现_第9张图片

4. 订单业务实现

4.1 业务分析

1). url分析
京淘day20-商品订单的实现_第10张图片

4.2 编辑OrderController

京淘day20-商品订单的实现_第11张图片

4.3 编辑OrderService

package com.jt.service;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

import com.alibaba.dubbo.config.annotation.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.jt.mapper.OrderItemMapper;
import com.jt.mapper.OrderMapper;
import com.jt.mapper.OrderShippingMapper;
import com.jt.pojo.Order;
import com.jt.pojo.OrderItem;
import com.jt.pojo.OrderShipping;
@Service
public class OrderServiceImpl implements DubboOrderService {
    @Autowired
    private OrderMapper orderMapper;
    @Autowired
    private OrderShippingMapper orderShippingMapper;
    @Autowired
    private OrderItemMapper orderItemMapper;
    @Override
    public String saveOrder(Order order) {
        //字符串拼接
        String orderId =  "" + order.getUserId() + System.currentTimeMillis();
        //1.完成订单入库操作
        order.setOrderId(orderId).setStatus(1);    //未付款状态
        orderMapper.insert(order);
        //2.入库订单物流信息
        OrderShipping orderShipping = order.getOrderShipping();
        orderShipping.setOrderId(orderId);
        orderShippingMapper.insert(orderShipping);
        //3.完成订单商品入库操作
        List orderItems = order.getOrderItems();
        for(OrderItem orderItem : orderItems){
            orderItem.setOrderId(orderId);
            orderItemMapper.insert(orderItem);
        }
        System.out.println("订单入库完成!!!!");
        return orderId;
    }
} 

5 订单查询

5.1 页面分析

京淘day20-商品订单的实现_第12张图片

5.2 编辑OrderController

京淘day20-商品订单的实现_第13张图片

5.3 编辑OrderService

京淘day20-商品订单的实现_第14张图片

5.4 页面效果展现

京淘day20-商品订单的实现_第15张图片

你可能感兴趣的:(springboot)