diff --git a/app/api/controller/Goods.php b/app/api/controller/Goods.php index c557991c..23c41273 100644 --- a/app/api/controller/Goods.php +++ b/app/api/controller/Goods.php @@ -18,6 +18,7 @@ use app\common\model\GoodsImage as GoodsImageModel; use app\common\model\UploadFile as UploadFileModel; use app\common\service\qrcode\Goods as GoodsPoster; use cores\exception\BaseException; +use think\db\exception\DbException; use think\response\Json; /** @@ -30,15 +31,13 @@ class Goods extends Controller /** * 商品列表 * @return Json - * @throws \think\db\exception\DbException + * @throws DbException */ public function list(): Json { // 获取列表数据 $model = new GoodsModel; - $storeid = request()->header()['storeid']; $param = $this->request->param(); - $param['store_id'] = $storeid; $list = $model->getList($param); return $this->renderSuccess(compact('list')); } @@ -49,16 +48,13 @@ class Goods extends Controller * @param bool $verifyStatus 是否验证商品状态(上架) * @return Json * @throws \think\db\exception\DataNotFoundException - * @throws \think\db\exception\DbException + * @throws DbException * @throws \think\db\exception\ModelNotFoundException * @throws BaseException */ public function detail(int $goodsId, bool $verifyStatus = true): Json { // wmc商品详情 - $storeid = request()->header()['storeid']; - $param = $this->request->param(); - $param['store_id'] = $storeid; $model = new GoodsModel; $goodsInfo = $model->getDetails($goodsId, $verifyStatus); if (!empty($goodsInfo['content'])) { @@ -163,7 +159,7 @@ class Goods extends Controller * @param int $goodsId * @return Json * @throws \think\db\exception\DataNotFoundException - * @throws \think\db\exception\DbException + * @throws DbException * @throws \think\db\exception\ModelNotFoundException */ public function specData(int $goodsId): Json @@ -190,7 +186,7 @@ class Goods extends Controller * 推荐的商品列表 * @return Json * @throws \think\db\exception\DataNotFoundException - * @throws \think\db\exception\DbException + * @throws DbException * @throws \think\db\exception\ModelNotFoundException */ public function recommended(): Json @@ -289,7 +285,7 @@ class Goods extends Controller * @param string $channel 二维码渠道(小程序码、h5码) * @throws BaseException * @throws \think\db\exception\DataNotFoundException - * @throws \think\db\exception\DbException + * @throws DbException * @throws \think\db\exception\ModelNotFoundException */ public function poster(int $goodsId, string $channel = 'H5'): Json diff --git a/app/api/controller/Index.php b/app/api/controller/Index.php index 2f053aa9..21cc2659 100644 --- a/app/api/controller/Index.php +++ b/app/api/controller/Index.php @@ -1,8 +1,14 @@ select()->toArray(); foreach ($list as &$value) { $file_path = UploadFile::where('file_id', $value['image_id'])->field('file_id,file_path,file_type,storage,domain')->find(); @@ -23,4 +30,18 @@ class Index extends Controller } return $this->renderSuccess($list); } + + /** + * @notes:获取小程序配置 + * @return Json + * @throws DataNotFoundException + * @throws DbException + * @throws ModelNotFoundException + * @author: wanghousheng + */ + public function wxAppSetting(): Json + { + $data = (new \app\api\model\wxapp\Setting())->info(); + return $this->renderSuccess($data); + } } \ No newline at end of file diff --git a/app/api/model/wxapp/Setting.php b/app/api/model/wxapp/Setting.php index 46815755..660529d8 100644 --- a/app/api/model/wxapp/Setting.php +++ b/app/api/model/wxapp/Setting.php @@ -13,6 +13,9 @@ declare (strict_types=1); namespace app\api\model\wxapp; use app\common\model\wxapp\Setting as SettingModel; +use think\db\exception\DataNotFoundException; +use think\db\exception\DbException; +use think\db\exception\ModelNotFoundException; /** * 微信小程序设置模型 @@ -24,12 +27,30 @@ class Setting extends SettingModel /** * 验证当前是否允许访问 * @return bool - * @throws \think\db\exception\DataNotFoundException - * @throws \think\db\exception\DbException - * @throws \think\db\exception\ModelNotFoundException + * @throws DataNotFoundException + * @throws DbException + * @throws ModelNotFoundException */ public static function checkStatus(): bool { return (bool)static::getItem('basic', static::$storeId)['enabled']; } + + /** + * @notes:获取小程序配置 + * @return array + * @throws DataNotFoundException + * @throws DbException + * @throws ModelNotFoundException + * @author: wanghousheng + */ + public function info(): array + { + $data = static::getItem('basic', static::$storeId); + if (!empty($data['app_secret'])) { + unset($data['app_secret']); + } + return $data; + } + } \ No newline at end of file diff --git a/app/common/model/Goods.php b/app/common/model/Goods.php index 3ba7ff9b..c5331bd0 100644 --- a/app/common/model/Goods.php +++ b/app/common/model/Goods.php @@ -25,7 +25,6 @@ use think\model\relation\BelongsTo; use think\model\relation\HasMany; use think\model\relation\HasOne; use think\Paginator; -use app\common\model\Channel; /** * 商品模型 @@ -130,16 +129,18 @@ class Goods extends BaseModel */ public function skuList(): HasMany { - return $this->hasMany('GoodsSku','spu_id')->order(['id' => 'asc']); + return $this->hasMany('GoodsSku', 'spu_id')->order(['id' => 'asc']); } + /** * 关联商品规格表 * @return HasMany */ public function skuList1(): HasMany { - return $this->hasMany('GoodsSku','goods_id')->order(['id' => 'asc']); + return $this->hasMany('GoodsSku', 'goods_id')->order(['id' => 'asc']); } + /** * 关联商品规格关系表 * @return HasMany @@ -175,6 +176,7 @@ class Goods extends BaseModel { return $this->hasMany('Comment'); } + /** * 获取商品列表 * @param array $param 查询条件 @@ -206,7 +208,7 @@ class Goods extends BaseModel // 执行查询 $list = $query ->alias($this->name) - ->field(['goods.goods_id','goods.goods_name','cmmdty_model','link','cost_price_min','stock_total','link_other','goods_price_min']) + ->field(['goods.goods_id', 'goods.goods_name', 'cmmdty_model', 'link', 'cost_price_min', 'stock_total', 'link_other', 'goods_price_min']) ->where('is_delete', '=', 0) ->order($sort) ->paginate($listRows); @@ -307,6 +309,12 @@ class Goods extends BaseModel $field = $this->getAliasFields($this->name, ['content']); $field[] = 'selling_point'; + + //关键字搜索 wanghousheng + if (!empty($param['keyword'])) { + $query = $query->where('goods_name', 'like', "%{$param['keyword']}%") + ->whereOr('goods_no', 'like', "%{$param['keyword']}%"); + } // 执行查询 $list = $query->with(['images.file']) ->alias($this->name) @@ -366,7 +374,7 @@ class Goods extends BaseModel 'keywords' => '', 'role' => '', ]); - + // 实例化新查询对象 $query = $this->getNewQuery(); // 筛选条件 @@ -388,7 +396,7 @@ class Goods extends BaseModel $filter[] = ['stock_total', '=', 0]; // 已售罄 } } - + // 商品状态 $params['status'] > 0 && $filter[] = ['status', '=', (int)$params['status']]; $a = 1; @@ -398,7 +406,7 @@ class Goods extends BaseModel $GoodsCategoryRelName = (new GoodsCategoryRelModel())->getName(); $query->join($GoodsCategoryRelName, "{$GoodsCategoryRelName}.goods_id = {$this->name}.goods_id"); // 设置分类ID条件 - $query->where('goods_category_rel.category_id', 'in', explode(",", (string)$params['categoryId'])); + $query->where('goods_category_rel.category_id', 'in', explode(",", (string)$params['categoryId'])); // $query->where([ // 'goods_category_rel.category_id' => (int)$params['categoryId'], // //'goods.store_id' => (int)$params['store_id'], @@ -407,7 +415,7 @@ class Goods extends BaseModel } // 商品名称 - foreach (explode(",", $params['keywords']?? '') as $val) { + foreach (explode(",", $params['keywords'] ?? '') as $val) { $filter[] = ['goods_name', 'like', "%{$val}%"]; } @@ -439,7 +447,7 @@ class Goods extends BaseModel $filter[] = ['is_in_store', '=', $params['is_in_store']]; } if (isset($param['role']) && $param['role'] == 1) { - $filter[] = ['channel', 'in', ['jd','sn','zy']]; + $filter[] = ['channel', 'in', ['jd', 'sn', 'zy']]; } if (isset($param['store_id']) && $param['store_id'] !== '') { $filter[] = ['goods.store_id', '=', $params['store_id']]; diff --git a/app/common/model/wxapp/Setting.php b/app/common/model/wxapp/Setting.php index f1ff8261..b163867b 100644 --- a/app/common/model/wxapp/Setting.php +++ b/app/common/model/wxapp/Setting.php @@ -139,7 +139,19 @@ class Setting extends BaseModel // 小程序AppID 'app_id' => '', // 小程序AppSecret - 'app_secret' => '' + 'app_secret' => '', + //同城送 + 'same_city' => true, + //新人首礼 + 'new_first_gift' => true, + //大牌正品 + 'big_brand' => true, + //新品首发 + 'new_product' => true, + //排行榜 + 'ranking_list' => true, + //服务 + 'service' => true, ] ] ]; diff --git a/app/store/model/wxapp/Setting.php b/app/store/model/wxapp/Setting.php index 82e5d5db..7cf4b2b7 100644 --- a/app/store/model/wxapp/Setting.php +++ b/app/store/model/wxapp/Setting.php @@ -12,9 +12,9 @@ declare (strict_types=1); namespace app\store\model\wxapp; -use think\facade\Cache; use app\common\library\helper; use app\common\model\wxapp\Setting as SettingModel; +use think\facade\Cache; /** * 微信小程序设置模型 @@ -44,7 +44,7 @@ class Setting extends SettingModel return $model->save([ 'key' => $key, 'describe' => $this->describe[$key], - 'values' => helper::pick($values, ['enabled', 'app_id', 'app_secret']), + 'values' => helper::pick($values, ['enabled', 'app_id', 'app_secret', 'same_city', 'new_first_gift', 'big_brand', 'new_product', 'ranking_list', 'service']), 'update_time' => time(), 'store_id' => self::$storeId, ]);