Account.php
1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
/**
* Created by PhpStorm.
* User: Hanson
* Date: 2016/12/13
* Time: 20:56
*/
namespace Hanson\Robot\Models;
use Illuminate\Support\Collection;
class Account extends Collection
{
/**
* @var Account
*/
static $instance = null;
const NORMAL_MEMBER = 'normal_member';
const GROUP_MEMBER = 'group_member';
/**
* create a single instance
*
* @return Account
*/
public static function getInstance()
{
if(static::$instance === null){
static::$instance = new Account();
}
return static::$instance;
}
public function addGroupMember($groupMember)
{
$account = static::$instance->all();
$account[static::GROUP_MEMBER][] = $groupMember;
static::$instance->make($account);
}
public function addNormalMember($normalMember)
{
$account = static::$instance->all();
$account[static::NORMAL_MEMBER][] = $normalMember;
static::$instance->make($account);
}
public function getContactName($id, $type, $prefer = false)
{
$target = static::$instance->get($type);
$user = $target[$id];
$name = [];
if(isset($user['RemarkName'])){
$name['remarkName'] = $user['RemarkName'];
}
if(isset($user['NickName'])){
$name['nickName'] = $user['NickName'];
}
if(isset($user['DisplayName'])){
$name['displayName'] = $user['DisplayName'];
}
if(!$name){
return null;
}
return $prefer ? array_values($name)[0] : $name;
}
}