Config.php 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\model\web;
  11. use app\model\system\Config as ConfigModel;
  12. use app\model\BaseModel;
  13. use app\model\system\Upgrade;
  14. use app\model\upload\Upload;
  15. /**
  16. * 网站系统性设置
  17. */
  18. class Config extends BaseModel
  19. {
  20. //缓存类型
  21. private $cache_list = [
  22. [
  23. 'name' => '数据缓存',
  24. 'desc' => '清除cache数据缓存',
  25. 'key' => 'content',
  26. 'btn' => '清除',
  27. 'icon' => 'public/static/img/cache/data.png'
  28. ],
  29. [
  30. 'name' => '数据表缓存',
  31. 'desc' => '新增/修改数据表后,需要清除数据表缓存',
  32. 'key' => 'data_table_cache',
  33. 'btn' => '清除',
  34. 'icon' => 'public/static/img/cache/data_table.png'
  35. ],
  36. [
  37. 'name' => '模板缓存',
  38. 'desc' => '模板缓存',
  39. 'key' => 'template_cache',
  40. 'btn' => '清除',
  41. 'icon' => 'public/static/img/cache/template.png'
  42. ],
  43. [
  44. 'name' => '刷新菜单',
  45. 'desc' => '新增/修改插件菜单后,需要刷新插件菜单',
  46. 'key' => 'menu_cache',
  47. 'btn' => '刷新',
  48. 'icon' => 'public/static/img/cache/template.png'
  49. ],
  50. [
  51. 'name' => '刷新自定义模板',
  52. 'desc' => '新增/修改自定义组件后,需要刷新自定义模板',
  53. 'key' => 'diy_view',
  54. 'btn' => '刷新',
  55. 'icon' => 'public/static/img/cache/template.png'
  56. ],
  57. ];
  58. /**
  59. * 验证码设置
  60. * @param $data
  61. * @param int $site_id
  62. * @param string $app_module
  63. * @return array
  64. */
  65. public function setCaptchaConfig($data, $site_id = 1, $app_module = 'shop')
  66. {
  67. $config = new ConfigModel();
  68. $res = $config->setConfig($data, '验证码设置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'CAPTCHA_CONFIG' ] ]);
  69. return $res;
  70. }
  71. /**
  72. * 查询验证码设置
  73. * @param int $site_id
  74. * @param string $app_module
  75. * @return array
  76. */
  77. public function getCaptchaConfig($site_id = 1, $app_module = 'shop')
  78. {
  79. $config = new ConfigModel();
  80. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'CAPTCHA_CONFIG' ] ]);
  81. if (empty($res[ 'data' ][ 'value' ])) {
  82. $res[ 'data' ][ 'value' ] = [
  83. 'shop_login' => 1,
  84. 'shop_reception_login' => 1
  85. ];
  86. } else {
  87. if (isset($res[ 'data' ][ 'value' ][ 'shop_reception_login' ]) === false) {
  88. $res[ 'data' ][ 'value' ][ 'shop_reception_login' ] = 1;
  89. }
  90. }
  91. return $res;
  92. }
  93. /**
  94. * 默认图上传配置
  95. * @param $data
  96. * @param int $site_id
  97. * @param string $app_module
  98. * @return array
  99. */
  100. public function setDefaultImg($data, $site_id = 0, $app_module = 'shop')
  101. {
  102. $config_info = $this->getDefaultImg($site_id, $app_module)[ 'data' ][ 'value' ];
  103. if (!empty($config_info)) {
  104. $upload_model = new Upload();
  105. if ($data[ 'goods' ] && $config_info[ 'goods' ] && $data[ 'goods' ] != $config_info[ 'goods' ]) {
  106. $upload_model->deletePic($config_info[ 'goods' ], $site_id);
  107. }
  108. if ($data[ 'head' ] && $config_info[ 'head' ] && $data[ 'head' ] != $config_info[ 'head' ]) {
  109. $upload_model->deletePic($config_info[ 'head' ], $site_id);
  110. }
  111. if ($data[ 'store' ] && $config_info[ 'store' ] && $data[ 'store' ] != $config_info[ 'store' ]) {
  112. $upload_model->deletePic($config_info[ 'store' ], $site_id);
  113. }
  114. if ($data[ 'article' ] && $config_info[ 'article' ] && $data[ 'article' ] != $config_info[ 'article' ]) {
  115. $upload_model->deletePic($config_info[ 'article' ], $site_id);
  116. }
  117. }
  118. $config = new ConfigModel();
  119. $res = $config->setConfig($data, '默认图设置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'DEFAULT_IMAGE' ] ]);
  120. return $res;
  121. }
  122. /**
  123. * 默认图查询上传配置
  124. * @param $site_id
  125. * @param string $app_model
  126. * @return array
  127. */
  128. public function getDefaultImg($site_id, $app_model = 'shop')
  129. {
  130. $config = new ConfigModel();
  131. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_model ], [ 'config_key', '=', 'DEFAULT_IMAGE' ] ]);
  132. if (empty($res[ 'data' ][ 'value' ])) {
  133. $res[ 'data' ][ 'value' ] = [
  134. "goods" => "public/static/img/default_img/square.png",
  135. "head" => "public/static/img/default_img/head.png",
  136. "store" => "public/static/img/default_img/store.png",
  137. "article" => "public/static/img/default_img/article.png",
  138. ];
  139. }
  140. if (empty($res[ 'data' ][ 'value' ][ 'head' ])) {
  141. $res[ 'data' ][ 'value' ][ 'head' ] = 'public/static/img/default_img/head.png';
  142. }
  143. if (empty($res[ 'data' ][ 'value' ][ 'article' ])) {
  144. $res[ 'data' ][ 'value' ][ 'article' ] = 'public/static/img/default_img/article.png';
  145. }
  146. if (empty($res[ 'data' ][ 'value' ][ 'store' ])) {
  147. $res[ 'data' ][ 'value' ][ 'store' ] = 'public/static/img/default_img/store.png';
  148. }
  149. return $res;
  150. }
  151. /**
  152. * 获取缓存类型
  153. */
  154. public function getCacheList()
  155. {
  156. return $this->cache_list;
  157. }
  158. public function setCopyright($data, $site_id = 1, $app_model = 'shop')
  159. {
  160. $config = new ConfigModel();
  161. $res = $config->setConfig($data, '版权设置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_model ], [ 'config_key', '=', 'COPYRIGHT' ] ]);
  162. return $res;
  163. }
  164. /**
  165. * 获取版权信息
  166. * @param int $site_id
  167. * @param string $app_module
  168. * @return array
  169. */
  170. public function getCopyright($site_id = 1, $app_module = 'shop')
  171. {
  172. $config = new ConfigModel();
  173. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'COPYRIGHT' ] ]);
  174. $auth_info = cache("auth_info_copyright");
  175. if (empty($auth_info)) {
  176. $upgrade_model = new Upgrade();
  177. $auth_info = $upgrade_model->authInfo();
  178. cache("auth_info_copyright", $auth_info, [ 'expire' => 604800 ]);
  179. }
  180. if (empty($res[ 'data' ][ 'value' ])) {
  181. $res[ 'data' ][ 'value' ] = [
  182. 'logo' => '',
  183. 'company_name' => '',
  184. 'copyright_link' => '',
  185. 'copyright_desc' => '',
  186. 'icp' => '',
  187. 'gov_record' => '',
  188. 'gov_url' => '',
  189. 'market_supervision_url' => ''
  190. ];
  191. } else {
  192. if (is_null($auth_info) || $auth_info[ 'code' ] != 0) {
  193. $res[ 'data' ][ 'value' ][ 'logo' ] = '';
  194. $res[ 'data' ][ 'value' ][ 'company_name' ] = '';
  195. $res[ 'data' ][ 'value' ][ 'copyright_link' ] = '';
  196. $res[ 'data' ][ 'value' ][ 'copyright_desc' ] = '';
  197. }
  198. }
  199. // 检查是否授权
  200. if (!empty($auth_info) && $auth_info[ 'code' ] >= 0) {
  201. $res[ 'data' ][ 'value' ][ 'auth' ] = true;
  202. } else {
  203. $res[ 'data' ][ 'value' ][ 'auth' ] = false;
  204. }
  205. return $res;
  206. }
  207. /**
  208. * 授权设置
  209. * @param $data
  210. * @param int $site_id
  211. * @param string $app_model
  212. * @return array
  213. */
  214. public function setAuth($data, $site_id = 1, $app_model = 'shop')
  215. {
  216. $config = new ConfigModel();
  217. $res = $config->setConfig($data, '授权设置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_model ], [ 'config_key', '=', 'AUTH' ] ]);
  218. return $res;
  219. }
  220. /**
  221. * 获取授权设置
  222. * @return array
  223. */
  224. public function getAuth($site_id = 1, $app_module = 'shop')
  225. {
  226. $config = new ConfigModel();
  227. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'AUTH' ] ]);
  228. if (empty($res[ 'data' ][ 'value' ])) {
  229. $res[ 'data' ][ 'value' ] = [
  230. 'code' => '',
  231. ];
  232. }
  233. return $res;
  234. }
  235. /**
  236. * 地图设置
  237. * @param $data
  238. * @param int $site_id
  239. * @param string $app_model
  240. * @return array
  241. */
  242. public function setMapConfig($data, $site_id = 1, $app_model = 'shop')
  243. {
  244. $config = new ConfigModel();
  245. $res = $config->setConfig($data, '地图设置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_model ], [ 'config_key', '=', 'MAP_CONFIG' ] ]);
  246. return $res;
  247. }
  248. /**
  249. * 获取地图设置
  250. * @param int $site_id
  251. * @param string $app_module
  252. * @return array
  253. */
  254. public function getMapConfig($site_id = 1, $app_module = 'shop')
  255. {
  256. $config = new ConfigModel();
  257. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'MAP_CONFIG' ] ]);
  258. if (empty($res[ 'data' ][ 'value' ])) {
  259. $res[ 'data' ][ 'value' ] = [
  260. 'tencent_map_key' => '',
  261. ];
  262. }
  263. return $res;
  264. }
  265. /**
  266. * 设置获取H5域名配置
  267. * @param $data
  268. * @param int $site_id
  269. * @param string $app_module
  270. * @return array
  271. */
  272. public function seth5DomainName($data, $site_id = 1, $app_module = 'shop')
  273. {
  274. $search = '/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/';
  275. if ($data[ 'deploy_way' ] == 'separate') {
  276. if (!preg_match($search, $data[ 'domain_name_h5' ])) {
  277. return $this->error('', '请输入正确的域名地址');
  278. }
  279. }
  280. // 默认部署,更新店铺域名
  281. if ($data[ 'deploy_way' ] == 'default') {
  282. $this->setShopDomainConfig([
  283. 'domain_name' => __ROOT__
  284. ], $site_id);
  285. }
  286. $config = new ConfigModel();
  287. $res = $config->setConfig($data, 'H5域名配置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'H5_DOMAIN_NAME' ] ]);
  288. return $res;
  289. }
  290. /**
  291. * 获取H5域名配置
  292. * @param int $site_id
  293. * @param string $app_module
  294. * @return array
  295. */
  296. public function getH5DomainName($site_id = 1, $app_module = 'shop')
  297. {
  298. $config = new ConfigModel();
  299. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'H5_DOMAIN_NAME' ] ]);
  300. if (empty($res[ 'data' ][ 'value' ])) {
  301. $res[ 'data' ][ 'value' ] = [
  302. 'domain_name_h5' => __ROOT__ . '/h5',
  303. 'deploy_way' => 'default'
  304. ];
  305. }
  306. return $res;
  307. }
  308. /**
  309. * 设置域名跳转配置
  310. * @param $data
  311. * @param int $site_id
  312. * @param string $app_module
  313. * @return array
  314. */
  315. public function setDomainJumpConfig($data, $site_id = 1, $app_module = 'shop')
  316. {
  317. $config = new ConfigModel();
  318. $res = $config->setConfig($data, '获取域名跳转配置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'DOMAIN_JUMP_CONFIG' ] ]);
  319. return $res;
  320. }
  321. /**
  322. * 获取域名跳转配置
  323. * @param int $site_id
  324. * @param string $app_module
  325. * @return array
  326. */
  327. public function getDomainJumpConfig($site_id = 1, $app_module = 'shop')
  328. {
  329. $config = new ConfigModel();
  330. $res = $config->getConfig([
  331. [ 'site_id', '=', $site_id ],
  332. [ 'app_module', '=', $app_module ],
  333. [ 'config_key', '=', 'DOMAIN_JUMP_CONFIG' ]
  334. ]);
  335. if (empty($res[ 'data' ][ 'value' ])) {
  336. $res[ 'data' ][ 'value' ] = [
  337. 'jump_type' => 3, // 1:用户前台,2:商家后台,3:引导页
  338. ];
  339. }
  340. return $res;
  341. }
  342. /**
  343. * 设置获取PC域名配置
  344. * @param $data
  345. * @param int $site_id
  346. * @param string $app_module
  347. * @return array
  348. */
  349. public function setPcDomainName($data, $site_id = 1, $app_module = 'shop')
  350. {
  351. $search = '/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/';
  352. if ($data[ 'deploy_way' ] == 'separate') {
  353. if (!preg_match($search, $data[ 'domain_name_pc' ])) {
  354. return $this->error('', '请输入正确的域名地址');
  355. }
  356. }
  357. // 默认部署,更新店铺域名
  358. if ($data[ 'deploy_way' ] == 'default') {
  359. $this->setShopDomainConfig([
  360. 'domain_name' => __ROOT__
  361. ], $site_id);
  362. }
  363. $config = new ConfigModel();
  364. $res = $config->setConfig($data, 'PC域名配置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'PC_DOMAIN_NAME' ] ]);
  365. return $res;
  366. }
  367. /**
  368. * 获取PC域名配置
  369. * @param int $site_id
  370. * @param string $app_module
  371. * @return array
  372. */
  373. public function getPcDomainName($site_id = 1, $app_module = 'shop')
  374. {
  375. $config = new ConfigModel();
  376. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'PC_DOMAIN_NAME' ] ]);
  377. if (empty($res[ 'data' ][ 'value' ])) {
  378. $res[ 'data' ][ 'value' ] = [
  379. 'domain_name_pc' => __ROOT__ . '/web',
  380. 'deploy_way' => 'default'
  381. ];
  382. } else {
  383. if ($res[ 'data' ][ 'value' ][ 'domain_name_pc' ] == '' || empty($res[ 'data' ][ 'value' ][ 'deploy_way' ]) || $res[ 'data' ][ 'value' ][ 'deploy_way' ] == 'default') {
  384. $res[ 'data' ][ 'value' ] = [
  385. 'domain_name_pc' => __ROOT__ . '/web'
  386. ];
  387. }
  388. $res[ 'data' ][ 'value' ][ 'deploy_way' ] = $res[ 'data' ][ 'value' ][ 'deploy_way' ] ?? 'default';
  389. }
  390. return $res;
  391. }
  392. /**
  393. * 设置热门搜索关键词
  394. * @param $data
  395. * @param $site_id
  396. * @param $app_module
  397. * @return array
  398. */
  399. public function setHotSearchWords($data, $site_id, $app_module)
  400. {
  401. $config = new ConfigModel();
  402. $res = $config->setConfig($data, '商品热门搜索关键词', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_HOT_SEARCH_WORDS_CONFIG' ] ]);
  403. return $res;
  404. }
  405. /**
  406. * 获取热门搜索关键词
  407. * @param $site_id
  408. * @param $app_module
  409. * @return array
  410. */
  411. public function getHotSearchWords($site_id, $app_module)
  412. {
  413. $config = new ConfigModel();
  414. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_HOT_SEARCH_WORDS_CONFIG' ] ]);
  415. if (empty($res[ 'data' ][ 'value' ])) {
  416. $res[ 'data' ][ 'value' ] = [
  417. 'words' => ''
  418. ];
  419. }
  420. return $res;
  421. }
  422. /**
  423. * 设置商品推荐—猜你喜欢
  424. * @param $data
  425. * @param $site_id
  426. * @param $app_module
  427. * @return array
  428. */
  429. public function setGuessYouLike($data, $site_id, $app_module)
  430. {
  431. $config = new ConfigModel();
  432. $res = $config->setConfig($data, '商品推荐', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_GUESS_YOU_LIKE_CONFIG' ] ]);
  433. return $res;
  434. }
  435. /**
  436. * 获取商品推荐—猜你喜欢
  437. * @param $site_id
  438. * @param $app_module
  439. * @return array
  440. */
  441. public function getGuessYouLike($site_id, $app_module)
  442. {
  443. $config = new ConfigModel();
  444. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_GUESS_YOU_LIKE_CONFIG' ] ]);
  445. if (empty($res[ 'data' ][ 'value' ])) {
  446. $res[ 'data' ][ 'value' ] = [
  447. 'title' => '猜你喜欢',
  448. 'supportPage' => [ 'goods_detail', 'cart', 'collect', 'pay', 'order_detail', 'super_member', 'guafen', 'fenxiao_level' ],
  449. 'sources' => 'sort',
  450. 'goodsIds' => [],
  451. 'fontWeight' => false,
  452. 'padding' => 10,
  453. 'cartEvent' => "detail",
  454. 'text' => "购买",
  455. 'textColor' => "#FFFFFF",
  456. 'theme' => "default",
  457. 'aroundRadius' => 25,
  458. 'control' => true,
  459. 'bgColor' => "#FF6A00",
  460. 'style' => "button",
  461. 'iconDiy' => [
  462. 'iconType' => "icon",
  463. 'icon' => "",
  464. 'style=' => [
  465. 'fontSize' => "60",
  466. 'iconBgColor' => [],
  467. 'iconBgColorDeg' => 0,
  468. 'iconBgImg' => "",
  469. 'bgRadius' => 0,
  470. 'iconColor' => [ "#000000" ],
  471. 'iconColorDeg' => 0
  472. ]
  473. ]
  474. ];
  475. }
  476. $res[ 'data' ][ 'value' ][ 'add_cart_switch' ] = $res[ 'data' ][ 'value' ][ 'add_cart_switch' ] ?? 0; // 加入购物车开关
  477. return $res;
  478. }
  479. /**
  480. * 设置商品列表配置
  481. * @param $data
  482. * @param $site_id
  483. * @param $app_module
  484. * @return array
  485. */
  486. public function setGoodsListConfig($data, $site_id, $app_module)
  487. {
  488. $config = new ConfigModel();
  489. $res = $config->setConfig($data, '商品列表配置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_LIST_CONFIG' ] ]);
  490. return $res;
  491. }
  492. /**
  493. * 设置商品列表配置
  494. * @param $site_id
  495. * @param $app_module
  496. * @return array
  497. */
  498. public function getGoodsListConfig($site_id, $app_module)
  499. {
  500. $config = new ConfigModel();
  501. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_LIST_CONFIG' ] ]);
  502. //数据格式化
  503. if (empty($res[ 'data' ][ 'value' ])) {
  504. $data = [
  505. 'fontWeight' => false,
  506. 'padding' => 10,
  507. 'cartEvent' => "detail",
  508. 'text' => "购买",
  509. 'textColor' => "#FFFFFF",
  510. 'theme' => "default",
  511. 'aroundRadius' => 25,
  512. 'control' => true,
  513. 'bgColor' => "#FF6A00",
  514. 'style' => "button",
  515. 'iconDiy' => [
  516. 'iconType' => "icon",
  517. 'icon' => "",
  518. 'style=' => [
  519. 'fontSize' => "60",
  520. 'iconBgColor' => [],
  521. 'iconBgColorDeg' => 0,
  522. 'iconBgImg' => "",
  523. 'bgRadius' => 0,
  524. 'iconColor' => [ "#000000" ],
  525. 'iconColorDeg' => 0
  526. ]
  527. ]
  528. ];
  529. $res[ 'data' ][ 'value' ] = $data;
  530. }
  531. return $res;
  532. }
  533. /**
  534. * 设置默认搜索关键词
  535. * @param $data
  536. * @param $site_id
  537. * @param $app_module
  538. * @return array
  539. */
  540. public function setDefaultSearchWords($data, $site_id, $app_module)
  541. {
  542. $config = new ConfigModel();
  543. $res = $config->setConfig($data, '默认搜索关键词', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_DEFAULT_SEARCH_WORDS_CONFIG' ] ]);
  544. return $res;
  545. }
  546. /**
  547. * 获取默认搜索关键词
  548. * @param $site_id
  549. * @param $app_module
  550. * @return array
  551. */
  552. public function getDefaultSearchWords($site_id, $app_module)
  553. {
  554. $config = new ConfigModel();
  555. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_DEFAULT_SEARCH_WORDS_CONFIG' ] ]);
  556. if (empty($res[ 'data' ][ 'value' ])) {
  557. $res[ 'data' ][ 'value' ] = [
  558. 'words' => '搜索 商品'
  559. ];
  560. }
  561. return $res;
  562. }
  563. /**
  564. * 设置商品排序方式
  565. * @param $data
  566. * @param $site_id
  567. * @param $app_module
  568. * @return array
  569. */
  570. public function setGoodsSort($data, $site_id, $app_module)
  571. {
  572. $config = new ConfigModel();
  573. $res = $config->setConfig($data, '商品默认排序方式', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_SORT_CONFIG' ] ]);
  574. return $res;
  575. }
  576. /**
  577. * 获取商品排序方式
  578. * @param $site_id
  579. * @param $app_module
  580. * @return array
  581. */
  582. public function getGoodsSort($site_id, $app_module = 'shop')
  583. {
  584. $config = new ConfigModel();
  585. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_SORT_CONFIG' ] ]);
  586. if (empty($res[ 'data' ][ 'value' ])) {
  587. $res[ 'data' ][ 'value' ] = [
  588. 'type' => 'asc',
  589. 'default_value' => 100
  590. ];
  591. }
  592. return $res;
  593. }
  594. /**
  595. * 导航风格设置
  596. * @param $data
  597. * @param int $site_id
  598. * @param string $app_module
  599. * @return array
  600. */
  601. public function setStyle($data, $site_id = 1, $app_module = 'shop')
  602. {
  603. $config = new ConfigModel();
  604. $res = $config->setConfig($data, '验证码设置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'STYLE_CONFIG' ] ]);
  605. return $res;
  606. }
  607. /**
  608. * 查询导航风格
  609. * @param int $site_id
  610. * @param string $app_module
  611. * @return array|string
  612. */
  613. public function getStyle($site_id = 1, $app_module = 'shop')
  614. {
  615. $config = new ConfigModel();
  616. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'STYLE_CONFIG' ] ]);
  617. if (empty($res[ 'data' ][ 'value' ])) {
  618. $res = 'app/shop/view/base/style2.html';
  619. } else {
  620. $res = $res[ 'data' ][ 'value' ][ 'style' ];
  621. }
  622. return $res;
  623. }
  624. /**
  625. * 设置PC端首页分类设置
  626. * @param $data
  627. * @param int $site_id
  628. * @param string $app_module
  629. * @return array
  630. */
  631. public function setCategoryConfig($data, $site_id = 1, $app_module = 'shop')
  632. {
  633. $config = new ConfigModel();
  634. $res = $config->setConfig($data, 'PC端首页分类设置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'SHOP_CATEGORY_CONFIG' ] ]);
  635. return $res;
  636. }
  637. /**
  638. * 获取pc首页商品分类配置
  639. * @param int $site_id
  640. * @param string $app_module
  641. * @return array
  642. */
  643. public function getCategoryConfig($site_id = 1, $app_module = 'shop')
  644. {
  645. $config = new ConfigModel();
  646. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'SHOP_CATEGORY_CONFIG' ] ]);
  647. if (empty($res[ 'data' ][ 'value' ])) {
  648. $res[ 'data' ][ 'value' ] = [
  649. 'category' => 1,
  650. 'img' => 1
  651. ];
  652. }
  653. return $res;
  654. }
  655. /**
  656. * 设置商品详情配置
  657. * @param $data
  658. * @param $site_id
  659. * @param $app_module
  660. * @return array
  661. */
  662. public function setGoodsDetailConfig($data, $site_id, $app_module = 'shop')
  663. {
  664. $config = new ConfigModel();
  665. $res = $config->setConfig($data, '商品详情配置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_DETAIL_CONFIG' ] ]);
  666. return $res;
  667. }
  668. /**
  669. * 获取商品详情配置
  670. * @param $site_id
  671. * @param $app_module
  672. * @return array
  673. */
  674. public function getGoodsDetailConfig($site_id, $app_module = 'shop')
  675. {
  676. $config = new ConfigModel();
  677. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'GOODS_DETAIL_CONFIG' ] ]);
  678. if (empty($res[ 'data' ][ 'value' ])) {
  679. $res[ 'data' ][ 'value' ] = [
  680. 'nav_bar_switch' => 0, // 是否透明,0:不透明,1:透明
  681. 'introduction_color' => '#303133',
  682. ];
  683. }
  684. return $res;
  685. }
  686. /**
  687. * 设置店铺域名配置
  688. * @param $data
  689. * @param int $site_id
  690. * @param string $app_module
  691. * @return array
  692. */
  693. public function setShopDomainConfig($data, $site_id = 1, $app_module = 'shop')
  694. {
  695. $config = new ConfigModel();
  696. $res = $config->setConfig($data, '店铺域名配置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'SHOP_DOMAIN_CONFIG' ] ]);
  697. return $res;
  698. }
  699. /**
  700. * 获取店铺域名配置
  701. * @param int $site_id
  702. * @param string $app_module
  703. * @return array
  704. */
  705. public function getShopDomainConfig($site_id = 1, $app_module = 'shop')
  706. {
  707. $config = new ConfigModel();
  708. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'SHOP_DOMAIN_CONFIG' ] ]);
  709. if (empty($res[ 'data' ][ 'value' ])) {
  710. $res[ 'data' ][ 'value' ] = [
  711. 'domain_name' => __ROOT__,
  712. ];
  713. $this->setShopDomainConfig($res[ 'data' ][ 'value' ], $site_id);
  714. }
  715. return $res;
  716. }
  717. public function checkQqMapKey($tencent_map_key, $type = 0)
  718. {
  719. $url = 'https://apis.map.qq.com/ws/location/v1/ip?key=' . $tencent_map_key;
  720. $curl = curl_init();
  721. curl_setopt($curl, CURLOPT_URL, $url);
  722. curl_setopt($curl, CURLOPT_HEADER, 0);
  723. curl_setopt($curl, CURLOPT_TIMEOUT, 1);
  724. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  725. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  726. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  727. $data = curl_exec($curl);
  728. if (!empty($data)) {
  729. $data = json_decode($data, true);
  730. if ($data[ 'status' ] != 0 && $type == 0) {
  731. $data[ 'message' ] = "腾讯地图配置错误,无法定位地址";
  732. }
  733. }
  734. return $data;
  735. }
  736. }