首页 > 编程语言 >springboot vue寝室小卖部系统源码和答辩PPT论文

springboot vue寝室小卖部系统源码和答辩PPT论文

时间:2024-07-31 15:55:55浏览次数:13  
标签:vue return springboot chongwuYuyue 源码 chongwuYuyueEntity new import view

本文首先实现了“一分钟”寝室小卖部系统设计与实现管理技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。

关键字:“一分钟”寝室小卖部系统; B/S架构;Spring Boot框架;

springboot vue寝室小卖部系统源码和答辩PPT论文802

本次系统采用Spring Boot框架集进行开发,Spring Boot框架是一款主流的软件开发框架,其简化了开发流程,大大缩减了软件开发所需的时间提高了软件的响应速度。系统基本结构图如图4-1所示。

图4-1 系统基本结构图

4.2 数据库设计

4.2.1 数据库实体

E-R图,即实体-联系图,它是一种通过对实例进行抽象,以可视化的方式来描述现实世界的概念模型。根据需求分析绘制出数据库的E-R图,能够直观地映射出各个表之间的关系。

用户信息包括;用户名、姓名、性别、头像、手机号、积分、是否会员等信息,实体图如图4-2所示。

Abstract

This article first realized the development of the "One Minute" bedroom snack bar system design and implementation management technology. Then, according to the traditional software development process, it first selected the appropriate language and software development platform for the system, developed the control module design and database query construction design based on demand analysis, and then produced the system's functional module diagram and E-R diagram based on the overall functional module design of the system. Subsequently, design the framework, write the code according to the designed framework, and complete each functional module of the system. Finally, the basic system was tested, including software performance testing, unit testing, and performance indicators. The test results show that the system can achieve the required functions, and the operation condition is still acceptable without obvious shortcomings.

Key words: "One Minute" bedroom snack bar system; B/S architecture; Spring Boot framework;


package com.controller;

import java.io.File;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.*;
import java.lang.reflect.InvocationTargetException;

import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;

/**
 * 宠物预约
 * 后端接口
 * @author
 * @email
*/
@RestController
@Controller
@RequestMapping("/chongwuYuyue")
public class ChongwuYuyueController {
    private static final Logger logger = LoggerFactory.getLogger(ChongwuYuyueController.class);

    private static final String TABLE_NAME = "chongwuYuyue";

    @Autowired
    private ChongwuYuyueService chongwuYuyueService;


    @Autowired
    private TokenService tokenService;

    @Autowired
    private AichongService aichongService;//爱宠天地
    @Autowired
    private ChongwuService chongwuService;//宠物
    @Autowired
    private ChongwuCollectionService chongwuCollectionService;//宠物收藏
    @Autowired
    private ChongwuLiuyanService chongwuLiuyanService;//宠物留言
    @Autowired
    private DictionaryService dictionaryService;//字典
    @Autowired
    private NewsService newsService;//宠物资讯
    @Autowired
    private YonghuService yonghuService;//用户
    @Autowired
    private UsersService usersService;//管理员


    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永不会进入");
        else if("用户".equals(role))
            params.put("yonghuId",request.getSession().getAttribute("userId"));
        CommonUtil.checkMap(params);
        PageUtils page = chongwuYuyueService.queryPage(params);

        //字典表数据转换
        List<ChongwuYuyueView> list =(List<ChongwuYuyueView>)page.getList();
        for(ChongwuYuyueView c:list){
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(c, request);
        }
        return R.ok().put("data", page);
    }

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        ChongwuYuyueEntity chongwuYuyue = chongwuYuyueService.selectById(id);
        if(chongwuYuyue !=null){
            //entity转view
            ChongwuYuyueView view = new ChongwuYuyueView();
            BeanUtils.copyProperties( chongwuYuyue , view );//把实体数据重构到view中
            //级联表 宠物
            //级联表
            ChongwuEntity chongwu = chongwuService.selectById(chongwuYuyue.getChongwuId());
            if(chongwu != null){
            BeanUtils.copyProperties( chongwu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
            view.setChongwuId(chongwu.getId());
            }
            //级联表 用户
            //级联表
            YonghuEntity yonghu = yonghuService.selectById(chongwuYuyue.getYonghuId());
            if(yonghu != null){
            BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
            view.setYonghuId(yonghu.getId());
            }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody ChongwuYuyueEntity chongwuYuyue, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,chongwuYuyue:{}",this.getClass().getName(),chongwuYuyue.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");
        else if("用户".equals(role))
            chongwuYuyue.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        Wrapper<ChongwuYuyueEntity> queryWrapper = new EntityWrapper<ChongwuYuyueEntity>()
            .eq("chongwu_id", chongwuYuyue.getChongwuId())
            .eq("yonghu_id", chongwuYuyue.getYonghuId())
            .in("chongwu_yuyue_yesno_types", new Integer[]{1,2})
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ChongwuYuyueEntity chongwuYuyueEntity = chongwuYuyueService.selectOne(queryWrapper);
        if(chongwuYuyueEntity==null){
            chongwuYuyue.setChongwuYuyueYesnoTypes(1);
            chongwuYuyue.setInsertTime(new Date());
            chongwuYuyue.setCreateTime(new Date());
            chongwuYuyueService.insert(chongwuYuyue);
            return R.ok();
        }else {
            if(chongwuYuyueEntity.getChongwuYuyueYesnoTypes()==1)
                return R.error(511,"有相同的待审核的数据");
            else if(chongwuYuyueEntity.getChongwuYuyueYesnoTypes()==2)
                return R.error(511,"有相同的审核通过的数据");
            else
                return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody ChongwuYuyueEntity chongwuYuyue, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        logger.debug("update方法:,,Controller:{},,chongwuYuyue:{}",this.getClass().getName(),chongwuYuyue.toString());
        ChongwuYuyueEntity oldChongwuYuyueEntity = chongwuYuyueService.selectById(chongwuYuyue.getId());//查询原先数据

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
//        else if("用户".equals(role))
//            chongwuYuyue.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

            chongwuYuyueService.updateById(chongwuYuyue);//根据id更新
            return R.ok();
    }


    /**
    * 审核
    */
    @RequestMapping("/shenhe")
    public R shenhe(@RequestBody ChongwuYuyueEntity chongwuYuyueEntity, HttpServletRequest request){
        logger.debug("shenhe方法:,,Controller:{},,chongwuYuyueEntity:{}",this.getClass().getName(),chongwuYuyueEntity.toString());

        ChongwuYuyueEntity oldChongwuYuyue = chongwuYuyueService.selectById(chongwuYuyueEntity.getId());//查询原先数据

//        if(chongwuYuyueEntity.getChongwuYuyueYesnoTypes() == 2){//通过
//            chongwuYuyueEntity.setChongwuYuyueTypes();
//        }else if(chongwuYuyueEntity.getChongwuYuyueYesnoTypes() == 3){//拒绝
//            chongwuYuyueEntity.setChongwuYuyueTypes();
//        }
        chongwuYuyueEntity.setChongwuYuyueShenheTime(new Date());//审核时间
        chongwuYuyueService.updateById(chongwuYuyueEntity);//审核

        return R.ok();
    }

    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        List<ChongwuYuyueEntity> oldChongwuYuyueList =chongwuYuyueService.selectBatchIds(Arrays.asList(ids));//要删除的数据
        chongwuYuyueService.deleteBatchIds(Arrays.asList(ids));

        return R.ok();
    }


    /**
     * 批量上传
     */
    @RequestMapping("/batchInsert")
    public R save( String fileName, HttpServletRequest request){
        logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
        Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
        try {
            List<ChongwuYuyueEntity> chongwuYuyueList = new ArrayList<>();//上传的东西
            Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
            Date date = new Date();
            int lastIndexOf = fileName.lastIndexOf(".");
            if(lastIndexOf == -1){
                return R.error(511,"该文件没有后缀");
            }else{
                String suffix = fileName.substring(lastIndexOf);
                if(!".xls".equals(suffix)){
                    return R.error(511,"只支持后缀为xls的excel文件");
                }else{
                    URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
                    File file = new File(resource.getFile());
                    if(!file.exists()){
                        return R.error(511,"找不到上传文件,请联系管理员");
                    }else{
                        List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
                        dataList.remove(0);//删除第一行,因为第一行是提示
                        for(List<String> data:dataList){
                            //循环
                            ChongwuYuyueEntity chongwuYuyueEntity = new ChongwuYuyueEntity();
//                            chongwuYuyueEntity.setChongwuYuyueUuidNumber(data.get(0));                    //报名编号 要改的
//                            chongwuYuyueEntity.setChongwuId(Integer.valueOf(data.get(0)));   //宠物 要改的
//                            chongwuYuyueEntity.setYonghuId(Integer.valueOf(data.get(0)));   //用户 要改的
//                            chongwuYuyueEntity.setChongwuYuyueText(data.get(0));                    //报名理由 要改的
//                            chongwuYuyueEntity.setChongwuYuyueYesnoTypes(Integer.valueOf(data.get(0)));   //报名状态 要改的
//                            chongwuYuyueEntity.setChongwuYuyueYesnoText(data.get(0));                    //审核回复 要改的
//                            chongwuYuyueEntity.setChongwuYuyueShenheTime(sdf.parse(data.get(0)));          //审核时间 要改的
//                            chongwuYuyueEntity.setChongwuYuyueTime(sdf.parse(data.get(0)));          //预约时间 要改的
//                            chongwuYuyueEntity.setInsertTime(date);//时间
//                            chongwuYuyueEntity.setCreateTime(date);//时间
                            chongwuYuyueList.add(chongwuYuyueEntity);


                            //把要查询是否重复的字段放入map中
                                //报名编号
                                if(seachFields.containsKey("chongwuYuyueUuidNumber")){
                                    List<String> chongwuYuyueUuidNumber = seachFields.get("chongwuYuyueUuidNumber");
                                    chongwuYuyueUuidNumber.add(data.get(0));//要改的
                                }else{
                                    List<String> chongwuYuyueUuidNumber = new ArrayList<>();
                                    chongwuYuyueUuidNumber.add(data.get(0));//要改的
                                    seachFields.put("chongwuYuyueUuidNumber",chongwuYuyueUuidNumber);
                                }
                        }

                        //查询是否重复
                         //报名编号
                        List<ChongwuYuyueEntity> chongwuYuyueEntities_chongwuYuyueUuidNumber = chongwuYuyueService.selectList(new EntityWrapper<ChongwuYuyueEntity>().in("chongwu_yuyue_uuid_number", seachFields.get("chongwuYuyueUuidNumber")));
                        if(chongwuYuyueEntities_chongwuYuyueUuidNumber.size() >0 ){
                            ArrayList<String> repeatFields = new ArrayList<>();
                            for(ChongwuYuyueEntity s:chongwuYuyueEntities_chongwuYuyueUuidNumber){
                                repeatFields.add(s.getChongwuYuyueUuidNumber());
                            }
                            return R.error(511,"数据库的该表中的 [报名编号] 字段已经存在 存在数据为:"+repeatFields.toString());
                        }
                        chongwuYuyueService.insertBatch(chongwuYuyueList);
                        return R.ok();
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            return R.error(511,"批量插入数据异常,请联系管理员");
        }
    }




    /**
    * 前端列表
    */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));

        CommonUtil.checkMap(params);
        PageUtils page = chongwuYuyueService.queryPage(params);

        //字典表数据转换
        List<ChongwuYuyueView> list =(List<ChongwuYuyueView>)page.getList();
        for(ChongwuYuyueView c:list)
            dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段

        return R.ok().put("data", page);
    }

    /**
    * 前端详情
    */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        ChongwuYuyueEntity chongwuYuyue = chongwuYuyueService.selectById(id);
            if(chongwuYuyue !=null){


                //entity转view
                ChongwuYuyueView view = new ChongwuYuyueView();
                BeanUtils.copyProperties( chongwuYuyue , view );//把实体数据重构到view中

                //级联表
                    ChongwuEntity chongwu = chongwuService.selectById(chongwuYuyue.getChongwuId());
                if(chongwu != null){
                    BeanUtils.copyProperties( chongwu , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setChongwuId(chongwu.getId());
                }
                //级联表
                    YonghuEntity yonghu = yonghuService.selectById(chongwuYuyue.getYonghuId());
                if(yonghu != null){
                    BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setYonghuId(yonghu.getId());
                }
                //修改对应字典表字段
                dictionaryService.dictionaryConvert(view, request);
                return R.ok().put("data", view);
            }else {
                return R.error(511,"查不到数据");
            }
    }


    /**
    * 前端保存
    */
    @RequestMapping("/add")
    public R add(@RequestBody ChongwuYuyueEntity chongwuYuyue, HttpServletRequest request){
        logger.debug("add方法:,,Controller:{},,chongwuYuyue:{}",this.getClass().getName(),chongwuYuyue.toString());
        Wrapper<ChongwuYuyueEntity> queryWrapper = new EntityWrapper<ChongwuYuyueEntity>()
            .eq("chongwu_yuyue_uuid_number", chongwuYuyue.getChongwuYuyueUuidNumber())
            .eq("chongwu_id", chongwuYuyue.getChongwuId())
            .eq("yonghu_id", chongwuYuyue.getYonghuId())
            .eq("chongwu_yuyue_text", chongwuYuyue.getChongwuYuyueText())
            .in("chongwu_yuyue_yesno_types", new Integer[]{1,2})
            .eq("chongwu_yuyue_yesno_text", chongwuYuyue.getChongwuYuyueYesnoText())
//            .notIn("chongwu_yuyue_types", new Integer[]{102})
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ChongwuYuyueEntity chongwuYuyueEntity = chongwuYuyueService.selectOne(queryWrapper);
        if(chongwuYuyueEntity==null){
            chongwuYuyue.setChongwuYuyueYesnoTypes(1);
            chongwuYuyue.setInsertTime(new Date());
            chongwuYuyue.setCreateTime(new Date());
        chongwuYuyueService.insert(chongwuYuyue);

            return R.ok();
        }else {
            if(chongwuYuyueEntity.getChongwuYuyueYesnoTypes()==1)
                return R.error(511,"有相同的待审核的数据");
            else if(chongwuYuyueEntity.getChongwuYuyueYesnoTypes()==2)
                return R.error(511,"有相同的审核通过的数据");
            else
                return R.error(511,"表中有相同数据");
        }
    }

}

标签:vue,return,springboot,chongwuYuyue,源码,chongwuYuyueEntity,new,import,view
From: https://blog.csdn.net/2303_80201259/article/details/140514859

相关文章

  • Springboot集成Flyway详解
    1、背景随着项目的增多,各个项目的版本之间存在差异,因此在升级时,维护项目版本和最新版本之间增量的sql脚本成为一个严重的问题,非常耗时耗力,因此引入一个数据库变更管理工具迫在眉睫。目前比较常用的有flyway和liquibase,liquibase使用xml文件来定义和管理数据库脚本,不依赖于具体的......
  • AI创作商业系统软件源码(SparkAi系统) AI换脸/智能体GPTs应用/AI视频生成AI绘画/文档分
    AI创作商业系统软件源码(SparkAi系统)AI换脸/智能体GPTs应用/AI视频生成AI绘画/文档分析/GPT4.0模型支持目录一、人工智能SparkAi创作系统二、功能模块介绍系统快速体验三、系统功能模块3.1AI全模型支持/插件系统AI模型提问AI智能体文档分析多模态识图理解TTS&......
  • Vue项目实战:构建你的第一个项目
    Vue项目实战:从零到一构建你的第一个应用准备工作在开始使用Vue之前,请确保您已经安装了Node.js16.0或更高版本。Node.js是运行Vue项目所必需的JavaScript运行环境。Node.js下载与安装:访问Node.js官网下载适用于您操作系统的Node.js安装包。按照安装向导完成安装。验证N......
  • 在Vue.js中,this.$parent 表示当前组件实例的直接父组件实例
    在Vue.js中,this.$parent表示当前组件实例的直接父组件实例。它允许你从子组件中访问父组件中定义的属性、方法和数据。举个例子,如果你有一个子组件,并且想要从中访问父组件中定义的方法或属性,你可以使用this.$parent来引用它。以下是一个简单的示例来说明这一点:<!--ParentCo......
  • springboot 异步任务
    在主类开始任务packagecom.sugon.dataexchangeplatform;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.scheduling.annotation.EnableAsync;@EnableAsync//开启......
  • SpringCloud示例项目,使用的SpringBoot3.3.2
    先启动nacos:https://www.cnblogs.com/xsj1989/p/18323636特别注意,SpringBoot、SpringCloud、Openfeign等依赖的版本必须相匹配,不然会报各种错。具体版本对应关系看官网。或者看:https://start.spring.io/actuator/info父pom<?xmlversion="1.0"encoding="UTF-8"?><projectxmln......
  • 毕业设计-基于Springboot+Vue的职称评审管理系统的设计与实现(源码+LW+包运行)
    源码获取:https://download.csdn.net/download/u011832806/89431645基于SpringBoot+Vue的职称评审管理系统开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven系统演示视频:链接:https://pan.baidu.com/s/1MLQE1uAy2hJ1CaRQH4XF6g?pw......
  • 毕业设计-基于Springboot+Vue的毕业生信息招聘平台的设计与实现(源码+LW+包运行)
    源码获取:https://download.csdn.net/download/u011832806/89431634基于SpringBoot+Vue的毕业生信息招聘平台开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven系统演示视频:链接:https://pan.baidu.com/s/1-X-CEV8YNsWo7e-pA8pv7g?......
  • 1. vue 基础使用
    目录Djangovue快速上手1.使用1.1快速尝试Djangovue快速上手1.使用1.1快速尝试<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="https://cdn.bootcdn.......
  • 基于python电力安全员施工培训系统【源码+文档+PPT】
    精彩专栏推荐订阅:在下方主页......