基于java ssm springboot网上蛋糕商城项目设计和实现


主要技术:spring、 springmvc、  springboot、  mybatis 、 jquery 、 md5 、bootstarp.js  tomcat、富文本编译器、拦截器等


主要功能:登录、注册、商品浏览、分类设置、模糊查找、轮播图、热销商品、购物车、订单、订单流程控制、用户管理、修改密码等


主要功能截图:


登录和注册、


登录模块后台代码

package ltd.newbee.mall.controller.admin;

import ltd.newbee.mall.common.ServiceResultEnum;

import ltd.newbee.mall.entity.AdminUser;

import ltd.newbee.mall.service.AdminUserService;

import org.springframework.stereotype.Controller;

import org.springframework.util.StringUtils;

import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

/**

  • @author 13

*/

@Controller

@RequestMapping(“/admin”)

public class AdminController {

@Resource

private AdminUserService adminUserService;

@GetMapping({“/login”})

public String login() {

return “admin/login”;

}

@GetMapping({“/test”})

public String test() {

return “admin/test”;

}

@GetMapping({“”, “/”, “/index”, “/index.html”})

public String index(HttpServletRequest request) {

request.setAttribute(“path”, “index”);

request.setAttribute(“categoryCount”, 0);

request.setAttribute(“blogCount”, 0);

request.setAttribute(“linkCount”, 0);

request.setAttribute(“tagCount”, 0);

request.setAttribute(“commentCount”, 0);

request.setAttribute(“path”, “index”);

return “admin/index”;

}

@PostMapping(value = “/login”)

public String login(@RequestParam(“userName”) String userName,

@RequestParam(“password”) String password,

@RequestParam(“verifyCode”) String verifyCode,

HttpSession session) {

if (StringUtils.isEmpty(verifyCode)) {

session.setAttribute(“errorMsg”, “验证码不能为空”);

return “admin/login”;

}

if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password)) {

session.setAttribute(“errorMsg”, “用户名或密码不能为空”);

return “admin/login”;

}

String kaptchaCode = session.getAttribute(“verifyCode”) + “”;

if (StringUtils.isEmpty(kaptchaCode) || !verifyCode.equals(kaptchaCode)) {

session.setAttribute(“errorMsg”, “验证码错误”);

return “admin/login”;

}

AdminUser adminUser = adminUserService.login(userName, password);

if (adminUser != null) {

session.setAttribute(“loginUser”, adminUser.getNickName());

session.setAttribute(“loginUserId”, adminUser.getAdminUserId());

//session过期时间设置为7200秒 即两小时

//session.setMaxInactiveInterval(60 * 60 * 2);

return “redirect:/admin/index”;

} else {

session.setAttribute(“errorMsg”, “登陆失败,请联系作者获
得测试账号”);

return “admin/login”;

}

}

@GetMapping(“/profile”)

public String profile(HttpServletRequest request) {

Integer loginUserId = (int) request.getSession().getAttribute(“loginUserId”);

AdminUser adminUser = adminUserService.getUserDetailById(loginUserId);

if (adminUser == null) {

return “admin/login”;

}

request.setAttribute(“path”, “profile”);

request.setAttribute(“loginUserName”, adminUser.getLoginUserName());

request.setAttribute(“nickName”, adminUser.getNickName());

return “admin/profile”;

}

@PostMapping(“/profile/password”)

@ResponseBody

public String passwordUpdate(HttpServletRequest request, @RequestParam(“originalPassword”) String originalPassword,

@RequestParam(“newPassword”) String newPassword) {

if (StringUtils.isEmpty(originalPassword) || StringUtils.isEmpty(newPassword)) {

return “参数不能为空”;

}

Integer loginUserId = (int) request.getSession().getAttribute(“loginUserId”);

if (adminUserService.updatePassword(loginUserId, originalPassword, newPassword)) {

//修改成功后清空session中的数据,前端控制跳转至登录页

request.getSession().removeAttribute(“loginUserId”);

request.getSession().removeAttribute(“loginUser”);

request.getSession().removeAttribute(“errorMsg”);

return ServiceResultEnum.SUCCESS.getResult();

} else {

return “修改失败”;

}

}

@PostMapping(“/profile/name”)

@ResponseBody

public String nameUpdate(HttpServletRequest request, @RequestParam(“loginUserName”) String loginUserName,

@RequestParam(“nickName”) String nickName) {

if (StringUtils.isEmpty(loginUserName) || StringUtils.isEmpty(nickName)) {

return “参数不能为空”;

}

Integer loginUserId = (int) request.getSession().getAttribute(“loginUserId”);

if (adminUserService.updateName(loginUserId, loginUserName, nickName)) {

return ServiceResultEnum.SUCCESS.getResult();

} else {

return “修改失败”;

}

}

@GetMapping(“/logout”)

public String logout(HttpServletRequest request) {

request.getSession().removeAttribute(“loginUserId”);

request.getSession().removeAttribute(“loginUser”);

request.getSession().removeAttribute(“errorMsg”);

return “admin/login”;

}

}

首页轮播图以及推荐宠物商品浏览以及模糊查看和分类查看等操作:


为你推荐蛋糕商品管理模块:

管理员可以对为你推荐蛋糕商品进行添加、修改、删除和浏览操作配置、配置好后用户端首页为你推荐蛋糕商品会显示最新的商品信息。

加入购物车和订单操作以及修改收货信息等.流程都是非常完善的


完整购买下单以及支付流程


模拟支付宝支付、这里是模拟的 直接支付成功


后台admin管理员数据维护模块:


后台主要功能设计:每个模块都有列表查询、添加、修改。删除等操作


轮播图配置


配置热销商品和喜欢商品等



商品类型灵活管理控制、此处配置前端用户就展示那些


商品详情配置管理列表


添加蛋糕商品、这个地方用的富文本编译器上传的商品信息、可以直接从淘宝等地方复制数据过来。



用户信息管理:


订单信息管理:订单信息流程主要有:用户模拟支付了以后配货、出库、订单完成、以及查看订单信息和查看收件人信息等功能


代码结构:idea、eclipse直接导入就可运行、



数据库结构:


好了、今天就分享到这了、可供参考学习参考使用、

小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

最后

小编这些年深知大多数初中级工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此我收集整理了一份《2024年Java全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你需要这些资料,⬅专栏获取

好了、今天就分享到这了、可供参考学习参考使用、

小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

最后

小编这些年深知大多数初中级工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此我收集整理了一份《2024年Java全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-pmr2ucgn-1719681678657)]

[外链图片转存中…(img-uEL0BcPI-1719681678658)]

[外链图片转存中…(img-qJrwmdqo-1719681678659)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你需要这些资料,⬅专栏获取

项目介绍: 此项目实现商品的从后台填写商品信息、商品上架(立即上架 或 定时上架),到前台用户可见可商品后进行购买(购物车 或 立即购买)后的待结算、待支付状态,再到用户支付(模拟支付,暂时没有实现)后商品的状态为待发货,后台管理人员进行发货操作后填写运单号码并确认发货,再到用户收到商品后点击确认收货、评价订单,最后订单状态已完成的整个在线购物的商品交易流程。 * 商品上架-> 待结算 ->待支付 ->待发货 ->待收货 ->待评价 ->已完成 同时此项目配备了完善的开发文档( 60+ 页 ),涵盖了整个系统的需求分析、功能分析、系统设计、数据库设计、系统模块设计和系统实现等内容,可以为项目的学习者或使用者提供很好的辅助作用。 技术栈: Spring + SpringMVC + MyBatis + Redis + RabbitMQ + Quartz + Bootstrap 后端使用 SSM 作为主框架进行开发,集成 Redis 内存缓存、RabbitMQ 消息队列和 Quartz 作业调度框架。 前端使用 JSP 和 Bootstrap 来进行项目开发项目亮点: 1)使用 Spring + SpringMVC + MyBatis + Redis + RabbitMQ + Quartz + Bootstrap 进行项目整合开发 2)使用 Redis 实现购物车功能和商品信息的数据缓存功能,提高系统的响应速度并降低数据库的访问压力 3)使用 RabbitMQ 实现订单的异步化处理和系统的日志处理,提升系统对用户操作的响应速度并降低模块之间的耦合程度 4)使用 Spring AOP 在不侵入系统代码的基础上实现系统的日志收集、权限校验和数据埋点等功能 5)使用 Quartz 实现商品的自定义定时上架功能,为用户提供更高的操作灵活性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值