123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- namespace app\jobs\user;
- use app\services\user\label\UserLabelRelationServices;
- use app\services\user\UserServices;
- use app\services\wechat\WechatNewsCategoryServices;
- use crmeb\basic\BaseJobs;
- use crmeb\traits\QueueTrait;
- use think\facade\Log;
- class UserBatchJob extends BaseJobs
- {
- use QueueTrait;
-
- public static function queueName()
- {
- $default = config('queue.default');
- return config('queue.connections.' . $default . '.batch_queue');
- }
-
- public function userBatch($type, $uids, $data)
- {
- if (!$type || !$uids || !$data) {
- return true;
- }
-
- $uidsArr = array_chunk($uids, 100);
- foreach ($uidsArr as $ids) {
-
- self::dispatchDo('chunkUserBatch', [$type, $ids, $data]);
- }
- return true;
- }
-
- public function chunkUserBatch($type, $uids, $data)
- {
- if (!$type || !$uids || !$data) {
- return true;
- }
- foreach ($uids as $id) {
- self::dispatchDo('runUserBatch', [$type, $id, $data]);
- }
- return true;
- }
-
- public function runUserBatch($type, $uid, $data)
- {
- $uid = (int)$uid;
- if (!$type || !$uid || !$data) {
- return true;
- }
- try {
- switch ($type) {
- case 1:
- $group_id = (int)($data['group_id'] ?? 0);
- if ($group_id) {
-
- $userServices = app()->make(UserServices::class);
- $userServices->setUserGroup([$uid], $group_id);
- }
- break;
- case 2:
- $label_id = $data['label_id'] ?? [];
- if ($label_id) {
-
- $services = app()->make(UserLabelRelationServices::class);
- $services->setUserLable($uid, $label_id);
- }
- break;
- case 3:
- $level_id = (int)($data['level_id'] ?? 0);
- if ($level_id) {
-
- $userServices = app()->make(UserServices::class);
- $userServices->saveGiveLevel($uid, $level_id);
- }
- break;
- case 4:
- $data['money'] = (string)$data['money'];
- $data['integration'] = (string)$data['integration'];
- $data['is_other'] = true;
-
- $userServices = app()->make(UserServices::class);
- $userServices->updateInfo($uid, $data);
- break;
- case 5:
- $day = (int)($data['day'] ?? 0);
- if ($day) {
- $days_status = (int)($data['days_status'] ?? 1);
-
- $userServices = app()->make(UserServices::class);
- $userServices->saveGiveLevelTime($uid, $day, $days_status);
- }
- break;
- case 6:
- $spread_uid = (int)($data['spread_uid'] ?? 0);
- if ($spread_uid) {
-
- $userServices = app()->make(UserServices::class);
- $userServices->saveUserSpreadUid($uid, $spread_uid);
- }
- break;
- case 99:
- if($data['wechat_news'] ?? []) {
-
- $wechatNewsCategoryServices = app()->make(WechatNewsCategoryServices::class);
- $wechatNewsCategoryServices->runPush($uid, $data['wechat_news'] ?? []);
- }
- break;
- default:
- break;
- }
- } catch (\Throwable $e) {
- response_log_write([
- 'message' => '批量操作用户,type:' . $type . ';状态失败,' . ';参数:' . json_encode(['uid' => $uid, 'data' => $data]) . ', 失败原因:' . $e->getMessage(),
- 'file' => $e->getFile(),
- 'line' => $e->getLine()
- ]);
- }
- return true;
- }
- }
|