1
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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,
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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) : [];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -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(){
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\admin\app\model;
|
||||
|
||||
class Category extends \app\model\Category
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user