|
|
package com.itbaizhan.service;
|
|
|
|
|
|
import java.sql.ResultSet;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
import com.itbaizhan.dao.DB;
|
|
|
import com.itbaizhan.orm.Tcatelog;
|
|
|
import com.itbaizhan.orm.Tgoods;
|
|
|
import com.itbaizhan.orm.Torder;
|
|
|
import com.itbaizhan.orm.TorderItem;
|
|
|
import com.itbaizhan.orm.Txinyong;
|
|
|
|
|
|
/**
|
|
|
* 服务类:liuService
|
|
|
*
|
|
|
* 该类提供了多个与商品、订单、用户等相关的业务逻辑功能。它包含了查询商品、保存订单、更新库存、处理用户登录等功能。
|
|
|
*/
|
|
|
public class liuService {
|
|
|
|
|
|
/**
|
|
|
* 获取菜品种类的列表,返回菜品类别的 ID 和名称
|
|
|
*
|
|
|
* @return 返回菜品种类的 List,包含每个菜品的 ID 和名称
|
|
|
*/
|
|
|
public static List catelogList() {
|
|
|
List catelogList = new ArrayList(); // 初始化菜品种类列表
|
|
|
String sql = "select * from t_catelog where del='no'"; // 查询未被删除的菜品种类
|
|
|
Object[] params = {}; // 设置查询参数为空
|
|
|
DB mydb = new DB();
|
|
|
|
|
|
try {
|
|
|
mydb.doPstm(sql, params); // 执行 SQL 查询
|
|
|
ResultSet rs = mydb.getRs(); // 获取查询结果集
|
|
|
while (rs.next()) { // 遍历结果集
|
|
|
Tcatelog catelog = new Tcatelog(); // 创建 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; // 返回菜品类别列表
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取商品详细信息
|
|
|
*
|
|
|
* @param id 商品 ID
|
|
|
* @return 返回商品详细信息的 Tgoods 对象
|
|
|
*/
|
|
|
public static Tgoods getGoods(String id) {
|
|
|
Tgoods goods = new Tgoods(); // 初始化商品对象
|
|
|
String sql = "select * from t_goods where id=?"; // 查询指定商品的 SQL 语句
|
|
|
Object[] params = { id }; // 设置查询参数为商品 ID
|
|
|
DB mydb = new DB();
|
|
|
|
|
|
try {
|
|
|
mydb.doPstm(sql, params); // 执行查询
|
|
|
ResultSet rs = mydb.getRs(); // 获取查询结果集
|
|
|
rs.next(); // 移动到第一行(只查询一条记录)
|
|
|
|
|
|
// 设置商品属性
|
|
|
goods.setId(rs.getString("id"));
|
|
|
goods.setCatelog_id(rs.getString("catelog_id"));
|
|
|
goods.setBianhao(rs.getString("bianhao"));
|
|
|
goods.setMingcheng(rs.getString("mingcheng"));
|
|
|
goods.setJieshao(rs.getString("jieshao"));
|
|
|
goods.setFujian(rs.getString("fujian"));
|
|
|
goods.setShichangjia(rs.getInt("shichangjia"));
|
|
|
goods.setTejia(rs.getInt("tejia"));
|
|
|
goods.setDel(rs.getString("del"));
|
|
|
|
|
|
rs.close(); // 关闭结果集
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
mydb.closed(); // 关闭数据库连接
|
|
|
return goods; // 返回商品对象
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取最新商品的信息(按商品 ID 排序,最多返回前 8 个商品)
|
|
|
*
|
|
|
* @return 返回最新商品列表
|
|
|
*/
|
|
|
public static List goodsNew() {
|
|
|
List goodsList = new ArrayList(); // 初始化商品列表
|
|
|
String sql = "select * from t_goods where del='no' order by id desc"; // 查询未删除的商品,按 ID 降序排列
|
|
|
Object[] params = {}; // 设置查询参数为空
|
|
|
DB mydb = new DB();
|
|
|
|
|
|
try {
|
|
|
mydb.doPstm(sql, params); // 执行查询
|
|
|
ResultSet rs = mydb.getRs(); // 获取查询结果集
|
|
|
while (rs.next()) { // 遍历结果集
|
|
|
Tgoods goods = new Tgoods(); // 创建 Tgoods 对象
|
|
|
|
|
|
// 设置商品属性
|
|
|
goods.setId(rs.getString("id"));
|
|
|
goods.setCatelog_id(rs.getString("catelog_id"));
|
|
|
goods.setBianhao(rs.getString("bianhao"));
|
|
|
goods.setMingcheng(rs.getString("mingcheng"));
|
|
|
goods.setJieshao(rs.getString("jieshao"));
|
|
|
goods.setFujian(rs.getString("fujian"));
|
|
|
goods.setShichangjia(rs.getInt("shichangjia"));
|
|
|
goods.setTejia(rs.getInt("tejia"));
|
|
|
goods.setDel(rs.getString("del"));
|
|
|
|
|
|
goodsList.add(goods); // 将商品添加到列表
|
|
|
}
|
|
|
rs.close(); // 关闭结果集
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
mydb.closed(); // 关闭数据库连接
|
|
|
|
|
|
// 限制返回最多 8 个商品
|
|
|
if (goodsList.size() > 8) {
|
|
|
goodsList = goodsList.subList(0, 8);
|
|
|
}
|
|
|
return goodsList; // 返回最新商品列表
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据菜品类别 ID 获取该类别下的商品列表
|
|
|
*
|
|
|
* @param catelog_id 菜品类别 ID
|
|
|
* @return 返回该类别下的商品列表
|
|
|
*/
|
|
|
public static List goodsByCatelog(String catelog_id) {
|
|
|
List goodsList = new ArrayList(); // 初始化商品列表
|
|
|
String sql = "select * from t_goods where del='no' and catelog_id=? order by id desc"; // 根据类别 ID 查询商品
|
|
|
Object[] params = { catelog_id }; // 设置查询参数为菜品类别 ID
|
|
|
DB mydb = new DB();
|
|
|
|
|
|
try {
|
|
|
mydb.doPstm(sql, params); // 执行查询
|
|
|
ResultSet rs = mydb.getRs(); // 获取查询结果集
|
|
|
while (rs.next()) { // 遍历结果集
|
|
|
Tgoods goods = new Tgoods(); // 创建 Tgoods 对象
|
|
|
|
|
|
// 设置商品属性
|
|
|
goods.setId(rs.getString("id"));
|
|
|
goods.setCatelog_id(rs.getString("catelog_id"));
|
|
|
goods.setBianhao(rs.getString("bianhao"));
|
|
|
goods.setMingcheng(rs.getString("mingcheng"));
|
|
|
goods.setJieshao(rs.getString("jieshao"));
|
|
|
goods.setFujian(rs.getString("fujian"));
|
|
|
goods.setShichangjia(rs.getInt("shichangjia"));
|
|
|
goods.setTejia(rs.getInt("tejia"));
|
|
|
goods.setDel(rs.getString("del"));
|
|
|
|
|
|
goodsList.add(goods); // 将商品添加到列表
|
|
|
}
|
|
|
rs.close(); // 关闭结果集
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
mydb.closed(); // 关闭数据库连接
|
|
|
return goodsList; // 返回商品列表
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 保存订单信息
|
|
|
*
|
|
|
* @param order 订单对象,包含订单的各项信息
|
|
|
*/
|
|
|
public static void saveOrder(Torder order) {
|
|
|
String sql = "insert into t_order(id,bianhao,shijian,zhuangtai,huifu,songhuodizhi,fukuanfangshi,jine,user_id) values(?,?,?,?,?,?,?,?,?)";
|
|
|
Object[] params = { order.getId(), order.getBianhao(), order.getShijian(), order.getZhuangtai(),
|
|
|
order.getHuifu(), order.getSonghuodizhi(), order.getFukuanfangshi(), order.getJine(), order.getUser_id() };
|
|
|
DB mydb = new DB();
|
|
|
mydb.doPstm(sql, params); // 执行插入操作
|
|
|
mydb.closed(); // 关闭数据库连接
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 保存订单商品明细
|
|
|
*
|
|
|
* @param id 订单明细 ID
|
|
|
* @param order_id 订单 ID
|
|
|
* @param goods_id 商品 ID
|
|
|
* @param goods_quantity 商品数量
|
|
|
*/
|
|
|
public static void saveOrderItem(String id, String order_id, String goods_id, int goods_quantity) {
|
|
|
String sql = "insert into t_orderitem(id,order_id,goods_id,goods_quantity) values(?,?,?,?)";
|
|
|
Object[] params = { id, order_id, goods_id, goods_quantity };
|
|
|
DB mydb = new DB();
|
|
|
mydb.doPstm(sql, params); // 执行插入操作
|
|
|
mydb.closed(); // 关闭数据库连接
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 更新商品库存
|
|
|
*
|
|
|
* @param goods_id 商品 ID
|
|
|
* @param goods_quantity 商品数量
|
|
|
*/
|
|
|
public static void updateGoodsKucun(String goods_id, int goods_quantity) {
|
|
|
String sql = "update t_goods set kucun=kucun-? where id=?";
|
|
|
Object[] params = { goods_quantity, goods_id };
|
|
|
DB mydb = new DB();
|
|
|
mydb.doPstm(sql, params); // 执行更新操作
|
|
|
mydb.closed(); // 关闭数据库连接
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取用户的订单列表
|
|
|
*
|
|
|
* @param user_id 用户 ID
|
|
|
* @return 返回该用户的订单列表
|
|
|
*/
|
|
|
public static List orderList(String user_id) {
|
|
|
List orderList = new ArrayList(); // 初始化订单列表
|
|
|
String sql = "select * from t_order where user_id=?"; // 查询该用户的所有订单
|
|
|
Object[] params = { user_id }; // 设置查询参数为用户 ID
|
|
|
DB mydb = new DB();
|
|
|
|
|
|
try {
|
|
|
mydb.doPstm(sql, params); // 执行查询
|
|
|
ResultSet rs = mydb.getRs(); // 获取查询结果集
|
|
|
while (rs.next()) { // 遍历结果集
|
|
|
Torder order = new Torder(); // 创建 Torder 对象
|
|
|
|
|
|
// 设置订单属性
|
|
|
order.setId(rs.getString("id"));
|
|
|
order.setBianhao(rs.getString("bianhao"));
|
|
|
order.setShijian(rs.getString("shijian"));
|
|
|
order.setZhuangtai(rs.getString("zhuangtai"));
|
|
|
order.setHuifu(rs.getString("huifu"));
|
|
|
order.setSonghuodizhi(rs.getString("songhuodizhi"));
|
|
|
order.setFukuanfangshi(rs.getString("fukuanfangshi"));
|
|
|
order.setJine(rs.getInt("jine"));
|
|
|
order.setUser_id(rs.getString("user_id"));
|
|
|
|
|
|
orderList.add(order); // 将订单添加到列表
|
|
|
}
|
|
|
rs.close(); // 关闭结果集
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
mydb.closed(); // 关闭数据库连接
|
|
|
return orderList; // 返回订单列表
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取订单商品的详细信息列表
|
|
|
*
|
|
|
* @param order_id 订单 ID
|
|
|
* @return 返回订单商品的列表,包含商品信息和数量
|
|
|
*/
|
|
|
public static List orderItemList(String order_id) {
|
|
|
List orderitemList = new ArrayList(); // 初始化订单商品列表
|
|
|
String sql = "select * from t_orderitem where order_id=?"; // 查询订单中包含的商品
|
|
|
Object[] params = { order_id }; // 设置查询参数为订单 ID
|
|
|
DB mydb = new DB();
|
|
|
|
|
|
try {
|
|
|
mydb.doPstm(sql, params); // 执行查询
|
|
|
ResultSet rs = mydb.getRs(); // 获取查询结果集
|
|
|
while (rs.next()) { // 遍历结果集
|
|
|
TorderItem orderItem = new TorderItem(); // 创建 TorderItem 对象
|
|
|
|
|
|
// 设置订单商品属性
|
|
|
orderItem.setId(rs.getString("id"));
|
|
|
orderItem.setGoods(getGoods(rs.getString("goods_id"))); // 获取商品信息
|
|
|
orderItem.setGoods_quantity(rs.getInt("goods_quantity")); // 设置商品数量
|
|
|
|
|
|
orderitemList.add(orderItem); // 将订单商品添加到列表
|
|
|
}
|
|
|
rs.close(); // 关闭结果集
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
mydb.closed(); // 关闭数据库连接
|
|
|
return orderitemList; // 返回订单商品列表
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 判断用户的账号是否存在
|
|
|
*
|
|
|
* @param loginname 用户登录账号
|
|
|
* @return 如果账号存在,返回 "yizhan",否则返回 "meizhan"
|
|
|
*/
|
|
|
public static String panduan_zhanghao(String loginname) {
|
|
|
String s = "meizhan"; // 默认返回“没占用”
|
|
|
|
|
|
String sql = "select * from t_user where del='no' and loginname=?"; // 查询账号是否存在
|
|
|
Object[] params = { loginname.trim() }; // 设置查询参数为账号
|
|
|
DB mydb = new DB();
|
|
|
|
|
|
try {
|
|
|
mydb.doPstm(sql, params); // 执行查询
|
|
|
ResultSet rs = mydb.getRs(); // 获取查询结果集
|
|
|
while (rs.next()) { // 如果查询到结果,表示账号已存在
|
|
|
s = "yizhan"; // 账号已占用
|
|
|
}
|
|
|
rs.close(); // 关闭结果集
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
mydb.closed(); // 关闭数据库连接
|
|
|
return s; // 返回账号是否已占用
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取用户的信用信息列表
|
|
|
*
|
|
|
* @param user_id 用户 ID
|
|
|
* @return 返回该用户的信用信息列表
|
|
|
*/
|
|
|
public static List getxinyongList(String user_id) {
|
|
|
List xinyongList = new ArrayList(); // 初始化信用信息列表
|
|
|
String sql = "select * from t_xinyong where user_id=?"; // 查询该用户的信用信息
|
|
|
Object[] params = { user_id }; // 设置查询参数为用户 ID
|
|
|
DB mydb = new DB();
|
|
|
|
|
|
try {
|
|
|
mydb.doPstm(sql, params); // 执行查询
|
|
|
ResultSet rs = mydb.getRs(); // 获取查询结果集
|
|
|
while (rs.next()) { // 遍历结果集
|
|
|
Txinyong xinyong = new Txinyong(); // 创建 Txinyong 对象
|
|
|
|
|
|
// 设置信用信息属性
|
|
|
xinyong.setId(rs.getString("id"));
|
|
|
xinyong.setShuxing(rs.getString("shuxing"));
|
|
|
xinyong.setNeirong(rs.getString("neirong"));
|
|
|
xinyong.setShijian(rs.getString("shijian"));
|
|
|
xinyong.setUser_id(rs.getString("user_id"));
|
|
|
|
|
|
xinyongList.add(xinyong); // 将信用信息添加到列表
|
|
|
}
|
|
|
rs.close(); // 关闭结果集
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
mydb.closed(); // 关闭数据库连接
|
|
|
return xinyongList; // 返回信用信息列表
|
|
|
}
|
|
|
}
|