这是我第一次完整的做下java项目,总结各方面问题

一、项目流程:

java 项目组月度考核表(kpi) java项目报告总结_redis

 二、在项目代码中应该养成的好习惯

        1、代码中该有的注释要有

        2、日志输出:例如@Slf4j,方便查看代码的输出结果

        3、一些必要的插件要安装:Translation,这个可以在idea里面搜索不认识的单词的意思

        4、每一个文件都要大写字母开头,驼峰格式拼写

        5、@RestController :页面访问,数据会以json的格式返回

        6、对于前后端分离的项目,在对后端的数据进行测试时,我们可以使用postman进行测试

......

三、

1、前期准备:开始一个项目之前,我们应该对这个项目进行分析,做一些前期的工作,比如刚开始要进行需求分析,在对项目进行数据库的设计以及接口文档的设计,当然也要做好研发计划,这样可以使我们对项目的研发更加清晰条理。

2、项目研发:此次项目的研发,是我了解了redis的使用以及短信登录的功能如何实现(短信功能:),短信功能中的发送短信验证码,我们就可以将验证码存在redis中,以便后续登录时输入验证码进行校验,我们经常要使用的大量数据也可以存入redis缓存中,方便读取,也减少了数据库的负担,从而提高系统的性能,在使用Redis之前,同样要对redis进行下载,此处不多总结了。

/**
     * 点击发送验证码
     *
     * @param request
     * @param sysUserVo
     * @return java.lang.String
     * @author syw
     * @date 2021/7/31 10:55
     */
    @RequestMapping("/sendSMS")
    public String sendSMS(HttpServletRequest request, @RequestBody SysUserVo sysUserVo) {
        Long phoneNum = sysUserVo.getPhoneNum();
        log.info("phoneNum{}", phoneNum);
        //随机生成六位验证码的工具类
        String code = keyUtil.keyUtils();
        log.info(code);
        if (phoneNum != null && !phoneNum.equals("")) {
            //发送短信验证码-通过腾讯云
            String s = SMSUtil.sendSMS(request, phoneNum.toString(), code);
            //设置验证码存保存在redis缓存中的时间
            redisUtil.set("code", code, RedisConstant.EFFECTIVE_Time);
            return s;
        } else {
            return "error";
        }
    }

3、在这次项目中,有一个小小的对于学生请假时长进行判断的要求,对于学生请假时长超过7天,交由管理员进行处理,若学生请假时间小于7天则正常由老师进行批假审核。

//学生端-请假申请
    @Override
    public boolean addCheck(StudentLeaveVo studentLeaveVo) {
        studentLeaveVo.setCreateTime(LocalDateTime.now());
        //获取请假离开时间
        LocalDateTime leaveTime = studentLeaveVo.getLeaveTime();
        log.info("leaveTime{}", leaveTime);
        //获取返校时间
        LocalDateTime backTime = studentLeaveVo.getBackTime();
        log.info("backTime{}", backTime);
        //时间做差
        Duration duration = Duration.between(leaveTime, backTime);
        //相差的天数
        long days = duration.toDays();
        log.info("days{}", days);
        if (days > 7) {
            //将审核状态设置为3,就是管理员审核
            studentLeaveVo.setStatus(3L);
            log.info("status{}", studentLeaveVo.getStatus());
        } else {
            //将审核状态设置为0,就是教师审核
            studentLeaveVo.setStatus(0L);
        }
        log.info("studentLeave{}", studentLeaveVo);
        studentLeaveVo.setCreateTime(LocalDateTime.now());
        studentLeaveMapper.addCheck(studentLeaveVo);
        return false;
    }

4、这次项目我们用到的前端框架是vue框架,是一个现在被广泛使用的框架,也算是简单易学,虽然自己也是在这次项目上对前端vue花费的时间比较长...,

例如vue前端各个文件夹功能:

<1>build文件是 webpack 的打包编译配置文件 

<2>static文件夹存放一些静态的、较少变动的image或者css文件 

<3>config文件夹存放的是一些配置项,比如服务器访问的端口配置等 

<4>dist该文件夹一开始是不存在,在我们的项目经过 build 之后才会产出 ,就是在我们部署项目到服务器上的时候,要执行指令 npm run build

<5>src文件夹中:

      assets: 图标、图片、国际化等静态信息

      components: 组件库,对常用组件进行封装

      http: 后台交互模块,统一后台接口请求API

      axios &  Promise :封装前端请求方法并做统一拦截处理,统一在请求头内添加token,判断当前登录状态并跳转到登录页面,统一提示错误信息

      mock:模拟接口,测试数据

      permission: 权限控制模块

      router: 路由管理模块,负责页面各种路由配置,配置全局路由和动态路由和菜单的加载

      utils: 工具模块,提供一些通用的工具方法

      view:页面模块,相关页面在此文件夹内创建

小小总结...