diff --git a/application/adminapi/controller/Nobility.php b/application/adminapi/controller/Nobility.php new file mode 100644 index 0000000..f20b3fa --- /dev/null +++ b/application/adminapi/controller/Nobility.php @@ -0,0 +1,298 @@ +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); + } +} \ No newline at end of file diff --git a/application/api/controller/Nobility.php b/application/api/controller/Nobility.php new file mode 100644 index 0000000..214b0a9 --- /dev/null +++ b/application/api/controller/Nobility.php @@ -0,0 +1,31 @@ +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']); + } +} diff --git a/application/api/model/Nobility.php b/application/api/model/Nobility.php new file mode 100644 index 0000000..eb1ea01 --- /dev/null +++ b/application/api/model/Nobility.php @@ -0,0 +1,112 @@ +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]; + } +}