You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

408 lines
12 KiB
PHTML

5 years ago
<?php
namespace Mobile\Controller;
use Think\Controller;
use User\Api\SuserApi;
/**
* 首页
*/
class BaseController extends Controller {
5 years ago
protected $_data = [];
5 years ago
public function _empty(){
$this->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() {
5 years ago
$member = new SuserApi;
if($member->logout()>0) {
$this->ajaxReturn(array('status' => 1, 'msg' => '退出成功!'));
} else {
$this->ajaxReturn(array('status' => 0, 'msg' => '已退出!'));
}
5 years ago
}
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);
}
5 years ago
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;
}
5 years ago
}