点餐项目实现(三)

简介: 点餐项目实现(三)

xml

<insert id="addDish">
    insert into dish(name,price)
     values(#{name},#{price})
</insert>

菜品添加的逻辑就是每次添加完菜品到Dish表后,刷新页面,调用isLogin方法判断是否延续登录状态,然后isLogin方法重新获取后台的菜单列表,然后进行展示

菜品删除功能

前端

<td>
    <v-btn color="primary" v-on:click="del(dish.id)">删除</v-btn>
</td>
//删除菜品
del(did) {
    if (confirm("确认删除?")) {
        jQuery.getJSON("/dish/del", {"id": did}, function (result) {
            if (result != null && result.data != null && result.data > 0) {
                //删除成功
                alert("删除成功");
                //刷新当前界面
                location.href = location.href;
            } else {
                alert("抱歉,操作失败,请重试");
            }
        });
    }
},

controller

//管理员删除订单的后台方法
@RequestMapping("/del")
public ResponseBody<Integer> deleteDish(int id) {
    int data = dishMapper.del(id);
    return new ResponseBody<>(0, "", data);
}

mapper

public int del(int id);

xml

<delete id="del">
    delete from dish where id=#{id}
</delete>

菜品删除的逻辑就是每次删除菜品后,刷新页面,调用isLogin方法判断是否延续登录状态,然后isLogin方法重新获取后台的菜单列表,然后进行展示

获取订单列表功能

前端

查看所有订单

 <v-list-item link v-on:click="showOrder">
                <v-list-item-action>
                    <v-icon>mdi-cart-outline</v-icon>
                </v-list-item-action>
                <v-list-item-content>
                    <v-list-item-title>查看订单</v-list-item-title>
                </v-list-item-content>
            </v-list-item>
//查看所有人的订单
            showOrder() {
                jQuery.getJSON("/order/alllist", {},
                    function (result) {
                        if (result != null && result.data != null) {
                            app.orders = result.data;
                            // 显示订单列表窗体
                            app.status = 'ordersPage';
                        }
                    });
            },
<!-- 订单列表 -->
<v-simple-table v-show="status == 'ordersPage' && login.isLogin">
    <template v-slot:default>
        <thead>
        <tr>
            <th class="text-left">序号</th>
            <th class="text-left">用户</th>
            <th class="text-left">状态</th>
            <th class="text-left">时间</th>
            <th class="text-left">详情</th>
        </tr>
        </thead>
        <tbody>
        <tr v-for="order in orders">
            <td>{{order.id}}</td>
            <td>{{order.uname}}</td>
            <td>
                <v-switch v-model="order.status" v-on:click="update(order.id,order.status)"></v-switch>
            </td>
            <td>{{order.createtime}}</td>
            <td>
                <v-btn color='primary' v-on:click="detail(order.id)">查看详情</v-btn>
            </td>
        </tr>
        </tbody>
    </template>
</v-simple-table>

修改订单状态

//管理员修改状态
update(oid, status) {
    //因为选中的这个状态在前端我们显示选中为true,不选中为false,所以此处需要用三元符进行一个选择
    status = status ? 1 : 0;
    jQuery.getJSON("/order/update", {"oid": oid, "status": status}, function (result) {
        if (result != null && result.data != null && result.data > 0) {
            alert("恭喜,状态修改成功");
        } else {
            alert("修改失败,请重试");
        }
    });
},

查看某个订单详情

//查看某个订单详情
detail(oid) {
    jQuery.getJSON("/detail/list", {"oid": oid}, function (result) {
        if (result != null && result.data != null) {
            app.curOrder = result.data;
            //显示订单详情页面
            app.showCurOrder = true;
        }
    });
},
<!--订单详情窗口-->
<v-row justify="center">
    <v-dialog v-model="showCurOrder" persistent max-width="600px">
        <v-simple-table>
            <template v-slot:default>
                <thead>
                <tr>
                    <th class="text-left">菜品</th>
                    <th class="text-left">价格</th>
                </tr>
                </thead>
                <tbody>
                <tr v-for="dish in curOrder">
                    <td>{{dish.dish.name}}</td>
                    <td>{{dish.dish.price}}</td>
                </tr>
                <tr>
                    <td>总金额: {{totalPrice()}}</td>
                    <td>
                        <v-btn color="primary" v-on:click="showCurOrder=false">关闭</v-btn>
                    </td>
                </tr>
                </tbody>
            </template>
        </v-simple-table>
    </v-dialog>
</v-row>
//计算某个订单详情的总价
totalPrice() {
    let money = 0;
    app.curOrder.forEach(item => {
        money += item.dish.price;
    });
    return money;
},

controller

查看所有订单

//管理员查看所有人列表信息
    @RequestMapping("/alllist")
    public ResponseBody<List<OrderInfo>> getAllList(HttpServletRequest request) {
        List<OrderInfo> orderinfo = null;
        orderinfo = orderInfoMapper.getAllList();
        return new ResponseBody<>(0, "", orderinfo);
    }

修改订单状态

//管理员修改用户订单的状态
@RequestMapping("/update")
public ResponseBody<Integer> updateStautus(int oid,int status) {
    int data = orderInfoMapper.update(oid,status);
    return new ResponseBody<>(0, "", data);
}

查看某个订单详情

@RequestMapping("/list")
public ResponseBody<List<OrderDetail>> getList(int oid){
    List<OrderDetail> list = orderDetailMapper.getList(oid);
    return new ResponseBody<>(0,"",list);
}


mapper

查看所有订单

//获取所有人的订单列表
public List<OrderInfo> getAllList();

修改订单状态

//修改订单的状态
 public int update(int oid,int status);

查看某个订单详情

public List<OrderDetail> getList(int oid);

xml

查看所有订单

<select id="getAllList" resultType="com.example.ordersys.model.OrderInfo">
    select o.*,u.username uname from orderinfo o left join userinfo u on o.uid=u.id order by o.id desc
</select>

注意这里我们依旧使用到了联表查询,左连接

修改订单状态

<update id="update">
    update orderinfo set status=#{status} where id=#{oid}
</update>

查看某个订单详情

<resultMap id="BaseResultMap" type="com.example.ordersys.model.OrderDetail">
        <result property="did" column="did"></result>
        <result property="oid" column="oid"></result>
        <association property="dish" columnPrefix="d_" resultMap="com.example.ordersys.mapper.DishMapper.BaseResultMap">
        </association>
    </resultMap>
<select id="getList" resultMap="BaseResultMap">
    select o.*,d.name d_name,d.price d_price from orderdetail o left join dish d on o.did=d.id
   where o.oid=#{oid}
</select>

这块的代码逻辑跟之前用户查看订单详情功能一样

退出登录功能

前端

<v-list-item link v-on:click="logout">
    <v-list-item-action>
        <v-icon>mdi-logout</v-icon>
    </v-list-item-action>
    <v-list-item-content>
        <v-list-item-title>退出登录</v-list-item-title>
    </v-list-item-content>
</v-list-item>
logout() {
    if (confirm("是否确认退出?")) {
        jQuery.getJSON("/user/logout", {}, function (result) {
            if (result != null && result.data != null && result.data > 0) {
                //退出成功
                alert("退出成功");
                //刷新当前页面
                location.href = location.href;
            } else {
                alert("抱歉,操作失败,请重试");
            }
        });
    }
},

controller

/**
 * 退出登录
 * @param request
 * @return
 */
@RequestMapping("/logout")
public ResponseBody<Integer> logOut(HttpServletRequest request) {
    int data = 0;
    HttpSession session = request.getSession(false);
    if (session != null && session.getAttribute(AppFinal.USERINFO_SESSION_KEY) != null) {
        session.removeAttribute(AppFinal.USERINFO_SESSION_KEY);
        data = 1;
    }
    session.removeAttribute(AppFinal.USERINFO_SESSION_KEY);
    return new ResponseBody<>(0, "", data);
}
相关文章
|
6月前
|
小程序 API
点餐小程序实战教程09-订单功能开发
点餐小程序实战教程09-订单功能开发
|
SQL 安全 JavaScript
基于JavaWeb的电影院在线选座订票管理系统
基于JavaWeb的电影院在线选座订票管理系统
686 0
基于JavaWeb的电影院在线选座订票管理系统
|
6月前
|
小程序 JavaScript Java
奶茶点餐|奶茶店自助点餐系统|基于微信小程序的饮品点单系统的设计与实现(源码+数据库+文档)
奶茶点餐|奶茶店自助点餐系统|基于微信小程序的饮品点单系统的设计与实现(源码+数据库+文档)
355 1
|
6月前
|
搜索推荐 JavaScript 前端开发
基于SSM个性化点餐配送系统的设计与实现
基于SSM个性化点餐配送系统的设计与实现
69 1
|
6月前
|
小程序 JavaScript Java
点餐|外卖订餐小程序|基于微信小程序的外卖订餐系统设计与实现(源码+数据库+文档)
点餐|外卖订餐小程序|基于微信小程序的外卖订餐系统设计与实现(源码+数据库+文档)
156 0
|
6月前
|
小程序 JavaScript Java
影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)
影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)
207 0
|
6月前
|
SQL Java Go
java项目超市购物管理系统
java项目超市购物管理系统
|
小程序
【带源码】基于微信小程序的旅游订票旅游预订小程序酒店预订项目
重要的事情说三遍,可白嫖,可白嫖,可白嫖!!! 源码下载链接:docs.qq.com/doc/DYm5DSlBWZEplalBP 随着移动互联网的迅速发展,人们对于旅游信息获取和旅行订票的需求也逐渐增加。传统的旅游指南和订票方式往往不够便捷和灵活,而微信作为一种广泛使用的社交媒体平台,拥有巨大的用户群体和强大的社交属性,成为了传递信息和服务的重要渠道。
|
6月前
|
小程序 算法 数据可视化
点餐小程序实战教程07-点餐功能开发
点餐小程序实战教程07-点餐功能开发
拍卖软件开发方式,直播竞拍商城定制开发成品源码选择
为了开发一个成功的拍卖软件平台,选择适合的开发方式至关重要。在定制开发和购买“东莞梦幻网络科技”拍卖直播成品源码之间做出选择时,需要考虑以下多个关键因素,以确保最终的选择符合您的自身需求和目标。