only(['pid']); if (!request()->isAjax()) { $pidlist = CustomerPortraitField::where([['root_id', '=', request()->employee->root_id], ['pid', '=', 0], ['status', '=', 0]]) ->orderRaw('if(isnull(sort),1,0),sort asc')->select()->toArray(); view::assign('list', $pidlist); return view::fetch(); } $where[] = ['root_id', '=', request()->employee->root_id]; if ($param['pid']) { $where[] = ['pid', '=', $param['pid']]; } $list = CustomerPortraitField::with(['select'])->where($where)->orderRaw('if(isnull(sort),1,0),sort asc')->select()->toArray(); foreach ($list as $key => $val) { if ($val['keyname'] == 'deco_style') { $sel = Decostyle::field('id,name,root_id as pid')->where(['root_id' => request()->employee->root_id])->where([['type', '=', 0]])->order('id desc')->select()->toArray(); $list[$key]['select'] = $sel; } if ($val['keyname'] == 'source_id') { $soudata = CustomerSource::field('id,source as name')->where('root_id', request()->employee->root_id)->select()->toArray(); $list[$key]['select'] = $soudata; } } return json(['code' => 0, 'msg' => '获取成功', 'data' => $list]); } //处理已经设置过画像的公司 public function reduction_set() { $list = CustomerPortrait::select()->toArray(); foreach ($list as $key => $val) { $save = []; foreach ($val['fields'] as $k => $v) { if ($k != 'info_status') { foreach ($v as $p => $z) { if (empty($z['status'])) { $save[] = $z; } } } } $list[$key]['save'] = $save; } foreach ($list as $key => $val) { if (!empty($val['save'])) { $allname = array_column($val['save'], 'title'); $tp = CustomerPortraitField::where([['root_id', '=', $val['root_id']], ['pid', '<>', 0], ['name', 'in', $allname]]) ->update(['status' => 1]); } } } //添加自定义字段 public function add_field() { $request = request(); $param = $request->only(['pid', 'name', 'type', 'select' => null, 'unity']); if (!request()->isAjax()) { view::assign('pid', $param['pid']); return view::fetch(); } if (strlen($param['name']) > 21) { return json(['code' => 1, 'msg' => '名称字数不能超过7个']); } //验证字段名称重复 $query[] = ['name', '=', trim($param['name'])]; $query[] = ['root_id', '=', request()->employee->root_id]; $check = CustomerPortraitField::where($query)->field('id')->findOrEmpty(); if (!$check->isEmpty()) return json(['code' => 1, 'msg' => '“' . trim($param['name']) . '”已存在。']); $add = ['name' => $param['name'], 'root_id' => request()->employee->root_id, 'pid' => $param['pid'], 'type' => $param['type'], 'keyname' => time(), 'unity' => $param['unity']]; $ms = CustomerPortraitField::create($add); if (($param['type'] == 3 || $param['type'] == 4) && !empty($param['select'])) { foreach ($param['select'] as $key => $val) { $a[] = ['name' => $val['name'], 'pid' => $ms->id]; } CustomerPortraitFieldSelect::insertAll($a); } if ($ms->id) { return json(['code' => 0, 'msg' => '添加成功']); } else { return json(['code' => 1, 'msg' => '添加失败']); } } //修改自定义字段 public function edit_field() { $request = request(); $param = $request->only(['id', 'pid', 'name', 'type', 'select' => null, 'unity']); if (!request()->isAjax()) { $data = CustomerPortraitField::with(['select'])->where([['root_id', '=', request()->employee->root_id], ['id', '=', $param['id']]]) ->find(); view::assign('data', $data); return view::fetch(); } if (strlen($param['name']) > 21) { return json(['code' => 1, 'msg' => '名称字数不能超过7个']); } $field_data = CustomerPortraitField::where([['root_id', '=', request()->employee->root_id], ['id', '=', $param['id']]])->find(); if(empty($field_data)) return json(['code' => 1, 'msg' => '修改失败,数据不存在']); $noup = ['deco_style', 'source_id']; if (!in_array($field_data['keyname'], $noup)) { $add = ['name' => $param['name'], 'type' => $param['type'], 'select' => json_encode($param['select']), 'unity' => $param['unity']]; //$ms=CustomerPortraitField::where('id',$param['id'])->update($add); $ms = $field_data->save($add); } $sad = []; $sve = []; if (($param['type'] == 3 || $param['type'] == 4) && !empty($param['select'])) { foreach ($param['select'] as $key => $val) { if (empty($val['id'])) { $sad[] = ['name' => $val['name'], 'pid' => $param['id']]; } if (!empty($val['id'])) { $sve[] = ['name' => $val['name'], 'id' => $val['id']]; } } if ($field_data['keyname'] == 'deco_style') { $fsmod = new Decostyle; if (!empty($sad)) { foreach ($sad as $k => $v) { //$sad[$k]['root_id']=request()->employee->root_id; $decad[] = ['name' => $v['name'], 'root_id' => request()->employee->root_id]; } $fsmod->saveAll($decad); } if (!empty($sve)) { $fsmod->saveAll($sve); } } elseif ($field_data['keyname'] == 'source_id') { $fsmod = new CustomerSource; if (!empty($sad)) { foreach ($sad as $k => $v) { //$sad[$k]['root_id']=request()->employee->root_id; $decad[] = ['source' => $v['name'], 'root_id' => request()->employee->root_id]; } $fsmod->saveAll($decad); } if (!empty($sve)) { $sb = []; $s = $fsmod->where([['id', 'in', array_column($sve, 'id')]])->column('source', 'id'); foreach ($sve as $key => $val) { if($val['name'] == $s[$val['id']]) { unset($sve[$key]); continue; } $sb[] = [ 'source' => $val['name'], 'id' => $val['id'] ]; } if (!empty($sb)) { $exit = Customer::where([['source_id', 'in', array_column($sve, 'id')]])->find(); if($exit) return json(['code'=>1, 'msg'=>'修改失败,尚有客户使用该来源']); $fsmod->saveAll($sb); } } } else { $fsmod = new CustomerPortraitFieldSelect; if (!empty($sad)) { $fsmod->saveAll($sad); } if (!empty($sve)) { $fsmod->saveAll($sve); } } } return json(['code' => 0, 'msg' => '修改成功']); // if($ms){ // return json(['code' => 0, 'msg' => '修改成功']); // }else{ // return json(['code' => 1, 'msg' => '修改失败']); // } } //删除自定义字段 public function del_field() { $request = request(); $param = $request->only(['id']); $ms = CustomerPortraitField::where([['id', '=', $param['id']], ['root_id', '=', request()->employee->root_id]])->find(); if ($ms['pid'] == 0) { $child = CustomerPortraitField::where([['pid', '=', $ms['id']], ['root_id', '=', request()->employee->root_id]])->count(); if (!empty($child)) { return json(['code' => 1, 'msg' => '请先删除子选项']); } } $ms->delete(); if ($ms) { return json(['code' => 0, 'msg' => '删除成功']); } else { return json(['code' => 1, 'msg' => '删除失败']); } } //删除自定义的select选项 public function del_select_opt() { $request = request(); $param = $request->only(['id', 'pid']); $pd = CustomerPortraitField::where([['id', '=', $param['pid']], ['root_id', '=', request()->employee->root_id]])->find(); if(empty($pd)) return json(['code'=>1, 'msg'=>"删除失败"]); if ($pd['keyname'] == 'deco_style') { // echo 'www'; // exit; $ms = Decostyle::where('id', $param['id'])->delete(); } elseif ($pd['keyname'] == 'source_id') { // 检测属性是否已经被使用 $s = CustomerSource::where([['id', '=', $param['id']], ['root_id', '=', request()->employee->root_id]])->find(); if(empty($s)) return json(['code'=>1, 'msg'=>"删除失败"]); /* 检测是否已经使用该值,如果使用,会影响统计相关内容,则不可删除和修改(20230328王振良,https://xueque.coding.net/p/aiyuansu/assignments/issues/5331/detail)*/ // 检测该值是否已经使用 $exit = Customer::where(['source_id'=>$s->id])->find(); if($exit) return json(['code'=>1, 'msg'=>"删除失败,尚有用户使用该来源"]); // 删除渠道 $s->delete(); } else { $ms = CustomerPortraitFieldSelect::where('id', $param['id'])->delete(); } return json(['code' => 0, 'msg' => '删除成功']); } //修改字段显示隐藏 public function set_show() { $request = request(); $param = $request->only(['id', 'field' => '']); $arr = ['isadd', 'status', 'is_must']; if (!in_array($param['field'], $arr)) return json(['code' => 1, 'msg' => '设置失败']); $ids = array_filter(explode(',', $param['id'])); foreach ($ids as $id){ $ms = CustomerPortraitField::find($id); $field = $param['field']; $ms->$field = $ms->$field ? 0 : 1; $ms->save(); if ($ms->keyname == 'group_building' && $field == 'status') { //建群情况和建群时间关联,,建群情况开启关闭时建群时间同步开启关闭 CustomerPortraitField::where([['root_id', '=', request()->employee->root_id], ['keyname', '=', 'group_building_date']])->update(['status' => $ms->$field]); } } return json(['code' => 0, 'msg' => '设置成功']); //CustomerPortraitField::where([['keyname','=','source_id']])->update(['isedit'=>0,'is_status'=>0]); /*if ($ms) { return json(['code' => 0, 'msg' => '设置成功']); } else { return json(['code' => 1, 'msg' => '设置失败']); }*/ } //添加大类 public function add_top_field() { $request = request(); $param = $request->only(['name']); $add = ['name' => $param['name'], 'root_id' => request()->employee->root_id, 'keyname' => time()]; $ms = CustomerPortraitField::create($add); if ($ms->id) { return json(['code' => 0, 'msg' => '添加成功']); } else { return json(['code' => 1, 'msg' => '添加失败']); } } //修改大类 public function edit_top_field() { $request = request(); $param = $request->only(['name', 'id']); $add = ['name' => $param['name']]; $ms = CustomerPortraitField::where([['id', '=', $param['id']], ['root_id', '=', request()->employee->root_id]])->update($add); if ($ms) { return json(['code' => 0, 'msg' => '修改成功']); } else { return json(['code' => 1, 'msg' => '修改失败']); } } public function change() { $defaultFields = [ [ 'name' => '基本信息', 'keyname' => 'basic_info', 'sort' => 1, 'value' => [ ['name' => '姓名', 'type' => 1, 'isedit' => 1, 'keyname' => 'name', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 1], ['name' => '手机号', 'type' => 2, 'isedit' => 1, 'keyname' => 'phone', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 2], ['name' => '性别', 'type' => 3, 'isedit' => 1, 'keyname' => 'sex', 'isdel' => 1, 'status' => 0, 'select' => ['男', '女'], 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 3], ['name' => '客户等级', 'type' => 3, 'isedit' => 1, 'keyname' => 'level', 'isdel' => 1, 'status' => 0, 'select' => ['A类', 'B类', 'C类', 'D类'], 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 5], ['name' => '装修意向', 'type' => 3, 'isedit' => 0, 'keyname' => 'intention', 'isdel' => 1, 'status' => 0, 'select' => ['非常高', '高', '中', '低'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 6], ['name' => '是否添加微信', 'type' => 3, 'isedit' => 0, 'keyname' => 'wechat', 'isdel' => 1, 'status' => 0, 'select' => ['是', '否'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 20], ['name' => '客户关注点', 'type' => 4, 'isedit' => 0, 'keyname' => 'follow', 'isdel' => 1, 'status' => 0, 'select' => ['服务流程', '设计方案', '施工质量', '施工材料', '工期长短', '售后服务', '其他'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 18], ['name' => '客户痛点', 'type' => 4, 'isedit' => 0, 'keyname' => 'point', 'isdel' => 1, 'status' => 0, 'select' => ['工艺', '环保', '质量', '恶意增项', '工期延期', '其他'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 19], ['name' => '客户来源', 'type' => 3, 'isedit' => 1, 'keyname' => 'source_id', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 9], ['name' => '是否首次装修', 'type' => 3, 'isedit' => 0, 'keyname' => 'first', 'isdel' => 1, 'status' => 0, 'select' => ['是', '否'], 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 10], ['name' => '年龄', 'type' => 3, 'isedit' => 0, 'keyname' => 'age_range', 'isdel' => 1, 'status' => 0, 'select' => ['20岁以下', '20-30岁', '30-40岁', '40-50岁', '50-60岁', '60岁以上'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 4], ['name' => '当前所在区域', 'type' => 3, 'isedit' => 0, 'keyname' => 'current_region', 'isdel' => 1, 'status' => 0, 'select' => ['其他'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 8], ['name' => '加微类型', 'type' => 3, 'isedit' => 1, 'keyname' => 'add_wechat_type', 'isdel' => 1, 'status' => 0, 'select' => ['常规加微', '社群加微'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 11], ['name' => '加微时间', 'type' => 5, 'isedit' => 1, 'keyname' => 'add_wechat_time', 'isdel' => 1, 'status' => 0, 'select' => ['常规加微', '社群加微'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 12], ['name' => '建群情况', 'type' => 4, 'isedit' => 0, 'keyname' => 'group_building', 'isdel' => 1, 'status' => 0, 'select' => ['1对1小群', '临时大群', '社群'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 13], ['name' => '直播情况', 'type' => 4, 'isedit' => 1, 'keyname' => 'live_broadcast', 'isdel' => 1, 'status' => 0, 'select' => ['1对1业务直播', '1对1设计直播', '一对多直播'], 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 14], ['name' => '业务直播人员', 'type' => 1, 'isedit' => 1, 'keyname' => 'live_broadcast_business', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 15], ['name' => '设计直播人员', 'type' => 1, 'isedit' => 1, 'keyname' => 'live_broadcast_design', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 16], ['name' => '直播人员', 'type' => 1, 'isedit' => 1, 'keyname' => 'live_broadcast_personnel', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 17], ['name' => '谈单时长', 'type' => 1, 'isedit' => 0, 'keyname' => 'talking_about_single_time', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '分钟', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 21], ['name' => '消费水平', 'type' => 3, 'isedit' => 0, 'keyname' => 'consumption_capacity', 'isdel' => 1, 'status' => 0, 'select' => ['高', '中', '低'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 7] ] ], [ 'name' => '房屋信息', 'keyname' => 'house_info', 'sort' => 2, 'value' => [ ['name' => '小区名称', 'type' => 1, 'isedit' => 0, 'keyname' => 'community_name', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 1], ['name' => '门牌单元号', 'type' => 1, 'isedit' => 0, 'keyname' => 'unit_number', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 2], ['name' => '请选择房屋户型', 'type' => 3, 'isedit' => 0, 'keyname' => 'housetype_arrow', 'isdel' => 1, 'status' => 0, 'select' => ['1居室', '2居室', '3居室', '4居室', '其他'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 5], ['name' => '面积', 'type' => 1, 'isedit' => 0, 'keyname' => 'square', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 4], ['name' => '装修预算', 'type' => 2, 'isedit' => 0, 'keyname' => 'budget', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '万元', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 11], ['name' => '请选择倾向风格', 'type' => 3, 'isedit' => 0, 'keyname' => 'deco_style', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 6], ['name' => '客户喜欢的色调', 'type' => 3, 'isedit' => 0, 'keyname' => 'like_color', 'isdel' => 1, 'status' => 0, 'select' => ['黄色调', '红色调', '蓝色调', '橙色调', '绿色调', '紫色调', '白色调', '灰色调'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 16], ['name' => '房屋类型', 'type' => 3, 'isedit' => 1, 'keyname' => 'house_type', 'isdel' => 1, 'status' => 0, 'select' => ['现房', '期房', '二手房'], 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 7], ['name' => '房屋状态', 'type' => 3, 'isedit' => 0, 'keyname' => 'house_status', 'isdel' => 1, 'status' => 0, 'select' => ['毛坯', '精装', '老房'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 9], ['name' => '房屋结构', 'type' => 3, 'isedit' => 0, 'keyname' => 'house_structure', 'isdel' => 1, 'status' => 0, 'select' => ['公寓', '商品房', '别墅', '自建'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 14], ['name' => '预计交房时间', 'type' => 5, 'isedit' => 1, 'keyname' => 'house_delivery_time', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 8], ['name' => '预计装修时间', 'type' => 5, 'isedit' => 1, 'keyname' => 'plan_deco_time', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 10], ['name' => '装修方式', 'type' => 3, 'isedit' => 0, 'keyname' => 'decoration_mode', 'isdel' => 1, 'status' => 0, 'select' => ['半包', '整装', '套餐'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 15], ['name' => '客户其它需求', 'type' => 1, 'isedit' => 0, 'keyname' => 'customer_demand', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 17], ['name' => '房屋用途', 'type' => 3, 'isedit' => 0, 'keyname' => 'housing_use', 'isdel' => 1, 'status' => 0, 'select' => ['自用', '出租'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 12], ['name' => '房屋位置', 'type' => 1, 'isedit' => 1, 'keyname' => 'house_location', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 1, 'isedit_type' => 1, 'sort' => 3], ['name' => '其他房屋信息', 'type' => 1, 'isedit' => 0, 'keyname' => 'remarks_on_other_house_information', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 18], ['name' => '周边配套', 'type' => 4, 'isedit' => 0, 'keyname' => 'peripheral_supporting', 'isdel' => 1, 'status' => 0, 'select' => ['商业', '教育', '交通', '资源', '其他'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 13] ] ], [ 'name' => '家庭信息', 'keyname' => 'family_info', 'sort' => 3, 'value' => [ ['name' => '家庭结构', 'type' => 3, 'isedit' => 0, 'keyname' => 'family_structure', 'isdel' => 1, 'status' => 0, 'select' => ['新婚夫妇', '三口之家', '四口之家', '其他'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 6, 'sort' => 1], ['name' => '家庭成员意见', 'type' => 3, 'isedit' => 0, 'keyname' => 'family_opinion', 'isdel' => 1, 'status' => 0, 'select' => ['非常满意', '满意', '一般', '不满意'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 3], ['name' => '决策人', 'type' => 3, 'isedit' => 0, 'keyname' => 'decision_maker', 'isdel' => 1, 'status' => 0, 'select' => ['老婆', '丈夫', '父亲', '孩子'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 2], ['name' => '客户爱好', 'type' => 1, 'isedit' => 0, 'keyname' => 'hobby', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 7], ['name' => '客户空闲时段', 'type' => 1, 'isedit' => 0, 'keyname' => 'free_time', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 8], ['name' => '汽车价格', 'type' => 2, 'isedit' => 0, 'keyname' => 'car_price', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '元', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 5], ['name' => '房屋价格', 'type' => 2, 'isedit' => 0, 'keyname' => 'hourse_price', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '元', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 4], ['name' => '买小区的原因', 'type' => 1, 'isedit' => 0, 'keyname' => 'buying_community', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 6] ] ], [ 'name' => '关注点', 'keyname' => 'behavioral_info', 'sort' => 4, 'value' => [ ['name' => '重视环保', 'type' => 3, 'isedit' => 0, 'keyname' => 'environmental_requirements', 'isdel' => 1, 'status' => 0, 'select' => ['非常重视', '重视', '一般', '不重视'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 1], ['name' => '关注的工艺', 'type' => 3, 'isedit' => 0, 'keyname' => 'workmanship', 'isdel' => 1, 'status' => 0, 'select' => ['水电工艺', '木工工艺', '泥工工艺', '油漆工艺', '吊顶工艺', '防水工艺'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 3], ['name' => '重视设计', 'type' => 3, 'isedit' => 0, 'keyname' => 'design', 'isdel' => 1, 'status' => 0, 'select' => ['非常重视', '重视', '一般', '不重视'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 2], ['name' => '关注房屋的空间', 'type' => 4, 'isedit' => 0, 'keyname' => 'space_design', 'isdel' => 1, 'status' => 0, 'select' => ['客厅', '卧室', '卫生间', '厨房', '阳台', '其他'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 4] ] ], [ 'name' => '客户满意度', 'keyname' => 'evaluate_info', 'sort' => 5, 'value' => [ ['name' => '设计师服务', 'type' => 3, 'isedit' => 0, 'keyname' => 'service_satisfaction', 'isdel' => 1, 'status' => 0, 'select' => ['非常好', '好', '一般', '不满意'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 1], ['name' => '报价满意度', 'type' => 3, 'isedit' => 0, 'keyname' => 'quotation_satisfaction', 'isdel' => 1, 'status' => 0, 'select' => ['非常好', '好', '一般', '不满意'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 2], ['name' => '方案满意度', 'type' => 3, 'isedit' => 0, 'keyname' => 'program_satisfaction', 'isdel' => 1, 'status' => 0, 'select' => ['非常好', '好', '一般', '不满意'], 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'sort' => 3] ] ] ]; $fieldmod = new CustomerPortraitFieldSelect; $list = Company::where('root_id', 23)->field('id,root_id,company_name')->select()->toArray(); foreach ($list as $p => $m) { $root_id = $m['root_id']; foreach ($defaultFields as $key => $val) { $parent = CustomerPortraitField::create([ 'name' => $val['name'], 'pid' => 0, 'type' => 1, 'isedit' => 0, 'root_id' => $root_id, 'status' => 0, 'isdel' => 1, 'keyname' => $val['keyname'], 'sort' => $val['sort'] ]); $pid = $parent->id; foreach ($val['value'] as $k => $v) { //$all[]=['name'=>$v['name'],'pid'=>$pid,'type'=>$v['type'],'isedit'=>$v['isedit'],'root_id'=>$root_id,'status'=>$v['status'],'isdel'=>$v['isdel'],'select'=>json_encode($v['select']),'keyname'=>$v['keyname']]; $add = ['name' => $v['name'], 'pid' => $pid, 'type' => $v['type'], 'isedit' => $v['isedit'], 'root_id' => $root_id, 'status' => $v['status'], 'isdel' => $v['isdel'], 'keyname' => $v['keyname'], 'unity' => $v['unity'], 'is_status' => $v['is_status'], 'isedit_type' => $v['isedit_type'], 'sort' => $v['sort']]; //$cp=$fieldmod->save($add); $cp = CustomerPortraitField::create($add); $all = []; if (!empty($v['select'])) { foreach ($v['select'] as $e => $r) { $all[] = ['name' => $r, 'pid' => $cp->id]; } $childObjs = $fieldmod->saveAll($all); } } } } } }