Ver Fonte

fixed bug.

zhou.xiaoning há 1 ano atrás
pai
commit
8770dc992a

+ 3 - 3
config/config.xml

@@ -55,9 +55,9 @@
     <SignKey value="E7C6EA231F454BF1A5CF8C223D45C422"/>
   </Tencent>
   <Asign>
-    <Url value="https://oapi.asign.cn"/>
-    <AppId value="832360903"/>
-    <PrivateKey value="MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCl+o3JA7u724TabBVR+cBuxbIaNOlW54fFDLqE6Kxm0Ym/2y3yZDVkcY9WTxXnvb1wRAzpyIneatZQ6hgqCVRsMZn3MZ9/6qpPApKufEN5TilCZ8+Og++fOLPODNQFDLfWHMKjZxmqWK8vOtEmneWn/JFwy1he2EBmXOYqyzu5FIKutOgLeEHoocdaNwtiaBhCulxEonze818q58TxLe1kcOBf9Dmk1BUOqDYxAY5FbqnDDVTKVTL9G8rw9XUJ0NO0hoqKKAciMgcV9epEN0/AQuir3rBrh1vXCf6mwVfYKFpqw+LJLv4WkOjai21xuiMYdU7Vibv95h862Aj8ovAfAgMBAAECggEBAIxrdgqrGueqpzH3IO5ygkf0/2HGg+afCLE/vIj3I+v0uDpVXwDjoHwyytZ1IA4n6x4QpHAg1esSrfBUrE7cB81lBWIpXExnJuCjR59Qx/DXnHZuxx1GJ7Kn0Q6wsar4AIunV0/QyNjiIIuvkgS+ru248v7fOgs7nvg6/gsUV5mTDppV6kf4lI14Mvpa7MIwKK2bB1zzLsWA7X9IuBS/QNxv+rRykc/uhZofDhWvaXbwGKxFf6unY2HwC3IFQONOdD6LlXyMdNT2pjMdPGdVu79eOC6wn2HBiIp7lXs08NqiL3oJ9Hh8+lqO0HVz5OMkpdaofXa7wDvZtdxGwsAlBokCgYEA5tgZWo/zK/u9GHCZrtwk9mP057BFy/83tl/c8ZmUT1CkyGx3/czVCvPZSjl6FBYWw6Bj1opwIBcQis83Kd7FHbVMgNDgg7Tyew+OAMUnM8GmWFHNQ/jA8Xe251yFOmoPwT/2MbGgwqmJjEtxD0zKPo8OVaK1odPZXN1g+KAjXjUCgYEAuBDkgrhpd8NrEa5OrxtiSipdgj8bmC7ET9xJVzFtoHFYybFCexQUA0z2NouA0GGw8qahOCx/a/CIP/hL1X3tZFUwuGjq3iSxBwhaM4aUPmDY1ratCCIxEQsl5eosGi54ltIVDE1yAgut3wMFP0YKM5ht/uBssPHrP7/gqdsGL4MCgYBcB0S8TO0F2Ns+9gzeoBcAP0MwZp68v+dnBnqfurlckWrQGCYSAWnhbutuYtGfVlsG7FdA/XnL4UYQAKIeSBhPSqrQI/WNrEKK+t2CwxZo1MfLJ/lsIqxQ14gMXl8itYvIYAZ3MzhCwrH6Q000a0mpfQCa9T3x4PIjyoHRPI49DQKBgBtZlzq9QB6lkOE9rz9hqEcw6FgUHHuOZ2keaF9mXs26SeEeT6yOHTMoWmVccTWFbo9/pvD726skQHqQ4GPGpGGGLwkXvd5oQU20NgL1+k0SguXUmv1cZ0ILEASLuSXixdRTPwFm+IvJRHqgrkTqmVV1TtLSchQQvk3oqu9SNicVAoGAYWga1T1D8MW0v7q2d05hJ3JqgHbAYZmKVxlR2Moh33fzV8CmusY3FhnbPQi8Lorj/CexjfXgvG+rZfa713qtJYLHWmJ7hQKwBQH9J0QPO3ffQyFAM1RjJyIvB9BPt8zN2QbujR4O6wXFee1zjKYgnuBAt7dBmE3O3nNdXAMa1g4="/>
+  <Url value="https://oapi.asign.cn"/>
+    <AppId value="964764021"/>
+    <PrivateKey value="MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCS/rJCcUMRiWehBmmr1E2nAs6vB5YHb9BhmjxgyGZH2JcEIwtz7Qi46GL2iJlHVzPT0sB/Y5r7ssukCFP3PIIwdjO03i+QkuEHqNAzWmjbX7yr48pNFAxafA7bkctAMOd8bO3AAQrznRnFBn5rkv/FBPth1H393p0h+SNce9s6Sdntc//GFkQcT4qQLqi6H/prQ7tMO3HAEpRUORVWBAGpARg9cLmm6X1g6SE6YoGsr0pfhzn/clQ3xTDvnTTaipfl2bnHRnbUfC8j4zq1IYfD21oRxaY4bFWYdnquhsmv1U7jGR7G/WtCh76tNz4OlYl1DHWX498MvDmN/8++tWDjAgMBAAECggEAe3gEM1r/gtNvgAnq6LHDJ+1rvgkZM9Xvqovq+0BY6TA8aPUmwZDwKqDHv1ytowbUObBkkJwRqilcc8OrA5iHoj0m4V1fhohZDB34A6qFOP8Jczg6zNNyLO7XbAbiOmDZj+HPMd+uW0IySxRRS/qFa+/rVxktWviJ8+dYlG5UjngDvfVZbUHNdJWxk+cxU5YkaBKEfpJqs2sVIfFx0aQs0A+UmgAUwszmNAmtvu7y/kT0U9f1lbrze1Ndgg6S/JLjOmORFsbAgCm7NhAWG6yAMViyZ6R9dewqUwOJ214KDAeRREPp6mzvbPLbUg1imBEP5QU3YcEeCP01f3qpxukowQKBgQDJjHVxLRC/ynR3pXF/nYGY/aaNdLAKvWwQFLg/Xs1/Jes8GJ96/9A5VLq4h5pt5EhO0zsVy9S7D0FLSseswVKnRIfjahhiYLRiN9Of4Vgm81vQDduQyweFDh9yiorTerrrKcfFGuOwRKWZOdoxgjSUkRVq1c1G3jJGDmMniibSRwKBgQC6tS6EBQvwxs9mgbVvYISsN2AuPwN9mmpa9y99l5Iv+V+TjToXUJeH+j/i8pB8VrUZRS5MGE4zFCuIru9A1qIoctuMzQ2Ho/yAsTnsZd/LTVApPxLfZWMtLpFhzpoNmVwtuSUWCxZfnDZpb8Bcn3wKjVSgZaJe1z5Sm2cKV4POhQKBgE3TGL484ozMRjC1B6B5V0OWHivc9OUQw5tqBMMjfkIsiCrKbzp1cRfSKc97PRxV273kPppp/JjGiTXjiDqi46GHCtm7a/MA2GZcnDDOONXBfqBV2YSNgTfVfjsiV/zVFTwdA/COM4Eq4K7L8f7QAjGj3BtGt184CT2X7J2l8NudAoGADk6f9+HjHlo9vl8mJhjBUekUZ7bQb6mLiNj0PK2GuEJlvorN7sdwNS1KA/wOcli6m+sfNxmNtIBRLbIqB0/rMSpMBKgZ51D7omjyRVkxIwUTpXV93ryIMwgkf9gzGeOsmpxbaSsEVeNEkCPOG8rk2HIoD/p5zMa1seLSrIo0QXkCgYEAxme+IEcMPzQ/B9ZLdz5zj1W+p7FTK157CZrDlBrg2f+okf1dhItimB4uU7VPOPtH6aI21m7k0BSnuz1fGe8nf6oceMVowV7dXgjNcrPvWpYEY1Dp/w4YGeB7RpJBExUl6oOz6QOrezSBWEfCzy8TKBFFIDnahwken6aHyUTn3Rg="/>
     <NotifyUrl value="http://218.17.158.45:15105/api/Asign/HandleASignCompleted"/>
     <OpenApiUrl value="http://192.168.31.134:5015/mtp2-onlineopen"/>
   </Asign>

+ 32 - 0
config/readme.md

@@ -5,6 +5,7 @@
 开发文档:https://qian.tencent.com/developers/company/overview
 Enabled="1" 表示启用腾讯电子签功能,如不需要则改为"0"
 SecretId 和 SecretKey 是腾讯电子签密钥信息,使用公司账号登录(SaaS控制台) https://qian.tencent.com/console/ 获取 (微信扫码登录 测试环境:https://beta.qian.tencent.cn/console/)
+SecretId 和 SecretKey 实际上使用的是公司腾讯云的KEY,所以目前所有的正式环境都是一样的
 EndPoint 腾讯电子签API接入地址,测试环境填 "essbasic.test.ess.tencent.cn" ,生产环境填 "essbasic.tencentcloudapi.com"
 AppId 子客第三方应用ID,使用公司账号登录 https://qian.tencent.com/console/ 设置和获取
 创建子客通过我方接口来完成:Tencent/CreateConsoleLoginUrl (实盘环境初始化时要求使用公司法人微信扫码登录,并要求法人在控制台网站添加企业电子印章和法人章(法人章非必要)) 
@@ -13,6 +14,7 @@ ProxyOrganizationOpenId 子客企业ID,与子客企业名称一一对应,由
 ProxyOperatorOpenId 子客企业管理员ID,生产环境应要求客户使用对方身份进行认证,TJMD_ADMIN TJMD_LEGAL
 SignToken 腾讯电子签密回调通知Token,用于验签,使用公司账号登录 https://qian.tencent.com/console/ 设置和获取
 SignKey 腾讯电子签密回调通知密钥,用于解密,使用公司账号登录 https://qian.tencent.com/console/ 设置和获取
+指定回调地址样式:http://218.17.158.45:15160/api/Tencent/QianNotice
 
 ### 多元测试环境
 ```xml
@@ -59,6 +61,21 @@ SignKey 腾讯电子签密回调通知密钥,用于解密,使用公司账号
   <SignKey value="E7C6EA231F454BF1A5CF8C223D45C422"/>
 </Tencent>
 ```
+### 南海国际(海南丹农)正式环境
+```xml
+<Tencent>
+  <Enabled value="1"/>
+  <SecretId value="AKIDPktwvneP2WqxvmWFsMclmfLLKDyrbAXp"/>
+  <SecretKey value="GNH9tX8c6Wls02vhNzUvdLuGMYfeVErM"/>
+  <EndPoint value="essbasic.tencentcloudapi.com"/>
+  <AppId value="yDCWqUUg63lbs0UENeS7LSsrPRep9bLP"/>
+  <ProxyOrganizationName value="海南丹农商业管理有限公司"/>
+  <ProxyOrganizationOpenId value="NHGJ"/>
+  <ProxyOperatorOpenId value="NHGJ_LEGAL"/>
+  <SignToken value="1DB4705B05654E978D0A3108CA64BA91"/>
+  <SignKey value="4B223CB5F60146248D0A54B9974DF66A"/>
+</Tencent>
+```
 ---
 ## 爱签配置说明
 爱签官网:https://www.asign.cn
@@ -106,6 +123,21 @@ Aa123456
 
 ### 中融生产环境
 爱签正式环境 zrwyt2023@163.com 密码 Zrwyt20231101
+# 公钥
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkv6yQnFDEYlnoQZpq9RNpwLOrweWB2/QYZo8YMhmR9iXBCMLc+0IuOhi9oiZR1cz09LAf2Oa+7LLpAhT9zyCMHYztN4vkJLhB6jQM1po21+8q+PKTRQMWnwO25HLQDDnfGztwAEK850ZxQZ+a5L/xQT7YdR9/d6dIfkjXHvbOknZ7XP/xhZEHE+KkC6ouh/6a0O7TDtxwBKUVDkVVgQBqQEYPXC5pul9YOkhOmKBrK9KX4c5/3JUN8Uw75002oqX5dm5x0Z21HwvI+M6tSGHw9taEcWmOGxVmHZ6robJr9VO4xkexv1rQoe+rTc+DpWJdQx1l+PfDLw5jf/PvrVg4wIDAQAB
+
+# 私钥
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCS/rJCcUMRiWehBmmr1E2nAs6vB5YHb9BhmjxgyGZH2JcEIwtz7Qi46GL2iJlHVzPT0sB/Y5r7ssukCFP3PIIwdjO03i+QkuEHqNAzWmjbX7yr48pNFAxafA7bkctAMOd8bO3AAQrznRnFBn5rkv/FBPth1H393p0h+SNce9s6Sdntc//GFkQcT4qQLqi6H/prQ7tMO3HAEpRUORVWBAGpARg9cLmm6X1g6SE6YoGsr0pfhzn/clQ3xTDvnTTaipfl2bnHRnbUfC8j4zq1IYfD21oRxaY4bFWYdnquhsmv1U7jGR7G/WtCh76tNz4OlYl1DHWX498MvDmN/8++tWDjAgMBAAECggEAe3gEM1r/gtNvgAnq6LHDJ+1rvgkZM9Xvqovq+0BY6TA8aPUmwZDwKqDHv1ytowbUObBkkJwRqilcc8OrA5iHoj0m4V1fhohZDB34A6qFOP8Jczg6zNNyLO7XbAbiOmDZj+HPMd+uW0IySxRRS/qFa+/rVxktWviJ8+dYlG5UjngDvfVZbUHNdJWxk+cxU5YkaBKEfpJqs2sVIfFx0aQs0A+UmgAUwszmNAmtvu7y/kT0U9f1lbrze1Ndgg6S/JLjOmORFsbAgCm7NhAWG6yAMViyZ6R9dewqUwOJ214KDAeRREPp6mzvbPLbUg1imBEP5QU3YcEeCP01f3qpxukowQKBgQDJjHVxLRC/ynR3pXF/nYGY/aaNdLAKvWwQFLg/Xs1/Jes8GJ96/9A5VLq4h5pt5EhO0zsVy9S7D0FLSseswVKnRIfjahhiYLRiN9Of4Vgm81vQDduQyweFDh9yiorTerrrKcfFGuOwRKWZOdoxgjSUkRVq1c1G3jJGDmMniibSRwKBgQC6tS6EBQvwxs9mgbVvYISsN2AuPwN9mmpa9y99l5Iv+V+TjToXUJeH+j/i8pB8VrUZRS5MGE4zFCuIru9A1qIoctuMzQ2Ho/yAsTnsZd/LTVApPxLfZWMtLpFhzpoNmVwtuSUWCxZfnDZpb8Bcn3wKjVSgZaJe1z5Sm2cKV4POhQKBgE3TGL484ozMRjC1B6B5V0OWHivc9OUQw5tqBMMjfkIsiCrKbzp1cRfSKc97PRxV273kPppp/JjGiTXjiDqi46GHCtm7a/MA2GZcnDDOONXBfqBV2YSNgTfVfjsiV/zVFTwdA/COM4Eq4K7L8f7QAjGj3BtGt184CT2X7J2l8NudAoGADk6f9+HjHlo9vl8mJhjBUekUZ7bQb6mLiNj0PK2GuEJlvorN7sdwNS1KA/wOcli6m+sfNxmNtIBRLbIqB0/rMSpMBKgZ51D7omjyRVkxIwUTpXV93ryIMwgkf9gzGeOsmpxbaSsEVeNEkCPOG8rk2HIoD/p5zMa1seLSrIo0QXkCgYEAxme+IEcMPzQ/B9ZLdz5zj1W+p7FTK157CZrDlBrg2f+okf1dhItimB4uU7VPOPtH6aI21m7k0BSnuz1fGe8nf6oceMVowV7dXgjNcrPvWpYEY1Dp/w4YGeB7RpJBExUl6oOz6QOrezSBWEfCzy8TKBFFIDnahwken6aHyUTn3Rg=
+```
+实盘配置
+```xml
+<Asign>
+  <Url value="https://oapi.asign.cn"/>
+  <AppId value="964764021"/>
+  <PrivateKey value="MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCS/rJCcUMRiWehBmmr1E2nAs6vB5YHb9BhmjxgyGZH2JcEIwtz7Qi46GL2iJlHVzPT0sB/Y5r7ssukCFP3PIIwdjO03i+QkuEHqNAzWmjbX7yr48pNFAxafA7bkctAMOd8bO3AAQrznRnFBn5rkv/FBPth1H393p0h+SNce9s6Sdntc//GFkQcT4qQLqi6H/prQ7tMO3HAEpRUORVWBAGpARg9cLmm6X1g6SE6YoGsr0pfhzn/clQ3xTDvnTTaipfl2bnHRnbUfC8j4zq1IYfD21oRxaY4bFWYdnquhsmv1U7jGR7G/WtCh76tNz4OlYl1DHWX498MvDmN/8++tWDjAgMBAAECggEAe3gEM1r/gtNvgAnq6LHDJ+1rvgkZM9Xvqovq+0BY6TA8aPUmwZDwKqDHv1ytowbUObBkkJwRqilcc8OrA5iHoj0m4V1fhohZDB34A6qFOP8Jczg6zNNyLO7XbAbiOmDZj+HPMd+uW0IySxRRS/qFa+/rVxktWviJ8+dYlG5UjngDvfVZbUHNdJWxk+cxU5YkaBKEfpJqs2sVIfFx0aQs0A+UmgAUwszmNAmtvu7y/kT0U9f1lbrze1Ndgg6S/JLjOmORFsbAgCm7NhAWG6yAMViyZ6R9dewqUwOJ214KDAeRREPp6mzvbPLbUg1imBEP5QU3YcEeCP01f3qpxukowQKBgQDJjHVxLRC/ynR3pXF/nYGY/aaNdLAKvWwQFLg/Xs1/Jes8GJ96/9A5VLq4h5pt5EhO0zsVy9S7D0FLSseswVKnRIfjahhiYLRiN9Of4Vgm81vQDduQyweFDh9yiorTerrrKcfFGuOwRKWZOdoxgjSUkRVq1c1G3jJGDmMniibSRwKBgQC6tS6EBQvwxs9mgbVvYISsN2AuPwN9mmpa9y99l5Iv+V+TjToXUJeH+j/i8pB8VrUZRS5MGE4zFCuIru9A1qIoctuMzQ2Ho/yAsTnsZd/LTVApPxLfZWMtLpFhzpoNmVwtuSUWCxZfnDZpb8Bcn3wKjVSgZaJe1z5Sm2cKV4POhQKBgE3TGL484ozMRjC1B6B5V0OWHivc9OUQw5tqBMMjfkIsiCrKbzp1cRfSKc97PRxV273kPppp/JjGiTXjiDqi46GHCtm7a/MA2GZcnDDOONXBfqBV2YSNgTfVfjsiV/zVFTwdA/COM4Eq4K7L8f7QAjGj3BtGt184CT2X7J2l8NudAoGADk6f9+HjHlo9vl8mJhjBUekUZ7bQb6mLiNj0PK2GuEJlvorN7sdwNS1KA/wOcli6m+sfNxmNtIBRLbIqB0/rMSpMBKgZ51D7omjyRVkxIwUTpXV93ryIMwgkf9gzGeOsmpxbaSsEVeNEkCPOG8rk2HIoD/p5zMa1seLSrIo0QXkCgYEAxme+IEcMPzQ/B9ZLdz5zj1W+p7FTK157CZrDlBrg2f+okf1dhItimB4uU7VPOPtH6aI21m7k0BSnuz1fGe8nf6oceMVowV7dXgjNcrPvWpYEY1Dp/w4YGeB7RpJBExUl6oOz6QOrezSBWEfCzy8TKBFFIDnahwken6aHyUTn3Rg="/>
+  <NotifyUrl value="http://218.17.158.45:15105/api/Asign/HandleASignCompleted"/>
+  <OpenApiUrl value="http://192.168.31.134:5015/mtp2-onlineopen"/>
+</Asign>
 
 ### 贵茶2测试环境
 爱签测试环境地址:https://preweb.asign.cn/platform/openlogin    登陆帐号 : 155065880@qq.com   密码:Lv123456

+ 36 - 4
controllers/asign/test.go

@@ -126,13 +126,13 @@ func TestAddEnterpriseUser(c *gin.Context) {
 
 // TestGetUser 获取用户信息(测试)
 // @Summary 获取用户信息(测试)
-// @Produce     json
-// @accept      application/json
+// @Produce json
+// @accept  application/json
 // @Param   data body     asignService.APIGetUserReq true "入参"
 // @Success 200  {object} asignService.APIGetUserReq
-// @Failure     500  {object} app.Response
+// @Failure 500  {object} app.Response
 // @Router  /Asign/TestGetUser [post]
-// @Tags        爱签
+// @Tags    爱签
 func TestGetUser(c *gin.Context) {
 	appG := app.Gin{C: c}
 
@@ -187,3 +187,35 @@ func GetUserSeals(c *gin.Context) {
 
 	appG.Response(http.StatusOK, e.SUCCESS, apiRsp)
 }
+
+// GetUserSeals 上传待签署文件(测试)
+// @Summary 上传待签署文件(测试)
+// @Produce     json
+// @accept      application/json
+// @Param   data body     asignService.APICreateContractReq true "入参"
+// @Success 200  {object} asignService.APICreateContractRsp
+// @Failure     500  {object} app.Response
+// @Router  /Asign/TestCreateContract [post]
+// @Tags        爱签
+func TestCreateContract(c *gin.Context) {
+	appG := app.Gin{C: c}
+
+	// 获取请求参数
+	var req asignService.APICreateContractReq
+	if err := appG.C.ShouldBindJSON(&req); err != nil {
+		logger.GetLogger().Errorf(err.Error())
+		appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
+		return
+	}
+
+	r := asignService.APIReq[asignService.APICreateContractReq]{
+		Data: req,
+	}
+	apiRsp, err := asignService.APIPost[asignService.APICreateContractReq, asignService.APICreateContractRsp](r, asignService.APIURL_CreateContract)
+	if err != nil {
+		appG.ResponseByMsg(http.StatusBadRequest, e.ERROR, err.Error(), nil)
+		return
+	}
+
+	appG.Response(http.StatusOK, e.SUCCESS, apiRsp)
+}

+ 251 - 0
docs/docs.go

@@ -546,6 +546,45 @@ const docTemplate = `{
                 }
             }
         },
+        "/Asign/TestCreateContract": {
+            "post": {
+                "consumes": [
+                    "application/json"
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "爱签"
+                ],
+                "summary": "上传待签署文件(测试)",
+                "parameters": [
+                    {
+                        "description": "入参",
+                        "name": "data",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/asign.APICreateContractReq"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/asign.APICreateContractRsp"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/Asign/TestGetUser": {
             "post": {
                 "consumes": [
@@ -23637,6 +23676,164 @@ const docTemplate = `{
                 }
             }
         },
+        "asign.APIComponentData": {
+            "type": "object",
+            "required": [
+                "keyword",
+                "type"
+            ],
+            "properties": {
+                "defaultValue": {
+                    "description": "当填充类型为勾选(type=3)时填写: Yes:选中 Off:不选中",
+                    "type": "string"
+                },
+                "imageByte": {
+                    "description": "图片资源",
+                    "type": "array",
+                    "items": {
+                        "type": "integer"
+                    }
+                },
+                "keyword": {
+                    "description": "参数名称",
+                    "type": "string"
+                },
+                "options": {
+                    "description": "选项内容",
+                    "type": "object",
+                    "additionalProperties": true
+                },
+                "type": {
+                    "description": "组件类型: 2:单选 3:勾选 9:复选 11:图片",
+                    "type": "integer"
+                }
+            }
+        },
+        "asign.APICreateContractReq": {
+            "type": "object",
+            "required": [
+                "contractName",
+                "contractNo",
+                "signOrder"
+            ],
+            "properties": {
+                "autoContinue": {
+                    "description": "当前签署人签署完成自动跳转至下一签署人签署开关(仅对顺序签合同生效): 1 - 开启,0 - 关闭(默认)",
+                    "type": "integer"
+                },
+                "autoExpand": {
+                    "description": "多文件时,是否自动展开文件列表 1 - 展开, 0 - 不展开(默认)",
+                    "type": "integer"
+                },
+                "callbackUrl": {
+                    "description": "合同拒签或过期后(合同状态 status=3/4)回调通知地址,响应【\"ok\"】表示接收回调成功。",
+                    "type": "string"
+                },
+                "contractFiles": {
+                    "description": "合同附件(与合同模板必传其一)(支持多文件上传)",
+                    "type": "array",
+                    "items": {}
+                },
+                "contractName": {
+                    "description": "合同名称",
+                    "type": "string"
+                },
+                "contractNo": {
+                    "description": "合同ID,合同唯一编号",
+                    "type": "string"
+                },
+                "needAgree": {
+                    "description": "同意协议开关:(开启后表示必须同意协议才可签署合同) 1 - 开,0 - 关(默认)",
+                    "type": "integer"
+                },
+                "notifyUrl": {
+                    "description": "合同签署完成后(合同状态 status=2)回调通知地址,响应【\"ok\"】表示接收回调成功。",
+                    "type": "string"
+                },
+                "readSeconds": {
+                    "description": "强制阅读时间(秒)",
+                    "type": "integer"
+                },
+                "readType": {
+                    "description": "强制阅读设置 1:倒计时读秒方式 2:必须滑动到文件最底部(有多个文件务必逐个阅读) 3:必须点击打开查看(有多个文件务必逐个打开查看)【注】当readType不传值,仅readSeconds传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。当readType传值1时,readSeconds也传值时,倒计时(要求每个文件逐个阅读)。当readType传值2或3时,readSeconds也传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。",
+                    "type": "integer"
+                },
+                "redirectCompletedUrl": {
+                    "description": "合同发起页面完成后跳转url 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。",
+                    "type": "string"
+                },
+                "redirectReturnUrl": {
+                    "description": "合同发起页面返回按钮跳转url 若不为空,可以跳转业务方自己的前端页面。",
+                    "type": "string"
+                },
+                "redirectUrl": {
+                    "description": "合同签署完成后同步回调地址: redirectUrl 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。redirectUrl 为空,签署成功后,会回调小程序或app的方法。具体调用方法参考如下。",
+                    "type": "string"
+                },
+                "refuseOn": {
+                    "description": "合同签署页退回按钮开关: 1 - 开启,0 - 关闭(默认)",
+                    "type": "integer"
+                },
+                "signOrder": {
+                    "description": "签约方式 1:无序签约(默认) 2:顺序签约",
+                    "type": "integer"
+                },
+                "templates": {
+                    "description": "合同模板列表(与合同附件必传其一)",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/asign.APITemplate"
+                    }
+                },
+                "userNotifyUrl": {
+                    "description": "某个用户签署完成(用户签署状态 signStatus=2,参考 查询合同信息接口)之后回调地址,响应【\"ok\"】表示接收回调成功。",
+                    "type": "string"
+                },
+                "validityDate": {
+                    "description": "合同有效截止日期(在此日期之前可以签署合同,格式要求:yyyyMMddHHmmss),【注】与合同有效天数必传其一,【例】传值“20231207190000” 为:2023年12月07日19时00分00秒",
+                    "type": "string"
+                },
+                "validityTime": {
+                    "description": "合同签署剩余天数(系统当前时间+该天数=在此日期之前可以签署合同日期),【注】与合同有效截止日期必传其一,【例】可传剩余天数:15",
+                    "type": "integer"
+                },
+                "viewFlg": {
+                    "description": "合同签署完是否允许可以通过链接查看合同内容: 1:不允许查看 不传值:可以查看(默认)",
+                    "type": "integer"
+                }
+            }
+        },
+        "asign.APICreateContractRsp": {
+            "type": "object",
+            "properties": {
+                "contractFiles": {
+                    "description": "合同文件信息(文件名称,附件编号,页数)",
+                    "type": "array",
+                    "items": {}
+                },
+                "previewUrl": {
+                    "description": "合同预览链接(预览链接3小时内有效,过期后可通过查询合同信息接口重新获取)",
+                    "type": "string"
+                }
+            }
+        },
+        "asign.APIFillData": {
+            "type": "object",
+            "required": [
+                "dataKey",
+                "value"
+            ],
+            "properties": {
+                "dataKey": {
+                    "description": "参数名称",
+                    "type": "string"
+                },
+                "value": {
+                    "description": "填充值",
+                    "type": "string"
+                }
+            }
+        },
         "asign.APIGetUserReq": {
             "type": "object",
             "properties": {
@@ -23723,6 +23920,60 @@ const docTemplate = `{
                 }
             }
         },
+        "asign.APITemplate": {
+            "type": "object",
+            "required": [
+                "templateNo"
+            ],
+            "properties": {
+                "componentData": {
+                    "description": "单选、复选、勾选、图片类型参数填充",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/asign.APIComponentData"
+                    }
+                },
+                "contractNo": {
+                    "description": "合同编号(此处可传已完成签署的合同编号,实现追加签章的场景)",
+                    "type": "string"
+                },
+                "fillData": {
+                    "description": "单行文本、多行文本、日期、身份证类型参数填充。",
+                    "$ref": "#/definitions/asign.APIFillData"
+                },
+                "tableDatas": {
+                    "description": "表格填充数据",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/asign.APItableData"
+                    }
+                },
+                "templateNo": {
+                    "description": "合同模板编号",
+                    "type": "string"
+                }
+            }
+        },
+        "asign.APItableData": {
+            "type": "object",
+            "required": [
+                "keyword"
+            ],
+            "properties": {
+                "keyword": {
+                    "description": "表名称",
+                    "type": "string"
+                },
+                "rowValues": {
+                    "description": "表格填充值",
+                    "type": "array",
+                    "items": {
+                        "type": "object",
+                        "additionalProperties": true
+                    }
+                }
+            }
+        },
         "asign.BankCard4Req": {
             "type": "object",
             "required": [

+ 251 - 0
docs/swagger.json

@@ -537,6 +537,45 @@
                 }
             }
         },
+        "/Asign/TestCreateContract": {
+            "post": {
+                "consumes": [
+                    "application/json"
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "爱签"
+                ],
+                "summary": "上传待签署文件(测试)",
+                "parameters": [
+                    {
+                        "description": "入参",
+                        "name": "data",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/asign.APICreateContractReq"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/asign.APICreateContractRsp"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/Asign/TestGetUser": {
             "post": {
                 "consumes": [
@@ -23628,6 +23667,164 @@
                 }
             }
         },
+        "asign.APIComponentData": {
+            "type": "object",
+            "required": [
+                "keyword",
+                "type"
+            ],
+            "properties": {
+                "defaultValue": {
+                    "description": "当填充类型为勾选(type=3)时填写: Yes:选中 Off:不选中",
+                    "type": "string"
+                },
+                "imageByte": {
+                    "description": "图片资源",
+                    "type": "array",
+                    "items": {
+                        "type": "integer"
+                    }
+                },
+                "keyword": {
+                    "description": "参数名称",
+                    "type": "string"
+                },
+                "options": {
+                    "description": "选项内容",
+                    "type": "object",
+                    "additionalProperties": true
+                },
+                "type": {
+                    "description": "组件类型: 2:单选 3:勾选 9:复选 11:图片",
+                    "type": "integer"
+                }
+            }
+        },
+        "asign.APICreateContractReq": {
+            "type": "object",
+            "required": [
+                "contractName",
+                "contractNo",
+                "signOrder"
+            ],
+            "properties": {
+                "autoContinue": {
+                    "description": "当前签署人签署完成自动跳转至下一签署人签署开关(仅对顺序签合同生效): 1 - 开启,0 - 关闭(默认)",
+                    "type": "integer"
+                },
+                "autoExpand": {
+                    "description": "多文件时,是否自动展开文件列表 1 - 展开, 0 - 不展开(默认)",
+                    "type": "integer"
+                },
+                "callbackUrl": {
+                    "description": "合同拒签或过期后(合同状态 status=3/4)回调通知地址,响应【\"ok\"】表示接收回调成功。",
+                    "type": "string"
+                },
+                "contractFiles": {
+                    "description": "合同附件(与合同模板必传其一)(支持多文件上传)",
+                    "type": "array",
+                    "items": {}
+                },
+                "contractName": {
+                    "description": "合同名称",
+                    "type": "string"
+                },
+                "contractNo": {
+                    "description": "合同ID,合同唯一编号",
+                    "type": "string"
+                },
+                "needAgree": {
+                    "description": "同意协议开关:(开启后表示必须同意协议才可签署合同) 1 - 开,0 - 关(默认)",
+                    "type": "integer"
+                },
+                "notifyUrl": {
+                    "description": "合同签署完成后(合同状态 status=2)回调通知地址,响应【\"ok\"】表示接收回调成功。",
+                    "type": "string"
+                },
+                "readSeconds": {
+                    "description": "强制阅读时间(秒)",
+                    "type": "integer"
+                },
+                "readType": {
+                    "description": "强制阅读设置 1:倒计时读秒方式 2:必须滑动到文件最底部(有多个文件务必逐个阅读) 3:必须点击打开查看(有多个文件务必逐个打开查看)【注】当readType不传值,仅readSeconds传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。当readType传值1时,readSeconds也传值时,倒计时(要求每个文件逐个阅读)。当readType传值2或3时,readSeconds也传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。",
+                    "type": "integer"
+                },
+                "redirectCompletedUrl": {
+                    "description": "合同发起页面完成后跳转url 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。",
+                    "type": "string"
+                },
+                "redirectReturnUrl": {
+                    "description": "合同发起页面返回按钮跳转url 若不为空,可以跳转业务方自己的前端页面。",
+                    "type": "string"
+                },
+                "redirectUrl": {
+                    "description": "合同签署完成后同步回调地址: redirectUrl 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。redirectUrl 为空,签署成功后,会回调小程序或app的方法。具体调用方法参考如下。",
+                    "type": "string"
+                },
+                "refuseOn": {
+                    "description": "合同签署页退回按钮开关: 1 - 开启,0 - 关闭(默认)",
+                    "type": "integer"
+                },
+                "signOrder": {
+                    "description": "签约方式 1:无序签约(默认) 2:顺序签约",
+                    "type": "integer"
+                },
+                "templates": {
+                    "description": "合同模板列表(与合同附件必传其一)",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/asign.APITemplate"
+                    }
+                },
+                "userNotifyUrl": {
+                    "description": "某个用户签署完成(用户签署状态 signStatus=2,参考 查询合同信息接口)之后回调地址,响应【\"ok\"】表示接收回调成功。",
+                    "type": "string"
+                },
+                "validityDate": {
+                    "description": "合同有效截止日期(在此日期之前可以签署合同,格式要求:yyyyMMddHHmmss),【注】与合同有效天数必传其一,【例】传值“20231207190000” 为:2023年12月07日19时00分00秒",
+                    "type": "string"
+                },
+                "validityTime": {
+                    "description": "合同签署剩余天数(系统当前时间+该天数=在此日期之前可以签署合同日期),【注】与合同有效截止日期必传其一,【例】可传剩余天数:15",
+                    "type": "integer"
+                },
+                "viewFlg": {
+                    "description": "合同签署完是否允许可以通过链接查看合同内容: 1:不允许查看 不传值:可以查看(默认)",
+                    "type": "integer"
+                }
+            }
+        },
+        "asign.APICreateContractRsp": {
+            "type": "object",
+            "properties": {
+                "contractFiles": {
+                    "description": "合同文件信息(文件名称,附件编号,页数)",
+                    "type": "array",
+                    "items": {}
+                },
+                "previewUrl": {
+                    "description": "合同预览链接(预览链接3小时内有效,过期后可通过查询合同信息接口重新获取)",
+                    "type": "string"
+                }
+            }
+        },
+        "asign.APIFillData": {
+            "type": "object",
+            "required": [
+                "dataKey",
+                "value"
+            ],
+            "properties": {
+                "dataKey": {
+                    "description": "参数名称",
+                    "type": "string"
+                },
+                "value": {
+                    "description": "填充值",
+                    "type": "string"
+                }
+            }
+        },
         "asign.APIGetUserReq": {
             "type": "object",
             "properties": {
@@ -23714,6 +23911,60 @@
                 }
             }
         },
+        "asign.APITemplate": {
+            "type": "object",
+            "required": [
+                "templateNo"
+            ],
+            "properties": {
+                "componentData": {
+                    "description": "单选、复选、勾选、图片类型参数填充",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/asign.APIComponentData"
+                    }
+                },
+                "contractNo": {
+                    "description": "合同编号(此处可传已完成签署的合同编号,实现追加签章的场景)",
+                    "type": "string"
+                },
+                "fillData": {
+                    "description": "单行文本、多行文本、日期、身份证类型参数填充。",
+                    "$ref": "#/definitions/asign.APIFillData"
+                },
+                "tableDatas": {
+                    "description": "表格填充数据",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/asign.APItableData"
+                    }
+                },
+                "templateNo": {
+                    "description": "合同模板编号",
+                    "type": "string"
+                }
+            }
+        },
+        "asign.APItableData": {
+            "type": "object",
+            "required": [
+                "keyword"
+            ],
+            "properties": {
+                "keyword": {
+                    "description": "表名称",
+                    "type": "string"
+                },
+                "rowValues": {
+                    "description": "表格填充值",
+                    "type": "array",
+                    "items": {
+                        "type": "object",
+                        "additionalProperties": true
+                    }
+                }
+            }
+        },
         "asign.BankCard4Req": {
             "type": "object",
             "required": [

+ 181 - 0
docs/swagger.yaml

@@ -143,6 +143,124 @@ definitions:
     - mobile
     - realName
     type: object
+  asign.APIComponentData:
+    properties:
+      defaultValue:
+        description: 当填充类型为勾选(type=3)时填写: Yes:选中 Off:不选中
+        type: string
+      imageByte:
+        description: 图片资源
+        items:
+          type: integer
+        type: array
+      keyword:
+        description: 参数名称
+        type: string
+      options:
+        additionalProperties: true
+        description: 选项内容
+        type: object
+      type:
+        description: 组件类型: 2:单选 3:勾选 9:复选 11:图片
+        type: integer
+    required:
+    - keyword
+    - type
+    type: object
+  asign.APICreateContractReq:
+    properties:
+      autoContinue:
+        description: '当前签署人签署完成自动跳转至下一签署人签署开关(仅对顺序签合同生效): 1 - 开启,0 - 关闭(默认)'
+        type: integer
+      autoExpand:
+        description: 多文件时,是否自动展开文件列表 1 - 展开, 0 - 不展开(默认)
+        type: integer
+      callbackUrl:
+        description: 合同拒签或过期后(合同状态 status=3/4)回调通知地址,响应【"ok"】表示接收回调成功。
+        type: string
+      contractFiles:
+        description: 合同附件(与合同模板必传其一)(支持多文件上传)
+        items: {}
+        type: array
+      contractName:
+        description: 合同名称
+        type: string
+      contractNo:
+        description: 合同ID,合同唯一编号
+        type: string
+      needAgree:
+        description: 同意协议开关:(开启后表示必须同意协议才可签署合同) 1 - 开,0 - 关(默认)
+        type: integer
+      notifyUrl:
+        description: 合同签署完成后(合同状态 status=2)回调通知地址,响应【"ok"】表示接收回调成功。
+        type: string
+      readSeconds:
+        description: 强制阅读时间(秒)
+        type: integer
+      readType:
+        description: 强制阅读设置 1:倒计时读秒方式 2:必须滑动到文件最底部(有多个文件务必逐个阅读) 3:必须点击打开查看(有多个文件务必逐个打开查看)【注】当readType不传值,仅readSeconds传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。当readType传值1时,readSeconds也传值时,倒计时(要求每个文件逐个阅读)。当readType传值2或3时,readSeconds也传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。
+        type: integer
+      redirectCompletedUrl:
+        description: 合同发起页面完成后跳转url 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。
+        type: string
+      redirectReturnUrl:
+        description: 合同发起页面返回按钮跳转url 若不为空,可以跳转业务方自己的前端页面。
+        type: string
+      redirectUrl:
+        description: 合同签署完成后同步回调地址: redirectUrl 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。redirectUrl
+          为空,签署成功后,会回调小程序或app的方法。具体调用方法参考如下。
+        type: string
+      refuseOn:
+        description: 合同签署页退回按钮开关: 1 - 开启,0 - 关闭(默认)
+        type: integer
+      signOrder:
+        description: 签约方式 1:无序签约(默认) 2:顺序签约
+        type: integer
+      templates:
+        description: 合同模板列表(与合同附件必传其一)
+        items:
+          $ref: '#/definitions/asign.APITemplate'
+        type: array
+      userNotifyUrl:
+        description: 某个用户签署完成(用户签署状态 signStatus=2,参考 查询合同信息接口)之后回调地址,响应【"ok"】表示接收回调成功。
+        type: string
+      validityDate:
+        description: 合同有效截止日期(在此日期之前可以签署合同,格式要求:yyyyMMddHHmmss),【注】与合同有效天数必传其一,【例】传值“20231207190000”
+          为:2023年12月07日19时00分00秒
+        type: string
+      validityTime:
+        description: 合同签署剩余天数(系统当前时间+该天数=在此日期之前可以签署合同日期),【注】与合同有效截止日期必传其一,【例】可传剩余天数:15
+        type: integer
+      viewFlg:
+        description: '合同签署完是否允许可以通过链接查看合同内容: 1:不允许查看 不传值:可以查看(默认)'
+        type: integer
+    required:
+    - contractName
+    - contractNo
+    - signOrder
+    type: object
+  asign.APICreateContractRsp:
+    properties:
+      contractFiles:
+        description: 合同文件信息(文件名称,附件编号,页数)
+        items: {}
+        type: array
+      previewUrl:
+        description: 合同预览链接(预览链接3小时内有效,过期后可通过查询合同信息接口重新获取)
+        type: string
+    type: object
+  asign.APIFillData:
+    properties:
+      dataKey:
+        description: 参数名称
+        type: string
+      value:
+        description: 填充值
+        type: string
+    required:
+    - dataKey
+    - value
+    type: object
   asign.APIGetUserReq:
     properties:
       account:
@@ -204,6 +322,44 @@ definitions:
         description: 印章图片访问地址(当印章还在做成中时,此值为空)
         type: string
     type: object
+  asign.APITemplate:
+    properties:
+      componentData:
+        description: 单选、复选、勾选、图片类型参数填充
+        items:
+          $ref: '#/definitions/asign.APIComponentData'
+        type: array
+      contractNo:
+        description: 合同编号(此处可传已完成签署的合同编号,实现追加签章的场景)
+        type: string
+      fillData:
+        $ref: '#/definitions/asign.APIFillData'
+        description: 单行文本、多行文本、日期、身份证类型参数填充。
+      tableDatas:
+        description: 表格填充数据
+        items:
+          $ref: '#/definitions/asign.APItableData'
+        type: array
+      templateNo:
+        description: 合同模板编号
+        type: string
+    required:
+    - templateNo
+    type: object
+  asign.APItableData:
+    properties:
+      keyword:
+        description: 表名称
+        type: string
+      rowValues:
+        description: 表格填充值
+        items:
+          additionalProperties: true
+          type: object
+        type: array
+    required:
+    - keyword
+    type: object
   asign.BankCard4Req:
     properties:
       company:
@@ -31591,6 +31747,31 @@ paths:
       summary: 认证验证码校验(测试)
       tags:
       - 爱签
+  /Asign/TestCreateContract:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 入参
+        in: body
+        name: data
+        required: true
+        schema:
+          $ref: '#/definitions/asign.APICreateContractReq'
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/asign.APICreateContractRsp'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/app.Response'
+      summary: 上传待签署文件(测试)
+      tags:
+      - 爱签
   /Asign/TestGetUser:
     post:
       consumes:

+ 1 - 0
routers/router.go

@@ -862,6 +862,7 @@ func InitRouter() *gin.Engine {
 		asignR.Use().POST("TestGetUser", asign.TestGetUser)
 		asignR.Use().POST("CreateSeal", asign.CreateSeal)
 		asignR.Use().POST("GetUserSeals", asign.GetUserSeals)
+		asignR.Use().POST("TestCreateContract", asign.TestCreateContract)
 
 		asignR.Use(token.Auth()).POST("BankCard4", asign.BankCard4)
 		asignR.Use(token.Auth()).POST("CaptcaResend", asign.CaptcaResend)

+ 2 - 2
services/asign/apiModels.go

@@ -368,8 +368,8 @@ type APIModifySealReq struct {
 
 // APIGetUserSealsReq 查询印章入参
 type APIGetUserSealsReq struct {
-	Account string `json:"account" binding:"required"` // 用户唯一识别码
-	SealNo  string `json:"sealNo"`                     // 印章编号(不传则返回印章列表)
+	Account string `json:"account" structs:"account" binding:"required"` // 用户唯一识别码
+	SealNo  string `json:"sealNo" structs:"sealNo,omitempty"`            // 印章编号(不传则返回印章列表)
 }
 
 // APISealInfo 印章信息

+ 1 - 1
services/asign/templates/中融/MTP2.0_db_init_R0041_054_00811_01.sql

@@ -12,7 +12,7 @@ values (2, 1, '', 2, '客户交易须知', 2, 1, sysdate, sysdate);
 insert into esigntemplatefield (TEMPLATEFIELDID, TEMPLATECONFIGID, FIELDNAME, FIELDKEY, FIELDTYPE, REMARK, CREATETIME, FIELDUSERTYPE)
 values ('1', '2', '甲方签章(企业印章)', 'PARTYA_SIGNATURE', '3', null, sysdate, '2');
 insert into esigntemplatefield (TEMPLATEFIELDID, TEMPLATECONFIGID, FIELDNAME, FIELDKEY, FIELDTYPE, REMARK, CREATETIME, FIELDUSERTYPE)
-values ('2', '2', '甲方签署时间', 'PARTYA_SIGNATURE', '3', null, sysdate, '2');
+values ('2', '2', '甲方签署时间', 'PARTYA_DATE', '3', null, sysdate, '2');
 insert into esigntemplatefield (TEMPLATEFIELDID, TEMPLATECONFIGID, FIELDNAME, FIELDKEY, FIELDTYPE, REMARK, CREATETIME, FIELDUSERTYPE)
 values ('3', '2', '乙方签章(个人)', 'P_PARTYB_SIGNATURE', '3', null, sysdate, '1');
 insert into esigntemplatefield (TEMPLATEFIELDID, TEMPLATECONFIGID, FIELDNAME, FIELDKEY, FIELDTYPE, REMARK, CREATETIME, FIELDUSERTYPE)