assessment_variety.go 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. package models
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "fmt"
  6. "github.com/rdlucklib/rdluck_tools/paging"
  7. "strings"
  8. "time"
  9. )
  10. const (
  11. AssessmentVarietyDisabled = 0
  12. AssessmentVarietyEnabled = 1
  13. )
  14. // AssessmentVariety 研究员考核品种表
  15. type AssessmentVariety struct {
  16. AssessmentVarietyId int `gorm:"column:assessment_variety_id;primaryKey;autoIncrement"`
  17. VarietyName string `description:"品种名称"`
  18. VarietyCode string `description:"品种编码"`
  19. MonthlyFluctuate float64 `description:"月度波动阈值"`
  20. WeeklyFluctuate float64 `description:"周度波动阈值"`
  21. Enabled int `description:"状态:0-禁用;1-正常"`
  22. CreateTime time.Time `description:"创建时间"`
  23. ModifyTime time.Time `description:"修改时间"`
  24. }
  25. func (m *AssessmentVariety) TableName() string {
  26. return "assessment_variety"
  27. }
  28. type AssessmentVarietyCols struct {
  29. PrimaryId string
  30. VarietyName string
  31. VarietyCode string
  32. MonthlyFluctuate string
  33. WeeklyFluctuate string
  34. Enabled string
  35. CreateTime string
  36. ModifyTime string
  37. }
  38. func (m *AssessmentVariety) Cols() AssessmentVarietyCols {
  39. return AssessmentVarietyCols{
  40. PrimaryId: "assessment_variety_id",
  41. VarietyName: "variety_name",
  42. VarietyCode: "variety_code",
  43. MonthlyFluctuate: "monthly_fluctuate",
  44. WeeklyFluctuate: "weekly_fluctuate",
  45. Enabled: "enabled",
  46. CreateTime: "create_time",
  47. ModifyTime: "modify_time",
  48. }
  49. }
  50. func (m *AssessmentVariety) Create() (err error) {
  51. err = global.DEFAULT_DB.Create(m).Error
  52. return
  53. }
  54. func (m *AssessmentVariety) CreateMulti(items []*AssessmentVariety) (err error) {
  55. if len(items) == 0 {
  56. return
  57. }
  58. err = global.DEFAULT_DB.CreateInBatches(items, utils.MultiAddNum).Error
  59. return
  60. }
  61. func (m *AssessmentVariety) Update(cols []string) (err error) {
  62. err = global.DEFAULT_DB.Select(cols).Updates(m).Error
  63. return
  64. }
  65. func (m *AssessmentVariety) Remove() (err error) {
  66. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
  67. err = global.DEFAULT_DB.Exec(sql, m.AssessmentVarietyId).Error
  68. return
  69. }
  70. func (m *AssessmentVariety) MultiRemove(ids []int) (err error) {
  71. if len(ids) == 0 {
  72. return
  73. }
  74. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.Cols().PrimaryId, utils.GetOrmInReplace(len(ids)))
  75. err = global.DEFAULT_DB.Exec(sql, ids).Error
  76. return
  77. }
  78. func (m *AssessmentVariety) RemoveByCondition(condition string, pars []interface{}) (err error) {
  79. if condition == "" {
  80. return
  81. }
  82. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
  83. err = global.DEFAULT_DB.Exec(sql, pars...).Error
  84. return
  85. }
  86. func (m *AssessmentVariety) GetItemById(primaryId int) (item *AssessmentVariety, err error) {
  87. sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
  88. err = global.DEFAULT_DB.Raw(sql, primaryId).First(&item).Error
  89. return
  90. }
  91. func (m *AssessmentVariety) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *AssessmentVariety, err error) {
  92. order := ``
  93. if orderRule != "" {
  94. order = ` ORDER BY ` + orderRule
  95. }
  96. sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
  97. err = global.DEFAULT_DB.Raw(sql, pars...).First(&item).Error
  98. return
  99. }
  100. func (m *AssessmentVariety) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  101. sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  102. err = global.DEFAULT_DB.Raw(sql, pars...).Scan(&count).Error
  103. return
  104. }
  105. func (m *AssessmentVariety) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*AssessmentVariety, err error) {
  106. fields := strings.Join(fieldArr, ",")
  107. if len(fieldArr) == 0 {
  108. fields = `*`
  109. }
  110. order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
  111. if orderRule != "" {
  112. order = ` ORDER BY ` + orderRule
  113. }
  114. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  115. err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
  116. return
  117. }
  118. func (m *AssessmentVariety) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*AssessmentVariety, err error) {
  119. fields := strings.Join(fieldArr, ",")
  120. if len(fieldArr) == 0 {
  121. fields = `*`
  122. }
  123. order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
  124. if orderRule != "" {
  125. order = ` ORDER BY ` + orderRule
  126. }
  127. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
  128. pars = append(pars, startSize, pageSize)
  129. err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
  130. return
  131. }
  132. // AssessmentVarietyAddReq 新增品种请求
  133. type AssessmentVarietyAddReq struct {
  134. VarietyName string `description:"品种名称"`
  135. VarietyCode string `description:"品种编码"`
  136. MonthlyFluctuate float64 `description:"月度波动阈值"`
  137. WeeklyFluctuate float64 `description:"周度波动阈值"`
  138. AssessmentResearcherIds []int `description:"研究员ID"`
  139. }
  140. // AssessmentVarietyEditReq 编辑品种请求
  141. type AssessmentVarietyEditReq struct {
  142. AssessmentVarietyId int `description:"品种ID"`
  143. AssessmentVarietyAddReq
  144. }
  145. // AssessmentVarietyRemoveReq 删除品种请求
  146. type AssessmentVarietyRemoveReq struct {
  147. AssessmentVarietyId int `description:"研究员ID"`
  148. }
  149. // AssessmentVarietyPageListReq 品种列表
  150. type AssessmentVarietyPageListReq struct {
  151. PageSize int `form:"PageSize"`
  152. CurrentIndex int `form:"CurrentIndex"`
  153. AssessmentVarietyIds string `form:"AssessmentVarietyIds" description:"品种IDs"`
  154. OnlyEnabled bool `form:"OnlyEnabled" description:"是否仅显示启用:true-是"`
  155. }
  156. // AssessmentVarietyPageListResp 研究员列表响应
  157. type AssessmentVarietyPageListResp struct {
  158. List []*AssessmentVarietyDetail
  159. Paging *paging.PagingItem `description:"分页数据"`
  160. }
  161. type AssessmentVarietyDetail struct {
  162. AssessmentVarietyId int `description:"研究员ID"`
  163. VarietyName string `description:"品种名称"`
  164. VarietyCode string `description:"品种编码"`
  165. MonthlyFluctuate float64 `description:"月度波动阈值"`
  166. WeeklyFluctuate float64 `description:"周度波动阈值"`
  167. Enabled int `description:"状态:0-禁用;1-正常"`
  168. RelationResearcher []AssessmentResearcherDetail `description:"关联研究员信息"`
  169. }
  170. func (m *AssessmentVariety) Format2Detail() (item *AssessmentVarietyDetail) {
  171. item = new(AssessmentVarietyDetail)
  172. item.AssessmentVarietyId = m.AssessmentVarietyId
  173. item.VarietyName = m.VarietyName
  174. item.VarietyCode = m.VarietyCode
  175. item.MonthlyFluctuate = m.MonthlyFluctuate
  176. item.WeeklyFluctuate = m.WeeklyFluctuate
  177. item.Enabled = m.Enabled
  178. return
  179. }