request->isPost()) { $page = $this->request->param('page/d', 1); $size = $this->request->param('size/d', 30); $whereMap = []; $orders = ['send_at' => 'desc', 'id' => 'desc']; $whereMap[] = ['type', '<>', MessageModel::TYPE_REMINDERS]; $whereMap[] = ['is_push', '=', MessageModel::COMMON_OFF]; $res = $repo->messageList($whereMap, [], $page, $size, null, $orders); $list = $res['list']; $msgTypeTextList = $repo->messageTypeTextList(); $msgTargetTextList = $repo->messageTargetTextList(); foreach ($list as $item) { $item['type_text'] = $msgTypeTextList[$item['type']] ?? ''; $item['target_text'] = $msgTargetTextList[$item['target']] ?? ''; } $res['list'] = $list; return $this->json(0, 'success', $res); } return $this->view(); } public function add() { $repo = AccountRepository::getInstance(); if ($this->request->isPost()) { $item = $this->request->param('item/a', []); $targetListStr = $this->request->param('target_list_str/s', ''); $fdata = $this->request->param('fdata/a', []); if (empty($fdata)) { return $this->json(4001, "发送时间必填"); } foreach ($fdata as $fdatum) { if (!isset($fdatum['send_at'])||empty($fdatum['send_at'])) { return $this->json(4001, "发送时间必填"); } } unset($item["send_at"]); Db::startTrans(); try { $type = $item['type'] ?? ''; $target = $item['target'] ?? ''; $targetList = empty($targetListStr) ? [] : explode(',', $targetListStr); foreach ($fdata as $sitem){ $item["send_at"] = $sitem['send_at']; $item["content"] = $sitem['content']; $repo->addMessage($type, $target, $targetList, $item); } Db::commit(); return $this->json(); } catch (TraitException $e) { Db::rollback(); return $this->json(4001, $e->getMessage()); } } $this->data['typeList'] = $repo->messageTypeTextList(); $this->data['targetList'] = $repo->messageTargetTextList(); $scriptManagement = ScriptManagementModel::getAll(); $this->data["script_management"] = $scriptManagement; $this->data["script_management_json"] = json_encode($scriptManagement); return $this->view(); } public function edit() { $repo = AccountRepository::getInstance(); $id = $this->request->param('id/d', 0); $msg = $repo->messageInfo($id); if (empty($msg)) { return $this->json(4000, '没有相关的消息记录'); } if ($this->request->isPost()) { $item = $this->request->param('item/a', []); $targetListStr = $this->request->param('target_list_str/s', ''); try { $type = $item['type'] ?? ''; $target = $item['target'] ?? ''; $targetList = empty($targetListStr) ? [] : explode(',', $targetListStr); $repo->editMessage($id, $type, $target, $targetList, $item); } catch (TraitException $e) { return $this->json(4001, $e->getMessage()); } return $this->json(); } $targetAids = empty($msg['target_list'] ?? '') ? [] : explode(',', $msg['target_list']); $whereMap[] = ['id', 'in', $targetAids]; $targetList = $repo->findList($whereMap)['list']->toArray(); foreach ($targetList as &$item) { $item['account_desc2'] = $item['nickname'].'【姓名:'.$item['real_name'].'】'; $item['selected'] = true; } $this->data['id'] = $id; $this->data['item'] = $msg; $this->data['targetListJson'] = json_encode($targetList, JSON_UNESCAPED_UNICODE); $this->data['typeList'] = $repo->messageTypeTextList(); $this->data['targetList'] = $repo->messageTargetTextList(); $scriptManagement = ScriptManagementModel::getAll(); $this->data["script_management"] = $scriptManagement; $this->data["script_management_json"] = json_encode($scriptManagement); return $this->view(); } public function del() { if (!$this->request->isPost()) { return $this->json(4000, '非法请求'); } $ids = $this->request->param('ids/a', []); if (empty($ids)) { $ids[] = $this->request->param('id/d', 0); $ids = array_filter($ids); } if (count($ids)) { AccountRepository::getInstance()->deleteMessages($ids); Log::write(get_class(), 'del', '删除了message,涉及到的ID为:'.implode(',', $ids)); } return $this->json(); } }