142 lines
3.5 KiB
Go
142 lines
3.5 KiB
Go
package controller
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"hospital-admin-api/api/requests"
|
|
"hospital-admin-api/api/responses"
|
|
cav2 "hospital-admin-api/extend/ca_v2"
|
|
"hospital-admin-api/global"
|
|
"hospital-admin-api/utils"
|
|
)
|
|
|
|
type CaV2 struct{}
|
|
|
|
// GetServiceURL 获取云证书生命周期管理界面链接地址
|
|
func (r *CaV2) GetServiceURL(c *gin.Context) {
|
|
caRequest := requests.CaV2Request{}
|
|
req := caRequest.GetServiceURL
|
|
if err := c.ShouldBind(&req); err != nil {
|
|
responses.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
if err := global.Validate.Struct(req); err != nil {
|
|
responses.FailWithMessage(utils.Translate(err), c)
|
|
return
|
|
}
|
|
|
|
if msg := req.ValidateBusinessFields(); msg != "" {
|
|
responses.FailWithMessage(msg, c)
|
|
return
|
|
}
|
|
|
|
client := cav2.NewClientFromConfig()
|
|
result, err := client.GetServiceURL(cav2.GetServiceURLRequest{
|
|
CertType: req.CertType,
|
|
Type: req.Type,
|
|
EntityID: req.EntityID,
|
|
UserName: req.UserName,
|
|
UserIDCard: req.UserIDCard,
|
|
UserPhone: req.UserPhone,
|
|
Email: req.Email,
|
|
EnterpriseName: req.EnterpriseName,
|
|
SocialCreditCode: req.SocialCreditCode,
|
|
DeptPerson: req.DeptPerson,
|
|
DeptPersonCode: req.DeptPersonCode,
|
|
DeptPersonPhone: req.DeptPersonPhone,
|
|
AgentName: req.AgentName,
|
|
AgentIDCard: req.AgentIDCard,
|
|
AuthMethod: req.AuthMethod,
|
|
})
|
|
if err != nil {
|
|
responses.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
responses.OkWithData(result, c)
|
|
}
|
|
|
|
// CertSign 云证书签名
|
|
func (r *CaV2) CertSign(c *gin.Context) {
|
|
caRequest := requests.CaV2Request{}
|
|
req := caRequest.CertSign
|
|
if err := c.ShouldBind(&req); err != nil {
|
|
responses.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
if err := global.Validate.Struct(req); err != nil {
|
|
responses.FailWithMessage(utils.Translate(err), c)
|
|
return
|
|
}
|
|
|
|
client := cav2.NewClientFromConfig()
|
|
result, err := client.CertSign(cav2.CertSignRequest{
|
|
EntityID: req.EntityID,
|
|
RequestID: req.RequestID,
|
|
BusinessType: req.BusinessType,
|
|
ToSign: req.ToSign,
|
|
NotifyURL: req.NotifyURL,
|
|
JumpURL: req.JumpURL,
|
|
ExtParam: req.ExtParam,
|
|
})
|
|
if err != nil {
|
|
responses.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
responses.OkWithData(result, c)
|
|
}
|
|
|
|
// GetCertSignResult 获取云证书签名结果
|
|
func (r *CaV2) GetCertSignResult(c *gin.Context) {
|
|
caRequest := requests.CaV2Request{}
|
|
req := caRequest.GetCertSignResult
|
|
if err := c.ShouldBind(&req); err != nil {
|
|
responses.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
if err := global.Validate.Struct(req); err != nil {
|
|
responses.FailWithMessage(utils.Translate(err), c)
|
|
return
|
|
}
|
|
|
|
client := cav2.NewClientFromConfig()
|
|
result, err := client.GetCertSignResult(cav2.GetCertSignResultRequest{
|
|
RequestID: req.RequestID,
|
|
})
|
|
if err != nil {
|
|
responses.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
responses.OkWithData(result, c)
|
|
}
|
|
|
|
// PasswordLessSignInfo 云证书免密签署状态查询
|
|
func (r *CaV2) PasswordLessSignInfo(c *gin.Context) {
|
|
caRequest := requests.CaV2Request{}
|
|
req := caRequest.PasswordLessSignInfo
|
|
if err := c.ShouldBind(&req); err != nil {
|
|
responses.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
if err := global.Validate.Struct(req); err != nil {
|
|
responses.FailWithMessage(utils.Translate(err), c)
|
|
return
|
|
}
|
|
|
|
client := cav2.NewClientFromConfig()
|
|
result, err := client.PasswordLessSignInfo(cav2.PasswordLessSignInfoRequest{
|
|
EntityID: req.EntityID,
|
|
})
|
|
if err != nil {
|
|
responses.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
responses.OkWithData(result, c)
|
|
}
|