diff --git a/api/controller/healthPackage.go b/api/controller/healthPackage.go index 07cba00..6efbf9b 100644 --- a/api/controller/healthPackage.go +++ b/api/controller/healthPackage.go @@ -56,6 +56,38 @@ func (r *HealthPackage) GetHealthPackagePage(c *gin.Context) { responses.OkWithData(result, c) } +// GetHealthPackageList 获取健康包列表-限制条数 +func (r *HealthPackage) GetHealthPackageList(c *gin.Context) { + healthPackageRequest := requests.HealthPackageRequest{} + req := healthPackageRequest.GetHealthPackageList + 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 + } + + healthPackageDao := dao.HealthPackageDao{} + healthPackage, err := healthPackageDao.GetHealthPackageListSearch(req) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + // 处理返回值 + getHealthPackageListResponses := dto.GetHealthPackageListDto(healthPackage) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + responses.OkWithData(getHealthPackageListResponses, c) +} + // GetHealthPackage 获取健康包详情 func (r *HealthPackage) GetHealthPackage(c *gin.Context) { id := c.Param("package_id") diff --git a/api/dao/healthPackage.go b/api/dao/healthPackage.go index 1497adf..81a5a7c 100644 --- a/api/dao/healthPackage.go +++ b/api/dao/healthPackage.go @@ -88,3 +88,22 @@ func (r *HealthPackageDao) GetHealthPackagePageSearch(req requests.GetHealthPack } return m, totalRecords, nil } + +// GetHealthPackageListSearch 获取健康包列表-限制条数 +func (r *HealthPackageDao) GetHealthPackageListSearch(req requests.GetHealthPackageList) (m []*model.HealthPackage, err error) { + // 构建查询条件 + query := global.Db.Model(&model.HealthPackage{}) + + // 健康包-关联商品 + query = query.Preload("HealthPackageProduct") + + // 排序 + query = query.Order("created_at desc") + + err = query.Limit(req.Limit).Find(&m).Error + if err != nil { + return nil, err + } + + return m, nil +} diff --git a/api/requests/healthPackage.go b/api/requests/healthPackage.go index 0eff1fe..2d19bda 100644 --- a/api/requests/healthPackage.go +++ b/api/requests/healthPackage.go @@ -4,6 +4,7 @@ type HealthPackageRequest struct { GetHealthPackagePage // 获取健康包列表-分页 PutHealthPackage // 修改健康包 AddHealthPackage // 新增健康包 + GetHealthPackageList // 获取健康包列表-限制条数 } // GetHealthPackagePage 获取健康包列表-分页 @@ -12,6 +13,11 @@ type GetHealthPackagePage struct { PageSize int `json:"page_size" form:"page_size" label:"每页个数"` } +// GetHealthPackageList 获取健康包列表-限制条数 +type GetHealthPackageList struct { + Limit int `json:"limit" form:"limit" label:"限制条数"` +} + // PutHealthPackage 修改健康包 type PutHealthPackage struct { ServiceCount int `json:"service_count" form:"service_count" label:"总服务次数" validate:"required,min=1"` diff --git a/api/router/router.go b/api/router/router.go index 0e166f0..acda2ab 100644 --- a/api/router/router.go +++ b/api/router/router.go @@ -585,6 +585,9 @@ func privateRouter(r *gin.Engine, api controller.Api) { // 获取健康包列表-分页 healthGroup.POST("/page", api.HealthPackage.GetHealthPackagePage) + // 获取健康包列表-限制条数 + healthGroup.GET("/list", api.HealthPackage.GetHealthPackageList) + // 获取健康包详情 healthGroup.GET("/:package_id", api.HealthPackage.GetHealthPackage)