BaseModel.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\model;
  11. use \think\facade\Cache;
  12. /**
  13. * 基础model
  14. * @author Administrator
  15. *
  16. */
  17. class BaseModel
  18. {
  19. public $lang;
  20. /**
  21. * 操作成功返回值函数
  22. * @param string $data
  23. * @param string $code_var
  24. * @return array
  25. */
  26. public function success($data = '', $code_var = 'SUCCESS')
  27. {
  28. $lang_array = $this->getLang();
  29. $lang_var = isset($lang_array[$code_var]) ? $lang_array[$code_var] : $code_var;
  30. if ($code_var == 'SUCCESS') {
  31. $code_var = 0;
  32. } else {
  33. $code_array = array_keys($lang_array);
  34. $code_index = array_search($code_var, $code_array);
  35. if ($code_index != false) {
  36. $code_var = 10000 + $code_index;
  37. }
  38. }
  39. return success($code_var, $lang_var, $data);
  40. }
  41. /**
  42. * 操作失败返回值函数
  43. * @param string $data
  44. * @param string $code_var
  45. * @return array
  46. */
  47. public function error($data = '', $code_var = 'FAIL')
  48. {
  49. $lang_array = $this->getLang();
  50. if (isset($lang_array[$code_var])) {
  51. $lang_var = $lang_array[$code_var];
  52. } else {
  53. $lang_var = $code_var;
  54. $code_var = 'FAIL';
  55. }
  56. $code_array = array_keys($lang_array);
  57. $code_index = array_search($code_var, $code_array);
  58. if ($code_index != false) {
  59. $code_var = -10000 - $code_index;
  60. }
  61. return error($code_var, $lang_var, $data);
  62. }
  63. /**
  64. * 获取语言包数组
  65. * @return Ambigous <multitype:, unknown>
  66. */
  67. public function getLang()
  68. {
  69. $default_lang = config("lang.default_lang");
  70. $cache_common = Cache::get("lang_app/lang/" . $default_lang . '/model.php');
  71. if (empty($cache_common)) {
  72. $cache_common = include 'app/lang/' . $default_lang . '/model.php';
  73. Cache::tag("lang")->set("lang_app/lang/" . $default_lang, $cache_common);
  74. }
  75. $lang_path = isset($this->lang) ? $this->lang : '';
  76. if (!empty($lang_path)) {
  77. $cache_path = Cache::get("lang_" . $lang_path . "/" . $default_lang . '/model.php');
  78. if (empty($cache_path)) {
  79. $cache_path = include $lang_path . "/" . $default_lang . '/model.php';
  80. Cache::tag("lang")->set("lang_" . $lang_path . "/" . $default_lang, $cache_path);
  81. }
  82. $lang = array_merge($cache_common, $cache_path);
  83. } else {
  84. $lang = $cache_common;
  85. }
  86. return $lang;
  87. }
  88. }