文章目录

  • 一、软件架构
  • 二、系统设计
  • 三、代码实现
    • 1.积分标准Controller
    • 2. 提交积分Controller
    • 3. 查询积分详情
  • 四、软件截图

一、软件架构

讲师积分管理系统毕业设计

Spring Boot + Spring + MyBatis + Spring MVC + MysQL + Layui

或者是

Spring Boot + Spring + MyBatis + Spring MVC + MysQL + Vue + Element

两个版本都是前后端分离的项目

系统分为三种用户角色:讲师、项目经理、超级管理员

超级管理员可指定积分标准

项目经理可对讲师申请的标准进行申请

讲师可查看自己的申请 和项目排名

二、系统设计

1.教学管理部模块
(1)在系统的登录界面,用户输入教学管理部特定的用户名密码,经过后台验证后跳转到教学管理部模块。
(2)教学管理部可以对积分条目进行增删改查,在增加积分条目的时候具体的积分拥有三个指标,分别为一级指标、二级指标和三级指标。通过这三级指标更加细化了积分的分类。同时需要指定为项目部积分还是讲师积分,项目部积分是由项目经理申请后,再由讲师进行选择申请。讲师积分可以直接由讲师进行申请。
(3)教学管理部可以对讲师积分进行终审的操作,终审后驳回给对应的项目经理。同时也可以对项目部积分进行审核。
(4)可以查看所有讲师积分的排名情况,同时也可以进行准确的搜索查询,以及查看每个项目部的积分排名情况。

2.项目经理模块
(1)在系统的登录界面,用户输入项目经理特定的用户名密码,经过后台验证后跳转到项目经理模块。
(2)项目经理可以查看项目部可申请的积分条目,选择对应的条目后进行申请操作。
(3)可以对讲师积分申请进行初审,初审时需要输入具体的意见。同时项目经理可以对终审驳回的数据进行操作,选择继续向下驳回或者是修改后提交。
(4)项目经理可以查看整个项目部内讲师积分申请的排名以及具体的情况。

3.讲师模块
(1)在系统的登录界面,用户输入讲师特定的用户名密码,经过后台验证后跳转到讲师模块。
(2)讲师可以查看到的积分标准分为两种:教学管理部规定的讲师积分标准、项目部审核通过的项目部积分标准。可以查看具体积分标准的申请要求。
(3)选择对应的积分标准进行申请的操作。申请的时候需要上传指定格式的佐证材料,选择申请积分的数量以及输入具体的积分名称。
(4)讲师可以查看自己已经申请积分的状态,这里状态分为六种:待初审、待终审、初审通过、终审通过、初审驳回以及终审驳回。可以点击具体的申请条目,跳转到具体积分申请详情页面。
讲师可以查看自己项目部积分排名情况。

三、代码实现

1.积分标准Controller

/** 讲师查询积分标准(包含讲师可申请的积分项 + 项目部审核通过的积分项)* 讲师的方法* @param standard 封装了条件* @return*/@PostMapping("/qLectureStandard")public ResponseResult queryStandard(@RequestBody PointsStandard standard, Integer pageNum, Integer pageSize, @RequestHeader HttpHeaders headers){//判断请求头中是否有tokenif (headers.get(RedisConstant.TOKEN_PREFIX) == null){return ResponseResult.error(HttpStatus.UNAUTHORIZED, RtnConstant.NOT_LOGIN);}String token = RedisConstant.LOGIN_TOKEN_KEY + headers.get(RedisConstant.TOKEN_PREFIX).get(0);Users users = redisUtil.getCacheObject(token);//判断Redis中是否有token对应的用户if (users == null){return ResponseResult.error(HttpStatus.UNAUTHORIZED, RtnConstant.NOT_LOGIN);}PageHelper.startPage(pageNum,pageSize);PageInfo<PointsStandard> res = new PageInfo<>(sandardService.queryStandard(standard,users.getDepId()));return ResponseResult.success(res);}/** 查询项目部可申请的积分标准*  项目部方法* @param standard* @param pageNum* @param pageSize* @return*/@PostMapping("/queryDeptStandard")public ResponseResult queryDeptStandard(@RequestBody PointsStandard standard, Integer pageNum, Integer pageSize){PageHelper.startPage(pageNum,pageSize);PageInfo<PointsStandard> info = new PageInfo<>(sandardService.queryDeptStandard(standard));return ResponseResult.success(info);}/** 查询所有的积分标准*  管理部的方法* @param standard* @param pageNum* @param pageSize* @return*/@PostMapping("/queryAllStandard")public ResponseResult queryAllStandard(@RequestBody PointsStandard standard, Integer pageNum, Integer pageSize){PageHelper.startPage(pageNum,pageSize);PageInfo<PointsStandard> info = new PageInfo<>(sandardService.queryAllStandard(standard));return ResponseResult.success(info);}/** 查询所有的积分标准指标  封装为前端需要的数据结构*  公用方法* @return*/@GetMapping("/queryLevelTreeSelect")public ResponseResult queryLevelTreeSelect(){List<TreeSelect> list = sandardService.queryAllLevel();return ResponseResult.success(list);}/** 查询系数树状结构*  公用方法* @return*/@PostMapping("/queryCoeffcientTree")public ResponseResult queryCoeffcient(@RequestBody ArrayEntity arrayEntity){List<TreeSelect> tree = sandardService.queryCoeffcient(arrayEntity.getCids());return ResponseResult.success(tree);}

2. 提交积分Controller

/** 提交积分申请* 公共方法* @param pointId* @param detailName* @param applyCount* @param arrayEntity* @param flag 是否为内部调用* @return*/@MyLog(title = ModelConstant.POINT_MODEL, businessType = BusinessTypeConstant.APPLY)@PostMapping("/submitApplication")public ResponseResult submitApplication(String pointId, String detailName, String applyCount, @RequestBody ArrayEntity arrayEntity, @RequestHeader HttpHeaders headers, Boolean flag){//判断请求头中是否有tokenif (headers.get(RedisConstant.TOKEN_PREFIX) == null){return ResponseResult.error(HttpStatus.UNAUTHORIZED, RtnConstant.NOT_LOGIN);}String token = RedisConstant.LOGIN_TOKEN_KEY + headers.get(RedisConstant.TOKEN_PREFIX).get(0);Users users = redisUtil.getCacheObject(token);//判断Redis中是否有token对应的用户if (users == null){return ResponseResult.error(HttpStatus.UNAUTHORIZED, RtnConstant.NOT_LOGIN);}UserPoints userPoints = new UserPoints();userPoints.setApplyCount(Integer.parseInt(applyCount));userPoints.setApplyDate(new Date());//将审批人Id数组转化为  1,2,3 格式StringBuilder sb = new StringBuilder();for(int i=0;i<arrayEntity.getShenheUser().length;i++){sb.append(arrayEntity.getShenheUser()[i]);if (i != arrayEntity.getShenheUser().length-1){sb.append(",");}}userPoints.setApproverId(sb.toString());//转化系数ID数组Integer[] cids = arrayEntity.getCids();StringBuilder cid = new StringBuilder();if (cids != null){for(int i=0;i<cids.length;i++){cid.append(cids[i]);if (i != cids.length-1){cid.append(",");}}}userPoints.setCoefficientIds(cid.toString());userPoints.setDetailName(detailName);userPoints.setPointId(pointId);userPoints.setState(1);//判断为讲师积分申请还是项目部积分申请if (flag == null || flag == false){userPoints.setType(1);}else {userPoints.setType(0);}userPoints.setUPointId(UUID.randomUUID().toString().replace("-",""));String[] fileNameArray = arrayEntity.getFileNameArray();String[] filePathArray = arrayEntity.getFilePathArray();StringBuilder filePath = new StringBuilder();StringBuilder fileName = new StringBuilder();for(int i=0;i<filePathArray.length;i++){filePath.append(filePathArray[i]);fileName.append(fileNameArray[i]);if (i != filePathArray.length-1){fileName.append(",");filePath.append(",");}}userPoints.setMaterialsPath(filePath.toString());userPoints.setRealName(fileName.toString());userPoints.setUserId(users.getUId());userPointsService.apply(userPoints);return ResponseResult.success();}

3. 查询积分详情

@GetMapping("/queryApplicationById")public ResponseResult queryApplicationById(String id){UserPoints userPoints = userPointsService.queryApplicationById(id);String coefficientIds = userPoints.getCoefficientIds();String [] arr;if (coefficientIds != null && !coefficientIds.equals("")){if (coefficientIds.contains(",")){arr = coefficientIds.split(",");}else {arr = new String[1];arr[0] = coefficientIds;}List<String> list = Arrays.asList(arr);List<TreeSelect> treeSelects = sandardService.queryCoeffBySelected(list);userPoints.setTree(treeSelects);}String eMsgId = userPoints.getEMsgId();List<String> msgIds = new ArrayList<>();if (!StringUtils.isEmpty(eMsgId)){if (eMsgId.contains(",")){msgIds = Arrays.asList(eMsgId.split(","));}else {msgIds.add(eMsgId);}List<ExamineMsg> msgList = userPointsService.queryMsgList(msgIds);userPoints.setExamineMsg(msgList);}return ResponseResult.success(userPoints);}

四、软件截图

  • 讲师


  • 项目经理

  • 超级管理员

  • Vue版

    评论区回复“666”获取项目

基于Spring Boot的讲师积分管理系统(毕业设计,毕设)相关推荐

  1. 基于Spring boot开发电子宿舍管理系统毕业设计源码132056

    摘  要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代 ...

  2. (附源码)springboot+mysql+基于Spring boot开发电子宿舍管理系统 毕业设计132056

    摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代. ...

  3. springboot+mysql+基于Spring boot开发电子宿舍管理系统 毕业设计-附源码132056

    摘  要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代 ...

  4. (附源码)基于Spring boot开发电子宿舍管理系统 毕业设计132056

    摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代. ...

  5. springboot毕设项目基于Spring Boot的智慧天气管理系统84z99(java+VUE+Mybatis+Maven+Mysql)

    springboot毕设项目基于Spring Boot的智慧天气管理系统84z99(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8. ...

  6. 毕业设计-基于spring boot的智慧物业管理系统

    项目描述 这是一个基于spring boot的智慧物业项目,我们的项目实现了用户登录.投诉.保修功能,以及后台物业管理功能.用户可以通过登录界面登录系统,提交投诉或保修请求.管理员可以在后台管理界面查 ...

  7. spring boot共享电动单车管理系统毕业设计源码131016

    摘  要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于共享电动单车管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了共享电动单车管理系统,它彻底 ...

  8. spring boot大学体育赛事管理系统 毕业设计-附源码180923

    Springboot大学体育赛事管理系统 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于学校的大学体育竞赛管理也是十分常见的.过去使用手工的管理方式对大学体育赛事进行管 ...

  9. (附源码)spring boot社区居民健康档案管理系统 毕业设计 220940

    springboot 社区居民健康档案管理系统 摘 要 目前随着人们对健康认识的不断深入,健康观念也正在由有病治病向无病预防的方向改变,人们开始更加注重生活的质量,追求更健康,更长寿.因此,开发一个面 ...

  10. spring boot社区居民健康档案管理系统毕业设计源码220940

    springboot 社区居民健康档案管理系统 摘 要 目前随着人们对健康认识的不断深入,健康观念也正在由有病治病向无病预防的方向改变,人们开始更加注重生活的质量,追求更健康,更长寿.因此,开发一个面 ...

最新文章

  1. 泛型Generics
  2. 全球首部AI交响变奏曲问世,AI技术应用再拓边界
  3. Java中Byte类型数据在运算中的问题
  4. ECShop后台管理菜单修改
  5. OpenCV训练面部界标探测器face_landmark_trainer
  6. 软考复习之路—组成原理
  7. html做预约人数显示,添加预约用户.html
  8. MAC地址批量生成器
  9. Eplan2.7 安装教程
  10. js实现数字转换大写金额
  11. RealMedia Analyzer(mp4修复软件)v0.30绿色版
  12. 按颜色分类:蓝色系(Blue)
  13. 方维直播Android打包流程
  14. 用texstudio写伪代码
  15. 张亚勤:天才少年的勇敢成长
  16. k8s集成containerd,集成crictl工具,集成kata
  17. 使用讯飞语音识别的空指针错误
  18. rdkit 分子性质描述符(Descriptors)
  19. 7、帆软填报-分页预览
  20. 基于Linux python2.X与python3.X默认版本切换

热门文章

  1. java游戏实例_Java游戏俄罗斯方块的实现实例
  2. 审计系统---堡垒机项目之用户交互程序开发
  3. Ubuntu 18.04.3 双屏显示 N卡驱动 问题解决
  4. 中文语音软件再次升级,即将发布百度语音助手
  5. unity应用开发实战案例_Unity AR增强现实开发实战
  6. 速卖通API + 奇门 + 聚石塔 完整流程
  7. VUE + 微信分享
  8. 关于TOPCODER的所有挑战、任务和GIG工作机会
  9. 快乐暑假(八)——欧拉回路和哈密顿回路
  10. springboot毕设项目网上商城系统8l44b(java+VUE+Mybatis+Maven+Mysql)