文章目录
- 蛋糕商城系统
- 一、项目演示
- 二、项目介绍
- 三、系统部分功能截图
- 四、部分代码展示
- 五、底部获取项目源码(9.9¥带走)
蛋糕商城系统
一、项目演示
蛋糕商城管理系统
二、项目介绍
系统角色 : 管理员、用户
一,管理员
管理员有订单管理,用户管理,商品管理,分类管理等功能
二,用户
用户可进行注册,登录,查看商品列表,查看商品详情,加入购物车,购买商品等功能。
语言:java
技术栈:JSP + Spring+Spring MVC+Mybatis
数据库:MySQL
三、系统部分功能截图
四、部分代码展示
package com.controller;
import java.util.Objects;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import com.entity.Admins;
import com.entity.Goods;
import com.entity.Tops;
import com.entity.Types;
import com.entity.Users;
import com.service.AdminService;
import com.service.GoodService;
import com.service.OrderService;
import com.service.TopService;
import com.service.TypeService;
import com.service.UserService;
import com.util.PageUtil;
import com.util.SafeUtil;
import com.util.UploadUtil;
/**
* 后台相关接口
*/
@Controller
@RequestMapping("/admin")
public class AdminController {
private static final int rows = 10;
@Autowired
private AdminService adminService;
@Autowired
private OrderService orderService;
@Autowired
private UserService userService;
@Autowired
private GoodService goodService;
@Autowired
private TopService topService;
@Autowired
private TypeService typeService;
/**
* 管理员登录
* @return
*/
@RequestMapping("/login")
public String login(Admins admin, HttpServletRequest request, HttpSession session) {
if (adminService.checkUser(admin.getUsername(), admin.getPassword())) {
session.setAttribute("username", admin.getUsername());
return "redirect:index";
}
request.setAttribute("msg", "用户名或密码错误!");
return "/admin/login.jsp";
}
/**
* 退出
* @return
*/
@RequestMapping("/logout")
public String logout(HttpSession session) {
session.removeAttribute("admin");
return "/admin/login.jsp";
}
/**
* 后台首页
* @return
*/
@RequestMapping("/index")
public String index(HttpServletRequest request) {
request.setAttribute("msg", "恭喜你! 登录成功了");
return "/admin/index.jsp";
}
/**
* 订单列表
*
* @return
*/
@RequestMapping("/orderList")
public String orderList(@RequestParam(required=false, defaultValue="0")byte status, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
request.setAttribute("flag", 1);
request.setAttribute("status", status);
request.setAttribute("orderList", orderService.getList(status, page, rows));
request.setAttribute("pageTool", PageUtil.getPageTool(request, orderService.getTotal(status), page, rows));
return "/admin/order_list.jsp";
}
/**
* 订单发货
*
* @return
*/
@RequestMapping("/orderDispose")
public String orderDispose(int id, byte status,
@RequestParam(required=false, defaultValue="1") int page) {
orderService.dispose(id);
return "redirect:orderList?flag=1&status="+status+"&page="+page;
}
/**
* 订单完成
*
* @return
*/
@RequestMapping("/orderFinish")
public String orderFinish(int id, byte status,
@RequestParam(required=false, defaultValue="1") int page) {
orderService.finish(id);
return "redirect:orderList?flag=1&status="+status+"&page="+page;
}
/**
* 订单删除
*
* @return
*/
@RequestMapping("/orderDelete")
public String orderDelete(int id, byte status,
@RequestParam(required=false, defaultValue="1") int page) {
orderService.delete(id);
return "redirect:orderList?flag=1&status="+status+"&page="+page;
}
/**
* 顾客管理
*
* @return
*/
@RequestMapping("/userList")
public String userList(HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
request.setAttribute("flag", 2);
request.setAttribute("userList", userService.getList(page, rows));
request.setAttribute("pageTool", PageUtil.getPageTool(request, userService.getTotal(), page, rows));
return "/admin/user_list.jsp";
}
/**
* 顾客添加
*
* @return
*/
@RequestMapping("/userAdd")
public String userAdd(HttpServletRequest request) {
request.setAttribute("flag", 2);
return "/admin/user_add.jsp";
}
/**
* 顾客添加
*
* @return
*/
@RequestMapping("/userSave")
public String userSave(Users user, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
if (userService.isExist(user.getUsername())) {
request.setAttribute("msg", "用户名已存在!");
return "/admin/user_add.jsp";
}
userService.add(user);
return "redirect:userList?flag=2&page="+page;
}
/**
* 顾客密码重置页面
*
* @return
*/
@RequestMapping("/userRe")
public String userRe(int id, HttpServletRequest request) {
request.setAttribute("flag", 2);
request.setAttribute("user", userService.get(id));
return "/admin/user_reset.jsp";
}
/**
* 顾客密码重置
*
* @return
*/
@RequestMapping("/userReset")
public String userReset(Users user,
@RequestParam(required=false, defaultValue="1") int page) {
String password = SafeUtil.encode(user.getPassword());
user = userService.get(user.getId());
user.setPassword(password);
userService.update(user);
return "redirect:userList?flag=2&page="+page;
}
/**
* 顾客更新
*
* @return
*/
@RequestMapping("/userEdit")
public String userEdit(int id, HttpServletRequest request) {
request.setAttribute("flag", 2);
request.setAttribute("user", userService.get(id));
return "/admin/user_edit.jsp";
}
/**
* 顾客更新
*
* @return
*/
@RequestMapping("/userUpdate")
public String userUpdate(Users user,
@RequestParam(required=false, defaultValue="1") int page) {
userService.update(user);
return "redirect:userList?flag=2&page="+page;
}
/**
* 顾客删除
*
* @return
*/
@RequestMapping("/userDelete")
public String userDelete(Users user,
@RequestParam(required=false, defaultValue="1") int page) {
userService.delete(user);
return "redirect:userList?flag=2&page="+page;
}
/**
* 产品列表
*
* @return
*/
@RequestMapping("/goodList")
public String goodList(@RequestParam(required=false, defaultValue="0")byte status, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
request.setAttribute("flag", 3);
request.setAttribute("page", page);
request.setAttribute("status", status);
request.setAttribute("goodList", goodService.getList(status, page, rows));
request.setAttribute("pageTool", PageUtil.getPageTool(request, goodService.getTotal(status), page, rows));
return "/admin/good_list.jsp";
}
/**
* 产品添加
*
* @return
*/
@RequestMapping("/goodAdd")
public String goodAdd(HttpServletRequest request) {
request.setAttribute("flag", 3);
request.setAttribute("typeList", typeService.getList());
return "/admin/good_add.jsp";
}
/**
* 产品添加
*
* @return
* @throws Exception
*/
@RequestMapping("/goodSave")
public String goodSave(String name, int price, String intro, int stock, int typeId,
MultipartFile cover, MultipartFile image1, MultipartFile image2,
@RequestParam(required=false, defaultValue="1") int page) throws Exception {
Goods good = new Goods();
good.setName(name);
good.setPrice(price);
good.setIntro(intro);
good.setStock(stock);
good.setTypeId(typeId);
good.setCover(UploadUtil.fileUpload(cover));
good.setImage1(UploadUtil.fileUpload(image1));
good.setImage2(UploadUtil.fileUpload(image2));
goodService.add(good);
return "redirect:goodList?flag=3&page="+page;
}
/**
* 产品更新
*
* @return
*/
@RequestMapping("/goodEdit")
public String goodEdit(int id, HttpServletRequest request) {
request.setAttribute("flag", 3);
request.setAttribute("typeList", typeService.getList());
request.setAttribute("good", goodService.get(id));
return "/admin/good_edit.jsp";
}
/**
* 产品更新
*
* @return
* @throws Exception
*/
@RequestMapping("/goodUpdate")
public String goodUpdate(int id, String name, int price, String intro, int stock, int typeId,
MultipartFile cover, MultipartFile image1, MultipartFile image2,
@RequestParam(required=false, defaultValue="1") int page) throws Exception {
Goods good = goodService.get(id);
good.setName(name);
good.setPrice(price);
good.setIntro(intro);
good.setStock(stock);
good.setTypeId(typeId);
if (Objects.nonNull(cover) && !cover.isEmpty()) {
good.setCover(UploadUtil.fileUpload(cover));
}
if (Objects.nonNull(image1) && !image1.isEmpty()) {
good.setImage1(UploadUtil.fileUpload(image1));
}
if (Objects.nonNull(image2) && !image2.isEmpty()) {
good.setImage2(UploadUtil.fileUpload(image2));
}
goodService.update(good);
return "redirect:goodList?flag=3&page="+page;
}
/**
* 产品删除
*
* @return
*/
@RequestMapping("/goodDelete")
public String goodDelete(int id,
@RequestParam(required=false, defaultValue="1") int page) {
goodService.delete(id);
return "redirect:goodList?flag=3&page="+page;
}
/**
* 添加推荐
* @return
*/
@RequestMapping("/topSave")
public @ResponseBody String topSave(Tops tops,
@RequestParam(required=false, defaultValue="0")byte status,
@RequestParam(required=false, defaultValue="1") int page) {
int id = topService.add(tops);
return id > 0 ? "ok" : null;
}
/**
* 删除推荐
* @return
*/
@RequestMapping("/topDelete")
public @ResponseBody String topDelete(Tops tops,
@RequestParam(required=false, defaultValue="0")byte status,
@RequestParam(required=false, defaultValue="1") int page) {
boolean flag = topService.delete(tops);
return flag ? "ok" : null;
}
/**
* 类目列表
*
* @return
*/
@RequestMapping("/typeList")
public String typeList(HttpServletRequest request) {
request.setAttribute("flag", 4);
request.setAttribute("typeList", typeService.getList());
return "/admin/type_list.jsp";
}
/**
* 类目添加
*
* @return
*/
@RequestMapping("/typeSave")
public String typeSave(Types type,
@RequestParam(required=false, defaultValue="1") int page) {
typeService.add(type);
return "redirect:typeList?flag=4&page="+page;
}
/**
* 类目更新
*
* @return
*/
@RequestMapping("/typeEdit")
public String typeUp(int id, HttpServletRequest request) {
request.setAttribute("flag", 4);
request.setAttribute("type", typeService.get(id));
return "/admin/type_edit.jsp";
}
/**
* 类目更新
*
* @return
*/
@RequestMapping("/typeUpdate")
public String typeUpdate(Types type,
@RequestParam(required=false, defaultValue="1") int page) {
typeService.update(type);
return "redirect:typeList?flag=4&page="+page;
}
/**
* 类目删除
*
* @return
*/
@RequestMapping("/typeDelete")
public String typeDelete(Types type,
@RequestParam(required=false, defaultValue="1") int page) {
typeService.delete(type);
return "redirect:typeList?flag=4&page="+page;
}
/**
* 管理员列表
*
* @return
*/
@RequestMapping("/adminList")
public String adminList(HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
request.setAttribute("flag", 5);
request.setAttribute("adminList", adminService.getList(page, rows));
request.setAttribute("pageTool", PageUtil.getPageTool(request, adminService.getTotal(), page, rows));
return "/admin/admin_list.jsp";
}
/**
* 管理员修改自己密码
*
* @return
*/
@RequestMapping("/adminRe")
public String adminRe(HttpServletRequest request, HttpSession session) {
request.setAttribute("flag", 5);
request.setAttribute("admin", adminService.getByUsername(String.valueOf(session.getAttribute("username"))));
return "/admin/admin_reset.jsp";
}
/**
* 管理员修改自己密码
*
* @return
*/
@RequestMapping("/adminReset")
public String adminReset(Admins admin, HttpServletRequest request) {
request.setAttribute("flag", 5);
if (adminService.get(admin.getId()).getPassword().equals(SafeUtil.encode(admin.getPassword()))) {
admin.setPassword(SafeUtil.encode(admin.getPasswordNew()));
adminService.update(admin);
request.setAttribute("admin", admin);
request.setAttribute("msg", "修改成功!");
}else {
request.setAttribute("msg", "原密码错误!");
}
return "/admin/admin_reset.jsp";
}
/**
* 管理员添加
*
* @return
*/
@RequestMapping("/adminSave")
public String adminSave(Admins admin, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
if (adminService.isExist(admin.getUsername())) {
request.setAttribute("msg", "用户名已存在!");
return "/admin/admin_add.jsp";
}
adminService.add(admin);
return "redirect:adminList?flag=5&page="+page;
}
/**
* 管理员修改
*
* @return
*/
@RequestMapping("/adminEdit")
public String adminEdit(int id, HttpServletRequest request) {
request.setAttribute("flag", 5);
request.setAttribute("admin", adminService.get(id));
return "/admin/admin_edit.jsp";
}
/**
* 管理员更新
*
* @return
*/
@RequestMapping("/adminUpdate")
public String adminUpdate(Admins admin,
@RequestParam(required=false, defaultValue="1") int page) {
admin.setPassword(SafeUtil.encode(admin.getPassword()));
adminService.update(admin);
return "redirect:adminList?flag=5&page="+page;
}
/**
* 管理员删除
*
* @return
*/
@RequestMapping("/adminDelete")
public String adminDelete(Admins admin,
@RequestParam(required=false, defaultValue="1") int page) {
adminService.delete(admin);
return "redirect:adminList?flag=5&page="+page;
}
}
package com.controller;
import javax.annotation.Resource;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.entity.Goods;
import com.entity.Items;
import com.entity.Orders;
import com.entity.Users;
import com.service.GoodService;
import com.service.OrderService;
import com.service.TypeService;
import com.service.UserService;
import com.util.SafeUtil;
import java.util.List;
import java.util.Objects;
/**
* 用户相关接口
*/
@Controller
@RequestMapping("/index")
public class UserController{
private static final String INDENT_KEY = "order";
@Resource
private UserService userService;
@Resource
private OrderService orderService;
@Resource
private GoodService goodService;
@Resource
private TypeService typeService;
/**
* 注册用户
* @return
*/
@RequestMapping("/register")
public String register(@RequestParam(required=false, defaultValue="0")int flag, Users user, Model model){
model.addAttribute("typeList", typeService.getList());
if(flag==-1) {
model.addAttribute("flag", 5); // 注册页面
return "/index/register.jsp";
}
if (user.getUsername().isEmpty()) {
model.addAttribute("msg", "用户名不能为空!");
return "/index/register.jsp";
}else if (userService.isExist(user.getUsername())) {
model.addAttribute("msg", "用户名已存在!");
return "/index/register.jsp";
}else {
String password = user.getPassword();
userService.add(user);
user.setPassword(password);
return "redirect:login?flag=-1"; // 注册成功后转去登录
}
}
/**
* 用户登录
* @return
*/
@RequestMapping("/login")
public String login(@RequestParam(required=false, defaultValue="0")int flag, Users user, HttpSession session, Model model) {
model.addAttribute("typeList", typeService.getList());
if(flag==-1) {
flag = 6; // 登录页面
return "/index/login.jsp";
}
if(userService.checkUser(user.getUsername(), user.getPassword())){
session.setAttribute("user", userService.get(user.getUsername()));
return "redirect:index";
} else {
model.addAttribute("msg", "用户名或密码错误!");
return "/index/login.jsp";
}
}
/**
* 注销登录
* @return
*/
@RequestMapping("/logout")
public String logout(HttpSession session) {
session.removeAttribute("user");
session.removeAttribute("order");
return "/index/login.jsp";
}
/**
* 查看购物车
* @return
*/
@RequestMapping("/cart")
public String cart(Model model) {
model.addAttribute("typeList", typeService.getList());
return "/index/cart.jsp";
}
/**
* 购买
* @return
*/
@RequestMapping("/buy")
public @ResponseBody String buy(int goodid, HttpSession session){
Goods goods = goodService.get(goodid);
if (goods .getStock() <= 0) { // 库存不足
return "empty";
}
Orders order = (Orders) session.getAttribute(INDENT_KEY);
if (order==null) {
session.setAttribute(INDENT_KEY, orderService.add(goods));
}else {
session.setAttribute(INDENT_KEY, orderService.addOrderItem(order, goods));
}
return "ok";
}
/**
* 减少
*/
@RequestMapping("/lessen")
public @ResponseBody String lessen(int goodid, HttpSession session){
Orders order = (Orders) session.getAttribute(INDENT_KEY);
if (order != null) {
session.setAttribute(INDENT_KEY, orderService.lessenIndentItem(order, goodService.get(goodid)));
}
return "ok";
}
/**
* 删除
*/
@RequestMapping("/delete")
public @ResponseBody String delete(int goodid, HttpSession session){
Orders order = (Orders) session.getAttribute(INDENT_KEY);
if (order != null) {
session.setAttribute(INDENT_KEY, orderService.deleteIndentItem(order, goodService.get(goodid)));
}
return "ok";
}
/**
* 提交订单
* @return
*/
@RequestMapping("/save")
public String save(ServletRequest request, HttpSession session, Model model){
model.addAttribute("typeList", typeService.getList());
Users user = (Users) session.getAttribute("user");
if (user == null) {
request.setAttribute("msg", "请登录后提交订单!");
return "/index/login.jsp";
}
Orders sessionOrder = (Orders) session.getAttribute(INDENT_KEY);
if (sessionOrder != null) {
if (sessionOrder != null) {
for(Items item : sessionOrder.getItemList()){ // 检测商品库存(防止库存不足)
Goods product = goodService.get(item.getGoodId());
if(item.getAmount() > product.getStock()){
request.setAttribute("msg", "商品 ["+product.getName()+"] 库存不足! 当前库存数量: "+product.getStock());
return "/index/cart.jsp";
}
}
}
sessionOrder.setUserId(user.getId());
sessionOrder.setUser(userService.get(user.getId()));
int orderid = orderService.save(sessionOrder); // 保存订单
session.removeAttribute(INDENT_KEY); // 清除购物车
return "redirect:topay?orderid="+orderid;
}
request.setAttribute("msg", "处理失败!");
return "/index/cart.jsp";
}
/**
* 支付页面
* @return
*/
@RequestMapping("/topay")
public String topay(int orderid, ServletRequest request, Model model) {
model.addAttribute("typeList", typeService.getList());
request.setAttribute("order", orderService.get(orderid));
return "/index/pay.jsp";
}
/**
* 支付(模拟)
* @return
*/
@RequestMapping("/pay")
public String pay(Orders order, Model model) {
model.addAttribute("typeList", typeService.getList());
orderService.pay(order);
return "redirect:payok?orderid="+order.getId();
}
/**
* 支付成功
* @return
*/
@RequestMapping("/payok")
public String payok(int orderid, ServletRequest request, Model model) {
model.addAttribute("typeList", typeService.getList());
Orders order = orderService.get(orderid);
int paytype = order.getPaytype();
if(paytype == Orders.PAYTYPE_WECHAT || paytype == Orders.PAYTYPE_ALIPAY) {
request.setAttribute("msg", "订单["+orderid+"]支付成功");
}else {
request.setAttribute("msg", "订单["+orderid+"]货到付款");
}
return "/index/payok.jsp";
}
/**
* 查看订单
* @return
*/
@RequestMapping("/order")
public String order(HttpSession session, Model model){
model.addAttribute("flag", 3);
model.addAttribute("typeList", typeService.getList());
Users user = (Users) session.getAttribute("user");
if (user == null) {
model.addAttribute("msg", "请登录后查看订单!");
return "/index/login.jsp";
}
List<Orders> orderList = orderService.getListByUserid(user.getId());
if (orderList!=null && !orderList.isEmpty()) {
for(Orders order : orderList){
order.setItemList(orderService.getItemList(order.getId()));
}
}
model.addAttribute("orderList", orderList);
return "/index/order.jsp";
}
/**
* 个人信息
* @return
*/
@RequestMapping("/my")
public String my(Users user, HttpSession session, Model model){
model.addAttribute("flag", 4);
model.addAttribute("typeList", typeService.getList());
Users userLogin = (Users) session.getAttribute("user");
if (userLogin == null) {
model.addAttribute("msg", "请先登录!");
return "/index/login.jsp";
}
// 进入个人中心
if (Objects.isNull(user) || Objects.isNull(user.getId())) {
return "/index/my.jsp";
}
Users u = userService.get(user.getId());
// 修改资料
u.setName(user.getName());
u.setPhone(user.getPhone());
u.setAddress(user.getAddress());
userService.update(u); // 更新数据库
session.setAttribute("user", u); // 更新session
model.addAttribute("msg", "信息修改成功!");
// 修改密码
if(user.getPasswordNew()!=null && !user.getPasswordNew().trim().isEmpty()) {
if (user.getPassword()!=null && !user.getPassword().trim().isEmpty()
&& SafeUtil.encode(user.getPassword()).equals(u.getPassword())) {
if (user.getPasswordNew()!=null && !user.getPasswordNew().trim().isEmpty()) {
u.setPassword(SafeUtil.encode(user.getPasswordNew()));
}
userService.update(u); // 更新数据库
session.setAttribute("user", u); // 更新session
model.addAttribute("msg", "密码修改成功!");
}else {
model.addAttribute("msg", "原密码错误!");
}
}
return "/index/my.jsp";
}
}
package com.service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.dao.ItemsDao;
import com.dao.OrdersDao;
import com.entity.Goods;
import com.entity.Items;
import com.entity.Orders;
/**
* 商品订单服务
*/
@Service // 注解为service层spring管理bean
@Transactional // 注解此类所有方法加入spring事务, 具体设置默认
public class OrderService {
@Autowired
private OrdersDao orderDao;
@Autowired
private ItemsDao itemDao;
@Autowired
private GoodService goodService;
/**
* 创建订单
* @param good
* @return
*/
public Orders add(Goods good) {
List<Items> itemList = new ArrayList<Items>();
itemList.add(addItem(good));
Orders order = new Orders();
order.setItemList(itemList);
order.setTotal(good.getPrice());
order.setAmount(1);
return order;
}
/**
* 向订单添加项目
* @param order
* @param good
* @return
*/
public Orders addOrderItem(Orders order, Goods good) {
List<Items> itemList = order.getItemList();
itemList = itemList==null ? new ArrayList<Items>() : itemList;
// 如果购物车已有此项目, 数量+1
boolean notThis = true;
for (Items item : itemList) {
if (item.getGoodId() == good.getId()) {
item.setAmount(item.getAmount() + 1);
item.setTotal(good.getPrice() * item.getAmount());
notThis = false;
}
}
// 如果当前购物车没有此项目, 创建新条目
if (notThis) {
itemList.add(addItem(good));
}
order.setTotal(order.getTotal() + good.getPrice());
order.setAmount(order.getAmount() + 1);
return order;
}
/**
* 从订单中减少项目
* @param order
* @param good
* @return
*/
public Orders lessenIndentItem(Orders order, Goods good) {
List<Items> itemList = order.getItemList();
itemList = itemList==null ? new ArrayList<Items>() : itemList;
// 如果购物车已有此项目, 数量-1
boolean noneThis = true;
for (Items item : itemList) {
if (item.getGoodId() == good.getId()) {
if (item.getAmount() - 1 <= 0) { // 减少到0后删除
return deleteIndentItem(order, good);
}
item.setAmount(item.getAmount() - 1);
item.setTotal(good.getPrice() * item.getAmount());
noneThis = false;
}
}
// 如果当前购物车没有项目, 直接返回
if (noneThis) {
return order;
}
order.setTotal(order.getTotal() - good.getPrice());
order.setAmount(order.getAmount() - 1);
return order;
}
/**
* 从订单中删除项目
* @param order
* @param good
* @return
*/
public Orders deleteIndentItem(Orders order, Goods good) {
List<Items> itemList = order.getItemList();
itemList = itemList==null ? new ArrayList<Items>() : itemList;
// 如果购物车已有此项目, 数量清零
boolean noneThis = true;
int itemAmount = 0;
List<Items> resultList = new ArrayList<Items>();
for (Items item : itemList) {
if (item.getGoodId() == good.getId()) {
itemAmount = item.getAmount();
noneThis = false;
continue;
}
resultList.add(item);
}
// 如果已经没有项目, 返回null
if (resultList.isEmpty()) {
return null;
}
order.setItemList(resultList);
// 如果当前购物车没有项目, 直接返回
if (noneThis) {
return order;
}
order.setTotal(order.getTotal() - good.getPrice() * itemAmount);
order.setAmount(order.getAmount() - itemAmount);
return order;
}
/**
* 保存订单
* @param order
*/
public int save(Orders order) {
order.setStatus(Orders.STATUS_UNPAY);
order.setSystime(new Date());
orderDao.insert(order);
int orderid = order.getId();
for(Items item : order.getItemList()){
item.setOrderId(orderid);
itemDao.insert(item);
}
return orderid;
}
/**
* 订单支付
* @param order
*/
public void pay(Orders order) {
Orders old = orderDao.selectById(order.getId());
// 微信或支付宝支付时, 模拟支付完成
int paytype = order.getPaytype();
if(paytype == Orders.PAYTYPE_WECHAT || paytype == Orders.PAYTYPE_ALIPAY) {
old.setStatus(Orders.STATUS_PAYED);
}else {
old.setStatus(Orders.STATUS_SEND);
}
old.setPaytype(order.getPaytype());
old.setName(order.getName());
old.setPhone(order.getPhone());
old.setAddress(order.getAddress());
orderDao.updateById(old);
}
/**
* 获取订单列表
* @param page
* @param row
* @return
*/
public List<Orders> getList(byte status, int page, int row) {
List<Orders> orderList = orderDao.getListByStatus(status, row * (page-1), row);
for(Orders order : orderList) {
order.setItemList(this.getItemList(order.getId()));
}
return orderList;
}
/**
* 获取总数
* @return
*/
public int getTotal(byte status) {
return (int)orderDao.getTotalByStatus(status);
}
/**
* 订单发货
* @param id
* @return
*/
public boolean dispose(int id) {
Orders order = orderDao.selectById(id);
order.setStatus(Orders.STATUS_SEND);
return orderDao.updateByIdSelective(order) > 0;
}
/**
* 订单完成
* @param id
* @return
*/
public boolean finish(int id) {
Orders order = orderDao.selectById(id);
order.setStatus(Orders.STATUS_FINISH);
return orderDao.updateByIdSelective(order) > 0;
}
/**
* 删除订单
* @param id
*/
public boolean delete(int id) {
return orderDao.deleteById(id) > 0;
}
/**
* 获取某用户全部订单
* @param userid
*/
public List<Orders> getListByUserid(int userid) {
return orderDao.getListByUserid(userid);
}
/**
* 通过id获取
* @param orderid
* @return
*/
public Orders get(int orderid) {
return orderDao.selectById(orderid);
}
/**
* 创建订单项
* @param good
* @return
*/
private Items addItem(Goods good) {
Items item = new Items();
item.setGoodId(good.getId());
item.setAmount(1);
item.setPrice(good.getPrice());
item.setTotal(good.getPrice());
item.setGood(goodService.get(item.getGoodId()));
return item;
}
/**
* 获取订单项目列表
* @param orderid
* @return
*/
public List<Items> getItemList(int orderid){
List<Items> itemList = itemDao.getItemList(orderid);
for(Items item : itemList) {
item.setGood(goodService.get(item.getGoodId()));
}
return itemList;
}
}
五、底部获取项目源码(9.9¥带走)
有问题,或者需要协助调试运行项目的也可以