// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\store\controller; use app\common\model\store\StoreSettle; use app\common\model\UploadFile; use think\response\Json; use app\store\model\Merchant as MerchantModel; use app\store\model\Style as StyleModel; use app\common\model\Channel; use app\store\model\store\User as StoreUserModel; use app\store\model\store\Role as role; use app\common\model\store\UserRole as UserRoleModel; use app\common\model\MerchantGoodsCate; use app\api\model\Category; use think\Db; /** * 商户ID、商店ID 隔离商城里面的商户 * Class Store * @package app\store\controller */ class Merchant extends Controller { const ROLE_NAME = '商户'; /** * 获取当前登录的商城信息 * @return Json */ public function userinfo(): Json { $list = []; $whererole = [ 'store_id' => $this->storeId, 'role_name' => self::ROLE_NAME ]; $role = role::detail($whererole); if (empty($role)) { return $this->renderSuccess(compact('list')); } $model = new StoreUserModel; $listUser = $model->getList($this->request->param())->toArray(); $list = []; foreach ($listUser['data'] as $l) { $nowRoles = $l['roleIds']; if (!in_array($role['role_id'], $nowRoles)) { continue; } if (!empty($l['user_name'])) { array_push($list, $l['user_name']); } } $model2 = new MerchantModel; $list2 = $model2->getList($this->request->param())->toArray(); $userIds = array_column($list2['data'], "user_name"); $list = array_diff($list, $userIds); return $this->renderSuccess(compact('list')); } /** * 获取当前登录的商城信息 * @return Json */ public function info(): Json { // 商城详情 $model = MerchantModel::detailbystore($this->storeId); return $this->renderSuccess(['storeInfo' => $model]); } /** * 更新商城信息 * @return Json */ public function edit(): Json { // 商城详情 $model = MerchantModel::detailbystore($this->postForm()['merchant_id'], $this->storeId); // 更新记录 if (!$model->edit($this->postForm())) { return $this->renderError($model->getError() ?: '更新失败'); } return $this->renderSuccess('更新成功'); } /** * 更新商城信息 * @return Json */ public function add(): Json { // 新增记录 $model = new MerchantModel; $data = $this->postForm(); if ($model->add($data)) { return $this->renderSuccess('添加成功'); } return $this->renderError($model->getError() ?: '添加失败'); } /** * 删除门店 * @param int $shopId * @return Json */ public function delete(int $merchantId): Json { // 门店详情 $model = MerchantModel::detailbystore($merchantId, $this->storeId); if (!$model->setDelete()) { return $this->renderError($model->getError() ?: '删除失败'); } return $this->renderSuccess('删除成功'); } /** * 列表 */ public function list(): Json { $model = new MerchantModel; $param = $this->request->param(); if ($this->merchantId) { $param['merchant_id'] = $this->merchantId; } $param['channel_id'] = 0; $list = $model->getList($param, (int)$param['pageSize'] ?? 15)->toArray(); foreach ($list['data'] as $kr => $r) { $res[$kr]['licenseImg'] = []; if ($r['license_img_id']) { $img_ids = explode(",", $r['license_img_id']); $files = UploadFile::getFileList($img_ids); $list['data'][$kr]['licenseImg'] = $files ?: null; } } return $this->renderSuccess($list); } /** * 更新商城信息 * @return Json */ public function setPageStyle(): Json { $model = new StyleModel; $detail = StyleModel::detail(1, $this->storeId); $data = $this->postForm(); if (empty($detail)) { if ($model->add($data)) { return $this->renderSuccess('操作成功'); } } else { $data['style_id'] = $detail['style_id']; if ($detail->edit($data)) { return $this->renderSuccess('操作成功'); } } return $this->renderError($model->getError() ?: '操作失败'); } public function getPageStyle(): Json { // 新增记录 $detail = StyleModel::detail(1, $this->storeId); return $this->renderSuccess(compact('detail')); } public function setMerchantGoodsCate(): Json{ $model = new MerchantGoodsCate; $merchantId = $this->merchantId; $detail = MerchantGoodsCate::detail($merchantId); $data = $this->postForm(); $data['merchant_id'] = $merchantId; if (empty($detail)) { if ($model->add($data)) { return $this->renderSuccess('操作成功'); } } else { $data['merchant_id'] = $detail['merchant_id']; if ($detail->edit($data)) { return $this->renderSuccess('操作成功'); } } return $this->renderError($model->getError() ?: '操作失败'); } public function getMerchantGoodsCate(): Json{ $merchantId = $this->merchantId; $merchant = MerchantGoodsCate::detail($merchantId); $data = $this->postForm(); //var_dump($merchant); return $this->renderSuccess(compact("merchant")); } public function getShopCategory(): Json{ $merchantId = $this->merchantId; $merchant = MerchantGoodsCate::detail($merchantId); $merchant = $merchant['goods_cate']; $goods_cate = explode(",", $merchant); $model = new Category; $list = $model->where('category_id', 'in', $goods_cate)->select(); return $this->renderSuccess(compact('list')); } }