Преглед изворни кода

1. 角色信息查询
2. 账号信息查询

ith5 пре 6 месеци
родитељ
комит
7b4e36f71d

+ 26 - 2
app/v1/controller/CommonController.php

@@ -2,6 +2,7 @@
 namespace app\v1\controller;
 
 use app\v1\logic\advert\AgentListLogic;
+use app\v1\logic\advert\AgentSiteLogic;
 use app\v1\logic\advert\MediaListLogic;
 use app\v1\logic\center\GameLogic;
 use plugin\saiadmin\basic\BaseController;
@@ -22,6 +23,7 @@ class CommonController extends BaseController
     protected $agentListLogic;
     protected $systemUserLogic;
     protected $gamePackageLogic;
+    protected $agentSiteLogic;
 
     /**
      * 构造函数
@@ -35,6 +37,7 @@ class CommonController extends BaseController
         $this->agentListLogic = new AgentListLogic();
         $this->systemUserLogic = new SystemUserLogic();
         $this->gamePackageLogic = new GamePackageLogic();
+        $this->agentSiteLogic = new AgentSiteLogic();
     }
     
     /**
@@ -48,7 +51,7 @@ class CommonController extends BaseController
     }
 
     /**
-     * 获取子游戏options列表
+     * 获取子游戏options列表(有权限)
      * @return Response
      */
     public function getGameOptions(Request $request): Response
@@ -60,7 +63,18 @@ class CommonController extends BaseController
     }
 
     /**
-     * 获取树形游戏options列表
+     * 获取子游戏options列表(无权限)
+     * @return Response
+     */
+    public function getGameOptionsNoAuth(Request $request): Response
+    {
+        $where = $request->get();
+        $data = $this->gameLogic->getGameOptionsNoAuth($where);
+        return $this->success($data);
+    }
+
+    /**
+     * 获取树形游戏options列表(有权限)
      * @return Response
      */
     public function getTreeGameOptions(Request $request): Response
@@ -69,6 +83,7 @@ class CommonController extends BaseController
         $data = $this->gameLogic->getGameListByPermission($where);
         return $this->success($data);
     }
+    
 
 
     /**
@@ -109,4 +124,13 @@ class CommonController extends BaseController
         $data = $this->gamePackageLogic->getPackageOptions();
         return $this->success($data);
     }
+
+    /**
+     * 获取广告位options
+     */
+    public function getAgentSiteOptions(Request $request): Response
+    {
+        $data = $this->agentSiteLogic->getAgentSiteOptions();
+        return $this->success($data);
+    }
 }

+ 77 - 0
app/v1/controller/customer/AccountController.php

@@ -0,0 +1,77 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\controller\customer;
+
+use plugin\saiadmin\basic\BaseController;
+use app\v1\logic\customer\AccountLogic;
+use app\v1\validate\customer\AccountValidate;
+use support\Request;
+use support\Response;
+
+/**
+ * 账号信息控制器
+ */
+class AccountController extends BaseController
+{
+    /**
+     * 构造函数
+     */
+    public function __construct()
+    {
+        $this->logic = new AccountLogic();
+        $this->validate = new AccountValidate;
+        parent::__construct();
+    }
+
+    /**
+     * 数据列表
+     * @param Request $request
+     * @return Response
+     */
+    public function index(Request $request): Response
+    {
+        $where = $request->more([
+            ['val', ''],
+            ['type', '']
+        ]);
+        // $query = $this->logic->search($where);
+        // $data = $this->logic->getList($query);
+        $data = $this->logic->list($where);
+        return $this->success($data);
+    }
+
+    /**
+     * 修改密码
+     */
+    public function updatePwd(Request $request): Response
+    {
+        $data = $request->post();
+       
+        $data = $this->logic->updatePwd($data);
+        return $this->success();
+    }
+
+    /**
+     * 修改手机
+     */
+    public function updateMobile(Request $request): Response
+    {
+        $data = $request->post();
+        $data = $this->logic->updateMobile($data);
+        return $this->success();
+    }
+
+    /**
+     * 修改真实名
+     */
+    public function updateReal(Request $request): Response
+    {
+        $data = $request->post();
+        $data = $this->logic->updateReal($data);
+        return $this->success();
+    }
+}

+ 64 - 0
app/v1/controller/customer/RoleDataController.php

@@ -0,0 +1,64 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\controller\customer;
+
+use plugin\saiadmin\basic\BaseController;
+use app\v1\logic\customer\RoleDataLogic;
+use app\v1\validate\customer\RoleDataValidate;
+use support\Request;
+use support\Response;
+
+/**
+ * 角色查询控制器
+ */
+class RoleDataController extends BaseController
+{
+    /**
+     * 构造函数
+     */
+    public function __construct()
+    {
+        $this->logic = new RoleDataLogic();
+        $this->validate = new RoleDataValidate;
+        parent::__construct();
+    }
+
+    /**
+     * 数据列表
+     * @param Request $request
+     * @return Response
+     */
+    public function index(Request $request): Response
+    {
+        $where = $request->more([
+            ['game_id', ''],
+            ['user_name', ''],
+            ['uid', ''],
+            ['role_id', ''],
+            ['role_name', ''],
+        ]);
+        if (empty($where['user_name']) && empty($where['uid']) && empty($where['role_id']) && empty($where['role_name'])) {
+            return $this->fail('请填写用户信息或者角色信息');
+        }
+        $query = $this->logic->search($where);
+        // $data = $this->logic->getList($query);
+        $data = $this->logic->getRoleList($query);
+        return $this->success($data);
+    }
+
+    /**
+     * 更新
+     * @param Request $request
+     * @return Response
+     */
+    public function update(Request $request, $id): Response
+    {
+      
+        $data = $this->logic->update($id, $request->post());
+        return $this->success($data);
+    }
+}

+ 9 - 0
app/v1/logic/advert/AgentSiteLogic.php

@@ -24,4 +24,13 @@ class AgentSiteLogic extends BaseLogic
         $this->model = new AgentSite();
     }
 
+    /**
+     * 获取广告位options
+     */
+    public function getAgentSiteOptions()
+    {
+        $data = $this->model->select()->toArray();
+        return $data;
+    }
+
 }

+ 12 - 1
app/v1/logic/center/GameLogic.php

@@ -54,7 +54,7 @@ class GameLogic extends BaseLogic
     }
 
     /**
-     * 获取游戏options列表
+     * 获取游戏options列表(有权限)
      * @return array
      */
     public function getGameOptions($where)
@@ -68,6 +68,17 @@ class GameLogic extends BaseLogic
         $list = $query->select()->toArray();
         return $list;
     }
+
+    /**
+     * 获取游戏options列表(无权限)
+     * @return array
+     */
+    public function getGameOptionsNoAuth($where)
+    {
+        $query = $this->search($where);
+        $list = $query->select()->toArray();
+        return $list;
+    }
     
     /**
      * 获取所有的游戏数据

+ 105 - 0
app/v1/logic/customer/AccountLogic.php

@@ -0,0 +1,105 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\logic\customer;
+
+use plugin\saiadmin\basic\BaseLogic;
+use plugin\saiadmin\exception\ApiException;
+use plugin\saiadmin\utils\Helper;
+use app\v1\model\customer\Account;
+use support\think\Db;
+
+/**
+ * 账号信息逻辑层
+ */
+class AccountLogic extends BaseLogic
+{
+    /**
+     * 构造函数
+     */
+    public function __construct()
+    {
+        $this->model = new Account();
+    }
+
+     /**
+     * 获取IP地理位置
+     */
+    public function getIpLocation($ip): string
+    {
+        $ip2region = new \Ip2Region();
+        try {
+            $region = $ip2region->memorySearch($ip);
+        } catch (\Exception $e) {
+            return '未知';
+        }
+        list($country, $number, $province, $city, $network) = explode('|', $region['region']);
+        if ($network === '内网IP') {
+            return $network;
+        }
+        if ($country == '中国') {
+            return $province.'-'.$city.':'.$network;
+        } else if ($country == '0') {
+            return '未知';
+        } else {
+            return $country;
+        }
+    }
+    
+    /**
+     * 列表
+     */
+    public function list($query)
+    {
+        if($query['type'] == '1'){
+            $uid = Db::connect('db_origin')->table('users')->where('user_name', $query['val'])->value('uid');
+            $data = Db::connect('db_origin')->table('user_'.$uid%10)->where('uid', $uid)->select()->toArray();
+        }else{
+            $data = Db::connect('db_origin')->table('user_'.$query['val']%10)->where('uid', $query['val'])->select()->toArray();
+        }
+
+        print_r($data);
+        $data = array_map(function($item){
+            $item['login_ip'] = $item['login_ip'].$this->getIpLocation($item['login_ip']);
+            $item['reg_ip'] = $item['reg_ip'].$this->getIpLocation($item['reg_ip']);
+            $item['reg_time'] = date('Y-m-d H:i:s', $item['reg_time']);
+            $item['login_time'] = date('Y-m-d H:i:s', $item['login_time']);
+            unset($item['user_pwd']);
+            return $item;
+        }, $data);
+
+        return $data;
+    }
+
+    /**
+     * 修改密码
+     */
+    public function updatePwd($data)
+    {
+        $user_pwd = password_hash($data['user_pwd'], PASSWORD_DEFAULT);
+        print_r($data);
+        $result = Db::connect('db_origin')->table('user_'.$data['uid']%10)->where('uid', $data['uid'])->update(['user_pwd' => $user_pwd]);
+        return $result;
+    }
+
+    /**
+     * 修改手机
+     */
+    public function updateMobile($data)
+    {
+        $result = Db::connect('db_origin')->table('user_'.$data['uid']%10)->where('uid', $data['uid'])->update(['mobile' => $data['mobile']]);
+        return $result;
+    }
+
+    /**
+     * 修改真实名
+     */
+    public function updateReal($data)
+    {
+        $result = Db::connect('db_origin')->table('user_'.$data['uid']%10)->where('uid', $data['uid'])->update(['real_name' => $data['real_name'], 'id_card' => $data['id_card']]);
+        return $result;
+    }
+}

+ 98 - 0
app/v1/logic/customer/RoleDataLogic.php

@@ -0,0 +1,98 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\logic\customer;
+
+use plugin\saiadmin\basic\BaseLogic;
+use plugin\saiadmin\exception\ApiException;
+use plugin\saiadmin\utils\Helper;
+use app\v1\model\customer\RoleData;
+use support\think\Db;
+
+/**
+ * 角色查询逻辑层
+ */
+class RoleDataLogic extends BaseLogic
+{
+    /**
+     * 构造函数
+     */
+    public function __construct()
+    {
+        $this->model = new RoleData();
+    }
+
+    /**
+     * 获取角色查询列表
+     */
+    public function getRoleList($query)
+    {
+        // 获取android数据
+        $table_and = Db::connect('db_game_log')->table('role_data_and')->field('* , "android" as platform')->where($query)->select()->toArray();
+        // 获取ios数据
+        $table_ios = Db::connect('db_game_log')->table('role_data_ios')->field('* , "ios" as platform')->where($query)->select()->toArray();
+
+        // 合并两个表的数据
+        $data = array_merge($table_and, $table_ios);
+
+        // 1. 根据game_id 查找 main_id
+        $game_ids = array_unique(array_column($data, 'game_id'));
+        $main_id_arr = Db::connect('db_center')->table('pf_game')->whereIn('id', $game_ids)->column('main_id','id');
+
+
+        $data = array_map(function($item) use ($main_id_arr){
+           // 最后登录时间
+           $item['login_time'] = Db::connect('db_origin')->table('agent_reg_'.$item['uid']%10)->where('main_id', $main_id_arr[$item['game_id']])->where('uid', $item['uid'])->value('login_time');
+           $item['login_time'] = date('Y-m-d H:i:s', $item['login_time']);
+           // 支付记录
+           $pay_data = Db::connect('db_game_log')->table('sdk_order_success')->where('game_id', $item['game_id'])->where('uid', $item['uid'])->where('role_id', $item['role_id'])->order('pay_date', 'desc');
+           // 最新的一条支付记录时间
+           $item['last_recharge_time'] =  $pay_data->value('pay_date');
+           // 累计充值
+           $item['total_recharge'] = $pay_data->sum('money');
+
+           return $item;
+        }, $data);
+
+
+
+
+
+
+
+
+
+
+        $data = $this->trandformListColumn($data,['game','media','site', 'agent']);
+
+        return $data;
+
+    }
+
+    /**
+     * 更新
+     */
+    public function update($id, $data)
+    {
+        $platform = $data['platform'];
+        $table = $platform === 'android' ? 'role_data_and' : 'role_data_ios';
+        
+        // 移除platform字段,避免更新到数据库
+        unset($data['platform']);
+        
+        // 直接使用Db更新指定表的数据
+        $result = Db::connect('db_game_log')
+            ->table($table)
+            ->where('id', $id)
+            ->update($data);
+            
+        if ($result === false) {
+            throw new ApiException('更新失败');
+        }
+        
+        return $result;
+    }
+}

+ 50 - 0
app/v1/model/customer/Account.php

@@ -0,0 +1,50 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\model\customer;
+
+use plugin\saiadmin\basic\BaseNormalModel;
+
+/**
+ * 账号信息模型
+ */
+class Account extends BaseNormalModel
+{
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 数据库表名称
+     * @var string
+     */
+    protected $table = 'user_0';
+
+    /**
+     * 数据库连接
+     * @var string
+     */
+    protected $connection = 'db_origin';
+
+    /**
+     * 用户名 搜索
+     */
+    public function searchUserNameAttr($query, $value)
+    {
+        $query->where('user_name', 'like', '%'.$value.'%');
+    }
+
+    /**
+     * 用户真实名 搜索
+     */
+    public function searchRealNameAttr($query, $value)
+    {
+        $query->where('real_name', 'like', '%'.$value.'%');
+    }
+
+}

+ 61 - 0
app/v1/model/customer/RoleData.php

@@ -0,0 +1,61 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\model\customer;
+
+use plugin\saiadmin\basic\BaseNormalModel;
+
+/**
+ * 角色查询模型
+ */
+class RoleData extends BaseNormalModel
+{
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 数据库表名称
+     * @var string
+     */
+    protected $table = 'role_data_and';
+
+    /**
+     * 数据库连接
+     * @var string
+     */
+    protected $connection = 'db_game_log';
+
+    /**
+     * 用户名 搜索
+     */
+    public function searchUserNameAttr($query, $value)
+    {
+        $query->where('user_name', 'like', '%'.$value.'%');
+    }
+
+    /**
+     * 角色名 搜索
+     */
+    public function searchRoleNameAttr($query, $value)
+    {
+        $query->where('role_name', 'like', '%'.$value.'%');
+    }
+
+     /**
+     * 游戏ID搜索器
+     */
+    public function searchGameIdAttr($query, $value)
+    {
+        if (is_array($value)) {
+            $query->whereIn('game_id', $value);
+        } else {
+            $query->where('game_id', $value);
+        }
+    }
+}

+ 42 - 0
app/v1/validate/customer/AccountValidate.php

@@ -0,0 +1,42 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\validate\customer;
+
+use think\Validate;
+
+/**
+ * 账号信息验证器
+ */
+class AccountValidate extends Validate
+{
+    /**
+     * 定义验证规则
+     */
+    protected $rule =   [
+     
+    ];
+
+    /**
+     * 定义错误信息
+     */
+    protected $message  =   [
+        'uid' => '用户UID必须填写',
+    ];
+
+    /**
+     * 定义场景
+     */
+    protected $scene = [
+        'save' => [
+            'uid',
+        ],
+        'update' => [
+            'uid',
+        ],
+    ];
+
+}

+ 54 - 0
app/v1/validate/customer/RoleDataValidate.php

@@ -0,0 +1,54 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\validate\customer;
+
+use think\Validate;
+
+/**
+ * 角色查询验证器
+ */
+class RoleDataValidate extends Validate
+{
+    /**
+     * 定义验证规则
+     */
+    protected $rule =   [
+        'site_id' => 'require',
+        'server_name' => 'require',
+        'user_name' => 'require',
+        'role_name' => 'require',
+    ];
+
+    /**
+     * 定义错误信息
+     */
+    protected $message  =   [
+        'site_id' => '广告位ID必须填写',
+        'server_name' => '玩家所在服务器的名称必须填写',
+        'user_name' => '用户名必须填写',
+        'role_name' => '角色名必须填写',
+    ];
+
+    /**
+     * 定义场景
+     */
+    protected $scene = [
+        'save' => [
+            'site_id',
+            'server_name',
+            'user_name',
+            'role_name',
+        ],
+        'update' => [
+            'site_id',
+            'server_name',
+            'user_name',
+            'role_name',
+        ]
+    ];
+
+}