day02_springboot综合案例(一)

简介: day02_springboot综合案例

day02_springboot综合案例

订单操作

查询所有订单

查询所有订单流程

查询订单,要把订单对应的产品也要查出来

Orders实体类

@Data
public class Orders {
    private String id;
    private String orderNum;
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
    private Date orderTime;
    private String orderTimeStr;
    private int orderStatus;
    private String orderStatusStr;
    private int peopleCount;
    private Product product;
    private List<Traveller> travellers;
    private Member member;
    private Integer payType;
    private String payTypeStr;
    private String orderDesc;
    //用于添加订单时,添加产品,会员
    private Integer productId;
    private Integer memberId;
    public String getOrderTimeStr() {
        // 对日期格式化
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        if (null != orderTime) {
            orderTimeStr = dateFormat.format(orderTime);
        }
        return orderTimeStr;
    }
    public String getPayTypeStr() {
        if (payType == 0){
            payTypeStr = "支付宝";
        } else if(payType == 1){
            payTypeStr = "微信";
        }else if(payType == 2){
            payTypeStr = "其他";
        }
        return payTypeStr;
    }
    public String getOrderStatusStr() {
        if (orderStatus == 0){
            orderStatusStr = "未支付";
        } else if(orderStatus == 1){
            orderStatusStr = "已支付";
        }
        return orderStatusStr;
    }
}

编写OrdersMapper

public interface OrderMapper {
    /**
     * 分页查询所有订单
     */
    List<Orders> findAll();

编写OrdersService

public interface OrderService {
    /**
     * 分页查询所有订单
     * @param page
     * @param size
     * @return
     */
    List<Orders> findAll(Integer page, Integer size);
}
@Service
public class OrderServiceImpl implements OrderService {
    @Autowired
    private OrderMapper orderMapper;
    /**
     * 查询订单
     * @return
     */
    @Override
    public List<Orders> findAll() {
        return this.orderMapper.findAll();
    }
}

编写OrdersController

@Controller
@RequestMapping("order")
public class OrderController {
    @Autowired
    private OrderService orderService;
    /**
     * 查询所有订单
     */
    @RequestMapping("findAll")
    public String findAll( Model model ,
                                 @RequestParam(value = "page",defaultValue = "1") Integer page,
                                 @RequestParam(value = "size",defaultValue = "5") Integer size){
        PageHelper.startPage(page,size);
        List<Orders> orders = this.orderService.findAll();
        PageInfo pageInfo = new PageInfo(orders);
        model.addAttribute("pageInfo",pageInfo);
        return "order-list";
    }
}

编写OrdersMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.yanqi.ssm.mapper.OrderMapper">
    <!--查询订单,查询订单对应的产品-->
    <resultMap id="orders" type="Orders" autoMapping="true">
        <id column="id" property="id" />
        <association property="product" javaType="Product" autoMapping="true">
            <id property="id" column="id"/>
        </association>
    </resultMap>
    <select id="findAll" resultMap="orders">
        SELECT * FROM orders o , product p WHERE o.productId = p.id
    </select>
</mapper>

测试

订单详情

查询订单详情流程

查看订单详情,需要查看 产品 会员 旅客

-- sql 分析
  SELECT
    o.orderNum as "订单号",
    p.productName as "路线",
    m.nickName as "下单人",
    t.name as "游客"
  FROM
    orders o
    LEFT JOIN product p ON o.productId = p.id
    LEFT JOIN member m ON o.memberId = m.id
    LEFT JOIN order_traveller ot ON ot.orderId = o.id
    LEFT JOIN traveller t ON ot.travellerId = t.id
  WHERE
  o.id = 5

Member实体类

package cn.yanqi.ssm.pojo;
import lombok.Data;
@Data
public class Member {
    private String id;
    private String mname;
    private String nickname;
    private String mphoneNum;
    private String email;
}

Traveller实体类

package cn.yanqi.ssm.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
public class Traveller {
    private String id;
    private String name;
    private String sex;
    private String phoneNum;
    private Integer credentialsType;
    private String credentialsTypeStr;
    private String credentialsNum;
    private Integer travellerType;
    private String travellerTypeStr;
    public String getCredentialsTypeStr() {
        if(credentialsType != null){
            // 证件类型 0:身份证 1:护照 2:军官证
            if (credentialsType == 0) {
                credentialsTypeStr = "身份证";
            } else if (credentialsType == 1) {
                credentialsTypeStr = "护照";
            } else if (credentialsType == 2) {
                credentialsTypeStr = "军官证";
            }
        }
        return credentialsTypeStr;
    }
    public String getTravellerTypeStr() {
        if( travellerType != null){
            // 证件类型 0:成人 1:儿童
            if (travellerType == 0) {
                travellerTypeStr = "成人";
            } else if (travellerType == 1) {
                travellerTypeStr = "儿童";
            }
        }
        return travellerTypeStr;
    }
}


day02_springboot综合案例(二)https://developer.aliyun.com/article/1433622

目录
相关文章
|
22天前
|
SQL JavaScript Java
springboot+springm vc+mybatis实现增删改查案例!
springboot+springm vc+mybatis实现增删改查案例!
31 0
|
9天前
|
IDE Java Maven
Springboot中Processor注解概念以及实战案例
【5月更文挑战第28天】在Spring Boot中,没有直接名为Processor的注解。不过,你可能是在谈论与Spring Boot相关的注解处理器(Annotation Processors)的概念,尤其是在处理自定义注解或@ConfigurationProperties注解时的情况。
22 1
|
19天前
|
前端开发 Java
audio案例(1),2024年最新springboot项目源码
audio案例(1),2024年最新springboot项目源码
|
22天前
|
数据采集 Web App开发 Java
Python 爬虫:Spring Boot 反爬虫的成功案例
Python 爬虫:Spring Boot 反爬虫的成功案例
|
22天前
|
自然语言处理 Java 索引
SpringBoot 实现 elasticsearch 查询操作(RestHighLevelClient 的案例实战)
SpringBoot 实现 elasticsearch 查询操作(RestHighLevelClient 的案例实战)
35 1
|
22天前
|
JSON Java Maven
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
47 0
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
|
22天前
|
XML 前端开发 JavaScript
SpringBoot之响应案例的详细解析
SpringBoot之响应案例的详细解析
16 0
|
22天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
38 0
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
22天前
|
存储 Java 定位技术
SpringBoot轻松实现二维码条形码含源码案例
SpringBoot轻松实现二维码条形码含源码案例
39 1
|
22天前
|
JSON 前端开发 Java
【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之Spring定义Jackson转换Null的方法和实现案例
【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之Spring定义Jackson转换Null的方法和实现案例
52 0