El carrito de compras solo muestra la tienda una vez y luego muestra todos los productos agregados al carrito desde esa tienda. ¿Cómo escribir lógica java? ¿Cómo escribir lógica java?

La pregunta no está completa. En primer lugar, hay muchas formas de implementar el carrito de compras. Las más comunes incluyen guardar cookies y guardar bases de datos.

De hecho, no importa cuál. Se utiliza el método, la esencia de su problema La solución es en realidad un proceso de agregación de datos. Suponemos que usa una base de datos para guardar el carrito de compras. Puede desmontar la pantalla del carrito de compras en dos interfaces ajax (solo escribo pseudocódigo). .

Supongamos que la estructura de la tabla de su carrito de compras es la siguiente:

La estructura de la tabla de tiendas es la siguiente:

Interfaz 1 (se usa para ver qué tiendas están en el carrito de compras del usuario): public?Listlt; CartShopInfogt ;?getMyShoppingCartShopList(Integer?userId)?{ String?sql?=?"select?DISTINCT(shop_id), shop_info.shop_name,?count(1)?from?shopping_cart?

left?join?shop_info ?on?shop_info.id?=?shopping_cart.shop_id

where?user_id?=?group?by?shop_id"; //Ejecuta sql y devuelve el objeto persistente de datos. Cómo escribirlo depende del jdbc que utilice. mybatis u otros. CartShopInfoList?=?cartShopInfoDao.execute(sql, userId); /p>

Interfaz 2 (utilizada para ver el carrito de compras del usuario Todos los productos en la tienda) public?Listlt; ProductInfogt;?getMyShoppingCartProductList(Integer?userId, Integer?shopId)?{ String?sql?=?"select?* ?from?product_info?where?id?in?(select?product_id ?from?shopping_cart? donde?user_id?=?and?shop_id?=)"; Listlt; ProductInfogt; ?productList?=?productDao.execute(sql, userId , shopId); return?productList;

}

Si encuentra que las dos interfaces son problemáticas, puede fusionar la lógica de la interfaz y devolver un Maplt; ShopCartInfogt; ShopCartInfo?{

privado?ShopInfo?shopInfo;

privado?Listlt;?productList;

//...?getter?and?setter;

}