Files
hospital-admin-api/api/router/router.go
T
2026-09-17 09:04:12 +08:00

1042 lines
28 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package router
import (
"fmt"
"hospital-admin-api/api/controller"
"hospital-admin-api/api/exception"
"hospital-admin-api/api/middlewares"
"hospital-admin-api/config"
"hospital-admin-api/consts"
"net/http"
"github.com/gin-gonic/gin"
)
// Init 初始化路由
func Init() *gin.Engine {
r := gin.New()
// 环境设置
if config.C.Env == "prod" {
gin.SetMode(gin.ReleaseMode)
}
// 获取请求参数中间件-json格式下会导致接口获取不到请求数据
r.Use(middlewares.RequestParamsMiddleware())
// 日志中间件
r.Use(middlewares.Logrus())
// 异常
r.Use(gin.Recovery())
// 404处理
r.NoRoute(func(c *gin.Context) {
path := c.Request.URL.Path
method := c.Request.Method
c.JSON(http.StatusNotFound, gin.H{
"msg": fmt.Sprintf("%s %s not found", method, path),
"code": consts.ClientHttpNotFound,
"data": "",
})
})
// 异常处理
r.Use(exception.Recover())
// 跨域处理
r.Use(middlewares.Cors())
// 加载基础路由
api := controller.Api{}
// 公开路由-不验证权限
publicRouter(r, api)
// 验证jwt
r.Use(middlewares.Jwt())
// 验证权限
r.Use(middlewares.Auth())
// 请求api处理
r.Use(middlewares.RequestApi())
// 私有路由-验证权限
privateRouter(r, api)
// 公共路由-验证权限
adminRouter(r, api)
// 基础数据-验证权限
basicRouter(r, api)
return r
}
// publicRouter 公开路由-不验证权限
func publicRouter(r *gin.Engine, api controller.Api) {
adminGroup := r.Group("/admin")
// 验证码
adminGroup.GET("/captcha", api.Public.GetCaptcha)
// 登陆
adminGroup.POST("/login", api.Public.Login)
// 基础数据
basicGroup := adminGroup.Group("/basic")
{
// 地区管理-基础数据
areaGroup := basicGroup.Group("/area")
{
// 获取地区列表
areaGroup.GET("/list", api.Basic.Area.GetAreaList)
// 修改地区
// 新增地区
}
}
caV2 := controller.CaV2{}
caV2Group := r.Group("/open/ca/v2")
{
caV2Group.POST("/service-url", caV2.GetServiceURL)
caV2Group.POST("/cert-sign", caV2.CertSign)
caV2Group.POST("/cert-sign/result", caV2.GetCertSignResult)
caV2Group.POST("/passwordless-sign-info", caV2.PasswordLessSignInfo)
}
}
// adminRouter 公共路由-验证权限
func adminRouter(r *gin.Engine, api controller.Api) {
// 签名
signGroup := r.Group("/sign")
{
// 获取oss签名
signGroup.GET("/oss", api.Admin.GetOssSign)
}
// 解密
decryptGroup := r.Group("/decrypt")
{
cardGroup := decryptGroup.Group("/card")
{
// 解密身份证号
cardGroup.GET("/num", api.Admin.GetDecryptCardNum)
}
// 解密银行卡号
decryptGroup.GET("/bank/:doctor_id", api.Admin.GetDecryptBank)
// 解密药品订单收货人数据
decryptGroup.GET("/order/product/consignee/:order_product_id", api.Admin.GetDecryptOrderProductConsignee)
// 解密手机号
decryptGroup.GET("/mobile", api.Admin.GetDecryptMobile)
}
}
// basicRouter 基础数据-验证权限
func basicRouter(r *gin.Engine, api controller.Api) {
// 此处为基础数据的获取数据
basicGroup := r.Group("/basic")
{
// 科室管理-基础数据
departmentGroup := basicGroup.Group("/department")
{
// 自定义科室
customGroup := departmentGroup.Group("/custom")
{
// 获取自定义科室列表
customGroup.GET("/list", api.Department.GetDepartmentCustomList)
}
}
// 医院管理-基础数据
hospitalGroup := basicGroup.Group("/hospital")
{
// 获取医院列表-限制条数
hospitalGroup.GET("/list", api.Hospital.GetHospitalList)
}
// 药房管理-基础数据
pharmacyGroup := basicGroup.Group("/pharmacy")
{
// 获取药房列表
pharmacyGroup.GET("/list", api.Pharmacy.GetPharmacyList)
}
// 医生专长管理-基础数据
expertiseGroup := basicGroup.Group("/expertise")
{
// 获取医生专长列表
expertiseGroup.GET("/list", api.DiseaseClassExpertise.GetExpertiseList)
// 获取医生专长列表-分页
// 医生专长详情
// 修改医生专长
// 新增医生专长
}
// 银行管理-基础数据
bankGroup := basicGroup.Group("/bank")
{
// 获取银行列表
bankGroup.GET("/list", api.Bank.GetBankList)
// 获取银行列表-分页
// 银行详情
// 修改银行
// 新增银行
}
//// 地区管理-基础数据
//areaGroup := basicGroup.Group("/area")
//{
// // 获取地区列表
// areaGroup.GET("/list", api.Basic.Area.GetAreaList)
//
// // 修改地区
//
// // 新增地区
//}
}
}
// privateRouter 私有路由-验证权限
func privateRouter(r *gin.Engine, api controller.Api) {
adminGroup := r.Group("/admin")
// 角色
roleGroup := adminGroup.Group("/role")
{
// 获取角色列表-分页
roleGroup.GET("", api.Role.GetRolePage)
// 角色禁用/启用
roleGroup.PUT("status/:id", api.Role.PutRoleStatus)
// 角色新增
roleGroup.POST("", api.Role.AddRole)
// 角色详情
roleGroup.GET("/:role_id", api.Role.GetRole)
// 角色修改
roleGroup.PUT("/:role_id", api.Role.PutRole)
// 删除角色-批量
roleGroup.DELETE("", api.Role.DeleteRole)
// 获取角色列表
roleGroup.GET("/list", api.Role.GetRoleList)
}
// 菜单
menuGroup := adminGroup.Group("/menu")
{
// 获取全部菜单列表
menuGroup.GET("", api.Menu.GetMenuList)
// 新增菜单
menuGroup.POST("", api.Menu.AddMenu)
// 修改菜单
menuGroup.PUT("/:menu_id", api.Menu.PutMenu)
// 删除菜单-批量
menuGroup.DELETE("", api.Menu.DeleteMenu)
// 菜单详情
menuGroup.GET("/:menu_id", api.Menu.GetMenu)
}
// 后台用户
userGroup := adminGroup.Group("/user")
{
// 获取用户列表-分页
userGroup.GET("", api.AdminUser.GetUserPage)
// 新增用户
userGroup.POST("", api.AdminUser.AddUser)
// 用户详情
userGroup.GET("/:user_id", api.AdminUser.GetUser)
// 删除用户-批量
userGroup.DELETE("", api.AdminUser.DeleteUser)
// 修改用户
userGroup.PUT("/:user_id", api.AdminUser.PutUser)
// 修改用户密码
userGroup.PUT("/password", api.AdminUser.PutUserPassword)
// 退出登陆
userGroup.PUT("loginout", api.AdminUser.LoginOut)
// 获取用户菜单列表
userGroup.GET("/menu", api.AdminUser.GetUserMenuList)
// 获取用户按钮列表
userGroup.GET("/button", api.AdminUser.GetUserButtonList)
}
// 接口
apiGroup := adminGroup.Group("/api")
{
// 获取接口列表-分页
apiGroup.GET("", api.AdminApi.GetApiPage)
// 获取接口列表
apiGroup.GET("/list", api.AdminApi.GetApiList)
// 新增接口
apiGroup.POST("", api.AdminApi.AddApi)
// 接口详情
apiGroup.GET("/:api_id", api.AdminApi.GetApi)
// 删除接口-批量
apiGroup.DELETE("", api.AdminApi.DeleteApi)
// 修改接口
apiGroup.PUT("/:api_id", api.AdminApi.PutApi)
}
// 部门
deptGroup := adminGroup.Group("/dept")
{
// 获取部门列表
deptGroup.GET("", api.Dept.GetDeptList)
// 新增部门
deptGroup.POST("", api.Dept.AddDept)
// 部门详情
deptGroup.GET("/:dept_id", api.Dept.GetDept)
// 删除部门-批量
deptGroup.DELETE("", api.Dept.DeleteDept)
// 修改部门
deptGroup.PUT("/:dept_id", api.Dept.PutDept)
}
// 岗位
postGroup := adminGroup.Group("/post")
{
// 获取岗位列表-分页
postGroup.GET("", api.Post.GetPostPage)
// 新增岗位
postGroup.POST("", api.Post.AddPost)
// 岗位详情
postGroup.GET("/:post_id", api.Post.GetPost)
// 删除岗位-批量
postGroup.DELETE("", api.Post.DeletePost)
// 修改岗位
postGroup.PUT("/:post_id", api.Post.PutPost)
// 获取岗位列表
postGroup.GET("/list", api.Post.GetPostList)
}
// 医生管理
doctorGroup := adminGroup.Group("/doctor")
{
// 获取医生列表-分页
doctorGroup.GET("", api.UserDoctor.GetUserDoctorPage)
// 获取医生列表
doctorGroup.GET("/list", api.UserDoctor.GetUserDoctorList)
// 医生详情
doctorGroup.GET("/:doctor_id", api.UserDoctor.GetUserDoctor)
// 修改医生
doctorGroup.PUT("/:doctor_id", api.UserDoctor.PutUserDoctor)
// 新增医生
doctorGroup.POST("", api.UserDoctor.AddUserDoctor)
// 医生药房管理
doctorPharmacyGroup := doctorGroup.Group("/pharmacy")
{
// 获取医生绑定的药房列表
doctorPharmacyGroup.GET("/:doctor_id", api.DoctorPharmacy.GetDoctorPharmacies)
// 批量设置医生绑定的药房列表
doctorPharmacyGroup.PUT("/:doctor_id", api.DoctorPharmacy.BindDoctorPharmacies)
// 为医生新增单个药房绑定
doctorPharmacyGroup.POST("", api.DoctorPharmacy.AddDoctorPharmacy)
doctorPharmacyGroup.POST("/:doctor_id", api.DoctorPharmacy.AddDoctorPharmacy)
// 解除医生与指定药房的绑定
doctorPharmacyGroup.DELETE("/:id", api.DoctorPharmacy.UnbindDoctorPharmacy)
doctorPharmacyGroup.POST("/unbind", api.DoctorPharmacy.UnbindDoctorPharmacyPost)
// 设置医生的默认药房
doctorPharmacyGroup.PUT("/default/:id", api.DoctorPharmacy.SetDefaultDoctorPharmacy)
doctorPharmacyGroup.PUT("/default", api.DoctorPharmacy.SetDefaultDoctorPharmacyPut)
// 药房关联医生-导出
doctorPharmacyGroup.POST("/export", api.Export.PharmacyDoctor)
}
// 身份审核列表
doctorPendingGroup := doctorGroup.Group("/pending")
{
// 身份审核-获取医生列表-分页
doctorPendingGroup.GET("", api.UserDoctor.GetUserDoctorPendingPage)
// 身份审核-医生详情
doctorPendingGroup.GET("/:doctor_id", api.UserDoctor.GetUserDoctorPending)
// 身份审核-审核医生
doctorPendingGroup.PUT("/:doctor_id", api.UserDoctor.PutUserDoctorPending)
}
// 多点列表
doctorMultiGroup := doctorGroup.Group("/multi")
{
// 多点-获取医生列表-分页
doctorMultiGroup.GET("", api.UserDoctor.GetMultiPage)
// 多点-医生详情
doctorMultiGroup.GET("/:doctor_id", api.UserDoctor.GetMulti)
// 多点-审核医生
doctorMultiGroup.PUT("/:doctor_id", api.UserDoctor.PutMulti)
}
// 银行卡管理
bankGroup := doctorGroup.Group("/bank")
{
// 获取医生银行卡列表-分页
bankGroup.GET("", api.UserDoctor.GetUserDoctorBankCardPage)
}
// 医生账户
accountGroup := doctorGroup.Group("/account")
{
// 获取医生账户列表-分页
accountGroup.GET("", api.DoctorAccount.GetDoctorAccountPage)
// 医生账户详情
accountGroup.GET("/:doctor_id", api.DoctorAccount.GetDoctorAccount)
// 获取医生账户关联订单列表-分页
accountGroup.GET("/order", api.OrderInquiry.GetOrderInquiryForAccountPage)
}
// 简介审核列表
doctorIntroductionGroup := doctorGroup.Group("/introduction")
{
// 简介审核-获取医生列表-分页
doctorIntroductionGroup.GET("", api.UserDoctor.GetDoctorIntroductionPage)
// 简介审核-医生详情
doctorIntroductionGroup.GET("/:doctor_id", api.UserDoctor.GetUserDoctorIntroduction)
// 简介审核-审核医生
doctorIntroductionGroup.PUT("/:doctor_id", api.UserDoctor.PutDoctorIntroduction)
}
}
// 订单管理
orderGroup := adminGroup.Group("/order")
{
// 问诊订单
inquiryGroup := orderGroup.Group("/inquiry")
{
// 获取问诊订单列表-分页
inquiryGroup.GET("", api.OrderInquiry.GetOrderInquiryPage)
// 问诊订单详情
inquiryGroup.GET("/:order_inquiry_id", api.OrderInquiry.GetOrderInquiry)
// 取消问诊订单
inquiryGroup.PUT("/cancel/:order_inquiry_id", api.OrderInquiry.CancelOrderInquiry)
// 获取问诊订单im内容列表-分页
inquiryGroup.GET("/im", api.OrderInquiry.GetOrderInquiryImPage)
// 修改问诊订单年度审查隐藏状态
inquiryGroup.PUT("/hide/:order_inquiry_id", api.OrderInquiry.PutAnnualReviewHide)
}
// 药品订单
productGroup := orderGroup.Group("/product")
{
// 获取药品订单列表-分页
productGroup.GET("", api.OrderProduct.GetOrderProductPage)
// 药品订单详情
productGroup.GET("/:order_product_id", api.OrderProduct.GetOrderProduct)
// 取消药品订单
productGroup.PUT("/cancel/:order_product_id", api.OrderProduct.CancelOrderProduct)
}
// 上报数据
reportGroup := orderGroup.Group("/report")
{
// 上报处方平台
reportGroup.POST("/pre/:order_product_id", api.Order.ReportPreOrder)
// 上报监管平台
}
// 问诊记录-继承问诊订单路由
inquiryRecordGroup := inquiryGroup.Group("/record")
{
// 获取问诊记录列表-分页
inquiryRecordGroup.GET("", api.OrderInquiry.GetOrderInquiryRecordPage)
// 问诊记录详情
inquiryRecordGroup.GET("/:order_inquiry_id", api.OrderInquiry.GetOrderInquiryRecord)
}
// 服务包订单
serviceGroup := orderGroup.Group("/service")
{
// 获取服务包订单列表-分页
serviceGroup.POST("/page", api.OrderServicePackage.GetOrderServicePackagePage)
// 获取服务包订单详情
serviceGroup.GET("/:order_service_id", api.OrderServicePackage.GetOrderServicePackage)
// 获取服务包订单服务权益详情
serviceGroup.GET("/detail/:order_service_id", api.OrderServicePackage.GetOrderServicePackageDetailInfo)
// 取消服务包订单
serviceGroup.PUT("/cancel/:order_service_id", api.OrderServicePackage.CancelOrderServicePackage)
}
}
// 病例管理
caseGroup := adminGroup.Group("/case")
{
// 问诊病例
caseInquiryGroup := caseGroup.Group("/inquiry")
{
// 问诊病例详情
caseInquiryGroup.GET("/:inquiry_case_id", api.Case.GetOrderInquiryCase)
// 上报监管平台
}
// 检测病例
}
// 患者管理
patientGroup := adminGroup.Group("/patient")
{
// 获取患者列表-分页
patientGroup.GET("", api.UserPatient.GetUserPatientPage)
// 获取患者列表-限制条数
patientGroup.GET("/list", api.UserPatient.GetUserPatientList)
// 患者详情
patientGroup.GET("/:patient_id", api.UserPatient.GetUserPatient)
// 修改患者状态
patientGroup.PUT("/status/:patient_id", api.UserPatient.PutUserDoctorStatus)
// 就诊人管理
patientFamilyGroup := patientGroup.Group("/family")
{
// 获取就诊人列表-分页
patientFamilyGroup.GET("", api.PatientFamily.GetPatientFamilyPage)
// 就诊人详情
patientFamilyGroup.GET("/:family_id", api.PatientFamily.GetPatientFamily)
}
}
// 处方管理
prescriptionGroup := adminGroup.Group("/prescription")
{
// 获取处方列表-分页
prescriptionGroup.GET("", api.OrderPrescription.GetOrderPrescriptionPage)
// 处方详情
prescriptionGroup.GET("/:order_prescription_id", api.OrderPrescription.GetOrderPrescription)
prescriptionTransferGroup := prescriptionGroup.Group("/transfer")
{
// 获取抄方的处方列表-分页
prescriptionTransferGroup.GET("", api.OrderPrescription.GetOrderPrescriptionTransferPage)
// 抄方的处方详情
prescriptionTransferGroup.GET("/:order_prescription_id", api.OrderPrescription.GetOrderPrescription)
}
}
// 问诊管理
inquiryGroup := adminGroup.Group("/inquiry")
{
// 医生问诊配置
doctorGroup := inquiryGroup.Group("/doctor")
{
// 获取开启问诊配置医生列表-分页
doctorGroup.GET("/page", api.InquiryConfig.GetDoctorInquiryConfigPage)
// 医生问诊配置详情
doctorGroup.GET("", api.InquiryConfig.GetDoctorInquiryConfig)
// 修改医生问诊配置
doctorGroup.PUT("/:inquiry_config_id", api.InquiryConfig.PutDoctorInquiryConfig)
// 新增医生问诊配置
doctorGroup.POST("", api.InquiryConfig.AddDoctorInquiryConfig)
// 医生健康包配置
healthGroup := doctorGroup.Group("/health")
{
// 获取开启健康包服务的医生-分页
healthGroup.GET("", api.DoctorConfigHealthPackage.GetDoctorHealthPage)
// 医生健康包配置详情
healthGroup.GET("/:health_package_id", api.DoctorConfigHealthPackage.GetDoctorHealth)
// 修改医生健康包配置
healthGroup.PUT("/:health_package_id", api.DoctorConfigHealthPackage.PutDoctorHealth)
// 新增医生健康包配置
healthGroup.POST("", api.DoctorConfigHealthPackage.AddDoctorHealth)
}
// 医生随访包配置
followGroup := doctorGroup.Group("/follow")
{
// 获取开启随访包服务的医生-分页
followGroup.GET("", api.DoctorConfigFollowPackage.GetDoctorFollowPage)
// 医生随访包配置详情
followGroup.GET("/:follow_package_id", api.DoctorConfigFollowPackage.GetDoctorFollow)
// 修改医生随访包配置
followGroup.PUT("/:follow_package_id", api.DoctorConfigFollowPackage.PutDoctorFollow)
// 新增医生随访包配置
followGroup.POST("", api.DoctorConfigFollowPackage.AddDoctorFollow)
}
}
// 系统问诊配置
systemGroup := inquiryGroup.Group("/system")
{
// 获取系统问诊配置列表-分页
systemGroup.GET("", api.InquiryConfig.GetSystemInquiryConfigPage)
// 系统问诊配置详情-id
systemGroup.GET("/:system_inquiry_config_id", api.InquiryConfig.GetSystemInquiryConfig)
// 修改系统问诊配置
systemGroup.PUT("/:system_inquiry_config_id", api.InquiryConfig.PutSystemInquiryConfig)
// 系统问诊配置详情-条件
systemGroup.GET("/detail", api.InquiryConfig.GetSystemInquiryConfigDetail)
}
// 健康包管理
healthGroup := inquiryGroup.Group("/health")
{
// 获取健康包列表-分页
healthGroup.POST("/page", api.HealthPackage.GetHealthPackagePage)
// 获取健康包列表-限制条数
healthGroup.GET("/list", api.HealthPackage.GetHealthPackageList)
// 获取健康包详情
healthGroup.GET("/:package_id", api.HealthPackage.GetHealthPackage)
// 修改健康包
healthGroup.PUT("/:package_id", api.HealthPackage.PutHealthPackage)
// 新增健康包
healthGroup.POST("", api.HealthPackage.AddHealthPackage)
}
}
// 财务管理
financeGroup := adminGroup.Group("/finance")
{
// 提现记录
withdrawalGroup := financeGroup.Group("/withdrawal")
{
// 获取医生提现列表-分页
withdrawalGroup.GET("", api.DoctorWithdrawal.GetDoctorWithdrawalPage)
// 提现详情
withdrawalGroup.GET("/:withdrawal_id", api.DoctorWithdrawal.GetDoctorWithdrawal)
// 提现详情-关联订单列表-分页
withdrawalGroup.GET("/order", api.DoctorWithdrawal.GetDoctorWithdrawalOrderPage)
// 修改提现个人所得税
withdrawalGroup.PUT("/income/:withdrawal_id", api.DoctorWithdrawal.PutDoctorWithdrawalIncome)
// 修改提现审核状态
withdrawalGroup.PUT("/examine/:withdrawal_id", api.DoctorWithdrawal.PutDoctorWithdrawalExamine)
// 确认打款
withdrawalGroup.PUT("/payment/:withdrawal_id", api.DoctorWithdrawal.PutDoctorWithdrawalPayment)
}
}
// ca管理
caGroup := adminGroup.Group("/ca")
{
// 云证书
certGroup := caGroup.Group("/cert")
{
// 用户
userGroup := certGroup.Group("/user")
{
// 更新云证书-个人-续约
userGroup.PUT("/renew/:user_id", api.UserCaCert.RenewUserCloudCert)
// 注销云证书-个人
userGroup.PUT("/remove/:user_id", api.UserCaCert.RemoveUserCloudCert)
// 申请云证书-个人
userGroup.POST("/:user_id", api.UserCaCert.AddUserCloudCert)
// 补充所有用户云证书数据-纯接口,无调用
userGroup.POST("", api.UserCaCert.UserCloudCert)
}
// 医院
hospitalGroup := certGroup.Group("/hospital")
{
// 获取医院云证书数据
hospitalGroup.GET("", api.UserCaCert.GetHospitalCloudCert)
// 更新云证书-医院-续约
hospitalGroup.PUT("/renew", api.UserCaCert.RenewHospitalCloudCert)
// 申请云证书-医院
hospitalGroup.POST("", api.UserCaCert.AddHospitalCloudCert)
}
}
// 签章
signGroup := caGroup.Group("/sign")
{
// 添加签章配置
signGroup.POST("", api.UserCaCert.AddUserSignConfig)
}
}
// 导出管理
exportGroup := adminGroup.Group("/export")
{
// 提现
withdrawalGroup := exportGroup.Group("/withdrawal")
{
// 提现记录
withdrawalGroup.POST("", api.Export.DoctorWithdrawal)
// 提现记录-关联订单
withdrawalGroup.POST("/order", api.Export.DoctorWithdrawalOrder)
}
// 医生
doctorGroup := exportGroup.Group("/doctor")
{
// 医生列表
doctorGroup.POST("", api.Export.UserDoctor)
// 医生银行卡列表
doctorGroup.POST("/bank/card", api.Export.UserDoctorBankCard)
// 医生账户
doctorGroup.POST("/account", api.Export.DoctorAccount)
// 医生账户-关联订单
doctorGroup.POST("/account/order", api.Export.OrderInquiryForAccount)
}
// 患者
patientGroup := exportGroup.Group("/patient")
{
// 患者列表
patientGroup.POST("", api.Export.UserPatient)
// 就诊人列表
patientGroup.POST("/family", api.Export.PatientFamily)
}
// 订单
orderGroup := exportGroup.Group("/order")
{
// 问诊订单
orderGroup.POST("/inquiry", api.Export.OrderInquiry)
// 药品订单
orderGroup.POST("/product", api.Export.OrderProduct)
// 服务包订单
orderGroup.POST("/service", api.Export.OrderService)
}
// 处方
prescriptionGroup := exportGroup.Group("/prescription")
{
// 处方
prescriptionGroup.POST("", api.Export.OrderPrescription)
// 抄方的处方
prescriptionGroup.POST("/transfer", api.Export.OrderTransferPrescription)
}
// 药品
productGroup := exportGroup.Group("/product")
{
// 系统药品
productGroup.POST("", api.Export.Product)
}
// 药房
pharmacyGroup := exportGroup.Group("/pharmacy")
{
// 药房关联医生
pharmacyGroup.POST("/doctor", api.Export.PharmacyDoctor)
}
}
// 商品管理
productGroup := adminGroup.Group("/product")
{
// 获取系统商品列表-分页
productGroup.POST("/page", api.Product.GetProductPage)
// 获取系统商品列表-限制条数
productGroup.GET("/list", api.Product.GetProductList)
// 系统商品详情
productGroup.GET("/:product_id", api.Product.GetProduct)
// 新增商品
productGroup.POST("", api.Product.AddProduct)
// 修改商品
productGroup.PUT("/:product_id", api.Product.PutProduct)
// 修改商品状态(上/下架)
productGroup.PUT("/status/:product_id", api.Product.PutProductStatus)
// 平台商品
platformGroup := productGroup.Group("/platform")
{
// 获取平台商品列表-分页
platformGroup.GET("", api.Product.GetPlatformProductPage)
// 平台商品详情
platformGroup.GET("/:product_platform_id", api.Product.GetProductPlatform)
// 获取平台商品列表
platformGroup.GET("/list", api.Product.GetPlatformProductList)
}
}
// 优惠卷管理
couponGroup := adminGroup.Group("/coupon")
{
// 系统优惠卷管理
systemGroup := couponGroup.Group("/system")
{
// 获取系统优惠卷列表-分页
systemGroup.POST("/page", api.Coupon.GetSystemCouponPage)
// 系统优惠卷详情
systemGroup.GET("/:coupon_id", api.Coupon.GetSystemCoupon)
// 新增系统优惠卷
systemGroup.POST("", api.Coupon.AddSystemCoupon)
// 修改系统优惠卷
systemGroup.PUT("/:coupon_id", api.Coupon.PutSystemCoupon)
// 修改系统优惠卷状态
systemGroup.PUT("/status/:coupon_id", api.Coupon.PutSystemCouponStatus)
// 发放系统优惠卷
systemGroup.POST("/grant/:coupon_id", api.Coupon.GrantSystemCoupon)
}
// 用户优惠卷管理
userGroup := couponGroup.Group("/user")
{
// 获取用户优惠卷列表-分页
userGroup.POST("/page", api.Coupon.GetUserCouponPage)
}
}
// 基础数据管理
basicGroup := adminGroup.Group("/basic")
{
// 地区管理
areaGroup := basicGroup.Group("/area")
{
// 获取地区列表
areaGroup.GET("", api.Basic.Area.GetAreaList)
// 新增地区
areaGroup.POST("", api.Basic.Area.AddArea)
// 修改地区
areaGroup.PUT("/:area_id", api.Basic.Area.PutArea)
}
// 医院管理
hospitalGroup := basicGroup.Group("/hospital")
{
// 获取医院列表-限制条数
hospitalGroup.GET("", api.Hospital.GetHospitalList)
// 获取医院列表-分页
hospitalGroup.POST("/page", api.Hospital.GetHospitalPage)
// 获取医院详情
hospitalGroup.GET("/:hospital_id", api.Hospital.GetHospital)
// 新增医院
hospitalGroup.POST("", api.Hospital.AddHospital)
// 修改医院
hospitalGroup.PUT("/:hospital_id", api.Hospital.PutHospital)
}
// 药房管理
pharmacyGroup := basicGroup.Group("/pharmacy")
{
// 获取药房列表-分页
pharmacyGroup.POST("/page", api.Pharmacy.GetPharmacyPage)
// 获取药房列表
pharmacyGroup.GET("/list", api.Pharmacy.GetPharmacyList)
// 获取药房详情
pharmacyGroup.GET("/:pharmacy_id", api.Pharmacy.GetPharmacy)
// 新增药房
pharmacyGroup.POST("", api.Pharmacy.AddPharmacy)
// 修改药房
pharmacyGroup.PUT("/:pharmacy_id", api.Pharmacy.PutPharmacy)
// 修改药房状态
pharmacyGroup.PUT("/status/:pharmacy_id", api.Pharmacy.PutPharmacyStatus)
// 删除药房
pharmacyGroup.DELETE("/:pharmacy_id", api.Pharmacy.DeletePharmacy)
// 药房绑定的医生列表-分页
pharmacyGroup.POST("/doctor/page", api.Pharmacy.GetPharmacyDoctorPage)
// 药房绑定的医生列表
pharmacyGroup.GET("/doctor/:pharmacy_id", api.Pharmacy.GetPharmacyDoctorList)
// 药房关联医生-导出
pharmacyGroup.POST("/doctor/export", api.Export.PharmacyDoctor)
// 获取药房下线受影响医生列表(预检接口)
pharmacyGroup.GET("/affected-doctors/:pharmacy_id", api.Pharmacy.GetAffectedDoctors)
// 批量迁移医生默认药房并执行药房操作(禁用/删除)
pharmacyGroup.POST("/batch-transfer-and-action", api.Pharmacy.BatchTransferAndAction)
}
// 科普分类管理
articleClassGroup := basicGroup.Group("/article/class")
{
// 获取基础分类列表-分页
articleClassGroup.POST("/page", api.Basic.BasicArticleClass.GetBasicArticleClassPage)
// 获取基础分类列表
articleClassGroup.POST("/list", api.Basic.BasicArticleClass.GetBasicArticleClassList)
// 获取基础分类详情
articleClassGroup.GET("/:basic_class_id", api.Basic.BasicArticleClass.GetBasicArticleClass)
// 修改基础分类
articleClassGroup.PUT("/:basic_class_id", api.Basic.BasicArticleClass.PutBasicArticleClass)
// 新增基础分类
articleClassGroup.POST("", api.Basic.BasicArticleClass.AddBasicArticleClass)
}
}
// 药房兼容路由(兼容无 /basic 前缀的 /admin/pharmacy/*)
adminPharmacyGroup := adminGroup.Group("/pharmacy")
{
// 获取药房下线受影响医生列表(预检接口)
adminPharmacyGroup.GET("/affected-doctors/:pharmacy_id", api.Pharmacy.GetAffectedDoctors)
// 批量迁移医生默认药房并执行药房操作(禁用/删除)
adminPharmacyGroup.POST("/batch-transfer-and-action", api.Pharmacy.BatchTransferAndAction)
}
// 文章管理
articleGroup := adminGroup.Group("/article")
{
// 科普文章
scienceGroup := articleGroup.Group("science")
{
// 获取科普文章列表-分页
scienceGroup.POST("/page", api.ArticleScience.GetArticleSciencePage)
// 获取科普文章详情
scienceGroup.GET("/:article_id", api.ArticleScience.GetArticleScience)
// 修改科普文章
scienceGroup.PUT("/:article_id", api.ArticleScience.PutArticleScience)
// 新增科普文章
scienceGroup.POST("", api.ArticleScience.AddArticleScience)
// 操作科普文章状态
scienceGroup.PUT("/status/:article_id", api.ArticleScience.PutArticleScienceStatus)
// 操作科普文章置顶状态
scienceGroup.PUT("/top/:article_id", api.ArticleScience.PutArticleScienceTop)
// 科普文章来源
sourceGroup := scienceGroup.Group("source")
{
// 获取科普文章来源列表-分页
sourceGroup.POST("/page", api.ArticleScienceSource.GetArticleScienceSourcePage)
// 获取科普文章来源列表
sourceGroup.GET("/list", api.ArticleScienceSource.GetArticleScienceSourceList)
// 获取科普文章来源详情
sourceGroup.GET("/:source_id", api.ArticleScienceSource.GetArticleScienceSource)
// 修改科普文章来源
sourceGroup.PUT("/:source_id", api.ArticleScienceSource.PutArticleScienceSource)
// 新增科普文章来源
sourceGroup.POST("", api.ArticleScienceSource.AddArticleScienceSource)
}
}
}
}