package document_request
import (
"encoding/json"
"git.sxidc.com/student-physical-examination/contract_lock_sdk/http"
"git.sxidc.com/student-physical-examination/contract_lock_sdk/model/common"
)
type DocumentAddbytemplateRequest struct {
// core:true 【电子签约文件id】电子签约文件id 【作用】 查询需添加签署文档的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一,均传入以电子签约文件id为准
ContractId string `json:"contractId,omitempty"`
// core:true 【第三方业务系统文件id】第三方业务系统文件id 【作用】 查询需添加签署文档的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一,均传入以电子签约文件id为准
BizId string `json:"bizId,omitempty"`
// core:true 【文件模板id】文件模板id
TemplateId string `json:"templateId"`
// core:true 【签署文档名称】签署文档名称 【传参方式】 不传值时,默认使用模板名称
Title string `json:"title,omitempty"`
// core:true 【模板参数值】模板参数值 【传参】 1、json格式字符串 2、当使用HTML模板时,value的json字符串的value值注意事项如下: 1)单行文本 传入文本内容,例如{\"单行文本\":\"这里是一段文本描述……\"}。 2)日期 格式为:yyyy-MM-dd,如:{\"日期\":\"2019-06-04\"}。 3)身份证号 仅支持15或18位的数字或字母,如:{\"身份证\":\"123456789123456789;\"}; 4)单选: 仅支持传入单选的选项,如:{\"性别\":\"女\"}; 若传入其他选项: (1)需要填写补充内容,则传入格式为:其他选项名称{{补充内容}} (2)不需要填写补充内容,则传入:其他选项名称 5)多选 仅支持传入多选的选项,多个value用逗号隔开,如:{\"爱好\":\"乒乓球,篮球\"};若传入其他选项: (1)需要填写补充内容,则传入格式为:其他选项名称{{补充内容}} (2)不需要填写补充内容,则传入:其他选项名称 6)表格 (1)参数名称即表格的Key值,参数值是一维数组且需转成字符串类型,数组的每项对应表格的每行,而每行中每一列的名称和值即对应列的key值和实际填写的值,转成字符串的一维数组示例:[{\\\"column1\\\":\\\"1\\\",\\\"column2\\\":\\\"2\\\",\\\"column3\\\":\\\"3\\\",\\\"column4\\\":\\\"4\\\"},{\\\"column1\\\":\\\"5\\\",\\\"column2\\\":\\\"6\\\",\\\"column3\\\":\\\"7\\\",\\\"column4\\\":\\\"8\\\"}]表示一个2行4列的表格。 (2)如若需要合并单元格,传参示例如下: [{\\\"column1\\\":\\\"1\\\",\\\"column2\\\":\\\"2\\\",\\\"column3\\\":\\\"3\\\",\\\"column4\\\":\\\"4\\\"},{\\\"column1\\\":\\\"5\\\",\\\"column2\\\":\\\"6\\\",\\\"column3\\\":\\\"7\\\",\\\"column4\\\":\\\"#.3\\\"}], #.1表示向左合并单元格,#.2表示向上合并单元格。#.3表示向左上合并单元格。 (3)表格的行数在传参的时候根据实际传入的会动态新增,但表格列不可动态新增,只能设置表格固定列为准 7)图片 需传入json字符串,包含value(base64图片包含base64前缀,必填)、fileName(图片名称,必填)两个参数,如:{\"fileName\":\"1.png\",\"value\":\"data:image/png;base64,/9j/4AAQSk...\"}。 8)富文本 富文本形式的字符串,标签中的双引号需要用\\进行转义,如{\"富文本\": \"红色\\\"文\\\"本\"}。 9)邮箱 邮箱形式的字符串,如:{\"邮箱\":\"umklch01@163.com\"}。
Params string `json:"params,omitempty"`
// inner-type:Json 【文件水印】文件水印 【作用】 1、可在签署文档上添加水印,允许传入多组水印 2、若新增的文件已添加数字签名,因添加文件水印会篡改文件导致数字签名失效,故文件水印不会生效
WaterMarks string `json:"waterMarks,omitempty"`
// inner-type:Json 【印章水印】印章水印 【作用】 可在印章外观上添加水印,防止签署文件上的印章被抠章后二次使用,允许传入多组水印 【特殊说明】 1、当用印流程中已预设文字水印并勾选通过接口传入内容,则传入的文字水印配置,将按传入顺序优先匹配已预设的水印,传入的参数中只有文字水印内容(content)传值生效,样式以用印流程预设的为准。其余传入的文字水印,则为新增文字水印配置; 2)当用印流程中未预设文字水印通过接口传入内容,或接口传入的印章类型、用印时间类型的水印时,均为新增水印
StampWaterMarks string `json:"stampWaterMarks,omitempty"`
StampWaterMarksObject []*common.DocumentStampWaterMarkContent `json:"stampWaterMarksObject,omitempty"`
WaterMarksObject []*common.DocumentWaterMarkContent `json:"waterMarksObject,omitempty"`
}
func (obj DocumentAddbytemplateRequest) GetUrl() string {
return "/document/addbytemplate"
}
func (obj DocumentAddbytemplateRequest) GetHttpParameter() *http.HttpParameter {
parameter := http.NewPostHttpParameter()
parameter.AddParam("contractId", obj.ContractId)
parameter.AddParam("bizId", obj.BizId)
parameter.AddParam("templateId", obj.TemplateId)
parameter.AddParam("title", obj.Title)
parameter.AddParam("params", obj.Params)
if obj.StampWaterMarksObject != nil {
jsonBytes, _ := json.Marshal(obj.StampWaterMarksObject)
parameter.AddParam("stampWaterMarks", string(jsonBytes))
} else {
parameter.AddParam("stampWaterMarks", obj.StampWaterMarks)
}
if obj.WaterMarksObject != nil {
jsonBytes, _ := json.Marshal(obj.WaterMarksObject)
parameter.AddParam("waterMarks", string(jsonBytes))
} else {
parameter.AddParam("waterMarks", obj.WaterMarks)
}
return parameter
}