爆肝3个月,开发了适合入门学习java的10个用户管理系统的java框架(console、swing、servlet、structs、ssh、ssm、springboot)

10个用户管理框架demo系统

为什么要开发这个呢?
这次我梳理了下java的框架,看过好多教程和框架成品系统后,发现:
1、视频知识点太细、课程量太多,无法很好吸收
2、开源的框架成品业务功能都太系统,无法专注的来学习框架
所以,我把java从开始到进阶:
console–swing–servlet–structs–ssh–ssm–springboot
加上涉及到maven的,一共10个框架系统,一个一个都撸了出来,这10套框架的好处是:
1、比较系统,可以从入门到进阶,完成一个java核心知识的掌握
2、实操性比较强,可以直接在此基础上,扩展自己想实现的功能
3、每个框架涉及的功能模块极少,只有一个用户管理模块,但是也是个完整的系统,有登陆。这样可以让想学习框架的同学,集中精力去研究。

废话不多说,下面我开始一一介绍这些框架:

Console控制台用户管理系统

实现的功能截图:

请添加图片描述
请添加图片描述

实现的功能点:

1、登录
2、用户管理:
新增、修改、查询、删除用户
3、成绩管理:待扩展

核心代码:

Login.java:

package com.code2life.console;

import com.code2life.console.dao.DbConnection;
import com.code2life.console.dao.UserDao;
import com.code2life.console.entity.User;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Login {

    public static String username;
    public static String password;
    public static String realname;
    public static int age;
    public static int role;
    public static int id;
    public static List<User> userList;
    static Connection connection;
    static ResultSet resultSet;
    static PreparedStatement statement;
    static Scanner scanner=new Scanner(System.in);
    static UserDao userDao;

    public static void main(String[] args) throws Exception {
        connection = DbConnection.getConnect();

        System.out.println("欢迎到来!请先登录!");
        System.out.println("输入1进行登录");
        while(true){
            int i=scanner.nextInt();
            switch (i) {
                case 1:
                    login();
                    break;
                default:
                    System.out.println("输入有误,请重新输入:");
//                    System.exit(0);
                    break;
            }
        }
    }

    /**
     *  console系统首页
     */
    public static void home(){
        System.out.println("                                                                         ");
        System.out.println("                                                                         ");
        System.out.println("*****************欢迎登录console-system控制台系统  *************************");
        System.out.println("*                功能模块:                                               *");
        System.out.println("*                1.用户管理                                              *");
        System.out.println("*                2.成绩管理                                              *");
        System.out.println("*                操作:键盘输入1进入用户管理,2进入成绩管理,3退出系统           *");
        System.out.println("************************* ***********************************************");
    }

    private static void login() throws Exception {
        System.out.println("请输入用户名:");
        username=scanner.next();
        System.out.println("请输入密码:");
        password=scanner.next();
        userDao = new UserDao();
        // 查询用户名、密码
        User user = userDao.findUserByNameAndPassWord(username, password);
        if (user.getUserName() != null) {
            System.out.println("登录成功!");
            while(true){
                // 进入系统首页
                home();
                int i=scanner.nextInt();
                switch (i) {
                    case 1:
                        UserManage.query_user();
                        while (true){
                            int j=scanner.nextInt();
                            switch (j) {
                                case 1:
                                    UserManage.query_user();
                                    break;
                                case 2:
                                    UserManage.add_user();
                                    break;
                                case 3:
                                    UserManage.update_user();
                                    break;
                                case 4:
                                    UserManage.del_user();
                                    break;
                                case 5:
                                    break;
                                default:
                                    System.out.println("输入有误,请重新输入:");
                                    break;

                            }
                            break;
                        }
                        break;
                    case 2:
                        System.exit(0);
                    case 3:
                        System.exit(0);
                    default:
                        System.out.println("输入有误,请重新输入:");
//                    System.exit(0);
                        break;
                }
            }
        }else {
            System.out.println("登陆失败!请重新登录:");
            login();
        }

    }

}

UserManage.java

package com.code2life.console;

import com.code2life.console.dao.UserDao;
import com.code2life.console.entity.User;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

//用户管理模块逻辑类
public class UserManage {

    public static List<User> userList;
    public static String username;
    public static String password;
    public static String realname;
    public static int age;
    public static int role;
    public static int id;
    static Scanner scanner=new Scanner(System.in);
    static UserDao userDao;

    /**
     * 用户查询
     */
    public static void query_user(){
        userDao = new UserDao();
        userList = new ArrayList<User>();
        userList = userDao.queryUserList();
        System.out.println("---用户管理-----------------------------------------------------|");
        System.out.println("|id    |username    |password    |realname      |age      |role|");
        for (User user1 : userList) {
            System.out.println(user1.toString());
        }
        System.out.println("---1:查询用户  2:新增用户  3:编辑用户  4:删除用户------------------|");
    }

    /**
     * 用户新增
     */
    public static void add_user(){
        System.out.println("请输入新增的用户信息:");
        System.out.println("请输入用户名:");
        username=scanner.next();
        System.out.println("请输入密码:");
        password=scanner.next();
        System.out.println("请输入真名:");
        realname=scanner.next();
        System.out.println("请输入年龄:");
        age=Integer.parseInt(scanner.next());
        System.out.println("请输入角色:");
        role=Integer.parseInt(scanner.next());
        userDao = new UserDao();
        User add_user = new User(1,username, password, realname, age, role);
        userDao.addUserInfo(add_user);
    }

    /**
     * 用户修改
     */
    public static void update_user(){
        System.out.println("请输入修改的用户信息:");
        System.out.println("请输入要修改的用户ID:");
        id=Integer.parseInt(scanner.next());
        System.out.println("请输入新用户名:");
        username=scanner.next();
        System.out.println("请输入新密码:");
        password=scanner.next();
        System.out.println("请输入新真名:");
        realname=scanner.next();
        System.out.println("请输入新年龄:");
        age=Integer.parseInt(scanner.next());
        System.out.println("请输入新角色:");
        role=Integer.parseInt(scanner.next());
        User update_user = new User(id,username, password, realname, age, role);
        userDao = new UserDao();
        userDao.updateUser(update_user);
    }

    /**
     * 用户删除
     */
    public static void del_user(){
        System.out.println("请输入删除的用户信息:");
        System.out.println("请输入要删除的用户ID:");
        id=Integer.parseInt(scanner.next());
        userDao = new UserDao();
        userDao.deleteUser(id);
    }
    
}

Swing用户管理系统

实现的功能截图:

请添加图片描述
请添加图片描述

实现的功能点:

1、登录
2、用户管理:
新增、修改、查询、删除用户
3、成绩管理:待扩展

核心代码:

MainView.java(主窗口):

package com.code2life.swing.view;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Font;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import java.awt.SystemColor;
import javax.swing.JPanel;

public class MainView{

	private JFrame frame;
	private JButton btnNewButton;
	private JButton button;
	
	private final JPanel panel = new JPanel();
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MainView window = new MainView();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public MainView() {
		super();
		initialize();
	}
	
	public MainView(boolean reload) {
		initialize();
	}
	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setTitle("Swing管理系统");
		frame.setBounds(100, 100, 729, 517);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		frame.setVisible(true);
		panel.setBounds(10, 0, 691, 468);
		
		frame.getContentPane().add(panel);
		
		btnNewButton = new JButton("用户信息管理");
		button = new JButton("成绩信息管理");
		
		panel.setLayout(null);
		btnNewButton.setBounds(63, 97, 272, 58);
		panel.add(btnNewButton);
	
	
		
		btnNewButton.setFont(new Font("宋体", Font.PLAIN, 24));
		button.setBounds(387, 97, 272, 58);
		panel.add(button);
		
		
		button.setFont(new Font("宋体", Font.PLAIN, 24));
		
		
		JLabel lblNewLabel = new JLabel("Swing    管    理    系    统");
		lblNewLabel.setBounds(63, 20, 596, 40);
		panel.add(lblNewLabel);
		lblNewLabel.setForeground(SystemColor.text);
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setFont(new Font("宋体", Font.BOLD, 34));
		
		BtnListener btn = new BtnListener();
		button.addActionListener(btn);
		btnNewButton.addActionListener(btn);
		

	}
	
	public class BtnListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == btnNewButton) {
            	 // frame.dispose();
            	  UserView carInfoView = new UserView();
            } else if (e.getSource() == button) {
            	//RentalCarInfoView carInfoView = new RentalCarInfoView();
//                System.exit(0);
            }
        }
    }
}

UserView.java(用户管理窗口):

package com.code2life.swing.view;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import com.code2life.swing.entity.User;
import com.code2life.swing.dao.UserDao;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.JButton;

public class UserView {

	private JFrame frame;
	private JTable table;
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_2;
	private JTextField textField_3;
	private JTextField textField_4;
	private JTextField textField_5;
	JScrollPane scrollPane;
	private JButton button_1;
	private JButton button_2;
	private JButton button_3;
	private JButton button_4;
	private TableModel model;
	private UserDao userDao;
	
	/**
	 * Launch the application.
	 */
	private Vector<String> columnName = new Vector();

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					UserView window = new UserView();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public UserView() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setTitle("swing管理系统");
		frame.setBounds(100, 100, 567, 504);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		frame.setVisible(true);
		
		JPanel panel_1 = new JPanel();
		panel_1.setBounds(422, 10, 129, 455);
		frame.getContentPane().setLayout(null);
		frame.getContentPane().add(panel_1);
		panel_1.setLayout(null);
		
		JLabel label = new JLabel("ID");
		label.setBounds(38, 0, 54, 15);
		panel_1.add(label);
		
		textField = new JTextField();
		textField.setBounds(27, 20, 77, 21);
		panel_1.add(textField);
		textField.setColumns(10);
		
		JLabel lblNewLabel = new JLabel("用户名");
		lblNewLabel.setBounds(38, 50, 54, 15);
		panel_1.add(lblNewLabel);
		
		textField_1 = new JTextField();
		textField_1.setBounds(27, 70, 77, 21);
		panel_1.add(textField_1);
		textField_1.setColumns(10);
		
		JLabel lblNewLabel_1 = new JLabel("密码");
		lblNewLabel_1.setBounds(38, 100, 54, 15);
		panel_1.add(lblNewLabel_1);
		
		textField_2 = new JTextField();
		textField_2.setBounds(27, 120, 77, 21);
		panel_1.add(textField_2);
		textField_2.setColumns(10);
		
		JLabel lblNewLabel_2 = new JLabel("真实姓名");
		lblNewLabel_2.setBounds(38, 150, 54, 15);
		panel_1.add(lblNewLabel_2);
		
		textField_3 = new JTextField();
		textField_3.setBounds(27, 170, 77, 21);
		panel_1.add(textField_3);
		textField_3.setColumns(10);
		
		JLabel lblNewLabel_3 = new JLabel("年龄");
		lblNewLabel_3.setBounds(38, 200, 54, 15);
		panel_1.add(lblNewLabel_3);
		
		textField_4 = new JTextField();
		textField_4.setBounds(27, 220, 77, 21);
		panel_1.add(textField_4);
		textField_4.setColumns(10);

		JLabel lblNewLabel_4 = new JLabel("角色");
		lblNewLabel_4.setBounds(38, 250, 54, 15);
		panel_1.add(lblNewLabel_4);

		textField_5 = new JTextField();
		textField_5.setBounds(27, 270, 77, 21);
		panel_1.add(textField_5);
		textField_5.setColumns(10);
		
		// 操作按钮
		button_1 = new JButton("添加");
		button_1.setBounds(27, 307, 77, 23);
		panel_1.add(button_1);
		
		button_2 = new JButton("修改");
		button_2.setBounds(27, 340, 77, 23);
		panel_1.add(button_2);
		
		button_3 = new JButton("删除");
		button_3.setBounds(27, 373, 77, 23);
		panel_1.add(button_3);
		
		button_4 = new JButton("刷新");
		button_4.setBounds(27, 406, 77, 23);
		panel_1.add(button_4);
		
		scrollPane = new JScrollPane();
		scrollPane.setBounds(0, 0, 393, 455);
		frame.getContentPane().add(scrollPane);
		scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollPane.setToolTipText("用户信息");
		
		// 初始化表格数据
		columnName.add("用户ID");
		columnName.add("用户名");
		columnName.add("密码");
		columnName.add("真实姓名");
		columnName.add("年龄");
		columnName.add("角色");
		Vector rowData = new Vector();
		userDao = new UserDao();
		List<User> list = userDao.queryUserList();
		if (list != null && list.size() > 0) {
			for (int i=0;i<list.size();i++) {
				User user = list.get(i);
				Vector vector = new Vector();
				vector.add(user.getId());
				vector.add(user.getUserName());
				vector.add(user.getPassWord());
				vector.add(user.getRealName());
				vector.add(user.getAge());
				vector.add(user.getRole());

				rowData.add(vector);
			}
		}
		
		model = new DefaultTableModel(rowData, columnName) {
			// 设置表格中的数据不可以编辑
			public boolean isCellEditable(int r,int c) {
				return false;
			}
		};
		table = new JTable(model);
		scrollPane.setViewportView(table);
		// 只可单选
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		table.getTableHeader().setReorderingAllowed(false);
		// 表格监听事件
		table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

			@Override
			public void valueChanged(ListSelectionEvent e) {
				// TODO Auto-generated method stub
				if (!e.getValueIsAdjusting()) {
					//支持拖动多选
					// int[]rows = table.getSelectedRows();
					// int[]cols = table.getSelectedColumns();//选中的列
					//for (int i : rows) {
						//System.out.println("#方法一:\t" + table.getValueAt(i, 0) + "\t" + table.getValueAt(i, 1));
					//}
					//支持单选
					int row=table.getSelectedRow();//选中行
					int col=table.getSelectedColumn();//选中列
					System.out.println("方法一:"+table.getValueAt(row, 0)+"\t"+table.getValueAt(row,4));
					// 綁定值
					textField.setText(String.valueOf(table.getValueAt(row, 0)));
					textField_1.setText(String.valueOf(table.getValueAt(row, 1)));
					textField_2.setText(String.valueOf(table.getValueAt(row, 2)));
					textField_3.setText(String.valueOf(table.getValueAt(row, 3)));
					textField_4.setText(String.valueOf(table.getValueAt(row, 4)));

				}
			}
		});
		
		BtnListener btn = new BtnListener();
		button_3.addActionListener(btn);
		button_2.addActionListener(btn);
		button_1.addActionListener(btn);
		button_4.addActionListener(btn);
	}

	public class BtnListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			if (e.getSource() == button_1) {
				// 添加事件
				String username = textField_1.getText();
				String password = textField_2.getText().trim();
				String realname = textField_3.getText().trim();
				String t_age = textField_4.getText().trim();
				String t_role = textField_5.getText().trim();
				if (username == null || "".equals(username)) {
					JOptionPane.showMessageDialog(null, "用户名不能为空");
                    return;
				}
				if (password == null || "".equals(password)) {
					JOptionPane.showMessageDialog(null, "密码不能为空");
                    return;
				}
				if (realname == null || "".equals(realname)) {
					JOptionPane.showMessageDialog(null, "真实姓名不能为空");
                    return;
				}
				if (t_age == null || "".equals(t_age)) {
					JOptionPane.showMessageDialog(null, "年龄不能为空");
					return;
				}
				if (t_role == null || "".equals(t_role)) {
					JOptionPane.showMessageDialog(null, "角色不能为空");
					return;
				}
				int age = Integer.parseInt(t_age);
				int role = Integer.parseInt(t_role);
				User add_user = new User(1,username,password,realname,age,role);
				userDao = new UserDao();
				userDao.addUserInfo(add_user);
		        JOptionPane.showMessageDialog(null, "添加成功");

			} else if (e.getSource() == button_2) {
				// 修改事件
				int row = table.getSelectedRow();
				if (row <= 0) {
                    JOptionPane.showMessageDialog(null, "请选择一条记录再执行修改操作");
                    return;
				}
				int id = (int) table.getValueAt(row, 0);
				String username = textField_1.getText().trim();
				if (username == null || "".equals(username)) {
					JOptionPane.showMessageDialog(null, "用户名不能为空");
                    return;
				}
				String password = textField_2.getText().trim();
				String realname = textField_3.getText().trim();
				String t_age = textField_4.getText().trim();
				String t_role = textField_5.getText().trim();
				int age = 1;
				if (t_age != null || t_age != "") {
					age = Integer.parseInt(t_age);
				}
				int role = 1;
				if (t_role != null || t_role != "") {
					role = Integer.parseInt(t_role);
				}
				User update_user = new User(id,username,password,realname,age,role);
				userDao = new UserDao();
				userDao.updateUser(update_user);
		        JOptionPane.showMessageDialog(null, "修改成功");
			} else if (e.getSource() == button_3) {
				// 删除事件
				int row = table.getSelectedRow();
				if (row <= 0) {
                    JOptionPane.showMessageDialog(null, "请选择一条记录再执行删除操作");
                    return;
				}
				int id = (int) table.getValueAt(row, 0);
				userDao = new UserDao();
				userDao.deleteUser(id);
		        JOptionPane.showMessageDialog(null, "删除成功");
			} else if (e.getSource() == button_4) {
				// 刷新表格数据事件
				Object carInfos[][] = {};
				Vector rowData = new Vector();
				userDao = new UserDao();
				List<User> list = userDao.queryUserList();
				if (list != null && list.size() > 0) {
					for (int i = 0; i < list.size(); i++) {
						User user = list.get(i);
						Vector vector = new Vector();
						vector.add(user.getId());
						vector.add(user.getUserName());
						vector.add(user.getPassWord());
						vector.add(user.getRealName());
						vector.add(user.getAge());
						vector.add(user.getRole());

						rowData.add(vector);
					}
				}
				model = new DefaultTableModel(rowData, columnName) {
					// 设置表格中的数据不可以编辑
					public boolean isCellEditable(int r,int c) {
						return false;
					}
				};
				table = new JTable(model);
				scrollPane.setViewportView(table);
				// 表格监听事件
				table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

					@Override
					public void valueChanged(ListSelectionEvent e) {
						// TODO Auto-generated method stub
						if (!e.getValueIsAdjusting()) {
							//支持拖动多选
							// int[]rows = table.getSelectedRows();
							// int[]cols = table.getSelectedColumns();//选中的列
							//for (int i : rows) {
								//System.out.println("#方法一:\t" + table.getValueAt(i, 0) + "\t" + table.getValueAt(i, 1));
							//}
							//支持单选
							int row=table.getSelectedRow();//选中行
							int col=table.getSelectedColumn();//选中列
							System.out.println("方法一:"+table.getValueAt(row, 0)+"\t"+table.getValueAt(row,4));
							// 綁定值
							textField.setText(String.valueOf(table.getValueAt(row, 0)));
							textField_1.setText(String.valueOf(table.getValueAt(row, 1)));
							textField_2.setText(String.valueOf(table.getValueAt(row, 2)));
							textField_3.setText(String.valueOf(table.getValueAt(row, 3)));
							textField_4.setText(String.valueOf(table.getValueAt(row, 4)));

						}
					}
				});
				
			}
		}
	}
}

Servlet用户管理系统

实现的功能截图:

请添加图片描述
请添加图片描述

实现的功能点:

1、登录
2、用户管理:
新增、修改、查询、删除用户
3、成绩管理:待扩展

核心代码:

用户列表Servlet
UserViewServlet.java:

package com.code2life.servlet.view;


import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.code2life.servlet.dao.UserDao;
import com.code2life.servlet.entity.User;

/**
 * 用户列表servlet类
 * @author whm
 *
 */
public class UserViewServlet extends HttpServlet {
	
	private static final long serialVersionUID = 1L;
	private static UserDao userDao;
 
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("进来了UserView。。。。。");
		int id = Integer.parseInt(request.getParameter("id"));
		// 查询当前用户数据
		User user = queryUserByID(id);
		if (user == null) {
			response.sendRedirect(request.getContextPath()+"/user_list.jsp");
		}else {
			request.setAttribute("user", user);
			request.getRequestDispatcher("/user_view.jsp").forward(request, response);
		}
		
	}
	
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doPost(req, resp);
	}


    /**
     * 查看当前用户信息
     * @param id
     * @return
     */
	protected User queryUserByID(Integer id){
		System.out.println("进来了queryUserByID。。。。。");
		// 查询数据库,验证登录用户名密码
		userDao = new UserDao();
		User user = userDao.findUserByPK(id);
		return user;
	}
 
}

用户新增Servlet
UserAddServlet.java:

package com.code2life.servlet.view;


import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.code2life.servlet.dao.UserDao;
import com.code2life.servlet.entity.User;

/**
 * 用户列表servlet类
 * @author whm
 *
 */
public class UserAddServlet extends HttpServlet {
	
	private static final long serialVersionUID = 1L;
	private static UserDao userDao;
 
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("进来了UserAdd。。。。。");
		String userName = request.getParameter("userName");
		String passWord = request.getParameter("passWord");
		String realName = request.getParameter("realName");
		int age = Integer.parseInt(request.getParameter("age"));
		int role = Integer.parseInt(request.getParameter("role"));
		User user = new User(1, userName, passWord, realName, age, role);
		//新增用户
		int result = addUser(user);
		if (result <= 0) {
			response.sendRedirect(request.getContextPath()+"/user_add.jsp");
		}else {
			//新增数据后查询
			List<User> userList = new UserDao().queryUserList(); 
			request.setAttribute("userList", userList);
			request.getRequestDispatcher("/user_list.jsp").forward(request, response);
		}
		
	}
	
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doPost(req, resp);
	}


    /**
     * 新增用户
     */
	protected int addUser(User user) {
		System.out.println("进来了userAdd。。。。。");
		// 查询数据库,验证登录用户名密码
		userDao = new UserDao();
		int result = userDao.addUserInfo(user);
		return result;
	}
 
}

structs用户管理系统

实现的功能截图:

请添加图片描述
请添加图片描述

实现的功能点:

1、登录
2、用户管理:
新增、修改、查询、删除用户
3、成绩管理:待扩展

核心代码:

用户列表action
SelectUserAction.java:

package com.code2life.structs.action.operation;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.code2life.structs.action.SuperAction;
import com.code2life.structs.dao.UserDao;
import com.code2life.structs.entity.User;
import com.opensymphony.xwork2.ActionContext;

public class SelectUserAction extends SuperAction {
    /**
     * 
     */
    private static final long serialVersionUID = 117714108782554234L;
    private String userName;
    
    public HttpServletResponse response;
    
    public HttpServletRequest  request;

    @Override
    public String execute() {
    	request = (HttpServletRequest)ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);
    	System.out.println("userName:");
    	System.out.println(userName);
        //查询指定用户信息
        List<User> selectList = new UserDao().findUserByName(userName);
        mapRequest.put("selectList", selectList);
        System.out.println("selectList.size():");
        System.out.println(selectList.size());
//        request.setAttribute("selectList", selectList);
        
        if(!selectList.equals(null)) {
            return SUCCESS;            
        } else {
            return ERROR;
        }
    }
    
    public String selectAllUser() {
        //查询所有用户信息
        List<User> selectAllList = new UserDao().queryUserList();
        mapRequest.put("selectList", selectAllList);
        return SUCCESS;
    }

    public String toSelectPage() {
        return "toSelectPage";
    }

	public String getUserName() {
		return userName;
	}

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

}

SSH用户管理系统

实现的功能截图:

请添加图片描述
请添加图片描述

实现的功能点:

1、登录
2、用户管理:
新增、修改、查询、删除用户
3、成绩管理:待扩展

核心代码:

UserAction.java

package com.code2life.ssh.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

import com.code2life.ssh.entity.User;
import com.code2life.ssh.util.Constant;
import com.code2life.ssh.service.UserService;
import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport{
	private UserService userService;
	private Map<String, Object> jsonMap=null;
	public void setJsonMap(Map<String, Object> jsonMap) {
		this.jsonMap = jsonMap;
	}
	public Map<String, Object> getJsonMap() {
		return jsonMap;
	}
	public void setUserService(UserService userService){
		this.userService=userService;
	}
	public UserService getUserService(){
		return userService;
	}
	
	/**
	 * 登录
	 * @return
	 */
	public String login() {
		System.out.println("inLogin!!!");
		HttpServletRequest request = ServletActionContext.getRequest(); 
		HttpSession session = request.getSession();
		String account = request.getParameter("account");  
        String password = request.getParameter("password"); 
		if(userService.loginCheck(account,password)==true){
			Integer userId=userService.loadUserId(account);
			session.setAttribute("userId", userId);
//			UserInfo userInfo=userInfoService.getUserInfoByUserId(userId);
//			userInfo.setUserRecentLoginTime(new Date());
//			userInfoService.update(userInfo);
			return Constant.SUCCESS;
		}else {
			return Constant.FAIL;
		}
	}
	
	/**
	 * 校验密码
	 * @return
	 */
	public String passwordCheck(){
		HttpServletRequest request = ServletActionContext.getRequest(); 
		jsonMap=new HashMap<String, Object>();
		String password=request.getParameter("password");
		String account=request.getParameter("account");
		Boolean match=userService.loginCheck(account,password);
		jsonMap.put("valid", match);
		return "jsonMap";
	}
	
	/**
	 * 新增用户
	 */
	public void createUser(){
		HttpServletRequest request = ServletActionContext.getRequest(); 
		HttpSession session = request.getSession();
		jsonMap=new HashMap<String,Object>();
		Integer userId=(Integer)session.getAttribute("userId");
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		String realname=request.getParameter("realname");
		Integer age=Integer.valueOf(request.getParameter("age"));
		Integer role=Integer.valueOf(request.getParameter("role"));
		userService.saveUser(username, password, realname, age, role);
	}
	
	/**
	 * 获取总的分页数
	 * @return
	 */
	public String getUserTotalPages(){
		HttpServletRequest request = ServletActionContext.getRequest(); 
		HttpSession session = request.getSession();
		jsonMap=new HashMap<String,Object>();
		Integer userId=(Integer)session.getAttribute("userId");
		Integer totalPages=userService.getUserTotalPages(userId);
		System.out.println("userId:"+userId+"totalPages"+totalPages);
		jsonMap.put("totalPages", totalPages);
		return "jsonMap";
	}
	
	/**
	 * 获取用户信息
	 * @return
	 */
	public String getUser(){
		HttpServletRequest request = ServletActionContext.getRequest(); 
		HttpSession session = request.getSession();
		jsonMap=new HashMap<String,Object>();
		Integer pageNum=Integer.parseInt(request.getParameter("Page"));
		Integer userId=(Integer)session.getAttribute("userId");
		List<User> userList=userService.getUserList(userId, pageNum, Constant.USER_SIZE);
	    Integer showSize=userList.size();
	    jsonMap.put("showSize", showSize);	
	    jsonMap.put("userList", userList);
		return "jsonMap";
	}
	
	/**
	 * 编辑用户
	 */
	public String updateUser(){
		HttpServletRequest request = ServletActionContext.getRequest(); 
		Integer userId=Integer.valueOf(request.getParameter("edit_user_id"));
		String username=(String)request.getParameter("edit_user_name");
		String password=(String)request.getParameter("edit_pass_word");
		String realname=(String)request.getParameter("edit_real_name");
		Integer age=Integer.valueOf(request.getParameter("edit_age"));
		Integer role=Integer.valueOf(request.getParameter("edit_role"));
		
		System.out.println(userId+" "+username+" "+password);
		userService.updateUser(userId,username,password,realname,age,role);
		return Constant.SUCCESS;
	}
	
	public String getUserInfo(Integer userId){
		HttpServletRequest request = ServletActionContext.getRequest(); 
		HttpSession session = request.getSession();
		jsonMap = new HashMap<String, Object>();  
		System.out.println("!!!22222"+userId);
		User userInfo= userService.getUserByUserId(userId);
		jsonMap.put("userInfo", userInfo);
		return "jsonMap";
	}
	
	public String deleteUser(){
		HttpServletRequest request = ServletActionContext.getRequest(); 
		HttpSession session = request.getSession();
		Integer userId=(Integer)Integer.valueOf(request.getParameter("id"));
		System.out.println("!!!333333333"+userId);
		userService.deleteUser(userId);
		return Constant.SUCCESS;
	}
	
	public String execute(){
		System.out.println("111222333");
		return Constant.SUCCESS;
	}
}

SSH+Maven用户管理系统

实现的功能截图:

请添加图片描述
请添加图片描述

实现的功能点:

1、登录
2、用户管理:
新增、修改、查询、删除用户
3、成绩管理:待扩展

核心代码:

和SSH框架的代码差不多,可复用

SSM用户管理系统

实现的功能截图:

请添加图片描述
请添加图片描述

实现的功能点:

1、登录
2、用户管理:
新增、修改、查询、删除用户
3、成绩管理:待扩展

核心代码:

这里使用了注解,可以看下:
UserController.java:

package com.code2life.ssm.controller;

import java.lang.reflect.Method;
import java.util.List;

import com.code2life.ssm.domain.User;
import com.code2life.ssm.service.AllService;
import com.code2life.ssm.vo.Page;
import com.code2life.ssm.vo.RespEntity;
import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

@Controller
@Transactional
public class UserController extends BaseAction {

    @Autowired
    private AllService allService;

    /**
     * 跳转到用户管理页面
     *
     * @param model
     * @return
     */
    @RequestMapping("/goUserMange")
    public ModelAndView goUserMange(Model model) {
        ModelAndView mav = new ModelAndView("user-manage");
        return mav;
    }

    /**
     * 查询用户列表
     *
     * @param page
     * @return
     */
    @RequestMapping(value = "/user/list", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String getUserList(Page page) {
        int count = allService.getUserService().countUser();
        List<User> list = allService.getUserService().queryUserList(page);
        page.caculatestart();
        RespEntity respEntity = new RespEntity(0, "成功");
        respEntity.setCount(count);
        respEntity.setData(list);
        Gson gson = new Gson();
        return gson.toJson(respEntity);
    }

    /**
     * 删除用户信息
     * @param id
     * @return
     */
    @RequestMapping("/user/delete")
    public ModelAndView delstu(Integer id) {
        allService.getUserService().deleteUser(id);
        ModelAndView mav = new ModelAndView("user-manage");
        return mav;
    }

    /**
     * 跳转到修改页面,初始化数据
     * @param id
     * @param model
     * @return
     */
    @RequestMapping("/goUpdateUser")
    public String goUpdate(Integer id,Model model) {
        User user = allService.getUserService().queryUserByPK(id);
        model.addAttribute("user",user);
        return "user-update";
    }

    /**
     * 修改用户信息
     * @param id
     * @param user
     * @return
     */
    @RequestMapping(value = "/user/update", method = RequestMethod.POST)
    public String updateUser(Integer id, User user) {
        user.setId(id);
        allService.getUserService().updateUser(user);
        ModelAndView mav = new ModelAndView("user-manage");
        return "user-manage";
    }

    /**
     * 跳转到新增用户界面
     * @param model
     * @return
     */
    @RequestMapping("/goAddUser")
    public ModelAndView goAddUser(Model model) {
        ModelAndView mav = new ModelAndView("user-add");
        return mav;
    }

    /**
     * 新增用户
     * @param user
     * @return
     */
    @RequestMapping(value = "/user/add")
    public String addUserInfo(User user) {
        this.getAllService().getUserService().addUserInfo(user);
        return "user-manage";
    }
}

SSM+Maven用户管理系统

实现的功能截图:

请添加图片描述
请添加图片描述

实现的功能点:

1、登录
2、用户管理:
新增、修改、查询、删除用户
3、成绩管理:待扩展

核心代码:

和SSM的代码差不多,可以服用

springBoot用户管理系统

实现的功能截图:

请添加图片描述
请添加图片描述

实现的功能点:

1、登录
2、用户管理:
新增、修改、查询、删除用户
3、成绩管理:待扩展

核心代码:

UserApi.java:

package com.code2life.sp.api;

import com.code2life.sp.domain.User;
import com.code2life.sp.service.UserService;
import com.code2life.sp.utils.PageBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/user")
public class UserApi {

    @Autowired
    private UserService userService;

    /**
     * 跳转到用户管理页面
     *
     * @param model
     * @return
     */
    /**
     * 用户管理列表
     * @return
     */
    @RequestMapping("index")
    public String index(ModelMap mp, PageBean pageBean){
        pageBean = userService.findByPageBean(pageBean);
        mp.put("pageBean", pageBean);
        return "user/index";
    }

    /**
     * 根据id删除一条求用户记录
     * @return
     */
    @RequestMapping("delete")
    @ResponseBody
    public Boolean deleteUser(String id ){
        return userService.deleteUser(Integer.parseInt(id));
    }
    /**
     * @description: 编辑用户时回显用户信息
     * @return String
     */
    @RequestMapping("view")
    @ResponseBody
    public User viewUser(String id){
        User user = userService.queryUserByPK(Integer.parseInt(id));
        return user;
    }
    /**
     * @description: 更新用户记录
     * @return boolean
     */
    @RequestMapping("update")
    @ResponseBody
    public boolean updateUser(User tUser){
        boolean result = userService.updateUser(tUser);
        if(result){
            return true;
        }else{
            return false;
        }
    }

    /**
     * 验证账号是否重复
     * @return boolean
     */
    @RequestMapping("findIsReAccouont")
    @ResponseBody
    public boolean findIsReAccouont(String account){
        boolean bool = userService.findIsReAccouont(account);
        return bool;
    }

    /**
     * 新增用户
     * @param user
     * @return
     */
    @RequestMapping(value = "add")
    @ResponseBody
    public boolean addUserInfo(User user) {
        return userService.addUserInfo(user);
    }
}

数据库表映射类
UserMapper.java

package com.code2life.sp.dao;

import com.code2life.sp.domain.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(User record);

    int insertSelective(User record);

    User selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);

    /**  注意: 以下为自己生成的方法,防止覆盖 */

    List<User> findByPageBean();
    /**
     * 查询用户数据量
     * @return
     */
    int countUser();

    /**
     * 根据用户名、密码查询
     * @param userName
     * @param passWord
     * @return
     */
    List<User> findUserByNameAndPassWord(@Param("userName") String userName, @Param("passWord") String passWord);

    /**
     * 校验账号是否已经存在
     * @param account
     * @return
     */
    Integer findIsReAccouont(String account);

}

springBoot+vue前后端分离用户管理系统

实现的功能截图:

请添加图片描述
请添加图片描述

实现的功能点:

1、登录
2、用户管理:
新增、修改、查询、删除用户
3、成绩管理:待扩展

核心代码:

springBoot后端:
UserApi.java:

package com.code2life.admin.api;

import com.code2life.admin.bcrypt.BCryptPasswordEncoder;
import com.code2life.admin.domain.User;
import com.code2life.admin.service.UserService;
import com.code2life.admin.utils.JacksonUtil;
import com.code2life.admin.utils.ResponseUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;

import static com.code2life.admin.utils.SysResponseCode.*;

/**
 * @Author: wen
 * @Date: 2021/3/19 11:11
 * @Description: 用户管理接口控制器
 * @Version: 1.0
 */
@RestController
@RequestMapping("/sys/user")
@Api(value = "系统用户操作接口API")
@CrossOrigin
public class UserApi {

    @Autowired
    private UserService userService;

    /**
     * 用户信息校验
     * @param user
     * @return
     */
    private Object validate(User user) {
        if(user==null){
            return ResponseUtil.vueBadArgument();
        }
        if(StringUtils.isEmpty(user.getUserName())) {
            return ResponseUtil.vueBadArgument();
        }
        String name = user.getRealName();
        if (StringUtils.isEmpty(name)) {
            return ResponseUtil.vueBadArgument();
        }
        String password = user.getPassWord();
        if (StringUtils.isEmpty(password) || password.length() < 6) {
            return ResponseUtil.vueFail(SYS_INVALID_PASSWORD, "管理员密码长度不能小于6");
        }
        return null;
    }


    /**
     * 查询系统用户列表
     * @param userName
     * @param page
     * @param limit
     * @return
     */
    @ApiOperation(value = "查询用户列表接口", notes = "code返回0时请求成功")
    @ApiResponses(value = {
            @ApiResponse(code = 0, message = "请求成功"),
            @ApiResponse(code = -1, message = "请求错误")
    })
    @GetMapping("/list")
    public Object list(String userName, @RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "10") Integer limit){
        List<User> list = userService.querySelective(userName, page, limit);
        return ResponseUtil.vueOkList(list);
    }

    /**
     * 新增系统用户
     * @param body
     * @return
     */
    @PostMapping("/add")
    public Object addSysUser(@RequestBody String body){
        User user = JacksonUtil.parseObject(body, "user", User.class);
        //用户数据校验及处理
        Object error = validate(user);
        if (error != null) {
            return error;
        }

        String userName = user.getUserName();
        List<User> userList = userService.findByUserCode(userName);
        if(userList!=null && userList.size()>0){
            return ResponseUtil.vueFail(SYS_CODE_EXIST, "系统用户已经存在");
        }
        String rawPassword = user.getPassWord();
//        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
//        String encodedPassword = encoder.encode(rawPassword);
        user.setPassWord(rawPassword);
        userService.add(user);

        return ResponseUtil.vueOk(user);
    }

    /**
     * 查看用户详情信息
     * @param id
     * @return
     */
    @GetMapping("/view")
    public Object view(@NotNull Integer id){
        User sysUser = userService.findById(id);
        return ResponseUtil.vueOk(sysUser);
    }

    /**
     * 删除用户
     * @param user
     * @return
     */
    @PostMapping("/delete")
    public Object delete(@RequestBody User user) {
        if(user==null || StringUtils.isEmpty(user.getId())){
            return ResponseUtil.vueBadArgument();
        }
        userService.deleteById(user.getId());
        return ResponseUtil.vueOk();

    }

    /**
     * 更新用户信息
     * @param body
     * @return
     */
    @PostMapping("/update")
    public Object update(@RequestBody String body) {
        User user = JacksonUtil.parseObject(body, "user", User.class);
        userService.updateById(user);
        return ResponseUtil.vueOk();
    }

}

Vue前端:
User.js:

import request from '@/utils/request'

export function fetchList(query) {
  return request({
    url: '/sys/user/list',
    method: 'get',
    params: query
  })
}

export function createSysUser(data) {
  return request({
    url: '/sys/user/add',
    method: 'post',
    data
  })
}

export function deleteSysUser(data) {
  return request({
    url: '/sys/user/delete',
    method: 'post',
    data
  })
}

export function updateSysUser(data) {
  return request({
    url: '/sys/user/update',
    method: 'post',
    data
  })
}

// 获取用户拥有权限
export function getUserRoles(data) {
  return request({
    url: '/sys/user/roles',
    method: 'get',
    params: { id: data }
  })
}

export function getMallUserList(token) {
  return request({
    url: '/mall/user/list',
    method: 'get',
    params: { token }
  })
}

export function addMallUser() {
  return request({
    url: '/mall/user/add',
    method: 'post'
  })
}


用户管理页面:
index.vue:

<template>
  <div class="app-container">
    <div class="filter-container">
      <el-input v-model="listQuery.userName" :placeholder="$t('user.name')" style="width: 200px;" class="filter-item"
                @keyup.enter.native="handleFilter"/>

      <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">
        {{ $t('table.search') }}
      </el-button>
      <el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-edit"
                 @click="handleCreate">
        {{ $t('table.add') }}
      </el-button>
      <el-button v-waves :loading="downloadLoading" class="filter-item" type="primary" icon="el-icon-download"
                 @click="handleDownload">
        {{ $t('table.export') }}
      </el-button>
    </div>

    <el-table
      :key="tableKey"
      v-loading="listLoading"
      :data="list"
      border
      fit
      highlight-current-row
      style="width: 100%;">
      <!--      @sort-change="sortChange"-->

      <el-table-column :label="$t('table.id')" prop="id" sortable="custom" width="80">
        <template slot-scope="scope">
          <span>{{ scope.row.id }}</span>
        </template>
      </el-table-column>
      <el-table-column :label="$t('common.usercode')" width="80px" align="center">
        <template slot-scope="scope">
          <span>{{ scope.row.userName }}</span>
        </template>
      </el-table-column>
      <el-table-column :label="$t('common.username')" min-width="100px" align="center">
        <template slot-scope="scope">
          <span>{{ scope.row.realName}}</span>
        </template>
      </el-table-column>
      <el-table-column :label="$t('user.age')" width="135px" align="center">
        <template slot-scope="scope">
          <span>{{ scope.row.age}}</span>
        </template>
      </el-table-column>
      <el-table-column :label="$t('user.roles')" class-name="status-col" width="80">
        <template slot-scope="scope">
          <el-tag :type="scope.row.role | statusFilter">
            {{scope.row.role | formatStatus}}
          </el-tag>
        </template>
      </el-table-column>
      <el-table-column :label="$t('table.actions')" align="center" width="200" class-name="small-padding fixed-width">
        <template slot-scope="{row}">
          <el-button type="primary" size="mini" @click="handleUpdate(row)">
            {{ $t('table.edit') }}
          </el-button>
          <el-button v-if="row.status!='deleted'" size="mini" type="danger" @click="handleDelete(row)">
            {{ $t('table.delete') }}
          </el-button>
        </template>
      </el-table-column>
    </el-table>

    <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit"
                @pagination="getList"/>

    <!--此处为用户信息弹出框-->
    <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="578px">
      <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="100px"
               style="margin-left:20px;">
        <el-form-item :label="$t('common.usercode')" prop="userName">
          <el-input v-model="temp.userName"/>
        </el-form-item>
        <el-form-item :label="$t('common.username')" prop="realName">
          <el-input v-model="temp.realName"/>
        </el-form-item>
        <el-form-item :label="$t('user.password')" prop="passWord">
          <el-input v-model="temp.passWord"/>
        </el-form-item>
        <el-form-item :label="$t('user.age')">
          <el-input v-model="temp.age" style="margin-top:8px;"/>
        </el-form-item>
        <el-form-item :label="$t('user.roles')">
          <el-select v-model="temp.role" class="filter-item" placeholder="Please select">
            <el-option v-for="item in ageMap" :key="item.key" :label="item.display_name" :value="item.key"/>
          </el-select>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">
          {{ $t('table.cancel') }}
        </el-button>
        <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">
          {{ $t('table.confirm') }}
        </el-button>
      </div>
    </el-dialog>

    <el-dialog :visible.sync="dialogPvVisible" title="Reading statistics">
      <el-table :data="pvData" border fit highlight-current-row style="width: 100%">
        <el-table-column prop="key" label="Channel"/>
        <el-table-column prop="pv" label="Pv"/>
      </el-table>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="dialogPvVisible = false">{{ $t('table.confirm') }}</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
  import {fetchList, deleteSysUser, createSysUser, updateSysUser, getUserRoles} from '@/api/user'
  import waves from '@/directive/waves' // Waves directive
  import Pagination from '@/components/Pagination' // Secondary package based on el-pagination

  const ageMap = [
    {key: 0, display_name: '普通用户'},
    {key: 1, display_name: '管理员'},
  ]
  const statusMap = [
    {key: 1, display_name: '生效'},
    {key: 0, display_name: '锁定'},
    {key: 2, display_name: '注销'}
  ]

  export default {
    name: 'User',
    components: {Pagination},
    directives: {waves},
    filters: {
      statusFilter(status) {
        const statusMap = {
          1: 'success',
          0: 'warning',
        }
        return statusMap[status]
      },
      formatStatus(status) {
        const statusMap = {
          1: '管理员',
          0: '普通用户',
        }
        return statusMap[status]
      },
    },
    data() {
      return {
        tableKey: 0,
        list: null,
        total: 0,
        roleOptions: null,
        listLoading: true,
        listQuery: {
          page: 1,
          limit: 10,
          userName: undefined,

        },
        ageMap,
        statusOptions: ['0', '1', '2'],
        showValid: true,
        temp: {
          id: undefined,
          userName: '',
          realName: '',
          passWord: '',
          age: '',
          role: 0
        },
        userDataForm: {
          user: null
        },
        dialogFormVisible: false,
        dialogStatus: '',
        textMap: {
          update: 'Update',
          create: 'Create'
        },
        dialogPvVisible: false,
        pvData: [],
        rules: {
          usercode: [{required: true, message: 'usercode is required', trigger: 'blur'}],
          username: [{required: true, message: 'username is required', trigger: 'blur'}],
          password: [{required: true, message: 'password is required', trigger: 'blur'}],
          status: [{required: true, message: 'status is required', trigger: 'change'}]
        },
        downloadLoading: false,
        updateVisible: false
      }
    },
    created() {
      this.getList()
    },
    methods: {
      formatRole(column) {
        return column == '1' ? "管理员" : column == '0' ? "普通户" : "未知";
      },
      getList() {
        this.listLoading = true
        fetchList(this.listQuery).then(response => {
          console.info(JSON.stringify(response))
          this.list = response.data.list
          this.total = response.data.total

          // Just to simulate the time of the request
          setTimeout(() => {
            this.listLoading = false
          }, 1.5 * 1000)
        })
          .catch(() => {
            this.list = []
            this.total = 0
            this.listLoading = false
          })
      },
      handleFilter() {
        this.listQuery.page = 1
        this.getList()
      },
      resetTemp() {
        this.temp = {
          id: undefined,
          userName: '',
          realName: '',
          passWord: '',
          age: '',
          role: 0
        },
          this.userDataForm = {
            user: null
          }
      },
      handleCreate() {
        this.resetTemp()
        this.dialogStatus = 'create'
        this.dialogFormVisible = true
        this.updateVisible = false;
        this.$nextTick(() => {
          this.$refs['dataForm'].clearValidate()
        })
      },
      createData() {
        this.$refs['dataForm'].validate((valid) => {
          if (valid) {
            this.userDataForm.user = this.temp;
            console.info(JSON.stringify(this.userDataForm))
            createSysUser(this.userDataForm)
              .then(response => {
                console.info(JSON.stringify(response.data))
                console.info(JSON.stringify(this.list))

                this.list.unshift(response.data)
                this.dialogFormVisible = false
                this.$notify({
                  title: '成功',
                  message: '创建成功',
                  type: 'success',
                  duration: 2000
                })
              })
              .catch(response => {
                console.info(JSON.stringify(response))
                this.$notify.error({
                  title: '失败',
                  message: response.msg,
                  duration: 2000
                })
              })
          }
        })
      },
      handleUpdate(row) {
        this.temp = Object.assign({}, row) // copy obj
        console.info(JSON.stringify(this.temp))
        this.userDataForm = Object.assign({}, row)
        this.dialogStatus = 'update'
        this.dialogFormVisible = true
        this.$nextTick(() => {
          this.$refs['dataForm'].clearValidate()
        })

      },
      updateData() {
        this.$refs['dataForm'].validate((valid) => {
          if (valid) {
            const tempData = Object.assign({}, this.temp)
            const tempUserData = Object.assign({}, this.userDataForm);
            tempUserData.user = tempData;
            updateSysUser(tempUserData).then(() => {
              for (const v of this.list) {
                if (v.id === this.temp.id) {
                  const index = this.list.indexOf(v)
                  this.list.splice(index, 1, this.temp)
                  break
                }
              }
              this.dialogFormVisible = false
              this.updateVisible = true;
              this.$notify({
                title: '成功',
                message: '更新成功',
                type: 'success',
                duration: 2000
              })
            })
          }
        })
      },
      handleDelete(row) {
        deleteSysUser(row)
          .then(response => {
            this.$notify({
              title: '成功',
              message: '删除成功',
              type: 'success',
              duration: 2000
            })
            const index = this.list.indexOf(row)
            this.list.splice(index, 1)
          })
          .catch(response => {
            this.$notify.error({
              title: '失败',
              message: response.msg,
              duration: 2000
            })
          })
      },
      handleFetchPv(pv) {
        fetchPv(pv).then(response => {
          this.pvData = response.data.pvData
          this.dialogPvVisible = true
        })
      },
      handleDownload() {
        this.downloadLoading = true
        import('@/vendor/Export2Excel').then(excel => {
          const tHeader = ['用户工号', '用户名称', '拥有角色', '用户年龄']
          const filterVal = ['userName', 'realName', 'role', 'age']
          const data = this.formatJson(filterVal, this.list)
          excel.export_json_to_excel({
            header: tHeader,
            data,
            filename: 'table-list'
          })
          this.downloadLoading = false
        })
      },

      formatJson(filterVal, jsonData) {
        return jsonData.map(v => filterVal.map(j => {
          if (j === 'role') {
            return this.formatRole(v[j])
          } else {
            return v[j]
          }
        }))
      },

    }
  }
</script>

写在最后

爆肝4万多字,写完了这10套系统介绍,觉得不错的伙伴记得一键三连!
由于代码不能都贴出来,需要的伙伴可以加博主V交流:Code2Life2

拜!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

anmu4200

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

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

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

打赏作者

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

抵扣说明:

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

余额充值