| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- <?php
- declare (strict_types=1);
- namespace app\api\controller;
- use app\BaseController;
- use app\model\api\StoreCategory;
- use app\model\api\StoreBrand;
- use app\model\api\StoreProduct;
- use app\model\api\StoreProductAttrValue;
- use app\model\api\StoreProductReply;
- use app\Request;
- use library\services\UtilService;
- use think\facade\Db;
- class Product extends BaseController
- {
- /**
- * 获取分类列表
- * @param Request $request
- */
- public function categoryList(Request $request)
- {
- $post = UtilService::getMore([
- ['page', 1],
- ['pageSize', 20],
- ['pid', 0],
- ], $request);
- $where = [];
- if ($post['pid'] > 0) {
- $where[] = ['pid', '=', $post['pid']];
- }
- $result = (new StoreCategory())->getList($where, $post['page'], $post['pageSize']);
- return app('json')->success($result);
- }
- /**
- * 获取分类树
- */
- public function categoryTree()
- {
- $tree = (new StoreCategory())->getTree();
- return app('json')->success($tree);
- }
- /**
- * 获取品牌列表
- * @param Request $request
- */
- public function brandList(Request $request)
- {
- $post = UtilService::getMore([
- ['page', 1],
- ['pageSize', 20],
- ], $request);
- $result = (new StoreBrand())->getList([], $post['page'], $post['pageSize']);
- return app('json')->success($result);
- }
- /**
- * 获取商品列表
- * @param Request $request
- */
- public function productList(Request $request)
- {
- $post = UtilService::getMore([
- ['page', 1],
- ['pageSize', 20],
- ['category_id', ''],
- ['brand_id', ''],
- ['keyword', ''],
- ['sort', ''],
- ['order', ''],
- ], $request);
- $where = [
- ['is_show', '=', 1]
- ];
- if (!empty($post['category_id'])) {
- $where[] = ['category_id', '=', $post['category_id']];
- }
- if (!empty($post['brand_id'])) {
- $where[] = ['brand_id', '=', $post['brand_id']];
- }
- if (!empty($post['keyword'])) {
- $where[] = ['title', 'like', '%' . $post['keyword'] . '%'];
- }
- $orderField = $post['sort'] ?: 'id';
- $orderType = $post['order'] ?: 'desc';
- $query = (new StoreProduct())->where($where);
- $totalCount = $query->count();
- $list = $query
- ->order($orderField, $orderType)
- ->page($post['page'], $post['pageSize'])
- ->select()
- ->toArray();
- return app('json')->success([
- 'list' => $list,
- 'totalCount' => $totalCount,
- 'pageSize' => $post['pageSize'],
- 'page' => $post['page'],
- ]);
- }
- /**
- * 获取商品详情
- * @param Request $request
- */
- public function productDetail(Request $request)
- {
- $post = UtilService::getMore([
- ['id', '', 'empty', '参数错误'],
- ], $request);
- $detail = (new StoreProduct())->getDetail($post['id']);
- if (!$detail) {
- return app('json')->fail('商品不存在');
- }
- return app('json')->success($detail);
- }
- /**
- * 获取商品评价列表
- * @param Request $request
- */
- public function replyList(Request $request)
- {
- $post = UtilService::getMore([
- ['page', 1],
- ['pageSize', 20],
- ['product_id', ''],
- ], $request);
- $where = [];
- if (!empty($post['product_id'])) {
- $where[] = ['product_id', '=', $post['product_id']];
- }
- $result = (new StoreProductReply())->getList($where, $post['page'], $post['pageSize']);
- return app('json')->success($result);
- }
- /**
- * 添加商品评价
- * @param Request $request
- */
- public function addReply(Request $request)
- {
- $post = UtilService::getMore([
- ['product_id', '', 'empty', '参数错误'],
- ['order_id', '', 'empty', '参数错误'],
- ['score', 5],
- ['comment', ''],
- ['pics', ''],
- ], $request);
- $data = [
- 'uid' => $request->user['uid'],
- 'product_id' => $post['product_id'],
- 'order_id' => $post['order_id'],
- 'score' => $post['score'],
- 'comment' => $post['comment'],
- 'pics' => $post['pics'],
- 'time' => time(),
- ];
- $id = Db::name('store_product_reply')->insertGetId($data);
- if ($id) {
- // 更新商品评价数
- Db::name('store_product')->where('id', $post['product_id'])->inc('reply_count', 1)->update();
- return app('json')->success('评价成功');
- } else {
- return app('json')->fail('评价失败');
- }
- }
- }
|