1.項目介紹
實現一個網上商城,商品信息展示,購物車,訂單管理,個人中心,商品評價,商品搜索,地址管理,聊天,後臺管理(商品增刪改查),分類管理,活動管理,客服聊天回覆
2.開發環境
- 開發環境:IDEA/eclipse、Tomcat8.5+
- 數據庫:MySql
- 前端主要使用Bootstrap以及JQuery,後端基於SpringMVC、Spring、MyBatis進行開發,使用Maven構建
- activeMQ
相關代碼
@Controller
public class OrderController {
/*@Value("#{addressService}")*/
@Autowired
private AddressService addressService;
@Autowired
private ShopCartService shopCartService;
@Autowired
private GoodsService goodsService;
@Autowired
private OrderService orderService;
@Autowired
private ActivityService activityService;
@RequestMapping("/order")
public String showOrder(HttpSession session, Model model) {
User user = (User) session.getAttribute("user");
if (user == null) {
return "redirect:/login";
}
//查詢當前用戶的收貨地址
AddressExample addressExample = new AddressExample();
addressExample.or().andUseridEqualTo(user.getUserid());
List<Address> addressList = addressService.getAllAddressByExample(addressExample);
model.addAttribute("address", addressList);
//訂單信息
//獲取當前用戶的購物車信息
ShopCartExample shopCartExample = new ShopCartExample();
shopCartExample.or().andUseridEqualTo(user.getUserid());
List<ShopCart> shopCart = shopCartService.selectByExample(shopCartExample);
//獲取購物車中的商品信息
List<Goods> goodsAndImage = new ArrayList<>();
Float totalPrice = new Float(0);
Integer oldTotalPrice = 0;
for (ShopCart cart:shopCart) {
Goods goods = goodsService.selectById(cart.getGoodsid());
List<ImagePath> imagePathList = goodsService.findImagePath(goods.getGoodsid());
goods.setImagePaths(imagePathList);
goods.setNum(cart.getGoodsnum());
//活動信息
Activity activity = activityService.selectByKey(goods.getActivityid());
goods.setActivity(activity);
if(activity.getDiscount() != 1) {
goods.setNewPrice(goods.getPrice()*goods.getNum()* activity.getDiscount());
} else if(activity.getFullnum() != null) {
if (goods.getNum() >= activity.getFullnum()) {
goods.setNewPrice((float) (goods.getPrice()*(goods.getNum()-activity.getReducenum())));
} else {
goods.setNewPrice((float) (goods.getPrice()*goods.getNum()));
}
} else {
goods.setNewPrice((float) (goods.getPrice()*goods.getNum()));
}
totalPrice = totalPrice + goods.getNewPrice();
oldTotalPrice = oldTotalPrice + goods.getNum() * goods.getPrice();
goodsAndImage.add(goods);
}
model.addAttribute("totalPrice", totalPrice);
model.addAttribute("oldTotalPrice", oldTotalPrice);
model.addAttribute("goodsAndImage", goodsAndImage);
return "orderConfirm";
}
@RequestMapping("/orderFinish")
@ResponseBody
public Msg orderFinish(Float oldPrice, Float newPrice, Boolean isPay, Integer addressid,HttpSession session) {
User user = (User) session.getAttribute("user");
//獲取訂單信息
ShopCartExample shopCartExample = new ShopCartExample();
shopCartExample.or().andUseridEqualTo(user.getUserid());
List<ShopCart> shopCart = shopCartService.selectByExample(shopCartExample);
//刪除購物車
for (ShopCart cart : shopCart) {
shopCartService.deleteByKey(new ShopCartKey(cart.getUserid(),cart.getGoodsid()));
}
//把訂單信息寫入數據庫
Order order = new Order(null, user.getUserid(), new Date(), oldPrice, newPrice, isPay, false, false, false, addressid,null,null);
orderService.insertOrder(order);
//插入的訂單號
Integer orderId = order.getOrderid();
//把訂單項寫入orderitem表中
for (ShopCart cart : shopCart) {
orderService.insertOrderItem(new OrderItem(null, orderId, cart.getGoodsid(), cart.getGoodsnum()));
}
return Msg.success("購買成功");
}
}
@Controller
public class MainController {
@Autowired
private CateService cateService;
@Autowired
private GoodsService goodsService;
@RequestMapping("/main")
public String showAllGoods(Model model, HttpSession session) {
Integer userid;
User user = (User) session.getAttribute("user");
if (user == null) {
userid = null;
} else {
userid = user.getUserid();
}
//數碼分類
List<Goods> digGoods = getCateGoods("數碼", userid);
model.addAttribute("digGoods", digGoods);
//家電
List<Goods> houseGoods = getCateGoods("家電", userid);
model.addAttribute("houseGoods", houseGoods);
//服飾
List<Goods> colGoods = getCateGoods("服飾", userid);
model.addAttribute("colGoods", colGoods);
//書籍
List<Goods> bookGoods = getCateGoods("書籍", userid);
model.addAttribute("bookGoods", bookGoods);
return "main";
}
public List<Goods> getCateGoods(String cate, Integer userid) {
//查詢分類
CategoryExample digCategoryExample = new CategoryExample();
digCategoryExample.or().andCatenameLike(cate);
List<Category> digCategoryList = cateService.selectByExample(digCategoryExample);
if (digCategoryList.size() == 0) {
return null;
}
//查詢屬於剛查到的分類的商品
GoodsExample digGoodsExample = new GoodsExample();
List<Integer> digCateId = new ArrayList<Integer>();
for (Category tmp:digCategoryList) {
digCateId.add(tmp.getCateid());
}
digGoodsExample.or().andCategoryIn(digCateId);
List<Goods> goodsList = goodsService.selectByExampleLimit(digGoodsExample);
List<Goods> goodsAndImage = new ArrayList<>();
//獲取每個商品的圖片
for (Goods goods:goodsList) {
//判斷是否爲登錄狀態
if (userid == null) {
goods.setFav(false);
} else {
Favorite favorite = goodsService.selectFavByKey(new FavoriteKey(userid, goods.getGoodsid()));
if (favorite == null) {
goods.setFav(false);
} else {
goods.setFav(true);
}
}
List<ImagePath> imagePathList = goodsService.findImagePath(goods.getGoodsid());
goods.setImagePaths(imagePathList);
goodsAndImage.add(goods);
}
return goodsAndImage;
}
}