新增获取解密手机号

This commit is contained in:
wucongxing 2023-09-19 09:39:39 +08:00
parent 43d5023b80
commit c004eb7c2a
6 changed files with 137 additions and 53 deletions

View File

@ -5,7 +5,6 @@ import (
"hospital-admin-api/api/requests" "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/config"
"hospital-admin-api/global" "hospital-admin-api/global"
"hospital-admin-api/utils" "hospital-admin-api/utils"
"strconv" "strconv"
@ -13,55 +12,6 @@ import (
type Admin struct{} type Admin struct{}
// GetCaptcha 获取验证码
func (b *Admin) GetCaptcha(c *gin.Context) {
id, b64s, err := utils.GenerateCaptcha()
if err != nil {
responses.FailWithMessage("验证码获取失败", c)
}
responses.OkWithData(gin.H{
"id": id,
"b64s": b64s,
}, c)
}
// Login 登陆
func (b *Admin) Login(c *gin.Context) {
var adminRequest requests.AdminRequest
if err := c.ShouldBind(&adminRequest.Login); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(adminRequest.Login); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
// 验证验证码
if config.C.Env == "prod" {
isValid := utils.VerifyCaptcha(adminRequest.Login)
if !isValid {
// 验证码错误
responses.FailWithMessage("验证码错误", c)
return
}
}
// 登陆
adminService := service.AdminService{}
token, err := adminService.Login(adminRequest.Login)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
responses.OkWithData(token, c)
}
// GetOssSign 获取oss签名 // GetOssSign 获取oss签名
func (b *Admin) GetOssSign(c *gin.Context) { func (b *Admin) GetOssSign(c *gin.Context) {
var adminRequest requests.AdminRequest var adminRequest requests.AdminRequest
@ -161,3 +111,40 @@ func (b *Admin) GetDecryptOrderProductConsignee(c *gin.Context) {
OrderProductConsignee, _ := orderProductService.GetOrderProductConsignee(orderProductId) OrderProductConsignee, _ := orderProductService.GetOrderProductConsignee(orderProductId)
responses.OkWithData(OrderProductConsignee, c) responses.OkWithData(OrderProductConsignee, c)
} }
// GetDecryptMobile 获取解密手机号
func (b *Admin) GetDecryptMobile(c *gin.Context) {
var adminRequest requests.AdminRequest
if err := c.ShouldBind(&adminRequest.GetDecryptMobile); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(adminRequest.GetDecryptMobile); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
// 将 id 转换为 int64 类型
userId, err := strconv.ParseInt(adminRequest.GetDecryptMobile.UserId, 10, 64)
if err != nil {
responses.Fail(c)
return
}
var familyId int64
if adminRequest.GetDecryptMobile.FamilyId != "" {
familyId, err = strconv.ParseInt(adminRequest.GetDecryptMobile.FamilyId, 10, 64)
if err != nil {
responses.Fail(c)
return
}
}
// 获取用户身份证号
userService := service.UserService{}
userMobile, _ := userService.GetUserMobile(userId, familyId)
responses.OkWithData(userMobile, c)
}

View File

@ -4,7 +4,8 @@ package controller
type Api struct { type Api struct {
sysSetting // 系统设置 sysSetting // 系统设置
userDoctorManage // 医生管理 userDoctorManage // 医生管理
Admin // 公共方法 Admin // 公共方法-验证权限
Public // 公共方法-不验证权限
basic // 基础数据 basic // 基础数据
order // 订单管理 order // 订单管理
userPatientManage // 患者管理 userPatientManage // 患者管理

View File

@ -1,3 +1,62 @@
package controller package controller
import (
"github.com/gin-gonic/gin"
"hospital-admin-api/api/requests"
"hospital-admin-api/api/responses"
"hospital-admin-api/api/service"
"hospital-admin-api/config"
"hospital-admin-api/global"
"hospital-admin-api/utils"
)
type Public struct{} type Public struct{}
// GetCaptcha 获取验证码
func (b *Public) GetCaptcha(c *gin.Context) {
id, b64s, err := utils.GenerateCaptcha()
if err != nil {
responses.FailWithMessage("验证码获取失败", c)
}
responses.OkWithData(gin.H{
"id": id,
"b64s": b64s,
}, c)
}
// Login 登陆
func (b *Public) Login(c *gin.Context) {
var adminRequest requests.AdminRequest
if err := c.ShouldBind(&adminRequest.Login); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(adminRequest.Login); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
// 验证验证码
if config.C.Env == "prod" {
isValid := utils.VerifyCaptcha(adminRequest.Login)
if !isValid {
// 验证码错误
responses.FailWithMessage("验证码错误", c)
return
}
}
// 登陆
adminService := service.AdminService{}
token, err := adminService.Login(adminRequest.Login)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
responses.OkWithData(token, c)
}

View File

@ -4,6 +4,7 @@ type AdminRequest struct {
Login // 登陆 Login // 登陆
GetOssSign // 获取医生列表-分页 GetOssSign // 获取医生列表-分页
GetDecryptCardNum // 获取用户身份证号 GetDecryptCardNum // 获取用户身份证号
GetDecryptMobile // 获取用户手机号
} }
// Login 登陆 // Login 登陆
@ -25,3 +26,9 @@ type GetDecryptCardNum struct {
FamilyId string `json:"family_id" form:"family_id" label:"家庭成员"` // 家庭成员id FamilyId string `json:"family_id" form:"family_id" label:"家庭成员"` // 家庭成员id
UserId string `json:"user_id" form:"user_id" validate:"required" label:"用户"` // 用户id UserId string `json:"user_id" form:"user_id" validate:"required" label:"用户"` // 用户id
} }
// GetDecryptMobile 获取用户手机号
type GetDecryptMobile struct {
FamilyId string `json:"family_id" form:"family_id" label:"家庭成员"` // 家庭成员id
UserId string `json:"user_id" form:"user_id" validate:"required" label:"用户"` // 用户id
}

View File

@ -74,10 +74,10 @@ func Init() *gin.Engine {
func publicRouter(r *gin.Engine, api controller.Api) { func publicRouter(r *gin.Engine, api controller.Api) {
adminGroup := r.Group("/admin") adminGroup := r.Group("/admin")
// 验证码 // 验证码
adminGroup.GET("/captcha", api.Admin.GetCaptcha) adminGroup.GET("/captcha", api.Public.GetCaptcha)
// 登陆 // 登陆
adminGroup.POST("/login", api.Admin.Login) adminGroup.POST("/login", api.Public.Login)
} }
// adminRouter 公共路由-验证权限 // adminRouter 公共路由-验证权限
@ -103,6 +103,9 @@ func adminRouter(r *gin.Engine, api controller.Api) {
// 解密药品订单收货人数据 // 解密药品订单收货人数据
decryptGroup.GET("/order/product/consignee/:order_product_id", api.Admin.GetDecryptOrderProductConsignee) decryptGroup.GET("/order/product/consignee/:order_product_id", api.Admin.GetDecryptOrderProductConsignee)
// 解密手机号
decryptGroup.GET("/mobile", api.Admin.GetDecryptMobile)
} }
} }

View File

@ -61,3 +61,30 @@ func (r *UserService) GetUserBankNumByDoctorId(doctorId int64) (string, error) {
return doctorBankCard.BankCardCode, nil return doctorBankCard.BankCardCode, nil
} }
// GetUserMobile 获取用户手机号
func (r *UserService) GetUserMobile(userId, familyId int64) (string, error) {
var mobile string
// 获取用户数据
userDao := dao.UserDao{}
user, err := userDao.GetUserById(userId)
if err != nil || user == nil {
return "", errors.New("用户错误")
}
mobile = user.Mobile
if familyId != 0 {
// 存在家庭成员
patientFamilyDao := dao.PatientFamilyDao{}
patientFamily, err := patientFamilyDao.GetPatientFamilyById(familyId)
if err != nil || patientFamily == nil {
return "", errors.New("获取失败")
}
mobile = patientFamily.Mobile
}
return mobile, nil
}