新增添加用户签章配置
This commit is contained in:
parent
c3591615f9
commit
6438942e18
@ -2,9 +2,11 @@ package controller
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
"hospital-admin-api/api/requests"
|
||||||
"hospital-admin-api/api/responses"
|
"hospital-admin-api/api/responses"
|
||||||
"hospital-admin-api/api/service"
|
"hospital-admin-api/api/service"
|
||||||
"hospital-admin-api/global"
|
"hospital-admin-api/global"
|
||||||
|
"hospital-admin-api/utils"
|
||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -116,36 +118,36 @@ func (r *UserCaCert) RemoveUserCloudCert(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// AddUserSignConfig 添加用户签章配置
|
// AddUserSignConfig 添加用户签章配置
|
||||||
// func (r *UserCaCert) AddUserSignConfig(c *gin.Context) {
|
func (r *UserCaCert) AddUserSignConfig(c *gin.Context) {
|
||||||
// userCaCertRequest := requests.UserCaCertRequest{}
|
userCaCertRequest := requests.UserCaCertRequest{}
|
||||||
// req := userCaCertRequest.AddUserSignConfig
|
req := userCaCertRequest.AddUserSignConfig
|
||||||
// if err := c.ShouldBind(&req); err != nil {
|
if err := c.ShouldBind(&req); err != nil {
|
||||||
// responses.FailWithMessage(err.Error(), c)
|
responses.FailWithMessage(err.Error(), c)
|
||||||
// return
|
return
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// // 参数验证
|
// 参数验证
|
||||||
// if err := global.Validate.Struct(req); err != nil {
|
if err := global.Validate.Struct(req); err != nil {
|
||||||
// responses.FailWithMessage(utils.Translate(err), c)
|
responses.FailWithMessage(utils.Translate(err), c)
|
||||||
// return
|
return
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// // 业务处理
|
// 业务处理
|
||||||
// tx := global.Db.Begin()
|
tx := global.Db.Begin()
|
||||||
// defer func() {
|
defer func() {
|
||||||
// if r := recover(); r != nil {
|
if r := recover(); r != nil {
|
||||||
// tx.Rollback()
|
tx.Rollback()
|
||||||
// }
|
}
|
||||||
// }()
|
}()
|
||||||
//
|
|
||||||
// userCaCertService := service.UserCaCertService{}
|
userCaCertService := service.UserCaCertService{}
|
||||||
// _, err := userCaCertService.AddUserSignConfig(tx, req)
|
_, err := userCaCertService.AddUserSignConfig(tx, req)
|
||||||
// if err != nil {
|
if err != nil {
|
||||||
// tx.Rollback()
|
tx.Rollback()
|
||||||
// responses.FailWithMessage(err.Error(), c)
|
responses.FailWithMessage(err.Error(), c)
|
||||||
// return
|
return
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// tx.Commit()
|
tx.Commit()
|
||||||
// responses.Ok(c)
|
responses.Ok(c)
|
||||||
// }
|
}
|
||||||
|
|||||||
@ -575,10 +575,7 @@ func privateRouter(r *gin.Engine, api controller.Api) {
|
|||||||
signGroup := caGroup.Group("/sign")
|
signGroup := caGroup.Group("/sign")
|
||||||
{
|
{
|
||||||
// 添加签章配置
|
// 添加签章配置
|
||||||
// signGroup.POST("", api.UserCaCert.AddUserSignConfig)
|
signGroup.POST("", api.UserCaCert.AddUserSignConfig)
|
||||||
|
|
||||||
// 更新签章配置
|
|
||||||
signGroup.GET("/:user_id", api.OrderPrescription.GetOrderPrescriptionPage)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,13 +1,18 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/base64"
|
||||||
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"hospital-admin-api/api/dao"
|
"hospital-admin-api/api/dao"
|
||||||
"hospital-admin-api/api/model"
|
"hospital-admin-api/api/model"
|
||||||
|
"hospital-admin-api/api/requests"
|
||||||
|
"hospital-admin-api/extend/aliyun"
|
||||||
"hospital-admin-api/extend/ca"
|
"hospital-admin-api/extend/ca"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -89,8 +94,8 @@ func (r *UserCaCertService) GetUserCloudCert(tx *gorm.DB, userId int64) (bool, e
|
|||||||
PersonalPhone: user.Mobile,
|
PersonalPhone: user.Mobile,
|
||||||
PersonalName: cardName,
|
PersonalName: cardName,
|
||||||
PersonalIdNumber: cardNum,
|
PersonalIdNumber: cardNum,
|
||||||
OrgName: "",
|
OrgName: "成都金牛欣欣相照互联网医院有限公司",
|
||||||
OrgNumber: "",
|
OrgNumber: "91510106MABTJY4K9R",
|
||||||
Pin: fmt.Sprintf("%d", userId),
|
Pin: fmt.Sprintf("%d", userId),
|
||||||
OrgDept: hospitalDepartment.DepartmentName, // // 卫生证书:医院部门
|
OrgDept: hospitalDepartment.DepartmentName, // // 卫生证书:医院部门
|
||||||
Province: "四川省",
|
Province: "四川省",
|
||||||
@ -224,8 +229,8 @@ func (r *UserCaCertService) EditUserCloudCert(tx *gorm.DB, userId int64) (bool,
|
|||||||
PersonalPhone: user.Mobile,
|
PersonalPhone: user.Mobile,
|
||||||
PersonalName: cardName,
|
PersonalName: cardName,
|
||||||
PersonalIdNumber: cardNum,
|
PersonalIdNumber: cardNum,
|
||||||
OrgName: "",
|
OrgName: "成都金牛欣欣相照互联网医院有限公司",
|
||||||
OrgNumber: "",
|
OrgNumber: "91510106MABTJY4K9R",
|
||||||
Pin: fmt.Sprintf("%d", userId),
|
Pin: fmt.Sprintf("%d", userId),
|
||||||
OrgDept: hospitalDepartment.DepartmentName, // // 卫生证书:医院部门
|
OrgDept: hospitalDepartment.DepartmentName, // // 卫生证书:医院部门
|
||||||
Province: "四川省",
|
Province: "四川省",
|
||||||
@ -238,7 +243,6 @@ func (r *UserCaCertService) EditUserCloudCert(tx *gorm.DB, userId int64) (bool,
|
|||||||
|
|
||||||
cloudCertResponse, err := ca.EditCloudCert(cloudCertRequestData)
|
cloudCertResponse, err := ca.EditCloudCert(cloudCertRequestData)
|
||||||
if err != nil || cloudCertResponse == nil {
|
if err != nil || cloudCertResponse == nil {
|
||||||
tx.Rollback()
|
|
||||||
return false, errors.New(err.Error())
|
return false, errors.New(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,7 +253,6 @@ func (r *UserCaCertService) EditUserCloudCert(tx *gorm.DB, userId int64) (bool,
|
|||||||
data["cert_serial_number"] = cloudCertResponse.CertSerialnumber
|
data["cert_serial_number"] = cloudCertResponse.CertSerialnumber
|
||||||
err = userCaCertDao.EditUserCaCertById(tx, userCaCert.CertId, data)
|
err = userCaCertDao.EditUserCaCertById(tx, userCaCert.CertId, data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
|
||||||
return false, errors.New("审核失败")
|
return false, errors.New("审核失败")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -325,7 +328,6 @@ func (r *UserCaCertService) RenewUserCloudCert(tx *gorm.DB, userId int64) (bool,
|
|||||||
|
|
||||||
cloudCertResponse, err := ca.RenewCloudCert(cloudCertRequestData)
|
cloudCertResponse, err := ca.RenewCloudCert(cloudCertRequestData)
|
||||||
if err != nil || cloudCertResponse == nil {
|
if err != nil || cloudCertResponse == nil {
|
||||||
tx.Rollback()
|
|
||||||
return false, errors.New(err.Error())
|
return false, errors.New(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -336,7 +338,6 @@ func (r *UserCaCertService) RenewUserCloudCert(tx *gorm.DB, userId int64) (bool,
|
|||||||
data["cert_serial_number"] = cloudCertResponse.CertSerialnumber
|
data["cert_serial_number"] = cloudCertResponse.CertSerialnumber
|
||||||
err = userCaCertDao.EditUserCaCertById(tx, userCaCert.CertId, data)
|
err = userCaCertDao.EditUserCaCertById(tx, userCaCert.CertId, data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
|
||||||
return false, errors.New("审核失败")
|
return false, errors.New("审核失败")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -400,14 +401,12 @@ func (r *UserCaCertService) RemoveUserCloudCert(tx *gorm.DB, userId int64) (bool
|
|||||||
|
|
||||||
_, err = ca.RemoveCloudCert(cloudCertRequestData)
|
_, err = ca.RemoveCloudCert(cloudCertRequestData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
|
||||||
return false, errors.New(err.Error())
|
return false, errors.New(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改ca监管证书表-注销
|
// 修改ca监管证书表-注销
|
||||||
err = userCaCertDao.DeleteUserCaCertById(tx, userCaCert.CertId)
|
err = userCaCertDao.DeleteUserCaCertById(tx, userCaCert.CertId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
|
||||||
return false, errors.New("注销失败")
|
return false, errors.New("注销失败")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -415,149 +414,179 @@ func (r *UserCaCertService) RemoveUserCloudCert(tx *gorm.DB, userId int64) (bool
|
|||||||
}
|
}
|
||||||
|
|
||||||
// AddUserSignConfig 添加用户签章配置
|
// AddUserSignConfig 添加用户签章配置
|
||||||
// func (r *UserCaCertService) AddUserSignConfig(tx *gorm.DB, req requests.AddUserSignConfig) (bool, error) {
|
func (r *UserCaCertService) AddUserSignConfig(tx *gorm.DB, req requests.AddUserSignConfig) (bool, error) {
|
||||||
// userCaCertDao := dao.UserCaCert{}
|
userCaCertDao := dao.UserCaCert{}
|
||||||
//
|
|
||||||
// var entityId string // 唯一标识
|
var entityId string // 唯一标识
|
||||||
// var cardNum string // 身份证号/信用代码
|
var cardNum string // 身份证号/信用代码
|
||||||
//
|
var signImagePath string // 签名图片地址
|
||||||
// // 医院-固定
|
|
||||||
// if req.Type == 1 {
|
// 医院-固定
|
||||||
// entityId = "5345345461"
|
if req.Type == 1 {
|
||||||
// cardNum = "91510106MABTJY4K9R"
|
entityId = "5345345461"
|
||||||
// }
|
cardNum = "91510106MABTJY4K9R"
|
||||||
//
|
signImagePath = "basic/file/hospital_signature.png"
|
||||||
// // 医生
|
}
|
||||||
// if req.Type == 2 {
|
|
||||||
// if req.UserId == "" {
|
// 医生
|
||||||
// return false, errors.New("缺少用户标识")
|
if req.Type == 2 {
|
||||||
// }
|
if req.UserId == "" {
|
||||||
//
|
return false, errors.New("缺少用户标识")
|
||||||
// entityId = req.UserId
|
}
|
||||||
//
|
|
||||||
// // 将 id 转换为 int64 类型
|
entityId = req.UserId
|
||||||
// userId, err := strconv.ParseInt(req.UserId, 10, 64)
|
|
||||||
// if err != nil {
|
// 将 id 转换为 int64 类型
|
||||||
// return false, errors.New("用户标识错误")
|
userId, err := strconv.ParseInt(req.UserId, 10, 64)
|
||||||
// }
|
if err != nil {
|
||||||
//
|
return false, errors.New("用户标识错误")
|
||||||
// // 获取医生数据
|
}
|
||||||
// userDoctorDao := dao.UserDoctorDao{}
|
|
||||||
// userDoctor, err := userDoctorDao.GetUserDoctorByUserId(userId)
|
// 获取医生数据
|
||||||
// if err != nil || userDoctor == nil {
|
userDoctorDao := dao.UserDoctorDao{}
|
||||||
// return false, errors.New("医生数据错误")
|
userDoctor, err := userDoctorDao.GetUserDoctorByUserId(userId)
|
||||||
// }
|
if err != nil || userDoctor == nil {
|
||||||
//
|
return false, errors.New("医生数据错误")
|
||||||
// // 获取医生详情数据
|
}
|
||||||
// userDoctorInfoDao := dao.UserDoctorInfoDao{}
|
|
||||||
// userDoctorInfo, err := userDoctorInfoDao.GetUserDoctorInfoByDoctorId(userDoctor.DoctorId)
|
// 获取医生详情数据
|
||||||
// if err != nil || userDoctorInfo == nil {
|
userDoctorInfoDao := dao.UserDoctorInfoDao{}
|
||||||
// return false, errors.New("医生详情数据错误")
|
userDoctorInfo, err := userDoctorInfoDao.GetUserDoctorInfoByDoctorId(userDoctor.DoctorId)
|
||||||
// }
|
if err != nil || userDoctorInfo == nil {
|
||||||
//
|
return false, errors.New("医生详情数据错误")
|
||||||
// if userDoctor.IdenAuthStatus != 1 {
|
}
|
||||||
// return false, errors.New("请先通过身份认证")
|
|
||||||
// }
|
if userDoctor.IdenAuthStatus != 1 {
|
||||||
//
|
return false, errors.New("请先通过身份认证")
|
||||||
// if userDoctor.MultiPointStatus != 1 {
|
}
|
||||||
// return false, errors.New("请先完成多点执业认证")
|
|
||||||
// }
|
if userDoctor.MultiPointStatus != 1 {
|
||||||
//
|
return false, errors.New("请先完成多点执业认证")
|
||||||
// cardNum = userDoctorInfo.CardNum
|
}
|
||||||
// }
|
|
||||||
//
|
cardNum = userDoctorInfo.CardNum
|
||||||
// // 药师
|
signImagePath = strings.TrimLeft(userDoctorInfo.SignImage, "/")
|
||||||
// if req.Type == 3 {
|
}
|
||||||
// if req.UserId == "" {
|
|
||||||
// return false, errors.New("缺少用户标识")
|
// 药师
|
||||||
// }
|
if req.Type == 3 {
|
||||||
//
|
if req.UserId == "" {
|
||||||
// entityId = req.UserId
|
return false, errors.New("缺少用户标识")
|
||||||
//
|
}
|
||||||
// // 将 id 转换为 int64 类型
|
|
||||||
// userId, err := strconv.ParseInt(req.UserId, 10, 64)
|
entityId = req.UserId
|
||||||
// if err != nil {
|
|
||||||
// return false, errors.New("用户标识错误")
|
// 将 id 转换为 int64 类型
|
||||||
// }
|
userId, err := strconv.ParseInt(req.UserId, 10, 64)
|
||||||
//
|
if err != nil {
|
||||||
// // 获取药师详情数据
|
return false, errors.New("用户标识错误")
|
||||||
// userPharmacistInfoDao := dao.UserPharmacistInfoDao{}
|
}
|
||||||
// userPharmacistInfo, err := userPharmacistInfoDao.GetUserPharmacistInfoByUserId(userId)
|
|
||||||
// if err != nil || userPharmacistInfo == nil {
|
// 获取药师详情数据
|
||||||
// return false, errors.New("药师详情数据错误")
|
userPharmacistInfoDao := dao.UserPharmacistInfoDao{}
|
||||||
// }
|
userPharmacistInfo, err := userPharmacistInfoDao.GetUserPharmacistInfoByUserId(userId)
|
||||||
//
|
if err != nil || userPharmacistInfo == nil {
|
||||||
// cardNum = userPharmacistInfo.CardNum
|
return false, errors.New("药师详情数据错误")
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// // 检测是否存在云证书
|
cardNum = userPharmacistInfo.CardNum
|
||||||
// maps := make(map[string]interface{})
|
signImagePath = strings.TrimLeft(userPharmacistInfo.SignImage, "/")
|
||||||
// maps["ca_pin"] = entityId
|
}
|
||||||
// maps["type"] = 2
|
|
||||||
// userCaCert, _ := userCaCertDao.GetUserCaCert(maps)
|
// 检测是否存在云证书
|
||||||
// if userCaCert == nil {
|
maps := make(map[string]interface{})
|
||||||
// return false, errors.New("医生未申请云证书,请申请后添加签章配置")
|
maps["ca_pin"] = entityId
|
||||||
// }
|
maps["type"] = 2
|
||||||
//
|
userCaCert, _ := userCaCertDao.GetUserCaCert(maps)
|
||||||
// // 处理签章图片
|
if userCaCert == nil {
|
||||||
// var signImage string // 签章图片,base64格式
|
return false, errors.New("医生未申请云证书,请申请后添加签章配置")
|
||||||
//
|
}
|
||||||
// // 处理签章配置
|
|
||||||
// var signParam string // 签章配置,JSON
|
if userCaCert.IsSignConfig == 1 {
|
||||||
// fmt.Println(signParam)
|
return false, errors.New("医生已存在签章配置,请勿重复添加")
|
||||||
// var signParams []map[string]interface{}
|
}
|
||||||
// if req.Type == 1 {
|
|
||||||
// // 医院
|
// 下载签章图片
|
||||||
// signParam := map[string]interface{}{
|
var style string
|
||||||
// "llx": "370",
|
if req.Type == 1 {
|
||||||
// "lly": "210",
|
style = "image/resize,w_300,h_300"
|
||||||
// "urx": "520",
|
} else {
|
||||||
// "ury": "360",
|
style = "image/resize,m_lfit,w_100,h_350"
|
||||||
// "pageList": []int{1},
|
}
|
||||||
// "sealImg": signImage, // 请替换为你的签名图像路径
|
|
||||||
// }
|
signImage, err := aliyun.GetCusTomObjectToRAM(signImagePath, style)
|
||||||
// signParams = append(signParams, signParam)
|
if err != nil {
|
||||||
//
|
return false, err
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// // 申请云证书
|
signImage = base64.StdEncoding.EncodeToString([]byte(signImage))
|
||||||
// cloudCertRequestData := &ca.AddUserSignConfigRequest{
|
|
||||||
// UserId: entityId,
|
// 签章配置,JSON
|
||||||
// ConfigKey: entityId,
|
var signParam map[string]interface{}
|
||||||
// KeypairType: "3",
|
var signParams []map[string]interface{}
|
||||||
// CertSn: cardNum,
|
|
||||||
// SignType: "4",
|
// 医院
|
||||||
// SignParam: "",
|
if req.Type == 1 {
|
||||||
// SealImg: "",
|
signParam = map[string]interface{}{
|
||||||
// SealType: "4",
|
"llx": "370",
|
||||||
// SignTemplate: "0",
|
"lly": "210",
|
||||||
// }
|
"urx": "520",
|
||||||
//
|
"ury": "360",
|
||||||
// cloudCertResponse, err := ca.AddCloudCert(cloudCertRequestData)
|
}
|
||||||
// if err != nil || cloudCertResponse == nil {
|
}
|
||||||
// return false, errors.New(err.Error())
|
|
||||||
// }
|
// 医生
|
||||||
//
|
if req.Type == 2 {
|
||||||
// // 新增ca监管证书表
|
signParam = map[string]interface{}{
|
||||||
// userCaCert = &model.UserCaCert{
|
"llx": "120",
|
||||||
// UserId: &userId,
|
"lly": "190",
|
||||||
// IsSystem: 0,
|
"urx": "190",
|
||||||
// IsLatest: 1,
|
"ury": "140",
|
||||||
// Type: 2,
|
}
|
||||||
// CertBase64: cloudCertResponse.CertBase64,
|
}
|
||||||
// CertChainP7: cloudCertResponse.CertP7,
|
|
||||||
// CertSerialNumber: cloudCertResponse.CertSerialnumber,
|
// 药师
|
||||||
// CaPin: fmt.Sprintf("%d", userId),
|
if req.Type == 2 {
|
||||||
// IsSignConfig: 0,
|
signParam = map[string]interface{}{
|
||||||
// SignConfig: "",
|
"llx": "350",
|
||||||
// CertApplicationTime: model.LocalTime(time.Now()),
|
"lly": "190",
|
||||||
// CertExpireTime: model.LocalTime(time.Now().AddDate(0, 0, 180)), // 180天以后的时间
|
"urx": "440",
|
||||||
// }
|
"ury": "140",
|
||||||
//
|
}
|
||||||
// userCaCert, err = userCaCertDao.AddUserCaCert(tx, userCaCert)
|
}
|
||||||
// if err != nil || userCaCert == nil {
|
|
||||||
// return false, errors.New(err.Error())
|
signParam["pageList"] = []int{1}
|
||||||
// }
|
signParam["sealImg"] = signImage
|
||||||
//
|
|
||||||
// return true, nil
|
signParams = append(signParams, signParam)
|
||||||
// }
|
|
||||||
|
signParamJson, err := json.Marshal(signParams)
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加签章配置
|
||||||
|
cloudCertRequestData := &ca.AddUserSignConfigRequest{
|
||||||
|
UserId: fmt.Sprintf("%d", entityId),
|
||||||
|
ConfigKey: fmt.Sprintf("%d", entityId),
|
||||||
|
CertSn: cardNum,
|
||||||
|
SignParam: string(signParamJson),
|
||||||
|
SealImg: signImage,
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = ca.AddUserSignConfig(cloudCertRequestData)
|
||||||
|
if err != nil {
|
||||||
|
return false, errors.New(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改ca监管证书表
|
||||||
|
data := make(map[string]interface{})
|
||||||
|
data["is_sign_config"] = 1
|
||||||
|
data["sign_config"] = string(signParamJson)
|
||||||
|
err = userCaCertDao.EditUserCaCertById(tx, userCaCert.CertId, data)
|
||||||
|
if err != nil {
|
||||||
|
return false, errors.New("修改签证配置失败")
|
||||||
|
}
|
||||||
|
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
|||||||
@ -5,7 +5,11 @@ import (
|
|||||||
"crypto/sha1"
|
"crypto/sha1"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"github.com/aliyun/aliyun-oss-go-sdk/oss"
|
||||||
"hospital-admin-api/config"
|
"hospital-admin-api/config"
|
||||||
|
"io"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@ -54,3 +58,108 @@ func GetOssSign(dir string) (*GetOssSignResponse, error) {
|
|||||||
|
|
||||||
return response, nil
|
return response, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CreateClient 创建客户端
|
||||||
|
func CreateClient() (*oss.Client, error) {
|
||||||
|
// 创建OSSClient实例。
|
||||||
|
client, err := oss.New(config.C.Oss.OssEndpoint, config.C.Oss.OssAccessKey, config.C.Oss.OssAccessKeySecret)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return client, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetCusTomObjectToRAM 下载自定义风格文件到内存
|
||||||
|
func GetCusTomObjectToRAM(filename string, style string) (string, error) {
|
||||||
|
if style == "" {
|
||||||
|
style = "image/resize"
|
||||||
|
}
|
||||||
|
|
||||||
|
ossClient, err := CreateClient()
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// yourBucketName填写存储空间名称。
|
||||||
|
bucket, err := ossClient.Bucket(config.C.Oss.OssBucket)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 下载文件到流。
|
||||||
|
body, err := bucket.GetObject(filename, oss.Process(style))
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 数据读取完成后,获取的流必须关闭,否则会造成连接泄漏,导致请求无连接可用,程序无法正常工作。
|
||||||
|
defer func(body io.ReadCloser) {
|
||||||
|
_ = body.Close()
|
||||||
|
}(body)
|
||||||
|
|
||||||
|
data, err := io.ReadAll(body)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error:", err)
|
||||||
|
os.Exit(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
return string(data), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetObjectToRAM 下载文件到内存
|
||||||
|
func GetObjectToRAM(filename string) (string, error) {
|
||||||
|
ossClient, err := CreateClient()
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// yourBucketName填写存储空间名称。
|
||||||
|
bucket, err := ossClient.Bucket(config.C.Oss.OssBucket)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 下载文件到流。
|
||||||
|
body, err := bucket.GetObject(filename)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 数据读取完成后,获取的流必须关闭,否则会造成连接泄漏,导致请求无连接可用,程序无法正常工作。
|
||||||
|
defer func(body io.ReadCloser) {
|
||||||
|
_ = body.Close()
|
||||||
|
}(body)
|
||||||
|
|
||||||
|
data, err := io.ReadAll(body)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error:", err)
|
||||||
|
os.Exit(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
return string(data), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetObjectToLocal 下载文件到本地
|
||||||
|
func GetObjectToLocal(filename, local string) (bool, error) {
|
||||||
|
ossClient, err := CreateClient()
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// yourBucketName填写存储空间名称。
|
||||||
|
bucket, err := ossClient.Bucket(config.C.Oss.OssBucket)
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 下载文件到本地文件,并保存到指定的本地路径中。如果指定的本地文件存在会覆盖,不存在则新建。
|
||||||
|
// 如果未指定本地路径,则下载后的文件默认保存到示例程序所属项目对应本地路径中。
|
||||||
|
// 依次填写Object完整路径(例如exampledir/exampleobject.txt)和本地文件的完整路径(例如D:\\localpath\\examplefile.txt)。Object完整路径中不能包含Bucket名称。
|
||||||
|
err = bucket.GetObjectToFile(filename, local)
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
|||||||
@ -76,7 +76,7 @@ type AddUserSignConfigRequest struct {
|
|||||||
KeypairType string `json:"keypairType"` // 秘钥类型(3云证书)
|
KeypairType string `json:"keypairType"` // 秘钥类型(3云证书)
|
||||||
CertSn string `json:"certSn"` // 证书序列号,使用医生身份证号即可
|
CertSn string `json:"certSn"` // 证书序列号,使用医生身份证号即可
|
||||||
SignType string `json:"signType"` // 签章方式(签章类型; 4客户端坐标签章;5客户端关键字签章;)
|
SignType string `json:"signType"` // 签章方式(签章类型; 4客户端坐标签章;5客户端关键字签章;)
|
||||||
SignParam string `json:"authNoticeType"` // 签章配置,JSON
|
SignParam string `json:"signParam"` // 签章配置,JSON
|
||||||
SealImg string `json:"sealImg"` // 签章图片,base64格式
|
SealImg string `json:"sealImg"` // 签章图片,base64格式
|
||||||
SealType string `json:"sealType"`
|
SealType string `json:"sealType"`
|
||||||
SignTemplate string `json:"signTemplate"`
|
SignTemplate string `json:"signTemplate"`
|
||||||
|
|||||||
@ -352,39 +352,45 @@ func RemoveCloudCert(d *RemoveCloudCertRequest) (bool, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// AddUserSignConfig 添加用户签章配置
|
// AddUserSignConfig 添加用户签章配置
|
||||||
// func AddUserSignConfig(d *AddUserSignConfigRequest) (bool, error) {
|
func AddUserSignConfig(d *AddUserSignConfigRequest) (bool, error) {
|
||||||
// if d == nil {
|
if d == nil {
|
||||||
// return false, errors.New("获取云证书失败")
|
return false, errors.New("获取云证书失败")
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// // 获取签名
|
// 获取签名
|
||||||
// requestDataMap := make(map[string]interface{})
|
requestDataMap := make(map[string]interface{})
|
||||||
// requestDataMap["entityId"] = d.EntityId
|
requestDataMap["userId"] = d.UserId
|
||||||
// requestDataMap["pin"] = d.Pin
|
requestDataMap["configKey"] = d.UserId
|
||||||
// requestDataMap["authType"] = d.AuthType
|
requestDataMap["keypairType"] = "3"
|
||||||
// requestDataMap["authTime"] = d.AuthTime
|
requestDataMap["certSn"] = d.CertSn
|
||||||
// requestDataMap["authResult"] = d.AuthResult
|
requestDataMap["signType"] = "4"
|
||||||
// requestDataMap["authNoticeType"] = d.AuthNoticeType
|
requestDataMap["signParam"] = d.SignParam
|
||||||
// signature := GenerateSignature(requestDataMap)
|
requestDataMap["sealImg"] = d.SealImg
|
||||||
// if signature == "" {
|
requestDataMap["sealType"] = "4"
|
||||||
// return false, errors.New("云证书签名错误")
|
requestDataMap["signTemplate"] = "0"
|
||||||
// }
|
signature := GenerateSignature(requestDataMap)
|
||||||
//
|
if signature == "" {
|
||||||
// formData := url.Values{}
|
return false, errors.New("云证书签名错误")
|
||||||
// formData.Set("entityId", d.EntityId)
|
}
|
||||||
// formData.Set("pin", d.Pin)
|
|
||||||
// formData.Set("authType", d.AuthType)
|
formData := url.Values{}
|
||||||
// formData.Set("authTime", d.AuthTime)
|
formData.Set("userId", d.UserId)
|
||||||
// formData.Set("authResult", d.AuthResult)
|
formData.Set("configKey", d.UserId)
|
||||||
// formData.Set("authNoticeType", d.AuthNoticeType)
|
formData.Set("keypairType", "3")
|
||||||
//
|
formData.Set("certSn", d.CertSn)
|
||||||
// // 构建请求 URL
|
formData.Set("signType", "4")
|
||||||
// requestUrl := config.C.CaOnline.CaOnlineApiUrl + "/cloud-certificate-service/api/cloudCert/open/v2/cert/certRevoke"
|
formData.Set("signParam", d.SignParam)
|
||||||
//
|
formData.Set("sealImg", d.SealImg)
|
||||||
// _, err := postRequest(requestUrl, formData, signature)
|
formData.Set("sealType", "4")
|
||||||
// if err != nil {
|
formData.Set("signTemplate", "0")
|
||||||
// return false, errors.New(err.Error())
|
|
||||||
// }
|
// 构建请求 URL
|
||||||
//
|
requestUrl := config.C.CaOnline.CaOnlineApiUrl + "/signature-server/api/open/signature/userSignConfig"
|
||||||
// return true, nil
|
|
||||||
// }
|
_, err := postRequest(requestUrl, formData, signature)
|
||||||
|
if err != nil {
|
||||||
|
return false, errors.New(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user