my_chart.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546
  1. package data_manage
  2. import (
  3. "fmt"
  4. "github.com/beego/beego/v2/client/orm"
  5. "github.com/rdlucklib/rdluck_tools/paging"
  6. "time"
  7. )
  8. type ChartListResp struct {
  9. Paging *paging.PagingItem
  10. List []*ChartInfoView
  11. }
  12. func GetChartListByCondition(condition string, pars []interface{}, startSize, pageSize int) (item []*ChartInfoView, err error) {
  13. o := orm.NewOrmUsingDB("data")
  14. sql := ` SELECT * FROM chart_info WHERE 1=1 `
  15. if condition != "" {
  16. sql += condition
  17. }
  18. //sql += " ORDER BY sort ASC,chart_info_id DESC LIMIT ?,? "
  19. sql += " ORDER BY create_time DESC LIMIT ?,? "
  20. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
  21. return
  22. }
  23. func GetChartListCountByCondition(condition string, pars []interface{}) (count int, err error) {
  24. o := orm.NewOrmUsingDB("data")
  25. sql := ` SELECT COUNT(1) AS count FROM chart_info WHERE 1=1 `
  26. if condition != "" {
  27. sql += condition
  28. }
  29. err = o.Raw(sql, pars).QueryRow(&count)
  30. return
  31. }
  32. type MyChartClassify struct {
  33. MyChartClassifyId int `orm:"column(my_chart_classify_id);pk"`
  34. MyChartClassifyName string
  35. Sort int `json:"-" description:"排序字段,值越小,排的越靠前"`
  36. AdminId int `json:"-"`
  37. CreateTime time.Time `json:"-"`
  38. ModifyTime time.Time `json:"-"`
  39. }
  40. func AddMyChartClassify(item *MyChartClassify) (err error) {
  41. o := orm.NewOrmUsingDB("data")
  42. _, err = o.Insert(item)
  43. return
  44. }
  45. func GetMyChartClassifyAll(adminId int) (item []*MyChartClassify, err error) {
  46. o := orm.NewOrmUsingDB("data")
  47. sql := ` SELECT * FROM my_chart_classify WHERE 1=1 AND admin_id=? `
  48. sql += " ORDER BY sort asc, my_chart_classify_id desc "
  49. _, err = o.Raw(sql, adminId).QueryRows(&item)
  50. return
  51. }
  52. type MyChartClassifyResp struct {
  53. List []*MyChartClassify
  54. }
  55. type MyChartClassifyAddReq struct {
  56. MyChartClassifyName string `description:"分类名称"`
  57. }
  58. func GetMyChartClassifyCountByCondition(condition string, pars []interface{}) (count int, err error) {
  59. o := orm.NewOrmUsingDB("data")
  60. sql := ` SELECT COUNT(1) AS count FROM my_chart_classify WHERE 1=1 `
  61. if condition != "" {
  62. sql += condition
  63. }
  64. err = o.Raw(sql, pars).QueryRow(&count)
  65. return
  66. }
  67. func GetMyChartClassifyById(adminId, myChartClassifyId int) (item *MyChartClassify, err error) {
  68. o := orm.NewOrmUsingDB("data")
  69. sql := ` SELECT * FROM my_chart_classify WHERE admin_id=? AND my_chart_classify_id=? `
  70. err = o.Raw(sql, adminId, myChartClassifyId).QueryRow(&item)
  71. return
  72. }
  73. type MyChartClassifyEditReq struct {
  74. MyChartClassifyId int `description:"分类ID"`
  75. MyChartClassifyName string `description:"分类名称"`
  76. }
  77. // MyChartClassifyMoveReq 移动分类请求参数
  78. type MyChartClassifyMoveReq struct {
  79. MyChartClassifyId int `description:"分类id"`
  80. PrevClassifyId int `description:"上一个兄弟节点分类id"`
  81. NextClassifyId int `description:"下一个兄弟节点分类id"`
  82. }
  83. func ModifyMyChartClassify(myChartClassifyId int, myChartClassifyName string) (err error) {
  84. o := orm.NewOrmUsingDB("data")
  85. sql := `UPDATE my_chart_classify SET my_chart_classify_name=?,modify_time=NOW() WHERE my_chart_classify_id=?`
  86. _, err = o.Raw(sql, myChartClassifyName, myChartClassifyId).Exec()
  87. return
  88. }
  89. type MyChartClassifyDeleteReq struct {
  90. MyChartClassifyId int `description:"分类ID"`
  91. }
  92. func DeleteMyChartClassify(myChartClassifyId int) (err error) {
  93. o := orm.NewOrmUsingDB("data")
  94. //o.Begin()
  95. //
  96. //defer func() {
  97. // if err != nil {
  98. // o.Rollback()
  99. // } else {
  100. // o.Commit()
  101. // }
  102. //}()
  103. sql := `DELETE FROM my_chart_classify WHERE my_chart_classify_id=?`
  104. _, err = o.Raw(sql, myChartClassifyId).Exec()
  105. if err != nil {
  106. return err
  107. }
  108. mappingList := make([]*MyChartClassifyMapping, 0)
  109. sql = `SELECT * FROM my_chart_classify_mapping WHERE my_chart_classify_id=?`
  110. _, err = o.Raw(sql, myChartClassifyId).QueryRows(&mappingList)
  111. sql = `DELETE FROM my_chart_classify_mapping WHERE my_chart_classify_id=?`
  112. _, err = o.Raw(sql, myChartClassifyId).Exec()
  113. if err != nil {
  114. return err
  115. }
  116. for _, v := range mappingList {
  117. var count int
  118. sql = ` SELECT COUNT(1) AS count FROM my_chart_classify_mapping WHERE my_chart_id=?`
  119. err = o.Raw(sql, v.MyChartId).QueryRow(&count)
  120. if err != nil {
  121. return err
  122. }
  123. if count <= 0 {
  124. sql = `DELETE FROM my_chart WHERE my_chart_id=?`
  125. _, err = o.Raw(sql, v.MyChartId).Exec()
  126. if err != nil {
  127. return err
  128. }
  129. }
  130. }
  131. return
  132. }
  133. type MyChartAddReq struct {
  134. ChartInfoId int `description:"图表id"`
  135. MyChartClassifyId []int `description:"分类id,数组形式"`
  136. }
  137. type MyChartAddResp struct {
  138. MyChartInfoId int `description:"图表id"`
  139. MyChartClassifyId string `description:"分类id,多个用英文逗号隔开"`
  140. }
  141. type MyChart struct {
  142. MyChartId int `orm:"column(my_chart_id);pk"`
  143. ChartInfoId int `description:"图表id"`
  144. AdminId int `description:"用户id"`
  145. CreateTime time.Time `description:"创建时间"`
  146. ModifyTime time.Time `description:"修改时间"`
  147. }
  148. type MyChartView struct {
  149. MyChartId int `orm:"column(my_chart_id);pk"`
  150. ChartInfoId int `description:"图表id"`
  151. AdminId int `description:"用户id"`
  152. CreateTime time.Time `description:"创建时间"`
  153. ModifyTime time.Time `description:"修改时间"`
  154. MyChartClassifyId string
  155. }
  156. func AddMyChart(item *MyChart) (lastId int64, err error) {
  157. o := orm.NewOrmUsingDB("data")
  158. lastId, err = o.Insert(item)
  159. return
  160. }
  161. type MyChartClassifyMapping struct {
  162. MyChartClassifyMappingId int `orm:"column(my_chart_classify_mapping_id);pk"`
  163. AdminId int
  164. MyChartId int
  165. MyChartClassifyId int
  166. CreateTime time.Time
  167. ModifyTime time.Time
  168. Sort float64
  169. }
  170. func AddMyChartClassifyMapping(item *MyChartClassifyMapping) (lastId int64, err error) {
  171. o := orm.NewOrmUsingDB("data")
  172. lastId, err = o.Insert(item)
  173. return
  174. }
  175. func GetMyChartClassifyMapping(adminId, myChartId, myChartClassifyId int) (item *MyChartClassifyMapping, err error) {
  176. o := orm.NewOrmUsingDB("data")
  177. sql := `SELECT * FROM my_chart_classify_mapping WHERE admin_id=? AND my_chart_id=? AND my_chart_classify_id=? `
  178. err = o.Raw(sql, adminId, myChartId, myChartClassifyId).QueryRow(&item)
  179. return
  180. }
  181. type MyChartDeleteReq struct {
  182. MyChartId int `description:"我的图表id"`
  183. MyChartClassifyId int `description:"我的图表分类id"`
  184. }
  185. func DeleteMyChart(myChartId, myChartClassifyId int) (err error) {
  186. o := orm.NewOrmUsingDB("data")
  187. if myChartClassifyId > 0 {
  188. sql := `DELETE FROM my_chart_classify_mapping WHERE my_chart_id=? AND my_chart_classify_id=? `
  189. _, err = o.Raw(sql, myChartId, myChartClassifyId).Exec()
  190. if err != nil {
  191. return
  192. }
  193. var count int
  194. sql = ` SELECT COUNT(1) AS count FROM my_chart_classify_mapping WHERE my_chart_id=? `
  195. err = o.Raw(sql, myChartId).QueryRow(&count)
  196. if err != nil {
  197. return
  198. }
  199. if count <= 0 {
  200. sql = `DELETE FROM my_chart WHERE my_chart_id=? `
  201. _, err = o.Raw(sql, myChartId).Exec()
  202. if err != nil {
  203. return
  204. }
  205. }
  206. } else {
  207. sql := `DELETE FROM my_chart WHERE my_chart_id=? `
  208. _, err = o.Raw(sql, myChartId).Exec()
  209. if err != nil {
  210. return
  211. }
  212. }
  213. return
  214. }
  215. type MyChartList struct {
  216. MyChartId int `description:"我的图表主键"`
  217. ChartInfoId int
  218. ChartName string `description:"来源名称"`
  219. ChartClassifyId int `description:"图表分类id"`
  220. SysUserId int
  221. SysUserRealName string
  222. UniqueCode string `description:"图表唯一编码"`
  223. CreateTime time.Time
  224. ModifyTime time.Time
  225. DateType int `description:"日期类型:1:00年至今,2:10年至今,3:15年至今,4:年初至今,5:自定义时间"`
  226. StartDate string `description:"自定义开始日期"`
  227. EndDate string `description:"自定义结束日期"`
  228. IsSetName int `description:"设置名称"`
  229. EdbInfoIds string `description:"指标id"`
  230. ChartType int `description:"生成样式:1:曲线图,2:季节性图"`
  231. Calendar string `description:"公历/农历"`
  232. SeasonStartDate string `description:"季节性图开始日期"`
  233. SeasonEndDate string `description:"季节性图开始日期"`
  234. ChartImage string `description:"图表图片"`
  235. Sort int `description:"排序字段,数字越小越排前面"`
  236. IsAdd bool `description:"true:已加入我的图库,false:未加入我的图库"`
  237. MyChartClassifyName string `description:"分类名称,多个用英文逗号分割"`
  238. MyChartClassifyId string `description:"分类id,多个用英文逗号分割"`
  239. EdbEndDate string `description:"指标最新更新日期"`
  240. }
  241. type MyChartListResp struct {
  242. Paging *paging.PagingItem
  243. List []*MyChartList
  244. }
  245. func GetMyChartListByCondition(condition string, pars []interface{}, startSize, pageSize int) (item []*MyChartList, err error) {
  246. o := orm.NewOrmUsingDB("data")
  247. sql := ` SELECT a.my_chart_id,c.sort,b.* FROM my_chart AS a
  248. INNER JOIN chart_info AS b ON a.chart_info_id=b.chart_info_id
  249. INNER JOIN my_chart_classify_mapping AS c ON a.my_chart_id=c.my_chart_id
  250. WHERE 1=1 `
  251. if condition != "" {
  252. sql += condition
  253. }
  254. sql += " GROUP BY a.chart_info_id ORDER BY c.sort ASC LIMIT ?,? "
  255. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
  256. return
  257. }
  258. func GetMyChartListCountByCondition(condition string, pars []interface{}) (count int, err error) {
  259. o := orm.NewOrmUsingDB("data")
  260. sql := `SELECT COUNT(1) AS count FROM my_chart AS a
  261. INNER JOIN chart_info AS b ON a.chart_info_id=b.chart_info_id
  262. INNER JOIN my_chart_classify_mapping AS c ON a.my_chart_id=c.my_chart_id
  263. WHERE 1=1`
  264. if condition != "" {
  265. sql += condition
  266. }
  267. err = o.Raw(sql, pars).QueryRow(&count)
  268. return
  269. }
  270. func GetMyChartMaxSort(adminId, myChartClassifyId int) (count int, err error) {
  271. o := orm.NewOrmUsingDB("data")
  272. sql := ` SELECT COUNT(1) AS count FROM my_chart_classify_mapping WHERE 1=1 AND admin_id=? AND my_chart_classify_id=? `
  273. err = o.Raw(sql, adminId, myChartClassifyId).QueryRow(&count)
  274. return
  275. }
  276. type MoveMyChartReq struct {
  277. MyChartId int `description:"移动的,我的图表图表ID"`
  278. PrevMyChartId int `description:"移动到的位置,上一级的,我的图表ID,如果没有上一级,则传0"`
  279. NextMyChartId int `description:"移动到的位置,下一级的,我的图表ID,如果没有下一级,则传0"`
  280. MyChartClassifyId int `description:"当前分类id"`
  281. }
  282. func MyChartMove(sort float64, adminId int, myChartId, myChartClassifyId int) (err error) {
  283. o := orm.NewOrmUsingDB("data")
  284. sql := ` UPDATE my_chart_classify_mapping SET sort = ?,modify_time=NOW() WHERE admin_id=? AND my_chart_id=? AND my_chart_classify_id=? `
  285. _, err = o.Raw(sql, sort, adminId, myChartId, myChartClassifyId).Exec()
  286. return
  287. }
  288. func GetMyChartMinSortByAdminId(adminId int) (item *MyChart, err error) {
  289. o := orm.NewOrmUsingDB("data")
  290. sql := ` SELECT * FROM my_chart WHERE admin_id=? ORDER BY sort ASC LIMIT 1`
  291. err = o.Raw(sql, adminId).QueryRow(&item)
  292. return
  293. }
  294. type ChartRecommendListResp struct {
  295. List []*ChartInfoView
  296. }
  297. func GetChartClassify(chartClassifyId int) (chart_classify_id string, err error) {
  298. o := orm.NewOrmUsingDB("data")
  299. sql := `SELECT GROUP_CONCAT(t.chart_classify_id) AS chart_classify_id FROM (
  300. SELECT a.chart_classify_id FROM chart_classify AS a
  301. WHERE a.chart_classify_id=?
  302. UNION ALL
  303. SELECT a.chart_classify_id FROM chart_classify AS a
  304. WHERE a.parent_id=?
  305. )AS t`
  306. err = o.Raw(sql, chartClassifyId, chartClassifyId).QueryRow(&chart_classify_id)
  307. return
  308. }
  309. func GetRecommendChartListByCondition(condition string, pars []interface{}, startSize, pageSize int) (item []*ChartInfoView, err error) {
  310. o := orm.NewOrmUsingDB("data")
  311. sql := ` SELECT b.* FROM my_chart AS a
  312. INNER JOIN chart_info AS b ON a.chart_info_id=b.chart_info_id `
  313. if condition != "" {
  314. sql += condition
  315. }
  316. sql += " ORDER BY a.create_time DESC LIMIT ?,? "
  317. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
  318. return
  319. }
  320. func GetMyChartListByAdminId(adminId int) (item []*MyChartView, err error) {
  321. o := orm.NewOrmUsingDB("data")
  322. //sql := ` SELECT * FROM my_chart WHERE 1=1 AND admin_id=? `
  323. sql := ` SELECT a.*,GROUP_CONCAT(c.my_chart_classify_id SEPARATOR ',') AS my_chart_classify_id FROM my_chart AS a
  324. LEFT JOIN my_chart_classify_mapping AS b ON a.my_chart_id=b.my_chart_id AND a.admin_id=b.admin_id
  325. LEFT JOIN my_chart_classify AS c ON b.my_chart_classify_id=c.my_chart_classify_id AND b.admin_id=c.admin_id
  326. WHERE 1=1 AND a.admin_id=?
  327. GROUP BY a.chart_info_id `
  328. _, err = o.Raw(sql, adminId).QueryRows(&item)
  329. return
  330. }
  331. func GetMyChartSearchByCondition(condition string, pars []interface{}) (item []*MyChartList, err error) {
  332. o := orm.NewOrmUsingDB("data")
  333. sql := ` SELECT a.my_chart_id,c.sort,b.*,GROUP_CONCAT(DISTINCT d.my_chart_classify_name) AS my_chart_classify_name,GROUP_CONCAT(DISTINCT d.my_chart_classify_id) AS my_chart_classify_id
  334. FROM my_chart AS a
  335. INNER JOIN chart_info AS b ON a.chart_info_id=b.chart_info_id
  336. INNER JOIN my_chart_classify_mapping AS c ON a.my_chart_id=c.my_chart_id
  337. INNER JOIN my_chart_classify AS d ON c.my_chart_classify_id=d.my_chart_classify_id
  338. WHERE 1=1 `
  339. if condition != "" {
  340. sql += condition
  341. }
  342. sql += " GROUP BY a.chart_info_id ORDER BY c.sort DESC "
  343. _, err = o.Raw(sql, pars).QueryRows(&item)
  344. return
  345. }
  346. type MyChartSearchListResp struct {
  347. List []*MyChartList
  348. }
  349. type MyChartEditReq struct {
  350. MyChartId int `description:"我的图表主键"`
  351. CurrentMyChartClassifyId int `description:"当前分类ID"`
  352. MyChartClassifyId []int `description:"分类id,数组形式"`
  353. }
  354. func GetMyChartClassifyMappingCount(adminId, myChartId, myChartClassifyId int) (count int, err error) {
  355. o := orm.NewOrmUsingDB("data")
  356. sql := ` SELECT COUNT(1) AS count
  357. FROM my_chart_classify_mapping
  358. WHERE 1=1 AND admin_id=? AND my_chart_id=? AND my_chart_classify_id=? `
  359. err = o.Raw(sql, adminId, myChartId, myChartClassifyId).QueryRow(&count)
  360. return
  361. }
  362. func DeleteMyChartClassifyMapping(adminId, myChartId, myChartClassifyId int) (err error) {
  363. o := orm.NewOrmUsingDB("data")
  364. sql := ` DELETE FROM my_chart_classify_mapping
  365. WHERE admin_id=? AND my_chart_id=? AND my_chart_classify_id=? `
  366. _, err = o.Raw(sql, adminId, myChartId, myChartClassifyId).Exec()
  367. return
  368. }
  369. func GetMyChartSort(adminId, myChartClassifyId, sort int) (item *MyChartClassifyMapping, err error) {
  370. o := orm.NewOrmUsingDB("data")
  371. sql := ` SELECT * FROM my_chart_classify_mapping WHERE 1=1 AND admin_id=? AND my_chart_classify_id=? `
  372. if sort == 1 {
  373. sql += ` ORDER BY sort DESC LIMIT 1 `
  374. } else {
  375. sql += ` ORDER BY sort ASC LIMIT 1 `
  376. }
  377. err = o.Raw(sql, adminId, myChartClassifyId).QueryRow(&item)
  378. return
  379. }
  380. func GetMyChartByCondition(condition string, pars []interface{}) (item []*MyChartView, err error) {
  381. o := orm.NewOrmUsingDB("data")
  382. //sql := ` SELECT * FROM my_chart WHERE 1=1 `
  383. sql := `SELECT a.*,GROUP_CONCAT(c.my_chart_classify_id SEPARATOR ',') AS my_chart_classify_id FROM my_chart AS a
  384. LEFT JOIN my_chart_classify_mapping AS b ON a.my_chart_id=b.my_chart_id AND a.admin_id=b.admin_id
  385. LEFT JOIN my_chart_classify AS c ON b.my_chart_classify_id=c.my_chart_classify_id AND b.admin_id=c.admin_id
  386. WHERE 1=1
  387. `
  388. if condition != "" {
  389. sql += condition
  390. }
  391. sql += ` GROUP BY a.chart_info_id `
  392. _, err = o.Raw(sql, pars).QueryRows(&item)
  393. return
  394. }
  395. func GetMyChartDetailByCondition(condition string, pars []interface{}) (item *MyChartView, err error) {
  396. o := orm.NewOrmUsingDB("data")
  397. sql := ` SELECT * FROM my_chart WHERE 1=1 `
  398. if condition != "" {
  399. sql += condition
  400. }
  401. err = o.Raw(sql, pars).QueryRow(&item)
  402. return
  403. }
  404. func MoveMyChartClassify(adminId, myChartId int, myChartClassifyId []int) (err error) {
  405. o := orm.NewOrmUsingDB("data")
  406. o.Begin()
  407. defer func() {
  408. if err != nil {
  409. o.Rollback()
  410. } else {
  411. o.Commit()
  412. }
  413. }()
  414. classifyIdMap := make(map[int]int)
  415. for _, v := range myChartClassifyId {
  416. classifyIdMap[v] = v
  417. }
  418. mappingList := make([]*MyChartClassifyMapping, 0)
  419. sql := `SELECT * FROM my_chart_classify_mapping WHERE admin_id=? AND my_chart_id=?`
  420. _, err = o.Raw(sql, adminId, myChartId).QueryRows(&mappingList)
  421. if err != nil {
  422. return
  423. }
  424. for _, v := range mappingList {
  425. if _, ok := classifyIdMap[v.MyChartClassifyId]; !ok {
  426. sql := ` DELETE FROM my_chart_classify_mapping WHERE my_chart_classify_mapping_id=? `
  427. _, err = o.Raw(sql, v.MyChartClassifyMappingId).Exec()
  428. if err != nil {
  429. return
  430. }
  431. }
  432. }
  433. //sql := `DELETE FROM my_chart_classify_mapping WHERE admin_id=? AND my_chart_id=? `
  434. //_, err = o.Raw(sql, adminId, myChartId).Exec()
  435. //if err != nil {
  436. // return err
  437. //}
  438. step := float64(65536)
  439. for _, v := range myChartClassifyId {
  440. var count int
  441. sql := ` SELECT COUNT(1) AS count FROM my_chart_classify_mapping WHERE my_chart_id=? AND my_chart_classify_id=? `
  442. err = o.Raw(sql, myChartId, v).QueryRow(&count)
  443. if err != nil {
  444. return
  445. }
  446. if count <= 0 {
  447. total, err := GetMyChartMaxSort(adminId, v)
  448. if err != nil {
  449. return err
  450. }
  451. sort := (float64(total) + 1) * step
  452. sql = ` INSERT INTO my_chart_classify_mapping (
  453. admin_id,
  454. my_chart_id,
  455. my_chart_classify_id,
  456. create_time,
  457. modify_time,
  458. sort )VALUES (?,?,?,NOW(),NOW(),?) `
  459. _, err = o.Raw(sql, adminId, myChartId, v, sort).Exec()
  460. if err != nil {
  461. return err
  462. }
  463. }
  464. }
  465. return
  466. }
  467. // Update 更新分类基础信息
  468. func (myChartClassify *MyChartClassify) Update(cols []string) (err error) {
  469. o := orm.NewOrmUsingDB("data")
  470. _, err = o.Update(myChartClassify, cols...)
  471. return
  472. }
  473. // GetFirstMyChartClassifyByAdminId 获取当前账号下,排序第一条的分类数据
  474. func GetFirstMyChartClassifyByAdminId(adminId int) (item *MyChartClassify, err error) {
  475. o := orm.NewOrmUsingDB("data")
  476. sql := ` SELECT * FROM my_chart_classify WHERE admin_id=? order by sort asc,my_chart_classify_id asc limit 1`
  477. err = o.Raw(sql, adminId).QueryRow(&item)
  478. return
  479. }
  480. // UpdateMyChartClassifySortByClassifyId 根据分类id更新排序
  481. func UpdateMyChartClassifySortByClassifyId(adminId, classifyId, nowSort int, updateSort string) (err error) {
  482. o := orm.NewOrmUsingDB("data")
  483. sql := ` update my_chart_classify set sort = ` + updateSort + ` WHERE admin_id = ? and sort > ? `
  484. if classifyId > 0 {
  485. sql += ` or ( my_chart_classify_id > ` + fmt.Sprint(classifyId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
  486. }
  487. _, err = o.Raw(sql, adminId, nowSort).Exec()
  488. return
  489. }