💖💖作者:计算机编程小咖 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目
目录
- 烘焙坊一站式管理系统介绍
- 烘焙坊一站式管理系统演示视频
- 烘焙坊一站式管理系统演示图片
- 烘焙坊一站式管理系统代码展示
- 烘焙坊一站式管理系统文档展示
烘焙坊一站式管理系统介绍
《基于SpringBoot的烘焙坊一站式管理系统》是一套面向中小烘焙坊日常经营与信息管理场景的B/S结构管理系统,也可以理解为基于SpringBoot的烘焙坊管理系统。它把门店里常见的商品、作品、订单、烘焙师、薪酬和公告等信息集中到一个平台里,减少纸质登记和分散表格带来的麻烦。系统后端提供Java与Python两个实现版本,Java版采用Spring Boot框架,整合Spring、SpringMVC和MyBatis,Python版采用Django框架;前端使用Vue、ElementUI和HTML完成页面交互,数据存储使用MySQL。功能覆盖系统首页、用户管理、烘焙师管理、类型管理、烘焙商品管理、烘焙作品管理、烘焙订单管理、烘焙发货管理、烘焙签收管理、薪酬信息管理、公告信息管理、系统管理、系统简介、关于我们、轮播图管理、订单管理、个人中心以及修改密码等模块。用户可以在前台查看商品和公告、维护个人中心并完成下单,管理人员可以在后台维护烘焙师、商品、作品、订单和薪酬记录,跟踪从下单、发货到签收的流程。系统还结合SparkSession.builder进行订单数据的简单统计,用于辅助查看热销商品和订单趋势,让毕设项目在常规管理功能之外多一点数据分析的味道。整体来说,这套系统结构清晰、功能完整,比较适合作为计算机专业大四学生的毕业设计题目,也方便在Java或Python技术路线中选一个版本继续扩展。
烘焙坊一站式管理系统演示视频
项目演示视频
烘焙坊一站式管理系统演示图片

烘焙坊一站式管理系统代码展示
SparkSession spark = SparkSession.builder().appName("bakeryOneStop").master("local[*]").config("spark.sql.warehouse.dir", "/tmp/bakery").getOrCreate();
Dataset<Row> orderDF = spark.read().format("jdbc").option("url", "jdbc:mysql://localhost:3306/bakery").option("dbtable", "bakery_order").option("user", "root").option("password", "123456").load();
orderDF.createOrReplaceTempView("bakery_order");
Dataset<Row> hotProduct = spark.sql("select product_id, count(*) as order_count from bakery_order group by product_id order by order_count desc limit 5");
hotProduct.show();
public Map<String,Object> saveBakeryProduct(BakeryProduct product) {
Map<String,Object> result = new HashMap<>();
if (product == null || product.getName() == null || product.getName().trim().isEmpty()) {
result.put("code", 400);
result.put("msg", "烘焙商品名称不能为空");
return result;
}
QueryWrapper<BakeryProduct> query = new QueryWrapper<>();
query.eq("name", product.getName().trim());
BakeryProduct exist = bakeryProductMapper.selectOne(query);
if (exist != null && !exist.getId().equals(product.getId())) {
result.put("code", 409);
result.put("msg", "同名烘焙商品已经存在");
return result;
}
if (product.getPrice() == null || product.getPrice().compareTo(BigDecimal.ZERO) <= 0) {
result.put("code", 400);
result.put("msg", "烘焙商品价格需要大于0");
return result;
}
product.setName(product.getName().trim());
product.setUpdateTime(new Date());
if (product.getId() == null) {
product.setCreateTime(new Date());
product.setStatus(1);
bakeryProductMapper.insert(product);
} else {
bakeryProductMapper.updateById(product);
}
result.put("code", 200);
result.put("msg", "烘焙商品保存成功");
result.put("data", product.getId());
return result;
}
public Map<String,Object> createBakeryOrder(BakeryOrder order) {
Map<String,Object> result = new HashMap<>();
if (order == null || order.getUserId() == null || order.getProductId() == null) {
result.put("code", 400);
result.put("msg", "订单用户和烘焙商品不能为空");
return result;
}
BakeryProduct product = bakeryProductMapper.selectById(order.getProductId());
if (product == null || product.getStatus() == null || product.getStatus() != 1) {
result.put("code", 404);
result.put("msg", "烘焙商品不存在或已下架");
return result;
}
if (order.getBuyCount() == null || order.getBuyCount() <= 0) {
result.put("code", 400);
result.put("msg", "购买数量需要大于0");
return result;
}
BigDecimal total = product.getPrice().multiply(new BigDecimal(order.getBuyCount()));
order.setOrderNo("BK" + System.currentTimeMillis());
order.setTotalPrice(total);
order.setPayStatus(0);
order.setSendStatus(0);
order.setReceiveStatus(0);
order.setCreateTime(new Date());
int rows = bakeryOrderMapper.insert(order);
if (rows > 0) {
result.put("code", 200);
result.put("msg", "烘焙订单创建成功");
result.put("data", order.getOrderNo());
} else {
result.put("code", 500);
result.put("msg", "烘焙订单创建失败");
}
return result;
}
public Map<String,Object> settleBakerSalary(Long bakerId, String salaryMonth) {
Map<String,Object> result = new HashMap<>();
if (bakerId == null || salaryMonth == null || salaryMonth.trim().isEmpty()) {
result.put("code", 400);
result.put("msg", "烘焙师和薪酬月份不能为空");
return result;
}
Baker baker = bakerMapper.selectById(bakerId);
if (baker == null) {
result.put("code", 404);
result.put("msg", "烘焙师信息不存在");
return result;
}
QueryWrapper<BakeryOrder> orderQuery = new QueryWrapper<>();
orderQuery.eq("baker_id", bakerId);
orderQuery.apply("DATE_FORMAT(create_time, '%Y-%m') = {0}", salaryMonth);
List<BakeryOrder> orderList = bakeryOrderMapper.selectList(orderQuery);
BigDecimal orderAmount = BigDecimal.ZERO;
for (BakeryOrder order : orderList) {
if (order.getTotalPrice() != null) {
orderAmount = orderAmount.add(order.getTotalPrice());
}
}
BigDecimal baseSalary = baker.getBaseSalary() == null ? BigDecimal.ZERO : baker.getBaseSalary();
BigDecimal bonus = orderAmount.multiply(new BigDecimal("0.05"));
BigDecimal finalSalary = baseSalary.add(bonus);
SalaryInfo salaryInfo = new SalaryInfo();
salaryInfo.setBakerId(bakerId);
salaryInfo.setSalaryMonth(salaryMonth);
salaryInfo.setOrderAmount(orderAmount);
salaryInfo.setBaseSalary(baseSalary);
salaryInfo.setBonus(bonus);
salaryInfo.setFinalSalary(finalSalary);
salaryInfo.setCreateTime(new Date());
salaryInfoMapper.insert(salaryInfo);
result.put("code", 200);
result.put("msg", "薪酬结算完成");
result.put("data", salaryInfo.getId());
return result;
}
烘焙坊一站式管理系统文档展示

💖💖作者:计算机编程小咖 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目
网硕互联帮助中心





评论前必须登录!
注册