redirect('Index/index'); } protected function _initialize(){ $config = api('Config/lists'); C($config); if(!C('WEB_SITE_CLOSE')){ $this->error('站点已经关闭,请稍后访问~'); } if(!C('WAP_DISPLAY_STATUS')) { $this->display('Public/404');exit; } if(ACTION_NAME !='search_list') {session('search_referer',null);} } public function __construct() { parent::__construct(); if(!C('WAP_DISPLAY_STATUS')) { $this->display('Public/404');exit; } define('DISPLAY_SITE',2); /* 游戏中显示站点,即此游戏是否在此站显示 */ $member = new SuserApi; $logininfo = $member->login_info(); define('UID',$logininfo['user_id']); $user = D('User')->where(array('id'=>$logininfo['user_id']))->field("promote_id")->find(); if($user && $user['promote_id'] > 0 ){ define('PROMOTE_ID',1); }elseif($user){ define('PROMOTE_ID',0); }else{ define('PROMOTE_ID',-2); } } public function islogin() { $member = new SuserApi; return $member->is_login(); } /* 退出登录 */ public function logout() { $member = new SuserApi; if($member->logout()>0) { $this->ajaxReturn(array('status' => 1, 'msg' => '退出成功!')); } else { $this->ajaxReturn(array('status' => 0, 'msg' => '已退出!')); } } public function lists($model = null, $p = 0,$extend = array(),$flag = false) { $model || $this->error('模型名标识必须!'); $page = intval($p); $page = $page ? $page : 1; //默认显示第一页数据 //获取模型信息 $model = M('Model')->getByName($model); $model || $this->error('模型不存在!'); $prefix = $model['prefix']?$model['prefix']:C("DB_PREFIX"); $dbFields = M($model['name'],$prefix)->getDbFields(); $fields = !empty($extend) && !empty($extend['fields']) ?$extend['fields']:array(); if ($fields) { foreach ($fields as $k => $v) { if (!array_search($v,$dbFields)) { unset($fields[$k]); } } $fields = array_unique(array_merge($fields,$dbFields)); } else { $fields = $dbFields; } // 条件搜索 $map = !empty($extend) && !empty($extend['map']) ?$extend['map']:array(); unset($_REQUEST['name']); foreach($_REQUEST as $name=>$val){ if(in_array($name,$fields)){ $map[$name] = array('like', '%'.$val.'%'); } } $row = !empty($extend) && !empty($extend['num']) ? $extend['num']:10; $name = parse_name(get_table_name($model['id']), true); $entity = M($name,$prefix); $data = $entity ->field(empty($fields) ? true : $fields) ->where($map) ->order(empty($extend['order'])?"id desc":$extend['order']) ->page($page, $row) ->select(); if ($flag) { $count = $entity->where($map)->count(); $total = intval(ceil($count/$row)); $this->assign('total',$total); } $this->assign('model', $model); return $data; } /** *验证签名 */ public function validation_sign($encrypt = "", $md5_sign = "") { $signString = $this->arrSort($encrypt); $md5Str = $this->encrypt_md5($signString, $key = ""); if ($md5Str === $md5_sign) { return true; } else { return false; } } protected function join_data($model){ $game = M($model['m_name'],$model['prefix']); $map = $model['map']; $data = $game ->field($model['field']) ->join($model['join']) ->limit($model['limit']) ->where($map)->group($model['group'])->order($model['order'])->select(); return $data; } /** *对数据进行排序 */ private function arrSort($para) { ksort($para); reset($para); return $para; } /** *MD5验签加密 */ protected function encrypt_md5($param = "", $key = "") { #对数组进行排序拼接 if (is_array($param)) { $md5Str = implode($this->arrSort($param)); } else { $md5Str = $param; } $md5 = md5($md5Str . $key); return '' === $param ? 'false' : $md5; } /** *消费记录表 参数 */ private function spend_param($param = array()) { $user_entity = get_user_entity($param['user_id']); $data_spned['user_id'] = $param["user_id"]; $data_spned['user_account'] = $user_entity["account"]; $data_spned['user_nickname'] = $user_entity["nickname"]; $data_spned['game_id'] = $param["game_id"]; $data_spned['game_appid'] = $param["game_appid"]; $data_spned['game_name'] = $param["game_name"]; $data_spned['server_id'] = 0; $data_spned['server_name'] = ""; $data_spned['promote_id'] = $user_entity["promote_id"]; $data_spned['promote_account'] = $user_entity["promote_account"]; $data_spned['order_number'] = $param["order_number"]; $data_spned['pay_order_number'] = $param["pay_order_number"]; $data_spned['props_name'] = $param["title"]; $data_spned['pay_amount'] = $param["real_pay_amount"]; $data_spned['pay_time'] = NOW_TIME; $data_spned['pay_status'] = $param["pay_status"]; $data_spned['pay_game_status'] = 0; $data_spned['pay_way'] = $param["pay_way"]; $data_spned['spend_ip'] = $param["spend_ip"]; return $data_spned; } /** *平台币充值记录表 参数 */ private function deposit_param($param = array()) { $user_entity = get_user_entity($param['user_id']); $data_deposit['order_number'] = $param["order_number"]; $data_deposit['pay_order_number'] = $param["pay_order_number"]; $data_deposit['user_id'] = $param["user_id"]; $data_deposit['user_account'] = $user_entity["account"]; $data_deposit['user_nickname'] = $user_entity["nickname"]; $data_deposit['promote_id'] = $param["promote_id"]; $data_deposit['promote_account'] = get_promote_name($param['promote_id']); $data_deposit['pay_amount'] = $param["pay_amount"]; $data_deposit['reality_amount'] = $param["real_pay_amount"]; $data_deposit['pay_status'] = 0; $data_deposit['pay_source'] = 2; $data_deposit['pay_way'] = $param["pay_way"]; $data_deposit['pay_ip'] = $param["spend_ip"]; $data_deposit['create_time'] = NOW_TIME; return $data_deposit; } /** *绑定平台币消费 */ private function bind_spend_param($param = array()) { $user_entity = get_user_entity($param['user_id']); $data_bind_spned['user_id'] = $param["user_id"]; $data_bind_spned['user_account'] = $user_entity["account"]; $data_bind_spned['user_nickname'] = $user_entity["nickname"]; $data_bind_spned['game_id'] = $param["game_id"]; $data_bind_spned['game_appid'] = $param["game_appid"]; $data_bind_spned['game_name'] = $param["game_name"]; $data_bind_spned['server_id'] = 0; $data_bind_spned['server_name'] = ""; $data_bind_spned['promote_id'] = $user_entity["promote_id"]; $data_bind_spned['promote_account'] = $user_entity["promote_account"]; $data_bind_spned['order_number'] = $param["order_number"]; $data_bind_spned['pay_order_number'] = $param["pay_order_number"]; $data_bind_spned['props_name'] = $param["title"]; $data_bind_spned['pay_amount'] = $param["price"]; $data_bind_spned['pay_time'] = NOW_TIME; $data_bind_spned['pay_status'] = $param["pay_status"]; $data_bind_spned['pay_game_status'] = 0; $data_bind_spned['pay_way'] = 1; $data_bind_spned['spend_ip'] = $param["spend_ip"]; return $data_bind_spned; } /** * 添加购买订单 */ protected function add_order($data) { $user = get_user_entity($data['user_id']); $order=M('order','tab_'); $da = $order->where(['merchandise_id'=>$data['id'],'buyer_id'=>$data['user_id']])->find(); if(is_array($da)) { if($da['pay_status']==1) {return false;} $data['pay_order_number'] = $da['order_number']; return $da['id']; } $order_data['order_number']=$data['pay_order_number']; $order_data['buyer_id']=$data['user_id']; $order_data['buyer_account']=$user['account']; $order_data['seller_id']=$data['seller_id']; $order_data['seller_account']=$data['seller_account']; $order_data['order_small_id']=$data['small_id']; $order_data['order_small_account']=$data['small_account']; $order_data['merchandise_id']=$data['id']; $order_data['order_price']=$data['real_pay_amount']; $order_data['poundage']=$data['poundage']; $order_data['real_money']=$data['real']; $order_data['pay_way'] = $data['pay_way']; $order_data['order_time'] = NOW_TIME; $order_data['pay_status'] = 0; $order_data['game_id'] = $data['game_id']; $result = $order->add($order_data); return $result; } /** *消费表添加数据 */ protected function add_spend($data) { $spend_data = $this->spend_param($data); $spend = M("spend", "tab_")->add($spend_data); return $spend; } /* *平台币充值记录 */ protected function add_deposit($data) { $deposit_data = $this->deposit_param($data); $deposit = M("deposit", "tab_")->add($deposit_data); return $deposit; } /* *绑定平台币消费记录 */ protected function add_bind_spned($data) { $data_bind_spned = $this->bind_spend_param($data); $bind_spned = M("BindSpend", "tab_")->add($data_bind_spned); return $bind_spned; } /** * 增加绑币充值记录 * @param $param * author: xmy 280564871@qq.com */ protected function add_bind_recharge($param){ $user = get_user_entity($param['user_id']); $data['order_number'] = ""; $data['pay_order_number'] = $param['pay_order_number']; $data['game_id'] = $param['game_id']; $data['game_appid'] = $param['game_appid']; $data['game_name'] = $param['game_name']; $data['promote_id'] = $param['promote_id']; $data['promote_account'] = $user['promote_account']; $data['user_id'] = $param['user_id']; $data['user_account'] = $user['account']; $data['user_nickname'] = $user['nickname']; $data['pay_type'] = $param['pay_type']; $data['amount'] = $param['pay_amount']; $data['real_amount'] = $param['real_pay_amount']; $data['pay_status'] = 0; $data['pay_way'] = $param['pay_way']; $data['create_time'] = time(); $data['zhekou'] = $param['discount']; $data['recharge_ip'] = get_client_ip(); return M("bind_recharge","tab_")->add($data); } protected function respondSuccess($message = '成功', $code = '0000') { $this->respond($message, $code); } protected function respondError($message = '失败', $code = '1000') { $this->respond($message, $code); } protected function respond($message, $code) { $this->ajaxReturn(['code' => $code, 'msg' => $message, 'data' => (new \ArrayObject($this->_data))]); } protected function setData(array $data) { $this->_data = $data; return $this; } }