计算机毕业设计 招生宣传管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

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

Python毕设精品项目

微信小程序毕设精品项目

大数据及机器学习毕设精品项目

目录

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、数据库表结构设计

DROP TABLE IF EXISTS `config`;

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


DROP TABLE IF EXISTS `gonggao`;

CREATE TABLE `gonggao` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `gonggao_name` varchar(200) DEFAULT NULL COMMENT '公告名称 Search111  ',
  `gonggao_photo` varchar(200) DEFAULT NULL COMMENT '公告图片 ',
  `gonggao_types` int(11) NOT NULL COMMENT '公告类型 Search111 ',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '公告发布时间 ',
  `gonggao_content` longtext COMMENT '公告详情 ',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='公告';


DROP TABLE IF EXISTS `jihua`;

CREATE TABLE `jihua` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `jihua_name` varchar(200) DEFAULT NULL COMMENT '计划标题 Search111  ',
  `jihua_photo` varchar(200) DEFAULT NULL COMMENT '计划图片 ',
  `jihua_types` int(11) NOT NULL COMMENT '计划类型 Search111 ',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '计划发布时间 ',
  `jihua_content` longtext COMMENT '计划详情 ',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='招生计划';


DROP TABLE IF EXISTS `token`;

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=5 DEFAULT CHARSET=utf8 COMMENT='token表';


DROP TABLE IF EXISTS `wuzi`;

CREATE TABLE `wuzi` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `wuzi_uuid_number` varchar(200) DEFAULT NULL COMMENT '物资编号',
  `wuzi_name` varchar(200) DEFAULT NULL COMMENT '物资名称  Search111 ',
  `wuzi_photo` varchar(200) DEFAULT NULL COMMENT '物资照片',
  `wuzi_danwei` varchar(200) DEFAULT NULL COMMENT '单位',
  `wuzi_types` int(11) DEFAULT NULL COMMENT '物资类型 Search111',
  `wuzi_kucun_number` int(11) DEFAULT NULL COMMENT '物资数量',
  `wuzi_yuzhi` int(11) DEFAULT NULL COMMENT '阈值',
  `wuzi_content` longtext COMMENT '物资介绍 ',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='物资';


DROP TABLE IF EXISTS `wuzi_xiaohao`;

CREATE TABLE `wuzi_xiaohao` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `wuzi_id` int(11) DEFAULT NULL COMMENT '物资',
  `zhaoshengrenyuan_id` int(11) DEFAULT NULL COMMENT '招生人员',
  `wuzi_xiaohao_uuid_number` varchar(200) DEFAULT NULL COMMENT '物资消耗编号',
  `wuzi_xiaohao_name` varchar(200) DEFAULT NULL COMMENT '物资消耗标题  Search111 ',
  `wuzi_xiaohao_address` varchar(200) DEFAULT NULL COMMENT '消耗地点',
  `wuzi_xiaohao_time` timestamp NULL DEFAULT NULL COMMENT '消耗时间',
  `wuzi_xiaohao_types` int(11) DEFAULT NULL COMMENT '物资消耗类型 Search111',
  `wuzi_xiaohao_kucun_number` int(11) DEFAULT NULL COMMENT '消耗数量',
  `wuzi_xiaohao_content` longtext COMMENT '消耗备注 ',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='物资消耗';

/*Table structure for table `zhaoshengrenyuan` */

DROP TABLE IF EXISTS `zhaoshengrenyuan`;

CREATE TABLE `zhaoshengrenyuan` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(200) DEFAULT NULL COMMENT '账户',
  `password` varchar(200) DEFAULT NULL COMMENT '密码',
  `zhaoshengrenyuan_name` varchar(200) DEFAULT NULL COMMENT '招生人员姓名 Search111 ',
  `zhaoshengrenyuan_phone` varchar(200) DEFAULT NULL COMMENT '招生人员手机号',
  `zhaoshengrenyuan_id_number` varchar(200) DEFAULT NULL COMMENT '招生人员身份证号',
  `zhaoshengrenyuan_photo` varchar(200) DEFAULT NULL COMMENT '招生人员头像',
  `sex_types` int(11) DEFAULT NULL COMMENT '性别',
  `zhaoshengrenyuan_email` varchar(200) DEFAULT NULL COMMENT '招生人员邮箱',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='招生人员';


DROP TABLE IF EXISTS `zixunjilu`;

CREATE TABLE `zixunjilu` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `zhaoshengrenyuan_id` int(11) DEFAULT NULL COMMENT '招生人员',
  `zixunjilu_uuid_number` varchar(200) DEFAULT NULL COMMENT '咨询记录编号',
  `zixunjilu_fangshi_types` int(11) DEFAULT NULL COMMENT '咨询方式 Search111',
  `zixunjilu_zhongdian_types` int(11) DEFAULT NULL COMMENT '咨询重点 Search111',
  `zixun_time` timestamp NULL DEFAULT NULL COMMENT '咨询时间',
  `zixunjilu_file` varchar(200) DEFAULT NULL COMMENT '附件',
  `zixunjilu_content` longtext COMMENT '咨询记录备注',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='咨询记录';

5、关键代码

5.1 招生人员Controller模块 



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("/zhaoshengrenyuan")
public class ZhaoshengrenyuanController {
    private static final Logger logger = LoggerFactory.getLogger(ZhaoshengrenyuanController.class);

    private static final String TABLE_NAME = "zhaoshengrenyuan";

    @Autowired
    private ZhaoshengrenyuanService zhaoshengrenyuanService;


    @Autowired
    private TokenService tokenService;

    @Autowired
    private ChatService chatService;//客服聊天
    @Autowired
    private DictionaryService dictionaryService;//字典
    @Autowired
    private GonggaoService gonggaoService;//公告
    @Autowired
    private JihuaService jihuaService;//招生计划
    @Autowired
    private SingleSeachService singleSeachService;//单页数据
    @Autowired
    private WuziService wuziService;//物资
    @Autowired
    private WuziXiaohaoService wuziXiaohaoService;//物资消耗
    @Autowired
    private XinxiService xinxiService;//信息公开
    @Autowired
    private YonghuService yonghuService;//用户
    @Autowired
    private ZhengceService zhengceService;//招生政策
    @Autowired
    private ZixunjiluService zixunjiluService;//咨询记录
    @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"));
        else if("招生人员".equals(role))
            params.put("zhaoshengrenyuanId",request.getSession().getAttribute("userId"));
        CommonUtil.checkMap(params);
        PageUtils page = zhaoshengrenyuanService.queryPage(params);

        //字典表数据转换
        List<ZhaoshengrenyuanView> list =(List<ZhaoshengrenyuanView>)page.getList();
        for(ZhaoshengrenyuanView 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);
        ZhaoshengrenyuanEntity zhaoshengrenyuan = zhaoshengrenyuanService.selectById(id);
        if(zhaoshengrenyuan !=null){
            //entity转view
            ZhaoshengrenyuanView view = new ZhaoshengrenyuanView();
            BeanUtils.copyProperties( zhaoshengrenyuan , view );//把实体数据重构到view中
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

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

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");

        Wrapper<ZhaoshengrenyuanEntity> queryWrapper = new EntityWrapper<ZhaoshengrenyuanEntity>()
            .eq("username", zhaoshengrenyuan.getUsername())
            .or()
            .eq("zhaoshengrenyuan_phone", zhaoshengrenyuan.getZhaoshengrenyuanPhone())
            .or()
            .eq("zhaoshengrenyuan_id_number", zhaoshengrenyuan.getZhaoshengrenyuanIdNumber())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ZhaoshengrenyuanEntity zhaoshengrenyuanEntity = zhaoshengrenyuanService.selectOne(queryWrapper);
        if(zhaoshengrenyuanEntity==null){
            zhaoshengrenyuan.setCreateTime(new Date());
            zhaoshengrenyuan.setPassword("123456");
            zhaoshengrenyuanService.insert(zhaoshengrenyuan);
            return R.ok();
        }else {
            return R.error(511,"账户或者招生人员手机号或者招生人员身份证号已经被使用");
        }
    }

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

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
        if("".equals(zhaoshengrenyuan.getZhaoshengrenyuanPhoto()) || "null".equals(zhaoshengrenyuan.getZhaoshengrenyuanPhoto())){
                zhaoshengrenyuan.setZhaoshengrenyuanPhoto(null);
        }

            zhaoshengrenyuanService.updateById(zhaoshengrenyuan);//根据id更新
            return R.ok();
    }



    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        List<ZhaoshengrenyuanEntity> oldZhaoshengrenyuanList =zhaoshengrenyuanService.selectBatchIds(Arrays.asList(ids));//要删除的数据
        zhaoshengrenyuanService.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");
        try {
            List<ZhaoshengrenyuanEntity> zhaoshengrenyuanList = 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){
                            //循环
                            ZhaoshengrenyuanEntity zhaoshengrenyuanEntity = new ZhaoshengrenyuanEntity();
//                            zhaoshengrenyuanEntity.setUsername(data.get(0));                    //账户 要改的
//                            zhaoshengrenyuanEntity.setPassword("123456");//密码
//                            zhaoshengrenyuanEntity.setZhaoshengrenyuanName(data.get(0));                    //招生人员姓名 要改的
//                            zhaoshengrenyuanEntity.setZhaoshengrenyuanPhone(data.get(0));                    //招生人员手机号 要改的
//                            zhaoshengrenyuanEntity.setZhaoshengrenyuanIdNumber(data.get(0));                    //招生人员身份证号 要改的
//                            zhaoshengrenyuanEntity.setZhaoshengrenyuanPhoto("");//详情和图片
//                            zhaoshengrenyuanEntity.setSexTypes(Integer.valueOf(data.get(0)));   //性别 要改的
//                            zhaoshengrenyuanEntity.setZhaoshengrenyuanEmail(data.get(0));                    //招生人员邮箱 要改的
//                            zhaoshengrenyuanEntity.setCreateTime(date);//时间
                            zhaoshengrenyuanList.add(zhaoshengrenyuanEntity);


                            //把要查询是否重复的字段放入map中
                                //账户
                                if(seachFields.containsKey("username")){
                                    List<String> username = seachFields.get("username");
                                    username.add(data.get(0));//要改的
                                }else{
                                    List<String> username = new ArrayList<>();
                                    username.add(data.get(0));//要改的
                                    seachFields.put("username",username);
                                }
                                //招生人员手机号
                                if(seachFields.containsKey("zhaoshengrenyuanPhone")){
                                    List<String> zhaoshengrenyuanPhone = seachFields.get("zhaoshengrenyuanPhone");
                                    zhaoshengrenyuanPhone.add(data.get(0));//要改的
                                }else{
                                    List<String> zhaoshengrenyuanPhone = new ArrayList<>();
                                    zhaoshengrenyuanPhone.add(data.get(0));//要改的
                                    seachFields.put("zhaoshengrenyuanPhone",zhaoshengrenyuanPhone);
                                }
                                //招生人员身份证号
                                if(seachFields.containsKey("zhaoshengrenyuanIdNumber")){
                                    List<String> zhaoshengrenyuanIdNumber = seachFields.get("zhaoshengrenyuanIdNumber");
                                    zhaoshengrenyuanIdNumber.add(data.get(0));//要改的
                                }else{
                                    List<String> zhaoshengrenyuanIdNumber = new ArrayList<>();
                                    zhaoshengrenyuanIdNumber.add(data.get(0));//要改的
                                    seachFields.put("zhaoshengrenyuanIdNumber",zhaoshengrenyuanIdNumber);
                                }
                        }

                        //查询是否重复
                         //账户
                        List<ZhaoshengrenyuanEntity> zhaoshengrenyuanEntities_username = zhaoshengrenyuanService.selectList(new EntityWrapper<ZhaoshengrenyuanEntity>().in("username", seachFields.get("username")));
                        if(zhaoshengrenyuanEntities_username.size() >0 ){
                            ArrayList<String> repeatFields = new ArrayList<>();
                            for(ZhaoshengrenyuanEntity s:zhaoshengrenyuanEntities_username){
                                repeatFields.add(s.getUsername());
                            }
                            return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());
                        }
                         //招生人员手机号
                        List<ZhaoshengrenyuanEntity> zhaoshengrenyuanEntities_zhaoshengrenyuanPhone = zhaoshengrenyuanService.selectList(new EntityWrapper<ZhaoshengrenyuanEntity>().in("zhaoshengrenyuan_phone", seachFields.get("zhaoshengrenyuanPhone")));
                        if(zhaoshengrenyuanEntities_zhaoshengrenyuanPhone.size() >0 ){
                            ArrayList<String> repeatFields = new ArrayList<>();
                            for(ZhaoshengrenyuanEntity s:zhaoshengrenyuanEntities_zhaoshengrenyuanPhone){
                                repeatFields.add(s.getZhaoshengrenyuanPhone());
                            }
                            return R.error(511,"数据库的该表中的 [招生人员手机号] 字段已经存在 存在数据为:"+repeatFields.toString());
                        }
                         //招生人员身份证号
                        List<ZhaoshengrenyuanEntity> zhaoshengrenyuanEntities_zhaoshengrenyuanIdNumber = zhaoshengrenyuanService.selectList(new EntityWrapper<ZhaoshengrenyuanEntity>().in("zhaoshengrenyuan_id_number", seachFields.get("zhaoshengrenyuanIdNumber")));
                        if(zhaoshengrenyuanEntities_zhaoshengrenyuanIdNumber.size() >0 ){
                            ArrayList<String> repeatFields = new ArrayList<>();
                            for(ZhaoshengrenyuanEntity s:zhaoshengrenyuanEntities_zhaoshengrenyuanIdNumber){
                                repeatFields.add(s.getZhaoshengrenyuanIdNumber());
                            }
                            return R.error(511,"数据库的该表中的 [招生人员身份证号] 字段已经存在 存在数据为:"+repeatFields.toString());
                        }
                        zhaoshengrenyuanService.insertBatch(zhaoshengrenyuanList);
                        return R.ok();
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            return R.error(511,"批量插入数据异常,请联系管理员");
        }
    }

    /**
    * 登录
    */
    @IgnoreAuth
    @RequestMapping(value = "/login")
    public R login(String username, String password, String captcha, HttpServletRequest request) {
        ZhaoshengrenyuanEntity zhaoshengrenyuan = zhaoshengrenyuanService.selectOne(new EntityWrapper<ZhaoshengrenyuanEntity>().eq("username", username));
        if(zhaoshengrenyuan==null || !zhaoshengrenyuan.getPassword().equals(password))
            return R.error("账号或密码不正确");
        String token = tokenService.generateToken(zhaoshengrenyuan.getId(),username, "zhaoshengrenyuan", "招生人员");
        R r = R.ok();
        r.put("token", token);
        r.put("role","招生人员");
        r.put("username",zhaoshengrenyuan.getZhaoshengrenyuanName());
        r.put("tableName","zhaoshengrenyuan");
        r.put("userId",zhaoshengrenyuan.getId());
        return r;
    }

    /**
    * 注册
    */
    @IgnoreAuth
    @PostMapping(value = "/register")
    public R register(@RequestBody ZhaoshengrenyuanEntity zhaoshengrenyuan, HttpServletRequest request) {
//    	ValidatorUtils.validateEntity(user);
        Wrapper<ZhaoshengrenyuanEntity> queryWrapper = new EntityWrapper<ZhaoshengrenyuanEntity>()
            .eq("username", zhaoshengrenyuan.getUsername())
            .or()
            .eq("zhaoshengrenyuan_phone", zhaoshengrenyuan.getZhaoshengrenyuanPhone())
            .or()
            .eq("zhaoshengrenyuan_id_number", zhaoshengrenyuan.getZhaoshengrenyuanIdNumber())
            ;
        ZhaoshengrenyuanEntity zhaoshengrenyuanEntity = zhaoshengrenyuanService.selectOne(queryWrapper);
        if(zhaoshengrenyuanEntity != null)
            return R.error("账户或者招生人员手机号或者招生人员身份证号已经被使用");
        zhaoshengrenyuan.setCreateTime(new Date());
        zhaoshengrenyuanService.insert(zhaoshengrenyuan);

        return R.ok();
    }

    /**
     * 重置密码
     */
    @GetMapping(value = "/resetPassword")
    public R resetPassword(Integer  id, HttpServletRequest request) {
        ZhaoshengrenyuanEntity zhaoshengrenyuan = zhaoshengrenyuanService.selectById(id);
        zhaoshengrenyuan.setPassword("123456");
        zhaoshengrenyuanService.updateById(zhaoshengrenyuan);
        return R.ok();
    }

	/**
	 * 修改密码
	 */
	@GetMapping(value = "/updatePassword")
	public R updatePassword(String  oldPassword, String  newPassword, HttpServletRequest request) {
        ZhaoshengrenyuanEntity zhaoshengrenyuan = zhaoshengrenyuanService.selectById((Integer)request.getSession().getAttribute("userId"));
		if(newPassword == null){
			return R.error("新密码不能为空") ;
		}
		if(!oldPassword.equals(zhaoshengrenyuan.getPassword())){
			return R.error("原密码输入错误");
		}
		if(newPassword.equals(zhaoshengrenyuan.getPassword())){
			return R.error("新密码不能和原密码一致") ;
		}
        zhaoshengrenyuan.setPassword(newPassword);
		zhaoshengrenyuanService.updateById(zhaoshengrenyuan);
		return R.ok();
	}



    /**
     * 忘记密码
     */
    @IgnoreAuth
    @RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request) {
        ZhaoshengrenyuanEntity zhaoshengrenyuan = zhaoshengrenyuanService.selectOne(new EntityWrapper<ZhaoshengrenyuanEntity>().eq("username", username));
        if(zhaoshengrenyuan!=null){
            zhaoshengrenyuan.setPassword("123456");
            zhaoshengrenyuanService.updateById(zhaoshengrenyuan);
            return R.ok();
        }else{
           return R.error("账号不存在");
        }
    }


    /**
    * 获取用户的session用户信息
    */
    @RequestMapping("/session")
    public R getCurrZhaoshengrenyuan(HttpServletRequest request){
        Integer id = (Integer)request.getSession().getAttribute("userId");
        ZhaoshengrenyuanEntity zhaoshengrenyuan = zhaoshengrenyuanService.selectById(id);
        if(zhaoshengrenyuan !=null){
            //entity转view
            ZhaoshengrenyuanView view = new ZhaoshengrenyuanView();
            BeanUtils.copyProperties( zhaoshengrenyuan , view );//把实体数据重构到view中

            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }
    }


    /**
    * 退出
    */
    @GetMapping(value = "logout")
    public R logout(HttpServletRequest request) {
        request.getSession().invalidate();
        return R.ok("退出成功");
    }



    /**
    * 前端列表
    */
    @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 = zhaoshengrenyuanService.queryPage(params);

        //字典表数据转换
        List<ZhaoshengrenyuanView> list =(List<ZhaoshengrenyuanView>)page.getList();
        for(ZhaoshengrenyuanView 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);
        ZhaoshengrenyuanEntity zhaoshengrenyuan = zhaoshengrenyuanService.selectById(id);
            if(zhaoshengrenyuan !=null){


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

                //修改对应字典表字段
                dictionaryService.dictionaryConvert(view, request);
                return R.ok().put("data", view);
            }else {
                return R.error(511,"查不到数据");
            }
    }


    /**
    * 前端保存
    */
    @RequestMapping("/add")
    public R add(@RequestBody ZhaoshengrenyuanEntity zhaoshengrenyuan, HttpServletRequest request){
        logger.debug("add方法:,,Controller:{},,zhaoshengrenyuan:{}",this.getClass().getName(),zhaoshengrenyuan.toString());
        Wrapper<ZhaoshengrenyuanEntity> queryWrapper = new EntityWrapper<ZhaoshengrenyuanEntity>()
            .eq("username", zhaoshengrenyuan.getUsername())
            .or()
            .eq("zhaoshengrenyuan_phone", zhaoshengrenyuan.getZhaoshengrenyuanPhone())
            .or()
            .eq("zhaoshengrenyuan_id_number", zhaoshengrenyuan.getZhaoshengrenyuanIdNumber())
//            .notIn("zhaoshengrenyuan_types", new Integer[]{102})
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ZhaoshengrenyuanEntity zhaoshengrenyuanEntity = zhaoshengrenyuanService.selectOne(queryWrapper);
        if(zhaoshengrenyuanEntity==null){
            zhaoshengrenyuan.setCreateTime(new Date());
            zhaoshengrenyuan.setPassword("123456");
        zhaoshengrenyuanService.insert(zhaoshengrenyuan);

            return R.ok();
        }else {
            return R.error(511,"账户或者招生人员手机号或者招生人员身份证号已经被使用");
        }
    }

}

5.2 招生人员Service模块 

package com.service;

import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.ZhaoshengrenyuanEntity;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import java.util.List;

/**
 * 招生人员 服务类
 */
public interface ZhaoshengrenyuanService extends IService<ZhaoshengrenyuanEntity> {

    /**
    * @param params 查询参数
    * @return 带分页的查询出来的数据
    */
     PageUtils queryPage(Map<String, Object> params);

}

5.3 招生人员ServiceImpl模块


package com.service.impl;

import com.utils.StringUtil;
import com.service.DictionaryService;
import com.utils.ClazzDiff;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.*;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import com.utils.PageUtils;
import com.utils.Query;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import com.dao.ZhaoshengrenyuanDao;
import com.entity.ZhaoshengrenyuanEntity;
import com.service.ZhaoshengrenyuanService;
import com.entity.view.ZhaoshengrenyuanView;

/**
 * 招生人员 服务实现类
 */
@Service("zhaoshengrenyuanService")
@Transactional
public class ZhaoshengrenyuanServiceImpl extends ServiceImpl<ZhaoshengrenyuanDao, ZhaoshengrenyuanEntity> implements ZhaoshengrenyuanService {

    @Override
    public PageUtils queryPage(Map<String,Object> params) {
        Page<ZhaoshengrenyuanView> page =new Query<ZhaoshengrenyuanView>(params).getPage();
        page.setRecords(baseMapper.selectListView(page,params));
        return new PageUtils(page);
    }


}

5.4  招生人员Dao模块


package com.dao;

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

import org.apache.ibatis.annotations.Param;
import com.entity.view.ZhaoshengrenyuanView;

/**
 * 招生人员 Dao 接口
 *
 * @author 
 */
public interface ZhaoshengrenyuanDao extends BaseMapper<ZhaoshengrenyuanEntity> {

   List<ZhaoshengrenyuanView> selectListView(Pagination page,@Param("params")Map<String,Object> params);

}

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套等你来!!!

Python毕设精品项目

微信小程序毕设精品项目  

大数据及机器学习毕设精品项目 

7、源码获取

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

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

下方联系方式获取源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值