首页 > 编程语言 >基于SpringBoot自助甜品网站设计和实现(源码+LW+调试文档)

基于SpringBoot自助甜品网站设计和实现(源码+LW+调试文档)

时间:2024-07-26 15:27:02浏览次数:10  
标签:username Java SpringBoot LW 源码 user userService return public

完整视频演示:

请联系我获取更详细的演示视频

功能截图:

核心代码参考:  

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
    
    @Autowired
    private UserService userService;
    
    @Autowired
    private TokenService tokenService;
 
    /**
     * 登录
     */
    @IgnoreAuth
    @PostMapping(value = "/login")
    public R login(String username, String password, String role, HttpServletRequest request) {
        UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
        if(user != null){
            if(!user.getRole().equals(role)){
                return R.error("权限不正常");
            }
            if(user==null || !user.getPassword().equals(password)) {
                return R.error("账号或密码不正确");
            }
            String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
            return R.ok().put("token", token);
        }else{
            return R.error("账号或密码或权限不对");
        }
 
    }
    
    /**
     * 注册
     */
    @IgnoreAuth
    @PostMapping(value = "/register")
    public R register(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
            return R.error("用户已存在");
        }
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 退出
     */
    @GetMapping(value = "logout")
    public R logout(HttpServletRequest request) {
        request.getSession().invalidate();
        return R.ok("退出成功");
    }
    
    /**
     * 密码重置
     */
    @IgnoreAuth
    @RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
        UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
        if(user==null) {
            return R.error("账号不存在");
        }
        user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
    
    /**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
        PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
        Integer id = (Integer)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
            return R.error("用户已存在");
        }
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

 数据库sql:

DROP TABLE IF EXISTS `users`;
 
CREATE TABLE `users` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(100) NOT NULL COMMENT '用户名',
  `password` varchar(100) NOT NULL COMMENT '密码',
  `role` varchar(100) DEFAULT '管理员' COMMENT '角色',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用户表';
 
/*Data for the table `users` */
 
insert  into `users`(`id`,`username`,`password`,`role`,`addtime`) values (1,'admin','admin','管理员','2022-05-01 00:00:00');

项目技术介绍:

后端java介绍
Java的主要特点是简单性、面向对象、分布式、健壮性、安全性和可移植性。Java的设计初衷是让程序员能够以优雅的方式编写复杂的程序。它支持 Internet 应用的开发,并内建了网络应用编程接口,极大地便利了网络应用的开发。同时,Java的强类型机制和异常处理功能确保了程序的健壮性。Java分为三个主要版本:Java SE(标准版),主要用于桌面应用程序开发;Java EE(企业版),用于开发企业级应用;Java ME(微型版),专门用于嵌入式系统和移动设备应用开发。这些版本让Java能够适应不同的开发需求。总的来说,Java因其广泛的应用场景和稳定的性能,在全球范围内拥有庞大的开发者社区和支持,各种开源项目也为Java开发提供了极大的便利和资源[^3^]。这使得Java不仅在互联网和企业应用中占据重要地位,还在大数据和Android移动开发中有着广泛应用。

Mysql数据库介绍
MySQL主要用于在各种流行操作系统平台上进行数据存储和管理,采用客户端/服务器模式运行。这种架构支持高效的数据操作和管理,使得MySQL在Web应用、企业应用和移动应用中广泛使用。MySQL使用结构化查询语言(SQL),这是一种标准化的语言,用于访问和维护数据库。由于其开源特性,MySQL对大多数个人用户来说是免费的,并且易于下载和安装。这使得它成为许多中小型企业和开发者的首选 数据库系统。 MySQL具有多种显著优点。首先,它支持多线程操作,可以充分利用CPU资源,提高性能。其次,MySQL提供多种API,支持多种编程语言如C、C++、Python、Java等,使其可以轻松集成到不同的应用程序中。此外,MySQL还支持多种存储引擎,如InnoDB和MyISAM,以满足不同的应用需求。

为什么选择我:

   博主自己就是程序员、避免中介对接,从事软件开发多年,累计开发或辅导多名同学, 有丰富的项目开发和文档编写经验、同学们有任何项目问题都可以联系我,Java领域优质创作者、专注于Java技术领域和学生毕业项目实战。

获取源码:

  点击下面的链接获取源码

GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。icon-default.png?t=N7T8https://gitcode.com/yuanmadd/ymgg/blob/main/README.md?init=initTree

标签:username,Java,SpringBoot,LW,源码,user,userService,return,public
From: https://blog.csdn.net/2401_85564422/article/details/140690768

相关文章

  • 基于SpringBoot天气预报管理系统设计和实现(源码+LW+调试文档)
    完整视频演示: 请联系我获取更详细的演示视频功能截图:核心代码参考:  /***登录相关*/@RequestMapping("users")@RestControllerpublicclassUserController{@AutowiredprivateUserServiceuserService;@Autowire......
  • PixiJS源码分析系列:第三章 使用 canvas 作为渲染器
    使用canvasRenderer渲染上一章分析了一下Sprite在默认webgl渲染器上的渲染,这章让我们把目光聚集到canvasRenderer上使用canvas渲染器渲染图片的demo要使用canvas作为渲染器,我们需要引用pixi-legacy.js/bundles/pixi.js-legacy/dist/pixi-legacy.js像下面这样......
  • Nacos 配置中心配置发布源码分析
    前言:前面系列文章中我们分析了Nacos客户端的配置加载、配置热更新、Nacos服务端的配置加载、配置转储到磁盘文件中等,本篇我们来分析一下Nacos配置的发布逻辑。Nacos系列文章传送门:Nacos初步认识和Nacos部署细节Nacos配置管理模型–命名空间(Namespace)、配置......
  • IT实战课堂计算机毕业设计源码精品基于Python的高校教育教材采购出入库进销存储信息管
    项目功能简介:《[含文档+PPT+源码等]精品基于Python的高校教育教材信息管理系统设计与实现》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功以及课程答疑与微信售后交流群、送查重系统不限次数免费查重等福利!软件开发环境及开发工具:开......
  • 基于Springboot + vue + mysql 招生管理系统 设计实现
    目录......
  • 免费分享一套微信小程序投票评选系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本
    大家好,我是java1234_小锋老师,看到一个不错的微信小程序投票评选系统(SpringBoot后端+Vue管理端),分享下哈。项目视频演示【免费】微信小程序投票评选系统(SpringBoot后端+Vue管理端)Java毕业设计_哔哩哔哩_bilibili项目介绍社会发展日新月异,用计算机应用实现数据管理功能......
  • A099-springboot协同过滤鲜花商城推荐系统
    基于Springboot+vue+协同过滤+前后端分离+鲜花商城推荐系统(用户,多商户,管理员)【运行环境】IdeaJDK1.8MavenMySQLNginxVscode【技术栈】  SpringBoot,SSM,MYSQL,Vue,Layui,JQUERY,HTML,CSS,JAVASCRIPT,前后台分离,日历控件,协同过滤-基于用户过滤【项目功能......
  • A098-Springboot-vue-化妆品推荐系统
    后端(SpringBoot)实现步骤:项目初始化:使用SpringInitializr创建一个新的SpringBoot项目,包括必要的依赖如SpringWeb和SpringDataJPA。数据库设计:设计数据库模型,例如化妆品(品牌、类型、成分等)、用户信息(注册、登录信息)、推荐记录等。可以选择MySQL、PostgreSQL等关系型数......
  • A097-springboot+vue汽车保养
    后端(SpringBoot)SpringBoot应用程序:创建一个基于SpringBoot的后端应用程序,用于处理业务逻辑和数据持久化。RESTfulAPI设计:使用SpringMVC创建RESTfulAPI,用于处理来自前端的请求和响应。API应设计清晰,包括汽车信息的增删改查、保养记录管理、用户信息等功能。数据持......
  • 源码拆解SpringBoot的自动配置机制
    SpringBoot相比于Spring系列的前作,很大的一个亮点就是将配置进行了简化,引入了自动化配置,仅靠几个注解和yml文件就取代了之前XML的繁琐配置机制,这也是SpringBoot的独有特点,下面我们从源码角度,一点点拆开自动配置的机制是如何实现的。从@SpringBootApplication开始从SpringBoot......