| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 | <?phpnamespace App\Repositories;use App\Models\MembersLog;use App\Services\Common\CurlService;use Illuminate\Container\Container as Application;use Illuminate\Support\Facades\DB;use Prettus\Repository\Eloquent\BaseRepository;use Prettus\Repository\Criteria\RequestCriteria;/** * Class MemberRepositoryEloquent. * * @package namespace App\Repositories; */class MemberLogRepository extends BaseRepository{    protected $memberInfoRepository;    public function __construct(Application $app,MemberInfoRepository $memberInfoRepository)    {        $this->memberInfoRepository=$memberInfoRepository;        parent::__construct($app);    }    /**     * 操作类型。     * @var array     */    public $type_arr = array(        1000=>array('type'=>'注册','content'=>'注册成功'),        1001=>array('type'=>'登录','content'=>'登录成功'),        1002=>array('type'=>'发布了职位','content'=>'发布了职位(id:%s)'),        1003=>array('type'=>'修改了职位','content'=>'修改了职位(id:%s)'),        1004=>array('type'=>'保存企业资料','content'=>'保存企业资料'),        1005=>array('type'=>'上传营业执照','content'=>'上传营业执照'),        1006=>array('type'=>'刷新职位','content'=>'刷新职位(id:%s,方式:%u)'),        1007=>array('type'=>'关闭职位','content'=>'关闭职位(id:%s)'),        1008=>array('type'=>'恢复显示职位','content'=>'恢复显示职位(id:%s)'),        1009=>array('type'=>'删除职位','content'=>'删除职位(id:%s)'),        1010=>array('type'=>'邀请面试','content'=>'邀请面试(职位id:%s,简历id:%u)'),        1011=>array('type'=>'删除邀请面试记录','content'=>'删除邀请面试记录(记录id:%s)'),        1012=>array('type'=>'下载简历','content'=>''),        1013=>array('type'=>'删除职位申请','content'=>'删除职位申请(记录id:%s)'),//        1014=>array('type'=>'简历保存到电脑','content'=>'将简历保存到电脑(简历id:%s)'),//        1015=>array('type'=>'修改过滤条件','content'=>'修改职位接收简历的过滤条件(职位id:%s)'),        1016=>array('type'=>'已收到简历设为已查看','content'=>'将已收到简历设为已查看(记录id:%s)'),        1017=>array('type'=>'删除已下载简历','content'=>'删除已下载简历(记录id:%s)'),        1018=>array('type'=>'收藏简历','content'=>'收藏简历(简历id:%s)'),        1019=>array('type'=>'删除收藏简历','content'=>'删除收藏简历(记录id:%s)'),        1020=>array('type'=>'删除浏览过的简历','content'=>'删除浏览过的简历(记录id:%s)'),        1021=>array('type'=>'删除谁看过我的职位','content'=>'删除谁看过我的职位(记录id:%s)'),        1022=>array('type'=>'删除企业风采','content'=>'删除企业风采(记录id:%s)'),//        1023=>array('type'=>'修改企业风采备注','content'=>'修改企业风采备注(记录id:%s)'),//        1024=>array('type'=>'查看系统消息','content'=>'查看系统消息(消息id:%s)'),        1025=>array('type'=>'删除系统消息','content'=>'删除系统消息(消息id:%s)'),        1026=>array('type'=>'发送反馈消息','content'=>'发送反馈消息(发送者uid:%s,接收者uid:%u,消息内容:%f)'),//        1027=>array('type'=>'删除反馈消息','content'=>'删除反馈消息(消息id:%s)'),//        1028=>array('type'=>'发送简历到邮箱','content'=>'发送简历到邮箱(简历id:%s,接收邮箱:%u)'),        1029=>array('type'=>'标记收到的简历','content'=>'标记收到的简历(记录id:%s,标记为:%u)'),        1030=>array('type'=>'标记已下载简历','content'=>'标记已下载简历(记录id:%s,标记为:%u)'),        1031=>array('type'=>'更换企业模板','content'=>'更换企业模板(模板目录名:%s)'),        1032=>array('type'=>'举报简历','content'=>'举报简历(简历id:%s)'),        1033=>array('type'=>'预定招聘会展位','content'=>'预定招聘会展位(招聘会id:%s,展位id:%u)'),        1034=>array('type'=>'发布招聘会职位','content'=>'发布了招聘会职位【%s】(id:%u)'),        1035=>array('type'=>'修改招聘会职位','content'=>'修改了招聘会职位【%s】(id:%u)'),        1036=>array('type'=>'删除招聘会职位','content'=>'删除招聘会职位(id:%s)'),        1037=>array('type'=>'修改招聘会参展职位','content'=>'修改了招聘会参展职位(id:%s)'),        8001=>array('type'=>'邮箱验证','content'=>'邮箱验证'),        8002=>array('type'=>'手机验证','content'=>'手机验证'),        8003=>array('type'=>'签到','content'=>'签到'),        9001=>array('type'=>'创建订单','content'=>'创建订单(订单号:%s,付款方式:%u)'),        9002=>array('type'=>'开通服务','content'=>'开通服务(服务名称:%s,付款方式:%u)'),        9003=>array('type'=>'索取发票','content'=>'索取发票(订单ID:%s)'),        9004=>array('type'=>'取消订单','content'=>'取消订单(订单号:%s)'),        9005=>array('type'=>'删除订单','content'=>'删除订单(订单号:%s)'),//        9006=>array('type'=>'申请退出诚聘通','content'=>'申请退出诚聘通会员'),        2001=>array('type'=>'刷新简历','content'=>'刷新简历(简历id:%s)'),        2002=>array('type'=>'添加屏蔽企业','content'=>'添加屏蔽企业关健字:%s'),        2003=>array('type'=>'删除屏蔽企业','content'=>'删除屏蔽企业关健字(关键字:%s)'),        2004=>array('type'=>'保存隐私设置','content'=>'保存隐私设置(简历id:%s)'),        2005=>array('type'=>'设置简历委托','content'=>'设置简历委托(简历id:%s)'),        2006=>array('type'=>'取消简历委托','content'=>'取消简历委托(简历id:%s)'),        2007=>array('type'=>'更换简历模板','content'=>'更换简历模板(简历id:%s,模板目录名:%u)'),        2008=>array('type'=>'删除简历','content'=>'删除简历(简历id:%s)'),        2009=>array('type'=>'设置默认简历','content'=>'设置默认简历(简历id:%s)'),        2010=>array('type'=>'创建简历','content'=>'创建简历(简历id:%s)'),        2011=>array('type'=>'复制简历','content'=>'复制简历(被复制简历id:%s,新简历id:%u)'),        2012=>array('type'=>'修改简历','content'=>'修改简历(简历id:%s)'),        2013=>array('type'=>'删除教育经历','content'=>'删除教育经历(简历id:%s)'),        2014=>array('type'=>'删除工作经历','content'=>'删除工作经历(简历id:%s)'),        2015=>array('type'=>'删除培训经历','content'=>'删除培训经历(简历id:%s)'),        2016=>array('type'=>'删除语言能力','content'=>'删除语言能力(简历id:%s)'),        2017=>array('type'=>'删除证书','content'=>'删除证书(简历id:%s)'),        2018=>array('type'=>'添加教育经历','content'=>'添加教育经历(简历id:%s)'),        2019=>array('type'=>'修改教育经历','content'=>'修改教育经历(简历id:%s)'),        2020=>array('type'=>'添加工作经历','content'=>'添加工作经历(简历id:%s)'),        2021=>array('type'=>'修改工作经历','content'=>'修改工作经历(简历id:%s)'),        2022=>array('type'=>'添加培训经历','content'=>'添加培训经历(简历id:%s)'),        2023=>array('type'=>'修改培训经历','content'=>'修改培训经历(简历id:%s)'),        2024=>array('type'=>'保存语言能力','content'=>'保存语言能力(简历id:%s)'),        2025=>array('type'=>'添加证书','content'=>'添加证书(简历id:%s)'),        2026=>array('type'=>'修改证书','content'=>'修改证书(简历id:%s)'),        2027=>array('type'=>'保存个人简介','content'=>'保存个人简介(简历id:%s)'),        2028=>array('type'=>'保存特长标签','content'=>'保存特长标签(简历id:%s)'),        2029=>array('type'=>'删除简历附件','content'=>'删除简历附件(简历id:%s)'),        2030=>array('type'=>'保存附件','content'=>'保存附件(简历id:%s)'),        2031=>array('type'=>'删除word简历','content'=>'删除word简历(简历id:%s)'),        2032=>array('type'=>'简历外发','content'=>'简历外发(简历id:%s,接收邮箱:%u)'),        2033=>array('type'=>'删除简历外发','content'=>'删除简历外发(记录id:%s)'),        2034=>array('type'=>'面试邀请设为已查看','content'=>'面试邀请设为已查看(记录id:%s)'),        2035=>array('type'=>'删除收藏的职位','content'=>'删除收藏的职位(记录id:%s)'),        2036=>array('type'=>'删除谁在关注我','content'=>'删除谁在关注我(记录id:%s)'),        2037=>array('type'=>'删除浏览过的职位','content'=>'删除浏览过的职位(记录id:%s)'),        2038=>array('type'=>'删除关注的企业','content'=>'删除关注的企业(记录id:%s)'),        2039=>array('type'=>'保存职位订阅器','content'=>'保存职位订阅器(记录id:%s)'),        2040=>array('type'=>'退订职位订阅器','content'=>'退订职位订阅器(记录id:%s)'),        2041=>array('type'=>'订阅职位订阅器','content'=>'订阅职位订阅器(记录id:%s)'),        2042=>array('type'=>'举报职位','content'=>'举报职位(职位id:%s)'),        2043=>array('type'=>'修改个人资料','content'=>'修改个人资料'),        2044=>array('type'=>'修改了个人头像','content'=>'修改了个人头像')    );    /**     * Specify Model class name     *     * @return string     *///     if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2007,[$resume_id,$tpl])){//         throw new \Exception("日志记失败!");//     }    public function model()    {        return MembersLog::class;    }    /**     * Boot up the repository, pushing criteria     */    public function boot()    {        $this->pushCriteria(app(RequestCriteria::class));    }    /**     * @param $log_uid     * @param $log_utype     * @param $type     * @return mixed     */    public function getMemberLog($log_uid, $log_utype, $type)    {        return $this->model->where([            'log_uid'=>$log_uid,            'log_utype'=>$log_utype,            'type'=>$type        ])->orderBy('id', 'desc')->paginate(10);    }    public function addNew($data)    {        $data['log_address'] = getAddressByIp();        return $this->model->create($data);    }    public function getTypes()    {        return $this->model->getTypeArr();    }    /**     * @param $user     * @param $type     * @param $log_value     * @return mixed     * @throws \ErrorException     * @throws \Prettus\Validator\Exceptions\ValidatorException     */    public function createLog($user, $type, $log_value,$is_toString=false)    {        if (empty($user)) {            return true;        }        //把数组中空元素删掉        if (is_array($log_value)){            foreach ($log_value as $key=>$item) {                if (empty($item)){                    unset($log_value[$key]);                }            }        }        is_array($log_value) && $is_toString ? $log_value=implode(',',$log_value) : ''; //如果传来数组就拆分        $utyp=$user->utype;        $log_username="";        if($utyp==2){ //个人用户            $memberInfo=$this->memberInfoRepository->getMemberInfo($user->id);            $log_username=$memberInfo?$memberInfo->realname:$user->username;        }elseif($utyp == 1) { //企业            $log_username = $user->companyname;        }else{            $log_username = $user->orgname;        }        $data['log_uid'] = $user->id;        $data['log_username'] = $log_username;        $data['log_value'] = $this->getLogValue($type, $log_value);        $data['log_ip'] = ip2long(request()->ip());        $data['log_address'] = getAddressByIp();        $data['log_utype'] = $user->utype;        $data['log_source'] = $this->verSource();//        $data['subsite_id'] = $user->subsite_id;        $data['type'] = $type;        return $this->model->create($data);    }    public function addDebugLog($log){        $data['log_uid'] = 0;        $data['log_username'] = 0;        $data['log_value'] = json_encode($log);        $data['log_ip'] = ip2long(request()->ip());        $data['log_address'] = getAddressByIp();        $data['log_utype'] = 1;        $data['log_source'] = $this->verSource();        $data['subsite_id'] = 0;        $data['type'] = 0;        return $this->model->create($data);    }    /**     * 获取日志说明。     * @param $key     * @param $date     * @return mixed|null     */    public function getLogValue($key, $date)    {        if (isset($this->type_arr[$key])) {            $content = $this->type_arr[$key]['content'];            $res = str_replace(['%s','%u','%f'], $date, $content);            empty($res) ? $res=$date : "";            return $res;        } else {            return null;        }    }    /**     *  判断是PC端还是手机端。     */    public function verSource()    {        if (isMobile()) {            return '触屏端';        } else {            return '网页版';        }    }    public function typeArrs()    {        return collect($this->type_arr)->map(function ($value) {            return $value['type'];        })->toArray();    }}
 |