admin/addon/message/model/Message.php

84 lines
2.6 KiB
PHP

<?php
namespace addon\message\model;
use app\model\BaseModel;
use think\Exception;
use think\facade\Db;
class Message extends BaseModel{
/**
* 获取列表
* @param array $condition
* @param int $page
* @param int $page_size
* @param string $order
* @param string $field
* @param string $alias
* @param array $join
* @return array
*/
public function getPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = '', $field = 'a.*', $alias = 'a', $join = []){
$list = model('message_center')->pageList($condition, $field, $order, $page, $page_size, $alias, $join);
return $this->success($list);
}
/**
* Common: 添加消息
* Author: wu-hui
* Time: 2023/03/04 14:09
* @param int $siteId
* @param string $content
* @param int $type
* @param string|int $member_id
* @param int $orderId
* @return array
*/
public function addMessage(int $siteId,string $content,int $type,$member_id = 'all',int $orderId = 0){
if(!$content) return $this->error('','消息不能为空!');
// 记录消息信息
try{
$messageId = Db::name('message_center')
->insertGetId([
'site_id' => $siteId,
'type' => $type,
'message_content' => $content,
'created_time' => time()
]);
// 关联用户信息
if($member_id == 'all'){
// 发送给全部用户的消息
$time = time();
$insertData = Db::name('member')
->field("site_id,member_id,{$messageId} as message_center_id,{$time} as created_time")
->where('site_id',$siteId)
->select();
if($insertData){
$insertData = $insertData->toArray();
Db::name('message_center_read')->insertAll($insertData);
}
}
else{
// 发送给某个用户
Db::name('message_center_read')
->insert([
'site_id' => $siteId,
'member_id' => $member_id,
'created_time' => time(),
'order_id' => $orderId,
'message_center_id' => $messageId,
]);
}
return $this->success();
}catch(Exception $e){
return $this->error('',$e->getMessage());
}
}
}