UpdateSql.php 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. /**
  3. * 更新sql(包含安装)
  4. *
  5. * @author fanqi
  6. * @since 2021-05-08
  7. */
  8. namespace app\admin\controller;
  9. use think\Db;
  10. use think\Exception;
  11. class UpdateSql
  12. {
  13. /**
  14. * 添加公海默认数据
  15. *
  16. * @author fanqi
  17. * @since 2021-05-08
  18. * @return bool
  19. */
  20. static public function addPoolDefaultData()
  21. {
  22. # 员工ID
  23. $userIds = db('admin_user')->column('id');
  24. # 公海主数据
  25. $poolData = [
  26. 'pool_name' => '系统默认公海',
  27. 'admin_user_ids' => ',1,',
  28. 'user_ids' => ','.implode(',', $userIds).',',
  29. 'department_ids' => '',
  30. 'status' => 1,
  31. 'before_owner_conf' => 0,
  32. 'before_owner_day' => 0,
  33. 'receive_conf' => 0,
  34. 'receive_count' => 0,
  35. 'remind_conf' => 0,
  36. 'remain_day' => 0,
  37. 'recycle_conf' => 1,
  38. 'create_user_id' => 1,
  39. 'create_time' => time()
  40. ];
  41. # 公海规则数据
  42. $poolRuleData = [
  43. 'pool_id' => 0,
  44. 'type' => 1,
  45. 'deal_handle' => 0,
  46. 'business_handle' => 0,
  47. 'level_conf' => 1,
  48. 'level' => json_encode([['level' => '所有客户', 'limit_day' => 30]]),
  49. 'limit_day' => 0
  50. ];
  51. # 公海字段数据
  52. $poolFieldData = [];
  53. $fields = db('admin_field')->field(['field', 'name', 'form_type', 'is_hidden'])->where(['types' => 'crm_customer'])->select();
  54. foreach ($fields AS $key => $value) {
  55. $poolFieldData[] = [
  56. 'field_name' => $value['field'],
  57. 'name' => $value['name'],
  58. 'form_type' => $value['form_type'],
  59. 'is_hidden' => $value['is_hidden']
  60. ];
  61. }
  62. $poolFieldData[] = ['field_name' => 'address', 'name' => '省、市、区/县', 'form_type' => 'customer_address', 'is_hidden' => 0];
  63. $poolFieldData[] = ['field_name' => 'detail_address', 'name' => '详细地址', 'form_type' => 'text', 'is_hidden' => 0];
  64. $poolFieldData[] = ['field_name' => 'last_record', 'name' => '最后跟进记录', 'form_type' => 'text', 'is_hidden' => 0];
  65. $poolFieldData[] = ['field_name' => 'last_time', 'name' => '最后跟进时间', 'form_type' => 'datetime', 'is_hidden' => 0];
  66. $poolFieldData[] = ['field_name' => 'before_owner_user_id', 'name' => '前负责人', 'form_type' => 'user', 'is_hidden' => 0];
  67. $poolFieldData[] = ['field_name' => 'into_pool_time', 'name' => '进入公海时间', 'form_type' => 'datetime', 'is_hidden' => 0];
  68. $poolFieldData[] = ['field_name' => 'create_time', 'name' => '创建时间', 'form_type' => 'datetime', 'is_hidden' => 0];
  69. $poolFieldData[] = ['field_name' => 'update_time', 'name' => '更新时间', 'form_type' => 'datetime', 'is_hidden' => 0];
  70. $poolFieldData[] = ['field_name' => 'create_user_id', 'name' => '创建人', 'form_type' => 'user', 'is_hidden' => 0];
  71. Db::startTrans();
  72. try {
  73. # 添加公海主数据
  74. $poolId = Db::name('crm_customer_pool')->insert($poolData, false, true);
  75. # 添加公海规则数据
  76. $poolRuleData['pool_id'] = $poolId;
  77. Db::name('crm_customer_pool_rule')->insert($poolRuleData);
  78. # 添加公海字段数据
  79. array_walk($poolFieldData, function (&$val) use ($poolId) {
  80. $val['pool_id'] = $poolId;
  81. });
  82. Db::name('crm_customer_pool_field_setting')->insertAll($poolFieldData);
  83. Db::commit();
  84. return true;
  85. } catch (Exception $e) {
  86. Db::rollback();
  87. return false;
  88. }
  89. }
  90. /**
  91. * 添加跟进记录的导入导出权限数据
  92. *
  93. * @author fanqi
  94. * @since 2021-05-08
  95. */
  96. static public function addFollowRuleData()
  97. {
  98. # 删除旧版的跟进记录权限规则数据
  99. db('admin_rule')->where(['types' => 2, 'title' => '跟进记录管理', 'name' => 'record', 'level' => 2, 'pid' => 1])->delete();
  100. # 新版跟进记录权限规则增加导入导出
  101. $activityPid = db('admin_rule')->where(['types' => 2, 'title' => '跟进记录', 'name' => 'activity', 'level' => 2])->value('id');
  102. if (!db('admin_rule')->where(['types' => 2, 'pid' => $activityPid, 'name' => 'excelImport'])->value('id')) {
  103. db('admin_rule')->insert(['types' => 2, 'title' => '导入', 'name' => 'excelImport', 'level' => 3, 'pid' => $activityPid, 'status' => 1]);
  104. }
  105. if (!db('admin_rule')->where(['types' => 2, 'pid' => $activityPid, 'name' => 'excelExport'])->value('id')) {
  106. db('admin_rule')->insert(['types' => 2, 'title' => '导出', 'name' => 'excelExport', 'level' => 3, 'pid' => $activityPid, 'status' => 1]);
  107. }
  108. }
  109. }