chart_permission.go 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. package models
  2. import (
  3. "eta/eta_mobile/utils"
  4. "fmt"
  5. "github.com/beego/beego/v2/client/orm"
  6. "time"
  7. )
  8. // ChartPermission 报告权限表
  9. type ChartPermission struct {
  10. ChartPermissionId int `orm:"column(chart_permission_id);pk" description:"问题ID" json:"chart_permission_id"`
  11. ChartPermissionName string `description:"名称" json:"chart_permission_name"`
  12. PermissionName string `description:"权限名" json:"permission_name"`
  13. Sort int `description:"排序" json:"sort"`
  14. Enabled int `description:"是否可用" json:"enabled"`
  15. CreatedTime time.Time `description:"创建时间" json:"created_time"`
  16. LastUpdatedTime time.Time `description:"更新时间" json:"last_updated_time"`
  17. TeleconferenceSort int `description:"电话会类型排序" json:"teleconference_sort"`
  18. Remark string `description:"备注" json:"remark"`
  19. ClassifyName string `description:"分类名称" json:"classify_name"`
  20. ProductName string `description:"产品名称" json:"product_name"`
  21. ProductId int `description:"产品ID" json:"product_id"`
  22. ImageURL string `orm:"column(image_url);" description:"图片地址" json:"image_url"`
  23. ShowType int `description:"1:查研观向小程序展示" json:"show_type"`
  24. IsOther int `description:"是否是其他,用于查研观向小程序后台展示" json:"is_other"`
  25. IsReport int `description:"是否是报告,用于查研观向小程序前台报告展示" json:"is_report"`
  26. CygxAuth int `description:"是否是权限,用于查研观向小程序前台权限校验" json:"cygx_auth"`
  27. PermissionType int `description:"1主观,2客观" json:"permission_type"`
  28. YbImgUrl string `description:"研报小程序报告列表icon" json:"yb_img_url"`
  29. ProductPermissionName string `description:"种类权限名称" json:"product_permission_name"`
  30. PriceDrivenState int `description:"品种价格驱动开启状态 0-关闭 1-开启" json:"price_driven_state"`
  31. ImageUrlM string `description:"图片地址(查研观向移动端)" json:"image_url_m"`
  32. ParentId int `description:"父级权限id" json:"parent_id"`
  33. IsPublic int `description:"是否是公有权限1:公有权限,0私有权限" json:"is_public"`
  34. }
  35. type ChartPermissionVO struct {
  36. ChartPermissionId int `orm:"column(chart_permission_id);pk" description:"问题ID" json:"chart_permission_id"`
  37. ChartPermissionName string `description:"名称" json:"chart_permission_name"`
  38. PermissionName string `description:"权限名" json:"permission_name"`
  39. Sort int `description:"排序" json:"sort"`
  40. Enabled int `description:"是否可用" json:"enabled"`
  41. CreatedTime time.Time `description:"创建时间" json:"created_time"`
  42. LastUpdatedTime time.Time `description:"更新时间" json:"last_updated_time"`
  43. ParentId int `description:"父级权限id" json:"parent_id"`
  44. Children []*ChartPermissionVO
  45. }
  46. type ChartPermissionItem struct {
  47. PermissionId int `description:"品种权限ID"`
  48. PermissionName string `description:"品种权限名称"`
  49. ParentId int `description:"父级ID"`
  50. IsPublic int `description:"是否是公有权限1:公有权限,0私有权限" `
  51. Enabled int `description:"是否可用:1可用,0不可用" `
  52. Sort int `description:"排序"`
  53. CreateTime string `description:"创建时间"`
  54. Child []*ChartPermissionItem
  55. }
  56. // Update 更新
  57. func (c *ChartPermission) Update(cols []string) (err error) {
  58. o := orm.NewOrmUsingDB("rddp")
  59. _, err = o.Update(c, cols...)
  60. return
  61. }
  62. type PermissionAddReq struct {
  63. PermissionName string `description:"品种权限名称"`
  64. ParentId int `description:"父级ID"`
  65. Enabled int `description:"是否可用 0禁用, 1启用"` //启用,禁用操作会关联二级品种
  66. IsPublic int `description:"是否是公有权限1:公有权限,0私有权限"`
  67. }
  68. type PermissionEditReq struct {
  69. PermissionId int `description:"品种权限Id"` // 如果ID存在,则是更新操作,否则是新增操作
  70. PermissionName string `description:"品种权限名称"`
  71. ParentId int `description:"父级ID"`
  72. Enabled int `description:"是否可用 0禁用, 1启用"` //启用,禁用操作会关联二级品种
  73. IsPublic int `description:"是否是公有权限1:公有权限,0私有权限"`
  74. PublicPermissionIds []int `description:"公有权限的ID列表"` //一级品种没有公有私有属性
  75. }
  76. type PermissionEnabledReq struct {
  77. PermissionId int `description:"品种权限Id"` // 如果ID存在,则是更新操作,否则是新增操作
  78. Enabled int `description:"是否可用 0禁用, 1启用"` //启用,禁用操作会关联二级品种
  79. }
  80. type PermissionMoveReq struct {
  81. PermissionId int `description:"品种id"`
  82. // ParentChartPermissionId int `description:"父级品种id"`
  83. PrevPermissionId int `description:"上一个兄弟节点品种id"`
  84. NextPermissionId int `description:"下一个兄弟节点品种id"`
  85. }
  86. func (c *ChartPermission) SetEnabled(id, enabled int) (err error) {
  87. o := orm.NewOrmUsingDB("rddp")
  88. to, err := o.Begin()
  89. if err != nil {
  90. return
  91. }
  92. defer func() {
  93. if err != nil {
  94. _ = to.Rollback()
  95. } else {
  96. _ = to.Commit()
  97. }
  98. }()
  99. sql := ` UPDATE chart_permission SET enabled =? WHERE id = ?`
  100. _, err = to.Raw(sql, enabled, id).Exec()
  101. if err != nil {
  102. return
  103. }
  104. sql = ` UPDATE chart_permission SET enabled =? WHERE parent_id = ?`
  105. _, err = to.Raw(sql, enabled, id).Exec()
  106. if err != nil {
  107. return
  108. }
  109. return
  110. }
  111. // Create 新增权限
  112. func (c *ChartPermission) Create() (err error) {
  113. o := orm.NewOrmUsingDB("rddp")
  114. id, err := o.Insert(c)
  115. if err != nil {
  116. return
  117. }
  118. c.ChartPermissionId = int(id)
  119. return
  120. }
  121. // SetIsPublic 更新公有私有权限
  122. func (c *ChartPermission) SetIsPublic(ids []int, parentId, isPublic int) (err error) {
  123. o := orm.NewOrmUsingDB("rddp")
  124. sql := `update chart_permission set is_public=? WHERE parent_id = ? and chart_permission_id IN (` + utils.GetOrmInReplace(len(ids)) + `)`
  125. _, err = o.Raw(sql, isPublic, parentId, ids).Exec()
  126. return
  127. }
  128. // UpdatesByParentId 更新启动禁用
  129. func (c *ChartPermission) UpdateClassifyNameByParentId(parentId int, classifyName string) (err error) {
  130. o := orm.NewOrmUsingDB("rddp")
  131. sql := `update chart_permission set classify_name=? WHERE parent_id = ?`
  132. _, err = o.Raw(sql, classifyName, parentId).Exec()
  133. return
  134. }
  135. // SetEnabledByParentId 更新启动禁用
  136. func (c *ChartPermission) SetEnabledByParentId(parentId, enabled int) (err error) {
  137. o := orm.NewOrmUsingDB("rddp")
  138. sql := ` UPDATE chart_permission SET enabled =? WHERE parent_id = ?`
  139. _, err = o.Raw(sql, enabled, parentId).Exec()
  140. return
  141. }
  142. // SetEnabledByChartPermissionId 更新启动禁用
  143. func (c *ChartPermission) SetEnabledByChartPermissionId(chartPermissionId, enabled int) (err error) {
  144. o := orm.NewOrmUsingDB("rddp")
  145. sql := ` UPDATE chart_permission SET enabled =? WHERE chart_permission_id = ?`
  146. _, err = o.Raw(sql, enabled, chartPermissionId).Exec()
  147. return
  148. }
  149. // GetItemById 查询品种
  150. func (c *ChartPermission) GetItemById(chartPermissionId int) (item *ChartPermission, err error) {
  151. o := orm.NewOrmUsingDB("rddp")
  152. sql := `select * from chart_permission WHERE chart_permission_id = ?`
  153. err = o.Raw(sql, chartPermissionId).QueryRow(&item)
  154. return
  155. }
  156. // GetItemsByCondition 查询列表
  157. func (c *ChartPermission) GetItemsByCondition(condition string, pars []interface{}) (items []*ChartPermission, err error) {
  158. o := orm.NewOrmUsingDB("rddp")
  159. sql := `select * from chart_permission WHERE 1=1 ` + condition + ` order by sort asc, chart_permission_id asc`
  160. _, err = o.Raw(sql, pars).QueryRows(&items)
  161. return
  162. }
  163. // GetItemByCondition 查询列表
  164. func (c *ChartPermission) GetItemByCondition(condition string, pars []interface{}) (item *ChartPermission, err error) {
  165. o := orm.NewOrmUsingDB("rddp")
  166. sql := `select * from chart_permission WHERE 1=1 ` + condition
  167. err = o.Raw(sql, pars).QueryRow(&item)
  168. return
  169. }
  170. // UpdateChartPermissionSortByParentId 根据父类id更新排序
  171. func UpdateChartPermissionSortByParentId(parentId, chartPermissionId, nowSort int, updateSort string, productId int) (err error) {
  172. o := orm.NewOrmUsingDB("rddp")
  173. sql := ` update chart_permission set sort = ` + updateSort + ` WHERE parent_id=? AND product_id = ? AND (sort > ? `
  174. if chartPermissionId > 0 {
  175. sql += ` or ( chart_permission_id > ` + fmt.Sprint(chartPermissionId) + ` and sort = ` + fmt.Sprint(nowSort) + `))`
  176. } else {
  177. sql += `)`
  178. }
  179. _, err = o.Raw(sql, parentId, productId, nowSort).Exec()
  180. return
  181. }
  182. // GetMaxSort 获取最大的排序值
  183. func (c *ChartPermission) GetMaxSort() (maxSort int, err error) {
  184. o := orm.NewOrmUsingDB("rddp")
  185. sql := `select max(sort) from chart_permission `
  186. err = o.Raw(sql).QueryRow(&maxSort)
  187. return
  188. }
  189. // GetMaxSortByParentId 获取最大的排序值
  190. func (c *ChartPermission) GetMaxSortByParentId(parentId int) (maxSort int, err error) {
  191. o := orm.NewOrmUsingDB("rddp")
  192. sql := `select max(sort) from chart_permission WHERE parent_id=? `
  193. err = o.Raw(sql, parentId).QueryRow(&maxSort)
  194. return
  195. }
  196. // GetFirstChartPermissionByParentId 获取当前父级分类下,且排序数相同 的排序第一条的数据
  197. func (c *ChartPermission) GetFirstChartPermissionByParentId(parentId int) (item *ChartPermission, err error) {
  198. o := orm.NewOrmUsingDB("rddp")
  199. sql := `select * from chart_permission WHERE parent_id=? ORDER BY sort ASC, chart_permission_id ASC LIMIT 1`
  200. err = o.Raw(sql, parentId).QueryRow(&item)
  201. return
  202. }