【SSM】实战:新闻发布管理系统——用户管理模块(1)

一、创建持久化类

Role

package com.ssm.po;

import java.util.List;

public class Role {
    private Integer roleId;
    private String roleName;
    private List<User> userList;

    @Override
    public String toString() {
        return "Role{" +
                "roleId=" + roleId +
                ", roleName='" + roleName + '\'' +
                ", userList=" + userList +
                '}';
    }

    public Integer getRoleId() {
        return roleId;
    }

    public void setRoleId(Integer roleId) {
        this.roleId = roleId;
    }

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    public List<User> getUserList() {
        return userList;
    }

    public void setUserList(List<User> userList) {
        this.userList = userList;
    }
}

User

package com.ssm.po;

import java.util.Date;

public class User {
    private Integer userId;
    private String userName;
    private String loginName;
    private String password;
    private String tel;
    private Date registerTime;
    private String status;
    private Integer roleId;
    private String roleName;

    @Override
    public String toString() {
        return "User{" +
                "userId=" + userId +
                ", userName='" + userName + '\'' +
                ", loginName='" + loginName + '\'' +
                ", password='" + password + '\'' +
                ", tel='" + tel + '\'' +
                ", registerTime=" + registerTime +
                ", status='" + status + '\'' +
                ", roleId=" + roleId +
                ", roleName='" + roleName + '\'' +
                '}';
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public Date getRegisterTime() {
        return registerTime;
    }

    public void setRegisterTime(Date registerTime) {
        this.registerTime = registerTime;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Integer getRoleId() {
        return roleId;
    }

    public void setRoleId(Integer roleId) {
        this.roleId = roleId;
    }

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }
}

二、实现DAO

1、创建DAO层接口

RoleDao

package com.ssm.dao;

import com.ssm.po.Role;

import java.util.List;

public interface RoleDao {
    public List<Role> selectRoleList();
}

UserDao

package com.ssm.dao;

import com.ssm.po.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserDao {
//    查询所有用户
    public List<User> selectUserList(@Param("keywords") String keywords,@Param("userListRoleId")Integer userListRoleId);
//    通过账号密码查询
    public User findUser(@Param("loginName")String loginName,@Param("password") String password);
//    通过用户id查询
    public User getUserByUserId(Integer userId);
//    通过登录名查询(判断用户名是否存)
    public User getUserByLoginName(String loginName);
//    添加用户
    public int addUser(User user);
//    更新用户
    public int updateUser(User user);
//    删除用户
    public int delUser(Integer userId);
//    设置用户状态
    public int setUserStstus(User user);
}

2、在dao中创建映射文件

RoleDao.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="com.ssm.dao.RoleDao">
    <select id="selectRoleList" resultType="Role">
        select roleId,roleName from t_role
    </select>
</mapper>

UserDao.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="com.ssm.dao.UserDao">
<!--    查询所有用户集合where语句-->
    <sql id="selectUserListWhere">
        <where>
            u.roleId=r.roleId
            <if test="keywords!=null and keywords!=''">
                and (u.userName like CONCAT('%',#{keywords},'%') or
                u.loginName like CONCAT('%',#{keywords},'%'))
            </if>
            <if test="userListRoleId!=null and userListRoleId!=''">
                and (u.roleId=#{userListRoleId})
            </if>
        </where>
    </sql>
    
<!--    查询所有用户集合列表-->
    <select id="selectUserList" parameterType="String" resultType="User">
        select u.*,r.roleName from t_user as u,t_role as r 
        <include refid="selectUserListWhere"/>
            order by registerTime desc 
    </select>
    
<!--    通过账号密码查询用户-->
    <select id="findUser" parameterType="String" resultType="User">
        select * from t_user where loginName=#{loginName} and password=#{password} limit 0,1
    </select>
    
<!--    通过userId查询用户-->
    <select id="getUserByUserId" parameterType="Integer" resultType="User">
        select * from t_user where userId=#{userId}
    </select>
    
<!--    通过登录账号查询用户-->
    <select id="getUserByLoginName" parameterType="String" resultType="User">
        select * from t_user where loginName=#{loginName} limit 0,1
    </select>
    
<!--    添加用户-->
    <insert id="addUser" parameterType="User">
        insert into t_user(
        userName,loginName,password,tel,registerTime,status,roleId
        )values(
        #{userName},#{loginName},#{password},#{tel},#{registerTime},#{status},#{roleId}
        )
    </insert>
    
<!--    更新用户-->
    <update id="updateUser" parameterType="User">
        update t_user 
        <set>
            registerTime=#{registerTime},
            status=#{status},
            <if test="userName != null and userName != ''">
                userName=#{userName},
            </if>
            <if test="password != null and password != ''">
                password=#{password},
            </if>
            <if test="tel != null and tel != ''">
                tel=#{tel},
            </if>
            <if test="roleId != null and roleId != ''">
                roleId=#{roleId},
            </if>
        </set>
        where userId=#{userId}
    </update>
    
<!--    删除用户-->
    <delete id="delUser" parameterType="Integer">
        delete from t_user where userId=#{userId}
    </delete>
    
<!--    设置用户状态-->
    <update id="setUserStatus" parameterType="User">
        update t_user set status=#{status} where userId=#{userId}
    </update>
</mapper>

三、实现service

1、在service中创建RoleService和UserService接口

RoleService

package com.ssm.service;

import com.ssm.po.Role;

import java.util.List;

public interface RoleService {
    public List<Role> findRoleList();
}

UserService

package com.ssm.service;

import com.ssm.po.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserService {
    //    查询所有用户
    public List<User> selectUserList(String keywords, Integer userListRoleId);
    //    通过账号密码查询
    public User findUser(String loginName,String password);
    //    通过用户id查询
    public User getUserByUserId(Integer userId);
    //    通过登录名查询(判断用户名是否存)
    public User getUserByLoginName(String loginName);
    //    添加用户
    public int addUser(User user);
    //    更新用户
    public int updateUser(User user);
    //    删除用户
    public int delUser(Integer userId);
    //    设置用户状态
    public int setUserStatus(User user);
}

2、创建接口实现类

RoleServiceImpl

package com.ssm.service.impl;

import com.ssm.dao.RoleDao;
import com.ssm.po.Role;
import com.ssm.service.RoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("roleService")
public class RoleServiceImpl implements RoleService {
    @Autowired
    private RoleDao roleDao;
    @Override
    public List<Role> findRoleList() {
        List<Role> roleList=roleDao.selectRoleList();
        return roleList;
    }
}

UserServiceImpl

package com.ssm.service.impl;

import com.ssm.dao.UserDao;
import com.ssm.po.User;
import com.ssm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("userService")
public class UserServiceImpl  implements UserService {
    @Autowired
    private UserDao userDao;
    
    @Override
    public List<User> selectUserList(String keywords, Integer userListRoleId) {
        List<User> userList=this.userDao.selectUserList(keywords,userListRoleId);
        return userList;
    }

    @Override
    public User findUser(String loginName, String password) {
        User user=this.userDao.findUser(loginName,password);
        return user;
    }

    @Override
    public User getUserByUserId(Integer userId) {
        return this.userDao.getUserByUserId(userId);
    }

    @Override
    public User getUserByLoginName(String loginName) {
        return this.userDao.getUserByLoginName(loginName);
    }

    @Override
    public int addUser(User user) {
        return this.userDao.addUser(user);
    }

    @Override
    public int updateUser(User user) {
        return this.userDao.updateUser(user);
    }

    @Override
    public int delUser(Integer userId) {
        return this.userDao.delUser(userId);
    }

    @Override
    public int setUserStatus(User user) {
        return this.userDao.setUserStatus(user);
    }
}

四、实现Controller

创建UserController

package com.ssm.web.controller;

import com.ssm.po.Role;
import com.ssm.po.User;
import com.ssm.service.RoleService;
import com.ssm.service.UserService;
import org.apache.tools.ant.taskdefs.condition.Http;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.List;

@Controller
public class UserController {
    @Autowired
    private UserService userService;
    @Autowired
    private RoleService roleService;

//    查询所有状态的用户集合
    @RequestMapping(value = "/findUserList.action")
    public String findUserList(String keywords, Integer userListRoleId, Model model){
        //获取角色列表
        List<Role> roleList=roleService.findRoleList();
        model.addAttribute("roleList",roleList);
        //获取用户列表
        List<User> userList=userService.selectUserList(keywords,userListRoleId);
        model.addAttribute("userList",userList);
        model.addAttribute("keywords",keywords);
        model.addAttribute("userListRoleId",userListRoleId);
        return "user/user_list";
    }

    //转向添加用户
    @RequestMapping(value = "/toAddUser.action")
    public String toAddUser(Model model){
        List<Role> roleList=roleService.findRoleList();
        model.addAttribute("roleList",roleList);
        return "user/add_user";
    }

    //判断登录账号是否已经存在
    @RequestMapping(value = "/checkLoginName.action")
    @ResponseBody
    public User checkLoginName(@RequestBody User user,Model model){
        User checkUser= userService.getUserByLoginName(user.getLoginName());
        if(checkUser!=null){
            return checkUser;
        }else {
            checkUser=new User();
            checkUser.setUserId(0);
            return checkUser;
        }
    }

    //添加用户
    @RequestMapping(value = "/addUser.action",method = RequestMethod.POST)
    public String addUser(User user,Model model){
        //获取角色列表
        List<Role> roleList=roleService.findRoleList();
        model.addAttribute("roleList",roleList);
        model.addAttribute("user",user);
        //检查登录账号是否已存在
        User checkUser=userService.getUserByLoginName(user.getLoginName());
        if(checkUser!=null){
            //已存在
            model.addAttribute("checkUserLoginNameMsg","该账号已存在");
            return "user/add_user";
        }else{
            Date date=new Date();
            user.setRegisterTime(date);
            user.setStatus("2");
            int rows=userService.addUser(user);
            if (rows>0){
                return "redirect:findUserList.action";
            }else {
                return "user/add_user";
            }
        }
    }

    //转向修改用户界面
    @RequestMapping(value = "/toEditUser.action")
    public String editUser(User user,Model model){
        //获取角色列表
        Date date=new Date();
        user.setRegisterTime(date);
        user.setStatus("2");
        int rows=userService.updateUser(user);
        if (rows>0){
            return "redirect:findUserList.action";
        }else {
            List<Role> roleList = roleService.findRoleList();
            model.addAttribute("roleList",roleList);
            model.addAttribute("user",user);
            return "user/edit_user";
        }
    }

    //删除用户
    @RequestMapping(value = "/delUser.action")
    @ResponseBody
    public User delUser(@RequestBody User user,Model model){
        int rows=userService.delUser(user.getUserId());
        if(rows>0){
            return user;
        }else{
            user.setUserId(0);//失败标记
            return user;
        }
    }

    //设置禁用
    @RequestMapping(value = "/disableUser.action")
    @ResponseBody
    public User disableUser(@RequestBody User user,Model model){
        int rows=userService.setUserStatus(user);
        if(rows>0){
            return user;
        }else{
            user.setUserId(0)
            return user;
        }
    }

    //启用用户
    @RequestMapping(value = "/enableUser.action")
    @ResponseBody
    public User enableUser(@RequestBody User user,Model model){
        int rows=userService.setUserStatus(user);
        if(rows>0){
            return user;
        }else{
            user.setUserId(0)
            return user;
        }
    }

    //用户登录
    @RequestMapping(value = "/login.action",method = RequestMethod.POST)
    public String login(String loginName, String password, Model model, HttpSession httpSession){
        User user=userService.findUser(loginName, password);
        if (user!=null){
            if(user.getStatus().equals("2")){
                httpSession.setAttribute("login_user",user);
                return "main";
            }else {
                model.addAttribute("msg","账号未启用或禁用,请联系管理员");
                return "login";
            }
        }
        model.addAttribute("msg","账号或密码错误");
        return "login";
    }
    
    //退出登录
    @RequestMapping(value = "/logout.action")
    public String logout(HttpSession session){
        session.invalidate();;
        return "login";
    }

}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhShy23

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值