ClearUserBlack.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Bear
  5. * Date: 2020/6/29
  6. * Time: 上午11:27
  7. */
  8. namespace app\admin\command;
  9. use app\admin\service\LogService;
  10. use app\common\library\Redis;
  11. use app\main\constants\AdminConstants;
  12. use app\main\constants\CacheConstants;
  13. use app\main\constants\UserConstants;
  14. use app\main\service\OrderService;
  15. use app\main\service\UserService;
  16. use app\source\model\UserUpdate;
  17. use think\Config;
  18. use think\console\Input;
  19. use think\console\Output;
  20. use think\Request;
  21. class ClearUserBlack extends BaseCommand
  22. {
  23. public function Configure()
  24. {
  25. $this
  26. ->setName('clearUserBlack')
  27. ->setDescription('clear black user for channel');
  28. }
  29. public function run(Input $input, Output $output)
  30. {
  31. Request::instance()->module('admin');
  32. $channelList = model('admin_config')->where('JSON_EXTRACT(extend,"$.clear") = ' . AdminConstants::ADMIN_EXTEND_CLEAR_WAITING)->column('admin_id');
  33. if ($channelList) {
  34. $mUser = UserService::instance()->getUserModel();
  35. $user_num = Config::get('db.user_num');
  36. for ($i = 0; $i < $user_num; $i++) {
  37. $blackIds = $mUser->setConnect($i + $user_num)
  38. ->whereIn('channel_id', $channelList)
  39. ->where('is_black', '<>', UserConstants::USER_BLACK_NO)
  40. ->column('id');
  41. if ($blackIds) {
  42. LogService::info('黑名单用户数:' . count($blackIds) . ':' . implode(',', $blackIds));
  43. foreach ($blackIds as $blackId) {
  44. $userUpdate = new UserUpdate();
  45. $userUpdate->setId($blackId)->setIsBlack(0);
  46. \app\source\service\UserService::instance()->updateUser($userUpdate);
  47. }
  48. } else {
  49. LogService::info('黑名单用户不存在,分库:' . $i);
  50. }
  51. }
  52. $adminList = model('AdminConfig')->whereIn('admin_id', $channelList)->select();
  53. foreach ($adminList as $admin) {
  54. if ($admin->extend != 'null') {
  55. $extend = json_decode($admin->extend, true);
  56. $extend['clear'] = AdminConstants::ADMIN_EXTEND_CLEAR_YES;
  57. } else {
  58. $extend = ['clear' => AdminConstants::ADMIN_EXTEND_CLEAR_YES];
  59. }
  60. $extend = json_encode($extend, JSON_UNESCAPED_UNICODE);
  61. model('AdminConfig')->update(['extend' => $extend], ['admin_id' => $admin['admin_id']]);
  62. }
  63. }
  64. }
  65. // public function rollbackUser()
  66. // {
  67. // $data = file('/data/web/cps_shell/bb.txt');
  68. // foreach ($data as $line) {
  69. // $ids = explode(',', trim($line));
  70. // foreach ($ids as $blackId) {
  71. // $userUpdate = new UserUpdate();
  72. // $userUpdate->setId($blackId)->setIsBlack(1);
  73. // \app\source\service\UserService::instance()->updateUser($userUpdate);
  74. // }
  75. // }
  76. // }
  77. }