基于SSM+VUE实现毕业设计流程管理系统(二)

简介: 基于SSM+VUE实现毕业设计流程管理系统

基于SSM+VUE实现毕业设计流程管理系统(一)https://developer.aliyun.com/article/1423932


5.2.5系统管理

管理员对系统管理进行删除、修改以及查看等操作。程序效果图如下图5-9所示:

图5-9系统管理界面

5.2.6在线选题管理

管理员对在线选题管理信息进行编辑课题题目、图片 、教师工号 、发布时间 、审核回复、 审核修改、审核、删除以及查看等操作。程序效果图如下图5-10所示:

图5-10在线选题管理界面

5.2.7中期报告管理

管理员对中期报告管理信息进行修改、审核、删除以及查看等操作。程序效果图如下图5-11所示:

图5-11中期报告管理界面

5.2.8毕业论文管理

管理员对毕业论文管理信息进行修改、审核、删除以及查看等操作。程序效果图如下图5-12所示:

图5-12毕业论文管理界面

5.2.9学生提题管理

管理员对学生提题信息进行修改、审核、删除以及查看等操作。程序效果图如下图5-13所示:

图5-13学生提题管理界面

四,核心代码展示

package com.controller;
import java.text.SimpleDateFormat;
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.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.BiyelunwenEntity;
import com.entity.view.BiyelunwenView;
import com.service.BiyelunwenService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
 * 毕业论文
 * 后端接口
 * @author 
 * @email 
 * @date 2020-11-02 10:24:01
 */
@RestController
@RequestMapping("/biyelunwen")
public class BiyelunwenController {
    @Autowired
    private BiyelunwenService biyelunwenService;
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,BiyelunwenEntity biyelunwen, HttpServletRequest request){
    String tableName = request.getSession().getAttribute("tableName").toString();
    if(tableName.equals("xuesheng")) {
      biyelunwen.setXueshengxuehao((String)request.getSession().getAttribute("username"));
    }
    if(tableName.equals("jiaoshi")) {
      biyelunwen.setJiaoshigonghao((String)request.getSession().getAttribute("username"));
    }
        EntityWrapper<BiyelunwenEntity> ew = new EntityWrapper<BiyelunwenEntity>();
    PageUtils page = biyelunwenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, biyelunwen), params), params));
        return R.ok().put("data", page);
    }
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,BiyelunwenEntity biyelunwen, HttpServletRequest request){
        EntityWrapper<BiyelunwenEntity> ew = new EntityWrapper<BiyelunwenEntity>();
    PageUtils page = biyelunwenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, biyelunwen), params), params));
        return R.ok().put("data", page);
    }
  /**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( BiyelunwenEntity biyelunwen){
        EntityWrapper<BiyelunwenEntity> ew = new EntityWrapper<BiyelunwenEntity>();
        ew.allEq(MPUtil.allEQMapPre( biyelunwen, "biyelunwen")); 
        return R.ok().put("data", biyelunwenService.selectListView(ew));
    }
   /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(BiyelunwenEntity biyelunwen){
        EntityWrapper< BiyelunwenEntity> ew = new EntityWrapper< BiyelunwenEntity>();
    ew.allEq(MPUtil.allEQMapPre( biyelunwen, "biyelunwen")); 
    BiyelunwenView biyelunwenView =  biyelunwenService.selectView(ew);
    return R.ok("查询毕业论文成功").put("data", biyelunwenView);
    }
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        BiyelunwenEntity biyelunwen = biyelunwenService.selectById(id);
        return R.ok().put("data", biyelunwen);
    }
    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") String id){
        BiyelunwenEntity biyelunwen = biyelunwenService.selectById(id);
        return R.ok().put("data", biyelunwen);
    }
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody BiyelunwenEntity biyelunwen, HttpServletRequest request){
      biyelunwen.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(biyelunwen);
        biyelunwenService.insert(biyelunwen);
        return R.ok();
    }
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody BiyelunwenEntity biyelunwen, HttpServletRequest request){
      biyelunwen.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(biyelunwen);
        biyelunwenService.insert(biyelunwen);
        return R.ok();
    }
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody BiyelunwenEntity biyelunwen, HttpServletRequest request){
        //ValidatorUtils.validateEntity(biyelunwen);
        biyelunwenService.updateById(biyelunwen);//全部更新
        return R.ok();
    }
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        biyelunwenService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    /**
     * 提醒接口
     */
  @RequestMapping("/remind/{columnName}/{type}")
  public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
             @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    map.put("column", columnName);
    map.put("type", type);
    if(type.equals("2")) {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      Calendar c = Calendar.getInstance();
      Date remindStartDate = null;
      Date remindEndDate = null;
      if(map.get("remindstart")!=null && !map.get("remindstart").toString().equals("")) {
        Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
        c.setTime(new Date()); 
        c.add(Calendar.DAY_OF_MONTH,remindStart);
        remindStartDate = c.getTime();
        map.put("remindstart", sdf.format(remindStartDate));
      }
      if(map.get("remindend")!=null && !map.get("remindend").toString().equals("")) {
        Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
        c.setTime(new Date());
        c.add(Calendar.DAY_OF_MONTH,remindEnd);
        remindEndDate = c.getTime();
        map.put("remindend", sdf.format(remindEndDate));
      }
    }
    Wrapper<BiyelunwenEntity> wrapper = new EntityWrapper<BiyelunwenEntity>();
    if(map.get("remindstart")!=null && !map.get("remindstart").toString().equals("")) {
      wrapper.ge(columnName, map.get("remindstart"));
    }
    if(map.get("remindend")!=null && !map.get("remindend").toString().equals("")) {
      wrapper.le(columnName, map.get("remindend"));
    }
    String tableName = request.getSession().getAttribute("tableName").toString();
    if(tableName.equals("xuesheng")) {
      wrapper.eq("xueshengxuehao", (String)request.getSession().getAttribute("username"));
    }
    if(tableName.equals("jiaoshi")) {
      wrapper.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));
    }
    int count = biyelunwenService.selectCount(wrapper);
    return R.ok().put("count", count);
  }
}


基于SSM+VUE实现毕业设计流程管理系统(三)https://developer.aliyun.com/article/1423934

相关文章
|
21天前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
23天前
|
JavaScript 前端开发 开发者
vue 数据驱动视图
总之,Vue 数据驱动视图是一种先进的理念和技术,它为前端开发带来了巨大的便利和优势。通过理解和应用这一特性,开发者能够构建出更加动态、高效、用户体验良好的前端应用。在不断发展的前端领域中,数据驱动视图将继续发挥重要作用,推动着应用界面的不断创新和进化。
|
25天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
27 1
vue学习第一章
|
25天前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
24 1
vue学习第三章
|
25天前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
35 1
vue学习第四章
|
25天前
|
JavaScript 前端开发 算法
vue学习第7章(循环)
欢迎来到瑞雨溪的博客,一名热爱JavaScript和Vue的大一学生。本文介绍了Vue中的v-for指令,包括遍历数组和对象、使用key以及数组的响应式方法等内容,并附有综合练习实例。关注我,将持续更新更多优质文章!🎉🎉🎉
23 1
vue学习第7章(循环)
|
25天前
|
JavaScript 前端开发
vue学习第九章(v-model)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript与Vue的大一学生,自学前端2年半,正向全栈进发。此篇介绍v-model在不同表单元素中的应用及修饰符的使用,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
28 1
vue学习第九章(v-model)
|
25天前
|
JavaScript 前端开发 开发者
vue学习第十章(组件开发)
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文深入讲解Vue组件的基本使用、全局与局部组件、父子组件通信及数据传递等内容,适合前端开发者学习参考。持续更新中,期待您的关注!🎉🎉🎉
37 1
vue学习第十章(组件开发)
|
25天前
|
JavaScript 前端开发
vue学习第十一章(组件开发2)
欢迎来到我的博客,我是瑞雨溪,一名自学前端两年半的大一学生,专注于JavaScript与Vue。本文介绍Vue中的插槽(slot)使用方法,包括基本插槽、具名插槽及作用域插槽,帮助你在组件开发中实现内容的灵活定制。如果你觉得有帮助,请关注我,持续更新中!🎉🎉🎉
21 1
vue学习第十一章(组件开发2)
|
25天前
|
监控 JavaScript 前端开发
vue学习第十二章(生命周期)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。本文深入探讨了Vue实例的生命周期,从初始化到销毁各阶段的关键钩子函数及其应用场景,帮助你更好地理解Vue的工作原理。如果你觉得有帮助,欢迎关注我,将持续分享更多优质内容!🎉🎉🎉
21 1
vue学习第十二章(生命周期)