where(['tool_type'=>'styleTest', 'root_id' => $this->request->token['root_org']])->select(); // 随机获取5条 if (count($list) <= 5) { $data_last = $list; } else { $data = array_rand($list, 5); $data_last = [ $list[$data[0]], $list[$data[1]], $list[$data[2]], $list[$data[3]], $list[$data[4]] ]; } return json(['code' => self::success, 'msg' => '获取成功', 'data' => $data_last]); } /* * 工具浏览量增加 * type 基装报价/priceCalculation 装修风格/styleTest 老房翻新/likeTest 避坑清单/avoidPit */ public function toolView() { $type = $this->request->param('tool_type'); $where['tool_type'] = $type; $where['root_id'] = $this->request->token['root_org']; // 增加使用量 $tool_settings = (new ToolSettings())->where($where)->find(); if (empty($tool_settings)) { ToolSettings::create([ 'tool_type'=> $type, 'value' => [], 'use_number'=> 1, 'share_number'=> 0, 'root_id'=> $this->request->token['root_org'] ]); } else { ToolSettings::where($where)->inc('use_number')->update(); } return json(['code' => self::success, 'msg' => '浏览量增加']); } /* * 风格喜好测一测 */ public function likeTest() { $param = request()->only(['bedroom', 'area', 'sex', 'age', 'music', 'type', 'share_user_id', 'style']); $data = [ 'music' => $param['music'], 'age' => $param['age'], 'sex' => $param['sex'], 'area' => $param['area'], 'bedroom' => $param['bedroom'], 'style' => $param['style'], 'type' => $param['type'], ]; $user_id = $this->request->token['uid']; $share_user_id = !empty($param['share_user_id']) ? $param['share_user_id'] : ''; $tool = new ToolLogic(); $tool_id = $tool->likeTestAdd($data, $user_id, $share_user_id); $foot_data = ToolModel::where(['id' => $tool_id])->find(); // 添加足迹 $foot_id = 0; if (!empty($user_id)) { $employee = (new Employee())->where('uid', '=', $share_user_id)->find(); event(new FootPrints($user_id, $employee['id'] ?? 0, $employee['org_id'] ?? 0, $foot_data, 'likeTest')); $where[] = ['pipe_type', '=', 'likeTest']; $where[] = ['uid', '=', $user_id]; $foot_id = FootprintsModel::where($where)->where('reg_info->"$.id" = '. $tool_id)->order('id desc')->value('id'); } return json(['code' => self::success, 'msg' => '测试成功', 'data' => $foot_id]); } /* * 风格测一测结果 */ public function styleTestResult() { $result = Request::param('result'); $style = [ 1 => ['style' => '现代简约', 'msg' => '线条简单,设计独特', 'function' => '色彩明亮洁净', 'city' => '郑州、广州', 'style_elements' => '黑白灰为主色调'], 2 => ['style' => '新中式', 'msg' => '文化涵养', 'function' => '文化氛围', 'city' => '杭州、北京', 'style_elements' => '黑白灰基础上加与红黄蓝绿'], 3 => ['style' => '北欧', 'msg' => '优雅自然风情', 'function' => '简约大方', 'city' => '上海、江苏', 'style_elements' => '偏浅色、以纯色为主'], 4 => ['style' => '简欧', 'msg' => '华美厚重', 'function' => '典雅、自然、高贵', 'city' => '武汉、南京', 'style_elements' => '白色、淡色为主,风格统一'], 5 => ['style' => '地中海', 'msg' => '人文风情', 'function' => '素雅浪漫', 'city' => '青岛、海南', 'style_elements' => '蓝与白、土黄与红褐'], 6 => ['style' => '美式', 'msg' => '自在、随意', 'function' => '外观简洁大方', 'city' => '上海、北京', 'style_elements' => '暗中色、土黄色,自然色彩'], 7 => ['style' => '轻奢', 'msg' => '高级感', 'function' => '高级感', 'city' => '深圳、苏州', 'style_elements' => '金属、大理石、蓝色配色等元素来烘托空间'], 8 => ['style' => '田园', 'msg' => '回归自然', 'function' => '自然、舒适、温婉内敛', 'city' => '苏州、济南', 'style_elements' => '田园气息、追求朴实亲切感'], 9 => ['style' => '混搭', 'msg' => '简约时尚', 'function' => '追求自主', 'city' => '成都、西安', 'style_elements' => '色彩随意自主、极富个性'] ]; $arr = explode(',', $result); // 都不喜欢 或 喜欢无重复 则为混搭 if (empty($result) || count($arr) == count(array_unique($arr))) { $style_status = $style[9]; } elseif (mb_strlen($result) == 1) { //喜欢一张为测试结果 $style_status = $style[$result]; } else { $values = array_count_values($arr); arsort($values); $style_status = $style[key($values)]; } $user_id = $this->request->token['uid']; $share_user_id = input('share_user_id', 0, 'intval'); $result = [ 'code' => 0, 'style' => $style_status['style'], 'msg' => $style_status['msg'], 'function' => $style_status['function'], 'city' => $style_status['city'], 'style_elements' => $style_status['style_elements'], 'testNum' => 0 ]; $tool_id = (new ToolLogic())->styleTestResult($result, $user_id, $share_user_id); $foot_data = ToolModel::where(['id' => $tool_id])->find(); // 添加足迹 $foot_id = 0; if (!empty($user_id)) { $employee = (new Employee())->where('uid', '=', $share_user_id)->find(); event(new FootPrints($user_id, $employee['id'] ?? 0, $employee['org_id'] ?? 0, $foot_data, 'styleTest')); $where[] = ['pipe_type', '=', 'styleTest']; $where[] = ['uid', '=', $user_id]; $foot_id = FootprintsModel::where($where)->where('reg_info->"$.id" = '. $tool_id)->order('id desc')->value('id'); } $result['data'] = $foot_id; return json($result); } /* * 基装报价算一算 */ public function quotationform() { $param = Request::only(['name', 'mobile', 'community', 'area', 'room', 'office', 'wei', 'style', 'type', 'share_user_id']); $data = [ 'name' => $param['name'], 'mobile' => $param['mobile'], 'community' => $param['community'], 'area' => $param['area'], 'bedroom' => $param['room'] . '/' . $param['office'] . '/' . $param['wei'], 'style' => $param['style'], 'type' => $param['type'], ]; //报名结果记录 $user_id = $this->request->token['uid']; $share_user_id = !empty($param['share_user_id']) ? $param['share_user_id'] : ''; $tool = new ToolLogic(); $tool_id = $tool->formAdd($data, $user_id, $share_user_id); $foot_data = ToolModel::where(['id' => $tool_id])->find(); // 添加足迹 $foot_id = 0; if (!empty($user_id)) { $employee = (new Employee())->where('uid', '=', $share_user_id)->find(); event(new FootPrints($user_id, $employee['id'] ?? 0, $employee['org_id'] ?? 0, $foot_data, 'priceCalculation')); $where[] = ['pipe_type', '=', 'priceCalculation']; $where[] = ['uid', '=', $user_id]; $foot_id = FootprintsModel::where($where)->where('reg_info->"$.id" = '. $tool_id)->order('id desc')->value('id'); } // 增加使用量 /*if ($share_user_id) { $root_id = (new Employee())->where('id','=', $share_user_id)->value('root_id'); $tool_settings = (new ToolSettings())->where(['tool_type'=> 'priceCalculation', 'root_id'=> $root_id])->find(); if (empty($tool_settings)) { ToolSettings::create([ 'tool_type'=> 'priceCalculation', 'value' => [], 'use_number'=> 1, 'share_number'=> 0, 'root_id'=> $root_id ]); } else { Db::table('fl_tool_settings')->where(['tool_type'=> 'priceCalculation', 'root_id' => $root_id])->inc('use_number')->update(); } }*/ return json(['code' => 0, 'msg' => '报名成功,等待联系', 'data'=> $foot_id]); } /* * 使用量和分享量数值 * type 基装报价/priceCalculation 装修风格/styleTest 老房翻新/likeTest 避坑清单/avoidPit */ public function toolsnumbers() { $data = ToolSettings::where('root_id' , $this->request->token['root_org'])->field('tool_type,use_number,share_number')->select()->toArray(); $type_list = [ 'styleTest', 'likeTest', 'avoidPit', 'priceCalculation' ]; $find_type = array_column($data, 'tool_type'); $unfind_type = array_diff($type_list, $find_type); foreach ($unfind_type as $type) { $data[] = [ 'tool_type' => $type, 'use_number' => 0, 'share_number' => 0 ]; } return json(['code' => self::success, 'msg' => '获取工具数值', 'data' => $data]); } public function toolShare($type) { $tool_settings = (new ToolSettings())->where(['tool_type'=> $type, 'root_id' => $this->request->token['root_org']])->find(); if ($tool_settings) { $where['tool_type'] = $type; $where['root_id'] = $this->request->token['root_org']; ToolSettings::where($where)->inc('share_number')->update(); } else { ToolSettings::create([ 'tool_type'=> $type, 'value' => [], 'use_number'=> 0, 'share_number'=> 1, 'root_id'=> $this->request->token['root_org'] ]); } //ToolSettings::where(['tool_type'=> $type, 'root_id' => $this->request->token['root_org']])->inc('share_number'); return json(['code' => self::success, 'msg' => '分享量增加']); } /** * 获取报价自定义页面设置 */ public function priceCalculation_set() { $content = $cover = ''; $domain = 'https://'.config('app.ali_oss_bindurl').'/'; $check = Setting::where([['root_id','=',$this->request->token['root_org']],['name','=','renovate_quotation']])->find(); if(!empty($check)){ $set = json_decode($check['content'],true); $content = $set['content']; $cover = $domain.$set['cover']; } $data = ['cover'=>$cover,'content'=>$content]; return json(['code'=>0,'data'=>$data,'msg'=>'获取成功']); } }