点餐系统---卖家端01---订单

本文详细介绍了如何在SpringBoot项目中使用Freemarker进行模板渲染,包括列表显示、条件判断、循环处理等核心功能,并展示了卖家端订单管理的具体实现,如分页展示、订单取消、详情查看及订单完结等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用 ibootstrap 进行前端界面样式简单选择http://www.ibootstrap.cn/

freemarke 模板渲染的简单使用(循环,判断)Springboot升级后,他的默认后缀不再是ftl,而是ftlh

卖家端订单

controller层

@Controller  //现在要返回的是一个页面,所以不能再用@RestController
@RequestMapping("/seller/order")
public class SellerOrderController {

    @Autowired
    private OrderService orderService;

    /*
    * page:第几页(从第一页开始)
    * size:一页有多少数据
    * */
    @GetMapping("/list")
    public ModelAndView list(@RequestParam(value = "page",defaultValue = "1") Integer page,
                             @RequestParam(value = "size",defaultValue = "10") Integer size,
                             Map<String,Object> map){
        PageRequest request = PageRequest.of(page-1, size);
        Page<OrderDTO> orderDTOPage = orderService.findList(request);
        map.put("orderDTOPage",orderDTOPage);//写入模板template
        return new ModelAndView("order/list",map);
    }
}

freemarke的使用(列表显示 list)

<div class="col-md-12 column">
    <table class="table table-condensed table-hover table-bordered">
        <thead>
        <tr>
            <th>订单id</th>
            <th>姓名</th>
            <th>手机号</th>
            <th>地址</th>
            <th>金额</th>
            <th>订单状态</th>
            <th>支付状态</th>
            <th>创建时间</th>
            <th colspan="2">操作</th>
        </tr>
        </thead>
        <tbody>
        <#list orderDTOPage.content as orderDTO>
            <tr>
                <td>${orderDTO.orderId}</td>
                <td>${orderDTO.buyerName}</td>
                <td>${orderDTO.buyerPhone}</td>
                <td>${orderDTO.buyerAddress}</td>
                <td>${orderDTO.orderAmount}</td>
                <td>${orderDTO.orderStatusEnum.message}</td>
                <td>${orderDTO.payStatusEnum.message}</td>
                <td>${orderDTO.createTime}</td>
                <td>详情</td>
                <td>取消</td>
            </tr>
        </#list>
        </tbody>
    </table>
</div>

在这里插入图片描述
分页的使用

  1. 在ibootstrap中寻找到分页的样式
  2. 设定一个当前页数值currentPage,和size
  3. 设定各种功能(分页)
<div class="col-md-12 column">
    <ul class="pagination pull-right">
        <#--上一页 小于1则无法显示上一页-->
        <#if currentPage lte 1>
            <li class="disabled"><a href="#">上一页</a></li>
        <#else >
            <li><a href="/sell/seller/order/list?page=${currentPage-1}&size=${size}">上一页</a></li>
        </#if>
        <#list 1..orderDTOPage.totalPages as index>
            <#if currentPage == index>
                <li class="disabled"><a href="#">${index}</a></li>
            <#else>
                <li><a href="/sell/seller/order/list?page=${index}&size=${size}">${index}</a></li>
            </#if>
        </#list>
        <#--下一页 大于orderDTOPage.totalPages则无法显示下一页-->
        <#if currentPage gte orderDTOPage.totalPages>
            <li class="disabled"><a href="#">下一页</a></li>
        <#else >
            <li><a href="/sell/seller/order/list?page=${currentPage+1}&size=${size}">下一页</a></li>
        </#if>
    </ul>
</div>

在这里插入图片描述
取消订单

  1. ”/seller/order/cancel”接口
    @GetMapping("/cancel")
    public ModelAndView cancel(@RequestParam("orderId") String orderId,
                               Map<String, Object> map) {
        try {
            OrderDTO orderDTO = orderService.findOne(orderId);
            orderService.cancel(orderDTO);
        } catch (SellException e) {
            log.error("【卖家端取消订单】发生异常{}", e);
            map.put("msg", e.getMessage());
            map.put("url", "/sell/seller/order/list");
            return new ModelAndView("common/error", map);
        }

        map.put("msg", ResultEnum.ORDER_CANCEL_SUCCESS.getMessage());
        map.put("url", "/sell/seller/order/list");
        return new ModelAndView("common/success");
    }

  1. 设定error页面和success页面(resource/templates/success.ftl),取消成功和取消失败(从ibootstrap中查找)
<html>
<head>
    <meta charset="utf-8">
    <title>成功提示</title>
    <link href="https://cdn.bootcss.com/bootstrap/3.0.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>

<div class="container">
    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="alert alert-dismissable alert-success">
                <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
                <h4>
                    成功!
                </h4> <strong>${msg!""}</strong><a href="${url}" class="alert-link">3s后自动跳转</a>
            </div>
        </div>
    </div>
</div>

</body>

<script>
    setTimeout('location.href="${url}"', 3000);
</script>

</html>

订单详情

  1. ”/seller/order/detail”接口
    @GetMapping("/detail")
    public ModelAndView detail(@RequestParam("orderId") String orderId,
                               Map<String, Object> map) {
        OrderDTO orderDTO = new OrderDTO();
        try {
            orderDTO = orderService.findOne(orderId);
        }catch (SellException e) {
            log.error("【卖家端查询订单详情】发生异常{}", e);
            map.put("msg", e.getMessage());
            map.put("url", "/sell/seller/order/list");
            return new ModelAndView("common/error", map);
        }

        map.put("orderDTO", orderDTO);
        return new ModelAndView("order/detail", map);
    }
  1. 设置详情页面

在这里插入图片描述
订单完结
”/seller/order/finish”接口

 @GetMapping("/finish")
    public ModelAndView finished(@RequestParam("orderId") String orderId,
                                 Map<String, Object> map) {
        try {
            OrderDTO orderDTO = orderService.findOne(orderId);
            orderService.finish(orderDTO);
        } catch (SellException e) {
            log.error("【卖家端完结订单】发生异常{}", e);
            map.put("msg", e.getMessage());
            map.put("url", "/sell/seller/order/list");
            return new ModelAndView("common/error", map);
        }

        map.put("msg", ResultEnum.ORDER_FINISH_SUCCESS.getMessage());
        map.put("url", "/sell/seller/order/list");
        return new ModelAndView("common/success");
    }
}
本课程设计要求完成一个用于饭店的餐饮管理的系统。 功能要求: 针对饭店具体情况,设置点餐,订餐信息; 设置菜谱和价格信息; 人员管理: 用户管理,职称管理,员工管理,员工信息管理; 用餐管理: 用户可以进行点菜、加菜及取消点菜等操作; 消费清单统计 可以实时显示点餐及订餐的情况; 可以对收入情况进行统计 需求分析 一、登录( 前台服务员 部门经理 收银员 服务员 厨师) 二、 1、前台管理【会员部分没有做】 ① 预定(属性:客人姓名 预定时间 吃饭时间 台号; ② 点菜、加菜(菜单属性:编号菜编号 数量); ③ 结账收银 (账单编号 开台时间 结账时间 顾客编号 结账员工 酒菜清单 应收金额 实收金额* 找零金额*) ④ 前台菜单(点菜时间 酒菜编号 台号* 备注) 2、后台管理 ① 设置菜谱 (菜编号 菜名称 分类 单价 ) 填加菜,修改菜, 删除菜 ② 菜种类管理(菜种类编号,菜种类名称)增加菜种类,修改菜种,删除菜种类 ③ 收入管理(订单编号 顾客编号 时间 支付金额) ④ 用户管理 (用户名,密码,职位编号)增加用户,删除用户,用户信息的修改 ⑤ 职位管理(职位类型编号,职位名称)增加职位,删除职位,职位信息的修改 ⑥ 员工管理 (员工编号,员工姓名,性别,年龄,身份证号,联系方式,职位编号)增加员工,删除员工,修改员工信息 数据库文件在DB下,附加即可(MS Sql2008)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值