작업자 공통 기능 및 계약서 연동
마이페이지, 작업료 정산, 서류 업로드, 계약서 요청과 상태 확인이 같은 사용자 영역 안에서 이어지도록 재구성했습니다. 계약서 양식별 템플릿 자동 입력, 상태 반영, 다운로드 동선이 한 화면에서 보이도록 정리했습니다.
| 항목 | 현재 포인트 | 지급 가능 |
|---|---|---|
| 차트 이미지-텍스트 쌍 데이터 | 184,000 | 요청 가능 |
| 관광분야 이미지-텍스트 쌍 데이터 | 72,000 | 대기 |
| 한국형 대규모 비전 데이터셋 | 312,000 | 요청 가능 |
| 프로젝트 | 계약서 제목 | 상태 | 동작 |
|---|---|---|---|
| 한국형 대규모 비전 데이터셋 | 수집/정제 참여 계약서 | 미작성 | 작성 요청 |
| 차트 이미지-텍스트 쌍 데이터 | 가공 참여 계약서 | 작성 중 | 작성 확인 |
| 관광분야 이미지-텍스트 쌍 데이터 | 수집 참여 계약서 | 작성 완료 | 다운로드 |
| 사용자 | 프로젝트 | 필수 정보 | 발송 |
|---|---|---|---|
| worker01 | 비전 데이터셋 | 충족 | 계약서 발송 |
| worker02 | 차트 데이터 | 추가 정보 필요 | 발송 불가 |
| worker03 | 관광 데이터 | 충족 | 재발송 |
$document = [
"document" => [
"participantMappings" => [
[
"excluded" => false,
"signingMethod" => [
"type" => "EMAIL",
"value" => $uinfo["email"]
],
"signingDuration" => 20160,
"locale" => "ko",
"role" => "근로자",
"name" => $uinfo["name"]
]
],
"requesterInputMappings" => [
[
"dataLabel" => "성명1",
"value" => $uinfo["name"]
],
[
"dataLabel" => "주민등록번호1",
"value" => $upays["signnum"]
],
[
"dataLabel" => "연락처",
"value" => $uinfo["contact"]
],
[
"dataLabel" => "은행",
"value" => $upays["bank"]
],
[
"dataLabel" => "계좌번호1",
"value" => $upays["banknum"]
],
[
"dataLabel" => "직업1",
"value" => $umeta["job"]
],
[
"dataLabel" => "계약일자 1",
"value" => date("Y-m-d")
]
],
"folderId" => "7b9fa580-fdb9-11ec-986f-b37efb0c0853",
"title" => $ainfo["title"]
],
"templateId" => $ainfo["API_ID"]
];$response = $client->request(
'POST',
'https://api.modusign.co.kr/documents/request-with-template',
$option
);
$return = json_decode($response->getBody(), true);
m_update(
[
$uakey => "pending"
],
"`na-now`.`Workers-projects`",
[
"uid" => $uinfo["uid"]
]
);
m_update(
[
$uakey . "_status" => "pending",
$uakey . "_result" => json_encode([
"result_id" => $return["id"],
"src" => "",
"updated" => date("Y-m-d H:i:s")
])
],
"`na-now`.`Workers-agrees`",
[
"uid" => $uinfo["uid"]
]
);$response = $client->request(
'GET',
'https://api.modusign.co.kr/documents/' . $id,
[
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Basic ...'
]
]
);
$return = json_decode($response->getBody(), true);
switch ($return["status"]) {
case "ON_GOING":
case "ON_PROCESSING":
$ret = ["none", "서명 진행 중"];
break;
case "PROCESSING_FAILED":
case "ABORTED":
$ret = ["fail", "서명을 다시 진행해 주세요."];
$type = "remove";
break;
case "COMPLETED":
$ret = ["success", "서명 완료"];
$type = "success";
break;
}$file = file_get_contents($return["file"]["downloadUrl"]);
$upload_dir = "/Na-now-Work-User-AGREES/" . $session_search["uid"] . "/";
$path = md5(microtime()) . '.pdf';
$json_ = [
"result_id" => $return["id"],
"src" => $upload_dir . $path,
"updated" => date("Y-m-d H:i:s")
];
m_update(
[
$uakey => "submit"
],
"`na-now`.`Workers-projects`",
[
"uid" => $uinfo["uid"]
]
);같은 과제 안의 다른 화면으로 이동하거나 메인 개요 페이지로 돌아갈 수 있습니다.