request->params([ ["contract_id",""], ["personnel_id",0], ["status",""], ["created_at",["",""]], ["sign_time",["",""]] ]); // 过滤掉空字符串参数,避免不必要的搜索条件 $filtered_data = array_filter($data, function($value) { return $value !== "" && $value !== []; }); // 确保personnel_id总是有数值类型 if (!isset($filtered_data['personnel_id'])) { $filtered_data['personnel_id'] = 0; } return success((new ContractSignService())->getPage($filtered_data)); } /** * 合同关系详情 * @param int $id * @return \think\Response */ public function info(int $id){ return success((new ContractSignService())->getInfo($id)); } /** * 添加合同关系 * @return \think\Response */ public function add(){ $data = $this->request->params([ ["contract_id",0], ["personnel_id",0], ]); $this->validate($data, 'app\validate\contract_sign\ContractSign.add'); $id = (new ContractSignService())->add($data); return success('ADD_SUCCESS', ['id' => $id]); } /** * 合同关系编辑 * @param $id 合同关系id * @return \think\Response */ public function edit(int $id){ $data = $this->request->params([ ["contract_id",0], ["personnel_id",0], ["fill_data",""], ["sign_time",""], ["signature_image",""], ["status",1] ]); $this->validate($data, 'app\validate\contract_sign\ContractSign.edit'); (new ContractSignService())->edit($id, $data); return success('EDIT_SUCCESS'); } /** * 合同关系删除 * @param $id 合同关系id * @return \think\Response */ public function del(int $id){ (new ContractSignService())->del($id); return success('DELETE_SUCCESS'); } public function getContractAll(){ return success(( new ContractSignService())->getContractAll()); } public function getPersonnelAll(){ return success(( new ContractSignService())->getPersonnelAll()); } /** * 获取员工所有合同(包括未签署的) * @return \think\Response */ public function getPersonnelContracts(){ $data = $this->request->params([ ["personnel_id", 0] ]); return success((new ContractSignService())->getPersonnelContracts($data)); } /** * 更新合同签署状态 * @return \think\Response */ public function updateStatus(){ $data = $this->request->params([ ["id", 0], ["contract_id", 0], ["personnel_id", 0], ["status", 1], ["signature_image", ""], ["sign_time", ""], ["fill_data", ""] ]); $id = $data['id']; unset($data['id']); (new ContractSignService())->edit($id, $data); return success('UPDATE_SUCCESS'); } }