manual.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559
  1. package data_manage
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/controllers"
  5. "eta/eta_api/models"
  6. "eta/eta_api/models/data_manage"
  7. "eta/eta_api/models/system"
  8. "eta/eta_api/services/data"
  9. "eta/eta_api/utils"
  10. "fmt"
  11. "strconv"
  12. "strings"
  13. "time"
  14. )
  15. // 手工数据管理
  16. type ManualController struct {
  17. controllers.BaseAuthController
  18. }
  19. // @Title 手工数据权限用户搜索
  20. // @Description 手工数据权限用户搜索
  21. // @Param KeyWord query string false "关键词搜索"
  22. // @Success 200 {object} data_manage.ManualSysUser
  23. // @router /manual/sysuser/search [get]
  24. func (this *ManualController) ManualSysUserSearch() {
  25. br := new(models.BaseResponse).Init()
  26. defer func() {
  27. this.Data["json"] = br
  28. this.ServeJSON()
  29. }()
  30. sysUser := this.SysUser
  31. if sysUser == nil {
  32. br.Msg = "请登录"
  33. br.Ret = 408
  34. return
  35. }
  36. keyWord := this.GetString("KeyWord")
  37. list, err := data.GetManualSysUser(keyWord)
  38. if err != nil {
  39. br.Msg = "获取失败"
  40. br.ErrMsg = "获取失败,Err:" + err.Error()
  41. return
  42. }
  43. br.Ret = 200
  44. br.Success = true
  45. br.Msg = "获取成功"
  46. br.Data = list
  47. }
  48. // @Title 获取手工数据权限用户
  49. // @Description 获取手工数据权限用户
  50. // @Success 200 {object} data_manage.ManualUserList
  51. // @router /manual/sysuser/all [get]
  52. func (this *ManualController) ManualSysUserAll() {
  53. br := new(models.BaseResponse).Init()
  54. defer func() {
  55. this.Data["json"] = br
  56. this.ServeJSON()
  57. }()
  58. sysUser := this.SysUser
  59. if sysUser == nil {
  60. br.Msg = "请登录"
  61. br.Ret = 408
  62. return
  63. }
  64. fmt.Println("start")
  65. list, err := data_manage.GetManualUserList()
  66. if err != nil {
  67. br.Msg = "获取失败"
  68. br.ErrMsg = "获取失败,Err:" + err.Error()
  69. return
  70. }
  71. fmt.Println("end")
  72. br.Ret = 200
  73. br.Success = true
  74. br.Msg = "获取成功"
  75. br.Data = list
  76. }
  77. // @Title 获取所有手工数据分类
  78. // @Description 获取所有手工数据分类
  79. // @Param AdminId query int false "初始化,AdminId 传0,如果对应具体用户,传对应的id"
  80. // @Success 200 {object} data_manage.ManualClassifyList
  81. // @router /manual/classify/all [get]
  82. func (this *ManualController) ClassifyList() {
  83. br := new(models.BaseResponse).Init()
  84. defer func() {
  85. this.Data["json"] = br
  86. this.ServeJSON()
  87. }()
  88. sysUser := this.SysUser
  89. if sysUser == nil {
  90. br.Msg = "请登录"
  91. br.Ret = 408
  92. return
  93. }
  94. adminId, _ := this.GetInt("AdminId")
  95. list, err := data_manage.GetManualClassifyAll(adminId)
  96. if err != nil {
  97. br.Msg = "获取失败"
  98. br.ErrMsg = "获取失败,Err:" + err.Error()
  99. return
  100. }
  101. br.Ret = 200
  102. br.Success = true
  103. br.Msg = "获取成功"
  104. br.Data = list
  105. }
  106. // @Title 保存手工数据权限-用户对应分类
  107. // @Description 保存手工数据权限-用户对应分类
  108. // @Param request body data_manage.ManualSysUserClassifySaveReq true "type json string"
  109. // @Success Ret=200 保存成功
  110. // @router /manual/sysuser/classify/save [post]
  111. func (this *ManualController) ManualSysUserClassifySave() {
  112. br := new(models.BaseResponse).Init()
  113. defer func() {
  114. this.Data["json"] = br
  115. this.ServeJSON()
  116. }()
  117. sysUser := this.SysUser
  118. if sysUser == nil {
  119. br.Msg = "请登录"
  120. br.Ret = 408
  121. return
  122. }
  123. var req data_manage.ManualSysUserClassifySaveReq
  124. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  125. if err != nil {
  126. br.Msg = "参数解析异常!"
  127. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  128. return
  129. }
  130. if req.AdminId <= 0 {
  131. br.Msg = "参数错误!"
  132. return
  133. }
  134. sysUserItem, err := system.GetSysUserById(req.AdminId)
  135. if err != nil {
  136. br.Msg = "获取用户信息失败!"
  137. br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
  138. return
  139. }
  140. err = data_manage.DeleteManualUserClassifyCount(req.AdminId)
  141. if err != nil {
  142. br.Msg = "保存失败!"
  143. br.ErrMsg = "删除用户分类信息失败,Err:" + err.Error()
  144. return
  145. }
  146. list := make([]*data_manage.ManualUserClassify, 0)
  147. for _, v := range req.ClassifyId {
  148. item := new(data_manage.ManualUserClassify)
  149. item.AdminId = req.AdminId
  150. item.ClassifyId = v
  151. item.CreateTime = time.Now()
  152. list = append(list, item)
  153. }
  154. if len(list) > 0 {
  155. err = data_manage.AddManualUserClassifyMulti(list)
  156. if err != nil {
  157. br.Msg = "保存失败!"
  158. br.ErrMsg = "保存失败,Err:" + err.Error()
  159. return
  160. }
  161. }
  162. count, err := data_manage.GetManualUserCount(req.AdminId)
  163. if err != nil {
  164. br.Msg = "保存失败!"
  165. br.ErrMsg = "判断用户是否存在失败,Err:" + err.Error()
  166. return
  167. }
  168. if count <= 0 {
  169. manualUser := new(data_manage.ManualUser)
  170. manualUser.AdminId = req.AdminId
  171. manualUser.CreateTime = time.Now()
  172. manualUser.SysUserId = sysUser.AdminId
  173. manualUser.AdminRealName = sysUserItem.RealName
  174. manualUser.SysUserRealName = sysUser.RealName
  175. err = data_manage.AddManualUser(manualUser)
  176. if err != nil {
  177. br.Msg = "保存失败!"
  178. br.ErrMsg = "保存用户信息失败,Err:" + err.Error()
  179. return
  180. }
  181. }
  182. br.Ret = 200
  183. br.Success = true
  184. br.Msg = "保存成功"
  185. }
  186. // AddManualClassify
  187. // @Title 新增手工指标分类
  188. // @Description 新增手工指标分类接口
  189. // @Param request body data_manage.AddManualClassifyReq true "type json string"
  190. // @Success 200 Ret=200 保存成功
  191. // @router /manual/classify/add [post]
  192. func (this *ChartClassifyController) AddManualClassify() {
  193. br := new(models.BaseResponse).Init()
  194. defer func() {
  195. this.Data["json"] = br
  196. this.ServeJSON()
  197. }()
  198. var req data_manage.AddManualClassifyReq
  199. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  200. if err != nil {
  201. br.Msg = "参数解析异常!"
  202. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  203. return
  204. }
  205. if req.ClassifyName == "" {
  206. br.Msg = "请输入分类名称"
  207. br.IsSendEmail = false
  208. return
  209. }
  210. if req.ParentId < 0 {
  211. br.Msg = "参数错误"
  212. br.IsSendEmail = false
  213. return
  214. }
  215. classifyItem, err := data_manage.GetManualClassifyByClassifyName(req.ClassifyName)
  216. if err != nil && !utils.IsErrNoRow(err) {
  217. br.Msg = "判断名称是否已存在失败"
  218. br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
  219. return
  220. }
  221. if classifyItem != nil && classifyItem.ClassifyId > 0 {
  222. if classifyItem.IsShow == 1 {
  223. br.Msg = "分类名称已存在,请重新输入"
  224. br.IsSendEmail = false
  225. return
  226. } else {
  227. err = data_manage.ModifyManualClassifyIsShow(1, classifyItem.ClassifyId, req.ParentId)
  228. if err != nil {
  229. br.Msg = "保存失败"
  230. br.ErrMsg = "保存失败,Err:" + err.Error()
  231. br.IsSendEmail = false
  232. return
  233. }
  234. parentItem, _ := data_manage.GetManualClassifyById(req.ParentId)
  235. if parentItem != nil && parentItem.ClassifyId > 0 && parentItem.IsShow == 0 {
  236. err = data_manage.ModifyManualClassifyIsShow(1, parentItem.ClassifyId, req.ParentId)
  237. if err != nil {
  238. br.Msg = "保存失败"
  239. br.ErrMsg = "保存失败,Err:" + err.Error()
  240. br.IsSendEmail = false
  241. return
  242. }
  243. }
  244. br.Msg = "保存成功"
  245. br.Success = true
  246. br.Ret = 200
  247. return
  248. }
  249. }
  250. classify := new(data_manage.EdbdataClassify)
  251. classify.IsShow = 1
  252. classify.ClassifyName = req.ClassifyName
  253. classify.ParentId = req.ParentId
  254. classify.CreateTime = time.Now()
  255. classify.Sort = 0
  256. _, err = data_manage.AddEdbdataClassify(classify)
  257. if err != nil {
  258. br.Msg = "保存失败"
  259. br.ErrMsg = "保存失败,Err:" + err.Error()
  260. br.IsSendEmail = false
  261. return
  262. }
  263. br.Ret = 200
  264. br.Msg = "保存成功"
  265. br.Success = true
  266. }
  267. // ManualClassifyEdit
  268. // @Title 修改手工指标分类
  269. // @Description 修改手工指标分类接口
  270. // @Param request body data_manage.EditManualClassifyReq true "type json string"
  271. // @Success 200 Ret=200 修改成功
  272. // @router /manual/classify/edit [post]
  273. func (this *ChartClassifyController) ManualClassifyEdit() {
  274. br := new(models.BaseResponse).Init()
  275. defer func() {
  276. this.Data["json"] = br
  277. this.ServeJSON()
  278. }()
  279. var req data_manage.EditManualClassifyReq
  280. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  281. if err != nil {
  282. br.Msg = "参数解析异常!"
  283. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  284. return
  285. }
  286. if req.ClassifyName == "" {
  287. br.Msg = "请输入分类名称"
  288. br.IsSendEmail = false
  289. return
  290. }
  291. if req.ClassifyId <= 0 {
  292. br.Msg = "参数错误"
  293. br.IsSendEmail = false
  294. return
  295. }
  296. item, err := data_manage.GetManualClassifyById(req.ClassifyId)
  297. if err != nil {
  298. br.Msg = "修改失败"
  299. br.ErrMsg = "获取分类失败,Err:" + err.Error()
  300. return
  301. }
  302. classifyItem, err := data_manage.GetManualClassifyByClassifyName(req.ClassifyName)
  303. if err != nil && !utils.IsErrNoRow(err) {
  304. br.Msg = "修改失败"
  305. br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
  306. return
  307. }
  308. if classifyItem != nil && classifyItem.ClassifyId > 0 && item.ClassifyId != classifyItem.ClassifyId {
  309. br.Msg = "名称已存在,请重新输入"
  310. return
  311. }
  312. err = data_manage.ModifyManualClassifyName(req.ClassifyName, req.ClassifyId, req.ParentId)
  313. if err != nil {
  314. br.Msg = "修改失败"
  315. br.ErrMsg = "修改失败,Err:" + err.Error()
  316. return
  317. }
  318. br.Ret = 200
  319. br.Msg = "修改成功"
  320. br.Success = true
  321. }
  322. // ManualClassifyDel
  323. // @Title 删除手工指标分类
  324. // @Description 删除手工指标分类接口
  325. // @Param request body data_manage.DelManualClassifyReq true "type json string"
  326. // @Success 200 Ret=200 删除成功
  327. // @router /manual/classify/delete [post]
  328. func (this *ChartClassifyController) ManualClassifyDel() {
  329. br := new(models.BaseResponse).Init()
  330. defer func() {
  331. this.Data["json"] = br
  332. this.ServeJSON()
  333. }()
  334. var req data_manage.DelManualClassifyReq
  335. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  336. if err != nil {
  337. br.Msg = "参数解析异常!"
  338. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  339. return
  340. }
  341. if req.ClassifyId <= 0 {
  342. br.Msg = "请选择分类"
  343. br.IsSendEmail = false
  344. return
  345. }
  346. classifyItem, err := data_manage.GetManualClassifyById(req.ClassifyId)
  347. if err != nil && !utils.IsErrNoRow(err) {
  348. br.Msg = "查找分类失败"
  349. br.ErrMsg = "查找分类失败,Err:" + err.Error()
  350. return
  351. }
  352. if classifyItem.IsShow == 0 {
  353. br.Msg = "该分类已删除"
  354. br.IsSendEmail = false
  355. return
  356. }
  357. // 获取当前分类下是否存在子分类
  358. count, err := data_manage.GetChildManualClassifyCount(req.ClassifyId)
  359. if err != nil && !utils.IsErrNoRow(err) {
  360. br.Msg = "删除失败"
  361. br.ErrMsg = "根据分类id获取下面存在的子分类数量失败,Err:" + err.Error()
  362. return
  363. }
  364. if count > 0 {
  365. br.Msg = "该分类下包含子分类,不允许删除!"
  366. br.IsSendEmail = false
  367. return
  368. }
  369. if classifyItem.ParentId > 0 {
  370. // 获取当前分类下的指标数
  371. count, err = data_manage.GetManualEdbInfoCountByClassifyId(req.ClassifyId)
  372. if err != nil && !utils.IsErrNoRow(err) {
  373. br.Msg = "删除失败"
  374. br.ErrMsg = "根据分类id获取下面存在的指标数量失败,Err:" + err.Error()
  375. return
  376. }
  377. if count > 0 {
  378. br.Msg = "该分类下包含指标,不允许删除!"
  379. br.IsSendEmail = false
  380. return
  381. }
  382. }
  383. // 修改是否展示
  384. err = data_manage.ModifyManualClassifyIsShow(0, classifyItem.ClassifyId, classifyItem.ParentId)
  385. if err != nil {
  386. br.Msg = "删除失败"
  387. br.ErrMsg = "删除失败,Err:" + err.Error()
  388. return
  389. }
  390. br.Ret = 200
  391. br.Msg = "删除成功"
  392. br.Success = true
  393. }
  394. // @Title 获取用户设置的所有分类
  395. // @Description 获取用户设置的所有分类(手工数据录入页面)
  396. // @Success 200 {object} data_manage.EdbdataClassify
  397. // @router /manual/set_classify/all [get]
  398. func (this *ManualController) ManualSetClassifyAll() {
  399. br := new(models.BaseResponse).Init()
  400. defer func() {
  401. this.Data["json"] = br
  402. this.ServeJSON()
  403. }()
  404. sysUser := this.SysUser
  405. if sysUser == nil {
  406. br.Msg = "请登录"
  407. br.Ret = 408
  408. return
  409. }
  410. adminId := sysUser.AdminId
  411. setList, err := data_manage.GetManualUserSetClassify(adminId)
  412. if err != nil {
  413. br.Msg = "获取失败"
  414. br.ErrMsg = "获取失败,Err:" + err.Error()
  415. return
  416. }
  417. listLen := len(setList)
  418. classifyArr := make([]string, 0)
  419. for i := 0; i < listLen; i++ {
  420. classifyArr = append(classifyArr, strconv.Itoa(setList[i].ClassifyId))
  421. }
  422. classifyIdStr := strings.Join(classifyArr, ",")
  423. condition := ""
  424. items := make([]*data_manage.EdbdataClassifyList, 0)
  425. if classifyIdStr != "" {
  426. condition += ` AND classify_id IN(` + classifyIdStr + `)`
  427. condition += ` AND parent_id<>0 `
  428. items, err = data_manage.GetManualClassifyAllByCondition(condition)
  429. if err != nil {
  430. br.Msg = "获取失败"
  431. br.ErrMsg = "获取失败,Err:" + err.Error()
  432. return
  433. }
  434. }
  435. classifyEdbTotalList, _ := data_manage.GetManualClassifyEdbInfoCount()
  436. edbTotalMap := make(map[int]int)
  437. for _, v := range classifyEdbTotalList {
  438. edbTotalMap[v.ClassifyId] = v.Total
  439. }
  440. itemsLen := len(items)
  441. for i := 0; i < itemsLen; i++ {
  442. items[i].Total = edbTotalMap[items[i].ClassifyId]
  443. }
  444. br.Ret = 200
  445. br.Success = true
  446. br.Msg = "获取成功"
  447. br.Data = items
  448. }
  449. // FirstClassifyList
  450. // @Title 获取所有手工数据的一级分类
  451. // @Description 获取所有手工数据的一级分类
  452. // @Success 200 {object} data_manage.ManualClassifyList
  453. // @router /manual/classify/first [get]
  454. func (this *ManualController) FirstClassifyList() {
  455. br := new(models.BaseResponse).Init()
  456. defer func() {
  457. this.Data["json"] = br
  458. this.ServeJSON()
  459. }()
  460. sysUser := this.SysUser
  461. if sysUser == nil {
  462. br.Msg = "请登录"
  463. br.Ret = 408
  464. return
  465. }
  466. condition := " AND parent_id =0 "
  467. list, err := data_manage.GetManualClassifyAllByCondition(condition)
  468. if err != nil {
  469. br.Msg = "获取失败"
  470. br.ErrMsg = "获取失败,Err:" + err.Error()
  471. return
  472. }
  473. br.Ret = 200
  474. br.Success = true
  475. br.Msg = "获取成功"
  476. br.Data = list
  477. }
  478. // AllClassifyList
  479. // @Title 获取所有手工数据分类
  480. // @Description 获取所有手工数据分类
  481. // @Success 200 {object} data_manage.ManualClassifyList
  482. // @router /manual/classify/all_list [get]
  483. func (this *ManualController) AllClassifyList() {
  484. br := new(models.BaseResponse).Init()
  485. defer func() {
  486. this.Data["json"] = br
  487. this.ServeJSON()
  488. }()
  489. sysUser := this.SysUser
  490. if sysUser == nil {
  491. br.Msg = "请登录"
  492. br.Ret = 408
  493. return
  494. }
  495. list, err := data_manage.GetManualClassifyAllV2()
  496. if err != nil {
  497. br.Msg = "获取失败"
  498. br.ErrMsg = "获取失败,Err:" + err.Error()
  499. return
  500. }
  501. br.Ret = 200
  502. br.Success = true
  503. br.Msg = "获取成功"
  504. br.Data = list
  505. }
  506. //func init() {
  507. // fmt.Println("start")
  508. // adminId:=137
  509. // setList, err := data_manage.GetManualUserSetClassify(adminId)
  510. // if err != nil {
  511. // fmt.Println("err:", err)
  512. // return
  513. // }
  514. // listLen := len(setList)
  515. // classifyArr := make([]string, 0)
  516. // for i := 0; i < listLen; i++ {
  517. // classifyArr = append(classifyArr, strconv.Itoa(setList[i].ClassifyId))
  518. // }
  519. // classifyIdStr := strings.Join(classifyArr, ",")
  520. // condition := ""
  521. // if classifyIdStr != "" {
  522. // condition += ` AND classify_id IN(` + classifyIdStr + `)`
  523. // }
  524. // items, err := data_manage.GetManualClassifyAllByCondition(condition)
  525. // if err != nil {
  526. // fmt.Println("err:", err)
  527. // return
  528. // }
  529. // fmt.Println(items)
  530. // fmt.Println("end")
  531. //}