wesmiler 1 개월 전
부모
커밋
e20deb0c5a
3개의 변경된 파일173개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 0
      app/Http/Controllers/Api/v1/IndexController.php
  2. 3 1
      app/Services/Common/AdService.php
  3. 169 0
      app/Services/Common/GoodsService.php

+ 1 - 0
app/Http/Controllers/Api/v1/IndexController.php

@@ -64,6 +64,7 @@ class IndexController extends webApp
             'historyGoods'=> isset($historyGoods['list'])? $historyGoods['list'] : [],
             // 促销商品
             'proGoodsList'=> isset($proGoodsList['list'])? $proGoodsList['list'] : [],
+            'userId'=> $this->userId
         ];
         return showJson(1010, true, $data);
     }

+ 3 - 1
app/Services/Common/AdService.php

@@ -76,7 +76,9 @@ class AdService extends BaseService
     {
         $data = request()->all();
         // 图片处理
-        $cover = $data['cover']? trim($data['cover']): '';
+        if(isset($data['cover'])){
+            $data['cover'] = get_image_path($data['cover']);
+        }
 
         // 结束时间
         if (isset($data['end_time'])) {

+ 169 - 0
app/Services/Common/GoodsService.php

@@ -0,0 +1,169 @@
+<?php
+// +----------------------------------------------------------------------
+// | LARAVEL8.0 框架 [ LARAVEL ][ RXThinkCMF ]
+// +----------------------------------------------------------------------
+// | 版权所有 2017~2021 LARAVEL研发中心
+// +----------------------------------------------------------------------
+// | 官方网站: http://www.laravel.cn
+// +----------------------------------------------------------------------
+// | Author: laravel开发员 <laravel.qq.com>
+// +----------------------------------------------------------------------
+
+namespace App\Services\Common;
+
+use App\Models\GoodsModel;
+use App\Services\BaseService;
+use App\Services\RedisService;
+use wxkxklmyt\Scws;
+
+/**
+ * 商品管理-服务类
+ * @author laravel开发员
+ * @since 2020/11/11
+ * @package App\Services\Common
+ */
+class GoodsService extends BaseService
+{
+    /**
+     * 构造函数
+     * @author laravel开发员
+     * @since 2020/11/11
+     * AdService constructor.
+     */
+    public function __construct()
+    {
+        $this->model = new GoodsModel();
+    }
+
+    /**
+     * 列表
+     * @param $params
+     * @param int $pageSize
+     * @return array
+     */
+    public function getDataList($params, $pageSize = 15)
+    {
+        $query = $this->getQuery($params);
+        $list = $query->select(['a.*'])
+            ->paginate($pageSize > 0 ? $pageSize : 9999999);
+        $list = $list? $list->toArray() :[];
+        if($list){
+            foreach($list['data'] as &$item){
+                $item['create_time'] = $item['create_time']? datetime($item['create_time'],'Y-m-d H.i.s') : '';
+                $item['discount_start_time'] = $item['discount_start_time']? date('Y-m-d H:i:s', $item['discount_start_time']):'';
+                $item['discount_end_time'] = $item['discount_end_time']? date('Y-m-d H:i:s', $item['discount_end_time']):'';
+            }
+        }
+
+        return [
+            'pageSize'=> $pageSize,
+            'total'=>isset($list['total'])? $list['total'] : 0,
+            'list'=> isset($list['data'])? $list['data'] : []
+        ];
+    }
+
+    /**
+     * 查询
+     * @param $params
+     * @return \Illuminate\Database\Eloquent\Builder
+     */
+    public function getQuery($params)
+    {
+        $where = ['a.status'=>1,'a.mark' => 1];
+        $status = isset($params['status'])? $params['status'] : 1;
+        if($status>0){
+            $where['a.status'] = $status;
+        }else{
+            unset($where['a.status']);
+        }
+        $model = $this->model->with(['category'])->from('goods as a')
+            ->leftJoin('goods_categorys as b','b.cate_id','=','a.cate_id')
+            ->where($where)
+            ->where(function($query) use($params){
+
+                // 分类
+                $cateId = isset($params['cate_id'])? $params['cate_id'] : 0;
+                if($cateId){
+                    $query->where(function($query) use($cateId){
+                        $prefix = env('DB_PREFIX','lev_');
+                        $query->where('a.cate_id', $cateId)
+                            ->orWhereRaw("FIND_IN_SET({$cateId},{$prefix}b.pids)");
+                    });
+                }
+
+                // 品牌
+                $brandId = isset($params['brand_id'])? $params['brand_id'] : 0;
+                if($brandId>0){
+                    $query->where('a.brand_id', $brandId);
+                }
+
+                $type = isset($params['type'])? $params['type'] : 0;
+                if($type==2){
+                    $query->where('a.is_discount', 1)->where(function($query){
+                        $query->where('a.discount_start_time', '<=', time())
+                            ->where('a.discount_end_time', '>=', time())
+                            ->orWhere('a.discount_end_time', '<=', 0);
+                    });
+                }
+            })
+            ->where(function ($query) use($params){
+                $keyword = isset($params['keyword'])? $params['keyword'] : '';
+                if($keyword){
+                    $scws = new Scws();
+                    $kws = $scws->scws($keyword,3,false);
+                    if(count($kws) >1){
+                        $query->where(function ($query) use ($kws) {
+                            foreach ($kws as $kw) {
+                                $kw = trim($kw);
+                                $query->where('a.goods_name', 'like', "%{$kw}%")
+                                    ->where('a.keywords', 'like', "%{$kw}%");
+                            }
+                        });
+                    }else{
+                        $query->where(function ($query) use ($keyword){
+                            $query->where('a.goods_name','like',"%{$keyword}%")
+                                ->orWhere('a.goods_pinyin','like',"%{$keyword}%")
+                                ->orWhere('a.keywords', 'like', "%{$keyword}%");
+                        });
+                    }
+                }
+            });
+
+        return $model;
+    }
+
+    /**
+     * 导入
+     */
+    public function import()
+    {
+
+    }
+
+
+    /**
+     * 添加或编辑
+     * @return array
+     * @since 2020/11/11
+     * @author laravel开发员
+     */
+    public function edit()
+    {
+        $data = request()->all();
+        // 图片处理
+        if(isset($data['thumb'])){
+            $data['thumb'] = get_image_path($data['thumb']);
+        }
+
+        // 折扣时间
+        if (isset($data['discount_start_time'])) {
+            $data['discount_start_time'] = strtotime($data['discount_start_time']);
+        }
+
+        if (isset($data['discount_end_time'])) {
+            $data['discount_end_time'] = strtotime($data['discount_end_time']);
+        }
+        return parent::edit($data); // TODO: Change the autogenerated stub
+    }
+
+}