custom.go 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647
  1. package overseas_custom
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "github.com/rdlucklib/rdluck_tools/paging"
  6. "hongze/hz_crm_api/models"
  7. "hongze/hz_crm_api/models/overseas_custom"
  8. "hongze/hz_crm_api/utils"
  9. "time"
  10. )
  11. // @Title 获取海外客户列表数据
  12. // @Description 获取海外客户列表数据
  13. // @Param PageSize query int true "每页数据条数"
  14. // @Param CurrentIndex query int true "当前页页码,从1开始"
  15. // @Param Keywords query string false "关键词:客户名称/社会信用码/联系人手机号/邮箱"
  16. // @Param CompanyStatus query string false "状态:全部,正式,试用,关闭"
  17. // @Param SellerId query int false "销售ID"
  18. // @Param CustomType query int false "1:海外客户,2:隐藏客户"
  19. // @Param SortField query string false "排序字段:ViewTotal,RoadShowTotal,CreateTime"
  20. // @Param SortDesc query int false "1:降序,默认,2:升序"
  21. // @Param OverseasLabel query int false "海外客户试用子标签:1未分类、2 推进、3 跟踪、4 预备、"
  22. // @Success 200 {object} models.EnglishCompanyPageListResp
  23. // @router /custom/list [get]
  24. func (this *OverseasCustomController) CustomList() {
  25. br := new(models.BaseResponse).Init()
  26. br.IsSendEmail = false
  27. defer func() {
  28. this.Data["json"] = br
  29. this.ServeJSON()
  30. }()
  31. sysUser := this.SysUser
  32. if sysUser == nil {
  33. br.Msg = "请登录"
  34. br.ErrMsg = "请登录,SysUser Is Empty"
  35. br.Ret = 408
  36. return
  37. }
  38. pageSize, _ := this.GetInt("PageSize")
  39. currentIndex, _ := this.GetInt("CurrentIndex")
  40. keywords := this.GetString("Keywords", "")
  41. sellerId, _ := this.GetInt("SellerId", 0)
  42. companyStatus := this.GetString("CompanyStatus")
  43. sortField := this.GetString("SortField")
  44. sortDesc, _ := this.GetInt("SortDesc")
  45. overseasLabel, _ := this.GetInt("OverseasLabel", 0)
  46. customType, _ := this.GetInt("CustomType", 0)
  47. var startSize int
  48. if pageSize <= 0 {
  49. pageSize = utils.PageSize20
  50. }
  51. if currentIndex <= 0 {
  52. currentIndex = 1
  53. }
  54. startSize = paging.StartIndex(currentIndex, pageSize)
  55. page := paging.GetPaging(currentIndex, pageSize, 0)
  56. resp := new(overseas_custom.CustomListResp)
  57. obj := new(overseas_custom.Custom)
  58. var condition string
  59. var pars []interface{}
  60. if keywords != "" {
  61. k := "%" + keywords + "%"
  62. enCompanyIds, e := overseas_custom.GetEnCompanyIdsByKeyword(k)
  63. if e != nil {
  64. br.Msg = "获取失败"
  65. br.ErrMsg = "关键词获取英文客户IDs失败, Err: " + e.Error()
  66. return
  67. }
  68. //获取中文客户
  69. companyIds, err := obj.GetCompanyIdsByKeyword(k)
  70. if err != nil {
  71. br.Msg = "获取失败"
  72. br.ErrMsg = "关键词获取客户IDs失败, Err: " + err.Error()
  73. return
  74. }
  75. companyIds = append(companyIds, enCompanyIds...)
  76. if len(companyIds) > 0 {
  77. condition += fmt.Sprintf(` AND m.company_id IN (%s) `, utils.GetOrmInReplace(len(companyIds)))
  78. pars = append(pars, companyIds)
  79. }
  80. if len(companyIds) <= 0 {
  81. list := make([]*overseas_custom.Custom, 0)
  82. resp.Paging = page
  83. resp.List = list
  84. br.Ret = 200
  85. br.Success = true
  86. br.Msg = "获取成功"
  87. br.Data = resp
  88. return
  89. }
  90. }
  91. if sellerId > 0 {
  92. condition += ` AND m.seller_id=? `
  93. pars = append(pars, sellerId)
  94. }
  95. if overseasLabel > 0 {
  96. condition += ` AND m.overseas_label=? `
  97. pars = append(pars, overseasLabel)
  98. }
  99. if customType == 2 {
  100. condition += ` AND m.is_hide=? `
  101. pars = append(pars, 1)
  102. } else {
  103. condition += ` AND m.is_hide=? `
  104. pars = append(pars, 0)
  105. }
  106. if companyStatus == "试用" {
  107. condition += ` AND m.overseas_status='试用'`
  108. } else if companyStatus == "正式" {
  109. condition += ` AND m.overseas_status='正式' `
  110. } else if companyStatus == "关闭" {
  111. condition += ` AND m.overseas_status='关闭' `
  112. }
  113. total, err := obj.GetCustomListCount(condition, pars)
  114. if err != nil {
  115. br.Msg = "获取失败"
  116. br.ErrMsg = "获取数据总数失败, Err: " + err.Error()
  117. return
  118. }
  119. list, err := obj.GetCustomList(condition, pars, sortField, startSize, pageSize, sortDesc)
  120. if err != nil {
  121. br.Msg = "获取失败"
  122. br.ErrMsg = "获取数据失败, Err: " + err.Error()
  123. return
  124. }
  125. for _, v := range list {
  126. //if v.Source == 1 && v.OverseasStatus != "" {
  127. // v.CompanyStatus = v.OverseasStatus
  128. //}
  129. if v.Source == 1 {
  130. v.CompanyStatus = v.Status
  131. } else {
  132. if v.Status == "正式" || v.Status == "永续" {
  133. v.CompanyStatus = "正式"
  134. } else if v.Status == "试用" {
  135. v.CompanyStatus = "试用"
  136. } else {
  137. v.CompanyStatus = "关闭"
  138. }
  139. }
  140. }
  141. page = paging.GetPaging(currentIndex, pageSize, total)
  142. resp.Paging = page
  143. resp.List = list
  144. br.Ret = 200
  145. br.Success = true
  146. br.Msg = "获取成功"
  147. br.Data = resp
  148. }
  149. // @Title 客户隐藏
  150. // @Description 客户隐藏
  151. // @Param request body overseas_custom.CustomHideReq true "type json string"
  152. // @Success 200 string "操作成功"
  153. // @router /custom/hide [post]
  154. func (this *OverseasCustomController) CustomHide() {
  155. br := new(models.BaseResponse).Init()
  156. br.IsSendEmail = false
  157. defer func() {
  158. this.Data["json"] = br
  159. this.ServeJSON()
  160. }()
  161. sysUser := this.SysUser
  162. if sysUser == nil {
  163. br.Msg = "请登录"
  164. br.ErrMsg = "请登录,SysUser Is Empty"
  165. br.Ret = 408
  166. return
  167. }
  168. var req overseas_custom.CustomHideReq
  169. if err := json.Unmarshal(this.Ctx.Input.RequestBody, &req); err != nil {
  170. br.Msg = "参数解析异常!"
  171. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  172. return
  173. }
  174. if req.CompanyId <= 0 {
  175. br.Msg = "参数错误!"
  176. return
  177. }
  178. //if req.CompanyId > utils.EnCompanyIdStep {
  179. // req.CompanyId = req.CompanyId - utils.EnCompanyIdStep
  180. //}
  181. obj := new(overseas_custom.Custom)
  182. item, err := obj.GetCustomByCompanyId(req.CompanyId)
  183. if err != nil {
  184. if err.Error() == utils.ErrNoRow() {
  185. br.Msg = "隐藏失败,客户信息不存在!"
  186. br.ErrMsg = "隐藏失败,Err:" + err.Error()
  187. return
  188. }
  189. br.Msg = "隐藏失败!"
  190. br.ErrMsg = "隐藏失败,Err:" + err.Error()
  191. return
  192. }
  193. //是否隐藏:0:不隐藏,1:隐藏
  194. var isHide int
  195. if item.IsHide == 1 {
  196. isHide = 0
  197. } else {
  198. isHide = 1
  199. }
  200. if req.CompanyId > 1000000 {
  201. enCompanyObj := new(models.EnglishCompany)
  202. // 更新客户
  203. nowTime := time.Now().Local()
  204. enCompanyObj.CompanyId = req.CompanyId - utils.EnCompanyIdStep
  205. enCompanyObj.IsHide = isHide
  206. enCompanyObj.ModifyTime = nowTime
  207. updateCols := []string{"IsHide", "ModifyTime"}
  208. if err = enCompanyObj.Update(updateCols); err != nil {
  209. br.Msg = "隐藏失败"
  210. br.ErrMsg = "更新英文客户隐藏状态失败, Err:" + err.Error()
  211. return
  212. }
  213. } else {
  214. obj := new(overseas_custom.Custom)
  215. updateParams := make(map[string]interface{})
  216. updateParams["is_hide"] = isHide
  217. whereParam := make(map[string]interface{})
  218. whereParam["company_id"] = req.CompanyId
  219. err := obj.UpdateCompany(updateParams, whereParam)
  220. if err != nil {
  221. br.Msg = "设置失败"
  222. br.ErrMsg = "设置客户标签状态失败, Err:" + err.Error()
  223. return
  224. }
  225. }
  226. br.Ret = 200
  227. br.Success = true
  228. br.Msg = "隐藏成功"
  229. }
  230. // @Title 客户状态设置
  231. // @Description 客户状态设置
  232. // @Param request body overseas_custom.CustomHideReq true "type json string"
  233. // @Success 200 string "操作成功"
  234. // @router /custom/status_set [post]
  235. func (this *OverseasCustomController) CustomStatusSet() {
  236. br := new(models.BaseResponse).Init()
  237. br.IsSendEmail = false
  238. defer func() {
  239. this.Data["json"] = br
  240. this.ServeJSON()
  241. }()
  242. sysUser := this.SysUser
  243. if sysUser == nil {
  244. br.Msg = "请登录"
  245. br.ErrMsg = "请登录,SysUser Is Empty"
  246. br.Ret = 408
  247. return
  248. }
  249. var req overseas_custom.CustomHideReq
  250. if err := json.Unmarshal(this.Ctx.Input.RequestBody, &req); err != nil {
  251. br.Msg = "参数解析异常!"
  252. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  253. return
  254. }
  255. if req.CompanyId <= 0 {
  256. br.Msg = "参数错误!"
  257. return
  258. }
  259. obj := new(overseas_custom.Custom)
  260. item, err := obj.GetCustomByCompanyId(req.CompanyId)
  261. if err != nil {
  262. br.Msg = "设置失败!"
  263. br.ErrMsg = "设置失败,Err:" + err.Error()
  264. return
  265. }
  266. //是否隐藏:0:不隐藏,1:隐藏
  267. var overseasStatus string
  268. var resetBtn int
  269. if item.OverseasStatus == "正式" && item.ResetBtn == 2 { //重置,获取当前客户的状态
  270. //overseasStatus = item.CompanyStatus
  271. overseasStatus = ""
  272. resetBtn = 1
  273. } else if item.OverseasStatus == "试用" && (item.ResetBtn == 1 || item.ResetBtn == 0) { //转正式,获取当前客户的状态
  274. overseasStatus = "正式"
  275. resetBtn = 2
  276. }
  277. if req.CompanyId > 1000000 {
  278. enCompanyObj := new(models.EnglishCompany)
  279. // 更新客户
  280. nowTime := time.Now().Local()
  281. enCompanyObj.CompanyId = req.CompanyId - utils.EnCompanyIdStep
  282. enCompanyObj.OverseasStatus = overseasStatus
  283. enCompanyObj.ModifyTime = nowTime
  284. enCompanyObj.ResetBtn = resetBtn //转正式和重置按钮:同步过来默认为0:显示转正式为1:显示重置为2
  285. updateCols := []string{"OverseasStatus", "ResetBtn", "ModifyTime"}
  286. if err = enCompanyObj.Update(updateCols); err != nil {
  287. br.Msg = "设置失败"
  288. br.ErrMsg = "更新英文客户转正式状态失败, Err:" + err.Error()
  289. return
  290. }
  291. } else {
  292. obj := new(overseas_custom.Custom)
  293. updateParams := make(map[string]interface{})
  294. updateParams["overseas_status"] = overseasStatus
  295. updateParams["reset_btn"] = resetBtn
  296. updateParams["modify_time"] = time.Now()
  297. whereParam := make(map[string]interface{})
  298. whereParam["company_id"] = req.CompanyId
  299. err := obj.UpdateCompany(updateParams, whereParam)
  300. if err != nil {
  301. br.Msg = "设置失败"
  302. br.ErrMsg = "设置客户标签状态失败, Err:" + err.Error()
  303. return
  304. }
  305. }
  306. br.Ret = 200
  307. br.Success = true
  308. br.Msg = "操作成功"
  309. }
  310. // @Title 客户子标签设置
  311. // @Description 客户子标签设置
  312. // @Param request body overseas_custom.CustomOverseasLabelSetReq true "type json string"
  313. // @Success 200 string "操作成功"
  314. // @router /custom/overseas_label_set [post]
  315. func (this *OverseasCustomController) CustomOverseasLabelSet() {
  316. br := new(models.BaseResponse).Init()
  317. br.IsSendEmail = false
  318. defer func() {
  319. this.Data["json"] = br
  320. this.ServeJSON()
  321. }()
  322. //海外客户试用子标签:1未分类、2 推进、3 跟踪、4 预备、
  323. sysUser := this.SysUser
  324. if sysUser == nil {
  325. br.Msg = "请登录"
  326. br.ErrMsg = "请登录,SysUser Is Empty"
  327. br.Ret = 408
  328. return
  329. }
  330. var req overseas_custom.CustomOverseasLabelSetReq
  331. if err := json.Unmarshal(this.Ctx.Input.RequestBody, &req); err != nil {
  332. br.Msg = "参数解析异常!"
  333. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  334. return
  335. }
  336. if req.CompanyId <= 0 {
  337. br.Msg = "参数错误!"
  338. return
  339. }
  340. nowTime := time.Now().Local()
  341. if req.CompanyId > 1000000 {
  342. enCompanyObj := new(models.EnglishCompany)
  343. // 更新客户
  344. enCompanyObj.CompanyId = req.CompanyId - utils.EnCompanyIdStep
  345. enCompanyObj.OverseasLabel = req.OverseasLabel
  346. enCompanyObj.ModifyTime = nowTime
  347. updateCols := []string{"OverseasLabel", "ModifyTime"}
  348. if err := enCompanyObj.Update(updateCols); err != nil {
  349. br.Msg = "设置失败"
  350. br.ErrMsg = "设置英文客户标签状态失败, Err:" + err.Error()
  351. return
  352. }
  353. } else {
  354. obj := new(overseas_custom.Custom)
  355. updateParams := make(map[string]interface{})
  356. updateParams["overseas_label"] = req.OverseasLabel
  357. updateParams["modify_time"] = time.Now()
  358. whereParam := make(map[string]interface{})
  359. whereParam["company_id"] = req.CompanyId
  360. whereParam["product_id"] = 1
  361. err := obj.UpdateCompanyProduct(updateParams, whereParam)
  362. if err != nil {
  363. br.Msg = "设置失败"
  364. br.ErrMsg = "设置客户标签状态失败, Err:" + err.Error()
  365. return
  366. }
  367. }
  368. br.Ret = 200
  369. br.Success = true
  370. br.Msg = "设置成功"
  371. }
  372. // @Title 海外客户统计数据
  373. // @Description 海外客户统计数据
  374. // @Param Keywords query string false "关键词:客户名称/社会信用码/联系人手机号/邮箱"
  375. // @Param SellerId query int false "销售ID"
  376. // @Success 200 {object} models.EnglishCompanyPageListResp
  377. // @router /custom/statistics [get]
  378. func (this *OverseasCustomController) CustomStatistics() {
  379. br := new(models.BaseResponse).Init()
  380. br.IsSendEmail = false
  381. defer func() {
  382. this.Data["json"] = br
  383. this.ServeJSON()
  384. }()
  385. sysUser := this.SysUser
  386. if sysUser == nil {
  387. br.Msg = "请登录"
  388. br.ErrMsg = "请登录,SysUser Is Empty"
  389. br.Ret = 408
  390. return
  391. }
  392. keywords := this.GetString("Keywords", "")
  393. sellerId, _ := this.GetInt("SellerId", 0)
  394. customType, _ := this.GetInt("CustomType", 0)
  395. obj := new(overseas_custom.Custom)
  396. var condition string
  397. var pars []interface{}
  398. if keywords != "" {
  399. k := "%" + keywords + "%"
  400. enCompanyIds, e := overseas_custom.GetEnCompanyIdsByKeyword(k)
  401. if e != nil {
  402. br.Msg = "获取失败"
  403. br.ErrMsg = "关键词获取英文客户IDs失败, Err: " + e.Error()
  404. return
  405. }
  406. //获取中文客户
  407. companyIds, err := obj.GetCompanyIdsByKeyword(k)
  408. if err != nil {
  409. br.Msg = "获取失败"
  410. br.ErrMsg = "关键词获取客户IDs失败, Err: " + err.Error()
  411. return
  412. }
  413. companyIds = append(companyIds, enCompanyIds...)
  414. if len(companyIds) > 0 {
  415. condition += fmt.Sprintf(` AND m.company_id IN (%s) `, utils.GetOrmInReplace(len(companyIds)))
  416. pars = append(pars, companyIds)
  417. } else {
  418. statisticsDataStatusList := make([]*overseas_custom.CustomTotal, 0)
  419. var statusArr = [3]string{"试用", "正式", "关闭"}
  420. for _, v := range statusArr {
  421. item := new(overseas_custom.CustomTotal)
  422. item.CompanyStatus = v
  423. statisticsDataStatusList = append(statisticsDataStatusList, item)
  424. }
  425. br.Ret = 200
  426. br.Success = true
  427. br.Msg = "获取成功"
  428. br.Data = statisticsDataStatusList
  429. return
  430. }
  431. }
  432. if sellerId > 0 {
  433. condition += ` AND m.seller_id=? `
  434. pars = append(pars, sellerId)
  435. }
  436. if customType == 2 {
  437. condition += ` AND m.is_hide=? `
  438. pars = append(pars, 1)
  439. } else {
  440. condition += ` AND m.is_hide=? `
  441. pars = append(pars, 0)
  442. }
  443. list, err := obj.GetCustomTotal(condition, pars)
  444. if err != nil {
  445. br.Msg = "获取失败"
  446. br.ErrMsg = "获取各状态总数失败, Err: " + err.Error()
  447. return
  448. }
  449. //total, err := obj.GetCustomOverseasStatusTotal(condition, pars)
  450. //if err != nil && err.Error() != utils.ErrNoRow() {
  451. // br.Msg = "获取失败"
  452. // br.ErrMsg = "获取海外客户总计状态失败, Err: " + err.Error()
  453. // return
  454. //}
  455. statisticsDataStatusList := make([]*overseas_custom.CustomTotal, 0)
  456. statisticsDataMap := make(map[string]int)
  457. for _, v := range list {
  458. statisticsDataMap[v.CompanyStatus] = v.Total
  459. }
  460. var statusArr = [3]string{"试用", "正式", "关闭"}
  461. for _, v := range statusArr {
  462. item := new(overseas_custom.CustomTotal)
  463. item.CompanyStatus = v
  464. if val, ok := statisticsDataMap[v]; ok {
  465. item.Total = val
  466. }
  467. statisticsDataStatusList = append(statisticsDataStatusList, item)
  468. }
  469. br.Ret = 200
  470. br.Success = true
  471. br.Msg = "获取成功"
  472. br.Data = statisticsDataStatusList
  473. }
  474. // @Title 海外客户标签统计数据
  475. // @Description 海外客户标签统计数据
  476. // @Param Keywords query string false "关键词:客户名称/社会信用码/联系人手机号/邮箱"
  477. // @Param SellerId query int false "销售ID"
  478. // @Success 200 {object} models.EnglishCompanyPageListResp
  479. // @router /custom/label/statistics [get]
  480. func (this *OverseasCustomController) CustomLabelStatistics() {
  481. br := new(models.BaseResponse).Init()
  482. br.IsSendEmail = false
  483. defer func() {
  484. this.Data["json"] = br
  485. this.ServeJSON()
  486. }()
  487. sysUser := this.SysUser
  488. if sysUser == nil {
  489. br.Msg = "请登录"
  490. br.ErrMsg = "请登录,SysUser Is Empty"
  491. br.Ret = 408
  492. return
  493. }
  494. keywords := this.GetString("Keywords", "")
  495. sellerId, _ := this.GetInt("SellerId", 0)
  496. customType, _ := this.GetInt("CustomType", 0)
  497. obj := new(overseas_custom.Custom)
  498. var condition string
  499. var pars []interface{}
  500. condition += " AND m.overseas_status='试用' "
  501. if keywords != "" {
  502. k := "%" + keywords + "%"
  503. enCompanyIds, e := overseas_custom.GetEnCompanyIdsByKeyword(k)
  504. if e != nil {
  505. br.Msg = "获取失败"
  506. br.ErrMsg = "关键词获取英文客户IDs失败, Err: " + e.Error()
  507. return
  508. }
  509. //获取中文客户
  510. companyIds, err := obj.GetCompanyIdsByKeyword(k)
  511. if err != nil {
  512. br.Msg = "获取失败"
  513. br.ErrMsg = "关键词获取客户IDs失败, Err: " + err.Error()
  514. return
  515. }
  516. companyIds = append(companyIds, enCompanyIds...)
  517. if len(companyIds) > 0 {
  518. condition += fmt.Sprintf(` AND m.company_id IN (%s) `, utils.GetOrmInReplace(len(companyIds)))
  519. pars = append(pars, companyIds)
  520. } else {
  521. var labelArr = [4]int{1, 2, 3, 4}
  522. labelList := make([]*overseas_custom.OverseasLabelTotal, 0)
  523. for _, v := range labelArr {
  524. item := new(overseas_custom.OverseasLabelTotal)
  525. item.OverseasLabel = v
  526. labelList = append(labelList, item)
  527. }
  528. br.Ret = 200
  529. br.Success = true
  530. br.Msg = "获取成功"
  531. br.Data = labelList
  532. return
  533. }
  534. }
  535. if sellerId > 0 {
  536. condition += ` AND m.seller_id=? `
  537. pars = append(pars, sellerId)
  538. }
  539. if customType == 2 {
  540. condition += ` AND m.is_hide=? `
  541. pars = append(pars, 1)
  542. } else {
  543. condition += ` AND m.is_hide=? `
  544. pars = append(pars, 0)
  545. }
  546. overseasLabelDataList, err := obj.GetCustomOverseasLabelTotal(condition, pars)
  547. if err != nil {
  548. br.Msg = "获取失败"
  549. br.ErrMsg = "获取子标签总数失败, Err: " + err.Error()
  550. return
  551. }
  552. labelDataMap := make(map[int]int)
  553. for _, v := range overseasLabelDataList {
  554. labelDataMap[v.OverseasLabel] = v.Total
  555. }
  556. var labelArr = [4]int{1, 2, 3, 4}
  557. labelList := make([]*overseas_custom.OverseasLabelTotal, 0)
  558. for _, v := range labelArr {
  559. item := new(overseas_custom.OverseasLabelTotal)
  560. item.OverseasLabel = v
  561. if val, ok := labelDataMap[v]; ok {
  562. item.Total = val
  563. }
  564. labelList = append(labelList, item)
  565. }
  566. br.Ret = 200
  567. br.Success = true
  568. br.Msg = "获取成功"
  569. br.Data = labelList
  570. }