This commit is contained in:
2025-11-21 01:42:54 +08:00
parent ff026c6f32
commit f89196c73c
1953 changed files with 9 additions and 15246 deletions
+33
View File
@@ -0,0 +1,33 @@
<?php
namespace plugin\admin\app\model;
use app\model\Base;
/**
* @property integer $id ID(主键)
* @property string $username 用户名
* @property string $nickname 昵称
* @property string $password 密码
* @property string $avatar 头像
* @property string $email 邮箱
* @property string $mobile 手机
* @property string $totp_secret totp_secret
* @property string $created_at 创建时间
* @property string $updated_at 更新时间
* @property string $login_at 登录时间
* @property string $roles 角色
* @property integer $status 状态 0正常 1禁用
*/
class Admin extends Base
{
public static function onAfterWrite($row)
{
if(!$row->totp_secret){
$totp = \OTPHP\TOTP::create();
$row->totp_secret = $totp->getSecret();
$row->save();
}
}
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace plugin\admin\app\model;
use app\model\Base;
/**
* @property integer $id ID(主键)
* @property string $admin_id 管理员id
* @property string $role_id 角色id
*/
class AdminAccess extends Base
{
protected function getOptions(): array{
return array_merge(parent::getOptions(),[
'autoWriteTimestamp' => false,
]);
}
}
+32
View File
@@ -0,0 +1,32 @@
<?php
namespace plugin\admin\app\model;
use app\model\Base;
/**
* @property integer $id 主键(主键)
* @property string $name 角色名
* @property string $rules 权限
* @property string $created_at 创建时间
* @property string $updated_at 更新时间
* @property integer $pid 上级id
*/
class AdminRole extends Base
{
public function setRulesAttr($v='',$row=[])
{
if(is_array($v)){
return implode(',',$v);
}
return $v;
}
/**
* @return mixed
*/
public function getRuleIds()
{
return $this->rules ? explode(',', $this->rules) : [];
}
}
+16
View File
@@ -0,0 +1,16 @@
<?php
namespace plugin\admin\app\model;
use app\model\Base;
use support\Model;
class AdminRule extends Base
{
protected function getOptions(): array{
return array_merge(parent::getOptions(),[
'insert' => [
'status' => 1
],
]);
}
}
+39
View File
@@ -0,0 +1,39 @@
<?php
namespace plugin\admin\app\model;
class Card extends \app\model\Card
{
public static function onAfterInsert($row)
{
Hook('card.create',$row);
// $data = [];
// for ($i=0; $i < $row['total']; $i++) {
// array_push($data,[
// 'type' => $row['type'],
// 'category_id' => $row['id'],
// 'account' => \support\Random::uuid(),
// 'password' => '123456',
// 'expires' => $row['expires'],
// 'days' => $row['days'],
// 'is_used' => 0,
// 'use_time' => 0,
// 'status' => 1,
// 'created_at' => time(),
// 'updated_at' => time(),
// ]);
// }
// $Cdkey = new \app\model\Cdkey;
// $Cdkey->saveAll($data);
}
function setExpiresAttr($v="",$row=[]){
return strtotime($v);
}
function build(){
}
}
+9
View File
@@ -0,0 +1,9 @@
<?php
namespace plugin\admin\app\model;
class Category extends \app\model\Category
{
}
+70
View File
@@ -0,0 +1,70 @@
<?php
namespace plugin\admin\app\model;
use app\model\Base;
/**
* @property integer $id (主键)
* @property string $name 键
* @property mixed $value 值
*/
class Config extends Base
{
public function setValueAttr($v,$row){
log_alert($row);
if(is_array($v)){
return json_encode($v,JSON_UNESCAPED_UNICODE);
}
return $v;
}
public function getContentAttr($v,$row){
if(in_array($row['type'] ,['radio','checkbox','select','selects'] ) && $row['content']){
$firstLetter = substr($row['content'],0,1);
if($firstLetter == '[' || $firstLetter == '{'){
$arr = json_decode($row['content'],true);
}else{
$_content = explode("\r\n",$row['content']);
$arr = [];
foreach($_content as $k1=>$v1){
$_v1 = explode('|',$v1);
$arr[$_v1[0]]=$_v1[1];
}
}
return $arr;
}
return $v;
}
public function getValueAttr($v,$row){
if(in_array( $row['type'] ,['checkbox','select','selects'])){
return json_decode($v,true);
}
return $v;
}
public function setSettingAttr($v){
if(is_array($v)){
return json_encode($v,JSON_UNESCAPED_UNICODE);
}
return $v;
}
function setRuleAttr($v,$row){
if(is_array($v)){
return implode(';',$v);
}else{
return $v;
}
}
function getSettingAttr($v='',$row=[]){
if($v){
return json_decode($v,true);
}
return [];
}
// function setValueAttr($v,$row){
// if(is_array($v)){
// return implode(',',$v);
// }else{
// return $v;
// }
// }
}
+57
View File
@@ -0,0 +1,57 @@
<?php
namespace plugin\admin\app\model;
use support\think\Db;
/**
* @property integer $id 主键(主键)
* @property string $username 用户名
* @property string $nickname 昵称
* @property string $password 密码
* @property string $sex 性别
* @property string $avatar 头像
* @property string $email 邮箱
* @property string $mobile 手机
* @property integer $level 等级
* @property string $birthday 生日
* @property integer $money 余额
* @property integer $score 积分
* @property string $last_time 登录时间
* @property string $last_ip 登录ip
* @property string $join_time 注册时间
* @property string $join_ip 注册ip
* @property string $token token
* @property string $created_at 创建时间
* @property string $updated_at 更新时间
* @property integer $role_id 角色
* @property integer $status 禁用
*/
class User extends \app\model\User
{
public static function onAfterUpdate($row){
$changeData = $row->getChangedData();
$orgData = $row->getOrigin();
foreach(Config('site.allow_currencys') as $currency){
if(isset($changeData[$currency])){
$cha = $changeData[$currency] - $orgData[$currency];
if($cha!=0){
\support\Log::channel('cansnow')->alert('管理员手动修改用户余额:'.$row->id.',货币:'.$currency.',修改金额:'.$cha.',原始数据:'.$orgData[$currency].',修改后的数据:'.$changeData[$currency]);
}
}
}
}
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();
}
}
+32
View File
@@ -0,0 +1,32 @@
<?php
namespace plugin\admin\app\model;
/**
* @property integer $id 主键(主键)
* @property string $title 标题
* @property string $icon 图标
* @property string $key 标识
* @property integer $pid 上级菜单
* @property string $created_at 创建时间
* @property string $updated_at 更新时间
* @property string $href url
* @property integer $type 类型
* @property integer $weight 排序
*/
class Withdrawl extends \app\model\Withdrawl
{
public static function onAfterUpdate($row)
{
$changedData = $row->getChangedData();
if(isset($changedData['status'])){
if ( $changedData['status']==\app\enum\WithdrawlStatus::TRANSFERRING->value) {
Hook('withdrawl.transfering',$row);
}else if ( $changedData['status']==\app\enum\WithdrawlStatus::COMPLETE->value) {
Hook('withdrawl.success',$row);
}else if ( $changedData['status']==\app\enum\WithdrawlStatus::REJECT->value) {
\app\model\User::money($row->user_id,$row->deduction_amount,\app\enum\BalanceType::WITHDRAWAL_REJECT,$row->id);
Hook('withdrawl.reject',$row);
}
}
}
}