智慧教务系统
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.
 
 
 
 
 
 

218 lines
5.9 KiB

<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的多应用管理平台
// +----------------------------------------------------------------------
// | 官方网址:https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\api\controller\apiController;
use app\Request;
use app\service\api\apiService\ContractService;
use core\base\BaseApiService;
/**
* 合同管理控制器
* Class Contract
* @package app\api\controller\apiController
*/
class Contract extends BaseApiService
{
/**
* 获取我的合同列表
* @param Request $request
* @return mixed
*/
public function myContracts(Request $request)
{
$page = $request->param('page', 1);
$limit = $request->param('limit', 10);
$where = [
'personnel_id' => $this->member_id,
'page' => $page,
'limit' => $limit
];
try {
$service = new ContractService();
$res = $service->getMyContracts($where);
if (!$res['code']) {
return fail($res['msg']);
}
return success($res['data']);
} catch (\Exception $e) {
return fail('获取合同列表失败:' . $e->getMessage());
}
}
/**
* 获取合同详情
* @param Request $request
* @return mixed
*/
public function detail(Request $request)
{
$contract_id = $request->param('id', 0);
if (empty($contract_id)) {
return fail('合同ID不能为空');
}
$where = [
'id' => $contract_id
];
try {
$service = new ContractService();
$res = $service->getContractDetail($where);
if (!$res['code']) {
return fail($res['msg']);
}
return success($res['data']);
} catch (\Exception $e) {
return fail('获取合同详情失败:' . $e->getMessage());
}
}
/**
* 签订合同
* @param Request $request
* @return mixed
*/
public function sign(Request $request)
{
$contract_id = $request->param('contract_id', 0);
$sign_file = $request->param('sign_file', '');
if (empty($contract_id)) {
return fail('合同ID不能为空');
}
if (empty($sign_file)) {
return fail('签名文件不能为空');
}
$data = [
'contract_id' => $contract_id,
'personnel_id' => $this->member_id,
'sign_file' => $sign_file
];
try {
$service = new ContractService();
$res = $service->signContract($data);
if (!$res['code']) {
return fail($res['msg']);
}
return success($res['data']);
} catch (\Exception $e) {
return fail('签订合同失败:' . $e->getMessage());
}
}
/**
* 获取合同签订状态
* @param Request $request
* @return mixed
*/
public function signStatus(Request $request)
{
$contract_id = $request->param('contract_id', 0);
if (empty($contract_id)) {
return fail('合同ID不能为空');
}
$where = [
'contract_id' => $contract_id,
'personnel_id' => $this->member_id
];
try {
$service = new ContractService();
$res = $service->getSignStatus($where);
if (!$res['code']) {
return fail($res['msg']);
}
return success($res['data']);
} catch (\Exception $e) {
return fail('获取签订状态失败:' . $e->getMessage());
}
}
/**
* 获取员工合同签署表单配置
* @param Request $request
* @return mixed
*/
public function getSignForm(Request $request)
{
$contract_id = $request->param('contract_id', 0);
if (empty($contract_id)) {
return fail('合同ID不能为空');
}
$where = [
'contract_id' => $contract_id,
'personnel_id' => $this->member_id
];
try {
$service = new ContractService();
$res = $service->getStaffContractSignForm($where);
if (!$res['code']) {
return fail($res['msg']);
}
return success($res['data']);
} catch (\Exception $e) {
return fail('获取签署表单失败:' . $e->getMessage());
}
}
/**
* 下载合同文件
* @param Request $request
* @return mixed
*/
public function download(Request $request)
{
$contract_id = $request->param('contract_id', 0);
if (empty($contract_id)) {
return fail('合同ID不能为空');
}
$where = [
'contract_id' => $contract_id,
'personnel_id' => $this->member_id
];
try {
$service = new ContractService();
$res = $service->downloadContract($where);
if (!$res['code']) {
return fail($res['msg']);
}
return success($res['data']);
} catch (\Exception $e) {
return fail('下载合同失败:' . $e->getMessage());
}
}
}