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; // 返回信用信息列表 } }