diff --git a/addon/message/model/Message.php b/addon/message/model/Message.php new file mode 100644 index 00000000..c0fbe374 --- /dev/null +++ b/addon/message/model/Message.php @@ -0,0 +1,84 @@ +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()); + } + + } + + + + + +} \ No newline at end of file diff --git a/addon/message/shop/controller/Message.php b/addon/message/shop/controller/Message.php index 41ea2273..17efaed1 100644 --- a/addon/message/shop/controller/Message.php +++ b/addon/message/shop/controller/Message.php @@ -11,12 +11,50 @@ * ========================================================== */ namespace addon\message\shop\controller; + use app\shop\controller\BaseShop; -use addon\futures\model\Futures as futuresModel; +use addon\message\model\Message as messageModel; +use think\facade\Db; class Message extends BaseShop{ // 进入消息中心 public function index(){ + if(request()->isAjax()){ + + + + + } + + + debug(table('message_center_read')); + // 参数获取 + $page = input('page',1); + $pageSize = input('page_size',PAGE_LIST_ROWS); + // 获取内容 + $field = [ + 'a.id', + 'a.type', + 'a.created_time', + 'count(a.id) as total', + '(select count(id) from )', + + ]; + // 表关联 + $join = [ + ['message_center_read mcr', 'mcr.message_center_id = a.id', 'left'], + ]; + // 条件生成 + $condition = [ + ['a.site_id','=',$this->site_id] + ]; + $res = (new messageModel())->getPageList($condition, $page, $pageSize, 'a.created_time desc,a.id desc', $field, 'a', $join); + + debug($res); + + + + @@ -24,10 +62,22 @@ class Message extends BaseShop{ $this->forthMenu(); return $this->fetch('message/index'); } + /** + * Common: 消息发布 + * Author: wu-hui + * Time: 2023/03/04 14:10 + * @return array|mixed + */ + public function sendMessage(){ + if(request()->isAjax()){ + // 参数获取 + $type = input('type',2); + $content = input('message_content',''); + return (new messageModel())->addMessage($this->site_id,$content,$type); + } - - - + return $this->fetch('message/send_message'); + } } \ No newline at end of file diff --git a/addon/message/shop/view/message/index.html b/addon/message/shop/view/message/index.html index 67460588..815e5903 100644 --- a/addon/message/shop/view/message/index.html +++ b/addon/message/shop/view/message/index.html @@ -1,25 +1,11 @@ {extend name="app/shop/view/base.html"/} {block name="resources"} {/block} @@ -76,6 +62,7 @@