capabilities.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package model
  2. import (
  3. "project_management/app/e"
  4. "project_management/global"
  5. "project_management/unity"
  6. "project_management/utils"
  7. "strings"
  8. )
  9. type Capabilities struct {
  10. utils.BaseModel
  11. CapName string `gorm:"type:varchar(255);index:idx_name,unique" json:"cap_name"` // 应用名
  12. CpaType string `gorm:"type:varchar(50);" json:"cap_type"` // 应用类型
  13. Image string `gorm:"type:varchar(255);" json:"image"` // 应用图片
  14. CapId string `gorm:"type:varchar(50);unique" json:"cap_id"` // 应用id
  15. CapDescription string `gorm:"type:varchar(255);" json:"cap_description"` // 应用描述
  16. State int `gorm:"type:int;" json:"state"` // 状态 1启用 2禁用
  17. CapUrl string `gorm:"type:varchar(255);" json:"cap_url"` // 应用地址
  18. Price float64 `gorm:"type:decimal(10,5);" json:"price"` //价格
  19. Count int64 `gorm:"type:int;" json:"count"` // 使用数量
  20. PcIsShow int `gorm:"type:int;" json:"pc_is_show"` // 是否pc端显示
  21. MobileIsShow int `gorm:"type:int;" json:"mobile_is_show"` // 是否移动端显示
  22. }
  23. type CapabilitiesApply struct {
  24. utils.BaseModel
  25. CapId string `gorm:"type:varchar(50);" json:"cap_id"` // 功能id
  26. AppId string `gorm:"type:varchar(50);" json:"app_id"` // 应用id
  27. }
  28. type CapabilitiesDto struct {
  29. Capabilities
  30. Count int64 `json:"count"` // 使用数量
  31. }
  32. func (c Capabilities) TableName() string {
  33. return "capabilities"
  34. }
  35. func (c Capabilities) AddCapabilities(capabilities Capabilities) e.Rescode {
  36. //TODO implement me
  37. capabilities.State = 1
  38. tx := global.DBLink.Table(c.TableName()).Create(&capabilities)
  39. if tx.Error != nil {
  40. if strings.Contains(tx.Error.Error(), "Duplicate entry") {
  41. return e.TheParametersAreRepeated
  42. }
  43. return e.INSERTFAIL
  44. }
  45. if tx.RowsAffected > 0 {
  46. return e.SUCCESS
  47. }
  48. return e.INSERTFAIL
  49. }
  50. func (c Capabilities) GetCapabilitiesList(params unity.QueryPageParams, capabilities Capabilities, queryCond interface{}) (result []Capabilities, total int64, err error) {
  51. //TODO implement me
  52. query := global.DBLink.Table(capabilities.TableName())
  53. if params.Query != "%%" {
  54. query = query.Where(queryCond, params.Query)
  55. }
  56. if params.State != "" {
  57. query = query.Where("state=?", params.State)
  58. }
  59. if err = query.Count(&total).Error; err != nil {
  60. return nil, 0, err
  61. }
  62. offset := (params.Page - 1) * params.Size
  63. if err = query.Offset(offset).Limit(params.Size).Order(params.Desc).Find(&result).Error; err != nil {
  64. return nil, 0, err
  65. }
  66. return result, total, nil
  67. }
  68. func (c Capabilities) AdminGetCapabilitiesList(params unity.QueryPageParams, capabilities Capabilities, queryCond interface{}) (result []CapabilitiesDto, total int64, err error) {
  69. //TODO implement me
  70. query := global.DBLink.Table(capabilities.TableName())
  71. if params.Query != "%%" {
  72. query = query.Where(queryCond, params.Query)
  73. }
  74. if params.State != "" {
  75. query = query.Where("state=?", params.State)
  76. }
  77. if err = query.Count(&total).Error; err != nil {
  78. return nil, 0, err
  79. }
  80. offset := (params.Page - 1) * params.Size
  81. if err = query.Offset(offset).Limit(params.Size).Order(params.Desc).Find(&result).Error; err != nil {
  82. return nil, 0, err
  83. }
  84. //for i, _ := range result {
  85. //
  86. //}
  87. return result, total, nil
  88. }
  89. func (c Capabilities) GetCapabilitiesById(id string) (Capabilities, error) {
  90. //TODO implement me
  91. panic("implement me")
  92. }
  93. // CapIdISRepeat 检查CapId是否重复
  94. func CapIdISRepeat(id string) bool {
  95. tx := global.DBLink.Where("cap_id = ?", id).First(&Capabilities{})
  96. if tx.RowsAffected > 0 {
  97. return true
  98. }
  99. return false
  100. }