新增电子合同相关接口及数据结构

添加电子合同申请、下载、状态查询、人工复核等功能模块
包含请求/响应数据结构及API实现
新增相关常量定义和类型
This commit is contained in:
maguodong
2025-10-20 10:28:54 +08:00
parent 7777630306
commit e985b790d4
16 changed files with 500 additions and 0 deletions
@@ -0,0 +1,41 @@
package applymanual
import (
"github.com/black1552/lkl_sdk/consts"
"github.com/black1552/lkl_sdk/lklsdk/common"
"github.com/gogf/gf/v2/os/gtime"
)
// ApplyManual 电子合同人工复核申请服务
type ApplyManual struct {
Client *common.Client[ECApplyManualResponse]
}
// NewApplyManual 创建新的电子合同人工复核申请服务
func NewApplyManual(client *common.Client[ECApplyManualResponse]) *ApplyManual {
return &ApplyManual{
Client: client,
}
}
// ECApplyManual 电子合同人工复核申请(生产环境)
func (a *ApplyManual) ECApplyManual(req *ECApplyManualRequestData) (*ECApplyManualResponse, error) {
// 创建请求对象
request := ECApplyManualRequest{
ReqTime: gtime.Now().Format("YmdHis"),
ReqData: req,
Version: "1.0",
}
return a.Client.DoRequest(consts.BASE_URL+consts.LKL_EC_APPLY_MANUAL, request)
}
// ECApplyManualTest 电子合同人工复核申请(测试环境)
func (a *ApplyManual) ECApplyManualTest(req *ECApplyManualRequestData) (*ECApplyManualResponse, error) {
// 创建请求对象
request := ECApplyManualRequest{
ReqTime: gtime.Now().Format("YmdHis"),
ReqData: req,
Version: "1.0",
}
return a.Client.DoRequest(consts.BASE_TEST_URL+consts.LKL_EC_APPLY_MANUAL, request)
}
@@ -0,0 +1,27 @@
package applymanual
// ECApplyManualRequestData 电子合同人工复核申请请求数据结构体
type ECApplyManualRequestData struct {
Version string `json:"version"` // 版本号,默认1.0
OrderNo string `json:"order_no"` // 四方机构自定义订单编号,必填,建议平台编号+14位年月日时分秒+8位随机数
OrgID int `json:"org_id"` // 机构号,必填,签约方所属拉卡拉机构
EcApplyID string `json:"ec_apply_id"` // 电子合同申请受理号,必填,申请接口反馈编号
ApplyDesc string `json:"apply_desc"` // 申请说明,必填,复议提交的原因说明
FileData []*ECFileData `json:"file_data"` // 附件信息集合,必填,提供给审核人员核对信息
RetURL string `json:"ret_url,omitempty"` // 回调地址,可选
}
// ECFileData 附件信息结构体
type ECFileData struct {
AttachType string `json:"attach_type"` // 附件类型,必填,枚举值见文档
AttachName string `json:"attach_name"` // 附件名称,必填,最大32字符
AttachExtName string `json:"attach_ext_name"` // 附件格式,必填,jpg、pdf等
AttachStorePath string `json:"attach_store_path"` // 附件坐标URL,必填,如G1/M00/00/61/CrFdEl3IyceAVVd8AAA0ADuZsA0911.jpg
}
// ECApplyManualRequest 电子合同人工复核申请请求结构体
type ECApplyManualRequest struct {
ReqTime string `json:"req_time"` // 请求时间
ReqData *ECApplyManualRequestData `json:"req_data"` // 请求数据
Version string `json:"version"` // 接口版本号
}
@@ -0,0 +1,19 @@
package applymanual
// ECApplyManualResponseData 电子合同人工复核申请响应数据结构体
type ECApplyManualResponseData struct {
// 响应数据为空对象,根据API文档,成功时返回空的resp_data
}
// ECApplyManualResponse 电子合同人工复核申请响应结构体
type ECApplyManualResponse struct {
Code string `json:"code"` // 返回码,成功为000000,其他为失败
Msg string `json:"msg"` // 返回码描述
RespData ECApplyManualResponseData `json:"resp_data"` // 响应数据
}
// SuccessOfFail 检查响应是否成功
// 返回true表示成功,false表示失败
func (r *ECApplyManualResponse) SuccessOfFail() bool {
return r.Code == "000000"
}