基于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)]

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值