网上订餐系统

一、概述
本次设计为网上订餐系统,结合了vue+elmentui+mybatis+springboot+redis的系统,在这个文章中,会对一些功能进行一个简单阐述。
二、部分代码
在这次系统中,首先会涉及到一个登陆后获取当前登录用户的信息的问题,就这个问题,因为之前从未接触过此类内容,所以懵圈了很久,后面发现可以通过session和cookie,在登录的时候,生成token,然后存储起来,在其他页面需要获取当前登录用户的信息的时候,就可以直接在需要的地方获取token,如下代码所示:
@Override
public User getByToken(HttpServletResponse response, String token) {
if (token == null) {
return null;
}
User user = JSON.parseObject(redisUtil.get(COOKIE_NAME_TOKEN + “::” + token), User.class);
//重置有效期
if (user == null) {
throw new GlobalException(CodeMsg.USER_NOT_LOGIN);
}
addCookie(response, token, user);
return user;
}

private void addCookie(HttpServletResponse response, String token, User user) {
    //将token存入redis
    redisUtil.set(COOKIE_NAME_TOKEN + "::" + token, JSON.toJSONString(user), TOKEN_EXPIRE);
    //将token写入cookie
    Cookie cookie = new Cookie(COOKIE_NAME_TOKEN, token);
    cookie.setMaxAge(TOKEN_EXPIRE);
    cookie.setPath("/");
    response.addCookie(cookie);
}

在这里插入图片描述
如果需要在个人信息处获取个人信息的话,只需要下面的代码:
/*
当前登录的用户
@param user用户信息,由封装注入
*/
@RequestMapping("/current")
@ResponseBody
public Result current(User user){
return Result.success(user);
}
在本系统中,还涉及到了管理员的增删改查问题,其中增加是比较容易的,只需要在前端建一个table,然后将:data从前端传给后端,后端接收后,将这些数据insert数据库即可。对于删除来说,因为涉及到点击某一行获取该行数据对应的id,所以在table中应当存在scope.row,然后点击按钮,触发delete(scope.row.id),将id通过url = “http://…/deleteUser”+id传到后端,后端编写@getMapper("/deleteUser/{id}")进行删除操作,修改的方法其实和删除差不多,只是如果设计弹窗的话,可以使用以下的代码:

Logo

前往低代码交流专区

更多推荐