123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <?php
- namespace app\model;
- use think\Model;
- class CustomerPortrait extends Model
- {
- protected $defaultFields = [
- 'basic_info' => [
- 'name' => ['title' => '姓名', 'value' => 'name', 'status' => 1, 'select' => []],
- 'phone' => ['title' => '手机号码', 'value' => 'phone', 'status' => 1, 'select' => []],
- 'sex' => ['title' => '性别', 'value' => 'sex', 'status' => 1, 'select' => ['男', '女']],
- 'level' => ['title' => '客户等级', 'value' => 'level', 'status' => 1, 'select' => ['A', 'B', 'C']],
- 'intention' => ['title' => '装修意向程度', 'value' => 'intention', 'status' => 1, 'select' => ['非常高', '高', '中', '低']],
- 'wechat' => ['title' => '微信', 'value' => 'wechat', 'status' => 1, 'select' => ['有', '无']],
- 'follow' => ['title' => '客户关注点', 'value' => 'follow', 'status' => 1, 'select' => ['服务流程', '设计方案', '施工质量', '施工材料', '工期长短', '售后服务', '其他']],
- 'point' => ['title' => '客户痛点', 'value' => 'point', 'status' => 1, 'select' => ['工艺', '环保', '质量', '恶意增项', '工期延期', '其他']],
- 'source_id' => ['title' => '来源', 'value' => 'source_id', 'status' => 1, 'select' => []],
- 'first' => ['title' => '是否首次装修', 'value' => 'first', 'status' => 1, 'select' => ['是', '否']],
- 'age_range' => ['title' => '年龄', 'value' => 'age_range', 'status' => 1, 'select' => ['20岁以下', '20-30岁', '30-40岁', '40-50岁', '50-60岁', '60岁以上']],
- 'current_region' => ['title' => '当前所在区域', 'value' => 'current_region', 'status' => 0, 'select' => ['其他']],
- 'add_wechat_type' => ['title' => '加微类型', 'value' => 'add_wechat_type', 'status' => 0, 'select' => ['常规加微']],
- 'group_building' => ['title' => '建群情况', 'value' => 'group_building', 'status' => 0, 'select' => ['1对1小群', '临时大群', '社群']],
- 'live_broadcast' => ['title' => '直播情况', 'value' => 'live_broadcast', 'status' => 0, 'select' => ['1对1业务直播', '1对1设计直播', '一对多直播']],
- 'live_broadcast_business' => ['title' => '1对1业务人员', 'value' => 'live_broadcast_business', 'status' => 0, 'select' => []],
- 'live_broadcast_design' => ['title' => '1对1设计人员', 'value' => 'live_broadcast_design', 'status' => 0, 'select' => []],
- 'live_broadcast_personnel' => ['title' => '直播人员', 'value' => 'live_broadcast_personnel', 'status' => 0, 'select' => []],
- 'talking_about_single_time' => ['title' => '谈单时长', 'value' => 'talking_about_single_time', 'status' => 0, 'select' => []],
- 'consumption_capacity' => ['title' => '消费能力', 'value' => 'consumption_capacity', 'status' => 1, 'select' => ['高', '中', '低']]
- ],
- 'family_info' => [
- 'family_structure' => ['title' => '家庭结构', 'value' => 'family_structure', 'status' => 1, 'select' => ['新婚夫妇', '三口之家', '四口之家', '其他']],
- 'family_opinion' => ['title' => '家庭成员意见', 'value' => 'family_opinion', 'status' => 1, 'select' => ['非常满意', '满意', '一般', '不满意']],
- 'decision_maker' => ['title' => '决策人', 'value' => 'decision_maker', 'status' => 1, 'select' => ['老婆', '丈夫', '父亲', '孩子']],
- 'hobby' => ['title' => '爱好', 'value' => 'hobby', 'status' => 1, 'select' => []],
- 'free_time' => ['title' => '客户空闲时段', 'value' => 'free_time', 'status' => 1, 'select' => []],
- 'car_price' => ['title' => '汽车价格', 'value' => 'car_price', 'status' => 1, 'select' => []],
- 'hourse_price' => ['title' => '房屋价格', 'value' => 'hourse_price', 'status' => 1, 'select' => []],
- 'buying_community' => ['title' => '买小区的原因', 'value' => 'buying_community', 'status' => 1, 'select' => []]
- ],
- 'house_info' => [
- 'community_name' => ['title' => '小区名称', 'value' => 'community_name', 'status' => 1, 'select' => []],
- 'unit_number' => ['title' => '门牌单元号', 'value' => 'unit_number', 'status' => 1, 'select' => []],
- 'housetype_arrow' => ['title' => '户型', 'value' => 'housetype_arrow', 'status' => 1, 'select' => ['1居室', '2居室', '3居室', '4居室', '其他']],
- 'square' => ['title' => '面积', 'value' => 'square', 'status' => 1, 'select' => ['60平以下', '60-80平', '80-100平', '10-0-120平', '120-140平', '140平以上']],
- 'budget' => ['title' => '装修预算', 'value' => 'budget', 'status' => 1, 'select' => []],
- 'deco_style' => ['title' => '倾向风格', 'value' => 'deco_style', 'status' => 1, 'select' => []],
- 'like_color' => ['title' => '喜欢色调', 'value' => 'like_color', 'status' => 1, 'select' => ['黄色调', '红色调', '蓝色调', '橙色调', '绿色调', '紫色调', '白色调', '灰色调']],
- 'house_type' => ['title' => '房屋类型', 'value' => 'house_type', 'status' => 1, 'select' => ['现房', '期房', '二手房']],
- 'house_status' => ['title' => '房屋状态', 'value' => 'house_status', 'status' => 1, 'select' => ['毛坯', '精装', '老房']],
- 'house_structure' => ['title' => '房屋结构', 'value' => 'house_structure', 'status' => 1, 'select' => ['公寓', '商品房', '别墅', '自建']],
- 'house_delivery_time' => ['title' => '交房时间', 'value' => 'house_delivery_time', 'status' => 1, 'select' => []],
- 'plan_deco_time' => ['title' => '预计装修时间', 'value' => 'plan_deco_time', 'status' => 1, 'select' => []],
- 'decoration_mode' => ['title' => '装修方式', 'value' => 'decoration_mode', 'status' => 1, 'select' => ['半包', '整装', '套餐']],
- 'customer_demand' => ['title' => '客户需求', 'value' => 'customer_demand', 'status' => 1, 'select' => []],
- 'housing_use' => ['title' => '房屋用途', 'value' => 'housing_use', 'status' => 1, 'select' => ['自用', '出租']],
- 'house_location' => ['title' => '房屋位置', 'value' => 'house_location', 'status' => 1, 'select' => []],
- 'remarks_on_other_house_information' => ['title' => '其他房屋信息备注', 'value' => 'remarks_on_other_house_information', 'status' => 1, 'select' => []],
- 'peripheral_supporting' => ['title' => '周边配套', 'value' => 'peripheral_supporting', 'status' => 1, 'select' => ['商业', '教育', '交通', '资源', '其他']]
- ],
- 'behavioral_info' => [
- 'environmental_requirements' => ['title' => '重视环保', 'value' => 'environmental_requirements', 'status' => 1, 'select' => ['非常重视', '重视', '一般', '不重视']],
- 'workmanship' => ['title' => '关注的工艺', 'value' => 'workmanship', 'status' => 1, 'select' => ['水电工艺', '木工工艺', '泥工工艺', '油漆工艺', '吊顶工艺', '防水工艺']],
- 'design' => ['title' => '重视设计', 'value' => 'design', 'status' => 1, 'select' => ['非常重视', '重视', '一般', '不重视']],
- 'space_design' => ['title' => '特别在意的空间设计', 'value' => 'space_design', 'status' => 1, 'select' => ['客厅', '卧室', '卫生间', '厨房', '阳台', '其他']]
- ],
- 'evaluate_info' => [
- 'service_satisfaction' => ['title' => '设计师服务满意度', 'value' => 'service_satisfaction', 'status' => 1, 'select' => ['非常好', '好', '一般', '不满意']],
- 'quotation_satisfaction' => ['title' => '报价满意度', 'value' => 'quotation_satisfaction', 'status' => 1, 'select' => ['非常好', '好', '一般', '不满意']],
- 'program_satisfaction' => ['title' => '方案满意度', 'value' => 'program_satisfaction', 'status' => 1, 'select' => ['非常好', '好', '一般', '不满意']]
- ],
- 'info_status' => ['basic_info' => 1, 'family_info' => 1, 'house_info' => 1, 'behavioral_info' => 1, 'evaluate_info' => 1]
- ];
- /**
- * 扩展属性获取
- *
- * @param string $value
- * @param array $data
- * @return void
- */
- public function getFieldsAttr($value, $data)
- {
- if (empty($data) || empty($value)) return $this->defaultFields;
- // 保持状态修改(一下两个地方内容如果修改,属性同步修改)
- $wechat = Setting::where([['root_id', '=', $data['root_id']], ['name', '=', 'customerWechatSetting']])->value('content');
- $city = Company::where([['root_id', '=', $data['root_id']]])->value('city');
- $this->defaultFields['basic_info']['current_region']['select'] = [$city, '其他'];
- if ($wechat)
- $this->defaultFields['basic_info']['add_wechat_type']['select'] = explode(',', $wechat);
- $value = json_decode($value, true);
- $data = [];
- foreach ($this->defaultFields as $k1 => $v1) {
- foreach ($v1 as $k2 => $v2) {
- $status = 0;
- if (isset($value[$k1]) && isset($value[$k1][$k2]) && ($value[$k1][$k2] == 1 || (isset($value[$k1][$k2]['status']) && $value[$k1][$k2]['status'] == 1))) {
- $status = 1;
- }
- if (is_array($v2))
- $this->defaultFields[$k1][$k2]['status'] = $status;
- else
- $this->defaultFields[$k1][$k2] = $status;
- if (isset($value[$k1][$k2]['select']) && !in_array($k2, ['current_region', 'add_wechat_type']))
- $this->defaultFields[$k1][$k2]['select'] = $value[$k1][$k2]['select'];
- }
- }
- return $this->defaultFields;
- }
- /**
- * defaultFields
- * @param Array $value
- */
- public function setFieldsAttr($value, $data)
- {
- $wechat = Setting::where([['root_id', '=', $data['root_id']], ['name', '=', 'customerWechatSetting']])->value('content');
- $city = Company::where([['root_id', '=', $data['root_id']]])->value('city');
- if ($city) $value['basic_info']['current_region']['select'] = [$city, '其他'];
- if ($wechat)
- $value['basic_info']['add_wechat_type']['select'] = explode(',', $wechat);
- return json_encode($value);
- }
- }
|