This commit is contained in:
toogee 2020-03-30 21:11:12 +08:00
parent 2b6e8d2209
commit 76d48e2469
20 changed files with 526 additions and 90 deletions

View File

@ -9,7 +9,7 @@ use app\common\model\UserSignrule;
class Sign extends BaseController
{
//添加签到积分规则
public function add()
{
$data = Request::only(['days','score']);
@ -28,6 +28,40 @@ class Sign extends BaseController
return json($res);
}
//删除签到积分规则
public function delete($id)
{
if(Request::isAjax()){
$user =UserSignrule::find($id);
$result = $user->delete();
if($result){
return json(['code'=>0,'msg'=>'删除成功']);
}else{
return json(['code'=>-1,'msg'=>'删除失败']);
}
}
}
//编辑签到积分规则
public function signEdit()
{
if(Request::isAjax()){
$data = Request::param();
$result = UserSignrule::update($data);
if($result){
$res = ['code'=>0,'msg'=>'编辑成功'];
}else{
$res = ['code'=>-1,'msg'=>'编辑失败'];
}
return json($res);
}
$sign = Db::name('user_signrule')->find(input('id'));
View::assign('sign',$sign);
return View::fetch('set/system/signedit');
}
//显示签到积分规则
public function signRule()
{
$keys = UserSignrule::select();

View File

@ -9,7 +9,7 @@ use app\common\model\UserViprule;
class Vip extends BaseController
{
//添加VIP积分规则
public function add()
{
$data = Request::only(['score','vip']);
@ -27,6 +27,41 @@ class Vip extends BaseController
return json($res);
}
//删除VIP积分规则
public function delete($id)
{
if(Request::isAjax()){
$user =UserViprule::find($id);
$result = $user->delete();
if($result){
return json(['code'=>0,'msg'=>'删除成功']);
}else{
return json(['code'=>-1,'msg'=>'删除失败']);
}
}
}
//编辑VIP积分规则
public function vipEdit($id)
{
if(Request::isAjax()){
$data = Request::param();
$result = UserViprule::update($data);
if($result){
$res = ['code'=>0,'msg'=>'编辑成功'];
}else{
$res = ['code'=>-1,'msg'=>'编辑失败'];
}
return json($res);
}
$vip = Db::name('user_viprule')->find($id);
$level = UserViprule::column('vip');
View::assign(['vip'=>$vip,'level'=>$level]);
return View::fetch('set/system/vipedit');
}
//显示VIP规则
public function vipRule()
{
$keys = UserViprule::select();
@ -35,7 +70,7 @@ class Vip extends BaseController
if($count){
$res = ['code'=>0,'msg'=>'','count'=>$count];
foreach($keys as $k=>$v){
$res['data'][] = ['id'=>$v['id'],'score'=>$v['score'],'vip'=>$v['vip'],'ctime'=>$v['create_time']];
$res['data'][] = ['id'=>$v['id'],'score'=>$v['score'],'nick'=>$v['nick'],'vip'=>$v['vip'],'ctime'=>$v['create_time']];
}
} else {
$res = ['code'=>-1,'msg'=>'还没有任何vip等级设置'];

View File

@ -237,7 +237,7 @@ abstract class BaseController
protected function showUser()
{
//1.查询用户
$user = Db::name('user')->field('id,name,nickname,user_img,sex,auth,city,email,sign,point,create_time')->where('id',Session::get('user_id'))->cache(600)->find();
$user = Db::name('user')->field('id,name,nickname,user_img,sex,auth,city,email,sign,point,vip,create_time')->where('id',Session::get('user_id'))->cache(600)->find();
//2.将User变量赋给模板 公共模板nav.html
View::assign('user',$user);
}

View File

@ -21,4 +21,11 @@ class UserViprule extends Model
return $this->belongsTo('User','user_id','id');
}
//获取等级名
public function getVipAttr($value)
{
$vip = [0=>'普通',1=>'VIP1',2=>'VIP2',3=>'VIP3',4=>'VIP4',5=>'VIP5'];
return $vip[$value];
}
}

View File

@ -45,7 +45,7 @@ class Article extends BaseController
$query->where('delete_time',0)->field('id,catename');
},
'user' => function($query){
$query->field('id,name,nickname,user_img,area_id');
$query->field('id,name,nickname,user_img,area_id,vip');
}
])->withCount(['comments'])->where(['status'=>1,'jie'=>1])->where($where)->order(['is_top'=>'desc','create_time'=>'desc'])->paginate(15);
break;
@ -56,7 +56,7 @@ class Article extends BaseController
$query->where('delete_time',0)->field('id,catename');
},
'user' => function($query){
$query->field('id,name,nickname,user_img,area_id');
$query->field('id,name,nickname,user_img,area_id,vip');
}
])->withCount(['comments'])->where('status',1)->where($where)->where('is_hot',1)->order(['is_top'=>'desc','create_time'=>'desc'])->paginate(15);
break;
@ -67,7 +67,7 @@ class Article extends BaseController
$query->where('delete_time',0)->field('id,catename');
},
'user' => function($query){
$query->field('id,name,nickname,user_img,area_id');
$query->field('id,name,nickname,user_img,area_id,vip');
}
])->withCount(['comments'])->where('status',1)->where($where)->where('is_top',1)->order(['is_top'=>'desc','create_time'=>'desc'])->paginate(15);
break;
@ -78,7 +78,7 @@ class Article extends BaseController
$query->where('delete_time',0)->field('id,catename');
},
'user' => function($query){
$query->field('id,name,nickname,user_img,area_id');
$query->field('id,name,nickname,user_img,area_id,vip');
}
])->withCount(['comments'])->where('status',1)->where($where)->order(['is_top'=>'desc','create_time'=>'desc'])->paginate(15);
@ -110,7 +110,7 @@ class Article extends BaseController
$query->where('delete_time',0)->field('id,catename');
},
'user' => function($query){
$query->field('id,name,nickname,user_img,area_id');
$query->field('id,name,nickname,user_img,area_id,vip');
}
])->find($id);
Cache::set('article_'.$id,$article,3600);

View File

@ -11,7 +11,6 @@ use app\common\model\User;
use app\common\model\Cate;
use app\common\model\Comment;
class Index extends BaseController
{
public function index()
@ -32,7 +31,7 @@ class Index extends BaseController
$query->where('delete_time',0)->field('id,catename');
},
'user' => function($query){
$query->field('id,name,nickname,user_img,area_id');
$query->field('id,name,nickname,user_img,area_id,vip');
}
])->withCount(['comments'])->order('create_time','desc')->limit(5)->select();
Cache::set('arttop',$artTop,60);
@ -46,7 +45,7 @@ class Index extends BaseController
$query->where('delete_time',0)->field('id,catename');
},
'user' => function($query){
$query->field('id,name,nickname,user_img,area_id');
$query->field('id,name,nickname,user_img,area_id,vip');
}
])->withCount(['comments'])->where(['status'=>1,'delete_time'=>0])->order('create_time','desc')->limit(20)->select();
Cache::set('artlist',$artList,60);

View File

@ -8,6 +8,7 @@ use think\facade\Db;
use think\facade\View;
use think\Collection;
use think\Response;
use taoler\com\Level;
class Sign extends BaseController
{
@ -59,7 +60,6 @@ class Sign extends BaseController
$days = $data['days'];
// 无今天数据
$data['uid'] = $uid;
$data['stime'] = time();
$id = Db::name('user_sign')->insertGetId($data);
@ -87,6 +87,8 @@ class Sign extends BaseController
$user->save(['point' => $point]);
//point_note($score, $uid, $id);
//到达积分值升级Vip等级
$viplv = Level::writeLv($uid);
}
return json(['code'=>200,'score'=>$score,'days'=>$days,'msg'=>$msg]);
} else {

View File

@ -19,15 +19,15 @@ CREATE TABLE `tao_admin` (
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '软删除',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO `tao_admin` VALUES ('1', 'admin', '管理员', '95d6f8d0d0c3b45e5dbe4057da1b149e', 'taoler@qq.com', '13812345678', '1', '1', '1', '2019.1.1 新年发布新版本!', '127.0.0.1', '1578986287', '1579053025', '1578986600', '0');
INSERT INTO `tao_admin` VALUES ('2', 'test', '', '3dbfa76bd34a2a0274f5d52f5529ccb3', 'tao@qq.com', '13567891236', '0', '0', '2', '', '127.0.0.1', '1578643147', '1555892325', '1576554415', '0');
INSERT INTO `tao_admin` VALUES ('2', 'test', '', '3dbfa76bd34a2a0274f5d52f5529ccb3', 'test@qq.com', '13567891236', '0', '0', '2', '', '127.0.0.1', '1578643147', '1555892325', '1576554415', '0');
DROP TABLE IF EXISTS `tao_article`;
CREATE TABLE `tao_article` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '文章ID',
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`title` varchar(50) NOT NULL COMMENT '标题',
`content` text NOT NULL COMMENT '内容',
`status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '状态1显示0隐藏',
@ -38,15 +38,19 @@ CREATE TABLE `tao_article` (
`is_reply` enum('1','0') NOT NULL DEFAULT '1' COMMENT '0禁评1可评',
`pv` int(11) NOT NULL DEFAULT '0' COMMENT '浏览量',
`jie` enum('1','0') NOT NULL DEFAULT '0' COMMENT '0未结1已结',
`upzip` varchar(70) DEFAULT NULL,
`tags` varchar(255) DEFAULT NULL,
`upzip` varchar(70) DEFAULT NULL COMMENT '文章附件',
`tags` varchar(255) DEFAULT NULL COMMENT 'tag',
`read_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '阅读权限0开放1回复可读2密码可读3私密',
`art_pass` varchar(6) DEFAULT NULL COMMENT '文章加密密码',
`title_color` varchar(10) DEFAULT NULL COMMENT '标题颜色',
`title_font` varchar(20) DEFAULT NULL COMMENT '标题字形',
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=32 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `tao_article` VALUES ('1', 'Fly Template 社区模版', '[quote]\r\n 你们认为layui官方Fly Template 社区模版怎么样?\r\n[/quote]\r\n你喜欢吗\r\n很多人都说比较喜欢我个人认为不错的这个板子非常喜欢我看到有一些人做了开发可惜的是都没有很好的维护有的漏洞比较多不完善很美好的一个板子但没有长久 的更新,非常的可惜。\r\n如果用别人的不好用那我就做一个出来吧。喜欢的人多关注适当时候放出来大家一起用。\r\n关于详情页的内容解析\r\n该模板自带一个特定语法的编辑器当你把内容存储到数据库后在页面读取后浏览会发现诸如“表情、代码、图片”等无法解析这是因为需要对该内容进行一次转义通常来说这是在服务端完成的但鉴于简单化你还可以直接在前端去解析在模板的detail.html中我们已经把相关的代码写好了你只需打开注释即可在代码的最下面。当然如果觉得编辑器无法满足你的需求你也可以把该编辑器换成别的HTML编辑器或MarkDown编辑器。', '1', '1', '1', '0', '0', '1', '155', '0', null, null, '1546698225', '1577772362', '0');
INSERT INTO `tao_article` VALUES ('1', 'Fly Template 社区模版', '[quote]\r\n 你们认为layui官方Fly Template 社区模版怎么样?\r\n[/quote]\r\n你喜欢吗\r\n很多人都说比较喜欢我个人认为不错的这个板子非常喜欢我看到有一些人做了开发可惜的是都没有很好的维护有的漏洞比较多不完善很美好的一个板子但没有长久 的更新,非常的可惜。\r\n如果用别人的不好用那我就做一个出来吧。喜欢的人多关注适当时候放出来大家一起用。\r\n关于详情页的内容解析\r\n该模板自带一个特定语法的编辑器当你把内容存储到数据库后在页面读取后浏览会发现诸如“表情、代码、图片”等无法解析这是因为需要对该内容进行一次转义通常来说这是在服务端完成的但鉴于简单化你还可以直接在前端去解析在模板的detail.html中我们已经把相关的代码写好了你只需打开注释即可在代码的最下面。当然如果觉得编辑器无法满足你的需求你也可以把该编辑器换成别的HTML编辑器或MarkDown编辑器。', '1', '1', '1', '0', '0', '1', '12', '0', null, null, '0', null, null, null, '1546698225', '1577772362', '0');
DROP TABLE IF EXISTS `tao_auth_group`;
CREATE TABLE `tao_auth_group` (
@ -60,7 +64,7 @@ CREATE TABLE `tao_auth_group` (
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
INSERT INTO `tao_auth_group` VALUES ('1', '超级管理员', '5,15,21,22,62,63,23,17,27,28,64,16,24,26,25,4,20,32,33,34,14,29,30,31,1,65,6,35,36,37,38,7,39,40,41,42,8,43,44,45,66,9,47,48,49,50,46,67,2,10,51,11,18,52,54,55,19,56,57,58,59,60,53,3,12,13', '管理所有的管理员', '所有权限', '1', '0', '1578984825', '0');
INSERT INTO `tao_auth_group` VALUES ('2', '管理员', '5,15,21,22,62,63,23,17,27,28,64,16,24,26,25,1,65,6,35,36,37,38,67,3,12,13', '所有列表的管理', '普通管理员', '1', '0', '1578984832', '0');
@ -101,11 +105,12 @@ CREATE TABLE `tao_auth_rule` (
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM AUTO_INCREMENT=68 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=77 DEFAULT CHARSET=utf8;
INSERT INTO `tao_auth_rule` VALUES ('1', 'admin', '管理', '1', '1', '0', '0', 'layui-icon-user', '1', '3', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('2', 'set', '设置', '1', '1', '0', '0', 'layui-icon-set', '1', '4', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('3', 'administrator', '账户', '1', '1', '0', '0', 'layui-icon-username', '1', '5', '', '0', '1578980034', '0');
INSERT INTO `tao_auth_rule` VALUES ('4', 'app', '应用', '1', '1', '0', '0', 'layui-icon-app', '1', '2', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('5', 'article', '内容', '1', '1', '0', '0', 'layui-icon-read', '1', '0', '', '0', '1578902321', '0');
INSERT INTO `tao_auth_rule` VALUES ('6', 'admin/User/list', '用户管理', '1', '1', '1', '1', '', '1', '1', '', '0', '1578901015', '0');
INSERT INTO `tao_auth_rule` VALUES ('7', 'admin/Admin/index', '管理员', '1', '1', '1', '1', '', '1', '6', '', '0', '1578901133', '0');
@ -159,7 +164,16 @@ INSERT INTO `tao_auth_rule` VALUES ('63', 'admin/Forum/hot', '加精帖子', '1'
INSERT INTO `tao_auth_rule` VALUES ('64', 'admin/Froum/recheck', '审核评论', '1', '1', '5', '1', '', '0', '10', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('65', 'admin/User/uploadImg', '上传用户头像', '1', '1', '1', '1', '', '0', '0', '', '0', '1578981624', '0');
INSERT INTO `tao_auth_rule` VALUES ('66', 'admin/AuthGroup/check', '审核角色', '1', '1', '1', '1', '', '0', '15', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('67', 'admin/User/auth', '设置超级用户', '1', '1', '1', '1', '', '0', '22', '', '1578984801', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('67', 'admin/Sign/signRule', '签到规则', '1', '1', '2', '1', '', '0', '15', '', '1585547595', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('68', 'admin/Sign/add', '添加签到', '1', '1', '2', '1', '', '0', '16', '', '1585547705', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('69', 'admin/Sign/signEdit', '编辑签到', '1', '1', '2', '1', '', '0', '17', '', '1585547774', '1585548298', '0');
INSERT INTO `tao_auth_rule` VALUES ('70', 'admin/Sign/delete', '删除签到', '1', '1', '2', '1', '', '0', '18', '', '1585547817', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('71', 'admin/Vip/vipRule', '用户等级', '1', '1', '2', '1', '', '0', '19', '', '1585547921', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('72', 'admin/Vip/add', '添加vip等级', '1', '1', '2', '1', '', '0', '20', '', '1585547981', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('73', 'admin/Vip/vipEdit', '编辑vip等级', '1', '1', '1', '1', '', '0', '21', '', '1585548029', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('74', 'admin/Vip/delete', '删除vip等级', '1', '1', '2', '1', '', '0', '22', '', '1585548077', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('75', 'admin/Set/email', '邮箱设置', '1', '1', '2', '1', '', '0', '23', '', '1585548143', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('76', 'admin/User/auth', '设置超级用户', '1', '1', '1', '1', '', '0', '22', '', '1578984801', '0', '0');
DROP TABLE IF EXISTS `tao_cate`;
CREATE TABLE `tao_cate` (
@ -175,7 +189,7 @@ CREATE TABLE `tao_cate` (
`updata_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
INSERT INTO `tao_cate` VALUES ('1', '提问', 'ask', '1', '1', '0', 'TaoLer社区提问专栏1', '0', '0', '0', '0');
INSERT INTO `tao_cate` VALUES ('2', '分享', 'share', '2', '1', '0', '', '0', '0', '0', '0');
@ -190,7 +204,7 @@ CREATE TABLE `tao_collection` (
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=149 DEFAULT CHARSET=utf8 COMMENT='文章收藏表';
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='文章收藏表';
DROP TABLE IF EXISTS `tao_comment`;
@ -206,7 +220,7 @@ CREATE TABLE `tao_comment` (
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=79 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `tao_comment` VALUES ('1', 'https://www.aieok.com', '1', '1', '0', '0', '1', '1555127897', '1578977505', '1578977505');
@ -229,14 +243,14 @@ DROP TABLE IF EXISTS `tao_message`;
CREATE TABLE `tao_message` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '消息ID',
`title` varchar(255) NOT NULL COMMENT '消息标题',
`content` tinytext NOT NULL COMMENT '消息内容',
`content` tinytext COMMENT '消息内容',
`user_id` int(11) NOT NULL COMMENT '发送人ID',
`link` varchar(255) NOT NULL COMMENT '链接',
`create_time` int(11) NOT NULL COMMENT '创建时间',
`update_time` int(11) NOT NULL COMMENT '更新时间',
`delete_time` int(11) NOT NULL COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `tao_message_to`;
CREATE TABLE `tao_message_to` (
@ -249,7 +263,7 @@ CREATE TABLE `tao_message_to` (
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `tao_slider`;
@ -267,7 +281,7 @@ CREATE TABLE `tao_slider` (
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO `tao_slider` VALUES ('1', 'CODING', '1', '/storage/slider/F1.jpg', '#', '', '1574870400', '1575043200', '1', '0', '0', '0');
INSERT INTO `tao_slider` VALUES ('3', '通用右栏底部广告', '2', '/storage/slider/20200101/851c0b88a72590293bcb45454bdce056.jpg', 'http://www.aieok.com', '', '1571155200', '1609344000', '1', '0', '0', '0');
@ -330,7 +344,7 @@ CREATE TABLE `tao_user` (
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=41 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `tao_user` VALUES ('1', 'admin', '95d6f8d0d0c3b45e5dbe4057da1b149e', '2147483647', 'admin@qq.com', '管理员', '北京市', '1', '这是我的第一个TP5系统2019北京。OK! OK!ok@', 0x2F73746F726167652F686561645F7069632F32303139313231372F39343036636334623866336538323731613238616339646239353339333766352E6A7067, '1', '14', '1', '1', '0', '127.0.0.1', '0', '0', '0', '0', '1579053025', '1578469091', '0');
@ -362,7 +376,7 @@ CREATE TABLE `tao_user_sign` (
`stime` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '签到的时间',
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COMMENT='用户签到表';
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户签到表';
DROP TABLE IF EXISTS `tao_user_signrule`;
@ -374,7 +388,7 @@ CREATE TABLE `tao_user_signrule` (
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '升级时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='用户签到积分规则';
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户签到积分规则';
INSERT INTO `tao_user_signrule` VALUES ('1', '1', '2', '0', '0', '0');
INSERT INTO `tao_user_signrule` VALUES ('2', '3', '3', '0', '0', '0');
@ -385,11 +399,18 @@ CREATE TABLE `tao_user_viprule` (
`id` int(2) NOT NULL AUTO_INCREMENT COMMENT '用户等级ID',
`score` varchar(255) NOT NULL DEFAULT '0' COMMENT '积分区间',
`vip` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'vip等级',
`nick` varchar(20) DEFAULT NULL COMMENT '认证昵称',
`rules` varchar(255) DEFAULT NULL COMMENT '权限',
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '升级时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
INSERT INTO `tao_user_viprule` VALUES ('1', '0-99', '0', '游民', '', '1585476523', '1585544577', '0');
INSERT INTO `tao_user_viprule` VALUES ('2', '100-299', '1', '富农', '', '1585476551', '1585546376', '0');
INSERT INTO `tao_user_viprule` VALUES ('3', '300-500', '2', '地主', '', '1585545450', '1585546241', '0');
INSERT INTO `tao_user_viprule` VALUES ('4', '501-699', '3', '土豪', '', '1585545542', '1585569657', '0');
DROP TABLE IF EXISTS `tao_user_zan`;
CREATE TABLE `tao_user_zan` (
@ -398,5 +419,5 @@ CREATE TABLE `tao_user_zan` (
`user_id` int(11) NOT NULL COMMENT '用户id',
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '点赞时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=utf8;
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

View File

@ -0,0 +1,41 @@
<?php
namespace taoler\com;
use think\facade\Db;
use app\common\model\Vip;
use app\common\model\User;
class Level
{
//根据用户积分升级vip等级
public static function writeLv($uid)
{
$user = User::find($uid);
$score = $user->point;
$userLv = $user->vip;
$vipLv = self::getLevel($score);
if($vipLv>$userLv){
$result = User::update(['id'=>$uid,'vip'=>$vipLv]);
if($result){
return true;
}else{
return false;
}
}
}
//根据积分获取用户vip等级
public static function getLevel($point)
{
$vip = Db::name('user_viprule')->select();
foreach($vip as $k => $v){
$score = explode('-',$v['score']);
if($score[0] <= $point && $point <= $score[1]){
return $v['vip'];
}
}
}
}

View File

@ -0,0 +1,230 @@
//网站后台综合设置
layui.define(['table', 'form'], function(exports){
var $ = layui.$
,table = layui.table
,form = layui.form;
//签到规则
table.render({
elem: '#sign-rule',
url: '/admin/Sign/signRule',
limit: 5,
cols:[[
{type: 'numbers', fixed: 'left'},
{field: 'days',title: '天数'},
{field: 'score',title: '积分'},
{field: 'ctime',title: '时间'},
{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#sign-rule-button'}
]]
});
//监听工具条
table.on('tool(sign-rule)', function(obj){
var data = obj.data;
if(obj.event === 'del'){
layer.prompt({
formType: 1
,title: '敏感操作,请验证口令'
}, function(value, index){
layer.close(index);
layer.confirm('真的删除行么', function(index){
//obj.del();
$.ajax({
type:'post',
url:"/admin/Sign/delete",
data:{id:data.id},
dataType:'json',
success:function(data){
if(data.code == 0){
layer.msg(data.msg,{
icon:6,
time:2000
});
} else {
layer.open({
title:'删除失败',
content:data.msg,
icon:5,
adim:6
})
}
}
});
table.reload('sign-rule');
layer.close(index);
});
});
} else if(obj.event === 'edit'){
var tr = $(obj.tr);
layer.open({
type: 2
,title: '编辑签到'
,content: '/admin/Sign/signEdit?id='+ data.id
,maxmin: true
,area: ['350px', '300px']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'LAY-user-sign-submit'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var field = data.field; //获取提交的字段
//提交 Ajax 成功后,静态更新表格中的数据
$.ajax({
type:"post",
url:"/admin/Sign/signEdit",
data:field,
daType:"json",
success:function (res){
if (res.code == 0) {
layer.msg(res.msg,{
icon:6,
time:2000
});
} else {
layer.open({
tiele:'修改失败',
content:res.msg,
icon:5,
anim:6
});
}
}
});
table.reload('sign-rule'); //数据刷新
layer.close(index); //关闭弹层
});
submit.trigger('click');
}
,success: function(layero, index){
}
});
}
});
//Vip规则
table.render({
elem: '#vip-rule',
url: '/admin/Vip/vipRule',
limit: 5,
cols:[[
{type: 'numbers', fixed: 'left'},
{field: 'vip',title: '等级'},
{field: 'score',title: '积分'},
{field: 'nick',title: '认证'},
{field: 'rules',title: '权限'},
{field: 'ctime',title: '时间'},
{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#vip-rule-button'}
]]
});
//监听工具条
table.on('tool(vip-rule)', function(obj){
var data = obj.data;
if(obj.event === 'del'){
layer.prompt({
formType: 1
,title: '敏感操作,请验证口令'
}, function(value, index){
layer.close(index);
layer.confirm('真的删除行么', function(index){
//obj.del();
$.ajax({
type:'post',
url:"/admin/Vip/delete",
data:{id:data.id},
dataType:'json',
success:function(data){
if(data.code == 0){
layer.msg(data.msg,{
icon:6,
time:2000
});
} else {
layer.open({
title:'删除失败',
content:data.msg,
icon:5,
adim:6
})
}
}
});
table.reload('vip-rule'); //数据刷新
layer.close(index);
});
});
} else if(obj.event === 'edit'){
var tr = $(obj.tr);
layer.open({
type: 2
,title: '编辑VIP'
,content: '/admin/Vip/vipEdit?id='+ data.id
,maxmin: true
,area: ['400px', '370px']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'LAY-user-vip-submit'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var field = data.field; //获取提交的字段
//提交 Ajax 成功后,静态更新表格中的数据
$.ajax({
type:"post",
url:"/admin/Vip/vipEdit",
data:field,
daType:"json",
success:function (res){
if (res.code == 0) {
layer.msg(res.msg,{
icon:6,
time:2000
});
} else {
layer.open({
tiele:'修改失败',
content:res.msg,
icon:5,
anim:6
});
}
}
});
table.reload('vip-rule'); //数据刷新
layer.close(index); //关闭弹层
});
submit.trigger('click');
}
,success: function(layero, index){
}
});
}
});
exports('webset', {})
});

View File

@ -1,2 +1,3 @@
/keyauth
/time_line
/version

View File

@ -13,7 +13,7 @@
</a>
<dl class="layui-nav-child">
<dd data-name="console" class="layui-this">
<a lay-href="../index/home.html">控制台</a>
<a lay-href="{:url('index/home')}">控制台</a>
</dd>
</dl>
</li>

View File

@ -9,11 +9,11 @@
<div class="layui-card-body">
<div class="layui-tab layui-tab-brief" lay-filter="component-tabs-brief">
<ul class="layui-tab-title">
<li class="layui-this">邮件设置</li>
<li>积分设置</li>
<li>用户等级</li>
<li>商品管理</li>
<li>订单管理</li>
<li class="layui-this" lay-id="email">邮件设置</li>
<li lay-id="score">积分设置</li>
<li lay-id="vip">用户等级</li>
<li lay-id="goods">商品管理</li>
<li lay-id="order">订单管理</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
@ -115,7 +115,7 @@
</select>
</div>
<div class="layui-input-inline">
<input type="tel" name="score" lay-verify="required" placeholder="积分区间" autocomplete="off" class="layui-input">
<input type="tel" name="score" lay-verify="required" placeholder="积分区间:0-99" autocomplete="off" class="layui-input">
</div>
<div class="layui-input-inline">
<input type="submit" class="layui-btn" lay-submit lay-filter="vip-rule-submit" id="vip-rule-submit" value="立即提交">
@ -141,7 +141,6 @@
</div>
</div>
{/block}
{block name="js"}
<script>
@ -149,7 +148,7 @@
base: '/static/admin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'set','table','form'], function(){
}).use(['index', 'set', 'webset', 'table', 'form'], function(){
var $ = layui.$
,admin = layui.admin
,element = layui.element
@ -207,12 +206,11 @@
daType:"json",
success:function (data){
if (data.code == 0) {
console.log(data);
layer.msg(data.msg,{
icon:6,
time:2000
}, function(){
location.reload();
table.reload('sign-rule'); //数据刷新
});
} else {
layer.open({
@ -227,7 +225,6 @@
return false;
});
//添加VIP规则
form.on('submit(vip-rule-submit)',function(data){
var field = data.field;
@ -238,12 +235,11 @@
daType:"json",
success:function (data){
if (data.code == 0) {
console.log(data);
layer.msg(data.msg,{
icon:6,
time:2000
}, function(){
location.reload();
table.reload('vip-rule'); //数据刷新
});
} else {
layer.open({
@ -258,36 +254,6 @@
return false;
});
//签到规则
table.render({
elem: '#sign-rule',
url: '/admin/Sign/signRule',
limit: 5,
cols:[[
{type: 'numbers', fixed: 'left'},
{field: 'days',title: '天数'},
{field: 'score',title: '积分',minWidth:100},
{field: 'ctime',title: '时间',minWidth:100},
{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#sign-rule-button'}
]]
});
//Vip规则
table.render({
elem: '#vip-rule',
url: '/admin/Vip/vipRule',
limit: 5,
cols:[[
{type: 'numbers', fixed: 'left'},
{field: 'score',title: '积分'},
{field: 'vip',title: '等级',minWidth:100},
{field: 'ctime',title: '时间',minWidth:100},
{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#vip-rule-button'}
]]
});
});
</script>
{/block}

View File

@ -0,0 +1,38 @@
{extend name="public/base" /}
{block name="body"}
<div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin" style="padding: 20px 30px 0 0;">
<div class="layui-form-item layui-hide">
<input type="text" name="id" class="layui-input" value="{$sign.id}">
</div>
<div class="layui-form-item">
<label class="layui-form-label">签到天数</label>
<div class="layui-input-inline">
<input type="text" name="days" disabled lay-verify="required" placeholder="请输入天数" autocomplete="off" class="layui-input layui-disabled" value="{$sign.days}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">获得积分</label>
<div class="layui-input-inline">
<input type="text" name="score" lay-verify="required" placeholder="请输入号码" autocomplete="off" class="layui-input" value="{$sign.score}">
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="LAY-user-sign-submit" id="LAY-user-sign-submit" value="确认">
</div>
</div>
{/block}
{block name="js"}
<script>
layui.config({
base: '/static/admin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form'], function(){
var $ = layui.$
,form = layui.form;
})
</script>
{/block}

View File

@ -0,0 +1,54 @@
{extend name="public/base" /}
{block name="body"}
<div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin" style="padding: 20px 30px 0 0;">
<div class="layui-form-item layui-hide">
<input type="text" name="id" class="layui-input" value="{$vip.id}">
</div>
<div class="layui-form-item">
<label class="layui-form-label">Vip级别</label>
<div class="layui-input-inline" >
<select name="vip">
{volist name="level" id="vo"}
<option {if condition="$vip.vip eq $vo"} selected {/if} value="{$vo}">{if condition="$vo eq 0"}普通{else /}VIP{$vo}{/if}</option>
{/volist}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">积分区间</label>
<div class="layui-input-inline">
<input type="text" name="score" lay-verify="required" placeholder="积分区间:0-99" autocomplete="off" class="layui-input" value="{$vip.score}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">认证</label>
<div class="layui-input-inline">
<input type="text" name="nick" lay-verify="required" placeholder="等级昵称" autocomplete="off" class="layui-input" value="{$vip.nick}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">权限</label>
<div class="layui-input-inline">
<input type="text" name="rules" lay-verify="" placeholder="请选择" autocomplete="off" class="layui-input" value="{$vip.rules}">
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="LAY-user-vip-submit" id="LAY-user-vip-submit" value="确认">
</div>
</div>
{/block}
{block name="js"}
<script>
layui.config({
base: '/static/admin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form'], function(){
var $ = layui.$
,form = layui.form;
})
</script>
{/block}

View File

@ -27,8 +27,10 @@
<cite>{$art.user.nickname ?: $art.user.name}</cite>
<!--
<i class="iconfont icon-renzheng" title="认证信息XXX"></i>
<i class="layui-badge fly-badge-vip">VIP3</i>
-->
{if($art.user.vip > 0)}
<i class="layui-badge fly-badge-vip">VIP{$art.user.vip}</i>
{/if}
</a>
<span>{$art.create_time|date='Y-m-d'}</span>

View File

@ -56,7 +56,9 @@
<i class="layui-badge layui-bg-green " title="来自哪简称">{:getAsing($article.user.area_id) ?: '无'}</i>
<cite>{$article.user.nickname ?: $article.user.name}</cite>
<i class="iconfont icon-renzheng" title="认证信息:{{ rows.user.approve }}"></i>
<!--i class="layui-badge fly-badge-vip">VIP3</i-->
{if($article.user.vip > 0)}
<i class="layui-badge fly-badge-vip">VIP{$article.user.vip}</i>
{/if}
</a>
<span>{$article.create_time|date='Y-m-d H:d'}</span>
</div>

View File

@ -45,7 +45,9 @@
<i class="layui-badge layui-bg-green" title="来自哪简称">{:getAsing($top.user.area_id) ?: '无'}</i>
<cite>{$top.user.nickname ?: $top.user.name}</cite>
<i class="iconfont icon-renzheng" title="认证信息XXX"></i>
<!--i class="layui-badge fly-badge-vip">VIP3</i-->
{if($top.user.vip > 0)}
<i class="layui-badge fly-badge-vip">VIP{$top.user.vip}</i>
{/if}
</a>
<span>{$top.create_time|date='Y-m-d'}</span>
@ -82,8 +84,10 @@
<cite>{$art.user.nickname ?: $art.user.name}</cite>
<!--
<i class="iconfont icon-renzheng" title="认证信息XXX"></i>
<i class="layui-badge fly-badge-vip">VIP3</i>
-->
{if($art.user.vip > 0)}
<i class="layui-badge fly-badge-vip">VIP{$art.user.vip}</i>
{/if}
</a>
<span>{$art.create_time|date='Y-m-d'}</span>
@ -117,7 +121,7 @@
<div><a href="https://gitee.com/toogee/TaoLer/repository/archive/master.zip" target="_blank"> 程序下载 </a></div>
</div>
<div class="layui-col-xs6">
<div><a href="http://www.aieok.com/index/jie/25.html" target="_blank"> 应用说明 </a></div>
<div><a href="{:url('article/detail',['id'=>25])}" target="_blank"> 应用说明 </a></div>
</div>
<div class="layui-col-xs6">
<div><a href="#" target="_blank"> 申请Key </a></div>
@ -126,7 +130,7 @@
<div><a href="https://gitee.com/toogee/TaoLer" target="_blank"> Git 仓库 </a></div>
</div>
<div class="layui-col-xs6">
<div><a href="#" target="_blank"> 模板 </a></div>
<div><a href="{:url('doc/timeline')}" target="_blank">版本更新日志</a></div>
</div>
<div class="layui-col-xs6">
<div><a href="#" target="_blank"> 关于积分 </a></div>

View File

@ -26,7 +26,7 @@
<a class="fly-nav-avatar" href="javascript:;">
<cite class="layui-hide-xs">{:session('user_name')}</cite>
<i class="iconfont icon-renzheng layui-hide-xs" title="认证信息layui 作者"></i>
<i class="layui-badge fly-badge-vip layui-hide-xs">VIP3</i>
<i class="layui-badge fly-badge-vip layui-hide-xs">VIP{$user.vip}</i>
<img src="{$user.user_img}">
</a>

View File

@ -25,7 +25,7 @@
<div class="layui-col-md6">
<div class="fly-panel fly-panel-border"> <div class="fly-panel-title"> 我的会员信息 </div>
<div class="fly-panel-main layui-text" style="padding: 18px 15px; height: 50px; line-height: 26px;">
<p>您的财富经验值:<span style="color: red">{$user.point}</span> 金币</p> <p>您当前为:<span style="color: red">VIP</span></p> </div> </div> </div>
<p>您的财富经验值:<span style="color: red">{$user.point}</span> 金币</p> <p>您当前为:<span style="color: red">VIP{$user.vip}</span></p> </div> </div> </div>
<div class="layui-col-md12" style="margin-top: -20px;">
<div class="fly-panel fly-panel-border"> <div class="fly-panel-title"> 快捷方式 </div>