java gui + sqlserver实现在线稿件审阅管理系统

 

目录

第一章 需求分析 1

1.1 需求概述 1

1.2 工作流程分析 2

1.3 功能结构分析 3

1.3.1 层次结构图 3

1.3.2 数据流图 3

第二章 系统总体设计 4

2.1 设计思想 4

2.2 实现方法 4

2.3 系统中主要模块及模块间关系的描述 4

2.3.1 个人信息管理模块 4

2.3.2 稿件处理模块 4

2.3.3 管理员模块/后台管理 4

2.3.4 交流评论区 4

2.3.5 模块间关系的描述 4

第三章 数据库设计 5

3.1 数据库概念结构设计 5

3.2 数据库逻辑结构设计 5

第四章 详细设计 7

4.1 系统界面模块 7

4.2 普通用户界面模块 9

4.3 审稿人员界面模块 12

4.4 管理员界面模块 15

第五章 实 现 18

5.1 系统登录界面设计(注册、登录功能) 18

5.1.1 系统首页 18

5.1.2 注册功能 19

5.1.3 登陆功能 20

5.2 普通用户界面设计 21

5.2.1 查询用户个人信息 21

5.2.2 查询已投稿文章 22

5.2.3 投稿 23

5.3 审稿人员界面设计 24

5.3.1 显示需审核文章 24

5.3.2 提交审核结果 25

5.4 管理员界面设计 26

5.4.1 用户权限管理 26

5.4.2 显示文章 28

第六章 总 结 29

第一章 需求分析

1.1 需求概述

对于一个阅读平台来说,稿件质量的高低是其生存与发展的关键。为了保证投稿质量,稿件发表前的审核是一个必不可少的环节。由此,我们依托网络,建立电子稿件审阅管理系统。

投稿君提交稿件,通过稿件审阅管理系统可以在很短的时间内将稿件发送到审稿君的手中,在网上完成日常的审稿工作,大大减少了稿件的投递时间和费用,同时降低了稿件在邮寄过程中可能造成的丢失;审稿君可通过该稿件审阅管理系统随时将审稿的结果及意见反馈给投稿君,这也有效的缩短了稿件的审核时间。

本文所设计的电子稿件审阅管理系统主要是为了方便阅读平台的编辑人员审核大量的网络稿件。同时,系统可以具有更加人性化的界面体验以及修改方案使得编辑人员能够以轻松愉快的心情去工作。由于网络中需要处理的稿件量十分庞大,本系统的实现目的是能够提高杂志报纸期刊编辑人员的工作效率,尽快地审核来自网络中的大量稿件,以提高自身的业务水平,增强竞争能力,从而适应当今社会发展的需要。

本系统(电子稿件审阅管理系统)的角色划分为三类:普通用户、审核人员以及系统管理员。

普通用户通过注册和登录,查看所有文章。用户注册完后回到系统首页进行登录,登录之后可以查询需要的文章和在线投稿,在稿件管理中用户可以查询到自己稿件的审核状态。

审核人员登录,登录后在文章管理栏目中查看待审核的稿件,审核之后反馈给用户意见。通过审核的稿件可以供登录系统的每一个用户查阅。

系统管理员登录,登录后可以进行相关文章管理和用户管理。在文章管理中,删除不符合规范规定的文章,删除过期稿件,将投稿来的稿件分类分配给相应的审核人员进行审核。用户管理中,赋予用户以不同的权限:普通用户和审核人员。

 

 

 

 

 

 

 

 

 

 

 

 

1.2 工作流程分析

 

图1.2 工作流程分析图

 

未注册的人员均以游客的身份打开系统首页。

游客通过注册成为本系统的用户。注册完毕返回系统首页,用户登录自己的账号。用户在系统中可以在个人信息模块修改个人信息,在文章搜索模块查询自己想要阅读的文章,在稿件管理模块按照要求进行投稿,投稿完后可以在本模块查看审稿状态。

系统管理员是唯一的,拥有这个系统特殊的标识,系统管理员也拥有自己的账号。系统管理员可以管理用户,为在系统中注册的所有用户修改权限,拥有审稿权限的用户成为审核人员。

审核人员也是系统的用户,是拥有审核稿件权限的用户。审核人员之间有审核稿件类别的不同,按照稿件的类别划分,只审核类别相对应的稿件。审核完毕之后,审核人员可以与投稿来的用户进行交流,反馈意见。

 

1.3 功能结构分析

1.3.1 层次结构图

图1.3.1 系统层次结构图

 

 

1.3.2 数据流图

 

图1.3.2 系统数据流图

第二章 系统总体设计

2.1 设计思想

划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等。确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

 

2.2 实现方法

 为确定软件结构,需要从实现角度把复杂的功能进一步分解。通常程序中的一个模块完成一个适当的子功能。把模块组织成良好的层次系统,顶层模块调用它的下层模块以实现程序的完整功能。在已确定的系统数据需求的基础上设计数据库。

 

2.3 系统中主要模块及模块间关系的描述

2.3.1个人信息管理模块

①资料信息设置:用户个人信息设置与修改

②用户注册:注册账号

③用户登录:忘记密码/修改密码

2.3.2 稿件处理模块

①投稿:用户稿件编辑

②投稿人稿件管理:用户修改稿件内容和查询审稿状态

③稿件分配:系统管理员按照投稿类别分配给相应的审核人员

④审稿:审稿人员审稿给出审核结果更改稿件审核状态,给出反馈意见

2.3.3 管理员模块/后台管理

①用户管理:对已注册的用户进行权限分配:普通用户及审核人员。

②文章管理:对文章进行分类,将投稿按照类别分配给相应的审核人员;对所有的文章进行查看,清理过期稿件。

2.3.4 交流评论区

①文章评论:评论对所有读者可见并可以回复

②联系我们:用户可以留言供系统管理员和审核人员查看

2.3.5 模块间关系的描述

个人信息管理模块的主要功能是完成用户的注册、登录以及个人信息的管理和修改,用户的个人信息都存储在数据库中。稿件处理模块包括投稿用户的投稿功能和审稿人员的审核功能,用户完成稿件的相关提交工作,提交完成后,系统将稿件的信息存储在数据库中,审稿人员审核时,从数据库中读取稿件的全部信息。管理员模块中实现管理员可以查看所有用户的信息与所有文章的信息,并可以对用户和文章进行操作。

 

 

 

 

 

第三章 数据库设计

3.1 数据库概念结构设计

   

图3.1 系统E-R图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2 数据库逻辑结构设计

基本表1 用户 Users

属性

列名

数据类型

约束条件

用户名

Name

Varchar(20)

主键

昵称

PenName

Varchar(20)

Unique

账号密码

Password

Varchar(16)

Not null

邮箱

Email

Varchar(50)

Unique

性别

Sex

Char(2)

Not null

年龄

Age

Int

Not null

联系电话

Phone

Char(11)

Not null

权限

Type

Varchar(10)

Not null

 

基本表2 稿件 Essay

文章编号

wordID

Varchar(45)

主键

文章题目

Title

Varchar(100)

Not null

文章类型

Style

Varchar(20)

Not null

作者用户名

Name

Varchar(20)

外键

参照users(name)

文章内容

Word

Text

Not null

是否已审核

Havechecked

Varchar(20)

Not null

 

基本表3 投稿 Contribute

用户名

Name

Varchar(20)

主键/外键

参照users(name)

文章编号

wordID

Varchar(45)

主键/外键

参照essay(wordID)

投稿日期

Date

DATE

Not null

 

基本表4 审稿 CheckEssay

审稿人员用户名

Name

Varchar(20)

主键/外键

参照reviewer(name)

文章编号

wordID

Varchar(45)

主键/外键

参照essay(wordID)

审核状态

State

Varchar(20)

Not null

反馈意见

Feedback

Text

Not null

文章题目

Title

Varchar(100)

Not null

 

基本表5 审核人员 Reviewer

用户名

Name

Varchar(20)

主键/外键

参照user(name)

账号密码

Password

Varchar(16)

Not null

审核类型

Type

Varchar(20)

Not null

第四章 详细设计

4.1 系统界面模块

系统登录界面,包括登录、注册、忘记密码三个功能。

4.1.1 创建窗体(登录界面)

            

图4.1.1 登录界面

4.1.2 用户输入用户名和密码,并选择自己相应的权限(普通用户、审稿人员、系统管理员)

4.1.3 给窗体添加登录和注册按钮以及相关控件(用户名和密码输入框以及标签)

4.1.4 给登录按钮添加监听器,处理登录实现

4.1.4.1 当点击登录按钮时,检测输入框中输入的用户名和密码是否爱数据库内

4.1.4.2 提示登录成功或者登陆失败

        

图4.1.2 登录

4.1.5 给注册按钮添加监听器,处理注册实现

4.1.5.1 当点击注册按钮时,出现注册页面

4.1.5.2 当用户输入新的用户名和密码时,检测数据库中是否已经存在该用户名并提示

4.1.5.3 确认注册后,向数据库中添加新的用户信息

  

图4.1.3 注册信息填写

 

  

图4.1.4 注册

 

 

4.2 普通用户界面模块

系统包括三种权限(普通用户user、审稿人员reviewer、管理员manager),每一种不同权限的人员有自己不同的功能,因为也就登录面对不同的界面。

4.2.1 用户界面设计创建窗体,进行布局。两个标签(“用户名,nice to meet you!”“昵称,你我终将会下落不明,你知道我曾为你动过情!”)用来显示用户的用户名和昵称。三个按钮(个人信息管理、已投稿文章管理、投稿)用来显示用户主要拥有的三个功能。

  

图4.2.1 用户界面

4.2.2 个人信息管理:查看用户的个人信息,包括用户名、昵称、年龄、性别、邮箱、联系电话。修改按钮,用于用户修改个人信息的操作。

  

图4.2.2 个人信息查看

4.2.3 已投稿文章管理:查看用户已投稿文章的审核状态和反馈意见。

4.2.3.1 文章编号 编号添加在按钮里,点击文章编号按钮可弹出界面显示文章内容。

 

图4.2.3 已审核文章内容

4.2.3.2 文章题目

4.2.3.3 审核状态

4.2.3.4 反馈意见

  

图4.2.4 已审核文章查看

 

4.2.4 投稿:用户进行投稿操作

  

图4.2.5 投稿界面

4.2.4.1 文章题目

4.2.4.2 文章类型

4.2.4.3 文章内容

4.2.4.5 提及按钮 用户编辑文章完毕,点击提交按钮,提示提交成功。

  

图4.2.6 提交

 

4.3 审稿人员界面模块

4.3.1 审稿人员界面创建窗体。

两个标签(“用户名,欢迎使用,审稿愉快!”“昵称,眼睛到不了的地方,文字可以!”)

两个按钮(个人信息管理、文章审核管理)

   

图4.3.1 审稿人员界面

4.3.2 个人信息管理:查看用户的个人信息,包括用户名、昵称、年龄、性别、邮箱、联系电话。修改按钮,用于用户修改个人信息的操作。

   

图4.3.2 个人信息查看

4.3.3 文章审核管理:查看该审稿人员按照文章类型分配来的稿件

显示文章编号、文章作者用户名、文章题目

  

图4.3.3 文章审核管理界面

4.3.3.1 点击文章编号按钮,弹出审核界面

查看文章题目、文章内容

编辑审核结果选项、反馈意见

提交审核结果

图4.3.4 审核

4.3.3.2 编辑反馈意见,选择审核结果(通过或者不合格),点击提交审核结果,提示审核结果提交成功。

图4.3.5 提交审核结果

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.4 管理员界面模块

4.4.1 管理员界面创建窗体。

两个标签(“用户名,管理员登录!”“昵称,山水有相逢!”)

两个按钮(用户权限管理、文章规范管理)显示管理员具备的两个功能。

  

图4.4.1 管理员界面

4.4.2 用户权限管理:显示所有user(普通用户权限的用户名、昵称、权限user)

  

图4.4.2 用户权限管理

 

4.4.2.1 点击用户名按钮,即询问是否要将该用户人员设置为审核人员权限,并为其选择审稿的文章类型(此处类型较少,考虑到系统简单实现功能,后续可以优化。)

图4.4.3 设置reviewer

 

4.4.2.2 选择审稿文章类型,点击确定按钮,提示权限设置成功或失败。

图4.4.4 权限设置成功

4.4.3 文章规范管理:显示所有投稿来的文章的信息(文章编号、题目、作者用户名、类型、内容)

图4.4.5 查看所有文章

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第五章 实 现

5.1 系统登录界面设计(注册、登录功能)

5.1.1系统首页

创建系统登录界面。

在本页点击注册按钮注册用户,输入用户名和密码点击登录按钮登录系统。

public class Homepage {

JRadioButton jrb1,jrb2,jrb3 = null; //按钮控件 在函数中会用到 设置为类属性

JTextField uname,pword = null;

private OrdinaryUI oui;

public static void main(String[] args) {

Frame homepage = new Frame("电子稿件审阅管理系统");  

    Icon icon = new ImageIcon("./imgs/homepage.jpg");

JButton welcome = new JButton(icon); jp1.add(welcome);

Label username = new Label("用户名",SwingConstants.LEFT);

JTextField uname = new JTextField(20);

Label password = new Label("密码",SwingConstants.LEFT);

JTextField pword = new JTextField(20);

uname.setEditable(true);

pword.setEditable(true);

Label power = new Label("权限");

JRadioButton jrb1 = new JRadioButton("普通用户");

JRadioButton jrb2 = new JRadioButton("审稿人员");

JRadioButton jrb3 = new JRadioButton("管理员");

ButtonGroup bg = new ButtonGroup();

jrb1.setSelected(true); //首页默认选择权限为普通用户

homepage.setLayout(new FlowLayout());

JButton register = new JButton("注册");

JButton login = new JButton("登录");

JButton forget = new JButton("忘记密码");

homepage.setLayout(new GridLayout(5,1,0,1)); //设置在前面不起作用

homepage.setVisible(true); //设置窗体可见 设置在最后才能够可见

MyWindowListener mw = new MyWindowListener(); //为窗口组件注册监听器

homepage.addWindowListener(mw);

//登录按钮添加监听器,处理登录逻辑

LoginListener ll = new LoginListener(uname,pword);

login.addActionListener(ll);

//注册按钮添加监听器,处理注册逻辑

RegisterListener rl = new RegisterListener();

register.addActionListener(rl);

}

}

 

5.1.2 注册功能

填写注册信息,将注册信息添加到数据库中,注册用户名。

JButton bt = new JButton("注册");//为注册页面的注册按钮添加监听器

bt.addMouseListener(new MouseAdapter() {  //用内部类的方式为注册按钮注册监听器

public void mouseClicked(MouseEvent e) {

String rname = new String(name.getText());

String rpassword = new String(password.getText());

String rpenname = new String(penname.getText());

String rage = new String(birth.getText());

String rsex = new String(sex.getText());

String remail = new String(email.getText());

String rphone = new String(phone.getText());

if(rname.equals("") || rpassword.equals("") || rpenname.equals("") || rage.equals("") || rsex.equals("") || remail.equals("") || rphone.equals("")) {

JOptionPane.showMessageDialog(null, "注册信息各栏不能为空!"); }

else

try {

if(CheckName(rname)){ //用户名重复 则提示用户并让其重新注册

JOptionPane.showMessageDialog(null, "该用户名已存在,请重新填写并注册!");}

else {

Connection conn = DBUtil.getConnection(); //用户名合法 则将用户注册的信息更新到数据库 表essay

String sql = "INSERT INTO Users(name,penname,password,email,sex,age,phone,type)" + "VALUES('"+ rname +"','" + rpenname + "','" + rpassword + "','" + remail + "','" + rsex + "','" + rage + "','" + rphone +"','user')";

Statement stmt = null;

try {

stmt = conn.createStatement();  stmt.executeUpdate(sql);

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

JOptionPane.showMessageDialog(null, "注册成功!");

penname.setText("");  //注册成功 清空各项信息

birth.setText("");sex.setText("");email.setText("");phone.setText("");

}

} catch (HeadlessException | SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}   });  //内部类

}

 

5.1.3 登陆功能

根据用户名对应的不同权限,登录系统,每种权限的用户登录相应的界面

5.1.3.1 检查用户的用户名和密码是否正确。

public boolean CheckLogin(String n,String p) throws SQLException { //检查用户账号密码是否正确

boolean flag = false;

Connection conn = DBUtil.getConnection();

String sql = "SELECT name,password FROM Users";

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(sql);

while(rs.next()) {

if(rs.getString("name").equals(n) && rs.getString("password").equals(p)) {

flag = true;

break;

}

}

DBUtil.close(rs);

stmt.close();;

DBUtil.close(conn);

return flag;

}

5.1.3.2 查询用户的权限

public String Type(String n,String p) throws SQLException { //查询用户权限

String t = null;

Connection conn = DBUtil.getConnection();

String sql = "SELECT name,password,type FROM Users";

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(sql);

while(rs.next()) {

if(rs.getString("name").equals(n) && rs.getString("password").equals(p)) {

t = new String(rs.getString("type"));

}

}

DBUtil.close(rs);

stmt.close();

DBUtil.close(conn);

return t;

}

 

 

 

 

5.2 普通用户界面设计

5.2.1 查询用户个人信息

点击个人信息管理按钮,弹出窗体,显示用户的个人信息。

 

Connection conn = DBUtil.getConnection();

String sql = "SELECT * FROM Users";

Statement stmt = null;

try {

stmt = conn.createStatement();

} catch (SQLException e3) {

// TODO Auto-generated catch block

e3.printStackTrace();

}

ResultSet rs = null;

try {

rs = stmt.executeQuery(sql);

} catch (SQLException e2) {

// TODO Auto-generated catch block

e2.printStackTrace();

}

try {

while(rs.next()) {

if(rs.getString("name").equals(username)) {   //查找该用户名信息

name = new JTextField(rs.getString("name"));

penname = new JTextField(rs.getString("penname"));

birth = new JTextField(rs.getString("age"));    

sex = new JTextField(rs.getString("sex"));

email = new JTextField(rs.getString("email"));

phone = new JTextField(rs.getString("phone"));

break;

}

}

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

 

 

 

 

 

5.2.2 查询已投稿文章

点击已投稿文章管理按钮,显示用户投稿并且被审核过的文章。

显示已审核文章的题目、编号、审核状态、反馈意见。

 

Connection conn = DBUtil.getConnection();

String sql = "SELECT Essay.wordID,Essay.title,eState,feedback,word FROM Essay,CheckEssay WHERE CheckEssay.wordID = Essay.wordID and Essay.name='" + username + "'" ;

Statement stmt = null;

try {

stmt = conn.createStatement();

} catch (SQLException e3) {e3.printStackTrace();}

ResultSet rs = null;

try {

rs = stmt.executeQuery(sql);

System.out.println("查到记录!");

} catch (SQLException e2) {e2.printStackTrace();}

try {

while(rs.next()) {//将已投稿的文章的题目、文章编号、审核状态、反馈意见显示出来

searchR = new JButton(rs.getString("wordID"));

searchTitle = new Label("题目:" + rs.getString("title"));

searchState = new Label("审核状态为:" + rs.getString("eState"));

searchFeedback = new Label("意见为:" + rs.getString("feedback"));

searchWord = new Label("文章内容为: " + rs.getString("word"));

       searchR.addMouseListener(new MouseAdapter() {

Label Title = new Label(searchTitle.getText());

Label Word = searchWord;

public void mouseClicked(MouseEvent e) {

System.out.println(Title.getText());

JFrame mouseout = new JFrame(Title.getText());

mouseout.add(Word);

mouseout.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

mouseout.setVisible(true);

}

});

}

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

 

 

 

 

5.2.3 投稿

用户填写投稿文章的题目、类型、内容,系统根据用户名和此时时间生成文章编号,将文章的所有信息添加到数据库中。

//为提交按钮注册监听器

 //用内部类的方式为提交按钮注册监听器

submit.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e) {

String eTitle = conName.getText();   //文章题目

String eStyle = conStyle.getText();  //文章类型

String eContent = conContent.getText(); //文章内容

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date d = new Date();

String dateNowStr = sdf.format(d);

System.out.println(dateNowStr); //获得当前投稿时间

String eID = new String(username + dateNowStr);  //文章编号

if(eTitle.equals("") || eStyle.equals("") || eContent.equals("")) {

JOptionPane.showMessageDialog(null, "题目或者类型或者内容不能为空!");}

else {

Connection conn = DBUtil.getConnection(); //将投稿文章的信息更新到数据库 表essay

String sql = "INSERT INTO Essay(wordID,title,style,name,word,havechecked)" + "VALUES('"+ eID +"','" + eTitle + "','" + eStyle + "','" + username +"','" + eContent + "','待审核')";

Statement stmt = null;

try {

stmt = conn.createStatement();stmt.executeUpdate(sql);

} catch (SQLException e1) {e1.printStackTrace();}

Connection conn1 = DBUtil.getConnection();  //将投稿文章的投稿日期更新到数据库 表contribute

String sql1 = "INSERT INTO Contribute(wordID,name,dt)" + "VALUES('"+ eID +"','" + username +"','" + dateNowStr + "')";

Statement stmt1 = null;

try {

stmt1 = conn1.createStatement();stmt1.executeUpdate(sql1);

} catch (SQLException e1) {e1.printStackTrace();}

JOptionPane.showMessageDialog(null, "提交成功!");

conName.setText("");  //提交成功后 所有内容清空

conStyle.setText("");

conContent.setText("");

}

}

});

 

5.3 审稿人员界面设计

5.3.1显示该审稿人员审核类型的所有投稿来的文章。

Connection conn = DBUtil.getConnection();//连接数据库

String sql = "select wordID,Essay.name,title from Essay,Reviewer where Essay.style = Reviewer.style and havechecked = '待审核' and Reviewer.name = '" + username + "'";

Statement stmt = null;

try {

stmt = conn.createStatement();

} catch (SQLException e3) {

// TODO Auto-generated catch block

e3.printStackTrace();

}

ResultSet rs = null;

try {

rs = stmt.executeQuery(sql);

} catch (SQLException e2) {

// TODO Auto-generated catch block

e2.printStackTrace();

}

try {

while(rs.next()) {

jb = new JButton(rs.getString("wordID"));

lb1 = new Label(rs.getString("name"));

lb2 = new Label(rs.getString("title"));

jp.add(jb);

jp.add(lb1);

jp.add(lb2);

essayIn.add(jp);

}

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

 

 

 

 

 

 

 

 

 

5.3.2 提交审核结果

审稿人员进行审核,查看文章的题目、内容,选择审核结果(通过或是不合格),填写反馈意见,点击提交按钮。

JButton submit = new JButton("提交审核结果");

    JPanel jp4 = new JPanel();jp4.add(submit);

           //为提交审核结果按钮注册监听器 将此审核页面的内容更新到数据库中

            submit.addMouseListener(new MouseAdapter() {

             public void mouseClicked(MouseEvent e) {

     String feedbacking = new String(feedback.getText());

     String resulting = new String((String) result.getSelectedItem());

     String titled = null;   //根据wordID在数据库中查找到表Essay的题目

Connection conn = DBUtil.getConnection();

String sql = "select title,word from Essay where wordID = '" + wordID + "'";

Statement stmt = null;

try {stmt = conn.createStatement();

} catch (SQLException e3) {e3.printStackTrace();}

ResultSet rs = null;

try {rs = stmt.executeQuery(sql);

} catch (SQLException e2) {e2.printStackTrace();}

try while(rs.next()) {

titled = new String(rs.getString("title"));}

} catch (SQLException e1) {e1.printStackTrace();}

             //根据wordID将以上四个属性 审稿用户名、题目、反馈意见、审核结果上传到数据库 表CheckEssay中

                 Connection conn1 = DBUtil.getConnection();  //将投稿文章的投稿日期更新到数据库 投稿文章的编号根据投稿日期排序 表contribute

String sql1 = "INSERT INTO CheckEssay(wordID,name,eState,feedback,title)" + "VALUES('"+ wordID +"','" + username +"','" + resulting +"','" + feedbacking + "','" + titled + "')";

Statement stmt1 = null;

try {

stmt1 = conn1.createStatement();

stmt1.executeUpdate(sql1);

JOptionPane.showMessageDialog(null, "审阅结果提交成功!");

} catch (SQLException e1) {e1.printStackTrace();

JOptionPane.showMessageDialog(null, "审阅结果提交失败!");

}

String sql2 = "update Essay set havechecked = '已审核' where wordID = '" + wordID + "'";

Statement stmt2 =null;

try {stmt2 = conn1.createStatement();stmt2.execute(sql2);

} catch (SQLException e1) {e1.printStackTrace();}

}   

}); 

5.4 管理员界面设计

5.4.1 用户权限管理

5.4.1.1 显示用户

显示所有权限为USER的用户,选择其中的用户将其权限设置为REVIEWER,并为其分配文章审核类型。

try {

Connection conn = DBUtil.getConnection();

Statement stmt = conn.createStatement();

 

JButton[] jb = new JButton[100];

JLabel[] jl = new JLabel[100];

JLabel[] l = new JLabel[100];

String[] s = new String[100];

// String []ss = new String [10];

String sql = "select name,penname from Users where type = '" + "user" + "'";

ResultSet rs = stmt.executeQuery(sql);

int i = 0;

while (rs.next()) {

String s1 = rs.getString("name");

String s2 = rs.getString("penname");

String s3 = "user";

jb[i] = new JButton(s1);

jl[i] = new JLabel("penname: " + s2);

l[i] = new JLabel("权限为:" + s3);

managePower.add(jb[i]);

managePower.add(jl[i]);

managePower.add(l[i]);

s[i] = s1;

i++;

}

 

 

 

 

 

 

 

 

 

 

 

 

5.4.1.2 权限设置

选择用户为其分配权限和类型。

jb[0].addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e) {  q = 0;  n = s[q];

JFrame cj = new JFrame(n);

Label surefor = new Label("确定将该用户设置为审稿人员权限?");

    Label surenext = new Label("如果确定,则从以下选项按钮中选择该准审稿人员的审稿文章类型:");

JRadioButton jrb1 = new JRadioButton("诗歌");

JRadioButton jrb2 = new JRadioButton("对话");

JRadioButton jrb3 = new JRadioButton("小说");

JRadioButton jrb4 = new JRadioButton("散文");

JButton sure = new JButton("确定");

cj.setSize(700, 500);cj.setLocation(600, 200);

cj.setLayout(new GridLayout(7,1));

cj.add(surefor);cj.add(surenext);cj.add(jrb1);cj.add(jrb2);

cj.add(jrb3);cj.add(jrb4);cj.add(sure);

cj.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

cj.setVisible(true) ;

sure.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

if (jrb1.isSelected()) {t = "诗歌";}

    if (jrb2.isSelected()) {t = "对话";}

if (jrb3.isSelected()) {t = "小说";}

if (jrb4.isSelected()) {t = "散文";}

cj.dispose();

String sql_1 = "insert into Reviewer(name,password,style) values(' " + s[q]

+ "','222222','" + t + "')";

String sql_2 = "update Users set type = 'reviewer' where name = '"+s[q]+"'";

try {

stmt.executeUpdate(sql_1);stmt.executeUpdate(sql_2);

JOptionPane.showMessageDialog(null, "用户权限设置成功!");

} catch (SQLException e1) {

JOptionPane.showMessageDialog(null, "用户权限设置失败!");

e1.printStackTrace();}

}

});

}

});

 

5.4.2 显示文章

显示所有投稿的文章信息。

DefaultListModel model = new DefaultListModel();

JList showList = new JList();

showList.setModel(model);

JScrollPane jsp = new JScrollPane();

jsp.setViewportView(showList);

jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

 

try {

Connection conn = DBUtil.getConnection();

Statement stmt = conn.createStatement();

 

String swordID,stitle,sname,sstyle,sword;

 

String sql = "select wordID,title,name,style,word from Essay";

ResultSet rs = stmt.executeQuery(sql);

while (rs.next()) {

swordID = rs.getString("wordID");

stitle = rs.getString("title");

sname = rs.getString("name");

sstyle = rs.getString("style");

sword = rs.getString("word");

model.addElement("文章编号:" + swordID + " 题目:" + stitle + " 作者:" + sname + " 类型:" + sstyle + " 内容:" + sword);

}

}catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

 

 

 

 

 

 

 

 

 

 

 

 

第六章 总 结

在这里,使用了JAVA语言来设计了一个电子稿件审阅管理系统,主要应用于校园内电子期刊杂志的投稿的审阅过程。相对于传统的投稿方式,电子稿件审阅管理系统缩短了投稿人员的投稿时间,减少了投稿步骤,对于审稿人员,系统方便的操作,人性化的界面设计都大大提升了审稿效率。

系统主要实现三类功能,用户登录系统投稿,审稿人员登录系统对未审核的稿件进行审稿,管理员登录系统管理用户和文章。

系统在未来的应用中还需要逐步完善更多的功能,比如在用户投稿后,只能看到审稿人员的反馈意见,而不能交流,用户与用户之间、用户与审稿人员之间、用户与管理员之间都没有直接的交流,有很多功能还没有实现与完善。另外,系统未涉及太多的网络完全问题,比如数据库的安全性以及系统在网络中的稳定性问题等等。

猜你喜欢

转载自blog.csdn.net/qq_41815015/article/details/81454601