diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 088d39e..94a25f7 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,7 +1,6 @@
-
-
+
\ No newline at end of file
diff --git a/src/main/java/com/inks/hb/authinfo/controller/AuthInfoExcelServlet.java b/src/main/java/com/inks/hb/authinfo/controller/AuthInfoExcelServlet.java
index a258f3d..7e3d26b 100644
--- a/src/main/java/com/inks/hb/authinfo/controller/AuthInfoExcelServlet.java
+++ b/src/main/java/com/inks/hb/authinfo/controller/AuthInfoExcelServlet.java
@@ -1,38 +1,49 @@
package com.inks.hb.authinfo.controller;
-import com.inks.hb.authinfo.pojo.AuthInfo;
-import com.inks.hb.authinfo.service.AuthService;
-import com.inks.hb.authinfo.service.AuthServiceImpl;
-import com.inks.hb.common.ExportExcel;
-
-import javax.servlet.annotation.WebServlet;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
+import com.inks.hb.authinfo.pojo.AuthInfo; // 引入AuthInfo实体类
+import com.inks.hb.authinfo.service.AuthService; // 引入AuthService接口
+import com.inks.hb.authinfo.service.AuthServiceImpl; // 引入AuthServiceImpl实现类
+import com.inks.hb.common.ExportExcel; // 引入ExportExcel工具类
+
+import javax.servlet.annotation.WebServlet; // 引入@WebServlet注解
+import javax.servlet.http.HttpServlet; // 引入HttpServlet类
+import javax.servlet.http.HttpServletRequest; // 引入HttpServletRequest接口
+import javax.servlet.http.HttpServletResponse; // 引入HttpServletResponse接口
+import java.sql.SQLException; // 引入SQLException异常类
+import java.util.ArrayList; // 引入ArrayList类
+
+// 使用@WebServlet注解定义Servlet的名称和URL映射
@WebServlet(name = "AuthInfoExcelServlet", value = "/AuthInfoExcelServlet")
public class AuthInfoExcelServlet extends HttpServlet {
+ // 重写doPost方法,调用doGet方法
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
this.doGet(request, response);
}
+ // 重写doGet方法,处理HTTP GET请求
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
+ // 创建AuthService实例
AuthService service = new AuthServiceImpl();
+ // 声明并初始化AuthInfo列表
ArrayList infoArrayList = null;
try {
+ // 查询所有AuthInfo并赋值给infoArrayList
infoArrayList = service.query(1, service.queryAuthInfoNum());
} catch (SQLException e) {
+ // 捕获并打印SQLException异常
e.printStackTrace();
}
+ // 定义Excel表头
String[] headers = {"权限ID", "权限名称", "可读", "可写", "可改", "可删"};
+ // 定义导出的Excel文件名
String fileName = "权限信息";
+ // 创建ExportExcel实例
ExportExcel ee = new ExportExcel<>();
+ // 调用exportExcel方法导出Excel文件
ee.exportExcel(headers, infoArrayList, fileName, response);
}
}
diff --git a/src/main/java/com/inks/hb/authinfo/controller/AuthInfoServlet.java b/src/main/java/com/inks/hb/authinfo/controller/AuthInfoServlet.java
index 15ccc67..d94c8d4 100644
--- a/src/main/java/com/inks/hb/authinfo/controller/AuthInfoServlet.java
+++ b/src/main/java/com/inks/hb/authinfo/controller/AuthInfoServlet.java
@@ -16,48 +16,52 @@ import java.sql.SQLException;
import java.util.ArrayList;
/**
- * 分页查询权限表
- * 如查询过程中出现异常,统一返回'数据查询出现异常'
- * 返回数据为pojotoGson类型
+ * 分页查询权限表的Servlet
+ * 如果查询过程中出现异常,则统一返回'数据查询出现异常'
+ * 返回的数据类型为PojotoGson
*/
@WebServlet(value = "/AuthInfoServlet", name = "AuthInfoServlet")
public class AuthInfoServlet extends HttpServlet {
+ // 重写doPost方法,调用doGet方法以处理POST请求
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
this.doGet(request, response);
}
+ // 重写doGet方法,处理GET请求
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
-
+ // 设置请求和响应的字符编码
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
+ // 获取响应输出流
PrintWriter out = response.getWriter();
+ // 从请求中获取分页参数和操作类型
int page = Integer.parseInt(request.getParameter("page")); // 当前页码
int limit = Integer.parseInt(request.getParameter("limit")); // 每页的数据量
- int make = Integer.parseInt(request.getParameter("make"));
+ int make = Integer.parseInt(request.getParameter("make")); // 操作类型
- // 调用service
+ // 创建AuthService实例
AuthService service = new AuthServiceImpl();
- // 默认输出信息
- String code = "0"; //状态码
- String msg = "数据查询正常"; //状态信息
- String count = ""; //数据总数
- ArrayList list = new ArrayList<>(); //数据内容
+ // 初始化返回信息
+ String code = "0"; // 状态码,默认为0表示成功
+ String msg = "数据查询正常"; // 状态信息,默认为正常
+ String count = ""; // 数据总数,初始化为空字符串
+ ArrayList list = new ArrayList<>(); // 数据内容列表
- //单个全局属性
- int authId; //权限ID
- String authItem = ""; //权限名称
- String isRead; //可读
- String isWrite; //可写
- String isChange; //可改
- String isDelete; //可删
- AuthInfo authInfo = null;
+ // 声明单个全局属性
+ int authId; // 权限ID
+ String authItem = ""; // 权限名称
+ String isRead; // 可读
+ String isWrite; // 可写
+ String isChange; // 可改
+ String isDelete; // 可删
+ AuthInfo authInfo = null; // AuthInfo对象
try {
-
- // 状态标志 make 0重载 1新增 2修改 3搜索 4删除
+ // 根据操作类型执行不同的逻辑
if (make == 2) {
+ // 修改权限信息
authId = Integer.parseInt(request.getParameter("authId"));
authItem = request.getParameter("authItem");
isRead = request.getParameter("isRead");
@@ -65,38 +69,33 @@ public class AuthInfoServlet extends HttpServlet {
isChange = request.getParameter("isChange");
isDelete = request.getParameter("isDelete");
authInfo = new AuthInfo(authId, authItem, isRead, isWrite, isChange, isDelete);
+ service.updateAuthInfo(authInfo); // 更新权限信息
} else if (make == 3) {
+ // 搜索权限信息
authItem = request.getParameter("authItem");
+ authInfo = service.query(authItem); // 查询权限信息
+ list.clear(); // 清空列表
+ list.add(authInfo); // 添加查询结果到列表
}
- switch (make) {
- case 2:
- service.updateAuthInfo(authInfo);
- break;
- case 3:
- authInfo = service.query(authItem);
- list.clear();
- list.add(authInfo);
- break;
- }
+ // 根据操作类型获取数据
if (make != 3) {
- list = service.query(page, limit);
- count = String.valueOf(service.queryAuthInfoNum());
+ list = service.query(page, limit); // 分页查询权限信息
+ count = String.valueOf(service.queryAuthInfoNum()); // 获取权限信息总数
} else {
- if (authInfo.getAuthId() == 0) {
- count = "0";
- } else {
- count = "1";
- }
+ // 如果搜索结果为空,则设置count为0,否则为1
+ count = (authInfo.getAuthId() == 0) ? "0" : "1";
}
} catch (SQLException e) {
+ // 捕获到SQLException异常,设置错误状态码和信息
code = "1";
msg = "数据查询出现异常";
- e.printStackTrace();
+ e.printStackTrace(); // 打印异常堆栈信息
} finally {
+ // 创建PojotoGson对象并序列化为JSON字符串
PojotoGson pojotoGson = new PojotoGson(code, msg, count, list);
Gson gson = new Gson();
- out.print(gson.toJson(pojotoGson));
+ out.print(gson.toJson(pojotoGson)); // 输出JSON字符串
}
}
}
diff --git a/src/main/java/com/inks/hb/authinfo/dao/AuthInfoDao.java b/src/main/java/com/inks/hb/authinfo/dao/AuthInfoDao.java
index 476d902..5f0ddb7 100644
--- a/src/main/java/com/inks/hb/authinfo/dao/AuthInfoDao.java
+++ b/src/main/java/com/inks/hb/authinfo/dao/AuthInfoDao.java
@@ -10,48 +10,58 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
+// 实现CommonDao接口,提供AuthInfo数据访问对象
public class AuthInfoDao implements CommonDao {
+ // 插入AuthInfo数据到数据库
@Override
public void insertData(Object o) throws SQLException {
- AuthInfo authInfo = (AuthInfo) o;
+ AuthInfo authInfo = (AuthInfo) o; // 将Object对象转换为AuthInfo对象
- Connection conn = DBUtil.getConnection();
+ Connection conn = DBUtil.getConnection(); // 获取数据库连接
+ // SQL插入语句
String sql = "insert into authInfo (authItem, isRead, isWrite, isChange, isDelete) values (?,?,?,?,?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
+ // 设置SQL语句中的参数
pstmt.setString(1, authInfo.getAuthItem());
pstmt.setString(2, authInfo.getIsRead());
pstmt.setString(3, authInfo.getIsWrite());
pstmt.setString(4, authInfo.getIsChange());
pstmt.setString(5, authInfo.getIsDelete());
- pstmt.executeUpdate();
- pstmt.close();
+ pstmt.executeUpdate(); // 执行插入操作
+ pstmt.close(); // 关闭PreparedStatement
}
+ // 删除AuthInfo数据
@Override
public void deleteData(Object o) throws SQLException {
- AuthInfo authInfo = (AuthInfo) o;
+ AuthInfo authInfo = (AuthInfo) o; // 将Object对象转换为AuthInfo对象
- Connection conn = DBUtil.getConnection();
+ Connection conn = DBUtil.getConnection(); // 获取数据库连接
+ // SQL删除语句
String sql = "DELETE FROM authInfo WHERE authId = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
+ // 设置SQL语句中的参数
pstmt.setInt(1, authInfo.getAuthId());
- pstmt.executeUpdate();
- pstmt.close();
+ pstmt.executeUpdate(); // 执行删除操作
+ pstmt.close(); // 关闭PreparedStatement
}
+ // 更新AuthInfo数据
@Override
public void updateData(Object o) throws SQLException {
- AuthInfo authInfo = (AuthInfo) o;
+ AuthInfo authInfo = (AuthInfo) o; // 将Object对象转换为AuthInfo对象
- Connection conn = DBUtil.getConnection();
+ Connection conn = DBUtil.getConnection(); // 获取数据库连接
+ // SQL更新语句
String sql = "UPDATE authInfo SET authItem = ? ,isRead = ?,isWrite = ?,isChange = ?,isDelete = ? WHERE authId = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
+ // 设置SQL语句中的参数
pstmt.setString(1, authInfo.getAuthItem());
pstmt.setString(2, authInfo.getIsRead());
pstmt.setString(3, authInfo.getIsWrite());
@@ -59,53 +69,59 @@ public class AuthInfoDao implements CommonDao {
pstmt.setString(5, authInfo.getIsDelete());
pstmt.setInt(6, authInfo.getAuthId());
- pstmt.executeUpdate();
- pstmt.close();
+ pstmt.executeUpdate(); // 执行更新操作
+ pstmt.close(); // 关闭PreparedStatement
}
+ // 查询AuthInfo数据总数
@Override
public int queryDataNum() throws SQLException {
+ Connection conn = DBUtil.getConnection(); // 获取数据库连接
- Connection conn = DBUtil.getConnection();
-
+ // SQL查询总数语句
String sql = "select count(*) from authInfo;";
PreparedStatement pstmt = conn.prepareStatement(sql);
- ResultSet rs = pstmt.executeQuery();
+ ResultSet rs = pstmt.executeQuery(); // 执行查询操作
int num;
- if (rs.next()) num = rs.getInt("count(*)");
- else num = 0;
+ if (rs.next()) {
+ num = rs.getInt("count(*)"); // 获取总数
+ } else {
+ num = 0; // 如果没有数据,总数为0
+ }
- rs.close();
- pstmt.close();
+ rs.close(); // 关闭ResultSet
+ pstmt.close(); // 关闭PreparedStatement
- return num;
+ return num; // 返回数据总数
}
+ // 分页查询AuthInfo数据
@Override
public ArrayList query(int start, int length) throws SQLException {
+ Connection conn = DBUtil.getConnection(); // 获取数据库连接
- Connection conn = DBUtil.getConnection();
-
+ // SQL分页查询语句
String sql = "select * from authInfo limit ?, ?;";
PreparedStatement pstmt = conn.prepareStatement(sql);
+ // 设置分页参数
pstmt.setInt(1, start - 1);
pstmt.setInt(2, length);
- ResultSet rs = pstmt.executeQuery();
+ ResultSet rs = pstmt.executeQuery(); // 执行查询操作
- ArrayList list = new ArrayList<>();
+ ArrayList list = new ArrayList<>(); // 创建AuthInfo列表
AuthInfo authInfo;
- while (rs.next()) {
- authInfo = new AuthInfo(rs.getInt(1), rs.getString(2), rs.getString(3)
- , rs.getString(4), rs.getString(5), rs.getString(6));
+ while (rs.next()) { // 遍历结果集
+ // 创建AuthInfo对象并添加到列表
+ authInfo = new AuthInfo(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6));
list.add(authInfo);
}
- rs.close();
- pstmt.close();
+ rs.close(); // 关闭ResultSet
+ pstmt.close(); // 关闭PreparedStatement
- return list;
+ return list; // 返回AuthInfo列表
}
@Override
diff --git a/src/main/java/com/inks/hb/authinfo/service/AuthServiceImpl.java b/src/main/java/com/inks/hb/authinfo/service/AuthServiceImpl.java
index 658911e..b99c8a8 100644
--- a/src/main/java/com/inks/hb/authinfo/service/AuthServiceImpl.java
+++ b/src/main/java/com/inks/hb/authinfo/service/AuthServiceImpl.java
@@ -6,46 +6,50 @@ import com.inks.hb.authinfo.pojo.AuthInfo;
import java.sql.SQLException;
import java.util.ArrayList;
+// 实现AuthService接口,提供AuthInfo业务逻辑服务
public class AuthServiceImpl implements AuthService {
- private AuthInfoDao dao = new AuthInfoDao();
+ private AuthInfoDao dao = new AuthInfoDao(); // AuthInfo数据访问对象
+ // 查询AuthInfo记录总数
@Override
public int queryAuthInfoNum() throws SQLException {
-
- return dao.queryDataNum();
+ return dao.queryDataNum(); // 调用DAO层的方法查询总数
}
+ // 根据ID查询AuthInfo记录
@Override
public AuthInfo query(int authId) throws SQLException {
- AuthInfo authInfo = new AuthInfo();
- authInfo.setAuthId(authId);
+ AuthInfo authInfo = new AuthInfo(); // 创建AuthInfo对象
+ authInfo.setAuthId(authId); // 设置查询条件
- return (AuthInfo) dao.query(authInfo);
+ return (AuthInfo) dao.query(authInfo); // 调用DAO层的方法进行查询
}
+ // 根据权限项名称查询AuthInfo记录
@Override
public AuthInfo query(String authItem) throws SQLException {
- AuthInfo authInfo = new AuthInfo();
- authInfo.setAuthItem(authItem);
+ AuthInfo authInfo = new AuthInfo(); // 创建AuthInfo对象
+ authInfo.setAuthItem(authItem); // 设置查询条件
- return dao.queryName(authInfo);
+ return dao.queryName(authInfo); // 调用DAO层的方法进行查询
}
+ // 分页查询AuthInfo记录
@Override
public ArrayList query(int page, int limit) throws SQLException {
+ int start = (page * limit) - limit + 1; // 计算分页查询的起始位置
- int start = (page * limit) - limit + 1; //每一页的起始位置
-
- if (start < 1)
- start = 1;
+ if (start < 1) {
+ start = 1; // 如果起始位置小于1,则设置为1
+ }
- return dao.query(start, limit);
+ return dao.query(start, limit); // 调用DAO层的方法进行分页查询
}
+ // 更新AuthInfo记录
@Override
public void updateAuthInfo(AuthInfo authInfo) throws SQLException {
-
- dao.updateData(authInfo);
+ dao.updateData(authInfo); // 调用DAO层的方法进行更新操作
}
}
diff --git a/src/main/java/com/inks/hb/billinfo/pojo/BillInfo.java b/src/main/java/com/inks/hb/billinfo/pojo/BillInfo.java
index bbab7db..3b90d28 100644
--- a/src/main/java/com/inks/hb/billinfo/pojo/BillInfo.java
+++ b/src/main/java/com/inks/hb/billinfo/pojo/BillInfo.java
@@ -1,24 +1,31 @@
package com.inks.hb.billinfo.pojo;
/**
- * 账单表
+ * 账单表对应的实体类
*/
public class BillInfo {
+ // 账单ID
private int billId;
+ // 审核ID
private String checkedId;
+ // 费用金额
private String costMoney;
+ // 费用日期
private String costDate;
+ // 备注
private String remark;
+ // 默认构造方法
public BillInfo() {
super();
}
+ // 带参数的构造方法,用于创建BillInfo对象时初始化字段
public BillInfo(int billId, String checkedId, String costMoney, String costDate, String remark) {
this.billId = billId;
this.checkedId = checkedId;
@@ -27,46 +34,57 @@ public class BillInfo {
this.remark = remark;
}
+ // 获取账单ID
public int getBillId() {
return billId;
}
+ // 设置账单ID
public void setBillId(int billId) {
this.billId = billId;
}
+ // 获取审核ID
public String getCheckedId() {
return checkedId;
}
+ // 设置审核ID
public void setCheckedId(String checkedId) {
this.checkedId = checkedId;
}
+ // 获取费用金额
public String getCostMoney() {
return costMoney;
}
+ // 设置费用金额
public void setCostMoney(String costMoney) {
this.costMoney = costMoney;
}
+ // 获取费用日期
public String getCostDate() {
return costDate;
}
+ // 设置费用日期
public void setCostDate(String costDate) {
this.costDate = costDate;
}
+ // 获取备注
public String getRemark() {
return remark;
}
+ // 设置备注
public void setRemark(String remark) {
this.remark = remark;
}
+ // 重写toString方法,用于打印BillInfo对象的字符串表示
@Override
public String toString() {
return "BillInfo{" +
diff --git a/src/main/java/com/inks/hb/common/MD5.java b/src/main/java/com/inks/hb/common/MD5.java
index f4279b6..f85a4b3 100644
--- a/src/main/java/com/inks/hb/common/MD5.java
+++ b/src/main/java/com/inks/hb/common/MD5.java
@@ -5,18 +5,33 @@ import java.util.Base64;
public class MD5 {
+ /**
+ * 生成给定字符串的MD5哈希值,并返回其Base64编码结果。
+ * @param str 要进行哈希处理的字符串
+ * @return 经过Base64编码的哈希值
+ */
public String getMD5(String str) {
+ // 在输入字符串前添加盐值
String Salt = "mH8yhBL-n*j-2gmC" + str;
+ // 将带盐值的字符串转换为字节数组,并进行Base64编码
return Base64.getEncoder().encodeToString(Salt.getBytes(StandardCharsets.UTF_8));
}
+ /**
+ * 检查新字符串的MD5哈希值是否与旧字符串的哈希值匹配。
+ * @param newStr 新的字符串
+ * @param oldStr 旧的哈希值字符串
+ * @return 如果两个哈希值相等则返回true,否则返回false
+ */
public boolean checkMD5(String newStr, String oldStr) {
+ // 比较新字符串的MD5哈希值与旧字符串的哈希值是否相等
return getMD5(newStr).equals(oldStr);
}
public static void main(String[] args) {
+ // 创建MD5类的实例
MD5 md5 = new MD5();
+ // 输出字符串"toor"的MD5哈希值
System.out.println(md5.getMD5("toor"));
}
}
-