// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\store\controller; use app\common\model\store\StoreSettle; use think\response\Json; use app\store\model\Store as StoreModel; use app\admin\model\Store as AdminStoreModel; use app\common\model\Channel; use app\common\model\PriceSet; use app\common\model\OpenShop; /** * 商家中心控制器 * Class Store * @package app\store\controller */ class Store extends Controller { /** * 商城列表 * @return Json * @throws \think\db\exception\DbException */ public function index(): Json { // 商城列表 $list = AdminStoreModel::withoutGlobalScope()->where('is_recycle', '=', 0) ->where('p_store_id', '=', $this->storeId) ->where('is_delete', '=', 0) ->order(['sort' => 'asc', 'create_time' => 'desc']) ->paginate(15); if (!$list->isEmpty()) { $list = $list->toArray(); foreach ($list['data'] as &$value) { $value['store_version'] = $value['store_version'] == 0 ? "单商户" : "多商户"; } } return $this->renderSuccess(compact('list')); } /** * 新增商城 * @return Json */ public function add(): Json { // 新增记录 $model = new AdminStoreModel; $params = $this->postForm(); $params['is_store'] = 1; $params['p_store_id'] = $this->storeId; $store = AdminStoreModel::detail($this->storeId); $count = AdminStoreModel::withoutGlobalScope()->where('p_store_id', $this->storeId)->where('is_recycle', '=', 0)->where('is_delete', '=', 0)->count(); if ($store['limit_open_store_num'] <= $count) { return $this->renderError("您授权的商城数量已达到上限:".$count); } $params['effective_time'] = time() + 365 * 86400; if ($model->add($params)) { return $this->renderSuccess('添加成功'); } return $this->renderError($model->getError() ?: '添加失败'); } /** * 更新商城信息 * @return Json */ public function edit(int $storeId): Json { $params = $this->postForm(); unset($params['effective_time']); // 更新记录 if (!AdminStoreModel::withoutGlobalScope()->where('store_id', $storeId)->update($params)) { return $this->renderError('更新失败'); } return $this->renderSuccess('更新成功'); } /** * 获取当前登录的商城信息 * @return Json */ public function info(): Json { // 商城详情 $model = StoreModel::detail($this->storeId); return $this->renderSuccess(['storeInfo' => $model]); } /** * 更新商城信息 * @return Json */ public function update(): Json { // 商城详情 $model = StoreModel::detail($this->storeId); // 更新记录 if (!$model->edit($this->postForm())) { return $this->renderError($model->getError() ?: '更新失败'); } return $this->renderSuccess('更新成功'); } /** * 门店入驻列表 */ public function settleList(): Json { $list = StoreSettle::where('store_id', '=', $this->storeId) ->order('created_at','desc') ->paginate(10); return $this->renderSuccess(compact('list')); } /** * 门店入驻详情 */ public function settleDetail(int $id): Json { $detail = StoreSettle::get($id); return $this->renderSuccess(compact('detail')); } /** * 审核商城 * @param int $storeId * @return Json */ public function platformList(): Json { //$list = Channel::withoutGlobalScope()->where('status', 1)->whereIn('code',['jd','sn','zy','xqtx'])->select(); //$list = Channel::withoutGlobalScope()->where('status', 1)->whereIn('code',['zy'])->select(); $list = Channel::withoutGlobalScope()->where('status', 1)->select(); $platformList = []; foreach ($list as $key => $value) { //$platformList[$value['code']] = $value['name']; $platformList[$value['code']] = $value['alias']; } //$platformList = config('app.platformList'); return $this->renderSuccess($platformList); } public function setStorePrice(): Json { $params = $this->request->param(); $storeid = $this->storeId; // var_dump($params); // exit(); //先删除 PriceSet::where('store_id', $storeid)->where('type', $params['type'] ?? 0)->delete(); $inDatas = []; foreach ($params['list'] as $value) { $categorys = explode(",", $value['category']); foreach ($categorys as $category) { foreach ($value['price_list'] as $price) { $temp = [ 'category' => $value['category'], 'code' => $category, 'store_id' => $storeid, 'type' => $params['type'], 'min' => $price['min'], 'max' => $price['max'], 'add_price_rate' => $price['add_price_rate'], 'create_time' => time(), 'update_time' => time(), ]; $inDatas[] = $temp; } } } // echo "
"; // print_r($inDatas); // exit(); $model = new PriceSet; $model->addAll($inDatas); return $this->renderSuccess('ok'); } //加个设置回显 public function getStorePriceInfo(int $type): Json { $storeid = $this->storeId; $list = PriceSet::where('store_id', $storeid)->where('type', $type)->field('category,code,min,max,add_price_rate')->group("category, min")->select()->toArray(); $data = []; $arr = []; foreach ($list as $value) { $arr[$value['category']][] = $value; } foreach ($arr as $key => $item) { $data['list'][] = [ 'category' => $key, 'price_list' => $item, ]; } $data['type'] = $type; return $this->renderSuccess($data); } public function getOpenShopList() { $model = new OpenShop(); $list = $model->getList($this->request->param()); return $this->renderSuccess(compact('list')); } //备注 public function openShopRemark(int $id) { $remark = $this->postForm(); if (empty($remark)) { return $this->renderSuccess("备注不能为空"); } // 更新备注 $result = OpenShop::where('id', $id)->update(['remark' => $remark['remark']]); // 检查更新结果 if (!$result) { return $this->renderSuccess("操作失败"); } return $this->renderSuccess("添加备注成功"); } }