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.
104 lines
3.2 KiB
104 lines
3.2 KiB
<?php
|
|
|
|
namespace app\admin\controller\qingdong;
|
|
|
|
use addons\qingdong\controller\File;
|
|
use addons\qingdong\model\Staff;
|
|
use app\common\controller\Backend;
|
|
use app\common\exception\UploadException;
|
|
use app\common\library\Upload;
|
|
|
|
/**
|
|
* qingdong 基础控制器
|
|
*
|
|
* @icon fa fa-circle-o
|
|
*/
|
|
class Base extends Backend
|
|
{
|
|
|
|
protected $noNeedRight = [];
|
|
protected $_staff = null;
|
|
|
|
public function _initialize()
|
|
{
|
|
parent::_initialize();
|
|
$staff = Staff::where(['admin_id' => $this->auth->id])->find();
|
|
if (!empty($staff)) {
|
|
$this->_staff = $staff;
|
|
}else{
|
|
$data = [
|
|
'admin_id' => $this->auth->id,
|
|
'group_ids' => implode(',', $this->auth->getGroupIds()),
|
|
'name' => $this->auth->nickname,
|
|
'num'=>'01',
|
|
'mobile' => $this->auth->username,
|
|
'salt' => $this->auth->salt,
|
|
'password' => $this->auth->password,
|
|
'img' => '/assets/addons/qingdong/mini/avatar.png',
|
|
'email' => $this->auth->email,
|
|
'sex' => 1,
|
|
'status' => 1,
|
|
'createtime' => $this->auth->createtime,
|
|
'updatetime' => $this->auth->updatetime
|
|
];
|
|
$staffModel = new Staff();
|
|
$result = $staffModel->save($data);
|
|
if ($result) {
|
|
$staff = Staff::where(['admin_id' => $this->auth->id])->find();
|
|
$this->_staff = $staff;
|
|
} else {
|
|
$this->error('当前账号未绑定员工,要使用插件功能,请在员工列表添加账号', 'qingdong/department/staff');
|
|
}
|
|
}
|
|
}
|
|
|
|
public function getStaff()
|
|
{
|
|
return $this->_staff;
|
|
}
|
|
|
|
|
|
protected function qingdongValidate($params, $class, $scene, $rules = []) {
|
|
$validate = validate('addons\qingdong\validate\\'.$class);
|
|
if (!$validate->check($params, $rules, $scene)) {
|
|
return $validate->getError();
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 上传文件
|
|
* @ApiMethod (POST)
|
|
* @param File $file 文件流
|
|
*/
|
|
public function upload() {
|
|
|
|
$attachment = null;
|
|
//默认普通上传文件
|
|
$file = $this->request->file('file');
|
|
try {
|
|
$upload = new Upload($file);
|
|
$attachment = $upload->upload();
|
|
$info = $attachment->toArray();
|
|
$file = new \addons\qingdong\model\File();
|
|
$params = [
|
|
'name' => $info['filename'],
|
|
'save_name' => $info['url'],
|
|
'size' => isset($info['filesize'])?$info['filesize']:0,
|
|
'types' => $info['mimetype'],
|
|
'file_path' => $info['url'],
|
|
'create_staff_id' => empty($staff)?0:$staff->id,
|
|
];
|
|
$file->data(array_filter($params));
|
|
$file->save();
|
|
$fileId = $file->id;
|
|
|
|
} catch (UploadException $e) {
|
|
return json_encode(['code' => 0, 'msg' => $e->getMessage()]);
|
|
}
|
|
$this->success(__('Uploaded successful'),'', [
|
|
'id' => $fileId,
|
|
'url' =>$params['file_path']
|
|
]);
|
|
}
|
|
}
|
|
|