nav_type = empty($this->data_request['nav_type']) ? 'base' : $this->data_request['nav_type']; $this->view_type = empty($this->data_request['view_type']) ? 'index' : $this->data_request['view_type']; // 仅网站设置页面存在多个子页面 if($this->nav_type != 'siteset') { $this->view_type = 'index'; } } /** * 配置列表 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2020-11-25 * @desc description */ public function Index() { // 公共数据 $assign = $this->CurrentViewInit(); // 配置信息 $data = ConfigService::ConfigList(); $assign['data'] = $data; // 数据处理 switch($this->nav_type) { // 基础 case 'base' : // 地址处理 if(!empty($data['home_site_filing']) && !empty($data['home_site_filing']['value'])) { $filing = ConfigService::SiteFilingList($data['home_site_filing']['value']); $assign['site_filing_list'] = $filing['data']; } // 站点类型 case 'sitetype' : // 地址处理 if(!empty($data['common_self_extraction_address']) && !empty($data['common_self_extraction_address']['value'])) { $address = ConfigService::SiteTypeExtractionAddressList($data['common_self_extraction_address']['value']); $assign['extraction_address_list'] = $address['data']; } // 加载地图api $assign['is_load_map_api'] = 1; break; // 网站设置 case 'siteset' : // 获取商品一级分类 $where = [ ['pid', '=', 0], ['is_home_recommended', '=', 1], ['is_enable', '=', 1], ]; $category = GoodsCategoryService::GoodsCategoryList(['where'=>$where]); if(!empty($category)) { // 关键字 $floor_keywords = (empty($data['home_index_floor_top_right_keywords']) || empty($data['home_index_floor_top_right_keywords']['value'])) ? [] : json_decode($data['home_index_floor_top_right_keywords']['value'], true); // 分类 $floor_category = (empty($data['home_index_floor_left_top_category']) || empty($data['home_index_floor_left_top_category']['value'])) ? [] : json_decode($data['home_index_floor_left_top_category']['value'], true); foreach($category as &$c) { // 获取二级分类 $where = [ ['pid', '=', $c['id']], ['is_enable', '=', 1], ]; $c['items'] = GoodsCategoryService::GoodsCategoryList(['where'=>$where]); // 配置的关键字 $c['config_keywords'] = (!empty($floor_keywords) && is_array($floor_keywords) && array_key_exists($c['id'], $floor_keywords)) ? $floor_keywords[$c['id']] : ''; // 配置左侧分类 $c['config_category_ids'] = (!empty($floor_category) && is_array($floor_category) && array_key_exists($c['id'], $floor_category)) ? explode(',', $floor_category[$c['id']]) : []; } } $assign['one_level_goods_category_list'] = $category; // 全部商品分类 $assign['goods_category_list'] = GoodsCategoryService::GoodsCategoryAll(); // 楼层自定义商品 if(!empty($data['home_index_floor_manual_mode_goods']) && !empty($data['home_index_floor_manual_mode_goods']['value'])) { $ret = SiteService::FloorManualModeGoodsViewHandle(json_decode($data['home_index_floor_manual_mode_goods']['value'], true)); $assign['floor_manual_mode_goods_list'] = $ret['data']; } // 支付方式 $assign['payment_list'] = PaymentService::PaymentList(['is_enable'=>1, 'is_open_user'=>1]); // 默认首页列表 $assign['site_default_index_data_list'] = SystemService::SiteDefaultIndexDataList(); break; } // 编辑器文件存放地址 $assign['editor_path_type'] = ResourcesService::EditorPathTypeValue('common'); // 数据赋值 MyViewAssign($assign); // 视图 $view = 'site/'.$this->nav_type.'/'.$this->view_type; return MyView($view); } /** * 公共视图 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2020-11-21 * @desc description */ public function CurrentViewInit() { // 模板数据 $assign = [ // 主/子导航 'nav_type' => $this->nav_type, 'view_type' => $this->view_type, // 时区 'common_site_timezone_list' => MyLang('common_site_timezone_list'), // 平台 'common_platform_type' => MyConst('common_platform_type'), // 关闭开启 'common_close_open_list' => MyConst('common_close_open_list'), // 登录方式 'common_login_type_list' => MyConst('common_login_type_list'), // 用户注册类型列表 'common_user_reg_type_list' => MyConst('common_user_reg_type_list'), // 图片验证码类型 'common_site_images_verify_rand_type_list' => MyConst('common_site_images_verify_rand_type_list'), // 图片验证码规则 'common_site_images_verify_rules_list' => MyConst('common_site_images_verify_rules_list'), // 热门搜索关键字 'common_search_keywords_type_list' => MyConst('common_search_keywords_type_list'), // 是否 'common_is_text_list' => MyConst('common_is_text_list'), // 下单指定时间 'common_buy_datetime_config_list' => MyConst('common_buy_datetime_config_list'), // 下单联系信息 'common_buy_extraction_contact_config_list' => MyConst('common_buy_extraction_contact_config_list'), // 站点类型 'common_site_type_list' => MyConst('common_site_type_list'), // 扣除库存规则 'common_deduction_inventory_rules_list' => MyConst('common_deduction_inventory_rules_list'), // 增加销量规则 'common_sales_count_inc_rules_list' => MyConst('common_sales_count_inc_rules_list'), // 首页商品排序规则 'common_goods_order_by_type_list' => MyConst('common_goods_order_by_type_list'), 'common_data_order_by_rule_list' => MyConst('common_data_order_by_rule_list'), // 首页楼层数据类型 'common_site_floor_data_type_list' => MyConst('common_site_floor_data_type_list'), // 搜索参数类型 'common_goods_parameters_scope_list' => MyConst('common_goods_parameters_scope_list'), // 关闭开启 'common_search_goods_show_type_list' => MyConst('common_search_goods_show_type_list'), // 多语言 'common_multilingual_list' => MyConst('common_multilingual_list'), // 商品分类 'common_show_goods_category_level_list' => MyConst('common_show_goods_category_level_list'), // 商品基础字段对 'common_goods_base_fields_list' => MyConst('common_goods_base_fields_list'), // 主导航 'base_nav_list' => MyLang('site.base_nav_list'), // 网站设置导航 'siteset_nav_list' => MyLang('site.siteset_nav_list'), // 订单追溯必填数据 'siteset_trace_source_required_list' => MyLang('site.siteset_trace_source_required_list'), ]; return $assign; } /** * 配置数据保存 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2020-11-25 * @desc description */ public function Save() { // 参数 $params = $this->data_request; // 字段不存在赋空值 $field_list = []; // 导航类型 switch($this->nav_type) { // 基础 case 'base' : $field_list[] = 'home_site_logo'; $field_list[] = 'home_site_logo_wap'; $field_list[] = 'home_site_logo_app'; $field_list[] = 'home_site_logo_square'; $field_list[] = 'home_site_title_icon'; $field_list[] = 'home_site_app_state'; // 备案信息 if(!empty($params['home_site_filing'])) { if(is_array($params['home_site_filing'])) { $filing = $params['home_site_filing']; } else { $filing = json_decode(base64_decode(urldecode($params['home_site_filing'])), true); } foreach($filing as $k=>$v) { $filing[$k]['id'] = $k; $filing[$k]['icon'] = empty($v['icon']) ? '' : ResourcesService::AttachmentPathHandle($v['icon']); } $params['home_site_filing'] = json_encode($filing, JSON_UNESCAPED_UNICODE); } break; // 用户注册 case 'register' : $field_list[] = 'home_user_reg_type'; $field_list[] = 'home_site_user_register_bg_images'; break; // 用户登录 case 'login' : $field_list[] = 'home_user_login_type'; $field_list[] = 'home_site_user_login_ad1_images'; $field_list[] = 'home_site_user_login_ad2_images'; $field_list[] = 'home_site_user_login_ad3_images'; break; // 密码找回 case 'forgetpwd' : $field_list[] = 'home_site_user_forgetpwd_ad1_images'; $field_list[] = 'home_site_user_forgetpwd_ad2_images'; $field_list[] = 'home_site_user_forgetpwd_ad3_images'; break; // 图片验证码 case 'verify' : $field_list[] = 'common_images_verify_rules'; break; // 站点类型 case 'sitetype' : // 站点类型 $params['common_site_type'] = empty($params['common_site_type']) ? '' : (is_array($params['common_site_type']) ? json_encode($params['common_site_type'], JSON_UNESCAPED_UNICODE) : $params['common_site_type']); // 自提地址处理 if(!empty($params['common_self_extraction_address'])) { if(is_array($params['common_self_extraction_address'])) { $address = $params['common_self_extraction_address']; } else { $address = json_decode(base64_decode(urldecode($params['common_self_extraction_address'])), true); } foreach($address as $k=>$v) { $address[$k]['id'] = $k; $address[$k]['logo'] = empty($v['logo']) ? '' : ResourcesService::AttachmentPathHandle($v['logo']); } $params['common_self_extraction_address'] = json_encode($address, JSON_UNESCAPED_UNICODE); } break; // 网站设置 case 'siteset' : switch($this->view_type) { // 首页 case 'index' : // 楼层关键字 $params['home_index_floor_top_right_keywords'] = empty($params['home_index_floor_top_right_keywords']) ? '' : json_encode($params['home_index_floor_top_right_keywords'], JSON_UNESCAPED_UNICODE); // 楼层自定义商品 $params['home_index_floor_manual_mode_goods'] = empty($params['home_index_floor_manual_mode_goods']) ? '' : json_encode($params['home_index_floor_manual_mode_goods'], JSON_UNESCAPED_UNICODE); // 楼层左侧分类 $params['home_index_floor_left_top_category'] = empty($params['home_index_floor_left_top_category']) ? '' : json_encode($params['home_index_floor_left_top_category'], JSON_UNESCAPED_UNICODE); break; // 搜索 case 'search' : $field_list[] = 'home_search_params_type'; $field_list[] = 'home_search_is_login_required'; break; // 订单 case 'order' : $field_list[] = 'common_buy_datetime_info'; $field_list[] = 'common_buy_extraction_contact_info'; $params['common_default_payment'] = empty($params['common_default_payment']) ? '' : json_encode($params['common_default_payment'], JSON_UNESCAPED_UNICODE); // 订单追溯数据处理 $order_trace_source_config = []; if(!empty($params['common_order_trace_source_config']) && is_array($params['common_order_trace_source_config'])) { foreach($params['common_order_trace_source_config'] as $v) { if(!empty($v) && is_array($v) && count(array_filter($v)) > 0) { $order_trace_source_config[] = [ 'category_ids' => empty($v['category_ids']) ? '' : explode(',', $v['category_ids']), 'required' => empty($v['required']) ? '' : explode(',', $v['required']), ]; } } } $params['common_order_trace_source_config'] = empty($order_trace_source_config) ? '' : $order_trace_source_config; break; // 商品 case 'goods' : $field_list[] = 'common_goods_close_buy_button'; $field_list[] = 'common_goods_detail_base_fields_show'; break; // 扩展 case 'extends' : // 可用语言状态+图标 $choose_list = []; if(!empty($params['common_multilingual_choose_list']) && is_array($params['common_multilingual_choose_list'])) { foreach($params['common_multilingual_choose_list'] as $k=>$v) { $choose_list[$k] = [ 'icon' => empty($v['icon']) ? '' : ResourcesService::AttachmentPathHandle($v['icon']), 'status' => (isset($v['status']) && $v['status'] == 1) ? 1 : 0, ]; } } $params['common_multilingual_choose_list'] = empty($choose_list) ? '' : json_encode($choose_list, JSON_UNESCAPED_UNICODE); // 域名绑定多语言 $params['common_domain_multilingual_bind_list'] = empty($params['common_domain_multilingual_bind_list']) ? '' : json_encode(array_values($params['common_domain_multilingual_bind_list']), JSON_UNESCAPED_UNICODE); break; } break; // 缓存 case 'cache' : // session是否使用缓存 // 数据是否使用缓存 if((isset($params['common_session_is_use_cache']) && $params['common_session_is_use_cache'] == 1) || (isset($params['common_data_is_use_redis_cache']) && $params['common_data_is_use_redis_cache'] == 1)) { // 连接测试 $ret = SiteService::RedisCheckConnectPing($params['common_cache_data_redis_host'], $params['common_cache_data_redis_port'], $params['common_cache_data_redis_password']); if($ret['code'] != 0) { return $ret; } } break; } // 基础配置 $ret = ConfigService::ConfigSave(ConfigService::FieldsEmptyDataHandle($params, $field_list)); // 清除缓存 if($ret['code'] == 0) { switch($this->nav_type) { // 登录 case 'login' : MyCache(SystemService::CacheKey('shopxo.cache_user_login_left_key'), null); // 密码找回 case 'forgetpwd' : MyCache(SystemService::CacheKey('shopxo.cache_user_forgetpwd_left_key'), null); break; } } return ApiService::ApiDataReturn($ret); } /** * 商品搜索 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2020-11-25 * @desc description */ public function GoodsSearch() { // 搜索数据 $ret = SiteService::GoodsSearchList($this->data_request); if($ret['code'] == 0) { MyViewAssign('data', $ret['data']['data']); $ret['data']['data'] = MyView('site/public/goods_search'); } return ApiService::ApiDataReturn($ret); } } ?>