2019-01-22 11:19:05 +08:00

86 lines
2.6 KiB
PHP

<?php
namespace app\common\Model;
class Notify extends CommonModel
{
/**
* 按type类型格式化输出列表
* @param $where
* @param bool $size
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function listTypeFormat($where, $size = false)
{
$types = ['notice', 'message', 'task'];
$totalSum = [];
$list = $this->where($where)->order('id desc')->select();
$formatList = [];
$total = $this->where($where)->count('id');
if ($list) {
foreach ($list as &$item) {
foreach ($types as $type) {
!isset($formatList[$type]) and $formatList[$type] = [];
!isset($totalSum[$type]) and $totalSum[$type] = 0;
$sum = $this->where($where)->where(['type' => $type])->count('id');
$totalSum[$type] = $sum;
if ($size and count($formatList[$type]) >= $size) {
continue;
}
if ($item['type'] == $type) {
$item['from'] = $this->getReceiverByTerminal($item['terminal'], $item['from']);
$item['to'] = $this->getReceiverByTerminal($item['terminal'], $item['to']);
$formatList[$type][] = $item;
// $total++;
}
}
}
}
return ['list' => $formatList, 'total' => $total, 'totalSum' => $totalSum];
}
public function getReceiverByTerminal($terminal, $to)
{
if (!$to) {
return false;
}
switch ($terminal) {
case 'system':
return [];
}
}
public function getFromByType($fromType, $from)
{
if (!$from) {
return false;
}
switch ($fromType) {
case 'project': //消息
return MemberAccount::find($from);
}
}
public function add($title, $content, $type, $from, $to, $action, $send_data, $terminal, $avatar = '', $fromType = 'system')
{
$data = [
'title' => $title,
'content' => $content,
'type' => $type,
'from' => $from,
'to' => $to,
'action' => $action,
'send_data' => $send_data,
'terminal' => $terminal,
'avatar' => $avatar,
'from_type' => $fromType,
'create_time' => nowTime(),
];
return self::create($data);
}
}