diff --git a/app/common/model/Merchant.php b/app/common/model/Merchant.php new file mode 100644 index 00000000..6c38e412 --- /dev/null +++ b/app/common/model/Merchant.php @@ -0,0 +1,115 @@ + +// +---------------------------------------------------------------------- +declare (strict_types=1); + +namespace app\common\model; + +use cores\BaseModel; +use think\model\relation\HasOne; + +/** + * 商家记录表模型 + * Class Store + * @package app\common\model + */ +class Merchant extends BaseModel +{ + // 定义表名 + protected $name = 'merchant'; + + // 定义主键 + protected $pk = 'id'; + + /** + * 关联logo图片 + * @return HasOne + */ + public function logoImage(): HasOne + { + return $this->hasOne('UploadFile', 'file_id', 'logo_image_id'); + } + + /** + * 详情信息 + * @param int $storeId + * @return static|array|null + */ + public static function detail(int $storeId) + { + try { + $list = self::withoutGlobalScope() + ->with(['logoImage']) + ->where('store_id', '=', $storeId) + ->find(); + if ($list) { + if ($list['new_product_img_id']) { + $img_ids = explode(",", $list['new_product_img_id']); + $files = UploadFile::getFileList($img_ids); + $list['newProductImg'] = $files ?: null; + } else { + $list['newProductImg'] = null; + } + if ($list['big_brand_img_id']) { + $img_ids = explode(",", $list['big_brand_img_id']); + $files = UploadFile::getFileList($img_ids); + $list['bigBrandImg'] = $files ?: null; + } else { + $list['bigBrandImg'] = null; + } + if ($list['new_people_order_img_id']) { + $img_ids = explode(",", $list['new_people_order_img_id']); + $files = UploadFile::getFileList($img_ids); + $list['newPeopleOrderImg'] = $files ?: null; + } else { + $list['newPeopleOrderImg'] = null; + } + if ($list['presale_img_id']) { + $img_ids = explode(",", $list['presale_img_id']); + $files = UploadFile::getFileList($img_ids); + $list['presaleImg'] = $files ?: null; + } else { + $list['presaleImg'] = null; + } + if ($list['flash_sale_img_id']) { + $img_ids = explode(",", $list['flash_sale_img_id']); + $files = UploadFile::getFileList($img_ids); + $list['flashSaleImg'] = $files ?: null; + } else { + $list['flashSaleImg'] = null; + } + if ($list['ranking_img_id']) { + $img_ids = explode(",", $list['ranking_img_id']); + $files = UploadFile::getFileList($img_ids); + $list['rankingImg'] = $files ?: null; + } else { + $list['rankingImg'] = null; + } + } + return $list ?? null; + } catch (\Exception $e) { + return null; + } + } + + /** + * 获取列表数据 + * @param bool $isRecycle 是否在回收站 + * @return \think\Paginator + * @throws \think\db\exception\DbException + */ + public function getList(bool $isRecycle = false): \think\Paginator + { + return $this->where('is_recycle', '=', (int)$isRecycle) + ->where('is_delete', '=', 0) + ->order(['create_time' => 'desc', $this->getPk()]) + ->paginate(15); + } +} diff --git a/app/store/controller/Merchant.php b/app/store/controller/Merchant.php new file mode 100644 index 00000000..e313ee56 --- /dev/null +++ b/app/store/controller/Merchant.php @@ -0,0 +1,72 @@ + +// +---------------------------------------------------------------------- +declare (strict_types=1); + +namespace app\store\controller; + +use app\common\model\store\StoreSettle; +use think\response\Json; +use app\store\model\Merchant as MerchantModel; +use app\common\model\Channel; + +/** + * 商户ID、商店ID 隔离商城里面的商户 + * Class Store + * @package app\store\controller + */ +class Merchant extends Controller +{ + /** + * 获取当前登录的商城信息 + * @return Json + */ + public function info(): Json + { + // 商城详情 + $model = MerchantModel::detail($this->storeId); + return $this->renderSuccess(['storeInfo' => $model]); + } + + /** + * 更新商城信息 + * @return Json + */ + public function edit(): Json + { + // 商城详情 + $model = MerchantModel::detail($this->storeId); + // 更新记录 + if (!$model->edit($this->postForm())) { + return $this->renderError($model->getError() ?: '更新失败'); + } + return $this->renderSuccess('更新成功'); + } + + /** + * 列表 + */ + public function list(): Json { + $list = MerchantModel::where('store_id', '=', $this->storeId) + ->order('created_at','desc') + ->paginate(10); + return $this->renderSuccess(compact('list')); + } + + /** + * 门店入驻详情 + */ + public function settleDetail(int $id): Json + { + $detail = MerchantModel::get($id); + return $this->renderSuccess(compact('detail')); + } + +} diff --git a/app/store/model/Merchant.php b/app/store/model/Merchant.php new file mode 100644 index 00000000..cc8061a0 --- /dev/null +++ b/app/store/model/Merchant.php @@ -0,0 +1,35 @@ + +// +---------------------------------------------------------------------- +declare (strict_types=1); + +namespace app\store\model; + +use app\common\model\Merchant as StoreModel; + +/** + * 商家记录表模型 + * Class Store + * @package app\store\model + */ +class Merchant extends StoreModel +{ + /** + * 更新记录 + * @param array $data + * @return bool + */ + public function edit(array $data): bool + { + // 是否删除图片 + !isset($data['logo_image_id']) && $data['logo_image_id'] = 0; + return $this->save($data) !== false; + } +}