__handlePropertyHandler(__CLASS__); } public function lists(ValidatorFactoryInterface $validatorFactory) { $inputData = $this->getJsonData(); $rules = ['page' => 'nullable|integer', 'page_size' => 'nullable|integer', 'uid' => 'nullable|string', 'subject' => 'nullable|string', 'struct_type' => 'nullable|string']; $validator = $validatorFactory->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $orders = [['created_at', 'DESC']]; $pageSize = $inputData['page_size'] ?? CommonConstant::PAGE_SIZE; if ($pageSize > 500) { $pageSize = CommonConstant::PAGE_SIZE; } $page = format_page($inputData['page']); $lists = make(SysMessageRepository::class)->pushCriteria(new SysMessagePagesCriteria($inputData))->pushCriteria(new OrderLimitCriteria($orders))->paginate($pageSize, ['*'], $page); return new CommonPagesResponse($lists); } public function create(ValidatorFactoryInterface $validatorFactory) { $inputData = $this->getJsonData(); $rules = ['subject' => 'required|string|max:255', 'struct_type' => 'required|string', 'content' => 'nullable|array', 'expired_at' => 'nullable']; $validator = $validatorFactory->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } if (!empty($inputData['expired_at'])) { if ($inputData['expired_at'] == '0000-00-00 00:00:00') { return json_fail('过期日期有误'); } $month1 = intval(substr($inputData['expired_at'], 5, 2)); $day1 = intval(substr($inputData['expired_at'], 8, 2)); $year1 = intval(substr($inputData['expired_at'], 0, 4)); if (!checkdate($month1, $day1, $year1)) { return json_fail('过期时间格式有误'); } if (Carbon::parse($inputData['expired_at']) < Carbon::now()) { return json_fail('过期日期必须是当前以后的时间'); } } $obj = make(SysMessageRepository::class)->createOne($inputData); if ($obj) { return json_success(['uid' => $obj->uid]); } else { return json_fail('添加系统消息失败'); } } public function modify(ValidatorFactoryInterface $validatorFactory) { $inputData = $this->getJsonData(); $rules = ['uid' => 'required', 'subject' => 'required|string|max:255', 'struct_type' => 'required|string', 'content' => 'nullable|array', 'expired_at' => 'nullable']; $validator = $validatorFactory->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } if (!empty($inputData['expired_at'])) { if ($inputData['expired_at'] == '0000-00-00 00:00:00') { return json_fail('过期时间有误'); } $month1 = intval(substr($inputData['expired_at'], 5, 2)); $day1 = intval(substr($inputData['expired_at'], 8, 2)); $year1 = intval(substr($inputData['expired_at'], 0, 4)); if (!checkdate($month1, $day1, $year1)) { return json_fail('过期时间格式有误'); } if (Carbon::parse($inputData['expired_at']) < Carbon::now()) { return json_fail('过期日期必须是当前以后的时间'); } } $resultInfo = make(SysMessageRepository::class)->updateOne($inputData['uid'], $inputData); if ($resultInfo['is_ok']) { $logSubject = '编辑一个系统消息:' . $resultInfo['new']->subject; $logSvalue = $inputData['uid']; $logDbData = ['after_items' => [$resultInfo['new']->toArray()], 'before_items' => [$resultInfo['old']->toArray()]]; $this->log($logSubject, $logSvalue, $logDbData); return json_success(['uid' => $inputData['uid']]); } else { return json_fail('编辑系统消息失败'); } } public function delete(ValidatorFactoryInterface $validatorFactory) { $inputData = $this->getJsonData(); $rules = ['uid' => 'required']; $validator = $validatorFactory->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $uid = data_get($inputData, 'uid', ''); $resultInfo = make(SysMessageRepository::class)->deleteOne($uid); if ($resultInfo['is_ok']) { $logSubject = '删除一个系统消息:' . $resultInfo['old']->subject; $logSvalue = $uid; $logDbData = ['after_items' => [], 'before_items' => []]; $this->log($logSubject, $logSvalue, $logDbData); return json_success(['uid' => $uid]); } else { return json_fail('删除系统消息失败'); } } public function batch() { $inputData = $this->getJsonData(); $operateName = $inputData['operate_name'] ?? ''; switch ($operateName) { case 'delete': $itemPks = $inputData['item_pks'] ?? []; if (!empty($itemPks)) { $resultInfo = make(SysMessageRepository::class)->deleteMulti($itemPks); if ($resultInfo['success_uids']) { $strPks = implode(',', $resultInfo['success_uids']); $logSubject = '批量删除多个系统消息'; $logSvalue = $strPks; $logDbData = ['after_items' => [], 'before_items' => []]; $this->log($logSubject, $logSvalue, $logDbData); } } $data = ['result' => 'success', 'pks' => $itemPks]; return json_success($data); break; default: break; } return json_fail('未知操作'); } }