diff --git a/application/admin/lang/zh-cn.php b/application/admin/lang/zh-cn.php index f0e1bc49..5301d3dc 100755 --- a/application/admin/lang/zh-cn.php +++ b/application/admin/lang/zh-cn.php @@ -4,7 +4,6 @@ return [ 'User id' => '会员ID', 'Username' => '用户名', 'Nickname' => '昵称', - 'Mobile' => '手机', 'Email' => '邮箱', 'Password' => '密码', 'Mobile' => '手机号', diff --git a/application/common/model/User.php b/application/common/model/User.php index b4f51ff3..2a8ee688 100644 --- a/application/common/model/User.php +++ b/application/common/model/User.php @@ -33,7 +33,7 @@ class User extends Model */ public function getUrlAttr($value, $data) { - return "/u/" . $data['id']; + return str_replace("{uid}", $data['id'], config('fastadmin.user_home_url') ?: "/u/{uid}"); } /** @@ -45,11 +45,9 @@ class User extends Model public function getAvatarAttr($value, $data) { if (!$value) { - //如果不需要启用首字母头像,请使用 - //$value = '/assets/img/avatar.png'; - $value = letter_avatar($data['nickname']); + $value = config('fastadmin.user_letter_avatar') ? letter_avatar($data['nickname']) : '/assets/img/avatar.png'; } - return $value; + return cdnurl($value, true); } /** @@ -124,9 +122,16 @@ class User extends Model if ($user && $score != 0) { $before = $user->score; $after = $user->score + $score; - $level = self::nextlevel($after); + $data = ['score' => $after]; + $levelrule = config('fastadmin.user_level_rule') ?: ''; + if (in_array($levelrule, ['auto', 'up'])) { + $level = self::nextlevel($after); + if ($levelrule == 'auto' || $level > $user['level']) { + $data['level'] = $level; + } + } //更新会员信息 - $user->save(['score' => $after, 'level' => $level]); + $user->save($data); //写入日志 ScoreLog::create(['user_id' => $user_id, 'score' => $score, 'before' => $before, 'after' => $after, 'memo' => $memo]); } @@ -143,9 +148,9 @@ class User extends Model */ public static function nextlevel($score = 0) { - $lv = array(1 => 0, 2 => 30, 3 => 100, 4 => 500, 5 => 1000, 6 => 2000, 7 => 3000, 8 => 5000, 9 => 8000, 10 => 10000); + $levelDict = config('fastadmin.user_level_dict') ?: []; $level = 1; - foreach ($lv as $key => $value) { + foreach ($levelDict as $key => $value) { if ($score >= $value) { $level = $key; } diff --git a/application/config.php b/application/config.php index 6353aa27..062bf917 100755 --- a/application/config.php +++ b/application/config.php @@ -271,6 +271,14 @@ return [ 'usercenter' => true, //会员注册验证码类型email/mobile/wechat/text/false 'user_register_captcha' => 'text', + //会员主页URL规则 + 'user_home_url' => '/u/{uid}', + //是否启用会员字母头像 + 'user_letter_avatar' => true, + //是否启用会员等级规则none/auto/up,auto表示自动升降级,up表示只升不降 + 'user_level_rule' => '', + //会员等级积分字典 + 'user_level_dict' => [1 => 0, 2 => 30, 3 => 100, 4 => 500, 5 => 1000, 6 => 2000, 7 => 3000, 8 => 5000, 9 => 8000, 10 => 10000], //登录验证码 'login_captcha' => true, //登录失败超过10次则1天后重试