SSM项目 蟹堡王餐厅管理系统(四)个人信息修改、点餐功能和购物车的实现

一、个人信息修改

(一)个人信息修改界面的编写

当用户点击带界面时,系统会从session(user)中获取用户名、密码以及uid,并显示在页面上,其中uid设置为只读,用户不可更改。在该界面,用户可以修改自己的用户名、密码以及更换头像。在用户成功修改信息后,会强制登出,重新获取session显示数据。
在这里插入图片描述

UserInformation.jsp:

<%--
  Created by IntelliJ IDEA.
  User: RH
  Date: 2021/8/8
  Time: 16:09
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" href="layui/css/layui.css"  media="all">
    <style>
        *{
     margin:0px;padding:0px;}
        form{
     
            width:80%;
            margin:30px auto;
        }
    </style>
</head>
<body>
<script src="layui/layui.js" charset="utf-8"></script>




<form class="layui-form" action="updateUserPerson" method="post" enctype="multipart/form-data" >
    <div class="layui-form-item">
        <label class="layui-form-label">uid</label>
        <div class="layui-input-block">
            <input type="text" name="uid" required  lay-verify="required"  autocomplete="off" class="layui-input" value="${sessionScope.user.uid}" readonly="readonly">
        </div>
    </div>

    <div class="layui-form-item layui-form-text">
        <label class="layui-form-label">用户名</label>
        <div class="layui-input-block">
            <input type="text" name="userName" required  lay-verify="required"  autocomplete="off" class="layui-input" value="${sessionScope.user.userName}">
        </div>
    </div>

    <div class="layui-form-item">
        <label class="layui-form-label">密码</label>
        <div class="layui-input-block">
            <input type="text" name="userPsd" required  lay-verify="required"  autocomplete="off" class="layui-input" value="${sessionScope.user.userPsd}">
        </div>
    </div>

    <div class="layui-form-item">
        <label class="layui-form-label">用户头像</label>
        <div class="layui-input-block">
            <input type="file" name="ImgFile"class="layui-input">
        </div>
    </div>

    <div class="layui-form-item">
        <div class="layui-input-block">
            <input class="layui-btn" type="submit" value="确认修改" onclick="tologin()">
        </div>
    </div>
</form>


<script type="text/javascript">

    function tologin(){
     
        alert("修改成功,请重新登录!")

        window.top.location.href="login.jsp";//它表示,从最上层的窗口的地址栏发送请求


    }

    layui.use(['jquery','form'], function(){
     
        var $ = layui.jquery;
        var form = layui.form;

        form.render();
    });
</script>
</body>
</html>

(二)个人信息修改功能的实现

当用户单击确认修改按钮时,会向后台发出updateUserPerson请求,此时在UserController中新增updateUserPerson()方法。
在这里插入图片描述

UserController :

@Controller
public class UserController {
   

    @Autowired
    private UserServiceI userServiceI;
    @Autowired
    private ResultMap resultMap;

    @RequestMapping("/login")
    @ResponseBody
    public ResultMap login(String userName, String userPsd, String captcha , HttpSession session) {
   
        try {
   
            int authority=userServiceI.login(userName,userPsd,captcha,session);
            resultMap.setStatus(true);
            resultMap.setAuthority(authority);
        } catch (Exception e) {
   
            resultMap.setStatus(false);
            resultMap.setMessage(e.getMessage());
        }
        return resultMap;
    }


    @RequestMapping("/register")
    @ResponseBody
    public ResultMap insertUserregister(String userName,String userPsd,String sex){
   
        try{
   
            userServiceI.insertUserregister(userName,userPsd,sex);
            resultMap.setStatus(true);
        }catch (Exception e){
   
            resultMap.setStatus(false);
            resultMap.setMessage(e.getMessage());
        }
        return resultMap;
    }

    @RequestMapping("/updateUserPerson")
    public void updateUserPerson(String uid, String userName, String userPsd, MultipartFile ImgFile, HttpSession session, HttpServletRequest request){
   
        session.invalidate();
        try{
   
            if(ImgFile.getSize()==0){
   
                ImgFile=null;
            }
            userServiceI.updateUserPerson(uid,userName,userPsd,ImgFile,request);
        }catch (Exception e){
   
            resultMap.setStatus(false);
            resultMap.setMessage(e.getMessage());
        }

    }

}

在UserController中,将会调用userServiceI,此时向UserServiceI、UserServiceImpl新增updateUserPerson()方法
UserServiceI:

public interface UserServiceI {
   

    public int login(String userName, String userPsd, String captcha, HttpSession session);
    
    public int insertUserregister(String userName,String userPsd,String sex);

	public int updateUserPerson(String uid, String userName, String userPsd, MultipartFile ImgFile, HttpServletRequest request);
}

UserServiceImpl:
在这里插入图片描述

@Service
public class UserServiceImpl implements UserServiceI{
   

    @Autowired
    private UserDao userDao;

    @Override
    public int login(String userName, String userPsd, String captcha, HttpSession session) {
   
        if(userName.equals("")) {
   
            throw new RuntimeException("用户名不能为空!");
        }
        if(userPsd.equals("")) {
   
            throw new RuntimeException("密码不能为空!");
        }
        if(captcha.equals("")) {
   
            throw new RuntimeException("验证码不能为空!");
        }

        String cap= (String) session.getAttribute("captcha");

        if(!captcha.equalsIgnoreCase(cap)){
   
            throw new RuntimeException("验证码有误!");
        }

        User user = new User(userName,userPsd);
        user = userDao.login(user);
        if(user == null) {
   
            throw new RuntimeException("用户名或密码输入有误!");
        }else {
   
            session.setAttribute("user",user);
        }

        return user.getAuthorityType();
    }

    @Override
    public int insertUserregister(String userName, String userPsd, String sex) {
   
        if(userName.equals("")) {
   
            throw new RuntimeException("用户名不能为空!");
        }
        if(userPsd.equals("")) {
   
            throw new RuntimeException("密码不能为空!");
        }


        User user =new User();
        user.setUserName(userName);
        user.setUserPsd(userPsd);
        user.setSex(sex);
        user.setImgPath("images/defaultHeadimg.png");
        user.setHeadImg("defaultHeadimg.png");
        int num=userDao.insertUser(user);
        if(num==0){
   
            throw new RuntimeException("新增失败!");
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值