// +---------------------------------------------------------------------- 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; use app\common\model\UploadFile; /** * 商家中心控制器 * 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 ? "单商户" : "多商户"; $info = UploadFile::detail($value['id_card_face_image']); $value['id_card_face_image_url'] = $info['preview_url'] ?? ""; $info = UploadFile::detail($value['id_card_back_image']); $value['id_card_back_image_url'] = $info['preview_url'] ?? ""; $info = UploadFile::detail($value['license_image']); $value['license_image_url'] = $info['preview_url'] ?? ""; $info = UploadFile::detail($value['legal_person_license_image']); $value['legal_person_license_image_url'] = $info['preview_url'] ?? ""; } } 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("添加备注成功");
        
    }
    
}