sandbox_version.go 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package sandbox
  2. import (
  3. "eta_gn/eta_api/global"
  4. "time"
  5. )
  6. // SandboxVersion 沙盘推演版本表
  7. //type SandboxVersion struct {
  8. // SandboxVersionId int `orm:"column(sandbox_version_id);pk" description:"沙盘版本记录id"`
  9. // SandboxId int `description:"沙盘id"`
  10. // Name string `description:"沙盘名称"`
  11. // ChartPermissionId int `description:"品种id"`
  12. // ChartPermissionName string `description:"品种名称"`
  13. // CurrVersion int `description:"当前版本"`
  14. // Content string `description:"沙盘数据"`
  15. // SvgData string `description:"沙盘svg图片数据"`
  16. // PicUrl string `description:"沙盘图片地址"`
  17. // OpUserId int `description:"最近一次编辑操作的用户id"`
  18. // OpUserName string `description:"最近一次编辑的用户名称(冗余字段,避免查表)"`
  19. // VersionCode string `description:"沙盘版本code,对外开放使用"`
  20. // IsDelete int8 `description:"是否删除,0:未删除,1:已删除"`
  21. // CreateTime time.Time `description:"创建时间"`
  22. //}
  23. type SandboxVersion struct {
  24. SandboxVersionId int `gorm:"primaryKey;column:sandbox_version_id;type:int(9) unsigned;not null"` // 沙盘版本记录id
  25. SandboxId int `gorm:"index:idx_sandbox_version_id;column:sandbox_id;type:int(9) unsigned;not null;default:0"` // 沙盘id
  26. Name string `gorm:"index:idx_name;column:name;type:varchar(64);not null;default:''"` // 沙盘名称
  27. ChartPermissionId int `gorm:"column:chart_permission_id;type:int(9) unsigned;not null;default:0"` // 品种id
  28. ChartPermissionName string `gorm:"index:idx_chart_permission_name;column:chart_permission_name;type:varchar(32);not null;default:''"` // 品种名称(冗余字段,避免列表页查询时再去关联表查询)
  29. CurrVersion int `gorm:"index:idx_sandbox_version_id;column:curr_version;type:int(9) unsigned;not null;default:0"` // 当前版本
  30. VersionCode string `gorm:"index:idx_version_code;column:version_code;type:varchar(255);default:''"` // 沙盘版本code,对外开放使用
  31. Content string `gorm:"column:content;type:text"` // 沙盘数据
  32. PicURL string `gorm:"column:pic_url;type:varchar(255);not null;default:''"` // 沙盘图片
  33. SvgData string `gorm:"column:svg_data;type:text;not null"` // svg信息,便于前端构建图片
  34. OpUserId int `gorm:"column:op_user_id;type:int(10) unsigned;not null;default:0"` // 当前版本编辑操作的用户id
  35. OpUserName string `gorm:"index:idx_op_user_name;column:op_user_name;type:varchar(32);not null;default:''"` // 当前版本编辑的用户名称(冗余字段,避免查表)
  36. IsDelete int8 `gorm:"column:is_delete;type:tinyint(9);not null;default:0"` // 是否删除,0:未删除,1:已删除
  37. CreateTime time.Time `gorm:"column:create_time;type:timestamp;default:CURRENT_TIMESTAMP"` // 沙盘创建时间
  38. }
  39. // Update 沙盘版本字段变更
  40. func (item *SandboxVersion) Update(cols []string) (err error) {
  41. //o := orm.NewOrmUsingDB("data")
  42. //_, err = o.Update(item, cols...)
  43. err = global.DmSQL["data"].Select(cols).Updates(item).Error
  44. return
  45. }
  46. // GetSandboxVersionBySandbox2VersionId 根据沙盘id和版本id获取沙盘版本详情
  47. //func GetSandboxVersionBySandbox2VersionId(sandboxId, sandboxVersion int) (sandboxVersionInfo *SandboxVersion, err error) {
  48. // o := orm.NewOrmUsingDB("data")
  49. // sql := `select b.* from sandbox a join sandbox_version b on a.sandbox_id=b.sandbox_id where a.sandbox_id = ? and a.is_delete = 0 and b.is_delete = 0 and b.curr_version = ?`
  50. // err = o.Raw(sql, sandboxId, sandboxVersion).QueryRow(&sandboxVersionInfo)
  51. // return
  52. //}
  53. // GetSandboxVersionBySandboxVersionCode 根据沙盘版本code获取沙盘版本详情
  54. func GetSandboxVersionBySandboxVersionCode(sandboxVersionCode string) (sandboxVersionInfo *SandboxVersion, err error) {
  55. //o := orm.NewOrmUsingDB("data")
  56. sql := `select b.* from sandbox a join sandbox_version b on a.sandbox_id=b.sandbox_id where a.is_delete = 0 and b.is_delete = 0 and b.version_code = ?`
  57. //err = o.Raw(sql, sandboxVersionCode).QueryRow(&sandboxVersionInfo)
  58. err = global.DmSQL["data"].Raw(sql, sandboxVersionCode).First(&sandboxVersionInfo).Error
  59. return
  60. }
  61. // GetLastSandboxVersionBySandbox2VersionId 根据沙盘id和版本id获取距离最新的沙盘版本详情
  62. //func GetLastSandboxVersionBySandbox2VersionId(sandboxId, sandboxVersion int) (sandboxVersionInfo *SandboxVersion, err error) {
  63. // o := orm.NewOrmUsingDB("data")
  64. // sql := `select b.* from sandbox a join sandbox_version b on a.sandbox_id=b.sandbox_id where a.sandbox_id = ? and a.is_delete = 0 and b.is_delete = 0 and b.curr_version < ? order by b.curr_version desc`
  65. // err = o.Raw(sql, sandboxId, sandboxVersion).QueryRow(&sandboxVersionInfo)
  66. // return
  67. //}
  68. // SandboxVersionListItem 沙盘推演版本列表数据
  69. //type SandboxVersionListItem struct {
  70. // SandboxVersionId int `orm:"column(sandbox_version_id);pk" description:"沙盘版本记录id"`
  71. // SandboxId int `description:"沙盘id"`
  72. // Name string `description:"沙盘名称"`
  73. // ChartPermissionId int `description:"品种id"`
  74. // ChartPermissionName string `description:"品种名称"`
  75. // CurrVersion int `description:"当前版本"`
  76. // //Content string `description:"沙盘数据"`
  77. // PicUrl string `description:"沙盘图片地址"`
  78. // OpUserId int `description:"最近一次编辑操作的用户id"`
  79. // OpUserName string `description:"最近一次编辑的用户名称(冗余字段,避免查表)"`
  80. // VersionCode string `description:"沙盘版本code,对外开放使用"`
  81. // IsDelete int8 `description:"是否删除,0:未删除,1:已删除" json:"-"`
  82. // CanEdit bool `description:"是否可编辑"`
  83. // ModifyTime time.Time `description:"最后一次修改时间"`
  84. // CreateTime time.Time `description:"创建时间"`
  85. //}
  86. // SandboxVersionListItem 沙盘推演版本列表数据
  87. type SandboxVersionListItem struct {
  88. SandboxVersionId int `gorm:"primaryKey;column:sandbox_version_id;type:int(9) unsigned;not null"` // 沙盘版本记录id
  89. SandboxId int `gorm:"index:idx_sandbox_version_id;column:sandbox_id;type:int(9) unsigned;not null;default:0"` // 沙盘id
  90. Name string `gorm:"index:idx_name;column:name;type:varchar(64);not null;default:''"` // 沙盘名称
  91. ChartPermissionId int `gorm:"column:chart_permission_id;type:int(9) unsigned;not null;default:0"` // 品种id
  92. ChartPermissionName string `gorm:"index:idx_chart_permission_name;column:chart_permission_name;type:varchar(32);not null;default:''"` // 品种名称(冗余字段,避免列表页查询时再去关联表查询)
  93. CurrVersion int `gorm:"index:idx_sandbox_version_id;column:curr_version;type:int(9) unsigned;not null;default:0"` // 当前版本
  94. VersionCode string `gorm:"index:idx_version_code;column:version_code;type:varchar(255);default:''"` // 沙盘版本code,对外开放使用
  95. //Content string `gorm:"column:content;type:text"` // 沙盘数据
  96. PicURL string `gorm:"column:pic_url;type:varchar(255);not null;default:''"` // 沙盘图片
  97. SvgData string `gorm:"column:svg_data;type:text;not null"` // svg信息,便于前端构建图片
  98. OpUserId int `gorm:"column:op_user_id;type:int(10) unsigned;not null;default:0"` // 当前版本编辑操作的用户id
  99. OpUserName string `gorm:"index:idx_op_user_name;column:op_user_name;type:varchar(32);not null;default:''"` // 当前版本编辑的用户名称(冗余字段,避免查表)
  100. IsDelete int8 `gorm:"column:is_delete;type:tinyint(9);not null;default:0"` // 是否删除,0:未删除,1:已删除
  101. CreateTime time.Time `gorm:"column:create_time;type:timestamp;default:CURRENT_TIMESTAMP"` // 沙盘创建时间
  102. ModifyTime time.Time `gorm:"-" description:"最后一次修改时间"`
  103. CanEdit bool `gorm:"-" description:"是否可编辑"`
  104. }
  105. // GetVersionList 获取沙盘版本列表页
  106. func GetVersionList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*SandboxVersionListItem, err error) {
  107. //o := orm.NewOrmUsingDB("data")
  108. sql := "select b.sandbox_version_id,b.sandbox_id,b.name,b.chart_permission_id,b.chart_permission_name,b.curr_version,b.version_code,b.pic_url,b.op_user_id,b.op_user_name,b.create_time from sandbox as a join sandbox_version b on a.sandbox_id=b.sandbox_id where 1=1 AND a.is_delete = 0 AND b.is_delete = 0 "
  109. sql += condition
  110. sql += ` order by b.sandbox_version_id desc`
  111. totalSql := `select count(1) total from (` + sql + `) z `
  112. //err = o.Raw(totalSql, pars).QueryRow(&total)
  113. err = global.DmSQL["data"].Raw(totalSql, pars...).Scan(&total).Error
  114. if err != nil {
  115. return
  116. }
  117. sql += ` LIMIT ?,? `
  118. //_, err = o.Raw(sql, pars...).QueryRows(&list)
  119. pars = append(pars, startSize)
  120. pars = append(pars, pageSize)
  121. err = global.DmSQL["data"].Raw(sql, pars...).Find(&list).Error
  122. return
  123. }
  124. // GetTotalSandboxVersionBySandboxId 根据沙盘id获取沙盘版本数量
  125. //func GetTotalSandboxVersionBySandboxId(sandboxId int) (sandboxVersionInfo *SandboxVersion, err error) {
  126. // o := orm.NewOrmUsingDB("data")
  127. // sql := `select count(1) total from sandbox_version b where b.sandbox_id = ? and b.is_delete = 0 `
  128. // err = o.Raw(sql, sandboxId).QueryRow(&sandboxVersionInfo)
  129. // return
  130. //}
  131. type TotalSandboxVersion struct {
  132. SandboxId int `description:"沙盘id"`
  133. Total int `description:"沙盘版本数量"`
  134. }
  135. // GetTotalSandboxVersionBySandboxIdList 根据沙盘id获取沙盘版本数量
  136. //func GetTotalSandboxVersionBySandboxIdList(sandboxIdList []int) (items []*TotalSandboxVersion, err error) {
  137. // num := len(sandboxIdList)
  138. // if num <= 0 {
  139. // return
  140. // }
  141. // o := orm.NewOrmUsingDB("data")
  142. // sql := `select sandbox_id,count(1) AS total from sandbox_version b where b.sandbox_id in (` + utils.GetOrmInReplace(num) + `) and b.is_delete = 0 GROUP BY sandbox_id`
  143. // _, err = o.Raw(sql, sandboxIdList).QueryRows(&items)
  144. // return
  145. //}