FastMovieAI 二开基线 v1.0 (完整源码)

This commit is contained in:
李建琦
2026-08-26 18:41:02 +08:00
parent fad7690c0c
commit d54584f70d
888 changed files with 105571 additions and 1 deletions
@@ -0,0 +1,70 @@
<?php
namespace plugin\user\app\model;
use app\expose\helper\Config;
use app\expose\utils\Str;
use app\model\Basic;
use loong\oauth\utils\Str as UtilsStr;
use plugin\finance\expose\helper\Account;
use plugin\finance\utils\enum\PointsBillScene;
class PluginUserInvitationCode extends Basic
{
// 关联创建者用户
public function user()
{
return $this->hasOne(PluginUser::class, 'id', 'uid');
}
// 关联使用邀请码的用户
public function useUser()
{
return $this->hasOne(PluginUser::class, 'id', 'use_uid');
}
public static function addCode($uid, $num = 1, $channels_uid = 0)
{
$needNum = $num;
$finalCodes = [];
while ($needNum > 0) {
$codes = [];
for ($i = 0; $i < $needNum * 2; $i++) {
$code = UtilsStr::random(6);
//转大写
$codes[] = strtoupper($code);
}
$codes = array_unique($codes);
$exists = self::whereIn('code', $codes)
->column('code');
$available = array_values(array_diff($codes, $exists));
$take = array_slice($available, 0, $needNum);
$finalCodes = array_merge($finalCodes, $take);
$needNum -= count($take);
}
$insertData = [];
foreach ($finalCodes as $code) {
$insertData[] = [
'uid' => $uid,
'code' => $code,
'channels_uid' => $channels_uid,
'create_time' => date('Y-m-d H:i:s'),
'update_time' => date('Y-m-d H:i:s'),
];
}
self::insertAll($insertData);
return $finalCodes;
}
public function onAfterUpdate($model)
{
if ($model->status == 'used') {
$register = new Config('register', 'user', $model->channels_uid);
if ($register->invite_reward_points) {
Account::incPoints($model->uid, $model->channels_uid, $register->invite_reward_points, PointsBillScene::INVITE['value'], 0, '邀请奖励积分');
}
PluginUserInvitationCode::where('id', $model->id)->update(['points' => $register->invite_reward_points]);
}
}
}