You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.6 KiB
103 lines
3.6 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | Niucloud-admin 企业快速开发的多应用管理平台
|
|
// +----------------------------------------------------------------------
|
|
// | 官方网址:https://www.niucloud.com
|
|
// +----------------------------------------------------------------------
|
|
// | niucloud团队 版权所有 开源版本可自由商用
|
|
// +----------------------------------------------------------------------
|
|
// | Author: Niucloud Team
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\service\api\apiService;
|
|
|
|
use app\model\campus_person_role\CampusPersonRole;
|
|
use app\model\departments\Departments;
|
|
use app\model\member\Member;
|
|
use app\model\personnel\Personnel;
|
|
use app\model\sys\SysRole;
|
|
use app\service\core\member\CoreMemberService;
|
|
use core\base\BaseApiService;
|
|
use core\exception\ApiException;
|
|
use core\util\Barcode;
|
|
use think\Model;
|
|
|
|
/**
|
|
* 员工服务层
|
|
* Class MemberService
|
|
* @package app\service\api\member
|
|
*/
|
|
class PersonnelService extends BaseApiService
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->model = new Personnel();
|
|
}
|
|
|
|
//获取员工信息
|
|
public function info(array $where,string $field = '*'){
|
|
$model = $this->model;
|
|
if(!empty($where['id'])){
|
|
$model = $model->where('id',$where['id']);
|
|
}
|
|
$res = $model->field($field)->find();//员工信息
|
|
|
|
//查询部门信息
|
|
$campus_person_role = CampusPersonRole::where('person_id',$where['id'])->select()->toArray();
|
|
$role_id = array_unique(array_column($campus_person_role, 'role_id'));
|
|
$dept_id = array_unique(array_column($campus_person_role, 'dept_id'));
|
|
//查询用户角色
|
|
$role_name_arr = SysRole::whereIn('role_id',$role_id)->column('role_name');
|
|
$role_name_str = implode(',',$role_name_arr);//
|
|
|
|
//查询部门
|
|
$department_name_arr = Departments::whereIn('id',$dept_id)->column('department_name');
|
|
$department_name_str = implode(',',$department_name_arr);
|
|
|
|
|
|
if($res){
|
|
$res = $res->toArray();
|
|
$res['role_name_str'] = $role_name_str;
|
|
$res['department_name_str'] = $department_name_str;
|
|
|
|
}else{
|
|
$res = [];
|
|
}
|
|
return $res;
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* 获取会员的模型对象(todo 慎用!!! 现主要用于登录)
|
|
* @param array $data
|
|
* @return Member|array|mixed|Model !!! 仔细看,返回值是模型对象 如果想要判断是否为空 请用 $member->isEmpty()
|
|
*/
|
|
public function findMemberInfo(array $data){
|
|
//会员账号
|
|
if(!empty($data['username']))
|
|
$where[] = ['username', '=', $data['username']];
|
|
//会员手机号
|
|
if(!empty($data['mobile']))
|
|
$where[] = ['mobile', '=', $data['mobile']];
|
|
//会员id
|
|
if(!empty($data['id']))
|
|
$where[] = ['id', '=', $data['id']];
|
|
//微信公众号openid
|
|
if(!empty($data['wx_openid']))
|
|
$where[] = ['wx_openid', '=', $data['wx_openid']];
|
|
//微信小程序openid
|
|
if(!empty($data['weapp_openid']))
|
|
$where[] = ['weapp_openid', '=', $data['weapp_openid']];
|
|
// 微信unionid
|
|
if(!empty($data['wx_unionid']))
|
|
$where[] = ['wx_unionid', '=', $data['wx_unionid']];
|
|
if(!empty($data['username|mobile']))
|
|
$where[] = ['username|mobile', '=', $data['username|mobile']];
|
|
if(empty($where)){
|
|
$where[] = ['member_id', '=', -1];
|
|
}
|
|
return $this->model->where($where)->findOrEmpty();
|
|
}
|
|
}
|
|
|