edb_info_refresh.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717
  1. package data_manage
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/models"
  5. "eta/eta_api/models/data_manage"
  6. "eta/eta_api/models/data_manage/edb_refresh"
  7. "eta/eta_api/models/data_manage/edb_refresh/request"
  8. "eta/eta_api/utils"
  9. "fmt"
  10. "github.com/rdlucklib/rdluck_tools/paging"
  11. "strings"
  12. "time"
  13. )
  14. // RefreshSourceList
  15. // @Title 获取指标刷新配置的来源接口
  16. // @Description 获取指标刷新配置的来源接口
  17. // @Success Ret=200 获取成功
  18. // @router /edb_info/refresh/source_list [get]
  19. func (c *EdbInfoController) RefreshSourceList() {
  20. br := new(models.BaseResponse).Init()
  21. defer func() {
  22. c.Data["json"] = br
  23. c.ServeJSON()
  24. }()
  25. item := edb_refresh.EdbRefreshSource{}
  26. tmpList, err := item.GetAllList()
  27. if err != nil {
  28. br.Msg = "获取失败"
  29. br.ErrMsg = "获取刷新数据源失败, Err: " + err.Error()
  30. return
  31. }
  32. list := make([]edb_refresh.EdbRefreshSourceList, 0)
  33. tmpMap := make(map[int]edb_refresh.EdbRefreshSourceList, 0)
  34. for _, v := range tmpList {
  35. tmp, ok := tmpMap[v.Source]
  36. if ok {
  37. continue
  38. }
  39. tmp = edb_refresh.EdbRefreshSourceList{
  40. Source: v.Source,
  41. SourceName: v.SourceName,
  42. //SubSource: v.SubSource,
  43. //SubSourceName: v.SubSourceName,
  44. Child: make([]edb_refresh.EdbRefreshSourceList, 0),
  45. HasChild: v.HasChild,
  46. }
  47. if v.HasChild == 1 {
  48. for _, v2 := range tmpList {
  49. if v2.Source == v.Source {
  50. tmp.Child = append(tmp.Child, edb_refresh.EdbRefreshSourceList{
  51. Source: v.Source,
  52. SourceName: v.SourceName,
  53. SubSource: v.SubSource,
  54. SubSourceName: v.SubSourceName,
  55. HasChild: 0,
  56. })
  57. }
  58. }
  59. }
  60. tmpMap[v.Source] = tmp
  61. list = append(list, tmp)
  62. }
  63. br.Ret = 200
  64. br.Success = true
  65. br.Msg = "获取成功"
  66. br.Data = list
  67. }
  68. // RefreshClassifyList
  69. // @Title 获取指标分类列表接口
  70. // @Description 获取指标分类列表接口
  71. // @Param Source query int true "来源:1:同花顺,2:wind,3:彭博"
  72. // @Success Ret=200 获取成功
  73. // @router /edb_info/refresh/classify_list [get]
  74. func (c *EdbInfoController) RefreshClassifyList() {
  75. br := new(models.BaseResponse).Init()
  76. defer func() {
  77. c.Data["json"] = br
  78. c.ServeJSON()
  79. }()
  80. source, _ := c.GetInt("Source", utils.DATA_SOURCE_MYSTEEL_CHEMICAL)
  81. list := make([]*edb_refresh.BaseClassifyItems, 0)
  82. switch source {
  83. case utils.DATA_SOURCE_MYSTEEL_CHEMICAL: // 钢联
  84. rootList, err := data_manage.GetBaseFromMysteelChemicalClassifyByParentId(0)
  85. if err != nil && err.Error() != utils.ErrNoRow() {
  86. br.Msg = "获取失败"
  87. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  88. return
  89. }
  90. classifyAll, err := data_manage.GetAllBaseFromMysteelChemicalClassify()
  91. if err != nil && err.Error() != utils.ErrNoRow() {
  92. br.Msg = "获取失败"
  93. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  94. return
  95. }
  96. rootChildMap := make(map[int][]*edb_refresh.BaseClassifyItems)
  97. for _, v := range classifyAll {
  98. //tmpList, ok := rootChildMap[v.ParentId]
  99. //if !ok {
  100. // tmpList = make([]data_manage.BaseClassifyItems, 0)
  101. //}
  102. //tmpList = append(tmpList, data_manage.BaseClassifyItems{
  103. // ClassifyId: v.BaseFromMysteelChemicalClassifyId,
  104. // ClassifyName: v.ClassifyName,
  105. // ParentId: v.ParentId,
  106. // UniqueCode: fmt.Sprint(v.BaseFromMysteelChemicalClassifyId),
  107. // Children: nil,
  108. //})
  109. //rootChildMap[v.ParentId] = tmpList
  110. rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], &edb_refresh.BaseClassifyItems{
  111. ClassifyId: v.BaseFromMysteelChemicalClassifyId,
  112. ClassifyName: v.ClassifyName,
  113. ParentId: v.ParentId,
  114. UniqueCode: fmt.Sprint(v.BaseFromMysteelChemicalClassifyId),
  115. Children: nil,
  116. })
  117. }
  118. for _, v := range rootList {
  119. tmp := &edb_refresh.BaseClassifyItems{
  120. ClassifyId: v.BaseFromMysteelChemicalClassifyId,
  121. ClassifyName: v.ClassifyName,
  122. ParentId: v.ParentId,
  123. UniqueCode: fmt.Sprint(v.BaseFromMysteelChemicalClassifyId),
  124. Children: nil,
  125. }
  126. if existItems, ok := rootChildMap[v.BaseFromMysteelChemicalClassifyId]; ok {
  127. tmp.Children = existItems
  128. } else {
  129. items := make([]*edb_refresh.BaseClassifyItems, 0)
  130. tmp.Children = items
  131. }
  132. list = append(list, tmp)
  133. }
  134. case utils.DATA_SOURCE_YS: // 有色
  135. list = append(list, &edb_refresh.BaseClassifyItems{
  136. ClassifyId: 0,
  137. ClassifyName: "未分类",
  138. ParentId: 0,
  139. UniqueCode: fmt.Sprint(0),
  140. Children: nil,
  141. })
  142. rootList, err := data_manage.GetBaseFromSmmClassifyByParentId(0)
  143. if err != nil && err.Error() != utils.ErrNoRow() {
  144. br.Msg = "获取失败"
  145. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  146. return
  147. }
  148. classifyAll, err := data_manage.GetAllBaseFromSmmClassify()
  149. if err != nil && err.Error() != utils.ErrNoRow() {
  150. br.Msg = "获取失败"
  151. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  152. return
  153. }
  154. rootChildMap := make(map[int][]*edb_refresh.BaseClassifyItems)
  155. for _, v := range classifyAll {
  156. rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], &edb_refresh.BaseClassifyItems{
  157. ClassifyId: v.ClassifyId,
  158. ClassifyName: v.ClassifyName,
  159. ParentId: v.ParentId,
  160. UniqueCode: fmt.Sprint(v.ClassifyId),
  161. Children: nil,
  162. })
  163. }
  164. for _, v := range rootList {
  165. tmp := &edb_refresh.BaseClassifyItems{
  166. ClassifyId: v.ClassifyId,
  167. ClassifyName: v.ClassifyName,
  168. ParentId: v.ParentId,
  169. UniqueCode: fmt.Sprint(v.ClassifyId),
  170. Children: nil,
  171. }
  172. if existItems, ok := rootChildMap[v.ClassifyId]; ok {
  173. tmp.Children = existItems
  174. } else {
  175. items := make([]*edb_refresh.BaseClassifyItems, 0)
  176. tmp.Children = items
  177. }
  178. list = append(list, tmp)
  179. }
  180. default:
  181. tmpList, err := data_manage.GetAllEdbClassify()
  182. if err != nil && err.Error() != utils.ErrNoRow() {
  183. br.Msg = "获取失败"
  184. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  185. return
  186. }
  187. for _, v := range tmpList {
  188. list = append(list, &edb_refresh.BaseClassifyItems{
  189. ClassifyId: v.ClassifyId,
  190. ClassifyName: v.ClassifyName,
  191. ParentId: v.ParentId,
  192. UniqueCode: fmt.Sprint(v.ClassifyId),
  193. Children: nil,
  194. })
  195. }
  196. list = buildTree(list, 0)
  197. //fmt.Println(result)
  198. }
  199. br.Ret = 200
  200. br.Success = true
  201. br.Msg = "获取成功"
  202. br.Data = list
  203. }
  204. // 生成多层级列表的递归函数
  205. func buildTree(items []*edb_refresh.BaseClassifyItems, parentId int) []*edb_refresh.BaseClassifyItems {
  206. var result []*edb_refresh.BaseClassifyItems
  207. // 遍历所有分类项
  208. for i := range items {
  209. // 找到当前节点的子节点
  210. if items[i].ParentId == parentId {
  211. // 递归构建子节点的子节点
  212. items[i].Children = buildTree(items, items[i].ClassifyId)
  213. // 将当前节点添加到结果中
  214. result = append(result, items[i])
  215. }
  216. }
  217. return result
  218. }
  219. // RefreshEdbList
  220. // @Title 获取待配置的指标列表接口
  221. // @Description 获取待配置的指标列表接口
  222. // @Param Source query int true "来源:1:同花顺,2:wind,3:彭博"
  223. // @Param SubSource query int true "来源:0:经济数据库,1:日期序列"
  224. // @Param ClassifyId query int false "分类ID"
  225. // @Param TerminalCode query string false "终端编码"
  226. // @Param SysUserId query string false "创建人"
  227. // @Param Frequency query string false "频度"
  228. // @Param Keyword query string false "关键词"
  229. // @Success 200 {object} data_manage.RefreshBaseEdbInfoResp
  230. // @router /edb_info/refresh/edb_list [get]
  231. func (c *EdbInfoController) RefreshEdbList() {
  232. br := new(models.BaseResponse).Init()
  233. defer func() {
  234. c.Data["json"] = br
  235. c.ServeJSON()
  236. }()
  237. source, _ := c.GetInt("Source")
  238. subSource, _ := c.GetInt("SubSource")
  239. classifyId, _ := c.GetInt("ClassifyId")
  240. terminalCode := c.GetString("TerminalCode")
  241. sysUserId := c.GetString("SysUserId")
  242. frequency := c.GetString("Frequency")
  243. keyword := c.GetString("Keyword")
  244. pageSize, _ := c.GetInt("PageSize")
  245. currentIndex, _ := c.GetInt("CurrentIndex")
  246. var startSize int
  247. if pageSize <= 0 {
  248. pageSize = utils.PageSize20
  249. }
  250. if currentIndex <= 0 {
  251. currentIndex = 1
  252. }
  253. startSize = utils.StartIndex(currentIndex, pageSize)
  254. total, list, err := getList(source, subSource, classifyId, terminalCode, sysUserId, frequency, keyword, startSize, pageSize)
  255. if err != nil && err.Error() != utils.ErrNoRow() {
  256. br.Msg = "获取失败"
  257. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  258. return
  259. }
  260. page := paging.GetPaging(currentIndex, pageSize, total)
  261. resp := data_manage.RefreshBaseEdbInfoResp{
  262. Paging: page,
  263. List: list,
  264. }
  265. // todo 数据源中的最新值
  266. // todo 刷新时间
  267. br.Ret = 200
  268. br.Success = true
  269. br.Msg = "获取成功"
  270. br.Data = resp
  271. }
  272. // GetEdbRefreshDefaultConfig
  273. // @Title 获取待配置的指标列表接口
  274. // @Description 获取待配置的指标列表接口
  275. // @Param Source query int true "来源:1:同花顺,2:wind,3:彭博"
  276. // @Param SubSource query int true "来源:0:经济数据库,1:日期序列"
  277. // @Param Frequency query string false "频度"
  278. // @Success 200 {object} data_manage.RefreshBaseEdbInfoResp
  279. // @router /edb_info/refresh/default_config [get]
  280. func (c *EdbInfoController) GetEdbRefreshDefaultConfig() {
  281. br := new(models.BaseResponse).Init()
  282. defer func() {
  283. c.Data["json"] = br
  284. c.ServeJSON()
  285. }()
  286. source, _ := c.GetInt("Source")
  287. subSource, _ := c.GetInt("SubSource")
  288. frequency := c.GetString("Frequency")
  289. if source <= 0 {
  290. br.Msg = "来源不能为空"
  291. br.IsSendEmail = false
  292. return
  293. }
  294. if frequency == `` {
  295. br.Msg = "频度不能为空"
  296. br.IsSendEmail = false
  297. return
  298. }
  299. list, err := edb_refresh.GetListBySourceAndFrequency(source, subSource, frequency)
  300. if err != nil {
  301. br.Msg = "获取失败"
  302. br.ErrMsg = err.Error()
  303. return
  304. }
  305. br.Ret = 200
  306. br.Success = true
  307. br.Msg = "获取成功"
  308. br.Data = list
  309. }
  310. // SaveEdbRefreshDefaultConfig
  311. // @Title 设置默认的指标刷新配置接口
  312. // @Description 设置默认的指标刷新配置接口
  313. // @Param request body data_manage.SaveEdbRefreshDefaultConfigReq true "type json string"
  314. // @Success Ret=200 保存成功
  315. // @router /edb_info/refresh/default_config/save [post]
  316. func (c *EdbInfoController) SaveEdbRefreshDefaultConfig() {
  317. br := new(models.BaseResponse).Init()
  318. defer func() {
  319. c.Data["json"] = br
  320. c.ServeJSON()
  321. }()
  322. var req request.SaveEdbRefreshDefaultConfigReq
  323. err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
  324. if err != nil {
  325. br.Msg = "参数解析异常!"
  326. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  327. return
  328. }
  329. if req.Source <= 0 {
  330. br.Msg = "来源不能为空"
  331. br.IsSendEmail = false
  332. return
  333. }
  334. if req.Frequency == `` {
  335. br.Msg = "频度不能为空"
  336. br.IsSendEmail = false
  337. return
  338. }
  339. lenConf := len(req.List)
  340. if lenConf == 0 {
  341. br.Msg = "至少需要一个刷新配置"
  342. br.IsSendEmail = false
  343. return
  344. }
  345. tmpArr := []string{"每周", "每旬", "每月", "每季", "每半年", "每年"}
  346. for _, v := range req.List {
  347. if utils.InArrayByStr(tmpArr, v.RefreshFrequency) && v.RefreshFrequencyDay <= 0 {
  348. br.Msg = "请选择具体日期"
  349. br.IsSendEmail = false
  350. return
  351. }
  352. if v.RefreshTime == "" {
  353. br.Msg = "请选择具体时间"
  354. br.IsSendEmail = false
  355. return
  356. }
  357. }
  358. addList := make([]*edb_refresh.EdbRefreshDefaultConfig, 0)
  359. for _, v := range req.List {
  360. addList = append(addList, &edb_refresh.EdbRefreshDefaultConfig{
  361. Source: req.Source,
  362. SubSource: req.SubSource,
  363. Frequency: req.Frequency,
  364. RefreshFrequency: v.RefreshFrequency,
  365. RefreshFrequencyDay: v.RefreshFrequencyDay,
  366. RefreshAllData: v.RefreshAllData,
  367. RefreshTime: v.RefreshTime,
  368. RefreshDataNum: v.RefreshDataNum,
  369. ModifyTime: time.Now(),
  370. CreateTime: time.Now(),
  371. })
  372. }
  373. // 保存
  374. err = edb_refresh.SaveEdbRefreshDefaultConfig(req.Source, req.SubSource, req.Frequency, addList)
  375. if err != nil {
  376. br.Msg = `保存失败`
  377. br.ErrMsg = "保存失败,Err:" + err.Error()
  378. return
  379. }
  380. br.Ret = 200
  381. br.Success = true
  382. br.Msg = "保存成功"
  383. }
  384. // SaveEdbRefreshConfig
  385. // @Title 单独设置指标刷新配置接口
  386. // @Description 单独设置指标刷新配置接口
  387. // @Param request body data_manage.SaveEdbRefreshConfigReq true "type json string"
  388. // @Success 200 {object} data_manage.RefreshBaseEdbInfoResp
  389. // @router /edb_info/refresh/config/save [post]
  390. func (c *EdbInfoController) SaveEdbRefreshConfig() {
  391. br := new(models.BaseResponse).Init()
  392. defer func() {
  393. c.Data["json"] = br
  394. c.ServeJSON()
  395. }()
  396. var req request.SaveEdbRefreshConfigReq
  397. err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
  398. if err != nil {
  399. br.Msg = "参数解析异常!"
  400. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  401. return
  402. }
  403. if req.Source <= 0 {
  404. br.Msg = "来源不能为空"
  405. br.IsSendEmail = false
  406. return
  407. }
  408. lenConf := len(req.List)
  409. if lenConf == 0 {
  410. br.Msg = "至少需要一个刷新配置"
  411. br.IsSendEmail = false
  412. return
  413. }
  414. tmpArr := []string{"每周", "每旬", "每月", "每季", "每半年", "每年"}
  415. for _, v := range req.List {
  416. if utils.InArrayByStr(tmpArr, v.RefreshFrequency) && v.RefreshFrequencyDay <= 0 {
  417. br.Msg = "请选择具体日期"
  418. br.IsSendEmail = false
  419. return
  420. }
  421. if v.RefreshTime == "" {
  422. br.Msg = "请选择具体时间"
  423. br.IsSendEmail = false
  424. return
  425. }
  426. }
  427. edbIdList := make([]int, 0)
  428. // 指标id列表
  429. if req.IsSelectAll {
  430. // 如果是列表全选
  431. _, edbList, err := getList(req.Source, req.SubSource, req.ClassifyId, req.TerminalCode, req.SysUserId, req.Frequency, req.Keyword, 0, 100000)
  432. if err != nil && err.Error() != utils.ErrNoRow() {
  433. br.Msg = "获取失败"
  434. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  435. return
  436. }
  437. // 不配置的指标id
  438. notIdMap := make(map[int]int, 0)
  439. for _, v := range req.EdbSelectIdList {
  440. notIdMap[v] = v
  441. }
  442. for _, v := range edbList {
  443. _, ok := notIdMap[v.EdbInfoId]
  444. // 在不配置的指标id列表内的话,那就过滤
  445. if ok {
  446. continue
  447. }
  448. // 加入到待配置的指标列表id
  449. edbIdList = append(edbIdList, v.EdbInfoId)
  450. }
  451. } else {
  452. edbIdList = req.EdbSelectIdList
  453. }
  454. if len(edbIdList) <= 0 {
  455. br.Msg = "指标不能为空"
  456. br.IsSendEmail = false
  457. return
  458. }
  459. // 待添加的配置关系数据
  460. addMappingList := make([]*edb_refresh.EdbRefreshMapping, 0)
  461. // 待添加的日期配置项
  462. addConfigList := make([]*edb_refresh.EdbRefreshConfig, 0)
  463. for _, v := range req.List {
  464. item, err := edb_refresh.GetEdbRefreshConfigListByCondition(v.RefreshFrequency, v.RefreshTime, v.RefreshFrequencyDay, v.RefreshAllData, v.RefreshDataNum)
  465. if err != nil {
  466. if err.Error() != utils.ErrNoRow() {
  467. br.Msg = "保存失败"
  468. br.ErrMsg = "保存失败,Err:" + err.Error()
  469. return
  470. }
  471. addConfigList = append(addConfigList, &edb_refresh.EdbRefreshConfig{
  472. RefreshFrequency: v.RefreshFrequency,
  473. RefreshFrequencyDay: v.RefreshFrequencyDay,
  474. RefreshTime: v.RefreshTime,
  475. RefreshAllData: v.RefreshAllData,
  476. RefreshDataNum: v.RefreshDataNum,
  477. ModifyTime: time.Now(),
  478. CreateTime: time.Now(),
  479. })
  480. continue
  481. }
  482. for _, edbId := range edbIdList {
  483. addMappingList = append(addMappingList, &edb_refresh.EdbRefreshMapping{
  484. EdbRefreshMappingId: 0,
  485. Source: req.Source,
  486. SubSource: req.SubSource,
  487. EdbInfoId: edbId,
  488. EdbRefreshConfigId: item.EdbRefreshConfigId,
  489. SysUserId: c.SysUser.AdminId,
  490. SysUserRealName: c.SysUser.RealName,
  491. ModifyTime: time.Now(),
  492. CreateTime: time.Now(),
  493. })
  494. }
  495. }
  496. // 保存
  497. err = edb_refresh.SaveEdbRefreshConfig(req.Source, req.SubSource, c.SysUser.AdminId, c.SysUser.RealName, addConfigList, addMappingList, edbIdList)
  498. if err != nil {
  499. br.Msg = `保存失败`
  500. br.ErrMsg = "保存失败,Err:" + err.Error()
  501. return
  502. }
  503. br.Ret = 200
  504. br.Success = true
  505. br.Msg = "保存成功"
  506. }
  507. // getList
  508. // @Description: 获取指标列表
  509. // @author: Roc
  510. // @datetime 2024-01-08 15:14:16
  511. // @param source int
  512. // @param subSource int
  513. // @param classifyId int
  514. // @param terminalCode string
  515. // @param sysUserId string
  516. // @param frequency string
  517. // @param keyword string
  518. // @param startSize int
  519. // @param pageSize int
  520. // @return total int
  521. // @return list []*data_manage.BaseEdbInfo
  522. // @return err error
  523. func getList(source, subSource, classifyId int, terminalCode, sysUserId, frequency, keyword string, startSize, pageSize int) (total int, list []*data_manage.BaseEdbInfo, err error) {
  524. var pars []interface{}
  525. var condition string
  526. list = make([]*data_manage.BaseEdbInfo, 0)
  527. switch source {
  528. case utils.DATA_SOURCE_MYSTEEL_CHEMICAL: // 钢联
  529. if classifyId > 0 {
  530. condition += " AND base_from_mysteel_chemical_classify_id = ? "
  531. pars = append(pars, classifyId)
  532. }
  533. if terminalCode != `` {
  534. condition += " AND terminal_code = ? "
  535. pars = append(pars, terminalCode)
  536. }
  537. if sysUserId != `` {
  538. sysUserIdSlice := strings.Split(sysUserId, ",")
  539. condition += ` AND sys_user_id IN (` + utils.GetOrmInReplace(len(sysUserIdSlice)) + `)`
  540. pars = append(pars, sysUserIdSlice)
  541. }
  542. if frequency != `` {
  543. condition += " AND frequency = ? "
  544. pars = append(pars, frequency)
  545. }
  546. if keyword != `` {
  547. keywordSlice := strings.Split(keyword, ",")
  548. if len(keywordSlice) > 0 {
  549. tmpConditionSlice := make([]string, 0)
  550. tmpConditionSlice = append(tmpConditionSlice, ` index_name like ? or index_code like ? `)
  551. pars = utils.GetLikeKeywordPars(pars, keyword, 2)
  552. for _, v := range keywordSlice {
  553. tmpConditionSlice = append(tmpConditionSlice, ` index_name like ? or index_code like ? `)
  554. pars = utils.GetLikeKeywordPars(pars, v, 2)
  555. }
  556. condition += ` AND (` + strings.Join(tmpConditionSlice, " or ") + `)`
  557. } else {
  558. condition += ` index_name like ? or index_code like ? `
  559. pars = utils.GetLikeKeywordPars(pars, keyword, 2)
  560. }
  561. }
  562. total, list, err = data_manage.GetMysteelChemicalBaseInfo(condition, pars, startSize, pageSize)
  563. case utils.DATA_SOURCE_YS: // 有色
  564. if classifyId > 0 {
  565. condition += " AND classify_id = ? "
  566. pars = append(pars, classifyId)
  567. }
  568. if terminalCode != `` {
  569. condition += " AND terminal_code = ? "
  570. pars = append(pars, terminalCode)
  571. }
  572. if frequency != `` {
  573. condition += " AND frequency = ? "
  574. pars = append(pars, frequency)
  575. }
  576. if keyword != `` {
  577. keywordSlice := strings.Split(keyword, ",")
  578. if len(keywordSlice) > 0 {
  579. tmpConditionSlice := make([]string, 0)
  580. tmpConditionSlice = append(tmpConditionSlice, ` index_name like ? or index_code like ? `)
  581. pars = utils.GetLikeKeywordPars(pars, keyword, 2)
  582. for _, v := range keywordSlice {
  583. tmpConditionSlice = append(tmpConditionSlice, ` index_name like ? or index_code like ? `)
  584. pars = utils.GetLikeKeywordPars(pars, v, 2)
  585. }
  586. condition += ` AND (` + strings.Join(tmpConditionSlice, " or ") + `)`
  587. } else {
  588. condition += ` index_name like ? or index_code like ? `
  589. pars = utils.GetLikeKeywordPars(pars, keyword, 2)
  590. }
  591. }
  592. total, list, err = data_manage.GetSmmBaseInfo(condition, pars, startSize, pageSize)
  593. default:
  594. condition += ` AND source = ? AND sub_source = ? `
  595. pars = append(pars, source, subSource)
  596. if classifyId > 0 {
  597. condition += " AND classify_id = ? "
  598. pars = append(pars, classifyId)
  599. }
  600. if terminalCode != `` {
  601. condition += " AND terminal_code = ? "
  602. pars = append(pars, terminalCode)
  603. }
  604. if sysUserId != `` {
  605. sysUserIdSlice := strings.Split(sysUserId, ",")
  606. condition += ` AND sys_user_id IN (` + utils.GetOrmInReplace(len(sysUserIdSlice)) + `)`
  607. pars = append(pars, sysUserIdSlice)
  608. }
  609. if frequency != `` {
  610. condition += " AND frequency = ? "
  611. pars = append(pars, frequency)
  612. }
  613. if keyword != `` {
  614. keywordSlice := strings.Split(keyword, ",")
  615. if len(keywordSlice) > 0 {
  616. tmpConditionSlice := make([]string, 0)
  617. tmpConditionSlice = append(tmpConditionSlice, ` edb_name like ? or edb_code like ? `)
  618. pars = utils.GetLikeKeywordPars(pars, keyword, 2)
  619. for _, v := range keywordSlice {
  620. tmpConditionSlice = append(tmpConditionSlice, ` edb_name like ? or edb_code like ? `)
  621. pars = utils.GetLikeKeywordPars(pars, v, 2)
  622. }
  623. condition += ` AND (` + strings.Join(tmpConditionSlice, " or ") + `)`
  624. } else {
  625. condition += ` edb_name like ? or edb_code like ? `
  626. pars = utils.GetLikeKeywordPars(pars, keyword, 2)
  627. }
  628. }
  629. total, list, err = data_manage.GetEdbBaseInfo(condition, pars, startSize, pageSize)
  630. }
  631. return
  632. }