User.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace app\subscribe;
  3. use app\common\model\User as UserModel;
  4. use app\common\model\Broker as BrokerModel;
  5. use app\common\model\Comjobs as ComjobsModel;
  6. use app\common\model\ComjobsLog as ComjobsLogModel;
  7. use app\common\model\ComjobsReport as ComjobsReportModel;
  8. use app\common\model\ComjobsStar as ComjobsStarModel;
  9. use app\common\model\Worker as WorkerModel;
  10. use app\common\model\WorkerForm as WorkerFormModel;
  11. use app\common\model\WorkerLog as WorkerLogModel;
  12. use app\common\model\ResumeInvite as ResumeInviteModel;
  13. use app\common\model\Agent as AgentModel;
  14. use app\common\model\UserAuths as UserAuthsModel;
  15. use app\common\model\Demand as DemandModel;
  16. use app\common\model\DemandLog as DemandLogModel;
  17. use app\common\model\Supply as SupplyModel;
  18. use think\Event;
  19. class User
  20. {
  21. /**
  22. * 删除人员后事件
  23. */
  24. public function onUserDel($ids)
  25. {
  26. //要删除的经纪人id
  27. $del_broker_ids = [];
  28. //公司
  29. $worker_ids = WorkerModel::where('userid', 'in', $ids)->column('id');
  30. if (!empty($worker_ids)) {
  31. //岗位
  32. $com_ids = ComjobsModel::where('workerid', 'in', $worker_ids)->column('id');
  33. if (!empty($com_ids)) {
  34. ComjobsStarModel::where('comjobsid', 'in', $com_ids)->delete();
  35. }
  36. ComjobsModel::where('workerid', 'in', $worker_ids)->delete();
  37. ComjobsLogModel::where('workerid', 'in', $worker_ids)->delete();
  38. ComjobsReportModel::where('workerid', 'in', $worker_ids)->delete();
  39. ResumeInviteModel::where('workerid', 'in', $worker_ids)->delete();
  40. //门店
  41. $worker_agent_ids = AgentModel::where('workerid', 'in', $worker_ids)->column('id');
  42. if (!empty($worker_agent_ids)) {
  43. $worker_agent_broker_ids = BrokerModel::where('agentid', 'in', $worker_agent_ids)->column('id');
  44. if (!empty($worker_agent_broker_ids)) {
  45. $del_broker_ids = array_merge($del_broker_ids, $worker_agent_broker_ids);
  46. }
  47. AgentModel::where('id', 'in', $worker_agent_ids)->delete();
  48. ComjobsReportModel::where('agentid', 'in', $worker_agent_ids)->delete();
  49. }
  50. //公司
  51. WorkerFormModel::where('workerid', 'in', $worker_ids)->delete();
  52. WorkerLogModel::where('workerid', 'in', $worker_ids)->delete();
  53. WorkerModel::where('userid', 'in', $worker_ids)->update(['brokerid' => 0]);
  54. }
  55. //门店
  56. WorkerModel::where('userid', 'in', $ids)->update(['userid' => 0]);
  57. //经纪人
  58. $broker_ids = BrokerModel::where('userid', 'in', $ids)->column('id');
  59. if (!empty($broker_ids)) {
  60. $del_broker_ids = array_merge($del_broker_ids, $broker_ids);
  61. }
  62. //删除登录权限
  63. UserAuthsModel::where('userid', 'in', $ids)->delete();
  64. //订单
  65. DemandModel::where('workerid', 'in', $ids)->delete();
  66. DemandLogModel::where('workerid', 'in', $ids)->delete();
  67. DemandLogModel::where('gworkerid', 'in', $ids)->delete();
  68. //供人
  69. SupplyModel::where('workerid', 'in', $ids)->delete();
  70. //删除经纪人
  71. if (!empty($del_broker_ids)) {
  72. BrokerModel::where('brokerid', 'in', $del_broker_ids)->delete();
  73. UserModel::where('brokerid', 'in', $del_broker_ids)->update(['brokerid' => 0]);
  74. }
  75. }
  76. /**
  77. * 自定义订阅列表
  78. */
  79. public function subscribe(Event $event)
  80. {
  81. $event->listen('userDel', [$this, 'onUserDel']);
  82. }
  83. }