项目实训9——申请发布和对第一次点击查看秘钥的处理

1.对申请发布界面的完善

要求申请时间输入框中只能输入数字,不能大于两天,不能大于24小时,不能大于60分钟。

<el-input v-model="appForm.aday" placeholder="" style="width: 100px" @input="changes1" oninput = "value=value.replace(/[^0-9]/g,'')"></el-input>:

使用outinput属性限制只能输入数字

oninput = "value=value.replace(/[^\d.]/g,'')"

使用@input="changes1"限制输入数字的范围

changes1(value){
      if(value > 2){
        this.appForm.aday = 2;
      }
},

2.后端处理申请

这里要将申请时间?天?时?分转化为?毫秒,因为时间戳元素是使用的单位是毫秒。然后将封装好的元素同时插入ainfo和aval两个表。
Controller层

@RequestMapping(value = "/insertApplication", method = RequestMethod.POST)
    public int insertApplication(HttpServletRequest req) {
        JSONObject jsonObject = new JSONObject();
        int uid = Integer.parseInt(req.getParameter("uid").trim());
        String auname = req.getParameter("auname").trim();
        int day = Integer.parseInt(req.getParameter("day").trim());
        int hour = Integer.parseInt(req.getParameter("hour").trim());
        int minute = Integer.parseInt(req.getParameter("minute").trim());
        int atime = (day * 24 * 60 * 60 + hour * 60 * 60 + minute * 60) * 1000;//转化成毫秒

        String areason = req.getParameter("areason").trim();
        int pid = Integer.parseInt(req.getParameter("pid").trim());
        int apg = 2;
        System.out.println(uid + "----------------------" + auname + "----------------------" + atime + "----------------------" + areason + "----------------------" + pid);

        Application a = new Application();
        a.setUid(uid);
        a.setAuname(auname);
        a.setAtime(atime);
        a.setAreason(areason);
        a.setPid(pid);
        a.setApg(apg);

        int result = applicationService.insertApplication(a);
        int aid = a.getId();
        applicationPlusService.insertAtime(aid, atime, uid);
        System.out.println("新插入一条申请!");
        return result;
    }

Mapper层

<insert id="insertApplication" keyProperty="Application.id" useGeneratedKeys="true" parameterType="com.example.server.domain.Application">
    insert into ainfo(uid,auname,atime,areason,pid,apg)
    values(#{Application.uid},#{Application.auname},#{Application.atime},#{Application.areason},#{Application.pid},#{Application.apg})
</insert>
<insert id="insertAtime" useGeneratedKeys="true">
        insert into aval(aid,atime,uid) values(#{aid},#{atime},#{uid})
    </insert>

3.对第一次点击查看秘钥的处理

主要是在Service层的处理
获得当前时间t1,从数据库中获得当前申请的申请时间atime,利用时间戳运算计算出t1+atime即失效时间,将其存入数据库中的aval表中。

Service层:

@Override
public void firstClick(int uid, int aid) {
    Calendar calendar = Calendar.getInstance(Locale.CHINA);
    Date stime = calendar.getTime();//第一次点击查看密匙时的时间,这样得到的是中国时间但是存到数据库,数据库又把它变成了英国时间。。。
    int atime = applicationPlusMapper.findAtime(aid, uid);
    long etime0 = stime.getTime() + atime;
    Date etime = new Date(etime0);
    System.out.println("etime:"+etime);
    applicationPlusMapper.firstClick(aid,uid,stime,etime,0);
}

Mapper层:
这里使用update更新数据库,我一开始错误使用了insert。

<update id="firstClick">
    update aval
    <set>
        stime = #{stime},
        etime = #{etime},
        isend = #{isend},
    </set>
        where aid = #{aid}
</update>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值