php代码如下
<?php
namespace app\index\controller;
use think\Controller;
use think\Model;
use think\Cache;
use think\cache\driver\Redis;
use think\Session;
use think\Db;
class Index extends Controller
{
protected $id=1;
protected $redis;
public $queue = array();
public function _initialize()
{
parent::_initialize(); // TODO: Change the autogenerated stub
}
public function index(){
$len = $this->getLength(); // 入数组长度
$str = $this->str(); // 生成随机字符串
$stock = $this->stock(); // 查询已入库队列
// a.如果队列长度<50:加入队列。>50:已抢光
if($len < 50){
// b.入库
if($stock<10) {
// 追加数组
$this->addLast($str);
$data['pid'] = 1;
$data['name'] = $str;
$res = db('goods_user')->insert($data);
if ($res == 1) {
echo $len;
}
}
}else{
exit('已抢光');
}
}
// 剩余库存
public function stock(){
//$res = db('goods')->field('stock')->find($this->id);
$where['pid'] = $this->id;
$res = db('goods_user')->where($where)->count();
return $res;
}
/**(尾部)入队 **/
public function addLast($value)
{
return array_push($this->queue,$value);
}
/**(尾部)出队**/
public function removeLast()
{
return array_pop($this->queue);
}
/**(头部)入队**/
public function addFirst($value)
{
return array_unshift($this->queue,$value);
}
/**(头部)出队**/
public function removeFirst()
{
return array_shift($this->queue);
}
/**清空队列**/
public function makeEmpty()
{
unset($this->queue);
}
/**获取列头**/
public function getFirst()
{
return reset($this->queue);
}
/** 获取列尾 **/
public function getLast()
{
return end($this->queue);
}
/** 获取长度 **/
public function getLength()
{
return count($this->queue);
}
// 生成随机字符串
public function str(){
return rand(1000,9999);
}
}
扩展: