company_seller.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package crm
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "github.com/go-playground/validator/v10"
  6. "hongze/fms_api/controller/resp"
  7. "hongze/fms_api/global"
  8. "hongze/fms_api/models/crm"
  9. "hongze/fms_api/models/fms"
  10. crmService "hongze/fms_api/services/crm"
  11. )
  12. // CompanySellerController CRM销售
  13. type CompanySellerController struct{}
  14. // List
  15. // @Title 销售列表
  16. // @Description 销售列表
  17. // @Success 200 {object} crm.SellerAdminWithGroupList
  18. // @router /crm/company_seller/list [get]
  19. func (rg *CompanySellerController) List(c *gin.Context) {
  20. // 此处调整为只取销售部门的人员, 而不是原先的根据角色取
  21. list, e := crmService.GetSellerDepartmentList()
  22. if e != nil {
  23. resp.FailData("获取失败", "获取销售列表失败, Err:"+e.Error(), c)
  24. return
  25. }
  26. resp.OkData("获取成功", list, c)
  27. }
  28. // GroupList
  29. // @Title 销售组别列表
  30. // @Description 销售组别列表
  31. // @Success 200 {object} crm.SysGroup
  32. // @router /crm/company_seller/group_list [get]
  33. func (rg *CompanySellerController) GroupList(c *gin.Context) {
  34. var req crm.SysGroupListReq
  35. if e := c.BindQuery(&req); e != nil {
  36. err, ok := e.(validator.ValidationErrors)
  37. if !ok {
  38. resp.FailData("参数解析失败", "Err:"+e.Error(), c)
  39. return
  40. }
  41. resp.FailData("参数解析失败", err.Translate(global.Trans), c)
  42. return
  43. }
  44. var departmentId int
  45. if req.SellerType == 1 {
  46. departmentId = crm.SellerDepartmentId
  47. }else if req.SellerType == 2 {
  48. departmentId = crm.RaiSellerDepartmentId
  49. }else if req.SellerType == 0 {
  50. resp.Fail("请选择销售类型", c)
  51. return
  52. }else {
  53. resp.Fail("请选择正确的销售类型", c)
  54. return
  55. }
  56. groupOB := new(crm.SysGroup)
  57. cond := `department_id = ? AND parent_id = 0`
  58. pars := make([]interface{}, 0)
  59. pars = append(pars, departmentId)
  60. list, e := groupOB.List(cond, pars)
  61. if e != nil {
  62. resp.FailData("获取失败", "获取销售组别列表失败, Err:"+e.Error(), c)
  63. return
  64. }
  65. resp.OkData("获取成功", list, c)
  66. }
  67. // List
  68. // @Title 销售列表
  69. // @Description 销售列表
  70. // @Success 200 {object} crm.SellerAdminWithGroupList
  71. // @router /crm/company_seller/all_list [get]
  72. func (rg *CompanySellerController) AllList(c *gin.Context) {
  73. ficcList, raiLits, e := crmService.GetSellerDepartmentListWithGroupAndTeamByDepartment()
  74. if e != nil {
  75. resp.FailData("获取销售失败", "Err:"+e.Error(), c)
  76. return
  77. }
  78. respItem := crm.AllSellerResp{
  79. FiccSeller: ficcList,
  80. RaiSeller: raiLits,
  81. }
  82. e = FIX()
  83. if e != nil {
  84. resp.FailData("获取销售失败", "Err:"+e.Error(), c)
  85. return
  86. }
  87. resp.OkData("获取成功", respItem, c)
  88. }
  89. // List
  90. // @Title 销售列表
  91. // @Description 销售列表
  92. // @Success 200 {object} crm.SellerAdminWithGroupList
  93. // @router /crm/company_seller/team_list [get]
  94. func (rg *CompanySellerController) TeamList(c *gin.Context) {
  95. // 此处调整为只取销售部门的人员, 而不是原先的根据角色取
  96. list, e := crmService.GetSellerList()
  97. if e != nil {
  98. resp.FailData("获取销售失败", "Err:"+e.Error(), c)
  99. return
  100. }
  101. resp.OkData("获取成功", list, c)
  102. }
  103. func FIX() (err error) {
  104. adminCond := ``
  105. adminPars := make([]interface{}, 0)
  106. adminOB := new(crm.Admin)
  107. adminList, e := adminOB.List(adminCond, adminPars)
  108. if e != nil {
  109. return
  110. }
  111. sellerMap := make(map[string]*crm.Admin)
  112. for i := range adminList {
  113. sellerMap[adminList[i].RealName] = adminList[i]
  114. }
  115. list,err := fms.GetIncomeHistoryList()
  116. if err != nil {
  117. return
  118. }
  119. for _, v := range list {
  120. fmt.Println("v:", v.IncomeId)
  121. if seller, ok := sellerMap[v.SellerName]; ok{
  122. v.SellerId = seller.AdminId
  123. if e = v.Update([]string{"SellerId"}); e != nil {
  124. fmt.Println("更新销售失败, Err: " + e.Error())
  125. return
  126. }
  127. }
  128. }
  129. return
  130. }