chart_permission.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. package models
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/utils"
  5. "fmt"
  6. "time"
  7. )
  8. const (
  9. FiccProductId = 1
  10. )
  11. // ChartPermission 报告权限表
  12. type ChartPermission struct {
  13. ChartPermissionId int `gorm:"column:chart_permission_id"` //`orm:"column(chart_permission_id);pk" gorm:"primaryKey" description:"问题ID" json:"chart_permission_id"`
  14. ChartPermissionName string `gorm:"column:chart_permission_name"` //`description:"名称" json:"chart_permission_name"`
  15. PermissionName string `gorm:"column:permission_name"` //`description:"权限名" json:"permission_name"`
  16. Sort int `gorm:"column:sort"` //`description:"排序" json:"sort"`
  17. Enabled int `gorm:"column:enabled"` //`description:"是否可用" json:"enabled"`
  18. CreatedTime time.Time `gorm:"column:created_time"` //`description:"创建时间" json:"created_time"`
  19. LastUpdatedTime time.Time `gorm:"column:last_updated_time"` //`description:"更新时间" json:"last_updated_time"`
  20. TeleconferenceSort int `gorm:"column:teleconference_sort"` //`description:"电话会类型排序" json:"teleconference_sort"`
  21. Remark string `gorm:"column:remark"` //`description:"备注" json:"remark"`
  22. ClassifyName string `gorm:"column:classify_name"` //`description:"分类名称" json:"classify_name"`
  23. ProductName string `gorm:"column:product_name"` //`description:"产品名称" json:"product_name"`
  24. ProductId int `gorm:"column:product_id"` //`description:"产品ID" json:"product_id"`
  25. ImageURL string `gorm:"column:image_url"` //`orm:"column(image_url);" description:"图片地址" json:"image_url"`
  26. ShowType int `gorm:"column:show_type"` //`description:"1:查研观向小程序展示" json:"show_type"`
  27. IsOther int `gorm:"column:is_other"` //`description:"是否是其他,用于查研观向小程序后台展示" json:"is_other"`
  28. IsReport int `gorm:"column:is_report"` //`description:"是否是报告,用于查研观向小程序前台报告展示" json:"is_report"`
  29. CygxAuth int `gorm:"column:cygx_auth"` //`description:"是否是权限,用于查研观向小程序前台权限校验" json:"cygx_auth"`
  30. PermissionType int `gorm:"column:permission_type"` //`description:"1主观,2客观" json:"permission_type"`
  31. YbImgUrl string `gorm:"column:yb_img_url"` //`description:"研报小程序报告列表icon" json:"yb_img_url"`
  32. ProductPermissionName string `gorm:"column:product_permission_name"` //`description:"种类权限名称" json:"product_permission_name"`
  33. PriceDrivenState int `gorm:"column:price_driven_state"` //`description:"品种价格驱动开启状态 0-关闭 1-开启" json:"price_driven_state"`
  34. ImageUrlM string `gorm:"column:image_url_m"` //`description:"图片地址(查研观向移动端)" json:"image_url_m"`
  35. ParentId int `gorm:"column:parent_id"` //`description:"父级权限id" json:"parent_id"`
  36. IsPublic int `gorm:"column:is_public"` //`description:"是否是公有权限1:公有权限,0私有权限" json:"is_public"`
  37. }
  38. type ChartPermissionItem struct {
  39. PermissionId int `description:"品种权限ID"`
  40. PermissionName string `description:"品种权限名称"`
  41. ParentId int `description:"父级ID"`
  42. IsPublic int `description:"是否是公有权限1:公有权限,0私有权限" `
  43. Enabled int `description:"是否可用:1可用,0不可用" `
  44. Sort int `description:"排序"`
  45. CreateTime string `description:"创建时间"`
  46. Child []*ChartPermissionItem
  47. }
  48. // Update 更新
  49. func (c *ChartPermission) Update(cols []string) (err error) {
  50. //o := orm.NewOrmUsingDB("rddp")
  51. //_, err = o.Update(c, cols...)
  52. err = global.DmSQL["rddp"].Select(cols).Updates(c).Error
  53. return
  54. }
  55. type PermissionAddReq struct {
  56. PermissionName string `description:"品种权限名称"`
  57. ParentId int `description:"父级ID"`
  58. Enabled int `description:"是否可用 0禁用, 1启用"` //启用,禁用操作会关联二级品种
  59. IsPublic int `description:"是否是公有权限1:公有权限,0私有权限"`
  60. }
  61. type PermissionEditReq struct {
  62. PermissionId int `description:"品种权限Id"` // 如果ID存在,则是更新操作,否则是新增操作
  63. PermissionName string `description:"品种权限名称"`
  64. ParentId int `description:"父级ID"`
  65. Enabled int `description:"是否可用 0禁用, 1启用"` //启用,禁用操作会关联二级品种
  66. IsPublic int `description:"是否是公有权限1:公有权限,0私有权限"`
  67. PublicPermissionIds []int `description:"公有权限的ID列表"` //一级品种没有公有私有属性
  68. }
  69. type PermissionEnabledReq struct {
  70. PermissionId int `description:"品种权限Id"` // 如果ID存在,则是更新操作,否则是新增操作
  71. Enabled int `description:"是否可用 0禁用, 1启用"` //启用,禁用操作会关联二级品种
  72. }
  73. type PermissionMoveReq struct {
  74. PermissionId int `description:"品种id"`
  75. // ParentChartPermissionId int `description:"父级品种id"`
  76. PrevPermissionId int `description:"上一个兄弟节点品种id"`
  77. NextPermissionId int `description:"下一个兄弟节点品种id"`
  78. }
  79. func (c *ChartPermission) SetEnabled(id, enabled int) (err error) {
  80. //o := orm.NewOrmUsingDB("rddp")
  81. //to, err := o.Begin()
  82. to := global.DmSQL["rddp"].Begin()
  83. if err != nil {
  84. return
  85. }
  86. defer func() {
  87. if err != nil {
  88. _ = to.Rollback()
  89. } else {
  90. _ = to.Commit()
  91. }
  92. }()
  93. sql := ` UPDATE chart_permission SET enabled =? WHERE id = ?`
  94. //_, err = to.Raw(sql, enabled, id).Exec()
  95. err = to.Exec(sql, enabled, id).Error
  96. if err != nil {
  97. return
  98. }
  99. sql = ` UPDATE chart_permission SET enabled =? WHERE parent_id = ?`
  100. //_, err = to.Raw(sql, enabled, id).Exec()
  101. err = to.Exec(sql, enabled, id).Error
  102. if err != nil {
  103. return
  104. }
  105. return
  106. }
  107. // Create 新增权限
  108. func (c *ChartPermission) Create() (err error) {
  109. //o := orm.NewOrmUsingDB("rddp")
  110. //id, err := o.Insert(c)
  111. //if err != nil {
  112. // return
  113. //}
  114. //c.ChartPermissionId = int(id)
  115. err = global.DmSQL["rddp"].Create(c).Error
  116. return
  117. }
  118. // SetIsPublic 更新公有私有权限
  119. func (c *ChartPermission) SetIsPublic(ids []int, parentId, isPublic int) (err error) {
  120. //o := orm.NewOrmUsingDB("rddp")
  121. //sql := `update chart_permission set is_public=? WHERE parent_id = ? and chart_permission_id IN (` + utils.GetOrmInReplace(len(ids)) + `)`
  122. //_, err = o.Raw(sql, isPublic, parentId, ids).Exec()
  123. sql := `update chart_permission set is_public=? WHERE parent_id = ? and chart_permission_id IN (` + utils.GetOrmInReplace(len(ids)) + `)`
  124. err = global.DmSQL["rddp"].Exec(sql, isPublic, parentId, ids).Error
  125. return
  126. }
  127. // UpdatesByParentId 更新启动禁用
  128. func (c *ChartPermission) UpdateClassifyNameByParentId(parentId int, classifyName string) (err error) {
  129. //o := orm.NewOrmUsingDB("rddp")
  130. //sql := `update chart_permission set classify_name=? WHERE parent_id = ?`
  131. //_, err = o.Raw(sql, classifyName, parentId).Exec()
  132. sql := `update chart_permission set classify_name=? WHERE parent_id = ?`
  133. err = global.DmSQL["rddp"].Exec(sql, classifyName, parentId).Error
  134. return
  135. }
  136. // SetEnabledByParentId 更新启动禁用
  137. func (c *ChartPermission) SetEnabledByParentId(parentId, enabled int) (err error) {
  138. //o := orm.NewOrmUsingDB("rddp")
  139. //sql := ` UPDATE chart_permission SET enabled =? WHERE parent_id = ?`
  140. //_, err = o.Raw(sql, enabled, parentId).Exec()
  141. sql := ` UPDATE chart_permission SET enabled =? WHERE parent_id = ?`
  142. err = global.DmSQL["rddp"].Exec(sql, enabled, parentId).Error
  143. return
  144. }
  145. // SetEnabledByChartPermissionId 更新启动禁用
  146. func (c *ChartPermission) SetEnabledByChartPermissionId(chartPermissionId, enabled int) (err error) {
  147. //o := orm.NewOrmUsingDB("rddp")
  148. //sql := ` UPDATE chart_permission SET enabled =? WHERE chart_permission_id = ?`
  149. //_, err = o.Raw(sql, enabled, chartPermissionId).Exec()
  150. sql := ` UPDATE chart_permission SET enabled =? WHERE chart_permission_id = ?`
  151. err = global.DmSQL["rddp"].Exec(sql, enabled, chartPermissionId).Error
  152. return
  153. }
  154. // GetItemById 查询品种
  155. func (c *ChartPermission) GetItemById(chartPermissionId int) (item *ChartPermission, err error) {
  156. //o := orm.NewOrmUsingDB("rddp")
  157. //sql := `select * from chart_permission WHERE chart_permission_id = ?`
  158. //err = o.Raw(sql, chartPermissionId).QueryRow(&item)
  159. sql := `select * from chart_permission WHERE chart_permission_id = ?`
  160. err = global.DmSQL["rddp"].Raw(sql, chartPermissionId).First(&item).Error
  161. return
  162. }
  163. // GetItemsByCondition 查询列表
  164. func (c *ChartPermission) GetItemsByCondition(condition string, pars []interface{}) (items []*ChartPermission, err error) {
  165. //o := orm.NewOrmUsingDB("rddp")
  166. //sql := `select * from chart_permission WHERE 1=1 ` + condition + ` order by sort asc, chart_permission_id asc`
  167. //_, err = o.Raw(sql, pars).QueryRows(&items)
  168. sql := `select * from chart_permission WHERE 1=1 ` + condition + ` order by sort asc, chart_permission_id asc`
  169. err = global.DmSQL["rddp"].Raw(sql, pars).Find(&items).Error
  170. return
  171. }
  172. // GetItemByCondition 查询列表
  173. func (c *ChartPermission) GetItemByCondition(condition string, pars []interface{}) (item *ChartPermission, err error) {
  174. //o := orm.NewOrmUsingDB("rddp")
  175. //sql := `select * from chart_permission WHERE 1=1 ` + condition
  176. //err = o.Raw(sql, pars).QueryRow(&item)
  177. sql := `select * from chart_permission WHERE 1=1 ` + condition
  178. err = global.DmSQL["rddp"].Raw(sql, pars).First(&item).Error
  179. return
  180. }
  181. // UpdateChartPermissionSortByParentId 根据父类id更新排序
  182. func UpdateChartPermissionSortByParentId(parentId, chartPermissionId, nowSort int, updateSort string, productId int) (err error) {
  183. sql := ` update chart_permission set sort = ` + updateSort + ` WHERE parent_id=? AND product_id = ? AND (sort > ? `
  184. if chartPermissionId > 0 {
  185. sql += ` or ( chart_permission_id > ` + fmt.Sprint(chartPermissionId) + ` and sort = ` + fmt.Sprint(nowSort) + `))`
  186. } else {
  187. sql += `)`
  188. }
  189. //o := orm.NewOrmUsingDB("rddp")
  190. //_, err = o.Raw(sql, parentId, productId, nowSort).Exec()
  191. err = global.DmSQL["rddp"].Exec(sql, parentId, productId, nowSort).Error
  192. return
  193. }
  194. // GetMaxSort 获取最大的排序值
  195. func (c *ChartPermission) GetMaxSort() (maxSort int, err error) {
  196. //o := orm.NewOrmUsingDB("rddp")
  197. //sql := `select max(sort) from chart_permission `
  198. //err = o.Raw(sql).QueryRow(&maxSort)
  199. sql := `select max(sort) from chart_permission `
  200. err = global.DmSQL["rddp"].Raw(sql).Scan(&maxSort).Error
  201. return
  202. }
  203. // GetMaxSortByParentId 获取最大的排序值
  204. func (c *ChartPermission) GetMaxSortByParentId(parentId int) (maxSort int, err error) {
  205. //o := orm.NewOrmUsingDB("rddp")
  206. //sql := `select max(sort) from chart_permission WHERE parent_id=? `
  207. //err = o.Raw(sql, parentId).QueryRow(&maxSort)
  208. sql := `select max(sort) from chart_permission WHERE parent_id=? `
  209. err = global.DmSQL["rddp"].Raw(sql, parentId).Scan(&maxSort).Error
  210. return
  211. }
  212. // GetFirstChartPermissionByParentId 获取当前父级分类下,且排序数相同 的排序第一条的数据
  213. func (c *ChartPermission) GetFirstChartPermissionByParentId(parentId int) (item *ChartPermission, err error) {
  214. //o := orm.NewOrmUsingDB("rddp")
  215. //sql := `select * from chart_permission WHERE parent_id=? ORDER BY sort ASC, chart_permission_id ASC LIMIT 1`
  216. //err = o.Raw(sql, parentId).QueryRow(&item)
  217. sql := `select * from chart_permission WHERE parent_id=? ORDER BY sort ASC, chart_permission_id ASC LIMIT 1`
  218. err = global.DmSQL["rddp"].Raw(sql, parentId).First(&item).Error
  219. return
  220. }
  221. // GetChartPermissionById 主键获取品种
  222. func GetChartPermissionById(permissionId int) (item *ChartPermission, err error) {
  223. //o := orm.NewOrmUsingDB("rddp")
  224. //sql := `SELECT * FROM chart_permission WHERE chart_permission_id = ?`
  225. //err = o.Raw(sql, permissionId).QueryRow(&item)
  226. sql := `SELECT * FROM chart_permission WHERE chart_permission_id = ?`
  227. err = global.DmSQL["rddp"].Raw(sql, permissionId).First(&item).Error
  228. return
  229. }
  230. // GetSecondaryChartPermissions 获取二级权限列表
  231. func GetSecondaryChartPermissions() (list []*ChartPermission, err error) {
  232. //o := orm.NewOrmUsingDB("rddp")
  233. //sql := `SELECT * FROM chart_permission WHERE product_id = ? AND parent_id > 0 AND enabled = 1 ORDER BY parent_id ASC, sort ASC, created_time ASC`
  234. //_, err = o.Raw(sql, FiccProductId).QueryRows(&list)
  235. sql := `SELECT * FROM chart_permission WHERE product_id = ? AND parent_id > 0 AND enabled = 1 ORDER BY parent_id ASC, sort ASC, created_time ASC`
  236. err = global.DmSQL["rddp"].Raw(sql, FiccProductId).Find(&list).Error
  237. return
  238. }
  239. type SimpleChartPermission struct {
  240. ChartPermissionId int `description:"品种ID"`
  241. ChartPermissionName string `description:"品种名称"`
  242. Sort int `description:"排序"`
  243. Children []*SimpleChartPermission `description:"子分类"`
  244. }
  245. func FormatChartPermission2Simple(origin *ChartPermission) (item *SimpleChartPermission) {
  246. if origin == nil {
  247. return
  248. }
  249. item = new(SimpleChartPermission)
  250. item.ChartPermissionId = origin.ChartPermissionId
  251. item.ChartPermissionName = origin.PermissionName
  252. item.Sort = origin.Sort
  253. return
  254. }
  255. // GetChartPermissionsByProductId 获取权限列表
  256. func GetChartPermissionsByProductId() (list []*ChartPermission, err error) {
  257. //o := orm.NewOrmUsingDB("rddp")
  258. //sql := `SELECT * FROM chart_permission WHERE product_id = ? AND enabled = 1 ORDER BY parent_id ASC, sort ASC, created_time ASC`
  259. //_, err = o.Raw(sql, FiccProductId).QueryRows(&list)
  260. sql := `SELECT * FROM chart_permission WHERE product_id = ? AND enabled = 1 ORDER BY parent_id ASC, sort ASC, created_time ASC`
  261. err = global.DmSQL["rddp"].Raw(sql, FiccProductId).Find(&list).Error
  262. return
  263. }
  264. // GetChartPermissionByIdList
  265. // @Description: 根据品种ID列表获取权限列表
  266. // @author: Roc
  267. // @datetime 2024-06-07 10:32:29
  268. // @param permissionIdList []int
  269. // @return items []*ChartPermission
  270. // @return err error
  271. func GetChartPermissionByIdList(permissionIdList []int) (items []*ChartPermission, err error) {
  272. num := len(permissionIdList)
  273. if num <= 0 {
  274. return
  275. }
  276. //o := orm.NewOrmUsingDB("rddp")
  277. //sql := `SELECT * FROM chart_permission WHERE chart_permission_id in (` + utils.GetOrmInReplace(num) + `) `
  278. //_, err = o.Raw(sql, permissionIdList).QueryRows(&items)
  279. sql := `SELECT * FROM chart_permission WHERE chart_permission_id in (` + utils.GetOrmInReplace(num) + `) `
  280. err = global.DmSQL["rddp"].Raw(sql, permissionIdList).Find(&items).Error
  281. return
  282. }