fix(addon/aikefu): 使用ThinkPHP Model来处理数据

This commit is contained in:
2025-12-06 15:13:24 +08:00
parent 6cfff15c62
commit 0f76b61152
2 changed files with 184 additions and 4 deletions

View File

@@ -2,10 +2,84 @@
namespace addon\aikefu\model; namespace addon\aikefu\model;
use app\model\BaseModel; use think\Model;
class Conversation extends BaseModel class Conversation extends Model
{ {
/**
* 操作成功返回值函数
* @param string $data
* @param string $code_var
* @return array
*/
public function success($data = '', $code_var = 'SUCCESS')
{
$lang_array = $this->getLang();
$lang_var = $lang_array[$code_var] ?? $code_var;
if ($code_var == 'SUCCESS') {
$code_var = 0;
} else {
$code_array = array_keys($lang_array);
$code_index = array_search($code_var, $code_array);
if ($code_index != false) {
$code_var = 10000 + $code_index;
}
}
return success($code_var, $lang_var, $data);
}
/**
* 操作失败返回值函数
* @param string $data
* @param string $code_var
* @return array
*/
public function error($data = '', $code_var = 'FAIL')
{
$lang_array = $this->getLang();
if (isset($lang_array[$code_var])) {
$lang_var = $lang_array[$code_var];
} else {
$lang_var = $code_var;
$code_var = 'FAIL';
}
$code_array = array_keys($lang_array);
$code_index = array_search($code_var, $code_array);
if ($code_index != false) {
$code_var = -10000 - $code_index;
}
return error($code_var, $lang_var, $data);
}
/**
* 获取语言包数组
* @return Ambigous <multitype:, unknown>
*/
public function getLang()
{
$default_lang = config("lang.default_lang");
$cache_common = \think\facade\Cache::get("lang_app/lang/" . $default_lang . '/model.php');
if (empty($cache_common)) {
$cache_common = include 'app/lang/' . $default_lang . '/model.php';
\think\facade\Cache::tag("lang")->set("lang_app/lang/" . $default_lang, $cache_common);
}
$lang_path = $this->lang ?? '';
if (!empty($lang_path)) {
$cache_path = \think\facade\Cache::get("lang_" . $lang_path . "/" . $default_lang . '/model.php');
if (empty($cache_path)) {
$cache_path = include $lang_path . "/" . $default_lang . '/model.php';
\think\facade\Cache::tag("lang")->set("lang_" . $lang_path . "/" . $default_lang, $cache_path);
}
$lang = array_merge($cache_common, $cache_path);
} else {
$lang = $cache_common;
}
return $lang;
}
/** /**
* 表名 * 表名
* @var string * @var string
@@ -48,6 +122,22 @@ class Conversation extends BaseModel
return $this->pageFormat($list); return $this->pageFormat($list);
} }
/**
* 分页数据格式化
* @param \think\Paginator $paginator
* @return array
*/
protected function pageFormat($paginator)
{
return [
'data' => $paginator->items(),
'total' => $paginator->total(),
'per_page' => $paginator->listRows(),
'current_page' => $paginator->currentPage(),
'last_page' => $paginator->lastPage()
];
}
/** /**
* 添加会话 * 添加会话
* @param array $data * @param array $data

View File

@@ -2,10 +2,84 @@
namespace addon\aikefu\model; namespace addon\aikefu\model;
use app\model\BaseModel; use think\Model;
class Message extends BaseModel class Message extends Model
{ {
/**
* 操作成功返回值函数
* @param string $data
* @param string $code_var
* @return array
*/
public function success($data = '', $code_var = 'SUCCESS')
{
$lang_array = $this->getLang();
$lang_var = $lang_array[$code_var] ?? $code_var;
if ($code_var == 'SUCCESS') {
$code_var = 0;
} else {
$code_array = array_keys($lang_array);
$code_index = array_search($code_var, $code_array);
if ($code_index != false) {
$code_var = 10000 + $code_index;
}
}
return success($code_var, $lang_var, $data);
}
/**
* 操作失败返回值函数
* @param string $data
* @param string $code_var
* @return array
*/
public function error($data = '', $code_var = 'FAIL')
{
$lang_array = $this->getLang();
if (isset($lang_array[$code_var])) {
$lang_var = $lang_array[$code_var];
} else {
$lang_var = $code_var;
$code_var = 'FAIL';
}
$code_array = array_keys($lang_array);
$code_index = array_search($code_var, $code_array);
if ($code_index != false) {
$code_var = -10000 - $code_index;
}
return error($code_var, $lang_var, $data);
}
/**
* 获取语言包数组
* @return Ambigous <multitype:, unknown>
*/
public function getLang()
{
$default_lang = config("lang.default_lang");
$cache_common = \think\facade\Cache::get("lang_app/lang/" . $default_lang . '/model.php');
if (empty($cache_common)) {
$cache_common = include 'app/lang/' . $default_lang . '/model.php';
\think\facade\Cache::tag("lang")->set("lang_app/lang/" . $default_lang, $cache_common);
}
$lang_path = $this->lang ?? '';
if (!empty($lang_path)) {
$cache_path = \think\facade\Cache::get("lang_" . $lang_path . "/" . $default_lang . '/model.php');
if (empty($cache_path)) {
$cache_path = include $lang_path . "/" . $default_lang . '/model.php';
\think\facade\Cache::tag("lang")->set("lang_" . $lang_path . "/" . $default_lang, $cache_path);
}
$lang = array_merge($cache_common, $cache_path);
} else {
$lang = $cache_common;
}
return $lang;
}
/** /**
* 表名 * 表名
* @var string * @var string
@@ -48,6 +122,22 @@ class Message extends BaseModel
return $this->pageFormat($list); return $this->pageFormat($list);
} }
/**
* 分页数据格式化
* @param \think\Paginator $paginator
* @return array
*/
protected function pageFormat($paginator)
{
return [
'data' => $paginator->items(),
'total' => $paginator->total(),
'per_page' => $paginator->listRows(),
'current_page' => $paginator->currentPage(),
'last_page' => $paginator->lastPage()
];
}
/** /**
* 添加消息 * 添加消息
* @param array $data * @param array $data