<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
require_once FCPATH . 'branch/fqb/D_Wxapp.php';
class Team extends D_Wxapp {
private $wa;
private $prefix;
/**
* 构造函数
*/
public function __construct() {
parent::__construct();
$this->load->model('wxapp_model');
$this->wa = $this->get_cache('wxapp-'.SITE_ID);
$this->prefix = SITE_ID.'_wxapp';
}
// 创建房间页面
public function add() {
$this->verify_login();
$team_category = $this->db->where('id', $this->req['catid'])->get('1_team_category')->row_array();
// 房间类型
$mapkind = $this->db->where('pid', 0)->order_by('id')->get('linkage_data_4')->result_array();
// 地图
if($this->req['id']) {
$this->db->where('pid', $this->req['id']);
} else {
$this->db->where('pid', $mapkind['0']['id']);
}
$map = $this->db->get('linkage_data_4')->result_array();
// 打手人数
if($this->req['pid']) {
$this->db->where('pid', $this->req['pid']);
} else {
$this->db->where('pid', $map['0']['id']);
}
$num = $this->db->get('linkage_data_4')->result_array();
// 所拥有的角色
$role = $this->db->where('uid', $this->uid)->get('member_role')->result_array();
foreach ($role as $index => $item) {
$name = $this->db->where('id', $item['region'])->get('linkage_data_6')->row_array()['name'];
$role[$index]['role'] = $item['game'] .'-'. $name;
}
if($mapkind) {
$this->msg(self::CODE_SUCCESS, '', ['mapkind' => $mapkind, 'map' => $map, 'num' => $num, 'role' => $role, 'team_category' => $team_category]);
} else {
$this->msg(self::CODE_ERROR);
}
}
// 创建房间
public function add_room() {
$this->verify_login();
$team_category = $this->db->where('id', $this->req['catid'])->get('1_team_category')->row_array();
// 地图类型
$mapkind = $this->db->where('id', $this->req['did'])->get('linkage_data_4')->row_array();
// 地图
$map = $this->db->where('id', $this->req['tid'])->get('linkage_data_4')->row_array();
//人数
$num = $this->db->where('id', $this->req['nid'])->get('linkage_data_4')->row_array();
// 角色
$role = $this->db->where('id', $this->req['rid'])->get('member_role')->row_array();
// $cid = $this->_order();
// ($this->member['groupid'] == 3 && $cid) && exit_json(2, '请先完成上个订单', $cid);
if(array_search(',', $this->req)) {
$err = '请完善表单信息';
} elseif(!$mapkind && !$map && !$num && !$team_category) {
$err = '房间参数缺失';
} elseif($this->member['groupid'] != 4) {
$err = '角色不符';
} else {
// 添加房间
$this->db->insert('1_team', array(
'catid' => $team_category['id'],
'uid' => $this->uid,
'author' => $this->member['username'],
'status' => 9,
'inputtime' => SYS_TIME,
'updatetime' => SYS_TIME,
// 地图类型
'title' => $mapkind['name'],
'tid' => $mapkind['id'],
// 地图
'ditu' => $map['name'],
'did' => $map['id'],
// 最大人数
'number' => $num['name'],
'nid' => $num['id'],
// 玩家集合
'numbers' => '',
// 房间状态
'team' => 1,
'thumb' => '',
// 角色
'rid' => $role['id'],
'daqu' => $role['region'],
// 金额
'value' => $team_category['feiyong'],
'second' => $team_category['second'],
'max' => $team_category['number'],
'starttime' => '',
));
$this->msg(self::CODE_SUCCESS, '操作成功', $this->db->insert_id());
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 组队室详情
public function show() {
$this->verify_login();
$data = $_POST;
if(!$data) {
$data = $this->req;
}
$team = $this->db->where('id', $data['id'])->get('1_team')->row_array();
if(!$team) {
$err = '该房间不存在';
} elseif($team['team'] == 3) {
$err = '该房间已关闭';
} else {
// 角色 大区
$role = $this->db->where('id', $team['rid'])->get('member_role')->row_array();
$team['role'] = $role['game'];
$team['region'] = $this->db->where('id', $role['region'])->get('imt_linkage_data_6')->row_array();
// 打手数 和 玩家总人数
$count = $this->db->where('id', $team['nid'])->get('linkage_data_4')->row_array()['name'];
$sum = [];
for($i = 0; $i < (int)$team['max'] + (int)$count; $i++) {
$sum[$i] = '';
}
$team['sum'] = $sum;
$numbers = array_merge(array($team['uid']), explode(',', $team['numbers']));
if($numbers) {
foreach($numbers as $key => $item) {
if($item) {
if(dr_member_info($item)['groupid'] == 5) {
$thugs[$key]['username'] = dr_member_info($item)['username'];
$thugs[$key]['uid'] = dr_member_info($item)['uid'];
} elseif(dr_member_info($item)['groupid'] == 3) {
$wanjia = $item;
}
$users[$key]['avatar'] = dr_member_info($item)['avatar'];
$users[$key]['uid'] = $item;
$users[$key]['groupid'] = dr_member_info($item)['groupid'];
$users[$key]['username'] = dr_member_info($item)['username'];
}
}
}
$type = ['weixin', 'zhifu'];
// 账号分配
$fenpei = $this->db->where('cid', $team['id'])->where('uid', $wanjia)->where('status', 1)->where_in('type', $type)->get('member_paylog')->row_array();
$team['numbers'] = $users;
$team['thugs'] = array_values($thugs);
if(count(explode(',', $team['numbers'])) == $team['max'] + $team['number']) {
$status = 0;
} else {
$status = 1;
}
$this->msg(self::CODE_SUCCESS, '', ['status' => $status, 'team' => $team, 'fenpei' => $fenpei ? $fenpei : []]);
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 操作
public function enter() {
// $this->verify_login();
$data = $_POST;
$member = $this->member;
// 大区
$region = $this->db->where('id', $data['rid'])->get('member_role')->row_array()['region'];
// $cid = $this->_order();
// ($this->member['groupid'] == 3 && $cid) && exit_json(2, '请先完成上个订单', $cid);
$team = $this->_search($data['tid'], $data['did'], $region);
if(is_array($team)) {
$numbers = $team['numbers'] ? $team['numbers'] .','. $this->uid : $this->uid;
$this->db->set('numbers', implode(',', array_unique(explode(',', $numbers))))->where('id', $team['id'])->update('imt_1_team');
$team = $this->db->where('id', $team['id'])->get('1_team')->row_array();
$this->db->set('cid', $team['id'])->where('id', $data['oid'])->update('member_paylog');
$this->msg(self::CODE_SUCCESS, '', $team['id']);exit();
} else {
$this->msg(self::CODE_ERROR, $team);exit();
}
}
// 退出房间
public function out_xiaopang() {
$this->verify_login();
$team = $this->db->where('id', $this->req['id'])->get('1_team')->row_array();
if(!$team) {
$err = '房间不存在';
} elseif($team['team'] == 3) {
$err = '房间已关闭';
} elseif(!in_array($this->uid, explode(',', $team['numbers']))) {
$err = '你已退出';
} else {
if($this->member['groupid'] == 3 || $this->member['groupid'] == 5) {
$uids = array_merge(array_diff(explode(',', $numbers), array($this->uid)));
$this->db->set('numbers', implode(',', $uids))->where('id', $team['id'])->update('1_team');
} elseif($this->member['groupid'] == 4) {
$this->db->set('team', 3)->where('id', $team['id'])->update('1_team');
// 团长获得的钱
$this->db->set('money', 'money' + $team['value'] * dr_var("zdstcfr"), false)->where('uid', $team['uid'])->update('member');
$this->db->insert('member_paylog', array(
'uid' => $team['uid'],
'order_number' => SYS_TIME . rand(1000, 9999),
'value' => $team['value'] * dr_var("zdstcfr"),
'type' => '4',
'status' => 1,
'note' => $team.'获得'.$team['value'] * dr_var("zdstcfr").'元',
'module' => '',
'inputtime' => SYS_TIME
));
$dashou = $this->db->where('dashou', $team['id'])->where('status', 1)->get('member_paylog')->row_array()['dashou'];
// 打手获得的钱
$this->db->set('money', 'money' + $team['value'] * dr_var("zdstcfr"), false)->where('uid', $dashou)->update('member');
}
$this->msg(self::CODE_SUCCESS, '退出成功');
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 退出房间
public function out() {
$this->verify_login();
$team = $this->db->where('id', $this->req['id'])->get('1_team')->row_array();
if(!$team) {
$err = '房间不存在';
} elseif($team['team'] == 3) {
$err = '房间已关闭';
} elseif(!in_array($this->uid, explode(',', $team['numbers']))) {
$err = '你已退出';
} else {
if($this->member['groupid'] == 3 || $this->member['groupid'] == 5) {
$uids = array_merge(array_diff(explode(',', $numbers), array($this->uid)));
$this->db->set('numbers', implode(',', $uids))->where('id', $team['id'])->update('1_team');
} elseif($this->member['groupid'] == 4) {
$this->db->set('team', 3)->where('id', $team['id'])->update('1_team');
// 团长获得的钱
$this->db->set('money', 'money' + $team['value'] * dr_var("zdstcfr"), false)->where('uid', $team['uid'])->update('member');
$this->db->insert('member_paylog', array(
'uid' => $team['uid'],
'order_number' => SYS_TIME . rand(1000, 9999),
'value' => $team['value'] * dr_var("zdstcfr"),
'type' => '4',
'status' => 1,
'note' => $team.'获得'.$team['value'] * dr_var("zdstcfr").'元',
'module' => '',
'inputtime' => SYS_TIME
));
$dashou = $this->db->where('dashou', $team['id'])->where('status', 1)->get('member_paylog')->row_array()['dashou'];
// 打手获得的钱
$this->db->set('money', 'money' + $team['value'] * dr_var("zdstcfr"), false)->where('uid', $dashou)->update('member');
}
$this->msg(self::CODE_SUCCESS, '退出成功');
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 开始房间
public function begin() {
$this->verify_login();
$team = $this->db->where('id', $_POST['id'])->get('1_team')->row_array();
if(!$team) {
$err = '房间不存在';
} elseif($team['team'] == 3) {
$err = '房间已关闭';
} else {
if($_POST['end'] == 1) {
$this->db->set('team', 3);
} else {
$this->db->set('team', 2);
}
$this->db->where('id', $team['id'])->update('1_team');
$team = $this->db->where('id', $_POST['id'])->get('1_team')->row_array();
$this->msg(self::CODE_SUCCESS, '操作成功', $team);
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 售卖装备
public function sell() {
$this->verify_login();
$team = $this->db->where('id', $_POST['cid'])->get('1_team')->row_array();
if(!$team) {
$err = '房间不存在';
} elseif($team['team'] == 3) {
$err = '房间已关闭';
} elseif(!$_POST['equipment']) {
$err = '装备必填';
} elseif(!$_POST['price']) {
$err = '价格必填';
} else {
$ins = $_POST;
$ins['uid'] = $this->uid;
$ins['inputtime'] = SYS_TIME;
$ins['updatetime'] = SYS_TIME;
$this->db->insert('1_equipment_sell', $ins);
$this->msg(self::CODE_SUCCESS, '', $this->db->insert_id());
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 购买装备
public function buy() {
$this->verify_login();
$equipment = $this->db->where('id', $this->req['id'])->get('1_equipment_sell')->row_array();
if(!$equipment) {
$err = '没有此装备';
} elseif($equipment['status'] == 1) {
$err = '此装备已经被购买';
} elseif($this->member['money'] < $equipment['price']) {
$err = '余额不足';
} else {
if($this->req['row'] == 1) {
// 扣除金额
$this->db->set('money', $this->member['money'] - $equipment['price'])->where('uid', $this->uid)->update('member');
$this->db->insert('member_paylog', array(
'uid' => $this->uid,
'order_number' => SYS_TIME . rand(1000, 9999),
'value' => $equipment['price'],
// 'type' => '1',
'status' => 1,
'module' => 1,
'note' => '购买'.$equipment['equipment'].'装备支付'.$equipment['price'].'元',
'inputtime' => SYS_TIME,
));
$this->db->set('gid', $this->uid)->set('status', 1)->where('id', $this->req['id'])->update('1_equipment_sell');
}
$this->msg(self::CODE_SUCCESS, '', $equipment);
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 举报玩家
public function report() {
$this->verify_login();
$team = $this->db->where('id', $this->req['id'])->get('1_team')->row_array();
// 总评论
$result = $this->db->where('uid', $this->uid)->where('cid', $team['id'])->get('1_team_comment_data_0')->result_array();
$numbers = $team['numbers'] ? explode(',', $team['numbers'] . ',' . $team['uid']) : [$team['uid']];
if($result) {
foreach($result as $key => $item) {
$jubaowanjia[] = $item['jubaowanjia'];
}
$numbers = array_merge(array_diff($numbers, $jubaowanjia));
}
$numbers = array_merge(array_diff($numbers, array($this->uid)));
if(!$team) {
$err = '暂无该房间';
} else {
if($this->req['uid']) {
// 判断是否评论过该玩家
$row = $this->db->where('cid', $room['id'])
->where('uid', $this->uid)
->where('jubaowanjia', $this->req['uid'])
->get('1_team_comment_data_0')->row_array();
if(!in_array($this->req['uid'], $numbers)) {
$err = '该玩家不存在';
} elseif($row) {
$err = '你已举报';
} else {
if($this->req['content'] == 0) {
$content = '未按约定时间进入';
} elseif($this->req['content'] == 1) {
$content = '中途退出';
} elseif($this->req['content'] == 2) {
$content = '其他原因';
}
$this->db->insert('1_team_comment_data_0', array(
'cid' => $team['id'],
'uid' => $this->uid,
'author' => $this->member['username'],
'content' => $content,
'avgsort' => 0,
'reply' => 0,
'inputtime' => SYS_TIME,
'jubaowanjia' => $this->req['uid'],
));
$this->msg(self::CODE_SUCCESS, '提交成功');exit();
}
} else {
foreach($numbers as $key => $item) {
$users[$key]['username'] = dr_member_info($item)['username'];
$users[$key]['uid'] = $item;
$users[$key]['value'] = $key;
}
$this->msg(self::CODE_SUCCESS, '', $users);
}
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 下单
public function order() {
$this->verify_login();
// $cid = $this->_order();
if(array_search('', $this->req)) {
$err = '请完善表单信息';
} else {
$ins = [
'uid' => $this->uid,
'order_number' => SYS_TIME . rand(1000, 9999),
'phone' => $this->req['phone'] ? $this->req['phone'] : '',
'cid' => '',
'zhanghao' => $this->req['zhanghao'] ? $this->req['zhanghao'] : '',
'password' => $this->req['password'] ? $this->req['password'] : '',
'role' => $this->req['role'] ? $this->req['role'] : '',
'value' => $this->req['money'],
'order' => '',
'module' => '',
'note' => '',
'leixing' => $this->req['Type'] ? $this->req['Type'] : '',
'inputtime' => SYS_TIME
];
$openid = $this->db->select('openid')->where('uid', $this->uid)->get(SITE_ID . '_wxapp_user')->row_array()['openid'];
if (!$openid) {
$this->msg(self::CODE_ERROR, '无法获取openid');
} elseif($this->req['leixing'] == 2) {
// 更新账户余额
$this->db->set('money', $this->member['money'] - $this->req['money'])->where('uid', $this->uid)->update('member');
$ins['status'] = 1;
$ins['type'] = 'zhifu';
$this->db->insert('member_paylog', $ins);
$this->msg(self::CODE_two, '', ['id' => $this->db->insert_id()]);
} elseif($this->req['leixing'] == 1) {
$ins['status'] = 0;
$ins['type'] = 'weixin';
$this->db->insert('member_paylog', $ins);
$pay_id = $this->db->insert_id();
$pay = require WEBPATH . 'api/pay/weixin/config.php';
define(APPID, $pay['appid']);
define(MCHID, $pay['mchid']);
define(KEY, $pay['key']);
define(FC_PAY_ID, $pay_id);
define(APPSECRET, $pay['appsecret']);
require WEBPATH . 'api/pay/weixin/WxPay.Data.php';
require WEBPATH . 'api/pay/weixin/WxPay.Api.php';
require WEBPATH . 'api/pay/weixin/WxPay.JsApiPay.php';
require WEBPATH . 'api/pay/weixin/WxPay.NativePay.php';
$input = new WxPayUnifiedOrder();
$input->SetBody('账户充值');
$input->SetOut_trade_no("FC-{$pay_id}-{$this->uid}-ROOMS-{$pay_id}");
$input->SetTotal_fee($this->req['money'] * 100);
$input->SetTime_start(date('YmdHis', SYS_TIME));
$input->SetTime_expire(date('YmdHis', SYS_TIME + 7200));
$input->SetNotify_url(SITE_URL . 'api/pay/weixin/return_url.php');
$input->SetTrade_type('JSAPI');
$input->SetProduct_id($pay_id);
$input->SetOpenid($openid);
$order = WxPayApi::unifiedOrder($input);
if (!$order) {
$this->msg(self::CODE_ERROR, '未获取到返回数据');
} elseif (isset($order['code']) && $order['code'] == 0) {
$this->msg(self::CODE_ERROR, $order['msg']);
} elseif ($order['err_code_des']) {
$this->msg(self::CODE_ERROR, $order['err_code_des']);
} else {
$result = [
'appId' => APPID,
'timeStamp' => (string)SYS_TIME,
'nonceStr' => $order['nonce_str'],
'package' => 'prepay_id=' . $order['prepay_id'],
'signType' => 'MD5',
];
ksort($result);
$string = '';
foreach ($result as $k => $v) {
$string .= ($string ? '&' : '') . $k . '=' . $v;
}
$result['paySign'] = strtoupper(md5($string . '&key=' . KEY));
$result['str'] = KEY;
unset($result['appid']);
$this->msg(self::CODE_SUCCESS, '', ['id' => $this->$pay_id, 'result' => $result]);
}
} else {
}
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 打手接单
public function dashou() {
$this->verify_login();
$data = $_POST;
$order = $this->db->where('cid', $data['cid'])->where('status', 1)->get('member_paylog')->row_array();
$this->db->set('dashou', $data['content'])->where('id', $order['id'])->update('member_paylog');
$role = $this->db->where('id', $order['role'])->get('member_role')->row_array();
if($order) {
$this->msg(self::CODE_SUCCESS, '', ['order' => $order, 'role' => $role]);
} else {
$this->msg(self::CODE_SUCCESS, '暂无该账号');
}
}
// 判断是否有正在进行的订单
protected function _order() {
$row = $this->db->where('team !=', 3)->get('1_team')->result_array();
foreach($row as $key => $item) {
if(in_array($this->uid, explode(',', $item['numbers'])) || $this->uid == $item['uid']) {
return $item['id'];
}
}
}
/**
* $tid 地图id
* $did 地图类型id
* $region 大区
* $team 状态 1未开启 2已开启 3已关闭
**/
protected function _search($tid, $did, $region) {
$team = ['1', '2'];
// $data = $this->db->where('uid !=', $this->uid)->where('did', $tid)->where('tid', $did)->where('daqu', $region)->where_in('team', $team)->order_by('id')->get('imt_1_team')->result_array();
$data = $this->db->where('did', $tid)->where('tid', $did)->where('daqu', $region)->where_in('team', $team)->order_by('id')->get('imt_1_team')->result_array();
// return $this->db->last_query();
if($data) {
foreach($data as $key => $item) {
$bully = [];
$wanjia = [];
if($item['numbers']) {
$users = $this->db->where_in('uid', explode(',', $item['numbers']))->get('member')->result_array();
foreach($users as $value) {
if($value['groupid'] == 5) {
$bully[] = $value;
} elseif($value['groupid'] == 3) {
$wanjia[] = $value;
}
}
}
if(!in_array($this->uid, $bully)
&& $this->member['groupid'] == 5
&& count($bully) <= $item['number']) {
return $item;
} elseif(!in_array($this->uid, $wanjia)
&& $this->member['groupid'] == 3
&& count($wanjia) <= $item['max']) {
return $item;
} elseif($this->uid != $team['uid'] && $this->member['groupid'] == 4) {
return '角色不符';
} else {
return '暂无符合的房间';
}
}
} else {
return '暂无符合的房间';
}
}
}<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
require_once FCPATH . 'branch/fqb/D_Wxapp.php';
class Room extends D_Wxapp {
private $wa;
private $prefix;
/**
* 构造函数
*/
public function __construct() {
parent::__construct();
$this->load->model('wxapp_model');
$this->wa = $this->get_cache('wxapp-'.SITE_ID);
$this->prefix = SITE_ID.'_wxapp';
}
// 预组队房间
public function index() {
$this->verify_login();
$catid = $this->db->where('id', 1)->get('1_room_category')->row_array()['id'];
if($this->req['search']) {
$this->db->where('id', $this->req['search']);
}
// 房间状态
$fjzt = ['0', '1', '2'];
// 所有房间
$room = $this->db->where('catid', $catid)->where_in('fjzt', $fjzt)->where('starttime <', SYS_TIME)->order_by('id desc')->get('1_room')->result_array();
if(!$catid || !$room) {
$this->msg(self::CODE_ERROR, '暂无房间', $catid);
}else{
// 自己在房间的状态
foreach($room as $key => $item) {
if(in_array($this->uid, explode(',', $item['uids']))) {
$room[$key]['user_status'] = 1;
} elseif($this->uid == $item['uid']) {
$room[$key]['user_status'] = 4;
} else {
$room[$key]['user_status'] = 3;
}
$room[$key]['thumb'] = dr_thumb($item['thumb']);
$room[$key]['starttime'] = date('Y-m-d H:i', $item['starttime']);
}
$this->msg(self::CODE_SUCCESS, '', ['room' => $room, 'catid' => $catid]);
}
}
// 创建房间页面
public function add() {
$this->verify_login();
$room_category = $this->db->where('id', $this->req['catid'])->get('1_room_category')->row_array();
// 房间类型
$mapkind = $this->db->where('pid', 0)->order_by('id')->get('linkage_data_3')->result_array();
// 地图
if($this->req['id']) {
$this->db->where('pid', $this->req['id']);
} else {
$this->db->where('pid', $mapkind['0']['id']);
}
$map = $this->db->get('linkage_data_3')->result_array();
// 人数
if($this->req['pid']) {
$this->db->where('pid', $this->req['pid']);
} else {
$this->db->where('pid', $map['0']['id']);
}
$num = $this->db->get('linkage_data_3')->result_array();
// 所拥有的角色
$role = $this->db->where('uid', $this->uid)->get('member_role')->result_array();
foreach ($role as $index => $item) {
$name = $this->db->where('id', $item['region'])->get('linkage_data_6')->row_array()['name'];
$role[$index]['role'] = $item['game'] .'-'. $name;
}
if($mapkind) {
$this->msg(self::CODE_SUCCESS, '', ['mapkind' => $mapkind, 'map' => $map, 'num' => $num, 'role' => $role, 'room_category' => $room_category]);
} else {
$this->msg(self::CODE_ERROR);
}
}
// 创建房间页面
public function add_xiaopang() {
$this->verify_login();
$room_category = $this->db->where('id', $this->req['catid'])->get('1_room_category')->row_array();
// 房间类型
$mapkind = $this->db->where('pid', 0)->order_by('id')->get('linkage_data_3')->result_array();
// 地图
if($this->req['id']) {
$this->db->where('pid', $this->req['id']);
} else {
$this->db->where('pid', $mapkind['0']['id']);
}
$map = $this->db->get('linkage_data_3')->result_array();
// 人数
if($this->req['pid']) {
$this->db->where('pid', $this->req['pid']);
} else {
$this->db->where('pid', $map['0']['id']);
}
$num = $this->db->get('linkage_data_3')->result_array();
// 所拥有的角色
$role = $this->db->where('uid', $this->uid)->get('member_role')->result_array();
foreach ($role as $index => $item) {
$name = $this->db->where('id', $item['region'])->get('linkage_data_6')->row_array()['name'];
$role[$index]['role'] = $item['game'] .'-'. $name;
}
// $array = array('mapkind' => $mapkind, 'map' => $map, 'num' => $num, 'role' => $role, 'room_category' => $room_category);
// var_dump($array);
// die;
if($mapkind) {
$this->msg(self::CODE_SUCCESS, '', ['mapkind' => $mapkind, 'map' => $map, 'num' => $num, 'role' => $role, 'room_category' => $room_category]);
} else {
$this->msg(self::CODE_ERROR);
}
}
// 创建房间
public function add_room() {
$this->verify_login();
$room_category = $this->db->where('id', $this->req['catid'])->get('1_room_category')->row_array();
// 地图类型
$mapkind = $this->db->where('id', $this->req['did'])->get('linkage_data_3')->row_array();
// 地图
$map = $this->db->where('id', $this->req['tid'])->get('linkage_data_3')->row_array();
//人数
$num = $this->db->where('id', $this->req['rid'])->get('linkage_data_3')->row_array();
$user = dr_member_info($this->uid);
if(array_search(',', $this->req)) {
$err = '请完善表单信息';
} elseif($user['money'] - $room_category['feiyong'] < 0) {
$err = '账户余额不足';
} elseif(!$mapkind && !$map && !$num && !$room_category) {
$err = '房间参数缺失';
} else {
$fjzt = strtotime($this->req['start']) < SYS_TIME ? 0 : 1;
// 创建房间,扣除金额
$this->db->set('money', $user['money'] - $room_category['feiyong'])->where('uid', $this->uid)->update('member');
// 添加房间
$this->db->insert('1_room', array(
'catid' => $room_category['id'],
'uid' => $this->uid,
'author' => $user['username'],
'status' => 9,
'inputtime' => SYS_TIME,
'updatetime' => SYS_TIME,
// 地图类型
'title' => $mapkind['name'],
'did' => $mapkind['id'],
// 地图
'dtmc' => $map['name'],
'tid' => $map['id'],
// 最大人数
'wanjiarenshu' => $num['name'],
'rid' => $num['id'],
// 玩家
'uids' => '',
// 房间状态
'fjzt' => $fjzt,
'thumb' => '',
// 角色
'role' => $this->req['role'],
// 金额
'fangjianjine' => $room_category['feiyong'],
'starttime' => strtotime($this->req['start']),
'endtime' => '',
));
// 加入记录流水
$this->db->insert('member_paylog', array(
'uid' => $this->uid,
'order_number' => SYS_TIME . rand(1000, 9999),
'value' => '-'.$room_category['feiyong'],
'type' => '1',
'status' => 1,
'module' => 1,
'note' => '创建'.$this->db->insert_id().'预组队房间支付'.$room_category['feiyong'].'元',
'inputtime' => SYS_TIME,
));
$this->msg(self::CODE_SUCCESS, '创建成功');
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 创建房间
public function add_room_xiaopang() {
$this->verify_login();
$room_category = $this->db->where('id', $this->req['catid'])->get('1_room_category')->row_array();
// 地图类型
$mapkind = $this->db->where('id', $this->req['did'])->get('linkage_data_3')->row_array();
// 地图
$map = $this->db->where('id', $this->req['tid'])->get('linkage_data_3')->row_array();
//人数
$num = $this->db->where('id', $this->req['rid'])->get('linkage_data_3')->row_array();
$user = dr_member_info($this->uid);
if(array_search(',', $this->req)) {
$err = '请完善表单信息';
} elseif($user['money'] - $room_category['feiyong'] < 0) {
$err = '账户余额不足';
} elseif(!$mapkind && !$map && !$num && !$room_category) {
$err = '房间参数缺失';
} else {
$fjzt = strtotime($this->req['start']) < SYS_TIME ? 0 : 1;
// 创建房间,扣除金额
$this->db->set('money', $user['money'] - $room_category['feiyong'])->where('uid', $this->uid)->update('member');
// 添加房间
$this->db->insert('1_room', array(
'catid' => $room_category['id'],
'uid' => $this->uid,
'author' => $user['username'],
'status' => 9,
'inputtime' => SYS_TIME,
'updatetime' => SYS_TIME,
// 地图类型
'title' => $mapkind['name'],
'did' => $mapkind['id'],
// 地图
'dtmc' => $map['name'],
'tid' => $map['id'],
// 最大人数
'wanjiarenshu' => $num['name'],
'rid' => $num['id'],
// 玩家
'uids' => '',
// 房间状态
'fjzt' => $fjzt,
'thumb' => '',
// 角色
'role' => $this->req['role'],
// 金额
'fangjianjine' => $room_category['feiyong'],
'starttime' => strtotime($this->req['start']),
'endtime' => '',
));
// 加入记录流水
$this->db->insert('member_paylog', array(
'uid' => $this->uid,
'order_number' => SYS_TIME . rand(1000, 9999),
'value' => '-'.$room_category['feiyong'],
'type' => '1',
'status' => 1,
'module' => 1,
'note' => '创建'.$this->db->insert_id().'预组队房间支付'.$room_category['feiyong'].'元',
'inputtime' => SYS_TIME,
));
$this->msg(self::CODE_SUCCESS, '创建成功');
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 房间详情
public function show() {
$this->verify_login();
$room = $this->db->where('id', $this->req['id'])->get('1_room')->row_array();
$uids = $room['uids'] ? explode(',', $room['uid'] . ',' . $room['uids']) : [$room['uid']];
if(!$room) {
$err = '暂无该房间';
} elseif($room['fjzt'] == 3) {
$err = '该房间已关闭';
} else {
if($this->uid == $room['uid']) {
$room['user_status'] = 1;
} elseif(in_array($this->uid, explode(',', $room['uids']))) {
$room['user_status'] = 2;
}
foreach($uids as $key => $item) {
$users[$key]['username'] = dr_member_info($item)['username'];
$users[$key]['avatar'] = dr_member_info($item)['avatar'];
$users[$key]['uid'] = $item;
}
$room['users'] = $users;
$room['starttime'] = date('Y-m-d H:i', $room['starttime']);
// 所在大区
$role = $this->db->where('id', $room['role'])->get('member_role')->row_array();
$room['region'] = $this->db->where('id', $role['region'])->get('linkage_data_6')->row_array()['name'];
$this->msg(self::CODE_SUCCESS, '', $room);
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 加入退出房间
public function operation() {
$this->verify_login();
$room = $this->db->where('id', $this->req['id'])->get('1_room')->row_array();
if(!$room) {
$err = '暂无该房间';
} elseif($room['fjzt'] == 3) {
$err = '该房间已关闭';
} else {
if($this->req['out']) {
// 退出房间操作
if($this->uid == $room['uid']) {
$this->db->set('fjzt', 3)->set('endtime', SYS_TIME)->where('id', $this->req['id'])->update('1_room');
} else {
$uids = array_merge(array_diff(explode(',', $room['uids']), array($this->uid)));
$this->db->set('uids', implode(',', $uids))->where('id', $this->req['id'])->update('1_room');
}
$this->msg(self::CODE_SUCCESS, '操作成功', $room['id']);
} else {
if($room['fjzt'] == 1 || $room['starttime'] < SYS_TIME) {
$err = '该房间已开启';
} elseif(count(array_merge(explode(',', $room['uids']), array($room['uid']))) > $room['wanjiarenshu']) {
$err = '该房间已满';
} elseif($this->member['money'] < $room['fangjianjine']) {
$err = '账户余额不足';
} else {
$this->db->set('money', $this->member['money'] - $room['fangjianjine'])->where('uid', $this->uid)->update('member');
// 记录财务流水
$this->db->insert('member_paylog', array(
'uid' => $this->uid,
'order_number' => SYS_TIME . rand(1000, 9999),
'value' => '-'.$room['fangjianjine'],
'type' => '2',
'status' => 1,
'module' => 1,
'note' => '加入'.$room['id'].'预组队房间支付'.$room['fangjianjine'].'元',
'inputtime' => SYS_TIME,
));
$uids = $room['uids'] ? $room['uids'] .','. $this->uid : $this->uid;
// $sqzdwj = $room['sqzdwj'] ? $room['sqzdwj'] .','. $this->uid : $this->uid;
// $this->db->set('sqzdwj', $sqzdwj)->where('id', $this->req['id'])->update('1_room');
$this->db->set('uids', $uids)->where('id', $this->req['id'])->update('1_room');
$this->msg(self::CODE_SUCCESS, '加入成功');
}
}
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 举报玩家
public function report() {
$this->verify_login();
$room = $this->db->where('id', $this->req['id'])->get('1_room')->row_array();
// 总评论
$result = $this->db->where('uid', $this->uid)->where('cid', $room['id'])->get('1_room_comment_data_0')->result_array();
$uids = $room['uids'] ? explode(',', $room['uids'] . ',' . $room['uid']) : [$room['uid']];
if($result) {
foreach($result as $key => $item) {
$jubaowanjia[] = $item['jubaowanjia'];
}
$uids = array_merge(array_diff($uids, $jubaowanjia));
}
$uids = array_merge(array_diff($uids, array($this->uid)));
if(!$room) {
$err = '暂无该房间';
} else {
if($this->req['uid']) {
// 判断是否评论过该玩家
$row = $this->db->where('cid', $room['id'])
->where('uid', $this->uid)
->where('jubaowanjia', $this->req['uid'])
->get('1_room_comment_data_0')->row_array();
if(!in_array($this->req['uid'], $uids)) {
$err = '该玩家不存在';
} elseif($row) {
$err = '你已评论';
} else {
if($this->req['content'] == 0) {
$content = '未按约定时间进入';
} elseif($this->req['content'] == 1) {
$content = '中途退出';
} elseif($this->req['content'] == 2) {
$content = '其他原因';
}
$this->db->insert('1_room_comment_data_0', array(
'cid' => $room['id'],
'uid' => $this->uid,
'author' => $this->member['username'],
'content' => $content,
'avgsort' => 0,
'reply' => 0,
'inputtime' => SYS_TIME,
'jubaowanjia' => $this->req['uid'],
));
$this->msg(self::CODE_SUCCESS, '提交成功');die();
}
} else {
foreach($uids as $key => $item) {
$users[$key]['username'] = dr_member_info($item)['username'];
$users[$key]['uid'] = $item;
$users[$key]['value'] = $key;
}
$this->msg(self::CODE_SUCCESS, '', $users);
}
}
if(isset($err)) {
$this->msg(self::CODE_ERROR, $err);
}
}
// 结束后分润
public function branch() {
$this->verify_login();
$room = $this->db->where('id', $this->req['id'])->get('1_room')->row_array();
$data = $this->db->select("count('jubaowanjia') as count, jubaowanjia")->group_by('jubaowanjia')->where('cid', $room['id'])->get('1_room_comment_data_0')->result_array();
if($data) {
foreach($data as $key => $item) {
if($intem['count'] >= (int)($room['wanjiarenshu'] / 2)) {
$uids[] = $item['jubaowanjia'];
}
}
$money = $room['wanjiarenshu'] * $room['fangjianjine'] - ($room['wanjiarenshu'] * $room['fangjianjine']) * dr_var("yzdptfl");
$uids = array_diff(explode(',', $room['uids']), $uids);
foreach($uids as $key => $item) {
$this->db->set('money', 'money' + number_format($money / count($uids), 2), 'false')->where('uid', $item)->update('member');
$this->db->insert('member_paylog', array(
'uid' => $item,
'order_number' => SYS_TIME . rand(1000, 9999),
'value' => number_format($money / count($uids), 2),
'type' => '1',
'status' => 1,
'note' => '预组队'.$room['id'].'结束,获得'.number_format($money / count($uids), 2).'元',
'module' => '',
'inputtime' => SYS_TIME
));
}
}
}
}