基于SSM框架的图书管理系统(二)

实现管理员功能

分为超级管理员和普通管理员,超级管理员具有修改信息,删除信息等功能。普通管理员只能修改个人信息。

实体类

package com.po;

public class Admin {
	private Integer id;
	private String user;
	private String pwd;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getUser() {
		return user;
	}

	public void setUser(String user) {
		this.user = user;
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

}

Dao

package com.dao;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import com.po.Admin;
@Repository("adminDao")

public interface AdminDao {
	
	public Integer login(Admin admin);
	public List<Admin> findAdmin();
	public Integer addAdmin(Admin admin);
    public Integer selectuser(String user);
    public Integer delAdmin(Integer id);
    public Integer changeAdmin(Admin admin);
}

Mapper

<?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.dao.AdminDao">
	<select id="login"  resultType="Integer">
		SELECT id
		FROM
		admin
		WHERE
		user = #{user}
		AND pwd = #{pwd}
	</select>
    <select id="findAdmin" resultType="Admin">
    select id,user,pwd from admin 
    </select>
    <insert id="addAdmin" parameterType="Admin" keyProperty="id"
		useGeneratedKeys="true"><!-- useGenrate..不好使  -->
		INSERT admin (user, pwd)
		VALUES
		(#{user}, #{pwd})
	</insert>
	<select id="selectuser" resultType="Integer">
	select COUNT(id) from admin where user= #{user};
	</select>
    <delete id="delAdmin" parameterType="Integer">
		delete from admin where id = #{id}
	</delete>
	<update id="changeAdmin" parameterType="Admin">
		update admin
		<set>
			<if test="user != null and user != ''">
				user=#{user},
			</if>
			<if test="pwd != null and pwd != ''">
				pwd=#{pwd},
			</if>
		</set>
		where id = #{id}
	</update>
</mapper>
package com.controller;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import com.po.Admin;
import com.service.AdminService;

@Controller
public class AdminController {
	@Autowired
	private AdminService adminService;

	/**
	 * 登录
	 * 
	 * @param model
	 * @param session
	 * @param admin
	 * @return
	 */
	@RequestMapping("/login")
	public String login(Model model, HttpSession session, Admin admin) {
		Integer id = adminService.login(admin);
		if (id != null) {// 登录成功
			session.setAttribute("id", id);
			session.setAttribute("user", admin.getUser());
			return "redirect:/book";
		} else {// 账号或密码错误
			return "/pages/login.jsp?e=loginErr";
		}
	}

	/**
	 * 注销登录
	 * 
	 * @param session
	 * @return
	 */
	@RequestMapping("/logout")
	public String logout(HttpSession session) {
		/* 清除缓存信息 */
		session.invalidate();
		return "/pages/login.jsp";
	}

	@RequestMapping("/user")
	public String user(Model model, HttpSession session) {
		/*id 存到session中*/
		Integer id = (Integer) session.getAttribute("id");
		if (id != null) {
			if (id == 1) {
				List<Admin> list = adminService.findAdmin();
				model.addAttribute("list", list);
				return "/pages/admin.jsp";
			} else {
				/*非超级用户只能修改自己的密码查看不了其他admin的信息*/
				return "/pages/changePwd.jsp";
			}
		} else {
			return "/pages/login.jsp?e=loginErr";
		}
	}

	@RequestMapping("/addAdmin")
	public String addAdmin(Model model, Admin admin) {
		Integer n = 0;
		Integer ids;
		
		ids = adminService.selectuser(admin.getUser());
		
		if (ids == 0){
			try {
				
				n = adminService.addAdmin(admin);
			} catch (Exception e) {// 主键冲突
				model.addAttribute("e", "addForbid");
				return "redirect:/user";
			}

			if (n != 0) {// 成功
				model.addAttribute("e", "addOk");
			} else {// 失败
				model.addAttribute("e", "addErr");
			}
		} else {
			model.addAttribute("e", "addErrrepeat");
		}
		return "redirect:/user";
	}

	@RequestMapping("/delAdmin/{id}")
	public String delAdmin(Model model, @PathVariable Integer id) {
		if (id == 1) {// 禁止删除
			model.addAttribute("e", "delForbid");
		} else {
			Integer n = adminService.delAdmin(id);
			if (n != 0) {// 删除成功
				model.addAttribute("e", "delOk");
			} else {// 删除失败
				model.addAttribute("e", "delErr");
			}
		}
		return "redirect:/user";
	}
	/**
	 * 修改信息
	 * @param model
	 * @param admin
	 * @return
	 */
	@RequestMapping("/changeAdmin/{id}")
	public String changeAdmin(Model model, Admin admin) {
		if (admin.getId() == 1) {// 禁止修改
			model.addAttribute("e","supererro" );
			return "redirect:/user";
		} 
		Integer n = 0;
		try {
			n = adminService.changeAdmin(admin);
		} catch (Exception e) {// 主键冲突bug 不好使
			model.addAttribute("e", "changeForbid");
			return "redirect:/user";
		}
		if (n != 0) {// 成功
			model.addAttribute("e", "changeOk");
		} else {// 失败
			model.addAttribute("e", "changeErr");
		}
		return "redirect:/user";
	}
	
	@RequestMapping("/changePwd/{id}")
	public String changePwd(Model model, HttpSession session, Admin admin, String newPwd) {
		admin.setUser((String) session.getAttribute("user"));
		Integer id = adminService.login(admin);
		if (id != null) {// 密码正确
			admin.setPwd(newPwd);// 设置新密码
			adminService.changeAdmin(admin);
			model.addAttribute("e", "pwdOk");
		} else {// 密码错误
			model.addAttribute("e", "pwdErr");
		}
		return "redirect:/user";
	}

	
	
}

界面实现

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值