93 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
 | 
						|
namespace app\model;
 | 
						|
 | 
						|
use think\model\relation\BelongsToMany;
 | 
						|
use think\model\relation\HasMany;
 | 
						|
 | 
						|
class Account extends Base
 | 
						|
{
 | 
						|
    public const ROLE_NORMAL  = '0';//普通用户
 | 
						|
    public const ROLE_WORKER  = '1';//工人
 | 
						|
    public const ROLE_MANAGER = '2';//负责人
 | 
						|
 | 
						|
    public const STATUS_NORMAL    = 'normal'; //正常
 | 
						|
    public const STATUS_DISABLE   = 'disable';//禁用
 | 
						|
    public const GENDER_UNDEFINED = 0; // 未知
 | 
						|
    public const GENDER_MALE      = 1; // 男性
 | 
						|
    public const GENDER_FEMALE    = 2; // 女性
 | 
						|
 | 
						|
    // 生成个人补充信息:邀请码、用户编号
 | 
						|
    public static function onAfterInsert($item)
 | 
						|
    {
 | 
						|
        $item->invite_code = md5($item->id, false);
 | 
						|
        $item->coding      = date('y').str_pad((string) $item->id, 10, '0', STR_PAD_LEFT);
 | 
						|
        $item->save();
 | 
						|
    }
 | 
						|
 | 
						|
    public static function roleText(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            self::ROLE_NORMAL  => '普通用户',
 | 
						|
            self::ROLE_WORKER  => '工人',
 | 
						|
            self::ROLE_MANAGER => '工地负责人',
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    public static function checkingText(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            0  => '正常',
 | 
						|
            1  => '资料审核中',
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    public static function genderText(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            self::GENDER_UNDEFINED => '保密',
 | 
						|
            self::GENDER_MALE      => '男',
 | 
						|
            self::GENDER_FEMALE    => '女',
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    // 获取用户信息 (包含待审核信息)
 | 
						|
    public static function getUser(int $accountId): array
 | 
						|
    {
 | 
						|
        $user = self::alias('a')
 | 
						|
            ->leftJoin('position p', 'a.position = p.id')
 | 
						|
            ->where('a.id', $accountId)
 | 
						|
            ->field('a.*,p.name as position_name')
 | 
						|
            ->find();
 | 
						|
 | 
						|
        if (empty($user)) {
 | 
						|
            return [];
 | 
						|
        }
 | 
						|
 | 
						|
        $user->headimgurl = resourceJoin($user->headimgurl, request()->domain());
 | 
						|
 | 
						|
        $user['check_info'] = [];//待审核对比信息
 | 
						|
        if ($user->checking == self::COMMON_ON || $user->role == self::ROLE_WORKER) {
 | 
						|
            $user['check_info'] = CheckLog::getCheckInfo($accountId);
 | 
						|
        }
 | 
						|
 | 
						|
        $user = $user->toArray();
 | 
						|
        unset($user['sex']);
 | 
						|
        unset($user['unionid']);
 | 
						|
        unset($user['last_login']);
 | 
						|
        unset($user['login_ip']);
 | 
						|
        unset($user['remarks']);
 | 
						|
        unset($user['remarks']);
 | 
						|
        return arrayNullToString($user);
 | 
						|
    }
 | 
						|
 | 
						|
    // 工人-需要审核的字段
 | 
						|
    public static function needCheckFields(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            'real_name', 'mobile', 'position', 'pay', 'emergency_contact', 'emergency_phone', 'bank_card_name', 'bank_card_number',
 | 
						|
            'bank_name', 'card_number', 'bank_card_img', 'id_front', 'id_back'
 | 
						|
        ];
 | 
						|
    }
 | 
						|
}
 |