Files
mier-php/application/admin/model/Play.php
2025-08-11 10:22:05 +08:00

420 lines
16 KiB
PHP

<?php
namespace app\admin\model;
use think\Db;
use think\Model;
class Play extends Model
{
//游戏列表
public function game_list($gid, $game_name, $is_show, $order, $sort, $page = 1, $limit = 20)
{
$map = [];
if (!empty($gid)) {
$map[] = ['gid', '=', $gid];
}
if (!empty($game_name)) {
$map[] = ['game_name', 'like', '%' . $game_name . '%'];
}
if (!empty($is_show)) {
$map[] = ['is_show', '=', $is_show];
}
$map[] = ['is_delete', '=', 1];
$list = db::name('game')->where($map)->order($order, $sort)->page($page, $limit)->select();
foreach ($list as $k => &$v) {
$game_level = db::name('game_skill_level')->field('game_level_name')->where(['gid' => $v['gid']])->select();
$str = '';
foreach ($game_level as $m => $n) {
$str .= $n['game_level_name'] . ',';
}
$v['game_level_name'] = $str;
$v['game_ico1'] = localpath_to_netpath($v['game_ico1']);
$v['game_ico2'] = localpath_to_netpath($v['game_ico2']);
$v['game_ico'] = localpath_to_netpath($v['game_ico']);
$v['cover_image'] = localpath_to_netpath($v['cover_image']);
$v['skill_image'] = localpath_to_netpath($v['skill_image']);
}
$data = [];
$data['count'] = db::name('game')->where($map)->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
//编辑游戏
public function edit_game($data)
{
if (empty($data)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$game = db::name('game')->find($data['gid']);
if (empty($game)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$update_data = [];
$update_data['game_name'] = $data['game_name'];
$update_data['game_ico'] = $data['game_ico'];
$update_data['game_ico1'] = $data['game_ico1'];
$update_data['game_ico2'] = $data['game_ico2'];
$update_data['cover_image'] = $data['cover_image'];
$update_data['skill_image'] = $data['skill_image'];
$update_data['is_show'] = $data['is_show'];
$update_data['sort'] = $data['sort'];
$update_data['update_time'] = time();
$reslut = db::name('game')->where(['gid' => $data['gid']])->update($update_data);
if (!$reslut) {
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
} else {
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
}
}
//添加游戏
public function add_game($data)
{
$update_data['game_name'] = $data['game_name'];
$update_data['game_ico'] = $data['game_ico'];
$update_data['game_ico1'] = $data['game_ico1'];
$update_data['game_ico2'] = $data['game_ico2'];
$update_data['cover_image'] = $data['cover_image'];
$update_data['skill_image'] = $data['skill_image'];
$update_data['is_show'] = $data['is_show'];
$update_data['sort'] = $data['sort'];
$update_data['update_time'] = time();
$update_data['add_time'] = time();
$reslut = db::name('game')->insert($update_data);
if (!$reslut) {
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
} else {
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
}
}
//获取游戏信息
public function game_info($gid)
{
if (empty($gid)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$info = db::name('game')->where(['gid' => $gid])->find();
$info['http_game_ico'] = localpath_to_netpath($info['game_ico']);
$info['http_game_ico1'] = localpath_to_netpath($info['game_ico1']);
$info['http_game_ico2'] = localpath_to_netpath($info['game_ico2']);
$info['http_cover_image'] = localpath_to_netpath($info['cover_image']);
$info['http_skill_image'] = localpath_to_netpath($info['skill_image']);
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
}
//删除游戏
public function del_game($gid)
{
if (empty($gid)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$reslut = db::name('game')->where(['gid' => $gid])->update(['is_delete' => 2, 'delete_time' => time()]);
if (!$reslut) {
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
} else {
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
}
}
//游戏等级列表
public function game_skill_level_list($lid, $gid, $game_level_name, $order, $sort, $page = 1, $limit = 20)
{
$map = [];
if (!empty($lid)) {
$map[] = ['a.lid', '=', $lid];
}
if (!empty($game_level_name)) {
$map[] = ['a.game_level_name', 'like', '%' . $game_level_name . '%'];
}
if (!empty($gid)) {
$map[] = ['a.gid', '=', $gid];
}
$map[] = ['a.is_delete', '=', 1];
$list = db::name('game_skill_level')->where($map)->alias('a')
->join('yy_game b', 'a.gid = b.gid')
->field(
'a.*,b.game_name'
)->where($map)->order($order, $sort)->page($page, $limit)->select();
foreach ($list as $k => &$v) {
$v['gid_game_name'] = $v['gid'] . '-' . $v['game_name'];
}
$data = [];
$data['count'] = db::name('game_skill_level')->where($map)->alias('a')
->join('yy_game b', 'a.gid = b.gid')->where($map)->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
//编辑游戏等级
public function edit_game_skill_level($data)
{
if (empty($data)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$game = db::name('game_skill_level')->find($data['lid']);
if (empty($game)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$update_data = [];
$update_data['gid'] = $data['gid'];
$update_data['game_level_name'] = $data['game_level_name'];
$update_data['update_time'] = time();
$reslut = db::name('game_skill_level')->where(['lid' => $data['lid']])->update($update_data);
if (!$reslut) {
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
} else {
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
}
}
//添加游戏等级
public function add_game_skill_level($data)
{
$add_data = [];
$update_data['gid'] = $data['gid'];
$update_data['game_level_name'] = $data['game_level_name'];
$update_data['update_time'] = time();
$update_data['add_time'] = time();
$reslut = db::name('game_skill_level')->insert($update_data);
if (!$reslut) {
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
} else {
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
}
}
//获取游戏等级信息
public function game_skill_level_info($lid)
{
if (empty($lid)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$info = db::name('game_skill_level')->where(['lid' => $lid])->find();
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
}
//删除 游戏等级
public function del_game_skill_level($lid)
{
if (empty($lid)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$reslut = db::name('game_skill_level')->where(['lid' => $lid])->update(['is_delete' => 2, 'delete_time' => time()]);
if (!$reslut) {
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
} else {
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
}
}
//陪玩主播 列表
public function player_list($uid, $nick_name, $sex, $special_uid, $gid, $real_name, $is_top, $is_recommend, $is_business, $status, $order, $sort, $page = 1, $limit = 20)
{
$map = [];
if (!empty($uid)) {
$map[] = ['a.uid', '=', $uid];
}
if (!empty($nick_name)) {
$map[] = ['b.nick_name', 'like', '%' . $nick_name . '%'];
}
if (!empty($sex)) {
$map[] = ['b.sex', '=', $sex];
}
if (!empty($special_uid)) {
$map[] = ['b.special_uid', '=', $special_uid];
}
if (!empty($gid)) {
$map[] = ['a.gid', '=', $gid];
}
if (!empty($real_name)) {
$map[] = ['b.real_name', 'like', '%' . $real_name . '%'];
}
if (!empty($is_top)) {
$map[] = ['a.is_top', '=', $is_top];
}
if (!empty($is_recommend)) {
$map[] = ['a.is_recommend', '=', $is_recommend];
}
if (!empty($is_business)) {
$map[] = ['a.is_business', '=', $is_business];
}
if (!empty($status)) {
$map[] = ['a.status', '=', $status];
}
$list = db::name('user_player')
->alias('a')
->join('yy_user b', 'a.uid = b.uid')
->field('a.*,b.nick_name,b.sex,b.special_uid,b.real_name')
->where($map)->order($order, $sort)->page($page, $limit)->select();
foreach ($list as $k => &$v) {
$game_name = db::name('game')->where(['gid' => $v['gid']])->value('game_name');
$game_skill_level = db::name('game_skill_level')->where(['lid' => $v['lid']])->value('game_level_name');
$v['game_level_name'] = $game_name . '-' . $game_skill_level;
$v['cover_image'] = localpath_to_netpath($v['cover_image']);
$v['skill_image'] = localpath_to_netpath($v['skill_image']);
}
$data = [];
$data['count'] = db::name('user_player')->alias('a')
->join('yy_user b', 'a.uid = b.uid')->where($map)->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
//编辑 陪玩主播
public function edit_player($data)
{
if (empty($data)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$info = db::name('user_player')->find($data['pid']);
if (empty($info)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$update_data = [];
$update_data['price'] = $data['price'];
$update_data['skill_image'] = $data['skill_image'];
$update_data['cover_image'] = $data['cover_image'];
$update_data['introduction'] = $data['introduction'];
$update_data['is_top'] = $data['is_top'];
$update_data['is_recommend'] = $data['is_recommend'];
$update_data['is_business'] = $data['is_business'];
$update_data['flag'] = $data['flag'];
$update_data['remarks'] = $data['remarks'];
$update_data['status'] = $data['status'];
$update_data['update_time'] = time();
if ($data['status'] != $info['status']) {
$update_data['deal_time'] = time();
}
$user_info = db::name('user')->find($info['uid']);
if ($update_data['status'] == 2) {
$player_game_list = explode(',', $user_info['player_game_list']);
$player_game_list[] = $info['gid'];
$player_game_list = array_unique($player_game_list);
$user_data = [];
$user_data['is_player'] = 2;
$user_data['player_game_list'] = trim(implode(',', $player_game_list), ',');
db::name('user')->where('uid', $info['uid'])->update($user_data);
} else {
$player_game_list = explode(',', $user_info['player_game_list']);
if (!empty($player_game_list)) {
$key_array = array_keys($player_game_list, $info['gid']);
if (!empty($key_array)) {
unset($player_game_list[$key_array[0]]);
$player_game_list = array_unique($player_game_list);
$user_data = [];
$user_data['is_player'] = 2;
$user_data['player_game_list'] = trim(implode(',', $player_game_list), ',');
db::name('user')->where('uid', $info['uid'])->update($user_data);
}
}
}
$reslut = db::name('user_player')->where(['pid' => $data['pid']])->update($update_data);
if (!$reslut) {
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
} else {
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
}
}
//获取 陪玩主播 信息
public function player_info($pid)
{
if (empty($pid)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$info = db::name('user_player')->where(['pid' => $pid])->find();
$info['cover_image'] = localpath_to_netpath($info['cover_image']);
$info['skill_image'] = localpath_to_netpath($info['skill_image']);
$info['sound'] = localpath_to_netpath($info['sound']);
$user = db::name('user')->where(['uid' => $info['uid']])->find();
$info['nickname_real_name'] = $user['nick_name'] . '-' . $user['real_name'];
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
}
//删除 陪玩主播
public function del_player($pid)
{
if (empty($pid)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$reslut = db::name('user_player')->where(['pid' => $pid])->delete();
if (!$reslut) {
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
} else {
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
}
}
//陪玩订单 列表
public function player_order_list($order_sn, $uid, $player_uid, $price, $service_rate, $status, $is_over, $order, $sort, $page = 1, $limit = 20)
{
$map = [];
if (!empty($order_sn)) {
$map[] = ['order_sn', '=', $order_sn];
}
if (!empty($uid)) {
$map[] = ['uid', '=', $uid];
}
if (!empty($player_uid)) {
$map[] = ['player_uid', '=', $player_uid];
}
if (!empty($price)) {
$map[] = ['price', '=', $price];
}
if (!empty($service_rate)) {
$map[] = ['service_rate', '=', $service_rate];
}
if (!empty($status)) {
$map[] = ['status', '=', $status];
}
if (!empty($is_over)) {
$map[] = ['is_over', '=', $is_over];
}
if (empty($order)) {
$order = 'oid';
}
if (empty($sort)) {
$sort = 'desc';
}
$list = db::name('user_player_order')->where($map)->order($order, $sort)->page($page, $limit)->select();
foreach ($list as $k => &$v) {
$v['game_name'] = db::name('game')->where(['gid' => $v['gid']])->value('game_name');
$u_nickname = db::name('user')->where(['uid' => $v['uid']])->value('nick_name');
$p_nickname = db::name('user')->where(['uid' => $v['player_uid']])->value('nick_name');
$v['uid_nickname'] = $v['uid'] . '-' . $u_nickname;
$v['player_uid_nickname'] = $v['player_uid'] . '-' . $p_nickname;
}
$data = [];
$data['count'] = db::name('user_player_order')->where($map)->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
//获取 陪玩订单 信息
public function player_order_info($oid)
{
if (empty($oid)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$info = db::name('user_player_order')->where(['oid' => $oid])->find();
$u_nickname = db::name('user')->where(['uid' => $info['uid']])->value('nick_name');
$p_nickname = db::name('user')->where(['uid' => $info['player_uid']])->value('nick_name');
$info['uid_nickname'] = $info['uid'] . '-' . $u_nickname;
$info['player_uid_nickname'] = $info['player_uid'] . '-' . $p_nickname;
$info['game_name'] = db::name('game')->where(['gid' => $info['gid']])->value('game_name');
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
}
}