--- a/application/p/logic/Treatise.php +++ b/application/p/logic/Treatise.php @@ -28,7 +28,7 @@ class Treatise public function add($params, $createBy) { try { $params['uuid'] = guid(); - $params['create_by'] = $createBy; + $params['create_by'] = self::normalizeCreateBy($createBy, ltrim((string)\think\Config::get('database.type'), '\\') === \app\cores\database\Dm::class); $params['create_time'] = date("Y-m-d H:i:s"); $res = $this->model->add($params); if(!$res) { @@ -49,8 +49,17 @@ class Treatise * @param $order * @return array */ + private static function normalizeCreateBy(string $value, bool $isDm): string + { + return $isDm ? mb_substr($value, 0, 32, 'UTF-8') : $value; + } + public function lists($where, $page, $page_size, $order) { $data['data'] = $this->model->inquiry($where, $page, $page_size, $order, $field = ['*']); + $isDm = ltrim((string)\think\Config::get('database.type'), '\\') === \app\cores\database\Dm::class; + foreach ($data['data'] as $key => $row) { + $data['data'][$key] = self::normalizeReadCreateTime($row, $isDm); + } $data['total'] = $this->model->inquiryCount($where); return ['code' => 0, 'message' => '', 'data' => $data]; } @@ -87,9 +96,25 @@ class Treatise */ public function info($uuid) { $info = $this->model->read($uuid); + if (is_array($info)) { + $info = self::normalizeReadCreateTime($info, ltrim((string)\think\Config::get('database.type'), '\\') === \app\cores\database\Dm::class); + } return ['code' => 0, 'message' => '', 'data' => $info]; } + private static function normalizeReadCreateTime(array $row, bool $isDm): array + { + $value = $row['create_time'] ?? null; + if (!$isDm || !is_string($value) || !preg_match('/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\.\d{1,6}$/D', $value, $parts)) { + return $row; + } + $date = \DateTime::createFromFormat('!Y-m-d H:i:s', $parts[1]); + if ($date && substr($parts[1], 0, 4) !== '0000' && $date->format('Y-m-d H:i:s') === $parts[1]) { + $row['create_time'] = $parts[1]; + } + return $row; + } + /** * 电子档案-论著删除 * @author 李鑫 @@ -114,4 +139,4 @@ class Treatise } return ['code' => 0, 'message' => '删除成功', 'data' => []]; } -} \ No newline at end of file +}