20221203055902_add_customer_state_view.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. use think\migration\Migrator;
  3. use think\migration\db\Column;
  4. use think\facade\Db;
  5. class AddCustomerStateView extends Migrator
  6. {
  7. /**
  8. * Change Method.
  9. *
  10. * Write your reversible migrations using this method.
  11. *
  12. * More information on writing migrations is available here:
  13. * http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class
  14. *
  15. * The following commands can be used in this method and Phinx will
  16. * automatically reverse them when rolling back:
  17. *
  18. * createTable
  19. * renameTable
  20. * addColumn
  21. * renameColumn
  22. * addIndex
  23. * addForeignKey
  24. *
  25. * Remember to call "create()" or "update()" and NOT "save()" when working
  26. * with the Table class.
  27. */
  28. public function change()
  29. {
  30. $sql = "CREATE VIEW fl_customer_state AS SELECT
  31. `fl_customer`.`id` AS `id`,
  32. `fl_customer`.`uid` AS `uid`,
  33. `fl_customer`.`employee_id` AS `employee_id`,
  34. `fl_customer`.`changed_ori_info` AS `changed_ori_info`,
  35. `fl_customer`.`designer_id` AS `designer_id`,
  36. `fl_customer`.`clue_id` AS `clue_id`,
  37. `fl_customer`.`phone` AS `phone`,
  38. `fl_customer`.`name` AS `name`,
  39. `fl_customer`.`org_id` AS `org_id` ,
  40. ifnull( group_concat( `fl_customer_visit_log`.`state` SEPARATOR ',' ), '' ) AS `state`
  41. FROM
  42. ( `fl_customer` JOIN `fl_customer_visit_log` ON ( ( `fl_customer_visit_log`.`customer_id` = `fl_customer`.`id` AND `fl_customer`.`delete_time`=0 AND `died`<>2 ) ) )
  43. GROUP BY
  44. `fl_customer`.`id`";
  45. Db::query($sql);
  46. }
  47. }