关卡 | 任务名称 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
1 | 商品列表 | |||||||||
2 | 商品详情 | |||||||||
3 | 商品搜索 | |||||||||
4 | 购物车列表 | |||||||||
5 | 购物车操作 | |||||||||
6 | 下单 | |||||||||
7 | 订单查询 |
第一二三关
package com.educoder.service.impl;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.educoder.entity.Goods;
import com.educoder.service.GoodsService;
import com.educoder.dao.impl.BaseDao;
public class GoodsServiceImpl implements GoodsService {
/**
* 商品详情接口
*/
public Goods getGoodsByGoodsId(String goodsId) {
/********* Begin *********/
String sql = "select * from t_goods where goodsId = ?";
List<Object> parameters = new ArrayList<Object>();
parameters.add(goodsId);
List<Goods> goodsList = null;
try {
goodsList = BaseDao.operQuery(sql, parameters, Goods.class);
} catch (Exception e) {
e.printStackTrace();
}
return goodsList.size() == 0 ? null : goodsList.get(0);
/********* End *********/
}
/**
* 商品搜索接口
*/
public List<Goods> searchGoods(String condition) {
/********* Begin *********/
String sql = "select * from t_goods where goodsName like ? or goodsClass like ? order by salesNum desc";
List<Goods> goodsList = null;
condition = "%" + condition + "%";
List<Object> paramenter = new ArrayList<Object>();
paramenter.add(condition);
paramenter.add(condition);
try {
goodsList = BaseDao.operQuery(sql, paramenter, Goods.class);
} catch (Exception e) {
e.printStackTrace();
}
return goodsList;
/********* End *********/
}
/**
* 商品列表接口
*/
public List<Goods> getGoodsList() {
/********* Begin *********/
String USERNAME = "root";
String PASSWORD = "123123";
String URL = "jdbc:mysql://127.0.0.1:3306/online_shop?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true";
Connection conn = null;
PreparedStatement pste = null;
ResultSet executeQuery = null;
List<Goods> list = new ArrayList<Goods>();
String sql = "select * from t_goods order by salesNum desc limit 4";
try {
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
pste = conn.prepareStatement(sql);
executeQuery = pste.executeQuery();
while (executeQuery.next()) {
Goods goods = new Goods();
goods.setGoodsId(executeQuery.getString("goodsId"));
goods.setGoodsName(executeQuery.getString("goodsName"));
goods.setGoodsImg(executeQuery.getString("goodsImg"));
goods.setGoodsPrice(executeQuery.getBigDecimal("goodsPrice"));
goods.setGoodsNum(executeQuery.getInt("goodsNum"));
goods.setSalesNum(executeQuery.getInt("salesNum"));
goods.setGoodsSize(executeQuery.getString("goodsSize"));
goods.setGoodsFrom(executeQuery.getString("goodsFrom"));
goods.setGoodsTime(executeQuery.getString("goodsTime"));
goods.setGoodsSaveCondition(executeQuery.getString("goodsSaveCondition"));
goods.setGoodsDescribe(executeQuery.getString("goodsDescribe"));
goods.setGoodsExplain(executeQuery.getString("goodsExplain"));
goods.setGoodsClass(executeQuery.getString("goodsClass"));
goods.setGoodsDiscount(executeQuery.getBigDecimal("goodsDiscount"));
goods.setDiscountStartTime(executeQuery.getDate("discountStartTime"));
goods.setDiscountEndTime(executeQuery.getDate("discountEndTime"));
list.add(goods);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (executeQuery != null)
executeQuery.close();
if (pste != null)
pste.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
/********* End *********/
}
}
第四五关
package com.educoder.service.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.educoder.dao.impl.BaseDao;
import com.educoder.entity.Cart;
import com.educoder.entity.User;
import com.educoder.service.CartService;
public class CartServiceImpl implements CartService {
// 查询购物车列表
public List<Cart> getGoodsByUserId(HttpServletRequest request) {
/********* Begin *********/
User user = (User)request.getSession().getAttribute("user");
String userId = user.getUserId();
String sql = "select * from t_cart as a, t_goods as b where a.goodsId = b.goodsId and a.userId = ?";
List<Cart> cartList = null;
List<Object> parameters = new ArrayList<Object>();
parameters.add(userId);
try {
cartList = BaseDao.operQuery(sql, parameters, Cart.class);
} catch (Exception e) {
e.printStackTrace();
}
return cartList;
/********* End *********/
}
// 购物车操作接口
@Override
public void doCartHandle(String userId, String goodsId, String buyNum, String oper) {
/********* Begin *********/
String deletesql = "delete from t_cart where userId=? and goodsId=?";
String querysql = "select * from t_cart where userId = ? and goodsId = ?";
String updatesql = "update t_cart set buyNum=? where userId=? and goodsId=?";
String addsql = "insert into t_cart(userId, goodsId, buyNum, addTime) values(?, ?, ?, ?)";
List<Object> parameters = new ArrayList<Object>();
//删除
if(buyNum == null) {
parameters.add(userId);
parameters.add(goodsId);
BaseDao.operUpdate(deletesql, parameters);
}
else{
//进行修改和添加
List<Cart> goodsList = null;
parameters.add(userId);
parameters.add(goodsId);
try {
goodsList = BaseDao.operQuery(querysql, parameters, Cart.class);
parameters.clear();
} catch (Exception e) {
e.printStackTrace();
}
//进行添加
if(goodsList.isEmpty()) {
parameters.add(userId);
parameters.add(goodsId);
parameters.add(buyNum);
parameters.add(new Date());
BaseDao.operUpdate(addsql, parameters);
}
else {
//进行修改
if(oper != null) {
buyNum += goodsList.get(0).getBuyNum();
parameters.add(buyNum);
parameters.add(userId);
parameters.add(goodsId);
BaseDao.operUpdate(updatesql, parameters);
}
}
}
/********* End *********/
}
}
第六七关
package com.educoder.service.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import com.educoder.dao.impl.BaseDao;
import com.educoder.entity.Order;
import com.educoder.service.OrderService;
public class OrderServiceImpl implements OrderService {
private CartServiceImpl catService = new CartServiceImpl();
// 下单
public Order submitOrder(String userId, String addressId, String[] goodsBuyNum,
String[] chooseGoodId) {
/********* Begin *********/
Order order = new Order();
String ordersql = "insert into t_order(orderId, userId, orderTime, addressId) values(?, ?, ?, ?)";
String child_order_sql = "insert into t_order_child (orderId, goodsId, buyNum) values( ?, ?, ?) ";
String orderId = UUID.randomUUID().toString();
List<Object> parameters = new ArrayList<Object>();
parameters.add(orderId);
parameters.add(userId);
parameters.add(new Date());
parameters.add(addressId);
BaseDao.operUpdate(ordersql, parameters);
for(int n = 0 ; n < chooseGoodId.length; n++) {
parameters.clear();
parameters.add(orderId);
parameters.add(chooseGoodId[n]);
parameters.add(goodsBuyNum[n]);
BaseDao.operUpdate(child_order_sql, parameters);
//下单后,需要清空购物车
catService.doCartHandle(userId, chooseGoodId[n], null, null);
}
//返回带有订单id的订单
order.setOrderId(orderId);
return order;
/********* End *********/
}
// 订单查询
public List<Order> getOrderByUserId(String userId) {
/********* Begin *********/
String sql = "select A.orderId, A.userId, B.userName, A.orderTime, C.address, E.goodsId, E.goodsName, D.buyNum, E.goodsPrice from " +
"t_order as A, t_user as B, t_address as C, t_order_child as D, t_goods as E " +
"where A.userId=? and A.orderId=D.orderId and A.userId=B.userId and A.addressId=C.addressId and D.goodsId=E.goodsId " +
"order by orderTime desc";
List<Object> parameters = new ArrayList<Object>();
parameters.add(userId);
List<Order> orderList = null;
try {
orderList = BaseDao.operQuery(sql, parameters, Order.class);
} catch (Exception e) {
e.printStackTrace();
}
return orderList;
/********* End *********/
}
}