关于springboot:京淘day20商品订单的实现

4次阅读

共计 3448 个字符,预计需要花费 9 分钟才能阅读完成。

1. 订单确认页面跳转

1.1 需要剖析

页面跳转: order-cart.jsp 页面, 须要展示商品数据信息, 同时有收件人地址信息.

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<Cart> cartList = cartService.findCartList(userId);
        model.addAttribute("carts", cartList);
        return "order-cart";
    }
}

2. 创立订单我的项目

2.1 订单模块表设计

2.2 导入 POJO 对象

2.3 创立订单我的项目

1). 创立我的项目

2). 增加继承 / 依赖 / 插件

<parent>
        <artifactId>jt</artifactId>
        <groupId>com.jt</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <!-- 增加 jar 包文件依赖 -->
    <dependencies>
        <dependency>
            <groupId>com.jt</groupId>
            <artifactId>jt-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <!-- 所有业务零碎, 必须增加 build 标签 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

3). 实现订单模块创立

3. SpringMVC 参数传递阐明

3.1 简略参数赋值

1).html 标记

<input    type="text" name="name"  value="二郎神"/>
<input    type="text" name="age"     value="18"/>

2).controller 办法

3.2 对象赋值

1).html 标记

<input    type="text" name="name"  value="二郎神"/>
<input    type="text" name="age"     value="18"/>

2). 利用对象的形式接管参数

3.3 对象的援用赋值

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

<input    type="text" name="name"  value="二郎神"/>  
<input    type="text" name="age"     value="18"/>
<input    type="text" name="dog.name"  value="哮天犬"/>
<input    type="text" name="dog.age"     value="15"/>
<input    type="text" name="hobbys[0]"     value="敲代码"/>
<input    type="text" name="hobbys[1]"     value="学 JAVA"/>

2). 参数的获取

4. 订单业务实现

4.1 业务剖析

1). url 剖析

2). 页面参数剖析

3). 页面构造剖析

4).POJO 对象赋值

5). 页面 JS 剖析

4.2 编辑 OrderController

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<OrderItem> orderItems = order.getOrderItems();
        for(OrderItem orderItem : orderItems){orderItem.setOrderId(orderId);
            orderItemMapper.insert(orderItem);
        }
        System.out.println("订单入库实现!!!!");
        return orderId;
    }
} 

5 订单查问

5.1 页面剖析

5.2 编辑 OrderController

5.3 编辑 OrderService

5.4 页面成果展示

正文完
 0