26--学生签到 学生验证码签到(6)foreach

在这里插入图片描述

<template>
	<div>
		<div class="top">
			<i @click="back" class="cubeic-back"></i>
			<span>{{classname}}&nbsp;{{coursename}}</span>
			<cube-button  :primary='true' :outline='true' :inline='true' @click="qiandao">签到</cube-button>
		</div>
		<div class="data">
			<div v-for="(item,index) in list" :key="item.kqid" class="item">
				<div class="left">
					<span style='margin-right:5px;'>{{item.ymd}}</span>
					<span>{{item.weekday}}</span>
					<div style="color:#999;margin-top:5px;">{{item.his}}</div>
				</div>
				<div class="right">
					<span class="state">{{item.state}}</span>
				</div>
			</div>
		</div>

	</div>
</template>

<script>
	import {
		timestampToHis1,
		timestampToWeekday1,
		timestampToYmd1
	} from '../../common.js'
	export default{
		data:function(){
			return{
				list:[],
				classname:sessionStorage.getItem('classname'),
				coursename:sessionStorage.getItem('coursename')
			}
		},
		mounted(){
		this.$request({
			url: '/student.index/jilu',
			method: 'post',
			data: {
				token: sessionStorage.getItem('token'),
				ccid: sessionStorage.getItem('ccid')
			}
		}).then(res => {
			res.forEach(row => {
				// row['updatetime']=time()
				row['ymd'] = timestampToYmd1(row['updatetime'])
				row['his'] = timestampToHis1(row['updatetime'])
				row['weekday'] = timestampToWeekday1(row['updatetime'])
			})
			this.list = res
			console.log(this.list)
		}).catch(res => {
		
		})
		},
		methods:{
			qiandao:function(){
				this.$createDialog({
					type: 'prompt',
					title: '签到',
					prompt: {
						value: '',
						placeholder: '请输入签到码'
					},
					onConfirm: (e, promptValue) => {
						let data = {
							token: sessionStorage.getItem('token'),
							yzm: promptValue,
							ccid:sessionStorage.getItem('ccid')
						}
						this.$request({
							method: 'post',
							url: '/student.qiandao/qiandao',
							data: data	
						}).then(res => {
							this.$createToast({
								type: 'correct',
								time: 2000,	
								txt: res.message,
							}).show()
								this.list.push(res)
						})
					},
				}).show()
				
			},
			back:function(){
				this.$router.back()
			},
		}
	}
</script>

<style scoped>
	.page {
		font-size: 18px;
	}
	
	.top {
		display: flex;
		justify-content: space-between;
		height: 50px;
		padding: 10px 10px;
		align-items: center;
		background-color: #fff;
	}
	.data {
		margin-top: 24px;
	}
	.state{
		    padding-right: 11px;
	}
	.item {
		height: 52px;
		display: flex;
		justify-content: space-between;
	}
	
	.left {
		padding-left: 10px;
	}
</style>

<?php
namespace app\api\controller\student;

use think\Cache;
use think\Db;
use think\cache\driver\Redis;

class Qiandao extends Base
{
    private $ccid;  //班课id

    public function _initialize()
    {
        //调用base中的验证_initialize
        parent::_initialize();
        $ccid = input('post.ccid');
        $this->ccid = $ccid;
    }

    public function index()
    {
        $number = $this->stu['number'];
        $data = Db::name('kaoqin_details')
            ->alias('kd')
            ->join('__STATEBASE__ s', 's.id=kd.stateid')
            ->where('number', $number)
            ->where('ccid', $this->ccid)
            ->field('kd.number,kd.name,kd.stateid,kd.value,s.state,kd.updatetime')
            ->order('updatetime desc')
            ->select();
        return success($data);
    }

    //学生签到
    public function qiandao()
    {
        $yzm = input('post.yzm');
        $redis = Cache::store('redis')->handler();
//        print_r($redis);
//        exit();
        //验证码是否正确
        $ret = $redis->hget($this->ccid,'yzm');

        if (empty($ret)) {
            return error('未在签到时间内');
        }

        if ($yzm != $ret) {
            return error('验证码不正确');
        }
        $number = $this->stu['number'];
        if ($redis->hexists($this->ccid, $number)) {
            return error('您已经签到,不要重复签到');
        }
        $time = time();
        $redis->hset($this->ccid, $number, $time);
        return success(['message' => '签到成功', 'time' => $time]);
    }


}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值