32], [['USER_NAME', 'LAST_LOGIN_IP'], 'string', 'max' => 16], [['REG_NAME', 'CREDIT_CODE', 'PREMISES', 'LEGAL_PERSON'], 'string', 'max' => 255], [['USER_ID'], 'unique'], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'ID' => 'ID', 'USER_ID' => '会员ID', 'USER_NAME' => '会员名', 'ZC_PV' => '注册单PV', 'CON_UID' => '接点人ID', 'REC_UID' => '推荐人ID', 'CON_NUM' => '下级节点数量', 'REC_NUM' => '开拓会员数量', 'NETWORK_DEEP' => '安置网络深度', 'RELATION_DEEP' => '开拓网络深度', 'SYSTEM_ID' => '体系ID', 'IS_SYSTEM_LEADER' => '是否体系领导人', 'IS_TEAM' => '是否点位合作', 'IS_BIND' => '是否点位绑定', 'IS_TEAM_MAIN' => '是否点位合作主点', 'IS_BIND_MAIN' => '是否点位绑定主点', 'IS_AUTO_WITHDRAW' => '是否开启自动提现', 'CLOSE_LOGIN' => '关闭结算系统登录', 'REG_TYPE' => '注册类型', 'SHOULD_REG_TYPE' => '应注册类型', 'REG_NAME' => '注册名称', 'CREDIT_CODE' => '信用代码', 'PREMISES' => '经营场所', 'LEGAL_PERSON' => '法人', 'REG_EXPIRES' => '注册有效期', 'STORE_TYPE' => '店铺类型', 'INVOICE_BALANCE' => '发票余额', 'HIGHEST_EMP_LV' => '历史最高聘级', 'CREATED_AT' => '创建时间', 'UPDATED_AT' => '更新时间', 'CLOSE_LOGIN_AT' => '禁止登录时间', 'PULLED_AT' => '站内信拉取时间', 'DELETED' => '是否删除', 'DELETED_AT' => '删除时间', 'ALLOW_TRANSFER' => '开启转账功能', 'ALLOW_RECONSUME_SMS' => '开启复销短信提醒', 'ALLOW_RECONSUME_SMS_TO' => '开启复销短信提醒有效期', 'HIGHEST_EMP_LV_PERIOD' => '首次达到最高聘级期数', 'IS_GROUP_LEADER' => '是否团队领导人', 'GROUP_LEADER_AT' => '团队领导人时间', 'TRANSFER_PROP' => '单笔转账比例', 'LOGIN_NUMS' => '登录次数', 'FAIL_NUMS' => '登录失败次数', 'LAST_LOGIN_IP' => '上次登录IP', 'LAST_LOGIN_AT' => '上次登录时间', 'SHOW_EMP_LV' => '展示聘级', 'ZC_AMOUNT' => '注册单报单金额', ]; } /** * 删除会员 * @param $userId */ public static function deleteUser($userId){ static::deleteAll('USER_ID=:USER_ID', [':USER_ID'=>$userId]); UserNetwork::deleteAll('USER_ID=:USER_ID', [':USER_ID'=>$userId]); UserRelation::deleteAll('USER_ID=:USER_ID', [':USER_ID'=>$userId]); UserBonus::deleteAll('USER_ID=:USER_ID', [':USER_ID'=>$userId]); UserPerf::deleteAll('USER_ID=:USER_ID', [':USER_ID'=>$userId]); } /** * 获取会员接点人推荐人 * @param $userId * @return array|null */ public static function getNetByUserId($userId){ return static::findOneAsArray('USER_ID=:USER_ID', [':USER_ID' => $userId], 'CON_UID,REC_UID'); } /** * 操作日志记录条件 * @return array */ public function attrLabelsWithLogType(){ return [ 'USER_ID' => '会员ID', 'USER_NAME' => '会员名', 'ZC_PV' => '注册单PV', 'CON_UID' => [ 'label' => '接点人编号', 'type' => function($data){ $value = $data['value']; return Info::getUserNameByUserId($value); }, ], 'REC_UID' => [ 'label' => '接点人编号', 'type' => function($data){ $value = $data['value']; return Info::getUserNameByUserId($value); }, ], 'CON_NUM' => '下级节点数量', 'REC_NUM' => '开拓会员数量', 'NETWORK_DEEP' => '安置网络深度', 'RELATION_DEEP' => '开拓网络深度', 'SYSTEM_ID' => '体系ID', 'IS_SYSTEM_LEADER' => '是否体系领导人', 'IS_TEAM' => '是否点位合作', 'IS_BIND' => '是否点位绑定', 'IS_TEAM_MAIN' => '是否点位合作主点', 'IS_BIND_MAIN' => '是否点位绑定主点', 'IS_AUTO_WITHDRAW' => [ 'label' => '是否开启自动提现', 'type' => ValueTypeConfig::YES_NO_TYPE, ], 'CLOSE_LOGIN' => '关闭结算系统登录', 'REG_TYPE' => '注册类型', 'SHOULD_REG_TYPE' => '应注册类型', 'REG_NAME' => '注册名称', 'CREDIT_CODE' => '信用代码', 'PREMISES' => '经营场所', 'LEGAL_PERSON' => '法人', 'REG_EXPIRES' => '注册有效期', 'STORE_TYPE' => '店铺类型', 'INVOICE_BALANCE' => '发票余额', 'HIGHEST_EMP_LV' => '历史最高聘级', 'CREATED_AT' => '创建时间', 'UPDATED_AT' => '更新时间', 'CLOSE_LOGIN_AT' => '禁止登录时间', 'PULLED_AT' => '站内信拉取时间', 'DELETED' => '是否删除', 'DELETED_AT' => '删除时间', 'ALLOW_TRANSFER' => [ 'label' => '开启转账功能', 'type' => ValueTypeConfig::YES_NO_TYPE, ], 'ALLOW_RECONSUME_SMS' => [ 'label' => '开启复销短信提醒', 'type' => ValueTypeConfig::YES_NO_TYPE, ], 'ALLOW_RECONSUME_SMS_TO' => [ 'label' => '开启复销短信提醒有效期', 'type' => ValueTypeConfig::DATE_TYPE, ], 'HIGHEST_EMP_LV_PERIOD' => '首次达到最高聘级期数', 'IS_GROUP_LEADER' => [ 'label' => '是否团队领导人', 'type' => ValueTypeConfig::YES_NO_TYPE, ], 'GROUP_LEADER_AT' => [ 'label' => '团队领导人时间', 'type' => ValueTypeConfig::DATE_TIME_TYPE, ], 'TRANSFER_PROP' => '单笔转账比例', 'SHOW_EMP_LV' => [ 'label' => '前台显示聘级', 'type' => ValueTypeConfig::EMP_LV_TYPE, ], ]; } /** * 查询安置网的会员 * @param $userId * @return array|null */ public static function getPlacementChildren($userId): ?array { return static::findAllAsArray('REC_UID=:REC_UID', [':REC_UID' => $userId], 'USER_ID,USER_NAME'); } public function getRecUserName() { return $this->hasOne(UserInfo::class, ['USER_ID' => 'REC_UID']); } public function getRecRealName() { return $this->hasOne(User::class, ['ID' => 'REC_UID']); } public function getConUserName() { return $this->hasOne(UserInfo::class, ['USER_ID' => 'CON_UID']); } public function getConRealName() { return $this->hasOne(User::class, ['ID' => 'CON_UID']); } }