withCount(['visitLog' => function ($query) { $query->where(function($query){ $query->whereOr([[CustomerVisitLog::changeState(['state', '=', '预约量房'])], [CustomerVisitLog::changeState(['state', '=', '预约到店'])], [CustomerVisitLog::changeState(['state', '=', '预约活动'])]]); }); }])->withCount(['activityFrequency' => function ($query) { $query->where([CustomerVisitLog::changeState(['state', '=', '确认到场'])]); }]) ->where($condition) ->page($page, $limit)->order($order)->select(); $data = $data->visible(['id', 'employee_id', 'name', 'community_name', 'phone', 'level', 'state', 'square', 'revisit_time', 'addtime', 'last_contact_date', 'org_id', 'protected_to', 'is_resource', 'employee.name', 'org_name', 'designer.name', 'visit_log_count', 'activity_frequency_count','source_id','source.source', 'phone1', 'phone2','remark','crm_res_id','agents_id'])->toArray(); foreach ($data as &$item) { $item['protected'] = false; if (isset($item['protected_to']) && time() < strtotime($item['protected_to'])) { $item['protected'] = true; } $item['square'] = floatval($item['square']); $item['phone'] = substr_replace($item['phone'], '******', 3, 6); $item['phone1'] = $item['phone1'] ? substr_replace($item['phone1'], '******', 3, 6) : ''; $item['phone2'] = $item['phone2'] ? substr_replace($item['phone2'], '******', 3, 6) : ''; //增加跟进次数 $item['lognum'] = CustomerVisitLog::with('employee')->where('customer_id','=',$item['id'])->count(); } return $data; } public static function poollist($condition = [], $page, $limit, $order) { $page = intval($page); $limit = intval($limit); $data = Model::field('id, name, community_name, phone, phone1, phone2, level, state, square, addtime, org_id, employee_id, is_resource, before_pool') ->where($condition) ->page($page, $limit)->order($order)->select()->toArray(); foreach ($data as &$item) { $item['pool_name'] = Org::where('id', $item['org_id'])->column('name'); if (!$item['employee_id']) { $item['phone'] = substr_replace($item['phone'], '******', 3, 6); $item['phone1'] = !empty($item['phone1'])?substr_replace($item['phone1'], '******', 3, 6):''; $item['phone2'] = !empty($item['phone2'])?substr_replace($item['phone2'], '******', 3, 6):''; } } return $data; } public static function resourcelist($condition = [], $page, $limit, $order) { $page = intval($page); $limit = intval($limit); $data = Model::field('id, name, community_name, phone, level, state, square, addtime,org_id,crm_res_id, employee_id, is_resource') ->where($condition) ->page($page, $limit)->order($order)->select()->toArray(); foreach ($data as &$item) { $item['pool_name'] = Org::where('id', $item['org_id'])->column('name'); if (!$item['employee_id'] && $item['is_resource'] == 1) { $item['phone'] = substr_replace($item['phone'], '******', 3, 6); } } return $data; } public static function count($condition = []) { return Model::where($condition)->count(); } public static function info($id) { return Model::where('id', $id)->find(); } //新数据处理 public function new_data_save($cusdata, $extdata, $list) { foreach ($list as $key => $val) { foreach ($val['child'] as $k => $v) { $selid = ''; $selname = ''; $save1 = ['name', 'phone', 'phone1','phone2','community_name', 'house_delivery_time', 'plan_deco_time', 'square', 'budget']; $save2 = ['level', 'house_type', 'deco_style', 'source_id']; if (in_array($v['keyname'], $save1)) { $list[$key]['child'][$k]['value'] = !empty($cusdata[$v['keyname']]) ? $cusdata[$v['keyname']] : ''; } if (in_array($v['keyname'], $save2)) { foreach ($v['select'] as $r => $e) { if ($e['name'] == $cusdata[$v['keyname']] || $e['id'] == $cusdata[$v['keyname']]) { $selid = $e['id']; $selname = $e['name']; $list[$key]['child'][$k]['select'][$r]['check'] = in_array($v['type'], [3,4]) ? 'true' : 'false'; //是否选中值,客服pc端报备渲染使用 } } $list[$key]['child'][$k]['value'] = $selid; $list[$key]['child'][$k]['valname'] = $selname; } // 上面已经赋值的固定字段,下方扩展字段可能存值但是可能是旧值,所以得排除 save1,save2 的合集 排除来源 $saved_field = ['name', 'phone', 'phone1','phone2','community_name', 'house_delivery_time', 'plan_deco_time', 'budget', 'level', 'house_type', 'deco_style']; $selname1 = ''; foreach ($extdata as $p => $m) { if ($m['id'] == $v['id'] && !in_array($v['keyname'], $saved_field)) { if(!empty($v['keyname']) && $v['keyname'] == 'sign_time' && !empty($m['value'])) $m['value'] = date("Y/m/d H:i",strtotime($m['value'])); $list[$key]['child'][$k]['value'] = $m['value']; if (in_array($v['type'], [3, 4]) && !empty($m['value'])) { $sp = explode(',', (string)$m['value']); foreach ($v['select'] as $w => $q) { if (in_array($q['id'], $sp)) { $selname1 .= $q['name'] . ','; $list[$key]['child'][$k]['select'][$w]['check'] = 'true'; //是否选中值,客服pc端报备渲染使用 } } $list[$key]['child'][$k]['valname'] = trim($selname1, ','); } //图片类型 if (in_array($v['type'], [6]) && !empty($m['value'])) { $img = explode(',', $m['value']); $img_arr = []; foreach ($img as $url) { $img_arr[] = [ 'url' => $url, 'oss_url' => 'https://'.config('app.ali_oss_bindurl').'/'.$url ]; } $list[$key]['child'][$k]['value'] = $img_arr; } } } if(!empty($v['keyname']) && $v['keyname'] == 'sign_time' && empty($list[$key]['child'][$k]['value'])) $list[$key]['child'][$k]['value'] = date('Y/m/d H:i',strtotime($cusdata['sign_time'])); } } return $list; } public function get_old_ext(){ $extAttr = [ 'ext1' => '年龄', 'ext2' => '是否首次装修', 'ext3' => '消费水平', 'ext4' => '预计装修时间', 'ext5' => '客户爱好', 'ext6' => '是否添加微信', 'ext7' => '客户空闲时间段', 'ext8' => '家庭结构', 'ext9' => '家庭成员意见', 'ext10' => '请选择房屋户型', 'ext11' => '决策人', 'ext12' => '客户喜欢的色调', 'ext13' => '房屋结构', 'ext14' => '装修方式', 'ext15' => '客户其它需求', 'ext16' => '客户痛点', 'ext17' => '重视环保', 'ext18' => '重视设计', 'ext19' => '关注的工艺', 'ext20' => '关注房屋的空间', 'ext21' => '汽车价格', 'ext22' => '房屋价格', 'ext23' => '买小区的原因', 'ext24' => '周边配置', 'ext25' => '设计师服务', 'ext26' => '方案满意度', 'ext27' => '报价满意度', 'ext28' => '装修意向', 'ext29' => '是否到店', 'ext30' => '预计到店时间', 'ext31' => '是否交定', 'ext32' => '客户其他需求', 'ext33' => '当前所在区域', 'ext34' => '加微类型', 'ext35' => '建群情况', 'ext36' => '直播情况', 'ext37' => '直播人员', 'ext38' => '房屋用途', 'ext39' => '房屋位置', 'ext40' => '其他房屋信息', 'ext41' => '谈单时长', 'ext42' => '门牌单元号', 'ext43' => '业务直播人员', 'ext44' => '设计直播人员' ]; return $extAttr; } //老数据转换 public function old_data_save($cusdata, $list) { $extAttr = $this->get_old_ext(); //$ext='{"ext1": "20-30岁", "ext2": "是", "ext3": "低", "ext4": ", "ext5": "", "ext6": "是", "ext7": "", "ext8": "三口之家", "ext9": "满意", "ext10": "3居室", "ext11": "父亲", "ext12": "红色调", "ext13": "商品房", "ext14": "套餐", "ext15": "", "ext16": "环保", "ext17": "", "ext18": "", "ext19": "", "ext20": "", "ext21": "", "ext22": "", "ext23": "", "ext24": "", "ext25": "", "ext26": "", "ext27": "", "ext28": "非常强烈", "ext29": "", "ext30": "", "ext31": "", "ext32": "", "ext33": "", "ext34": "", "ext35": "", "ext36": "", "ext37": "", "ext38": "", "ext39": "", "ext40": ""}'; //$ext = get_object_vars($cusdata['ext']); $ext = json_decode($cusdata['ext'],true); $xin = []; foreach ($ext as $key => $val) { foreach ($extAttr as $k => $v) { if ($k == $key) { $a['name'] = $v; $a['value'] = $val; } } $xin[] = $a; } foreach ($list as $key => $val) { foreach ($val['child'] as $k => $v) { $selid = ''; $selname = ''; $save1 = ['name', 'phone', 'community_name', 'house_delivery_time', 'plan_deco_time', 'square', 'budget']; $save2 = ['age_range', 'level', 'house_type', 'deco_style', 'source_id']; if (in_array($v['keyname'], $save1)) { $list[$key]['child'][$k]['value'] = !empty($cusdata[$v['keyname']]) ? $cusdata[$v['keyname']] : ''; } if (in_array($v['keyname'], $save2)) { foreach ($v['select'] as $r => $e) { if ($e['name'] == $cusdata[$v['keyname']]) { $selid = $e['id']; $selname = $e['name']; $list[$key]['child'][$k]['select'][$r]['check'] = in_array($v['type'], [3,4]) ? 'true' : 'false'; //是否选中值,客服pc端报备渲染使用 } } $list[$key]['child'][$k]['value'] = $selid; $list[$key]['child'][$k]['valname'] = $selname; } foreach ($xin as $p => $m) { $selid = ''; $selname = ''; if ($m['name'] == $v['name']) { if (in_array($v['type'], [1, 2, 5])) { $list[$key]['child'][$k]['value'] = $m['value']; } if ($v['type'] == 3) { foreach ($v['select'] as $r => $e) { if ($e['name'] == $m['value']) { $selid = $e['id']; $selname = $e['name']; $list[$key]['child'][$k]['select'][$r]['check'] = 'true'; //是否选中值,客服pc端报备渲染使用 } } $list[$key]['child'][$k]['value'] = $selid; $list[$key]['child'][$k]['valname'] = $selname; } if ($v['type'] == 4) { if (!empty($m['value'])) { $dv = explode(',', $m['value']); foreach ($v['select'] as $r => $e) { if (in_array($e['name'], $dv)) { $selid .= $e['id'] . ','; $selname .= $e['name'] . ','; $list[$key]['child'][$k]['select'][$r]['check'] = 'true'; //是否选中值,客服pc端报备渲染使用 } } } $list[$key]['child'][$k]['value'] = trim($selid, ','); $list[$key]['child'][$k]['valname'] = $selname; } //图片类型 if ($v['type'] == 6 && !empty($m['value'])) { $img = explode(',', $m['value']); $img_arr = []; foreach ($img as $url) { $img_arr[] = [ 'url' => $url, 'oss_url' => 'https://'.config('app.ali_oss_bindurl').'/'.$url ]; } $list[$key]['child'][$k]['value'] = $img_arr; } } } if(!empty($v['keyname']) && $v['keyname'] == 'sign_time' && empty($list[$key]['child'][$k]['value'])) $list[$key]['child'][$k]['value'] = date('Y/m/d H:i',strtotime($cusdata['sign_time'])); } } return $list; } public function new_data_saves($cusdata, $extdata, $list) { foreach ($list as $key => $val) { $list[$key]['value'] = ''; $list[$key]['valname'] = ''; $selid = ''; $selname = ''; $save1 = ['name', 'phone', 'community_name', 'house_delivery_time', 'plan_deco_time', 'square', 'budget']; $save2 = ['level', 'house_type', 'deco_style', 'source_id']; if (in_array($val['keyname'], $save1)) { $list[$key]['value'] = !empty($cusdata[$val['keyname']]) ? $cusdata[$val['keyname']] : ''; } if (in_array($val['keyname'], $save2)) { foreach ($val['select'] as $r => $e) { if ($e['name'] == $cusdata[$val['keyname']] || $e['id'] == $cusdata[$val['keyname']]) { $selid = $e['id']; $selname = $e['name']; } } $list[$key]['value'] = $selid; $list[$key]['valname'] = $selname; } // 上面已经赋值的固定字段,下方扩展字段可能存值但是可能是旧值,所以得排除 save1,save2 的合集 排除 $saved_field = ['name', 'phone', 'phone1','phone2','community_name', 'house_delivery_time', 'plan_deco_time', 'square', 'budget', 'level', 'house_type', 'deco_style']; $selname1 = ''; foreach ($extdata as $p => $m) { if (isset($m['value']) && isset($m['keyname']) && isset($m['id']) && $m['id'] == $val['id'] && !in_array($m['keyname'], $saved_field)) { $list[$key]['value'] = $m['value']; if (in_array($val['type'], [3, 4]) && !empty($m['value'])) { $sp = explode(',', (string)$m['value']); foreach ($val['select'] as $w => $q) { if (in_array($q['id'], $sp)) { $selname1 .= $q['name'] . ','; } } $list[$key]['valname'] = trim($selname1, ','); }else{ $list[$key]['valname'] = $m['value']; } //图片类型 if (in_array($val['type'], [6]) && !empty($m['value'])) { $img = explode(',', $m['value']); $img_arr = []; foreach ($img as $url) { $img_arr[] = [ 'url' => $url, 'oss_url' => 'https://'.config('app.ali_oss_bindurl').'/'.$url ]; } $list[$key]['value'] = $img_arr; } } } } return $list; } //老数据转换 public function old_data_saves($cusdata, $list) { $extAttr = $this->get_old_ext(); //$ext='{"ext1": "20-30岁", "ext2": "是", "ext3": "低", "ext4": ", "ext5": "", "ext6": "是", "ext7": "", "ext8": "三口之家", "ext9": "满意", "ext10": "3居室", "ext11": "父亲", "ext12": "红色调", "ext13": "商品房", "ext14": "套餐", "ext15": "", "ext16": "环保", "ext17": "", "ext18": "", "ext19": "", "ext20": "", "ext21": "", "ext22": "", "ext23": "", "ext24": "", "ext25": "", "ext26": "", "ext27": "", "ext28": "非常强烈", "ext29": "", "ext30": "", "ext31": "", "ext32": "", "ext33": "", "ext34": "", "ext35": "", "ext36": "", "ext37": "", "ext38": "", "ext39": "", "ext40": ""}'; //$ext = get_object_vars($cusdata['ext']); $ext = json_decode($cusdata['ext'],true); $xin = []; foreach ($ext as $key => $val) { foreach ($extAttr as $k => $v) { if ($k == $key) { $a['name'] = $v; $a['value'] = $val; } } $xin[] = $a; } foreach ($list as $key => $val) { $list[$key]['value'] = ''; $list[$key]['valname'] = ''; $selid = ''; $selname = ''; $save1 = ['name', 'phone', 'community_name', 'house_delivery_time', 'plan_deco_time', 'square', 'budget']; $save2 = ['age_range', 'level', 'house_type', 'deco_style', 'source_id']; if (in_array($val['keyname'], $save1)) { $list[$key]['value'] = !empty($cusdata[$val['keyname']]) ? $cusdata[$val['keyname']] : ''; } if (in_array($val['keyname'], $save2)) { foreach ($val['select'] as $r => $e) { if ($e['name'] == $cusdata[$val['keyname']]) { $selid = $e['id']; $selname = $e['name']; } } $list[$key]['value'] = $selid; $list[$key]['valname'] = $selname; } foreach ($xin as $p => $m) { $selid = ''; $selname = ''; if ($m['name'] == $val['name']) { if (in_array($val['type'], [1, 2, 5])) { $list[$key]['value'] = $m['value']; $list[$key]['valname'] = $m['value']; } if ($val['type'] == 3) { foreach ($val['select'] as $r => $e) { if ($e['name'] == $m['value']) { $selid = $e['id']; $selname = $e['name']; } } $list[$key]['value'] = $selid; $list[$key]['valname'] = $selname; } if ($val['type'] == 4) { if (!empty($m['value'])) { $dv = explode(',', $m['value']); foreach ($val['select'] as $r => $e) { if (in_array($e['name'], $dv)) { $selid .= $e['id'] . ','; $selname .= $e['name'] . ','; } } } $list[$key]['value'] = trim($selid, ','); $list[$key]['valname'] = trim($selname,','); } //图片类型 if ($val['type'] == 6 && !empty($m['value'])) { $img = explode(',', $m['value']); $img_arr = []; foreach ($img as $url) { $img_arr[] = [ 'url' => $url, 'oss_url' => 'https://'.config('app.ali_oss_bindurl').'/'.$url ]; } $list[$key]['value'] = $img_arr; } } } } return $list; } /** * ext无数据时处理 */ public function no_ext_save($cusdata, $list) { foreach ($list as $key => $val) { foreach ($val['child'] as $k => $v) { $selid = ''; $selname = ''; $save1 = ['name', 'phone', 'community_name', 'house_delivery_time', 'plan_deco_time', 'square', 'budget']; $save2 = ['age_range', 'level', 'house_type', 'deco_style', 'source_id']; if (in_array($v['keyname'], $save1)) { //$list[$key]['child'][$k]['value'] = !empty($cusdata[$v['keyname']]) ? $cusdata[$v['keyname']] : ''; $selid = !empty($cusdata[$v['keyname']]) ? $cusdata[$v['keyname']] : ''; $selname = !empty($cusdata[$v['keyname']]) ? $cusdata[$v['keyname']] : ''; } if (in_array($v['keyname'], $save2)) { foreach ($v['select'] as $r => $e) { if ($e['name'] == $cusdata[$v['keyname']]) { $selid = $e['id']; $selname = $e['name']; $list[$key]['child'][$k]['select'][$r]['check'] = in_array($v['type'], [3,4]) ? 'true' : 'false'; //是否选中值,客服pc端报备渲染使用 } } } $list[$key]['child'][$k]['value'] = $selid; $list[$key]['child'][$k]['valname'] = $selname; if(!empty($v['keyname']) && $v['keyname'] == 'sign_time') $list[$key]['child'][$k]['value'] = date('Y/m/d H:i',strtotime($cusdata['sign_time'])); } } return $list; } /** * ext无数据时处理 */ public function no_ext_saves($cusdata, $list) { foreach ($list as $k => $v) { $selid = ''; $selname = ''; $save1 = ['name', 'phone', 'community_name', 'house_delivery_time', 'plan_deco_time', 'square', 'budget']; $save2 = ['age_range', 'level', 'house_type', 'deco_style', 'source_id']; if (in_array($v['keyname'], $save1)) { $list[$k]['value'] = !empty($cusdata[$v['keyname']]) ? $cusdata[$v['keyname']] : ''; } if (in_array($v['keyname'], $save2)) { foreach ($v['select'] as $r => $e) { if ($e['name'] == $cusdata[$v['keyname']]) { $selid = $e['id']; $selname = $e['name']; } } } $list[$k]['value'] = $selid; $list[$k]['valname'] = $selname; } return $list; } /** * 旧ext编辑保存 */ public function old_ext_edit($cusdata, $save_ext, $new_ext){ $old_ext = $this->get_old_ext(); $ext = json_decode($cusdata['ext'],true); // 数据的旧ext处理 $xin = []; foreach ($ext as $key => $val) { foreach ($old_ext as $k => $v) { if ($k == $key) { $a['name'] = $v; $a['value'] = $val; } } $xin[] = $a; } //旧ext处理成新的ext结构 $old_data = []; foreach ($xin as $k => $v){ foreach ($new_ext as $kk => $vv){ if ($v['name'] == $vv['name'] && !empty($v['value'])) { $old_data['id'] = $vv['id']; $old_data['keyname'] = $vv['keyname']; $old_data['value'] = $v['value']; } } } // 旧ext数据和新的保存数据合并。 foreach ($old_data as $k => $v) { foreach ($save_ext as $kk => $vv){ if ($v['id'] == $vv['id']){ unset($save_ext[$kk]); $old_data[$k]['value'] = $vv['value']; isset($vv['type']) ? $old_data[$k]['type'] = $vv['type'] : ''; //当时图片类型时保留 } } } $save_ext = array_values($save_ext); $return_data = []; if (!empty($save_ext) && !empty($old_data)){ $return_data = array_merge($save_ext, $old_data); } elseif (!empty($old_data)){ $return_data = $old_data; } elseif (!empty($save_ext)) { $return_data = $save_ext; } return $return_data; } /** * 新ext编辑保存 */ public function new_ext_edit($cusdata, $save_ext){ $old_data = json_decode($cusdata['ext'],true); // 旧ext数据和新的保存数据合并。 foreach ($old_data as $k => $v) { foreach ($save_ext as $kk => $vv){ if ($v['id'] == $vv['id']){ unset($save_ext[$kk]); $old_data[$k]['value'] = $vv['value']; isset($vv['type']) ? $old_data[$k]['type'] = $vv['type'] : ''; //当时图片类型时保留 } } } $save_ext = array_values($save_ext); $return_data = []; if (!empty($save_ext) && !empty($old_data)){ $return_data = array_merge($save_ext, $old_data); } elseif (!empty($old_data)){ $return_data = $old_data; } elseif (!empty($save_ext)) { $return_data = $save_ext; } return $return_data; } //查询修改值的字段 public function check_old_updatefield($cusdata,$save_ext,$new_ext,$token) { $old_ext = $this->get_old_ext(); $ext = json_decode($cusdata['ext'],true); // 数据的旧ext处理 $xin = []; foreach ($ext as $key => $val) { foreach ($old_ext as $k => $v) { if ($k == $key) { $a['name'] = $v; $a['value'] = $val; } } $xin[] = $a; } //旧ext处理成新的ext结构 $old_data = []; foreach ($xin as $k => $v){ foreach ($new_ext as $kk => $vv){ if ($v['name'] == $vv['name'] && !empty($v['value'])) { $old_data['id'] = $vv['id']; $old_data['keyname'] = $vv['keyname']; $old_data['value'] = $v['value']; } } } $old_data = json_decode($cusdata['ext'],true); $yes_save = []; foreach ($old_data as $k => $v) { foreach ($save_ext as $kk => $vv) { if ($v['id'] == $vv['id']) { //判断是否修改了数据 if (!isset($vv['type']) && $v['value'] != $vv['value']) { $yes_save[] = $vv; } //判断图片类型的数据是否修改 if (isset($vv['type']) && !empty($vv['value'])) { $newval = json_decode($vv['value'], true); $files = $isbreak = null; foreach ($newval as $kkk => $vvv) { if (!empty($vvv['serverId'])) { $yes_save[] = $vv; $isbreak = 1; break; } else { $img = $vv['img'] ?? ''; } $files .= $img . ','; } if ($isbreak != 1 && $files != $v['value']) { $yes_save[] = $vv; } } unset($save_ext[$kk]); } } } //去除为空值的新字段 foreach($save_ext as $key=>$val){ if(empty($val['value'])){ unset($save_ext[$key]); } } $save_ext = array_values($save_ext); $yes_data = $yes_save; if (!empty($save_ext)){ $yes_data = array_merge($yes_save,$save_ext); } if(!empty($yes_data)) $this->save_field_log($yes_data,$cusdata,$token); } //查询修改值的字段 public function check_new_updatefield($cusdata,$save_ext,$token) { $old_data = json_decode($cusdata['ext'],true); $yes_save = []; foreach ($old_data as $k => $v) { foreach ($save_ext as $kk => $vv) { if ($v['id'] == $vv['id']) { //判断是否修改了数据 if (!isset($vv['type']) && $v['value'] != $vv['value']) { $yes_save[] = $vv; } //判断图片类型的数据是否修改 if (isset($vv['type']) && !empty($vv['value'])) { $newval = json_decode($vv['value'], true); //$newval = $vv['value']; $files = $isbreak = null; foreach ($newval as $kkk => $vvv) { if (!empty($vvv['serverId'])) { $yes_save[] = $vv; $isbreak = 1; break; } else { $img = $vvv['img'] ?? ''; } $files .= $img . ','; } if ($isbreak != 1 && trim($files,',') != $v['value']) { $yes_save[] = $vv; } } unset($save_ext[$kk]); } } } //去除为空值的新字段 foreach($save_ext as $key=>$val){ if(empty($val['value'])){ unset($save_ext[$key]); } } $save_ext = array_values($save_ext); $yes_data = $yes_save; if (!empty($save_ext)){ $yes_data = array_merge($yes_save,$save_ext); } // var_dump($yes_data); // exit; if(!empty($yes_data)) $this->save_field_log($yes_data,$cusdata,$token); } //新添加字段时的处理 public function check_not_updatefield($cusdata,$save_ext,$token) { $yes_save = []; foreach($save_ext as $key=>$val){ if(!empty($val['value'])){ $yes_save[] = $val; } } if(!empty($yes_save)) $this->save_field_log($yes_save,$cusdata,$token); } //处理修改字段的记录 public function save_field_log($yes_data,$cusdata,$token) { //$token = $this->request->token; $save_ids = array_column($yes_data,'id'); $is_down = 0; $new_ext = CustomerPortraitField::with(['select'])->where([['root_id', '=', $token['root_org']], ['pid', '<>', 0],['id','in',$save_ids]])->select()->toArray(); $city = Company::where('root_id', $token['root_org'])->value('city'); foreach($new_ext as $key=>$val) { if ($val['keyname'] == 'current_region') { $new_ext[$key]['select'][] = ['id' => $token['root_org'], 'name' => $city, 'pid' => $val['id']]; } if ($val['keyname'] == 'source_id') { $new_ext[$key]['select'] = CustomerSource::field('id,source as name')->where('root_id', $token['root_org'])->select()->toArray(); } if ($val['keyname'] == 'deco_style') { $new_ext[$key]['select'] = Decostyle::field('id,name')->where([['root_id', '=', $token['root_org']], ['type', '=', 0]])->select()->toArray(); } } foreach($yes_data as $key=>$val){ $selname1 = null; $yes_data[$key]['valname'] = $val['value']; foreach($new_ext as $k=>$v){ if($v['id']==$val['id']){ if($v['type']==6) $is_down = 1; $yes_data[$key]['name'] = $v['name']; $yes_data[$key]['type'] = $v['type']; if (in_array($v['type'], [3, 4]) && !empty($val['value'])) { $sp = explode(',', (string)$val['value']); foreach ($v['select'] as $w => $q) { if (in_array($q['id'], $sp)) { $selname1 .= $q['name'] . ','; } } $yes_data[$key]['valname'] = trim($selname1, ','); } } } } // 添加追踪记录 $visitLog = [ 'customer_id' => $cusdata->id, 'type' => 1, 'next_contact_date' => null, 'employee_id' => $token['employee_id'], 'user_id' => $token['uid'], 'remark' => '修改客户扩展信息', 'state' => 1, 'org_id' => $token['org_id'], 'customer_employee_id' => $cusdata->employee_id, 'customer_org_id' => Employee::where('id', $cusdata->employee_id)->value('org_id'), 'save_portrait_field' =>json_encode($yes_data), 'down_portrait_field_status' => $is_down ? $is_down : 0 ]; CustomerVisitLog::create($visitLog); } }