Visit.php 5.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace app\crm\model;
  3. use app\admin\model\Common;
  4. class Visit extends Common
  5. {
  6. /**
  7. * 为了数据库的整洁,同时又不影响Model和Controller的名称
  8. * 我们约定每个模块的数据表都加上相同的前缀,比如CRM模块用crm作为数据表前缀
  9. */
  10. protected $name = 'crm_visit';
  11. protected $createTime = 'create_time';
  12. protected $updateTime = 'update_time';
  13. protected $autoWriteTimestamp = true;
  14. /**
  15. * 回访计划数据
  16. * @param $id 回款计划ID
  17. * @return
  18. */
  19. public function getDataById($id = '', $userId = 0, $model='')
  20. {
  21. $map['visit_id'] = $id;
  22. $dataInfo = $this->where($map)->find();
  23. if (!$dataInfo) {
  24. $this->error = '暂无此数据';
  25. return false;
  26. }
  27. if(empty($model) && $model!='update'){
  28. $grantData = getFieldGrantData($userId);
  29. foreach ($grantData['crm_visit'] as $key => $value) {
  30. foreach ($value as $ke => $va) {
  31. if($va['maskType']!=0){
  32. $fieldGrant[$ke]['maskType'] = $va['maskType'];
  33. $fieldGrant[$ke]['form_type'] = $va['form_type'];
  34. $fieldGrant[$ke]['field'] = $va['field'];
  35. }
  36. }
  37. }
  38. foreach ($fieldGrant AS $key => $val){
  39. //掩码相关类型字段
  40. if ($val['maskType']!=0 && $val['form_type'] == 'mobile') {
  41. $pattern = "/(1[3458]{1}[0-9])[0-9]{4}([0-9]{4})/i";
  42. $rs = preg_replace($pattern, "$1****$2", $dataInfo[$val['field']]);
  43. $dataInfo[$val['field']] = !empty($dataInfo[$val['field']]) ? (string)$rs : null;
  44. } elseif ($val['maskType']!=0 && $val['form_type'] == 'email') {
  45. $email_array = explode("@", $dataInfo[$val['field']]);
  46. $prevfix = (strlen($email_array[0]) < 4) ? "" : substr($dataInfo[$val['field']], 0, 2); //邮箱前缀
  47. $str = preg_replace('/([\d\w+_-]{0,100})@/', "***@", $dataInfo[$val['field']], -1, $count);
  48. $rs = $prevfix . $str;
  49. $dataInfo[$val['field']] = !empty($dataInfo[$val['field']]) ?$rs: null;
  50. } elseif ($val['maskType']!=0 && in_array($val['form_type'],['position','floatnumber'])) {
  51. $dataInfo[$val['field']] = !empty($dataInfo[$val['field']]) ? (string)substr_replace($dataInfo[$val['field']], '*****',0,strlen($dataInfo[$val['field']])) : null;
  52. }
  53. }
  54. }
  55. // $userModel = new \app\admin\model\User();
  56. // $dataInfo['create_user_id_info'] = isset($dataInfo['create_user_id']) ? $userModel->getUserById($dataInfo['create_user_id']) : [];
  57. // $dataInfo['owner_user_id_info'] = isset($dataInfo['owner_user_id']) ? $userModel->getUserById($dataInfo['owner_user_id']) : [];
  58. // $dataInfo['create_user_name'] = !empty($dataInfo['create_user_id_info']['realname']) ? $dataInfo['create_user_id_info']['realname'] : '';
  59. // $dataInfo['owner_user_name'] = !empty($dataInfo['owner_user_id_info']['realname']) ? $dataInfo['owner_user_id_info']['realname'] : '';
  60. // $dataInfo['customer_id_info'] = $dataInfo['customer_id'] ? db('crm_customer')->where(['customer_id' => $dataInfo['customer_id']])->field('customer_id,name')->find() : [];
  61. // $dataInfo['contract_id_info'] = $dataInfo['contract_id'] ? db('crm_contract')->where(['contract_id' => $dataInfo['contract_id']])->field('contract_id,name,money')->find() : [];
  62. // $dataInfo['receivables_id'] = $id;
  63. // $userModel = new \app\admin\model\User();
  64. // $dataInfo['create_user_info'] = $userModel->getUserById($dataInfo['create_user_id']);
  65. // $dataInfo['plan_id'] = $id;
  66. // # 处理时间格式
  67. // $fieldModel = new \app\admin\model\Field();
  68. // $datetimeField = $fieldModel->getFieldByFormType('crm_receivables', 'datetime'); //日期时间类型
  69. // foreach ($datetimeField as $key => $val) {
  70. // $dataInfo[$val] = !empty($dataInfo[$val]) ? date('Y-m-d H:i:s', $dataInfo[$val]) : null;
  71. // }
  72. // $dataInfo['create_time'] = !empty($dataInfo['create_time']) ? date('Y-m-d H:i:s', $dataInfo['create_time']) : null;
  73. // $dataInfo['update_time'] = !empty($dataInfo['update_time']) ? date('Y-m-d H:i:s', $dataInfo['update_time']) : null;
  74. // // 字段授权
  75. // if (!empty($userId)) {
  76. // $grantData = getFieldGrantData($userId);
  77. // $userLevel = isSuperAdministrators($userId);
  78. // foreach ($dataInfo as $key => $value) {
  79. // if (!$userLevel && !empty($grantData['crm_receivables'])) {
  80. // $status = getFieldGrantStatus($key, $grantData['crm_receivables']);
  81. //
  82. // # 查看权限
  83. // if ($status['read'] == 0) unset($dataInfo[$key]);
  84. // }
  85. // }
  86. // if (!$userLevel && !empty($grantData['crm_receivables'])) {
  87. // # 客户名称
  88. // $customerStatus = getFieldGrantStatus('customer_id', $grantData['crm_receivables']);
  89. // if ($customerStatus['read'] == 0) {
  90. // $dataInfo['customer_name'] = '';
  91. // $dataInfo['customer_id_info'] = [];
  92. // }
  93. // # 合同金额
  94. // $contractMoneyStatus = getFieldGrantStatus('contract_money', $grantData['crm_receivables']);
  95. // if ($contractMoneyStatus['read'] == 0) $dataInfo['contract_id_info']['money'] = '';
  96. // # 合同名称
  97. // $contractMoneyStatus = getFieldGrantStatus('contract_money', $grantData['crm_receivables']);
  98. // if ($contractMoneyStatus['read'] == 0) $dataInfo['contract_id_info']['money'] = '';
  99. // }
  100. // }
  101. return $dataInfo;
  102. }
  103. }