| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 | <?phpnamespace App\Services\Content;use App\Repositories\FeedbackRepository;use App\Repositories\MsgRepository;use App\Repositories\MemberLogRepository;use App\Repositories\CompanyRepository;use Illuminate\Support\Facades\Cache;class FeedbackService{    /**     * @var FeedbackeRepository     */    protected $feedbackRepository;    protected $msgRepository;    protected $memberLogRepository;    protected $companyRepository;    /**     * FeedbackService constructor.     * @param $feedbackRepository     * @param $msgRepository     * @param $memberLogRepository     * @param $companyRepository     */    public function __construct(FeedbackRepository $feedbackRepository, MsgRepository $msgRepository, MemberLogRepository $memberLogRepository, CompanyRepository $companyRepository)    {        $this->feedbackRepository = $feedbackRepository;        $this->msgRepository = $msgRepository;        $this->memberLogRepository = $memberLogRepository;        $this->companyRepository = $companyRepository;    }    public function addFeedback($data)    {        return $this->feedbackRepository->create($data);    }    public function sendMsg($data, $type)    {        $from_uid = '';        $utype = 1;        if (auth('web-member')->user()) {            $from_uid = auth('web-member')->user()->id;            $utype = 2;        } elseif (auth('web-company')->user()) {            $from_uid = auth('web-company')->user()->id;            $utype = 1;        }        //添加msg表数据        $time = date('Y-m-d H:i:s', time());        $msg_data = array(            'parent_id' => array_has($data, 'parent_id')?array_get($data, 'parent_id'):0,            'spid'       => array_has($data, 'spid')?array_get($data, 'spid'):0,            'from_uid'   => $from_uid,            'to_uid'     => $data['touid'],            'message'    => $data['message'],            'is_read'    => array_has($data, 'is_read')?array_get($data, 'is_read'):0,            'created_at' => $time,            'updated_at' => $time,            'utype'       => $utype        );        $insert_id = $this->msgRepository->addData($msg_data);        $data['id'] = $insert_id;        if (!$insert_id) {            return false;        }        if (array_get($data, 'parent_id')) {            $this->msgRepository->update(array('spid'=>1), $data['parent_id']);        } else {            $this->msgRepository->update(array('parent_id'=>$insert_id), $insert_id);        }        /*        $where = array('utype'=>$utype,'uid'=>$data['touid'],'type'=>$type);        if ($member_msg_tip = $this->msgRepository->getMemberMsgtipInfo($where)) {            $this->msgRepository->updateMemberMsgtipInfo($where, array('updated_at'=>$time,'unread'=>(int)$member_msg_tip->unread+1));        } else {            $memberMsgtip_data = array(                'uid' => (int)$data['touid'],                'utype' => $utype,                'type'  => $type,                'unread' => '1',                'num'=>0,                'created_at' =>$time,                'updated_at' => $time            );            $this->msgRepository->addMemberMsgtipInfo($memberMsgtip_data);        }        */        $user_info = array();        if (auth('web-member')->user()) {            $company = $this->companyRepository->getCompanyInfo(array('id'=>$data['touid']));            $data['to_url'] = route(url_rewrite('AIX_companyshow'), array('id'=>$company->id));            $data['to_name'] = $company->companyname;            $user_info = array(                'uid' => auth('web-member')->user()->id,                'utype' =>2,                'username' => auth('web-member')->user()->username,                'ip' => $data['ip'],                'log_address'=>$data['ip_address']            );        }        //写入会员日志        $this->addMembersLog($user_info, '', '发送站内信消息(消息id:'.$data['parent_id'].',接收人uid:'.$data['touid'].',消息内容:'.$data['message'].')');        return array('state'=>1,'data'=>$data);    }    public function addMembersLog($user, $type = 0, $txt, $replace2='', $replace3='', $source = false, $params = array(), $operater_id = 0, $operater = '')    {        $types = $this->memberLogRepository->getTypes();        $members_log = $params;        $members_log['log_uid']=$user['uid'];        $members_log['log_username']=$user['username'];        if ($type) {            $members_log['log_value']  = sprintf($types[$type]['content'], $txt, $replace2, $replace3);        } else {            $members_log['log_value'] = $txt;        }        $members_log['log_ip'] = $user['ip'];        $members_log['log_address'] = $user['log_address'];        $members_log['log_utype']=$user['utype'];        if ($source) {            $members_log['log_source']=$source;        } elseif (Cache::get('log_source')) {            $source = Cache::get('log_source');            switch ($source) {                case 2:                    $members_log['log_source'] = '触屏版';                    break;                default:                    $members_log['log_source']='网页版';                    break;            }        } else {            $members_log['log_source']='网页版';        }        $members_log['type']=$type?$type:0;        $this->setLog($members_log);        unset($members_log);    }    public function setLog($params)    {        if (Cache::get('subsite_id')) {            $params['subsite_id'] = Cache::get('subsite_id');        } else {            $params['subsite_id'] = 0;        }        if (false !== $this->memberLogRepository->addNew($params)) {            return array('state'=>true);        } else {            return array('state'=>false,'error'=>'日志记录失败!');        }    }}
 |