| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- namespace app\api\controller;
- use app\api\model\Goods as GoodsModel;
- use app\api\model\Cart as CartModel;
- use app\common\service\qrcode\Goods as GoodsPoster;
- /**
- * 商品控制器
- * Class Goods
- * @package app\api\controller
- */
- class Goods extends Controller
- {
- /**
- * 商品列表
- * @return array
- * @throws \app\common\exception\BaseException
- * @throws \think\exception\DbException
- */
- public function lists()
- {
- // 整理请求的参数
- $param = array_merge($this->request->param(), [
- 'status' => 10
- ]);
- // 获取列表数据
- $model = new GoodsModel;
- $list = $model->getList($param, $this->getUser(false));
- return $this->renderSuccess(compact('list'));
- }
- /**
- * 获取商品详情
- * @param $goods_id
- * @return array
- * @throws \app\common\exception\BaseException
- * @throws \think\exception\DbException
- */
- public function detail($goods_id)
- {
- // 用户信息
- $user = $this->getUser(false);
- // 商品详情
- $model = new GoodsModel;
- $goods = $model->getDetails($goods_id, $this->getUser(false));
- if ($goods === false) {
- return $this->renderError($model->getError() ?: '商品信息不存在');
- }
- // 分类处理,是否升级产品
- $goods['is_upgrade'] = 0;
- $goods['user_level'] = 0;
- if($goods['category_id'] == '10001'){
- $goods['is_upgrade'] = 1;
- $grade = isset($user['grade'])? $user['grade'] : [];
- $gradeLevel = isset($grade['weight'])? $grade['weight'] : 0;
- $goods['user_level'] = $gradeLevel;
- }
- // 多规格商品sku信息, todo: 已废弃 v1.1.25
- $specData = $goods['spec_type'] == 20 ? $model->getManySpecData($goods['spec_rel'], $goods['sku']) : null;
- return $this->renderSuccess([
- // 商品详情
- 'detail' => $goods,
- // 购物车商品总数量
- 'cart_total_num' => $user ? (new CartModel($user))->getGoodsNum() : 0,
- // 多规格商品sku信息
- 'specData' => $specData,
- ]);
- }
- /**
- * 生成商品海报
- * @param $goods_id
- * @return array
- * @throws \app\common\exception\BaseException
- * @throws \think\exception\DbException
- * @throws \Exception
- */
- public function poster($goods_id)
- {
- // 商品详情
- $detail = GoodsModel::detail($goods_id);
- $Qrcode = new GoodsPoster($detail, $this->getUser(false));
- return $this->renderSuccess([
- 'qrcode' => $Qrcode->getImage(),
- ]);
- }
- }
|