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 页面成果展示