123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Bear
- * Date: 2020/5/7
- * Time: 上午11:05
- */
- namespace app\main\service;
- use app\main\constants\AdminConstants;
- use app\main\model\object\AnalysisObject;
- use app\main\model\object\UserObject;
- /**
- * Class KafkaDotService
- * @package app\main\service
- */
- class KafkaDotService extends BaseService
- {
- /**
- * @var KafkaDotService
- */
- protected static $self = null;
- /**
- * @return BaseService|KafkaDotService
- */
- public static function instance()
- {
- if (self::$self == null) {
- self::$self = new self();
- }
- return self::$self;
- }
- /**
- * 发送数据
- * @param $user_id
- * @param AnalysisObject $analysisObject
- */
- public function sendMsg($user_id, AnalysisObject $analysisObject)
- {
- try{
- $type = $analysisObject->type;
- if (is_array($type)) {
- foreach ($type as $t) {
- $analysisObject->type = $t;
- $data = $this->processMsg($user_id, $analysisObject)->data;
- KafkaService::instance()->produceMsg($data);
- }
- } else {
- $data = $this->processMsg($user_id, $analysisObject)->data;
- KafkaService::instance()->produceMsg($data);
- }
- }catch (\Exception $e) {
- LogService::error($e->getMessage());
- }
- }
- /**
- * 获取发送数据
- * @param $user_id int
- * @param AnalysisObject $analysisObject
- * @return \app\main\model\object\ReturnObject
- */
- public function processMsg($user_id, AnalysisObject $analysisObject)
- {
- $aUser = UserService::instance()->getUserModel()->getUserInfo($user_id);
- $oUser = (new UserObject())->bind($aUser);
- $analysisObject->send_time = time();
- $analysisObject->user = $this->getUser($oUser)->data;
- if (!$analysisObject->data) {
- $analysisObject->data = NULL;
- }
- if (!$analysisObject->user_from) {
- $analysisObject->user_from = NULL;
- }
- $post = $analysisObject->toArray();
- return $this->setData($post)->getReturn();
- }
- /**
- * 获取打点用户信息
- * @param UserObject $userObject
- * @return \app\main\model\object\ReturnObject
- */
- public function getUser(UserObject $userObject)
- {
- $user = [
- 'id' => $userObject->id,
- ];
- $groupId = AdminService::instance()->getAuthGroupAccessModel()->getGroupId($userObject->channel_id);
- if ($groupId == AdminConstants::ADMIN_GROUP_ID_AGENT) {
- $adminExtend = AdminService::instance()->getAdminExtendModel()->getInfo($userObject->channel_id);
- $channelId = $adminExtend['create_by'];
- $user['channel_id'] = $adminExtend['create_by'];
- $user['agent_id'] = $channelId;
- $user['peihao'] = 1;
- } else {
- $user['channel_id'] = $userObject->channel_id;
- $user['agent_id'] = $userObject->agent_id;
- $user['peihao'] = 0;
- }
- $user['is_new'] = (int)($userObject->createtime > strtotime(date('Y-m-d')));
- return $this->setData($user)->getReturn();
- }
- }
|