admin/app/model/NewBaseModel.php

101 lines
3.3 KiB
PHP

<?php
/**
* ThinkShop商城系统 - 团队十年电商经验汇集巨献!
* =========================================================
* Copy right 2019-2029 成都云之牛科技有限公司, 保留所有权利。
* ----------------------------------------------
* 官方网址: https://www.cdcloudshop.com
* =========================================================
*/
namespace app\model;
use think\facade\Cache;
error_reporting(E_ALL ^ E_NOTICE);
class NewBaseModel extends \think\Model{
protected $table = false;
protected $name = false;
protected $autoWriteTimestamp = false; // 开启自动时间戳
protected $deleteTime = false; // 软删除字段
protected $site_id;
public function __construct(array $data = []){
parent::__construct($data);
$data['table_name'] = $this->name ?? $data['table_name'];
if($data['table_name']) {
cache('new_model_table_name',$data['table_name']);
$tableName = $data['table_name'];
}else{
$tableName = cache('new_model_table_name');
}
$this->name = $tableName;
$this->site_id = (int)request()->siteid();
}
// 操作成功返回值函数
public function success($data = '',$code_var = 'SUCCESS'){
$lang_array = $this->getLang();
$lang_var = isset($lang_array[$code_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);
}
// 操作失败返回值函数
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);
}
// 获取语言包数组
public function getLang(){
$default_lang = config("lang.default_lang");
$cache_common = Cache::get("lang_app/lang/".$default_lang.'/model.php');
if(empty($cache_common)){
$cache_common = include 'app/lang/'.$default_lang.'/model.php';
Cache::tag("lang")
->set("lang_app/lang/".$default_lang,$cache_common);
}
$lang_path = isset($this->lang) ? $this->lang : '';
if(!empty($lang_path)){
$cache_path = Cache::get("lang_".$lang_path."/".$default_lang.'/model.php');
if(empty($cache_path)){
$cache_path = include $lang_path."/".$default_lang.'/model.php';
Cache::tag("lang")
->set("lang_".$lang_path."/".$default_lang,$cache_path);
}
$lang = array_merge($cache_common,$cache_path);
}
else{
$lang = $cache_common;
}
return $lang;
}
}