基于ssm的蛋糕商城系统java项目jsp项目javaweb

文章目录

  • 蛋糕商城系统
    • 一、项目演示
    • 二、项目介绍
    • 三、系统部分功能截图
    • 四、部分代码展示
    • 五、底部获取项目源码(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;@Autowiredprivate AdminService adminService;@Autowiredprivate OrderService orderService;@Autowiredprivate UserService userService;@Autowiredprivate GoodService goodService;@Autowiredprivate TopService topService;@Autowiredprivate 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";@Resourceprivate UserService userService;@Resourceprivate OrderService orderService;@Resourceprivate GoodService goodService;@Resourceprivate 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); // 更新sessionmodel.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); // 更新sessionmodel.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 {@Autowiredprivate OrdersDao orderDao;@Autowiredprivate ItemsDao itemDao;@Autowiredprivate 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;// 如果购物车已有此项目, 数量+1boolean 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;// 如果购物车已有此项目, 数量-1boolean 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);}// 如果已经没有项目, 返回nullif (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¥带走)

有问题,或者需要协助调试运行项目的也可以

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/16142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mixed-precision计算原理(FP32+FP16)

原文&#xff1a; https://lightning.ai/pages/community/tutorial/accelerating-large-language-models-with-mixed-precision-techniques/ This approach allows for efficient training while maintaining the accuracy and stability of the neural network. In more det…

【排序算法】选择排序以及需要注意的问题

选择排序的基本思想&#xff1a;每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的数据元素排完 。 第一种实现方法&#xff1a; void SelectSort(int* arr, int n) {for (int j 0…

【kubernetes】探索k8s集群中金丝雀发布后续 + 声明式资源管理yaml

目录 一、K8S常见的发布方式 1.1蓝绿发布 1.2灰度发布&#xff08;金丝雀发布&#xff09; 1.3滚动发布 二、金丝雀发布 三、声明式管理方法 3.1YAML 语法格式 3.1.1查看 api 资源版本标签 3.1.2查看资源简写 3.2YAML文件详解 3.2.1Deployment.yaml 3.2.2Pod.yaml …

C++系列-C/C++内存管理方式

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” C/C内存分布 在这篇文章开始之前&#xff0c;我们先以一道题目来进行引入&#xff1a; int glovalvar 1; static int staticGlovalvar 1; void Test() {static int staticva…

Java进阶学习笔记27——StringBuilder、StringBuffer

StringBuilder&#xff1a; StringBuilder代表可变字符串对象&#xff0c;相当于一个容器&#xff0c;它里面装的字符串是可以改变的&#xff0c;就是用来操作字符串的。 好处&#xff1a; StringBuilder比String更适合做字符串的修改操作&#xff0c;效率会更高&#xff0c;…

在CSDN上成长的感悟,你的粉丝长啥样?

文章目录 一、写作的初衷1. 记录所学内容2.巩固所学知识3.分享与帮助4.方便后续查找5.获取激励 二、你的粉丝长啥样&#xff1f;1. 粉丝的特点与困惑2. 关于粉丝&#xff0c;细思极恐 三、继续前行、坚持初心 在CSDN上写博文&#xff0c;对于我来说&#xff0c;不仅仅是一个记录…

OTA在线旅行社系统架构:连接世界的科技纽带

随着互联网的快速发展和人们对旅行需求的不断增长&#xff0c;OTA&#xff08;Online Travel Agency&#xff09;在线旅行社成为了现代旅行业中的重要一环。OTA系统架构的设计和实现将对旅行行业产生深远影响。本文将探讨OTA在线旅行社系统架构的重要性和关键组成部分&#xff…

Java筑基(三)

Java筑基&#xff08;三&#xff09; 一、final概念1、案例1&#xff1a;采用继承&#xff1a;2、案例2&#xff1a;final修饰的类不可以被继承&#xff1a;3、案例3&#xff1a;final修饰的类不能有子类&#xff0c;但是可以有父类4、final修饰构造方法5、final修饰普通方法6、…

渗透工具CobaltStrike工具的下载和安装

一、CobalStrike简介 Cobalt Strike(简称为CS)是一款基于java的渗透测试工具&#xff0c;专业的团队作战的渗透测试工具。CS使用了C/S架构&#xff0c;它分为客户端(Client)和服务端(Server)&#xff0c;服务端只要一个&#xff0c;客户端可有多个&#xff0c;多人连接服务端后…

音视频开发8 音视频中SDL的使用,SDL 在windows上环境搭建,SDL 使用 以及 常用 API说明,show YUV and play PCM

1.SDL简介 SDL&#xff08;Simple DirectMedia Layer&#xff09;&#xff0c;是一个跨平台的C语言多媒体开发库。 支持Windows、Mac OS X、Linux、iOS、Android 提供对音频、键盘、鼠标、游戏操纵杆、图形硬件的底层访问 很多的视频播放软件、模拟器、受欢迎的游戏都在使用…

面试中算法(A星寻路算法)

一、问题需求&#xff1a; 迷宫寻路游戏中&#xff0c;有一些小怪物要攻击主角&#xff0c;现在希望你给这些小怪物加上聪 明的AI (Artificial Intelligence&#xff0c;人工智能&#xff09;&#xff0c;让它们可以自动绕过迷宫中的障碍物&#xff0c;寻找到主角的所在。 A星…

json web token及JWT学习与探索

JSON Web Token&#xff08;缩写 JWT&#xff09;是目前最流行的跨域认证解决方案 作用&#xff1a; 主要是做鉴权用的登录之后存储用户信息 生成得token(令牌)如下 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNjg3Njc0NDkyLCJleHAiOjE2ODc3NjA4OTJ9.Y6eFG…

1107 老鼠爱大米

solution 记录每组的最大值&#xff0c;并比较组间的最大值胖胖鼠~ #include<iostream> using namespace std; int main(){int n, m, ans, fat -1, x;scanf("%d%d", &n, &m);for(int i 0; i < n; i){ans -1;for(int j 0; j < m; j){scanf(…

【C/C++】Makefile文件的介绍与基本用法

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

【论文复现】LSTM长短记忆网络

LSTM 前言网络架构总线遗忘门记忆门记忆细胞输出门 模型定义单个LSTM神经元的定义LSTM层内结构的定义 模型训练模型评估代码细节LSTM层单元的首尾的处理配置Tensorflow的GPU版本 前言 LSTM作为经典模型&#xff0c;可以用来做语言模型&#xff0c;实现类似于语言模型的功能&am…

【Torch学习笔记】

作者&#xff1a;zjk 和 的区别是逐元素相乘&#xff0c;是矩阵相乘 cat stack 的区别 cat stack 是用于沿新维度将多个张量堆叠在一起的函数。它要求所有输入张量具有相同的形状&#xff0c;并在指定的新维度上进行堆叠。

【NumPy】关于numpy.mean()函数,看这一篇文章就够了

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

Android11热点启动和关闭

Android官方关于Wi-Fi Hotspot (Soft AP) 的文章&#xff1a;https://source.android.com/docs/core/connect/wifi-softap?hlzh-cn 在 Android 11 的WifiManager类中有一套系统 API 可以控制热点的开和关&#xff0c;代码如下&#xff1a; 开启热点&#xff1a; // SoftApC…

国际版Tiktok抖音运营流量实战班:账号定位/作品发布/热门推送/等等-13节

课程目录 1-tiktok账号定位 1.mp4 2-tiktok作品发布技巧 1.mp4 3-tiktok数据功能如何开通 1.mp4 4-tiktok热门视频推送机制 1.mp4 5-如何发现热门视频 1.mp4 6-如何发现热门音乐 1.mp4 7-如何寻找热门标签 1.mp4 8-如何寻找垂直热门视频 1.mp4 9-如何发现热门挑战赛 1…

【Python特征工程系列】一文教你使用PCA进行特征分析与降维(案例+源码)

这是我的第287篇原创文章。 一、引言 主成分分析&#xff08;Principal Component Analysis, PCA&#xff09;是一种常用的降维技术&#xff0c;它通过线性变换将原始特征转换为一组线性不相关的新特征&#xff0c;称为主成分&#xff0c;以便更好地表达数据的方差。 在特征重要…