0
点赞
收藏
分享

微信扫一扫

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

sin信仰 2022-05-11 阅读 16

@TOC

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套系统介绍,觉得不错的伙伴记得一键三连!
由于代码不能都贴出来,需要的伙伴可以博主私信交流

拜!

举报

相关推荐

0 条评论