BaseModel.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 山西牛酷信息科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com.cn
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace app\model;
  13. use \think\facade\Cache;
  14. /**
  15. * 基础model
  16. * @author Administrator
  17. *
  18. */
  19. class BaseModel
  20. {
  21. public $lang;
  22. /**
  23. * 操作成功返回值函数
  24. * @param string $data
  25. * @param string $code_var
  26. * @return array
  27. */
  28. public function success($data = '',$code_var = 'SUCCESS')
  29. {
  30. $lang_array = $this->getLang();
  31. $lang_var = isset($lang_array[$code_var]) ? $lang_array[$code_var] : $code_var;
  32. if($code_var == 'SUCCESS')
  33. {
  34. $code_var = 0;
  35. }else{
  36. $code_array = array_keys($lang_array);
  37. $code_index = array_search($code_var, $code_array);
  38. if($code_index != false)
  39. {
  40. $code_var = 10000 + $code_index;
  41. }
  42. }
  43. return success($code_var, $lang_var, $data);
  44. }
  45. /**
  46. * 操作失败返回值函数
  47. * @param string $data
  48. * @param string $code_var
  49. * @return array
  50. */
  51. public function error($data = '', $code_var = 'FAIL')
  52. {
  53. $lang_array = $this->getLang();
  54. if(isset($lang_array[$code_var])){
  55. $lang_var = $lang_array[$code_var];
  56. }else{
  57. $lang_var = $code_var;
  58. $code_var = 'FAIL';
  59. }
  60. $code_array = array_keys($lang_array);
  61. $code_index = array_search($code_var, $code_array);
  62. if($code_index != false)
  63. {
  64. $code_var = -10000 - $code_index;
  65. }
  66. return error($code_var, $lang_var, $data);
  67. }
  68. /**
  69. * 获取语言包数组
  70. * @return Ambigous <multitype:, unknown>
  71. */
  72. public function getLang()
  73. {
  74. $default_lang = config("lang.default_lang");
  75. $cache_common = Cache::get("lang_app/lang/".$default_lang.'/model.php');
  76. if(empty($cache_common))
  77. {
  78. $cache_common = include 'app/lang/'.$default_lang.'/model.php';
  79. Cache::tag("lang")->set("lang_app/lang/".$default_lang, $cache_common);
  80. }
  81. $lang_path = isset($this->lang) ? $this->lang : '';
  82. if(!empty($lang_path))
  83. {
  84. $cache_path = Cache::get("lang_".$lang_path."/".$default_lang.'/model.php');
  85. if(empty($cache_path))
  86. {
  87. $cache_path = include $lang_path."/".$default_lang.'/model.php';
  88. Cache::tag("lang")->set("lang_".$lang_path."/".$default_lang, $cache_path);
  89. }
  90. $lang = array_merge($cache_common, $cache_path);
  91. }else{
  92. $lang = $cache_common;
  93. }
  94. return $lang;
  95. }
  96. }