// A code block
CREATE TABLE `integral` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`integral_num` int(4) DEFAULT NULL COMMENT '加分数',
`u_id` int(11) DEFAULT NULL,
`info` varchar(255) DEFAULT NULL,
`record` enum('2','1') DEFAULT NULL COMMENT '1增加 2扣除',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`total_num` int(4) DEFAULT NULL COMMENT '总积分',
`create_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4;
// A code block
CREATE TABLE `sign` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`created` varchar(255) DEFAULT NULL COMMENT '签到时间 如2020/2/1 表示2020/2月1日',
`u_id` int(10) DEFAULT NULL,
`cont_num` tinyint(4) NOT NULL DEFAULT '0' COMMENT '签到总次数',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;
// A code block
CREATE TABLE `user` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(40) DEFAULT NULL,
`pwd` char(32) DEFAULT NULL,
`nk_name` varchar(60) DEFAULT NULL,
`stu` tinyint(1) DEFAULT '1',
`create_time` datetime DEFAULT NULL,
`img` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`phone` char(15) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;
控制器
// lxtp\application\album\controller\ Integralc.php
<?php
namespace app\album\controller;
use app\album\model\Albumm;
use app\album\model\Integralm;
use app\album\model\Photomodel;
use app\common\Alyunoss;
use app\test\model\Ksmodel;
use think\Controller;
use think\facade\Session;
use think\Request;
class Integralc extends Controller
{
/**
* 显示资源列表
*
* @return \think\Response.
*/
public function index(Request $request)
{
// //判断是否登录 防止非法请求
// if (empty(Session::get('name'.$request->u_id))){
// return redirect('/loginuser');
// }
$inte=new Integralm();
if (!empty($request->city)){
$where['u_id']=$request->u_id;
$arr = Session::get('name' . $where['u_id']);
$where['record']=$request->city;
$data=$inte->where($where)->paginate(1,false,['query'=>request()->param()]);
$list=Integralm::where('u_id', $where['u_id'] )->order('id', 'desc')->limit(1)->all();
foreach($list as $key=>$user){
//将总积分增加50分
$num=$user->total_num;
}
}else{
$a = $request->a;
$arr = Session::get('name' . $a);
$data=$inte->where('u_id',$a)->paginate(1);
$list=Integralm::where('u_id', $a )->order('id', 'desc')->limit(1)->all();
foreach($list as $key=>$user){
//将总积分增加50分
$num=$user->total_num;
}
}
return view('user/loginuser',['data'=>$data,'user'=>$arr,'num'=>$num]);
}
}
控制器
// lxtp\application\album\controller\ Userc.php
<?php
namespace app\album\controller;
use app\album\model\Integralm;
use app\album\model\Signm;
use app\album\model\Userm;
use app\api\model\User;
use app\common\Alyunoss;
use think\captcha\Captcha;
use think\Controller;
use think\facade\Session;
use think\facade\Validate;
use think\Request;
class Userc extends Controller
{
/**
* 登录
*
* @return \think\Response
*/
public function index(Request $request)
{
$rule = [
'name' => 'require|max:25|token',
'pwd'=>'require'
];
$msg = [
'name.require' => '账号不能为空',
'pwd.require' => '密码不能为空',
];
//图片验证
$value=$request->code;
$captcha = new Captcha();
if( !$captcha->check($value))
{
$this->error('你的验证码有误');
}
$data=$request->param();
$validate = Validate::make($rule,$msg);
$result = $validate->check($data);
if(!$result) {
$this->error($validate->getError());
}
$arr = \think\facade\Request::only(['name','pwd']);
$user=new Userm();
$re=$user->where($arr)->find();
if ($re){
$arrintegral['u_id']=$re->id;
//本次操作积分
$arrintegral['integral_num']=50;
$integral=new Integralm();
//获取最后一次用户积分数据
$list=Integralm::where('u_id', $arrintegral['u_id'])->order('id', 'desc')->limit(1)->all();
foreach($list as $key=>$user){
//将总积分增加50分
$arrintegral['total_num']=$user->total_num+50;
}
//增加还是减少
$arrintegral['record']=1;
//具体行为
$arrintegral['info']="登录成功赠送50积分";
//将积分入库操作
$integral->save($arrintegral);
//登录成功session存用户信息
Session::set('name'.$arrintegral['u_id'],$re);
return redirect('/list',['a'=>$arrintegral['u_id']]);
}
}
/**
* 注册
*
* @param \think\Request $request
* @return \think\Response
*/
public function save(Request $request)
{
$rule = [
'name' => 'require|max:25|token|unique:user',//验证字段在数据表中时唯一的
'email' => 'email',
'pwd'=>'require|confirm'//验证两次密码是否一致
];
$msg = [
'name.require' => '账号不能为空',
'name.unique' => '账号有人使用',
'name.max' => '账号最多不能超过25个字符',
'email' => '邮箱格式错误',
'pwd.require' => '密码不能为空',
'pwd.confirm' => '密码两次不一致',
];
//图片验证
$value=$request->code;
$captcha = new Captcha();
if( !$captcha->check($value))
{
$this->error('你的验证码有误');
}
//字段验证
$data=$request->param();
$validate = Validate::make($rule,$msg