This commit is contained in:
2025-11-22 15:31:01 +08:00
parent 9f25a85d07
commit b52a51c09b
37 changed files with 2587 additions and 240 deletions
@@ -98,7 +98,7 @@ class AccountController extends Crud
// return $this->fail('账户不存在或密码错误');
// }
//$secret = $admin['totp_secret'] ?:'EJGYB7OZR2W46XRX7VB3PXHSOY4LUAWCA5GTDAVTWKHXNDAAAIIP7AQ3JSO3XZJNX5J5OTIDEQVKLYFYIYNAXSCYF4GNZ2EMA4ORA3Y';
\support\Log::alert($admin['totp_secret']);
//\support\Log::alert($admin['totp_secret']);
$totp = \OTPHP\TOTP::create($admin->totp_secret);
//$secret = $totp->getSecret();
//$totp->setLabel('cansnow');
@@ -143,9 +143,9 @@ class ConfigController extends Base
$post = $request->post('row');
Db::startTrans();
try {
if($post['type'] == 'selects'){
$post['value'] = implode(',',$post['value']);
}
// if($post['type'] == 'selects'){
// $post['value'] = implode(',',$post['value']);
// }
$user = ConfigModel::create($post);
Db::commit();
$this->buildcache();
@@ -165,7 +165,7 @@ class ConfigController extends Base
$v['value'] = json_decode($v['value'], true);
}
if(in_array($v['type'] ,['selects']) && !is_array($v['value'])){
$v['value'] = explode(',',$v['value']);
$v['value'] = explode(',',$v['value']??'');
}
$list[$v['name']] = $v['value'];
}
@@ -70,7 +70,7 @@ class IndexController extends Base
//$day7_user_recharge_sum = Recharge::where('status',2)->whereTime('created_at', '-7 days')->sum('amount');
// 总用户数
$user_count = \app\model\User::where('status',1)->count('id');
$recharge_total = \app\model\Recharge::where('status',\app\enum\RechargeStatus::COMPLETE->value)->sum('amount');
$recharge_total = 0;//\app\model\Recharge::where('status',\app\enum\RechargeStatus::COMPLETE->value)->sum('amount');
// mysql版本
$withdrawl_total = \app\model\Withdrawl::where('status',\app\enum\WithdrawlStatus::COMPLETE->value)->sum('recive_amount');
// mysql版本
@@ -0,0 +1,110 @@
<?php
namespace plugin\admin\app\controller;
use plugin\admin\app\controller\Base;
use plugin\admin\app\controller\Crud;
use plugin\admin\app\model\User as UserModel;
use support\exception\BusinessException;
use support\Request;
use support\Response;
use Throwable;
/**
* OpenIM管理
*/
class OpenimController extends Crud
{
/**
* @var UserModel
*/
protected $model = null;
/**
* 构造函数
* @return void
*/
function __construct()
{
$this->model = new UserModel();
$groupList = [
['value'=>0,'label'=>"普通用户"],
['value'=>1,'label'=>"内部用户"],
['value'=>2,'label'=>"联盟商"],
];
$roleList = \app\model\UserRole::order('id','desc')->column('name as label,id as value');
$this->assign('groupList',$groupList);
$this->assignconfig('groupList',$groupList);
$this->assign('roleList',$roleList);
$this->assignconfig('roleList',$roleList);
}
public function team(Request $request): Response
{
return view();
}
// public function select(Request $request): Response
// {
// $this->model = $this->model->with(['referrer','role']);
// return parent::select($request);
// }
/**
* 浏览
* @return Response
* @throws Throwable
*/
public function index(Request $request): Response
{
return view('user/index');
}
public function select(Request $request): Response{
$res = $request->IM->user->getUsers(1,20);
//cp($request->IM->user->getAllUsersUid());
if($res['errCode']!==0){
return $this->fail($res['errDlt']);
}
return json([
'code' => 0,
"msg" => "ok",
'count' => $res['data']['total'],
'data' =>$res['data']['users'],
]);
}
/**
* 插入
* @param Request $request
* @return Response
* @throws BusinessException|Throwable
*/
public function insert(Request $request): Response
{
if ($request->method() === 'POST') {
return parent::insert($request);
}
return view('user/update',[
'row' => UserModel::findOrEmpty(0)
]);
}
/**
* 更新
* @param Request $request
* @return Response
* @throws BusinessException|Throwable
*/
public function update(Request $request): Response
{
if ($request->method() === 'POST') {
[$id, $data] = $this->updateInput($request);
$this->doUpdate($id, $data);
$ret = $this->success('操作成功');
return $ret;
}
$ids = Request()->get('ids');
$user = $this->model->where('id',$ids)->find();
return view('user/update',[
'row' => $user
]);
}
}
@@ -68,6 +68,7 @@ class UserController extends Crud
{
if ($request->method() === 'POST') {
return parent::insert($request);
}
return view('user/update',[
'row' => UserModel::findOrEmpty(0)
+2 -19
View File
@@ -39,25 +39,8 @@ class AccessControl implements MiddlewareInterface
$response = view('common/403')->withStatus(403);
}
}
} else {
$config = Config('site');
$config['debug'] = config('app.debug');
$config['controller'] = $request->controller_name;
$config['action'] = $request->action_name;
$config['moduleurl'] = '/app/admin';
$request->_view_vars = array_merge((array) $request->_view_vars,[
'user' => session('admin'),
'config' => $config
]);
$response = $request->method() == 'OPTIONS' ? response('') : $handler($request);
$response->withBody(str_replace([
'__SELF__'
],[
request()->path()
//url(request()->action)
],$response->rawBody()))->getStatusCode();
return $response;
}
return $response;
return $handler($request);
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
namespace plugin\admin\app\middleware;
use plugin\admin\api\Auth;
use ReflectionException;
use support\exception\BusinessException;
use Webman\Http\Request;
use Webman\Http\Response;
use Webman\MiddlewareInterface;
class Config implements MiddlewareInterface
{
/**
* @param Request $request
* @param callable $handler
* @return Response
* @throws ReflectionException|BusinessException
*/
public function process(Request $request, callable $handler): Response
{
$request->controller_name = get_controller_name();
$request->action_name = get_action_name();
$config = Config('site');
$config['debug'] = config('app.debug');
$config['controller'] = $request->controller_name;
$config['action'] = $request->action_name;
$config['moduleurl'] = '/app/admin';
$request->_view_vars = array_merge((array) $request->_view_vars,[
'user' => session('admin'),
'config' => $config
]);
$IM = new \support\OpenImSdk\Client([
'host' => 'http://127.0.0.1:10002', // OpenIM API地址
'secret' => 'openIM123', // OpenIM密钥
]);
$request->IM = $IM;
return $handler($request);
}
}
+34
View File
@@ -0,0 +1,34 @@
<?php
namespace plugin\admin\app\middleware;
use plugin\admin\api\Auth;
use ReflectionException;
use support\exception\BusinessException;
use Webman\Http\Request;
use Webman\Http\Response;
use Webman\MiddlewareInterface;
class Tpl implements MiddlewareInterface
{
/**
* @param Request $request
* @param callable $handler
* @return Response
* @throws ReflectionException|BusinessException
*/
public function process(Request $request, callable $handler): Response
{
$response = $request->method() == 'OPTIONS' ? response('') : $handler($request);
$response->withBody(str_replace([
'__SELF__',
'__2__'
],[
request()->path(),
'-'
//url(request()->action)
],$response->rawBody()))->getStatusCode();
return $response;
}
}
+1 -13
View File
@@ -30,6 +30,7 @@ class User extends \app\model\User
{
public static function onAfterUpdate($row){
parent::onAfterUpdate($row);
$changeData = $row->getChangedData();
$orgData = $row->getOrigin();
foreach(Config('site.allow_currencys') as $currency){
@@ -41,17 +42,4 @@ class User extends \app\model\User
}
}
}
public static function onAfterDelete($row)
{
Db::name('address')->where('user_id',$row->id)->delete();
Db::name('recharge')->where('user_id',$row->id)->delete();
Db::name('record')->where('user_id',$row->id)->delete();
Db::name('withdrawl')->where('user_id',$row->id)->delete();
Db::name('user_extend')->where('user_id',$row->id)->delete();
Db::name('user_team')->where('descendant_id|ancestor_id','=',$row->id)->delete();
Db::name('withdrawl')->where('user_id',$row->id)->delete();
(new \app\model\BalanceLog)->setSuffix('_money')->where('user_id',(int)$row->id)->delete();
(new \app\model\BalanceLog)->setSuffix('_score')->where('user_id',(int)$row->id)->delete();
(new \app\model\BalanceLog)->setSuffix('_currency1')->where('user_id',(int)$row->id)->delete();
}
}
@@ -97,11 +97,6 @@
?>
</td>
</tr>
<tr>
<td></td>
<td>
</td>
</tr>
<tr>
<td>用户余额总和</td>
<td>{$user_money_total}</td>