爵位接口提交

This commit is contained in:
2025-11-05 10:13:54 +08:00
parent 9e81410cee
commit 0c4d4b5d12
3 changed files with 441 additions and 0 deletions

View File

@@ -0,0 +1,298 @@
<?php
namespace app\adminapi\controller;
use app\admin\model\AdminLog;
use app\common\controller\adminApi;
use think\Config;
use think\Db;
use think\Hook;
use think\Session;
use think\Validate;
/**
* 等级管理
* @internal
*/
class Nobility extends adminApi
{
protected $noNeedLogin = [];
protected $noNeedRight = [];
public function _initialize()
{
parent::_initialize();
}
//获取爵位列表
public function get_nobility_list()
{
$order = input('order', 'lid');
$sort = input('sort', 'desc');
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$count = db::name('vs_nobility')->where('delete_time', 0)->count();
$lists = db::name('vs_nobility')
->field('lid,name,image,images,pay_price,pay_price,renew_price,pay_coin,renew_coin,day')
->where('delete_time', 0)
->order($order, $sort)
->page($page, $page_limit)
->select();
foreach ($lists as &$v) {
$v['createtime'] = date('Y-m-d H:i:s', $v['createtime']);
$v['updatetime'] = date('Y-m-d H:i:s', $v['updatetime']);
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
//添加爵位
public function add_nobility(){
$name = input('name', '');
$image = input('image', '');
$images = input('images', '');
$pay_price = input('pay_price', '');
$pay_coin = input('pay_coin', '');
$renew_price = input('renew_price', '');
$renew_coin = input('renew_coin', '');
$day = input('day', '');
$nick_name_color = input('nick_name_color', '');
if (empty($name)) {
return V(0, "请输入爵位名称");
}
$nobility_info = db::name('vs_nobility')->where('name', $name)->find();
if ($nobility_info) {
return V(0, "该爵位已存在");
}
$data = [
'name' => $name,
'image' => $image,
'images' => $images,
'pay_price' => $pay_price,
'pay_coin' => $pay_coin,
'renew_price' => $renew_price,
'renew_coin' => $renew_coin,
'day' => $day,
'nick_name_color' => $nick_name_color,
'create_time' => time(),
];
$result = db::name('vs_nobility')->insert($data);
if ($result) {
return V(1, "添加成功");
} else {
return V(0, "添加失败");
}
}
//编辑爵位
public function edit_nobility(){
$name = input('name', '');
$image = input('image', '');
$images = input('images', '');
$pay_price = input('pay_price', '');
$pay_coin = input('pay_coin', '');
$renew_price = input('renew_price', '');
$renew_coin = input('renew_coin', '');
$day = input('day', '');
$nick_name_color = input('nick_name_color', '');
$lid = input('lid', '');
$nobility_info = db::name('vs_nobility')->where('lid', $lid)->find();
if (!$nobility_info) {
return V(0, "该爵位不存在");
}
$data = [];
if(!empty($name)){
$nobility_info_other = db::name('vs_nobility')->where(['lid'=>['neq', $lid], 'name'=>$name])->find();
if ($nobility_info_other) {
return V(0, "该爵位已存在");
}
$data['name'] = $name;
}
if(!empty($image)){
$data['image'] = $image;
}
if(!empty($images)){
$data['images'] = $images;
}
if(!empty($pay_price)){
$data['pay_price'] = $pay_price;
}
if(!empty($pay_coin)){
$data['pay_coin'] = $pay_coin;
}
if(!empty($renew_price)){
$data['renew_price'] = $renew_price;
}
if(!empty($renew_coin)){
$data['renew_coin'] = $renew_coin;
}
if(!empty($day)){
$data['day'] = $day;
}
if(!empty($nick_name_color)){
$data['nick_name_color'] = $nick_name_color;
}
$data['updatetime'] = time();
$result = db::name('vs_nobility')->where('lid', $lid)->update($data);
if ($result) {
return V(1, "编辑成功");
} else {
return V(0, "编辑失败");
}
}
//删除爵位
public function del_nobility(){
$lid = input('lid', '');
$nobility_info = db::name('vs_nobility')->where('lid', $lid)->find();
if (!$nobility_info) {
return V(0, "该爵位不存在");
}
$result = db::name('vs_nobility')->where('lid', $lid)->update(['delete_time'=>time()]);
if ($result) {
return V(1, "删除成功");
} else {
return V(0, "删除失败");
}
}
//爵位权限列表
public function get_nobility_power_list(){
$order = input('order', 'id');
$sort = input('sort', 'desc');
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$count = db::name('vs_nobility_power')->where('delete_time', 0)->count();
$lists = db::name('vs_nobility_power')
->field('id,name,content,image,images,createtime,updatetime')
->where('delete_time', 0)
->order($order, $sort)
->page($page, $page_limit)
->select();
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
//添加爵位权限
public function add_nobility_power(){
$name = input('name', '');
$content = input('content', '');
$image = input('image', '');
$images = input('images', '');
if (empty($name)) {
return V(0, "请输入爵位权限名称");
}
$nobility_power_info = db::name('vs_nobility_power')->where('name', $name)->find();
if ($nobility_power_info) {
return V(0, "该爵位权限已存在");
}
$data = [
'name' => $name,
'content' => $content,
'image' => $image,
'images' => $images,
'createtime' => time(),
];
$result = db::name('vs_nobility_power')->insert($data);
if ($result) {
return V(1, "添加成功");
} else {
return V(0, "添加失败");
}
}
//编辑爵位权限
public function edit_nobility_power(){
$name = input('name', '');
$content = input('content', '');
$image = input('image', '');
$images = input('images', '');
$id = input('id', '');
$nobility_power_info = db::name('vs_nobility_power')->where('id', $id)->find();
if (!$nobility_power_info) {
return V(0, "该爵位权限不存在");
}
$data = [];
if(!empty($name)){
$nobility_power_info_other = db::name('vs_nobility_power')->where(['id'=>['neq', $id], 'name'=>$name])->find();
if ($nobility_power_info_other) {
return V(0, "该爵位权限已存在");
}
$data['name'] = $name;
}
if(!empty($content)){
$data['content'] = $content;
}
if(!empty($image)){
$data['image'] = $image;
}
if(!empty($images)){
$data['images'] = $images;
}
$data['updatetime'] = time();
$result = db::name('vs_nobility_power')->where('id', $id)->update($data);
if ($result) {
return V(1, "编辑成功");
} else {
return V(0, "编辑失败");
}
}
//删除爵位权限
public function del_nobility_power(){
$id = input('id', '');
$nobility_power_info = db::name('vs_nobility_power')->where('id', $id)->find();
if (!$nobility_power_info) {
return V(0, "该爵位权限不存在");
}
$result = db::name('vs_nobility_power')->where('id', $id)->update(['delete_time'=>time()]);
if ($result) {
return V(1, "删除成功");
} else {
return V(0, "删除失败");
}
}
//用户爵位列表
public function get_user_nobility_list(){
$order = input('order', 'id');
$sort = input('sort', 'desc');
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$count = db::name('vs_user_nobility')->where('delete_time', 0)->count();
$lists = db::name('vs_user_nobility')
->field('id,user_id,lid,end_time,createtime,updatetime')
->where('delete_time', 0)
->order($order, $sort)
->page($page, $page_limit)
->select();
foreach ($lists as &$list){
$list['user_nick_name'] = db::name('vs_user')->where('id', $list['user_id'])->value('nick_name');
$list['nick_name_color'] = db::name('vs_nobility')->where('lid', $list['lid'])->value('nick_name_color');
//头像
$list['user_avatar'] = db::name('vs_user')->where('id', $list['user_id'])->value('avatar');
//爵位名称
$list['nobility_name'] = db::name('vs_nobility')->where('lid', $list['lid'])->value('name');
$list['createtime'] = date('Y-m-d H:i:s', $list['createtime']);
$list['updatetime'] = date('Y-m-d H:i:s', $list['updatetime']);
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace app\api\controller;
use app\common\controller\BaseCom;
use think\Controller;
use think\Db;
class Nobility extends BaseCom
{
//初始化
protected function initialize()
{
//允许跨域
header('Access-Control-Allow-Origin: *');
}
//爵位列表
public function get_nobility_list(){
$uid = $this->uid;
$reslut = model('Nobility')->getNobilityList($uid);
return V($reslut['code'],$reslut['msg'], $reslut['data']);
}
//爵位详情
public function get_nobility_detail(){
$id = input('id');
$uid = $this->uid;
$reslut = model('Nobility')->getNobilityInfo($uid,$id);
return V($reslut['code'],$reslut['msg'], $reslut['data']);
}
}

View File

@@ -0,0 +1,112 @@
<?php
namespace app\api\model;
use think\Db;
use think\Model;
use think\Session;
class Nobility extends Model
{
// 开启自动写入时间戳字段
protected $autoWriteTimestamp = 'int';
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = 'updatetime';
public static function init()
{
self::beforeWrite(function ($row) {
});
}
//爵位列表
public static function getNobilityList($user_id){
//爵位列表
$nobility_list = db::name('vs_nobility')
->field('lid,name,image,images,pay_price,renew_price,pay_coin,renew_coin,day,power_ids')
->where('delete_time', 0)
->select();
//爵位特权
$power_count = db::name('vs_nobility_power')
->field('id,name,image')
->where('delete_time', 0)
->count();
$return = [];
foreach ($nobility_list as $key => $value) {
$power_ids = explode(',', $value['power_ids']);
$return[$key]['name'] = $value['name'];
$return[$key]['image'] = $value['image'];
$return[$key]['pay_price'] = $value['pay_price'];
$power_list = db::name('vs_nobility_power')
->field('id,name,image')
->whereIn('id', $power_ids)
->where('delete_time', 0)
->select();
$return[$key]['power']['power_count'] = $power_count;
$return[$key]['power']['this_power_count'] = count($power_list);
$return[$key]['power']['count_str'] = $power_count."/".count($power_list);
$return[$key]['power']['list'] = $power_list;
}
return ['code' => 1, 'msg' => '成功', 'data' => $return];
}
//爵位详情
public static function getNobilityInfo($user_id,$lid){
$nobility_info = db::name('vs_nobility')
->field('lid,name,image,images,pay_price,renew_price,pay_coin,renew_coin,day,power_ids')
->where('delete_time', 0)
->where('lid', $lid)
->find();
$user_info = db::name('user')
->field('id,nickname,avatar')
->where('delete_time', 0)
->where('id', $user_id)
->find();
$user_nobility_info = db::name('vs_user_nobility')
->field('id,user_id,lid,end_time')
->where('delete_time', 0)
->where('user_id', $user_id)
->find();
$return = [];
$return['user_info'] = $user_info;
$return['nobility_info']['name'] = $nobility_info['name'];
$return['nobility_info']['image'] = $nobility_info['image'];
if ($user_nobility_info) {
if($user_nobility_info['lid'] == $lid){
$return['nobility_info']['status'] = 1; //去续费
}else{
$return['nobility_info']['status'] = 2; //去升级
}
}else{
$return['nobility_info']['status'] = 0; //去开通
}
$return['nobility_info']['end_time'] = $user_nobility_info['end_time']??0;
$return['nobility_power_list'] = [];
//爵位列表
$nobility_list = db::name('vs_nobility')
->field('lid,name,power_ids')
->where('delete_time', 0)
->select();
//权限列表
$power_list = db::name('vs_nobility_power')
->field('id,name,image')
->where('delete_time', 0)
->select();
foreach ($power_list as $key => $value) {
$return['nobility_power_list'][$key] = $value;
foreach ($nobility_list as $k => $v) {
$power_ids = explode(',', $v['power_ids']);
unset($v['power_ids']);
if (in_array($value['id'], $power_ids)) {
$v['status'] = 1; //是
}else{
$v['status'] = 0; //否
}
$return['nobility_power_list'][$key]['nobility_list'][$k] = $v;
}
}
return ['code' => 1, 'msg' => '成功', 'data' => $return];
}
}