Bläddra i källkod

Revert "退回原电子签功能"

This reverts commit e122ef0d09ae3793b74cd4a3530e8980f6d54e59.
zhou.xiaoning 2 år sedan
förälder
incheckning
7f12db58d7

+ 9 - 27
controllers/tencent/qian.go

@@ -8,6 +8,7 @@ import (
 	"mtp2_if/logger"
 	"mtp2_if/models"
 	"mtp2_if/services/tencent"
+	"mtp2_if/utils"
 	"net/http"
 	"strconv"
 
@@ -93,14 +94,6 @@ func QianNotice(c *gin.Context) {
 	appG.Response(http.StatusOK, e.SUCCESS, "ok")
 }
 
-type CreateConsoleLoginUrlReq struct {
-	AreaUserId int `form:"areaUserId" binding:"required"` // 机构ID
-}
-
-type CreateConsoleLoginUrlRsp struct {
-	ConsoleUrl string `json:"consoleUrl"` // 电子签控制台登录链接
-}
-
 // CreateConsoleLoginUrl 创建电子签控制台登录链接
 // @Summary  创建电子签控制台登录链接
 // @Produce  json
@@ -113,20 +106,11 @@ type CreateConsoleLoginUrlRsp struct {
 func CreateConsoleLoginUrl(c *gin.Context) {
 	appG := app.Gin{C: c}
 
-	// 获取请求参数
-	var req CreateConsoleLoginUrlReq
-	if err := appG.C.ShouldBindQuery(&req); err != nil {
-		logger.GetLogger().Errorf("CreateConsoleLoginUrl failed: %s", err.Error())
-		appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
-		return
-	}
+	agent := utils.SetAgent()
+	proxyOrganizationName := "天津麦顿"
+	response, _ := tencent.CreateConsoleLoginUrl(agent, proxyOrganizationName)
 
-	if response, err := tencent.CreateConsoleLoginUrl(req.AreaUserId); err != nil {
-		unquotedStr, _ := strconv.Unquote(response.ToJsonString())
-		appG.Response(http.StatusOK, e.SUCCESS, CreateConsoleLoginUrlRsp{ConsoleUrl: unquotedStr})
-	} else {
-		appG.ResponseByMsg(http.StatusBadRequest, e.ERROR, err.Error(), nil)
-	}
+	appG.Response(http.StatusOK, e.SUCCESS, response.ToJsonString())
 }
 
 type InitTencentESSReq struct {
@@ -235,12 +219,12 @@ func CreateFlowByTemplateDirectly(c *gin.Context) {
 	}
 
 	// 构建电子签平台合同模板名称
-	// 格式:合同模板名称_类型标志;例如 "风险提示书_P",个人为P企业为E
+	// 格式:所属会员ID_类型标志_合同模板名称;例如 "1000_P_风险提示书",个人为P企业为A
 	flag := "P"
 	if req.UserType == 2 {
-		flag = "E"
+		flag = "A"
 	}
-	tmplateName := fmt.Sprintf("%s_%s", record.TEMPLATENAME, flag)
+	tmplateName := fmt.Sprintf("%s_%s_%s", strconv.Itoa(int(record.AREAUSERID)), flag, record.TEMPLATENAME)
 
 	personName := ""
 	personMobile := ""
@@ -267,7 +251,6 @@ func CreateFlowByTemplateDirectly(c *gin.Context) {
 
 type GetFlowStatusReq struct {
 	ContractNo string `form:"contractno" binding:"required"` // 合同编号
-	AreaUserId int    `form:"areaUserId" binding:"required"` // 机构ID
 }
 
 // GetFlowStatus 获取合同状态
@@ -276,7 +259,6 @@ type GetFlowStatusReq struct {
 // @Security ApiKeyAuth
 // @accept  application/json
 // @Param    contractno query    string true "合同编号"
-// @Param    areaUserId query    int true "机构ID"
 // @Success  200        {object} int    "记录状态 - 1:未签署 2:签署中 3:已签署 4:签署拒绝"
 // @Failure  500        {object} app.Response
 // @Router   /Tencent/GetFlowStatus [get]
@@ -292,7 +274,7 @@ func GetFlowStatus(c *gin.Context) {
 		return
 	}
 
-	if recordStatus, err := tencent.GetFlowStatus(req.ContractNo, req.AreaUserId); err == nil {
+	if recordStatus, err := tencent.GetFlowStatus(req.ContractNo); err == nil {
 		appG.Response(http.StatusOK, e.SUCCESS, recordStatus)
 	} else {
 		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)

+ 0 - 11
models/account.go

@@ -9,8 +9,6 @@ import (
 	"mtp2_if/utils"
 	"strconv"
 	"time"
-
-	"github.com/xormplus/xorm"
 )
 
 // Loginaccount 登录账户表
@@ -723,15 +721,6 @@ func GetUserInfo(userID int) (*Userinfo, error) {
 	return &userInfo, nil
 }
 
-func GetUserInfoByID(userId int) (userinfo *Userinfo, err error) {
-	has, err := db.GetEngine().Table("userinfo").Where("userid = ?", userId).Get(userinfo)
-	if !has {
-		err = xorm.ErrNotExist
-	}
-
-	return
-}
-
 // GetUserInfoByLoginID 通过登录账号获取用户信息的方法
 func GetUserInfoByLoginID(loginID int) (*Userinfo, error) {
 	engine := db.GetEngine()

+ 9 - 23
services/tencent/ess.go

@@ -8,7 +8,6 @@ import (
 	"encoding/base64"
 	"encoding/hex"
 	"encoding/json"
-	"errors"
 	"fmt"
 	"mtp2_if/config"
 	"mtp2_if/db"
@@ -16,25 +15,12 @@ import (
 	"mtp2_if/models"
 	"mtp2_if/services/tencent/essapi"
 	"mtp2_if/utils"
-	"strconv"
-	"strings"
 
 	essbasic "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/essbasic/v20210526"
 )
 
-func CreateConsoleLoginUrl(areaUserId int) (response *essbasic.CreateConsoleLoginUrlResponse, err error) {
-	// 获取机构信息
-	userinfo, err := models.GetUserInfoByID(areaUserId)
-	if err != nil {
-		err = errors.New("获取机构信息失败")
-		return
-	}
-	if strings.Trim(userinfo.Customername, " ") == "" {
-		err = errors.New("机构信息异常")
-		return
-	}
-
-	response, err = essapi.CreateConsoleLoginUrl(strconv.Itoa(int(userinfo.Userid)), userinfo.Customername)
+func CreateConsoleLoginUrl(agent *essbasic.Agent, proxyOrganizationName string) (response *essbasic.CreateConsoleLoginUrlResponse, err error) {
+	response, err = essapi.CreateConsoleLoginUrl(agent, proxyOrganizationName)
 	// 输出json格式的字符串回包
 	fmt.Printf("%s", response.ToJsonString())
 
@@ -79,7 +65,7 @@ func CreateFlowByTemplateDirectly(tmplateName string, userType int,
 	record *models.Useresignrecord) (flowId, signUrl string, err error) {
 
 	// 获取模板信息
-	templateInfo, err := getTemplateInfo(&tmplateName, strconv.Itoa(int(record.AREAUSERID)))
+	templateInfo, err := getTemplateInfo(&tmplateName)
 	if err != nil {
 		return
 	}
@@ -106,7 +92,7 @@ func CreateFlowByTemplateDirectly(tmplateName string, userType int,
 	}
 
 	// 发起合同
-	resp, err := essapi.CreateFlowByTemplateDirectly(*templateInfo.TemplateName, *templateInfo.TemplateId, flowApproverInfos, strconv.Itoa(int(record.AREAUSERID)))
+	resp, err := essapi.CreateFlowByTemplateDirectly(*templateInfo.TemplateName, *templateInfo.TemplateId, flowApproverInfos)
 	if err != nil {
 		return
 	}
@@ -130,8 +116,9 @@ func CreateFlowByTemplateDirectly(tmplateName string, userType int,
 }
 
 // GetFlowStatus 获取合同状态
-func GetFlowStatus(flowId string, areaUserId int) (recordStatus int, err error) {
-	response, err := essapi.DescribeFlowDetailInfo([]*string{&flowId}, strconv.Itoa(areaUserId))
+func GetFlowStatus(flowId string) (recordStatus int, err error) {
+	agent := utils.SetAgent()
+	response, err := essapi.DescribeFlowDetailInfo(agent, []*string{&flowId})
 	if err == nil {
 		if len(response.Response.FlowInfo) == 0 {
 			err = fmt.Errorf("获取合同明细失败")
@@ -222,9 +209,8 @@ func UpdateMdUserSwapProtocol(flowId string) (err error) {
 }
 
 // getTemplateInfo 获取模板信息
-func getTemplateInfo(contractName *string, proxyOrganizationOpenId string) (templateInfo *essbasic.TemplateInfo, err error) {
-	agent := utils.SetAgent(proxyOrganizationOpenId)
-
+func getTemplateInfo(contractName *string) (templateInfo *essbasic.TemplateInfo, err error) {
+	agent := utils.SetAgent()
 	templatesResp, err := essapi.DescribeTemplates(agent, contractName)
 	if err == nil {
 		if len(templatesResp.Response.Templates) > 0 {

+ 1 - 3
services/tencent/essapi/CreateConsoleLoginUrl.go

@@ -9,15 +9,13 @@ import (
 	essbasic "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/essbasic/v20210526"
 )
 
-func CreateConsoleLoginUrl(proxyOrganizationOpenId, proxyOrganizationName string) (response *essbasic.CreateConsoleLoginUrlResponse, err error) {
+func CreateConsoleLoginUrl(agent *essbasic.Agent, proxyOrganizationName string) (response *essbasic.CreateConsoleLoginUrlResponse, err error) {
 	if utils.TencentESSClient == nil {
 		err = fmt.Errorf("腾讯电子签客户端未初始化")
 		logger.GetLogger().Errorf("CreateConsoleLoginUrl failed: %s", err.Error())
 		return
 	}
 
-	agent := utils.SetAgent(proxyOrganizationOpenId)
-
 	// 实例化一个请求对象,每个接口都会对应一个request对象
 	request := essbasic.NewCreateConsoleLoginUrlRequest()
 	request.Agent = agent

+ 2 - 3
services/tencent/essapi/CreateFlowByTemplateDirectly.go

@@ -9,11 +9,10 @@ import (
 // CreateFlowByTemplateDirectly 通过合同名和模板Id直接发起签署流程
 // 本接口是对于发起合同几个接口的封装,详细参数需要根据自身业务进行调整
 // CreateFlowsByTemplates--CreateSignUrls
-func CreateFlowByTemplateDirectly(flowName, templateId string, flowApproverInfos []*essbasic.FlowApproverInfo, proxyOrganizationOpenId string) (resp map[string][]*string, err error) {
+func CreateFlowByTemplateDirectly(flowName, templateId string, flowApproverInfos []*essbasic.FlowApproverInfo) (resp map[string][]*string, err error) {
+	agent := utils.SetAgent()
 	resp = make(map[string][]*string)
 
-	agent := utils.SetAgent(proxyOrganizationOpenId)
-
 	// 创建签署流程
 	var flowInfos []*essbasic.FlowInfo
 	flowInfos = append(flowInfos, utils.FillFlowInfo(templateId, flowName, flowApproverInfos))

+ 2 - 2
services/tencent/essapi/DescribeFlowDetailInfo.go

@@ -9,11 +9,11 @@ import (
 	essbasic "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/essbasic/v20210526"
 )
 
-func DescribeFlowDetailInfo(flowIds []*string, proxyOrganizationOpenId string) (response *essbasic.DescribeFlowDetailInfoResponse, err error) {
+func DescribeFlowDetailInfo(agent *essbasic.Agent, flowIds []*string) (response *essbasic.DescribeFlowDetailInfoResponse, err error) {
 	// 实例化一个请求对象,每个接口都会对应一个request对象
 	request := essbasic.NewDescribeFlowDetailInfoRequest()
 
-	request.Agent = utils.SetAgent(proxyOrganizationOpenId)
+	request.Agent = agent
 
 	request.FlowIds = flowIds
 

+ 3 - 8
utils/CreateFlowUtils.go

@@ -2,7 +2,6 @@ package utils
 
 import (
 	"encoding/base64"
-	"fmt"
 	SysConfig "mtp2_if/config"
 	"os"
 
@@ -37,15 +36,11 @@ func InitTencentESSClient() (err error) {
 }
 
 // SetAgent 设置Agent
-func SetAgent(proxyOrganizationOpenId string) *essbasic.Agent {
+func SetAgent() *essbasic.Agent {
 	appId := SysConfig.SerCfg.TencentCfg.AppId
 	proxyAppId := ""
-	// proxyOrganizationOpenId := SysConfig.SerCfg.TencentCfg.ProxyOrganizationOpenId
-	// proxyOperatorOpenId := SysConfig.SerCfg.TencentCfg.ProxyOperatorOpenId
-
-	// 子客的管理员ID默认为 USERID_ADMIN,例如 1000_ADMIN
-	proxyOperatorOpenId := fmt.Sprintf("%s_ADMIN", proxyOrganizationOpenId)
-
+	proxyOrganizationOpenId := SysConfig.SerCfg.TencentCfg.ProxyOrganizationOpenId
+	proxyOperatorOpenId := SysConfig.SerCfg.TencentCfg.ProxyOperatorOpenId
 	userInfo := &essbasic.UserInfo{}
 	userInfo.OpenId = &proxyOperatorOpenId
 	var agent = &essbasic.Agent{