Company.php 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. <?php
  2. namespace app\model;
  3. use think\Model;
  4. class Company extends Model
  5. {
  6. public function getLogoAttr($value)
  7. {
  8. if (empty($value)) return $value;
  9. $ali_oss_bindurl = config('app.ali_oss_bindurl');
  10. $url = 'https://' . $ali_oss_bindurl . '/' . $value;
  11. return $url;
  12. }
  13. /**
  14. * 关联企业品牌
  15. */
  16. public function brand()
  17. {
  18. return $this->belongsTo(CompanyBrand::class, 'company_brand');
  19. }
  20. public static function onAfterInsert($company)
  21. {
  22. /** 设置默认数据 */
  23. $rootId = $company->root_id;
  24. // 添加小区
  25. $community = [
  26. ['root_id' => $rootId, 'name' => '其它', 'pinyin' => 'qita', 'show' => 1]
  27. ];
  28. (new Community())->saveAll($community);
  29. // 添加设计师
  30. $designer = [
  31. ['root_id' => $rootId, 'name' => '张设计']
  32. ];
  33. (new Designer())->saveAll($designer);
  34. // 添加案例风格
  35. $decostyle = [
  36. ['root_id' => $rootId, 'name' => '现代简约', 'show' => 0],
  37. ['root_id' => $rootId, 'name' => '美式', 'show' => 0],
  38. ['root_id' => $rootId, 'name' => '田园', 'show' => 0],
  39. ['root_id' => $rootId, 'name' => '混搭', 'show' => 0],
  40. ['root_id' => $rootId, 'name' => '新中式', 'show' => 0],
  41. ['root_id' => $rootId, 'name' => '其它', 'show' => 1]
  42. ];
  43. (new Decostyle())->saveAll($decostyle);
  44. // 添加房屋类型
  45. $houseStyle = [
  46. ['root_id' => $rootId, 'name' => '一居', 'show' => 0],
  47. ['root_id' => $rootId, 'name' => '二居', 'show' => 0],
  48. ['root_id' => $rootId, 'name' => '三居', 'show' => 0],
  49. ['root_id' => $rootId, 'name' => '四居', 'show' => 0],
  50. ['root_id' => $rootId, 'name' => '四居以上', 'show' => 0],
  51. ['root_id' => $rootId, 'name' => '别墅', 'show' => 0],
  52. ['root_id' => $rootId, 'name' => '公寓', 'show' => 0],
  53. ['root_id' => $rootId, 'name' => 'Loft', 'show' => 0],
  54. ['root_id' => $rootId, 'name' => '其它', 'show' => 1],
  55. ];
  56. (new Housetype())->saveAll($houseStyle);
  57. // 添加客户见证分类
  58. $evidenceCate = [
  59. ['root_id' => $rootId, 'name' => '微信', 'show' => 0],
  60. ['root_id' => $rootId, 'name' => '截屏', 'show' => 0],
  61. ['root_id' => $rootId, 'name' => '感谢信', 'show' => 0],
  62. ['root_id' => $rootId, 'name' => '锦旗', 'show' => 0],
  63. ['root_id' => $rootId, 'name' => '其它', 'show' => 1],
  64. ];
  65. (new EvidenceCate())->saveAll($evidenceCate);
  66. // 每日发圈分类
  67. $dailyWechatLabel = [
  68. ['root_id' => $rootId, 'label_name' => '热点咨询', 'show' => 0],
  69. ['root_id' => $rootId, 'label_name' => '拓客', 'show' => 0],
  70. ['root_id' => $rootId, 'label_name' => '冲业绩', 'show' => 0],
  71. ['root_id' => $rootId, 'label_name' => '节日活动', 'show' => 0],
  72. ['root_id' => $rootId, 'label_name' => '其它', 'show' => 1]
  73. ];
  74. (new DailyWechatLabel())->saveAll($dailyWechatLabel);
  75. // 客户来源分类
  76. $customerSource = [
  77. ['root_id' => $rootId, 'source' => '线上'],
  78. ['root_id' => $rootId, 'source' => '线下'],
  79. ['root_id' => $rootId, 'source' => '微信'],
  80. ['root_id' => $rootId, 'source' => '官网'],
  81. ['root_id' => $rootId, 'source' => '抖音'],
  82. ['root_id' => $rootId, 'source' => 'QQ']
  83. ];
  84. (new CustomerSource())->saveAll($customerSource);
  85. // 话术分类
  86. $talkskillLabel = [
  87. ['root_id' => $rootId, 'label_name' => '销售前'],
  88. ['root_id' => $rootId, 'label_name' => '销售后'],
  89. ['root_id' => $rootId, 'label_name' => '装修方案'],
  90. ['root_id' => $rootId, 'label_name' => '装修质量'],
  91. ['root_id' => $rootId, 'label_name' => '价格问题'],
  92. ['root_id' => $rootId, 'label_name' => '活动力度'],
  93. ['root_id' => $rootId, 'label_name' => '公司案例']
  94. ];
  95. (new TalkskillLabel())->saveAll($talkskillLabel);
  96. // 添加公司实力分类
  97. $strengthCate = [
  98. ['root_id' => $rootId, 'name' => '其它', 'show' => 1,'pid' => 0]
  99. ];
  100. (new CompanyStrengthCate())->saveAll($strengthCate);
  101. // 创建文章类型
  102. $articleTypes = ['root_id' => $rootId, 'pid' => 0, 'name' => '其它', 'type' => 'article', 'show' => 1];
  103. $theclass = new VideoType();
  104. if ($theclass->save($articleTypes)) {
  105. $pid = $theclass->id;
  106. $videoTags = ['root_id' => $rootId, 'pid' => $pid, 'name' => '其它', 'type' => 'article', 'show' => 1];
  107. (new VideoType())->save($videoTags);
  108. }
  109. // 创建视频类型
  110. $videoTypes = ['root_id' => $rootId, 'pid' => 0, 'name' => '其它', 'type' => 'video', 'show' => 1];
  111. $theclass = new VideoType();
  112. if ($theclass->save($videoTypes)) {
  113. $pid = $theclass->id;
  114. $videoTags = ['root_id' => $rootId, 'pid' => $pid, 'name' => '其它', 'type' => 'video', 'show' => 1];
  115. (new VideoType())->save($videoTags);
  116. }
  117. // 创建客户画像自定义字段
  118. $defaultFields = [
  119. [
  120. 'name'=>'基本信息',
  121. 'keyname'=>'basic_info',
  122. 'sort'=>1,
  123. 'value'=>[
  124. ['name' => '姓名', 'type'=>1,'isedit' =>1,'keyname'=>'name','isdel' =>1,'status' => 0, 'select' =>null,'unity'=>'','is_status'=>1,'isedit_type'=>1,'is_must' => 0,'sort'=>1],
  125. ['name' => '手机号', 'type'=>2,'isedit' => 1,'keyname'=>'phone','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>1,'isedit_type'=>1,'is_must' => 0,'sort'=>2],
  126. ['name' => '性别', 'type'=>3,'isedit' => 1, 'keyname'=>'sex','isdel' =>1,'status' => 0, 'select' => ['男', '女'],'unity'=>'','is_status'=>1,'isedit_type'=>1,'is_must' => 0,'sort'=>3],
  127. ['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,'is_must' => 1,'sort'=>4],
  128. ['name' => '客户等级','type'=>3,'isedit' => 1,'keyname'=>'level', 'isdel' =>1,'status' => 0, 'select' => ['A', 'B', 'C','D'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>5],
  129. ['name' => '装修意向', 'type'=>3,'isedit' =>0, 'keyname'=>'intention','isdel' =>1,'status' => 0, 'select' => ['非常高', '高', '中', '低'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>6],
  130. ['name' => '消费水平', 'type'=>3, 'isedit'=>0,'keyname'=>'consumption_capacity','isdel' =>1, 'status' => 0, 'select' => ['高', '中', '低'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>7],
  131. ['name' => '当前所在区域', 'type'=>3,'isedit'=>0,'keyname'=>'current_region','isdel' =>1, 'status' => 0, 'select' => ['其他'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>8],
  132. ['name' => '客户来源', 'type'=>3,'isedit'=>0,'keyname'=>'source_id','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>9],
  133. ['name'=> '推荐官', 'type'=> 3, 'isedit'=> 1, 'keyname'=> 'agents_id', 'isdel'=> 1, 'status'=> 1, 'select' => null, 'unity'=> '', 'is_status'=> 0, 'isedit_type'=> 1, 'is_must' => 1,'sort'=> 9],
  134. ['name' => '是否首次装修', 'type'=>3,'isedit'=>0,'keyname'=>'first','isdel' =>1, 'status' => 0, 'select' => ['是', '否'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>10],
  135. ['name' => '是否加微', 'type'=>3,'isedit'=>1,'keyname'=>'wechat','isdel' =>1, 'status' => 0, 'select' => ['是', '否'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>11],
  136. ['name' => '加微类型', 'type'=>3,'isedit'=>1,'keyname'=>'add_wechat_type','isdel' =>1, 'status' => 0, 'select' => ['常规加微','社群加微','历史加微'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>12],
  137. ['name' => '加微时间', 'type'=>5,'isedit'=>1,'keyname'=>'add_wechat_time','isdel' =>1, 'status' => 0, 'select' => ['常规加微','社群加微'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>13],
  138. ['name' => '建群情况', 'type'=>4,'isedit'=>0,'keyname'=>'group_building','isdel' =>1, 'status' => 0, 'select' => ['1对1小群', '临时大群', '社群'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>14],
  139. ['name' => '建群时间', 'type'=>5,'isedit'=>1,'keyname'=>'group_building_date','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>15],
  140. ['name' => '直播情况', 'type'=>4,'isedit'=>1,'keyname'=>'live_broadcast','isdel' =>1, 'status' => 0, 'select' => ['1对1业务直播', '1对1设计直播', '一对多直播'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>16],
  141. ['name' => '业务直播人员', 'type'=>1,'isedit'=>1,'keyname'=>'live_broadcast_business','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>17],
  142. ['name' => '设计直播人员', 'type'=>1,'isedit'=>1,'keyname'=>'live_broadcast_design','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>18],
  143. ['name' => '直播人员', 'type'=>1,'isedit'=>1,'keyname'=>'live_broadcast_personnel','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>19],
  144. ['name'=> '直播时间', 'type'=> 5, 'isedit'=> 0, 'status'=> 0, 'keyname'=> 'live_broadcast_date', 'isdel'=> 1, 'unity'=> '', 'is_status'=> 0, 'isedit_type'=> 1,'is_must' => 1,'sort'=> 20],
  145. ['name' => '客户关注点', 'type'=>4,'isedit'=>0,'keyname'=>'follow','isdel' =>1, 'status' => 0, 'select' => ['服务流程', '设计方案', '施工质量', '施工材料', '工期长短', '售后服务', '其他'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>21],
  146. ['name' => '客户痛点', 'type'=>4,'isedit'=>0,'keyname'=>'point','isdel' =>1, 'status' => 0, 'select' => ['工艺', '环保', '质量', '恶意增项', '工期延期', '其他'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>22],
  147. ['name' => '谈单时长', 'type'=>1,'isedit'=>0,'keyname'=>'talking_about_single_time','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'分钟','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>23],
  148. ['name' => '出图时间', 'type' => 5, 'isedit' => 1, 'keyname' => 'drawing_date', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity'=> '', 'is_status' => 0, 'isedit_type' => 1, 'is_must' => 1,'sort' => 24],
  149. ['name' => '出方案时间', 'type' => 5, 'isedit'=> 1,'keyname' => 'plan_issuing_date', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'is_must' => 1,'sort' => 25],
  150. ['name' => '方案通过时间', 'type' => 5, 'isedit' => 1,'keyname' =>'plan_passing_date', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'is_must' => 1,'sort' => 26],
  151. ['name' => '选材时间', 'type' => 5, 'isedit' => 1, 'keyname' => 'material_selection_date', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity' => '', 'is_status' => 0, 'isedit_type' => 1, 'is_must' => 1,'sort' => 27],
  152. ['name' => '预计转施工时间', 'type' => 5, 'isedit' => 1,'keyname' => 'will_transfer_to_construction_date', 'isdel' => 1, 'status' => 0, 'select' => null, 'unity'=> '', 'is_status' => 0, 'isedit_type' => 1, 'is_must' => 1,'sort' => 28],
  153. ['name'=>'隶属计划','type'=>3,'isedit'=>1,'status'=>0,'keyname'=>'subjection_plan','select' => ['年中大促销','装修报价'],'isdel'=>1,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>29],
  154. ['name'=>'报名时间','type'=>5,'isedit'=>0,'status'=>0,'keyname'=>'sign_time','isdel'=>1,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>30],
  155. ['name'=>'预约公司外见面','type'=>5,'isedit'=>0,'status'=>0,'keyname'=>'subscribe_meet_outside','isdel'=>1,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>31],
  156. ['name'=>'公司外见面','type'=>5,'isedit'=>0,'status'=>0,'keyname'=>'meet_outside','isdel'=>1,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>32],
  157. ['name' => '选择量房时间', 'type' => 5, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'measure_room_date', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 33],
  158. ['name' => '上传量房图片', 'type' => 6, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'measure_room_picture', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 34],
  159. ['name' => '选择到店时间', 'type' => 5, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'arrival_shop_date', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 35],
  160. ['name' => '请输入到店人数', 'type' => 2, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'arrival_shop_people_number', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 36],
  161. ['name' => '到场时间', 'type' => 5, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'arrival_activity_date', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 37],
  162. ['name' => '请输入到场人数', 'type' => 2, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'arrival_activity_people_number', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 38],
  163. ['name' => '到场停留时间', 'type' => 2, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'arrival_activity_stay_length', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 39],
  164. ['name' => '签单时间', 'type' => 5, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'deposit_date', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 40],
  165. ['name' => '签单金额', 'type' => 2, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'deposit_money', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 41],
  166. ['name' => '签单方式', 'type' => 3, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'deposit_mode', 'is_status' => 0, 'select' => ['线上定金','线下定金'], 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 42],
  167. ['name' => '上传签单依据', 'type' => 6, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'deposit_picture', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 43],
  168. ['name' => '转单时间', 'type' => 5, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'sign_date', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 44],
  169. ['name' => '合同金额', 'type' => 2, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'contract_money', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 45],
  170. ['name' => '首付款', 'type' => 2, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'down_payment', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 46],
  171. ['name' => '上传合同依据', 'type' => 6, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'contract_picture', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 47],
  172. ['name' => '买卡时间', 'type' => 5, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'buy_card_date', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 48],
  173. ['name' => '预计到场时间', 'type' => 5, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'will_arrival_activity_date', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 49],
  174. ['name' => '预计到店时间', 'type' => 5, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'will_arrival_shop_date', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 50],
  175. ['name' => '预计量房时间', 'type' => 5, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'will_measure_room_date', 'is_status' => 0, 'select' => null, 'unity' => '', 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 51],
  176. ['name' => '加微凭证', 'type' => 6, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'add_wechat_picture', 'is_status' => 0, 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 52, 'unity' => ''],
  177. ['name' => '建群凭证', 'type' => 6, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'group_building_picture', 'is_status' => 0, 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 53, 'unity' => ''],
  178. ['name' => '直播凭证', 'type' => 6, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'live_broadcast_picture', 'is_status' => 0, 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 54, 'unity' => ''],
  179. ['name' => '口碑采集', 'type' => 5, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'reputation_gather', 'is_status' => 0, 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 55, 'unity' => ''],
  180. ['name' => '进业主群', 'type' => 5, 'isedit' => 1, 'isdel' => 1, 'status' => 0, 'keyname' => 'into_owner_group', 'is_status' => 0, 'isedit_type' => 1, 'isadd' => 1, 'is_must' => 1, 'sort' => 56, 'unity' => '']
  181. ]
  182. ],
  183. [
  184. 'name'=>'房屋信息',
  185. 'keyname'=>'house_info',
  186. 'sort'=>2,
  187. 'value' => [
  188. ['name' => '小区名称', 'type'=>1,'isedit'=>0,'keyname'=>'community_name','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>1],
  189. ['name' => '门牌单元号', 'type'=>1,'isedit'=>0,'keyname'=>'unit_number','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>2],
  190. ['name' => '请选择房屋户型', 'type'=>3,'isedit'=>0,'keyname'=>'housetype_arrow','isdel' =>1, 'status' => 0, 'select' => ['1居室', '2居室', '3居室', '4居室', '其他'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>5],
  191. ['name' => '面积', 'type'=>1,'isedit'=>0,'keyname'=>'square','isdel' =>1,'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>4],
  192. ['name' => '装修预算', 'type'=>2,'isedit'=>0,'keyname'=>'budget','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'万元','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>11],
  193. ['name' => '请选择倾向风格', 'type'=>3,'isedit'=>0,'keyname'=>'deco_style','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>6],
  194. ['name' => '客户喜欢的色调', 'type'=>3,'isedit'=>0,'keyname'=>'like_color','isdel' =>1, 'status' => 0, 'select' => ['黄色调', '红色调', '蓝色调', '橙色调', '绿色调', '紫色调', '白色调', '灰色调'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>16],
  195. ['name' => '房屋类型', 'type'=>3,'isedit'=>1,'keyname'=>'house_type','isdel' =>1,'status' => 0, 'select' => ['现房', '期房', '二手房'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>7],
  196. ['name' => '房屋状态', 'type'=>3,'isedit'=>0,'keyname'=>'house_status','isdel' =>1, 'status' => 0, 'select' => ['毛坯', '精装', '老房'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>9],
  197. ['name' => '房屋结构', 'type'=>3,'isedit'=>0,'keyname'=>'house_structure','isdel' =>1, 'status' => 0, 'select' => ['公寓', '商品房', '别墅', '自建'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>14],
  198. ['name' => '预计交房时间', 'type'=>5,'isedit'=>1,'keyname'=>'house_delivery_time','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>8],
  199. ['name' => '预计装修时间', 'type'=>5,'isedit'=>1,'keyname'=>'plan_deco_time','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>10],
  200. ['name' => '装修方式', 'type'=>3,'isedit'=>0,'keyname'=>'decoration_mode','isdel' =>1, 'status' => 0, 'select' => ['半包', '整装', '套餐'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>15],
  201. ['name' => '客户其它需求', 'type'=>1,'isedit'=>0,'keyname'=>'customer_demand','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>17],
  202. ['name' => '房屋用途', 'type'=>3,'isedit'=>0,'keyname'=>'housing_use','isdel' =>1, 'status' => 0, 'select' => ['自用', '出租'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>12],
  203. ['name' => '房屋位置', 'type'=>1,'isedit'=>1,'keyname'=>'house_location','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>3],
  204. ['name' => '其他房屋信息', 'type'=>1,'isedit'=>0,'keyname'=>'remarks_on_other_house_information','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>18],
  205. ['name' => '周边配套', 'type'=>4,'isedit'=>0,'keyname'=>'peripheral_supporting','isdel' =>1, 'status' => 0, 'select' => ['商业', '教育', '交通', '资源', '其他'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>13]
  206. ]
  207. ],
  208. [
  209. 'name'=>'家庭信息',
  210. 'keyname'=>'family_info',
  211. 'sort'=>3,
  212. 'value'=> [
  213. ['name' => '家庭结构', 'type'=>3,'isedit'=>0,'keyname'=>'family_structure','isdel' =>1, 'status' => 0, 'select' => ['新婚夫妇', '三口之家', '四口之家', '其他'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>1],
  214. ['name' => '家庭成员意见', 'type'=>3,'isedit'=>0,'keyname'=>'family_opinion','isdel' =>1, 'status' => 0, 'select' => ['非常满意', '满意', '一般', '不满意'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>3],
  215. ['name' => '决策人', 'type'=>3,'isedit'=>0,'keyname'=>'decision_maker','isdel' =>1, 'status' => 0, 'select' => ['老婆', '丈夫', '父亲', '孩子'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>2],
  216. ['name' => '客户爱好', 'type'=>1,'isedit'=>0,'keyname'=>'hobby','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>7],
  217. ['name' => '客户空闲时段', 'type'=>1,'isedit'=>0,'keyname'=>'free_time','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>8],
  218. ['name' => '汽车价格', 'type'=>2,'isedit'=>0,'keyname'=>'car_price','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'元','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>5],
  219. ['name' => '房屋价格', 'type'=>2,'isedit'=>0,'keyname'=>'hourse_price','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'元','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>4],
  220. ['name' => '买小区的原因', 'type'=>1,'isedit'=>0,'keyname'=>'buying_community','isdel' =>1, 'status' => 0, 'select' => null,'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>6]
  221. ]
  222. ],
  223. [
  224. 'name'=>'关注点',
  225. 'keyname'=>'behavioral_info',
  226. 'sort'=>4,
  227. 'value' => [
  228. ['name' => '重视环保', 'type'=>3,'isedit'=>0,'keyname'=>'environmental_requirements','isdel' =>1, 'status' => 0, 'select' => ['非常重视', '重视', '一般', '不重视'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>1],
  229. ['name' => '关注的工艺', 'type'=>3,'isedit'=>0,'keyname'=>'workmanship','isdel' =>1, 'status' => 0, 'select' => ['水电工艺', '木工工艺', '泥工工艺', '油漆工艺', '吊顶工艺', '防水工艺'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>3],
  230. ['name' => '重视设计', 'type'=>3,'isedit'=>0,'keyname'=>'design','isdel' =>1, 'status' => 0, 'select' => ['非常重视', '重视', '一般', '不重视'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>2],
  231. ['name' => '关注房屋的空间', 'type'=>4,'isedit'=>0,'keyname'=>'space_design','isdel' =>1, 'status' => 0, 'select' => ['客厅', '卧室', '卫生间', '厨房', '阳台', '其他'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>4]
  232. ]
  233. ],
  234. [
  235. 'name'=>'客户满意度',
  236. 'keyname'=>'evaluate_info',
  237. 'sort'=>5,
  238. 'value' => [
  239. ['name' => '设计师服务', 'type'=>3,'isedit'=>0,'keyname'=>'service_satisfaction','isdel' =>1, 'status' => 0, 'select' => ['非常好', '好', '一般', '不满意'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>1],
  240. ['name' => '报价满意度', 'type'=>3,'isedit'=>0,'keyname'=>'quotation_satisfaction','isdel' =>1, 'status' => 0, 'select' => ['非常好', '好', '一般', '不满意'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>2],
  241. ['name' => '方案满意度', 'type'=>3,'isedit'=>0,'keyname'=>'program_satisfaction','isdel' =>1, 'status' => 0, 'select' => ['非常好', '好', '一般', '不满意'],'unity'=>'','is_status'=>0,'isedit_type'=>1,'is_must' => 1,'sort'=>3]
  242. ]
  243. ]
  244. ];
  245. $fieldmod = new CustomerPortraitFieldSelect;
  246. foreach($defaultFields as $key=>$val){
  247. $parent = CustomerPortraitField::create([
  248. 'name' => $val['name'],
  249. 'pid' => 0,
  250. 'type' => 1,
  251. 'isedit' => 0,
  252. 'root_id' => $rootId,
  253. 'status'=>0,
  254. 'isdel'=>1,
  255. 'keyname'=>$val['keyname'],
  256. 'sort'=>$val['sort']
  257. ]);
  258. $pid=$parent->id;
  259. foreach($val['value'] as $k=>$v){
  260. $add=['name'=>$v['name'],'pid'=>$pid,'type'=>$v['type'],'isedit'=>$v['isedit'],'root_id'=>$rootId,'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'],'is_must'=>$v['is_must']];
  261. //$cp=$fieldmod->save($add);
  262. $cp=CustomerPortraitField::create($add);
  263. $all=[];
  264. if(!empty($v['select'])){
  265. foreach($v['select'] as $e=>$r){
  266. $all[]=['name'=>$r,'pid'=>$cp->id];
  267. }
  268. $childObjs = $fieldmod->saveAll($all);
  269. }
  270. }
  271. }
  272. //创建经纪人基本类别
  273. $agenttype = ['type_name'=>'推荐官','root_id'=>$rootId];
  274. AgentType::create($agenttype);
  275. // 创建基本角色
  276. $role = [
  277. ['root_id' => $rootId, 'name' => '超级管理员', 'permission' => '[1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,34,35,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,58,59,60,61,104,105,106,107,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148]'],
  278. ['root_id' => $rootId, 'name' => '人事管理员', 'permission' => '[11,12,25,26,32,59]'],
  279. ['root_id' => $rootId, 'name' => '素材管理员', 'permission' => '[1,2,3,4,5,6,14,15,16,17,18,19,21,22,23,24,29,30,31,37,38,39,40,41,42,43,55,117,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136]'],
  280. ['root_id' => $rootId, 'name' => '客户资源管理员', 'permission' => '[7,8,9,10,20,34,36,56]'],
  281. ];
  282. (new Grant())->saveAll($role);
  283. //默认
  284. $save = [
  285. 'name' => 'forbiddenState',
  286. 'content' => '交定',
  287. 'root_id' => $rootId
  288. ];
  289. $visit = (new Setting())->save($save);
  290. // 线索标签
  291. $clueTag = ['已装修','无需求','有需求','超地域','未交房','在外地','无购买力','未接通电话'];
  292. $setting_clue['name'] = 'clueTag';
  293. $setting_clue['content'] = implode(',', $clueTag);
  294. $setting_clue['root_id'] = $rootId;
  295. Setting::create($setting_clue);
  296. //数据统计
  297. DataStatistics::create(['root_id'=>$rootId]);
  298. }
  299. /**
  300. * 关联小程序
  301. */
  302. public function mini()
  303. {
  304. return $this->belongsTo(Wechat::class, 'mini');
  305. }
  306. public static function onAfterUpdate($company)
  307. {
  308. // 查询根组织
  309. $org_data = Org::find($company->root_id);
  310. // 判断是否修改名称
  311. if ($org_data->name == $company->company_name) return;
  312. // 更新企业组织结构中名称
  313. $childIdList = Org::where([['path', 'like', $org_data->path . '%']])->field('id,name,info')->select()->toArray();
  314. foreach ($childIdList as $val) {
  315. // 如果是根组织
  316. if ($val['id'] == $company->root_id) $val['name'] = $company->company_name;
  317. $info = explode('/', $val['info']);
  318. if (count($info) > 0) {
  319. $info[0] = $company->company_name;
  320. $val['info'] = implode('/', $info);
  321. }
  322. Org::where('id', $val['id'])->update(['name' => $val['name'], 'info' => $val['info']]);
  323. }
  324. }
  325. public function getChannelSourceAttr($value, $data)
  326. {
  327. $channel_setting = json_decode($data['channel_setting'], true);
  328. $channel_setting_wh = json_decode($data['channel_setting_wh'], true);
  329. $checkSource = ['fish' => [], 'tengxun' => [], 'oupai' => []];
  330. if (isset($channel_setting['fish_source'])) $checkSource['fish'][] = $channel_setting['fish_source'];
  331. // 以下来源现在不能使用飞鱼外呼
  332. // if (isset($channel_setting['tx_source'])) $checkSource['tengxun'][] = $channel_setting['tx_source'];
  333. // if (isset($channel_setting_wh['wh_source'])) $checkSource['fish'][] = $channel_setting_wh['wh_source'];
  334. return $checkSource;
  335. }
  336. }