Pc.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. /**
  3. * Index.php
  4. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  5. * =========================================================
  6. * Copy right 2015-2025 山西牛酷信息科技有限公司, 保留所有权利。
  7. * ----------------------------------------------
  8. * 官方网址: https://www.niushop.com
  9. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  10. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  11. * =========================================================
  12. * @author : niuteam
  13. * @date : 2022.8.8
  14. * @version : v5.0.0.1
  15. */
  16. namespace app\api\controller;
  17. use app\model\goods\Goods as GoodsModel;
  18. use app\model\goods\GoodsCategory as GoodsCategoryModel;
  19. use addon\pc\model\Pc as PcModel;
  20. use app\model\web\Config as ConfigModel;
  21. /**
  22. * Pc端接口
  23. * @author Administrator
  24. *
  25. */
  26. class Pc extends BaseApi
  27. {
  28. /**
  29. * 获取首页浮层
  30. */
  31. public function floatLayer()
  32. {
  33. $pc_model = new PcModel();
  34. $info = $pc_model->getFloatLayer($this->site_id);
  35. return $this->response($this->success($info[ 'data' ][ 'value' ]));
  36. }
  37. /**
  38. * 楼层列表
  39. *
  40. * @return string
  41. */
  42. public function floors()
  43. {
  44. $pc_model = new PcModel();
  45. $condition = [
  46. [ 'state', '=', 1 ],
  47. [ 'site_id', '=', $this->site_id ]
  48. ];
  49. $list = $pc_model->getFloorList($condition, 'pf.title,pf.value,fb.name as block_name,fb.title as block_title');
  50. if (!empty($list[ 'data' ])) {
  51. $config_model = new ConfigModel();
  52. $sort_config = $config_model->getGoodsSort($this->site_id);
  53. $sort_config = $sort_config[ 'data' ][ 'value' ];
  54. $goods_model = new GoodsModel();
  55. $goods_category_model = new GoodsCategoryModel();
  56. foreach ($list[ 'data' ] as $k => $v) {
  57. $value = $v[ 'value' ];
  58. if (!empty($value)) {
  59. $value = json_decode($value, true);
  60. foreach ($value as $ck => $cv) {
  61. if (!empty($cv[ 'type' ])) {
  62. if ($cv[ 'type' ] == 'goods') {
  63. $field = 'gs.sku_id,gs.price,gs.market_price,gs.discount_price,g.goods_stock,(g.sale_num + g.virtual_sale) as sale_num,g.goods_image,g.goods_name,g.introduction';
  64. $order = 'g.sort ' . $sort_config[ 'type' ] . ',g.create_time desc';
  65. $join = [
  66. [ 'goods g', 'gs.sku_id = g.sku_id', 'inner' ]
  67. ];
  68. $goods_sku_list = $goods_model->getGoodsSkuPageList([ [ 'gs.goods_id', 'in', $cv[ 'value' ][ 'goods_ids' ] ] ], 1, 0, $order, $field, 'gs', $join)[ 'data' ][ 'list' ];
  69. $value[ $ck ][ 'value' ][ 'list' ] = $goods_sku_list;
  70. } elseif ($cv[ 'type' ] == 'category') {
  71. // 商品分类
  72. $condition = [
  73. [ 'category_id', 'in', $cv[ 'value' ][ 'category_ids' ] ],
  74. [ 'site_id', '=', $this->site_id ]
  75. ];
  76. $category_list = $goods_category_model->getCategoryList($condition, 'category_id,category_name,short_name,level,image,image_adv');
  77. $category_list = $category_list[ 'data' ];
  78. $value[ $ck ][ 'value' ][ 'list' ] = $category_list;
  79. }
  80. }
  81. }
  82. $list[ 'data' ][ $k ][ 'value' ] = $value;
  83. }
  84. }
  85. }
  86. return $this->response($list);
  87. }
  88. /**
  89. * 获取导航
  90. */
  91. public function navList()
  92. {
  93. $pc_model = new PcModel();
  94. $data = $pc_model->getNavList([ [ 'is_show', '=', 1 ], [ 'site_id', '=', $this->site_id ] ], 'id,nav_title,nav_url,sort,is_blank,create_time,modify_time,nav_icon,is_show', 'sort asc,create_time desc');
  95. return $this->response($data);
  96. }
  97. /**
  98. * 获取友情链接
  99. */
  100. public function friendlyLink()
  101. {
  102. $pc_model = new PcModel();
  103. $data = $pc_model->getlinkList([ [ 'is_show', '=', 1 ], [ 'site_id', '=', $this->site_id ] ], 'id,link_title,link_url,link_pic,link_sort,is_blank', 'link_sort asc,id desc');
  104. return $this->response($data);
  105. }
  106. }