|
|
package com.itbaizhan.service;
|
|
|
|
|
|
import java.sql.ResultSet;
|
|
|
import java.sql.SQLException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
import javax.servlet.http.HttpSession;
|
|
|
|
|
|
import org.directwebremoting.WebContext;
|
|
|
import org.directwebremoting.WebContextFactory;
|
|
|
|
|
|
import com.itbaizhan.dao.DB;
|
|
|
import com.itbaizhan.orm.TAdmin;
|
|
|
import com.itbaizhan.orm.Tcatelog;
|
|
|
import com.itbaizhan.orm.Tuser;
|
|
|
import com.itbaizhan.util.Cart;
|
|
|
|
|
|
public class loginService {
|
|
|
|
|
|
/**
|
|
|
* 用户登录方法
|
|
|
* 根据用户类型判断登录的身份,并验证账号密码。
|
|
|
* 登录成功后,将用户信息存入 session 中。
|
|
|
*
|
|
|
* @param userName 用户名
|
|
|
* @param userPw 密码
|
|
|
* @param userType 用户类型(0:管理员,1:会员,2:其他)
|
|
|
* @return 登录结果,"yes" 表示登录成功,"no" 表示登录失败
|
|
|
*/
|
|
|
public String login(String userName, String userPw, int userType) {
|
|
|
String result = "no"; // 默认登录失败
|
|
|
|
|
|
if (userType == 0) { // 系统管理员登录
|
|
|
String sql = "select * from t_admin where userName=? and userPw=?";
|
|
|
Object[] params = { userName, userPw };
|
|
|
DB mydb = new DB();
|
|
|
mydb.doPstm(sql, params);
|
|
|
try {
|
|
|
ResultSet rs = mydb.getRs(); // 获取查询结果集
|
|
|
boolean mark = (rs == null || !rs.next() ? false : true); // 判断查询结果是否为空
|
|
|
if (!mark) {
|
|
|
result = "no"; // 登录失败
|
|
|
} else {
|
|
|
result = "yes"; // 登录成功
|
|
|
TAdmin admin = new TAdmin();
|
|
|
admin.setUserId(rs.getInt("userId"));
|
|
|
admin.setUserName(rs.getString("userName"));
|
|
|
admin.setUserPw(rs.getString("userPw"));
|
|
|
|
|
|
WebContext ctx = WebContextFactory.get(); // 获取 WebContext 对象
|
|
|
HttpSession session = ctx.getSession();
|
|
|
session.setAttribute("userType", 0); // 设置用户类型为管理员
|
|
|
session.setAttribute("admin", admin); // 将管理员信息存入 session
|
|
|
}
|
|
|
rs.close();
|
|
|
} catch (SQLException e) {
|
|
|
System.out.println("登录失败!");
|
|
|
e.printStackTrace();
|
|
|
} finally {
|
|
|
mydb.closed();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (userType == 1) { // 会员登录
|
|
|
String sql = "select * from t_user where loginname=? and loginpw=? and del='no'";
|
|
|
Object[] params = { userName, userPw };
|
|
|
DB mydb = new DB();
|
|
|
try {
|
|
|
mydb.doPstm(sql, params); // 执行 SQL 查询
|
|
|
ResultSet rs = mydb.getRs(); // 获取查询结果集
|
|
|
boolean mark = (rs == null || !rs.next() ? false : true); // 判断查询结果是否为空
|
|
|
if (!mark) {
|
|
|
result = "no"; // 登录失败
|
|
|
} else {
|
|
|
result = "yes"; // 登录成功
|
|
|
Tuser user = new Tuser();
|
|
|
user.setId(rs.getString("id"));
|
|
|
user.setLoginname(rs.getString("loginname"));
|
|
|
user.setLoginpw(rs.getString("loginpw"));
|
|
|
user.setName(rs.getString("name"));
|
|
|
user.setDel(rs.getString("del"));
|
|
|
|
|
|
WebContext ctx = WebContextFactory.get(); // 获取 WebContext 对象
|
|
|
HttpSession session = ctx.getSession();
|
|
|
session.setAttribute("userType", 1); // 设置用户类型为会员
|
|
|
session.setAttribute("user", user); // 将用户信息存入 session
|
|
|
|
|
|
// 创建一个空的购物车对象,存入 session
|
|
|
Cart cart = new Cart();
|
|
|
session.setAttribute("cart", cart);
|
|
|
}
|
|
|
rs.close();
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
mydb.closed();
|
|
|
}
|
|
|
|
|
|
if (userType == 2) {
|
|
|
// 用户类型为 2 的登录逻辑可以在这里添加(暂未实现)
|
|
|
}
|
|
|
return result; // 返回登录结果
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 修改管理员密码
|
|
|
* 管理员修改密码功能。
|
|
|
*
|
|
|
* @param userPwNew 新密码
|
|
|
* @return 修改结果,"yes" 表示修改成功
|
|
|
*/
|
|
|
public String adminPwEdit(String userPwNew) {
|
|
|
System.out.println("DDDD");
|
|
|
try {
|
|
|
Thread.sleep(700); // 确保线程运行顺序
|
|
|
} catch (InterruptedException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
WebContext ctx = WebContextFactory.get(); // 获取 WebContext 对象
|
|
|
HttpSession session = ctx.getSession();
|
|
|
TAdmin admin = (TAdmin) session.getAttribute("admin"); // 获取当前登录的管理员对象
|
|
|
|
|
|
String sql = "update t_admin set userPw=? where userId=?";
|
|
|
Object[] params = { userPwNew, admin.getUserId() }; // 设置更新的参数
|
|
|
DB mydb = new DB();
|
|
|
mydb.doPstm(sql, params); // 执行更新操作
|
|
|
|
|
|
return "yes"; // 返回修改成功的结果
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取所有菜品类别
|
|
|
* 查询所有未删除的菜品类别并返回结果。
|
|
|
*
|
|
|
* @return 菜品类别列表
|
|
|
*/
|
|
|
public List catelogAll() {
|
|
|
try {
|
|
|
Thread.sleep(700); // 确保线程运行顺序
|
|
|
} catch (InterruptedException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
List catelogList = new ArrayList(); // 初始化菜品类别列表
|
|
|
String sql = "select * from t_catelog where del='no'"; // 查询未删除的菜品类别
|
|
|
Object[] params = {};
|
|
|
DB mydb = new DB();
|
|
|
try {
|
|
|
mydb.doPstm(sql, params); // 执行查询
|
|
|
ResultSet rs = mydb.getRs(); // 获取查询结果集
|
|
|
while (rs.next()) { // 遍历结果集
|
|
|
Tcatelog catelog = new Tcatelog();
|
|
|
catelog.setId(rs.getString("id")); // 设置菜品类别 ID
|
|
|
catelog.setName(rs.getString("name")); // 设置菜品类别名称
|
|
|
catelogList.add(catelog); // 将菜品类别添加到列表
|
|
|
}
|
|
|
rs.close();
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
mydb.closed(); // 关闭数据库连接
|
|
|
return catelogList; // 返回菜品类别列表
|
|
|
}
|
|
|
}
|