MailController.php
2.5 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
82
83
84
85
<?php
namespace App\Http\Controllers\Bside\Mail;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\Mail\MailLogic;
use App\Models\Mail\Mail as MailModel;
use App\Models\Mail\MailUser as MailUserModel;
class MailController extends BaseController
{
const STATUS_ZERO = 0; //状态为未读状态
const STATUS_ONE = 1; //状态为已读状态
/**
* @name :当前用户站内信列表
* @author :liyuhang
* @method
*/
public function lists(){
$mailModel = new MailModel();
//获取当前用户下的所有站内信
$lists = $mailModel->where('user_list','like','%,'.$this->uid.',%')->orWhere('user_list', '')->select(['*'])->orderBy($this->order,'desc')
->paginate($this->row, ['*'], 'page', $this->page);
if(!empty($lists)){
$lists = $lists->toArray();
}
$lists['unreadNum'] = $this->unreadNum($mailUserModel,$lists['total']);
if(!empty($lists['list'])){
//验证未读还是已读
$lists = $this->verifyRead($lists['list']);
}
$this->response('success',Code::SUCCESS,$lists);
}
/**
* @name :(验证已读还是未读)verifyRead
* @author :lyh
* @method :post
* @time :2023/6/17 15:02
*/
public function verifyRead($list){
$mailUserModel = new MailUserModel();
foreach ($list as $k => $v){
//获取用户已读还是未读
$info = $mailUserModel->read(['mail_id'=>$v['id'],'user_id'=>$this->uid]);
if($info !== false){
$v['read_status'] = $this::STATUS_ONE;//
}else{
$v['read_status'] = $this::STATUS_ZERO;
}
$lists[$k] = $v;
}
return $lists;
}
/**
* @name :(未读数量)readNum
* @author :lyh
* @method :post
* @time :2023/6/17 13:58
*/
public function unreadNum(&$mailUserModel,$total){
//已读数量
$count = $mailUserModel->where(['user_id'=>$this->uid])->count();
$num = $total - $count;
return $num;
}
/**
* @name :获取站内信详情
* @author :liyuhang
* @method
*/
public function info(MailLogic $mailLogic){
$this->request->validate([
'id'=>['required']
],[
'id.required' => 'ID不能为空'
]);
$info = $mailLogic->mail_info();
$this->response('success',Code::SUCCESS,$info);
}
}