package model import ( "project_management/app/e" "project_management/global" "project_management/unity" "project_management/utils" "strings" ) type Capabilities struct { utils.BaseModel CapName string `gorm:"type:varchar(255);index:idx_name,unique" json:"cap_name"` // 应用名 CpaType string `gorm:"type:varchar(50);" json:"cap_type"` // 应用类型 Image string `gorm:"type:varchar(255);" json:"image"` // 应用图片 CapId string `gorm:"type:varchar(50);unique" json:"cap_id"` // 应用id CapDescription string `gorm:"type:varchar(255);" json:"cap_description"` // 应用描述 State int `gorm:"type:int;" json:"state"` // 状态 1启用 2禁用 CapUrl string `gorm:"type:varchar(255);" json:"cap_url"` // 应用地址 Price float64 `gorm:"type:decimal(10,5);" json:"price"` //价格 Count int64 `gorm:"type:int;" json:"count"` // 使用数量 PcIsShow int `gorm:"type:int;" json:"pc_is_show"` // 是否pc端显示 MobileIsShow int `gorm:"type:int;" json:"mobile_is_show"` // 是否移动端显示 } type CapabilitiesApply struct { utils.BaseModel CapId string `gorm:"type:varchar(50);" json:"cap_id"` // 功能id AppId string `gorm:"type:varchar(50);" json:"app_id"` // 应用id } type CapabilitiesDto struct { Capabilities Count int64 `json:"count"` // 使用数量 } func (c Capabilities) TableName() string { return "capabilities" } func (c Capabilities) AddCapabilities(capabilities Capabilities) e.Rescode { //TODO implement me capabilities.State = 1 tx := global.DBLink.Table(c.TableName()).Create(&capabilities) if tx.Error != nil { if strings.Contains(tx.Error.Error(), "Duplicate entry") { return e.TheParametersAreRepeated } return e.INSERTFAIL } if tx.RowsAffected > 0 { return e.SUCCESS } return e.INSERTFAIL } func (c Capabilities) GetCapabilitiesList(params unity.QueryPageParams, capabilities Capabilities, queryCond interface{}) (result []Capabilities, total int64, err error) { //TODO implement me query := global.DBLink.Table(capabilities.TableName()) if params.Query != "%%" { query = query.Where(queryCond, params.Query) } if params.State != "" { query = query.Where("state=?", params.State) } if err = query.Count(&total).Error; err != nil { return nil, 0, err } offset := (params.Page - 1) * params.Size if err = query.Offset(offset).Limit(params.Size).Order(params.Desc).Find(&result).Error; err != nil { return nil, 0, err } return result, total, nil } func (c Capabilities) AdminGetCapabilitiesList(params unity.QueryPageParams, capabilities Capabilities, queryCond interface{}) (result []CapabilitiesDto, total int64, err error) { //TODO implement me query := global.DBLink.Table(capabilities.TableName()) if params.Query != "%%" { query = query.Where(queryCond, params.Query) } if params.State != "" { query = query.Where("state=?", params.State) } if err = query.Count(&total).Error; err != nil { return nil, 0, err } offset := (params.Page - 1) * params.Size if err = query.Offset(offset).Limit(params.Size).Order(params.Desc).Find(&result).Error; err != nil { return nil, 0, err } //for i, _ := range result { // //} return result, total, nil } func (c Capabilities) GetCapabilitiesById(id string) (Capabilities, error) { //TODO implement me panic("implement me") } // CapIdISRepeat 检查CapId是否重复 func CapIdISRepeat(id string) bool { tx := global.DBLink.Where("cap_id = ?", id).First(&Capabilities{}) if tx.RowsAffected > 0 { return true } return false }