计算机毕业设计 高校大学生竞赛项目管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

news2024/9/21 19:08:58

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
————————————————
计算机毕业设计《1000套》✌

目录

1、项目介绍及开发技术

1.1 项目介绍

1.2 开发技术

2、系统功能设计结构图

3、功能截图

3.1 前台功能

3.2 后台功能

4、数据库表结构设计

5、关键代码

5.1 项目信息Controller模块 

5.2 项目信息Service模块 

5.3 项目信息ServiceImpl模块

5.4  项目信息Dao模块

6、论文目录结构

7、源码获取


1、项目介绍及开发技术

1.1 项目介绍

在高等教育领域,大学生竞赛活动是培养学生创新能力、实践技能和团队合作精神的重要途径。然而,随着竞赛项目的增多和参与学生的广泛性,传统的竞赛项目管理方式面临着诸多挑战,如信息传递不畅、报名管理繁琐、成绩统计不准确等问题。为了提高竞赛项目管理的效率和质量,我们设计并开发了一个高校大学生竞赛项目管理系统。

背景:
随着教育信息化的推进,高校对于竞赛项目管理的需求日益增长。学生、教师和组织者都需要一个平台来简化竞赛的组织和参与流程。现有的管理方式往往依赖于手工操作和纸质文档,这不仅效率低下,而且容易出错。

目的意义:

  • 1. 提高管理效率:系统通过自动化的报名、成绩录入和通知发布等功能,减少了管理人员的工作负担,提高了管理效率。
  • 2. 信息透明化:学生和教师可以通过系统实时查看竞赛信息、报名状态和成绩公布,增加了竞赛管理的透明度。
  • 3. 数据准确性:系统内置的成绩管理和统计工具能够确保竞赛成绩的准确性和公正性。
  • 4. 促进学生参与:便捷的报名流程和即时的信息反馈能够鼓励更多学生参与到竞赛中来,提高学生的参与度和竞赛的热情。
  • 5. 资源优化配置:系统可以帮助管理者更好地规划和分配竞赛资源,如场地、设备和评委,确保竞赛的顺利进行。

综上所述,高校大学生竞赛项目管理系统的设计与实现,不仅能够为高校提供一个高效、透明、公正的竞赛管理平台,还能够促进学生创新能力和实践技能的培养,是推动高等教育创新和实践教学改革的重要工具。通过技术手段优化竞赛项目管理流程,该系统有望成为高校竞赛活动组织和管理的得力助手。

1.2 开发技术

类别技术名称用途/描述
开发语言Java一种广泛使用的面向对象编程语言。
框架Spring Boot简化Spring应用的初始搭建以及开发过程。
ORM工具MyBatis PlusMyBatis的增强工具,简化CRUD操作。
数据库MySQL流行的关系型数据库管理系统。
构建工具Maven项目管理和理解工具。
开发工具IDEA集成开发环境,用于代码编写和调试。
JDK版本JDK 1.8+Java开发工具包,提供运行Java程序所需的环境。
前端框架Vue用于构建用户界面的渐进式JavaScript框架。
UI框架Element UI基于Vue的桌面端组件库。
前端技术HTML网页内容的标准标记语言。
前端技术CSS描述HTML文档的样式。
前端技术JS网页脚本语言,用于实现网页的动态效果。

2、系统功能设计结构图

功能模块结构图(角色:学生、评委、管理员)

├── 前端
│   ├── 登录
│   ├── 注册
│   ├── 首页
│   ├── 项目信息
│   │   └── 报名参赛
│   ├── 公告信息
│   ├── 个人资料
│   │   ├── 个人中心
│   │   ├── 修改密码
│   │   ├── 报名信息
│   │   ├── 竞赛成绩
│   │   └── 我的收藏

└── 后端
    ├── 登录
    ├── 系统首页
    ├── 学生管理
    ├── 评委管理
    ├── 项目类型管理
    ├── 项目信息管理
    ├── 报名信息管理
    ├── 竞赛成绩管理
    └── 系统管理
    ├── 个人资料管理

系统MVC框架,请求流程展示:

3、功能截图

3.1 前台功能

 

3.2 后台功能

 

4、数据库表结构设计


CREATE TABLE `aboutus` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `title` varchar(200) NOT NULL COMMENT '标题',
  `subtitle` varchar(200) DEFAULT NULL COMMENT '副标题',
  `content` longtext NOT NULL COMMENT '内容',
  `picture1` longtext COMMENT '图片1',
  `picture2` longtext COMMENT '图片2',
  `picture3` longtext COMMENT '图片3',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='关于我们';
/*!40101 SET character_set_client = @saved_cs_client */;

CREATE TABLE `config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) NOT NULL COMMENT '配置参数名称',
  `value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
  `url` varchar(500) DEFAULT NULL COMMENT 'url',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
/*!40101 SET character_set_client = @saved_cs_client */;

CREATE TABLE `jingsaichengji` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `baomingbianhao` varchar(200) DEFAULT NULL COMMENT '报名编号',
  `xiangmu` varchar(200) DEFAULT NULL COMMENT '项目',
  `xiangmuleixing` varchar(200) DEFAULT NULL COMMENT '项目类型',
  `fengmian` longtext COMMENT '封面',
  `jingsaishijian` varchar(200) DEFAULT NULL COMMENT '竞赛时间',
  `jingsaididian` varchar(200) DEFAULT NULL COMMENT '竞赛地点',
  `xuehao` varchar(200) DEFAULT NULL COMMENT '学号',
  `xingming` varchar(200) DEFAULT NULL COMMENT '姓名',
  `lianxifangshi` varchar(200) DEFAULT NULL COMMENT '联系方式',
  `zhidaolaoshi` varchar(200) DEFAULT NULL COMMENT '指导老师',
  `mingci` int(11) DEFAULT NULL COMMENT '名次',
  `chengji` int(11) NOT NULL COMMENT '成绩',
  `dengjishijian` datetime DEFAULT NULL COMMENT '登记时间',
  `pingweizhanghao` varchar(200) DEFAULT NULL COMMENT '评委账号',
  `pingweixingming` varchar(200) DEFAULT NULL COMMENT '评委姓名',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8 COMMENT='竞赛成绩';
/*!40101 SET character_set_client = @saved_cs_client */;

CREATE TABLE `pingwei` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `pingweizhanghao` varchar(200) NOT NULL COMMENT '评委账号',
  `mima` varchar(200) NOT NULL COMMENT '密码',
  `pingweixingming` varchar(200) NOT NULL COMMENT '评委姓名',
  `xingbie` varchar(200) DEFAULT NULL COMMENT '性别',
  `shenfenzheng` varchar(200) NOT NULL COMMENT '身份证',
  `suoshudanwei` varchar(200) NOT NULL COMMENT '所属单位',
  `zhicheng` varchar(200) NOT NULL COMMENT '职称',
  `lianxifangshi` varchar(200) NOT NULL COMMENT '联系方式',
  PRIMARY KEY (`id`),
  UNIQUE KEY `pingweizhanghao` (`pingweizhanghao`)
) ENGINE=InnoDB AUTO_INCREMENT=1714015928362 DEFAULT CHARSET=utf8 COMMENT='评委';
/*!40101 SET character_set_client = @saved_cs_client */;

CREATE TABLE `storeup` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `refid` bigint(20) DEFAULT NULL COMMENT '商品id',
  `tablename` varchar(200) DEFAULT NULL COMMENT '表名',
  `name` varchar(200) NOT NULL COMMENT '名称',
  `picture` longtext COMMENT '图片',
  `type` varchar(200) DEFAULT '1' COMMENT '类型',
  `inteltype` varchar(200) DEFAULT NULL COMMENT '推荐类型',
  `remark` varchar(200) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='收藏表';
/*!40101 SET character_set_client = @saved_cs_client */;

CREATE TABLE `systemintro` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `title` varchar(200) NOT NULL COMMENT '标题',
  `subtitle` varchar(200) DEFAULT NULL COMMENT '副标题',
  `content` longtext NOT NULL COMMENT '内容',
  `picture1` longtext COMMENT '图片1',
  `picture2` longtext COMMENT '图片2',
  `picture3` longtext COMMENT '图片3',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='系统简介';
/*!40101 SET character_set_client = @saved_cs_client */;


DROP TABLE IF EXISTS `token`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `token` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `username` varchar(100) NOT NULL COMMENT '用户名',
  `tablename` varchar(100) DEFAULT NULL COMMENT '表名',
  `role` varchar(100) DEFAULT NULL COMMENT '角色',
  `token` varchar(200) NOT NULL COMMENT '密码',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
  `expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='token表';
/*!40101 SET character_set_client = @saved_cs_client */;

CREATE TABLE `users` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(100) NOT NULL COMMENT '用户名',
  `password` varchar(100) NOT NULL COMMENT '密码',
  `image` varchar(200) DEFAULT 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='用户表';
/*!40101 SET character_set_client = @saved_cs_client */;


CREATE TABLE `xiangmuleixing` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `xiangmuleixing` varchar(200) DEFAULT NULL COMMENT '项目类型',
  PRIMARY KEY (`id`),
  UNIQUE KEY `xiangmuleixing` (`xiangmuleixing`)
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COMMENT='项目类型';
/*!40101 SET character_set_client = @saved_cs_client */;

CREATE TABLE `xuesheng` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `xuehao` varchar(200) NOT NULL COMMENT '学号',
  `mima` varchar(200) NOT NULL COMMENT '密码',
  `touxiang` longtext COMMENT '头像',
  `xingming` varchar(200) NOT NULL COMMENT '姓名',
  `xingbie` varchar(200) DEFAULT NULL COMMENT '性别',
  `shenfenzheng` varchar(200) NOT NULL COMMENT '身份证',
  `xueyuan` varchar(200) NOT NULL COMMENT '学院',
  `zhuanye` varchar(200) NOT NULL COMMENT '专业',
  `zhidaojiaoshi` varchar(200) NOT NULL COMMENT '指导教师',
  `lianxifangshi` varchar(200) NOT NULL COMMENT '联系方式',
  `huojiangqingkuang` varchar(200) NOT NULL COMMENT '获奖情况',
  PRIMARY KEY (`id`),
  UNIQUE KEY `xuehao` (`xuehao`)
) ENGINE=InnoDB AUTO_INCREMENT=1714015977255 DEFAULT CHARSET=utf8 COMMENT='学生';
/*!40101 SET character_set_client = @saved_cs_client */;

5、关键代码

5.1 项目信息Controller模块 


package com.controller;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.XiangmuxinxiEntity;
import com.entity.view.XiangmuxinxiView;

import com.service.XiangmuxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;
import com.utils.MapUtils;
import com.utils.CommonUtil;
import java.io.IOException;
import com.service.StoreupService;
import com.entity.StoreupEntity;

/**
 * 项目信息
 * 后端接口
 * @author 
 * @email 
 */
@RestController
@RequestMapping("/xiangmuxinxi")
public class XiangmuxinxiController {
    @Autowired
    private XiangmuxinxiService xiangmuxinxiService;

    @Autowired
    private StoreupService storeupService;



    



    /**
     * 后台列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,XiangmuxinxiEntity xiangmuxinxi,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("pingwei")) {
			xiangmuxinxi.setPingweizhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();

		PageUtils page = xiangmuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiangmuxinxi), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前台列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,XiangmuxinxiEntity xiangmuxinxi, 
		HttpServletRequest request){
        EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();

		PageUtils page = xiangmuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiangmuxinxi), params), params));
        return R.ok().put("data", page);
    }



	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( XiangmuxinxiEntity xiangmuxinxi){
       	EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( xiangmuxinxi, "xiangmuxinxi")); 
        return R.ok().put("data", xiangmuxinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(XiangmuxinxiEntity xiangmuxinxi){
        EntityWrapper< XiangmuxinxiEntity> ew = new EntityWrapper< XiangmuxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( xiangmuxinxi, "xiangmuxinxi")); 
		XiangmuxinxiView xiangmuxinxiView =  xiangmuxinxiService.selectView(ew);
		return R.ok("查询项目信息成功").put("data", xiangmuxinxiView);
    }
	
    /**
     * 后台详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        XiangmuxinxiEntity xiangmuxinxi = xiangmuxinxiService.selectById(id);
		xiangmuxinxi.setClicknum(xiangmuxinxi.getClicknum()+1);
		xiangmuxinxiService.updateById(xiangmuxinxi);
        xiangmuxinxi = xiangmuxinxiService.selectView(new EntityWrapper<XiangmuxinxiEntity>().eq("id", id));
        return R.ok().put("data", xiangmuxinxi);
    }

    /**
     * 前台详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        XiangmuxinxiEntity xiangmuxinxi = xiangmuxinxiService.selectById(id);
		xiangmuxinxi.setClicknum(xiangmuxinxi.getClicknum()+1);
		xiangmuxinxiService.updateById(xiangmuxinxi);
        xiangmuxinxi = xiangmuxinxiService.selectView(new EntityWrapper<XiangmuxinxiEntity>().eq("id", id));
        return R.ok().put("data", xiangmuxinxi);
    }
    


    /**
     * 赞或踩
     */
    @RequestMapping("/thumbsup/{id}")
    public R vote(@PathVariable("id") String id,String type){
        XiangmuxinxiEntity xiangmuxinxi = xiangmuxinxiService.selectById(id);
        if(type.equals("1")) {
        	xiangmuxinxi.setThumbsupnum(xiangmuxinxi.getThumbsupnum()+1);
        } else {
        	xiangmuxinxi.setCrazilynum(xiangmuxinxi.getCrazilynum()+1);
        }
        xiangmuxinxiService.updateById(xiangmuxinxi);
        return R.ok("投票成功");
    }

    /**
     * 后台保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody XiangmuxinxiEntity xiangmuxinxi, HttpServletRequest request){
    	//ValidatorUtils.validateEntity(xiangmuxinxi);
        xiangmuxinxiService.insert(xiangmuxinxi);
        return R.ok();
    }
    
    /**
     * 前台保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody XiangmuxinxiEntity xiangmuxinxi, HttpServletRequest request){
    	//ValidatorUtils.validateEntity(xiangmuxinxi);
        xiangmuxinxiService.insert(xiangmuxinxi);
        return R.ok();
    }





    /**
     * 修改
     */
    @RequestMapping("/update")
    @Transactional
    public R update(@RequestBody XiangmuxinxiEntity xiangmuxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(xiangmuxinxi);
        xiangmuxinxiService.updateById(xiangmuxinxi);//全部更新
        return R.ok();
    }



    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        xiangmuxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
	






    /**
     * (按值统计)
     */
    @RequestMapping("/value/{xColumnName}/{yColumnName}")
    public R value(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName,HttpServletRequest request) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("xColumn", xColumnName);
        params.put("yColumn", yColumnName);
        EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("pingwei")) {
            ew.eq("pingweizhanghao", (String)request.getSession().getAttribute("username"));
		}
        List<Map<String, Object>> result = xiangmuxinxiService.selectValue(params, ew);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        for(Map<String, Object> m : result) {
            for(String k : m.keySet()) {
                if(m.get(k) instanceof Date) {
                    m.put(k, sdf.format((Date)m.get(k)));
                }
            }
        }
        return R.ok().put("data", result);
    }

    /**
     * (按值统计(多))
     */
    @RequestMapping("/valueMul/{xColumnName}")
    public R valueMul(@PathVariable("xColumnName") String xColumnName,@RequestParam String yColumnNameMul, HttpServletRequest request) {
        String[] yColumnNames = yColumnNameMul.split(",");
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("xColumn", xColumnName);
        List<List<Map<String, Object>>> result2 = new ArrayList<List<Map<String,Object>>>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();
        String tableName = request.getSession().getAttribute("tableName").toString();
        if(tableName.equals("pingwei")) {
            ew.eq("pingweizhanghao", (String)request.getSession().getAttribute("username"));
        }
        for(int i=0;i<yColumnNames.length;i++) {
            params.put("yColumn", yColumnNames[i]);
            List<Map<String, Object>> result = xiangmuxinxiService.selectValue(params, ew);
            for(Map<String, Object> m : result) {
                for(String k : m.keySet()) {
                    if(m.get(k) instanceof Date) {
                        m.put(k, sdf.format((Date)m.get(k)));
                    }
                }
            }
            result2.add(result);
        }
        return R.ok().put("data", result2);
    }

    /**
     * (按值统计)时间统计类型
     */
    @RequestMapping("/value/{xColumnName}/{yColumnName}/{timeStatType}")
    public R valueDay(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,HttpServletRequest request) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("xColumn", xColumnName);
        params.put("yColumn", yColumnName);
        params.put("timeStatType", timeStatType);
        EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();
        String tableName = request.getSession().getAttribute("tableName").toString();
        if(tableName.equals("pingwei")) {
            ew.eq("pingweizhanghao", (String)request.getSession().getAttribute("username"));
        }
        List<Map<String, Object>> result = xiangmuxinxiService.selectTimeStatValue(params, ew);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        for(Map<String, Object> m : result) {
            for(String k : m.keySet()) {
                if(m.get(k) instanceof Date) {
                    m.put(k, sdf.format((Date)m.get(k)));
                }
            }
        }
        return R.ok().put("data", result);
    }

    /**
     * (按值统计)时间统计类型(多)
     */
    @RequestMapping("/valueMul/{xColumnName}/{timeStatType}")
    public R valueMulDay(@PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,@RequestParam String yColumnNameMul,HttpServletRequest request) {
        String[] yColumnNames = yColumnNameMul.split(",");
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("xColumn", xColumnName);
        params.put("timeStatType", timeStatType);
        List<List<Map<String, Object>>> result2 = new ArrayList<List<Map<String,Object>>>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();
        String tableName = request.getSession().getAttribute("tableName").toString();
        if(tableName.equals("pingwei")) {
            ew.eq("pingweizhanghao", (String)request.getSession().getAttribute("username"));
        }
        for(int i=0;i<yColumnNames.length;i++) {
            params.put("yColumn", yColumnNames[i]);
            List<Map<String, Object>> result = xiangmuxinxiService.selectTimeStatValue(params, ew);
            for(Map<String, Object> m : result) {
                for(String k : m.keySet()) {
                    if(m.get(k) instanceof Date) {
                        m.put(k, sdf.format((Date)m.get(k)));
                    }
                }
            }
            result2.add(result);
        }
        return R.ok().put("data", result2);
    }

    /**
     * 分组统计
     */
    @RequestMapping("/group/{columnName}")
    public R group(@PathVariable("columnName") String columnName,HttpServletRequest request) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("column", columnName);
        EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();
        String tableName = request.getSession().getAttribute("tableName").toString();
        if(tableName.equals("pingwei")) {
            ew.eq("pingweizhanghao", (String)request.getSession().getAttribute("username"));
        }
        List<Map<String, Object>> result = xiangmuxinxiService.selectGroup(params, ew);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        for(Map<String, Object> m : result) {
            for(String k : m.keySet()) {
                if(m.get(k) instanceof Date) {
                    m.put(k, sdf.format((Date)m.get(k)));
                }
            }
        }
        return R.ok().put("data", result);
    }




    /**
     * 总数量
     */
    @RequestMapping("/count")
    public R count(@RequestParam Map<String, Object> params,XiangmuxinxiEntity xiangmuxinxi, HttpServletRequest request){
        String tableName = request.getSession().getAttribute("tableName").toString();
        if(tableName.equals("pingwei")) {
            xiangmuxinxi.setPingweizhanghao((String)request.getSession().getAttribute("username"));
        }
        EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();
        int count = xiangmuxinxiService.selectCount(MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiangmuxinxi), params), params));
        return R.ok().put("data", count);
    }



}

5.2 项目信息Service模块 

 package com.service;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.XiangmuxinxiEntity;
import java.util.List;
import java.util.Map;
import com.entity.vo.XiangmuxinxiVO;
import org.apache.ibatis.annotations.Param;
import com.entity.view.XiangmuxinxiView;


/**
 * 项目信息
 *
 * @author 
 * @email 
 */
public interface XiangmuxinxiService extends IService<XiangmuxinxiEntity> {

    PageUtils queryPage(Map<String, Object> params);
    
   	List<XiangmuxinxiVO> selectListVO(Wrapper<XiangmuxinxiEntity> wrapper);
   	
   	XiangmuxinxiVO selectVO(@Param("ew") Wrapper<XiangmuxinxiEntity> wrapper);
   	
   	List<XiangmuxinxiView> selectListView(Wrapper<XiangmuxinxiEntity> wrapper);
   	
   	XiangmuxinxiView selectView(@Param("ew") Wrapper<XiangmuxinxiEntity> wrapper);
   	
   	PageUtils queryPage(Map<String, Object> params,Wrapper<XiangmuxinxiEntity> wrapper);

   	

    List<Map<String, Object>> selectValue(Map<String, Object> params,Wrapper<XiangmuxinxiEntity> wrapper);

    List<Map<String, Object>> selectTimeStatValue(Map<String, Object> params,Wrapper<XiangmuxinxiEntity> wrapper);

    List<Map<String, Object>> selectGroup(Map<String, Object> params,Wrapper<XiangmuxinxiEntity> wrapper);



}

5.3 项目信息ServiceImpl模块


package com.service.impl;

import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.utils.PageUtils;
import com.utils.Query;


import com.dao.XiangmuxinxiDao;
import com.entity.XiangmuxinxiEntity;
import com.service.XiangmuxinxiService;
import com.entity.vo.XiangmuxinxiVO;
import com.entity.view.XiangmuxinxiView;

@Service("xiangmuxinxiService")
public class XiangmuxinxiServiceImpl extends ServiceImpl<XiangmuxinxiDao, XiangmuxinxiEntity> implements XiangmuxinxiService {
	
	
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        Page<XiangmuxinxiEntity> page = this.selectPage(
                new Query<XiangmuxinxiEntity>(params).getPage(),
                new EntityWrapper<XiangmuxinxiEntity>()
        );
        return new PageUtils(page);
    }
    
    @Override
	public PageUtils queryPage(Map<String, Object> params, Wrapper<XiangmuxinxiEntity> wrapper) {
		  Page<XiangmuxinxiView> page =new Query<XiangmuxinxiView>(params).getPage();
	        page.setRecords(baseMapper.selectListView(page,wrapper));
	    	PageUtils pageUtil = new PageUtils(page);
	    	return pageUtil;
 	}

    
    @Override
	public List<XiangmuxinxiVO> selectListVO(Wrapper<XiangmuxinxiEntity> wrapper) {
 		return baseMapper.selectListVO(wrapper);
	}
	
	@Override
	public XiangmuxinxiVO selectVO(Wrapper<XiangmuxinxiEntity> wrapper) {
 		return baseMapper.selectVO(wrapper);
	}
	
	@Override
	public List<XiangmuxinxiView> selectListView(Wrapper<XiangmuxinxiEntity> wrapper) {
		return baseMapper.selectListView(wrapper);
	}

	@Override
	public XiangmuxinxiView selectView(Wrapper<XiangmuxinxiEntity> wrapper) {
		return baseMapper.selectView(wrapper);
	}

    @Override
    public List<Map<String, Object>> selectValue(Map<String, Object> params, Wrapper<XiangmuxinxiEntity> wrapper) {
        return baseMapper.selectValue(params, wrapper);
    }

    @Override
    public List<Map<String, Object>> selectTimeStatValue(Map<String, Object> params, Wrapper<XiangmuxinxiEntity> wrapper) {
        return baseMapper.selectTimeStatValue(params, wrapper);
    }

    @Override
    public List<Map<String, Object>> selectGroup(Map<String, Object> params, Wrapper<XiangmuxinxiEntity> wrapper) {
        return baseMapper.selectGroup(params, wrapper);
    }




}

5.4  项目信息Dao模块


package com.dao;

import com.entity.XiangmuxinxiEntity;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;

import org.apache.ibatis.annotations.Param;
import com.entity.vo.XiangmuxinxiVO;
import com.entity.view.XiangmuxinxiView;


/**
 * 项目信息
 * 
 * @author 
 * @email 
 */
public interface XiangmuxinxiDao extends BaseMapper<XiangmuxinxiEntity> {
	
	List<XiangmuxinxiVO> selectListVO(@Param("ew") Wrapper<XiangmuxinxiEntity> wrapper);
	
	XiangmuxinxiVO selectVO(@Param("ew") Wrapper<XiangmuxinxiEntity> wrapper);
	
	List<XiangmuxinxiView> selectListView(@Param("ew") Wrapper<XiangmuxinxiEntity> wrapper);

	List<XiangmuxinxiView> selectListView(Pagination page,@Param("ew") Wrapper<XiangmuxinxiEntity> wrapper);

	
	XiangmuxinxiView selectView(@Param("ew") Wrapper<XiangmuxinxiEntity> wrapper);
	

    List<Map<String, Object>> selectValue(@Param("params") Map<String, Object> params,@Param("ew") Wrapper<XiangmuxinxiEntity> wrapper);

    List<Map<String, Object>> selectTimeStatValue(@Param("params") Map<String, Object> params,@Param("ew") Wrapper<XiangmuxinxiEntity> wrapper);

    List<Map<String, Object>> selectGroup(@Param("params") Map<String, Object> params,@Param("ew") Wrapper<XiangmuxinxiEntity> wrapper);



}

6、论文目录结构

摘要... I

Abstract... II

1 绪论... 1
   1.1 项目简介... 1
   1.2 调查研究... 1
       1.2.1 研究背景及意义... 1
       1.2.2 国内外研究现状... 2
       1.2.3 研究主要内容... 2
   1.3 论文的章节安排... 3

2 系统相关技术介绍... 4
   2.1 Java语言... 4
   2.2 SpringBoot框架... 4
   2.3 Vue框架... 4
   2.4 MySQL数据库... 4

3 系统需求分析... 6
   3.1 可行性分析... 6
       3.1.1 技术可行性... 6
       3.1.2 经济可行性... 6
       3.1.3 操作可行性... 6
   3.2 系统功能需求... 6
       3.2.1 用户端功能需求... 6
       3.2.2 XX端功能需求... 6
       3.2.3 管理员端功能需求... 6
   3.3 系统性能需求... 6

4 系统总体设计... 7
   4.1 系统总体架构设计... 7
   4.2 系统的功能设计... 7
   4.3 数据库设计... 7
       4.3.1 概念设计E-R图... 7
       4.3.2 逻辑设计关系模式... 7
       4.3.3 数据库物理设计... 7

5 系统详细实现... 14
   5.1 系统实现环境... 14
   5.2 用户端... 14
       5.2.1 登录页面... 14
       5.2.2 注册页面... 14
       5.2.3 XXXX页面... 14
       5.2.4 XXXX页面... 14
       5.2.5 XXXX页面... 14
   5.3 XXXX端... 15
       5.3.1 XXXX页面... 15
       5.3.2 XXXX页面... 15
       5.3.3 XXXX页面... 15
       5.3.4 XXXX页面... 15
   5.4 管理端... 15
       5.4.1 用户管理页面... 15
       5.4.2 XXXX页面... 15
       5.4.3 XXXX页面... 16
       5.4.4 XXXX页面... 16

6 系统测试... 16
   6.1 测试目的... 16
   6.2 测试方法... 16
   6.3 测试用例... 16
       6.3.1 XXXX测试... 16
       6.3.2 XXXX测试... 16
   6.4 测试结果... 16

结论... 17

参考文献... 18

致谢... 19

更多源码:

计算机毕业设计选题1000套等你来!!!

7、源码获取

感谢大家的阅读,如有不懂的问题可以评论区交流或私聊!

喜欢文章可以点赞、收藏、关注、评论

下方联系方式获取源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2140217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

获取Live2d模型

文章目录 1、 Live2D官方示例数据集&#xff08;可免费下载&#xff09;2、模之屋3、unity商店4、直接b站搜索5、youtube6、BOOTH完结 1、 Live2D官方示例数据集&#xff08;可免费下载&#xff09; 官方提供了一些 Live2D实例模型给大家下载使用 地址&#xff1a;https://ww…

2024年【山东省安全员B证】报名考试及山东省安全员B证最新解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 山东省安全员B证报名考试是安全生产模拟考试一点通生成的&#xff0c;山东省安全员B证证模拟考试题库是根据山东省安全员B证最新版教材汇编出山东省安全员B证仿真模拟考试。2024年【山东省安全员B证】报名考试及山东省…

通用接口开放平台设计与实现——(31)API服务线程安全问题确认与修复

背景 在本系列的前面一篇博客评论中&#xff0c;有小伙伴指出&#xff0c;API服务存在线程安全问题&#xff1a; https://blog.csdn.net/seawaving/article/details/122905199#comments_34477405 今天来确认下&#xff0c;线程是否安全&#xff1f;如不安全&#xff0c;如何…

在k8s中,客户端访问服务的链路流程,ingress--->service--->deployment--->pod--->container

ingress是一个API资源。 其核心作用是nginx网页服务器。 当客户端访问服务器不同的url时, 用不同的location提供服务。 在k8s之外&#xff0c;nginx的配置一般如下&#xff1a; http {server {listen 80;server_name localhost;location / {root html; …

文件的应用实例

目录 1、拷贝文件 2、遍历文件夹 1、拷贝文件 说明&#xff1a;将一张图片/一首歌拷贝到另外一个目录下&#xff0c;要求使用read()和write()原生方法完成 """思路分析&#xff1a;1、打开源文件(需要拷贝的文件)&#xff0c;读取源文件的数据2、打开目标文…

网络安全学习(四)渗透工具msf

本文简要介绍metasploit framework&#xff0c;是一款渗透工具。官网地址&#xff1a;Metasploit | Penetration Testing Software, Pen Testing Security | Metasploit msf是一个框架&#xff0c;可以加载各种模块&#xff0c;这是它的最强大之处。 kali中有此工具。 点击即…

python中的各类比较与计算

运算符 1.算数运算符2.关系运算符3.逻辑运算符4.关于短路求值5.赋值运算符1&#xff09;的使用链式赋值多元赋值 2)复合赋值运算符 6.位运算符7.成员运算符8.身份运算符 1.算数运算符 # 加 print(1 2) # 减 print(2 - 1) # 乘 print(1 * 2) # 余数 4%31余数为1 print(4 % 3…

C++第五十一弹---IO流实战:高效文件读写与格式化输出

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1. C语言的输入与输出 2. 流是什么 3. CIO流 3.1 C标准IO流 3.2 C文件IO流 3.2.1 以写方式打开文件 3.2.1 以读方式打开文件 4 stringstre…

【测试方案】软件测试管理规程(doc源文件)

软件测试规程的作用在于确保软件测试活动的系统性、规范性和一致性。它明确了测试的目标、范围、方法、流程以及所需资源&#xff0c;为测试人员提供了明确的指导和操作规范。通过遵循测试规程&#xff0c;可以提高测试效率&#xff0c;减少测试遗漏和错误&#xff0c;保证软件…

NC 表达式求值

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 请写一个整数…

MySQL8.0.13-函数索引

目录 什么是函数索引 语法 函数索引测试 创建表结构 插入数据 创建普通索引 查看执行计划 创建函数索引 查看执行计划 查看索引信息 函数索引效率 普通索引 函数索引 分析 注意事项 老版本如何实现函数索引 什么是函数索引 本篇主要介绍 MySQL 的函数索引&…

【数据结构】顺序表和链表经典题目

系列文章目录 单链表 动态顺序表实现通讯录 顺序表 文章目录 系列文章目录前言一、顺序表经典例题1. 移除元素2. 合并两个有序数组 二、链表经典例题1. 移除链表元素2. 反转链表3. 合并两个有序链表4. 链表的中间节点5. 环形链表的约瑟夫问题 总结 前言 我们通过前面对顺序表…

NVM(node.js版本工具)的使用

1.nvm是什么 NVM 是 Node Version Manager 的缩写&#xff0c;它是一个用于管理 Node.js 版本的命令行工具。通过NVM&#xff0c;你可以在同一台机器上安装和切换多个 Node.js 版本&#xff0c;对于开发和测试在不同 Node.js 版本上运行的应用程序非常有用。 2.下载 下载之前…

『功能项目』眩晕图标显示【52】

我们打开上一篇51调整Boss技能bug的项目&#xff0c; 本章要做的事情是在释放法师的眩晕技能时&#xff0c;boss01处在眩晕动画时显示一个眩晕图标 首先双击Boss01预制体进入预制体空间 创建一个Image重命名为StateUIdiz 代表第一个受击状态 设置Canavas 并且修改Canvas的渲染…

Java 学习全攻略:从入门到精通的详细指南

目录 一、引言 Java 的背景和发展 学习 Java 的意义 二、Java 的核心特性 1. 面向对象编程&#xff08;OOP&#xff09; 2. 跨平台性 3. 自动内存管理 4. 强大的标准库 三、Java 基础语法 1. 变量和数据类型 原始数据类型 引用数据类型 2. 运算符 3. 控制结构 条…

柳淘鸿黄金沁透发热面膜:肌肤逆龄之旅的秘密武器!

柳淘鸿黄金沁透发热面膜&#xff1a;肌肤逆龄之旅的秘密武器&#xff01;"柳淘鸿的黄金沁透发热面膜液融合了中国发明专利,专利号:ZL202310228041.5对应成分:胶原, 金&#xff0c;珍珠粉以及多种珍贵植物萃取精华&#xff0c;是肌肤逆龄之旅的绝密武器。这款面膜液温和滋养…

Git之误执行git rm -r解决方案(六十七)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

视频分割操作教程

1、打开剪映 2、点击开始创作上面的“”&#xff0c;选择视频&#xff0c;点击添加按钮&#xff0c;导入一个视频素材到剪映 3、滑动视频&#xff0c;让视频竖线到合适位置 4、点击视频&#xff0c;出现白色边框 5、点击工具栏“分割”&#xff0c;然后点击需要删除的视频部分 …

03 战略的本质与实践 - 战略管理实践的启示

1,战略有一定复杂性。在学术界就有很多学派。明斯伯格,加拿大的管理学家,认为有10大学派。 我看来有三个方面: 理性学派:通过规划、主动管理 演进学派:根据一个不确定性的环境,自发自下而上来形成 过程管理:重要的不是结果,而是过程 简单的看,如下图。 显示公司自己的…

查询分类数据序列中的每个类别 Series.cat.categories

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 1.定义分类序列s 2.查询s中的各类别 Series.cat.categories 选择题 关于以下代码输出结果的说法中正确的是? import pandas as pd s pd.Series([a,b,a,b], dtypecategory) print("【…