overseas_custom_seller.go 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. package overseas_custom
  2. import (
  3. "context"
  4. "github.com/beego/beego/v2/client/orm"
  5. "hongze/hz_crm_api/models/company"
  6. "time"
  7. )
  8. // 海外客户销售
  9. type OverseasCustomerSale struct {
  10. OverseasCustomSellerId int `orm:"column(overseas_custom_seller_id);pk"`
  11. SellerId int `description:"销售id"`
  12. CreateTime time.Time `description:"创建时间"`
  13. }
  14. // 海外客户销售
  15. type OverseasCustomerSaleView struct {
  16. SellerId int `description:"销售id"`
  17. RealName string `description:"销售姓名"`
  18. }
  19. func (m *OverseasCustomerSale) Create() (err error) {
  20. o := orm.NewOrm()
  21. id, err := o.Insert(m)
  22. if err != nil {
  23. return
  24. }
  25. m.OverseasCustomSellerId = int(id)
  26. return
  27. }
  28. func (m *OverseasCustomerSale) Delete() (err error) {
  29. o := orm.NewOrm()
  30. sql := ` DELETE FROM overseas_custom_seller WHERE seller_id=? `
  31. _, err = o.Raw(sql, m.SellerId).Exec()
  32. return
  33. }
  34. func (m *OverseasCustomerSale) TableName() string {
  35. return "overseas_custom_seller"
  36. }
  37. // OverseasCustomerSaleSaveReq 保存销售
  38. type OverseasCustomerSaleSaveReq struct {
  39. AddSellerIdArr []int `description:"新增销售id,数组"`
  40. DelSellerIdArr []int `description:"删除销售id,数组"`
  41. }
  42. func (m *OverseasCustomerSale) GetOverseasCustomerSaleAll() (list []*OverseasCustomerSaleView, err error) {
  43. o := orm.NewOrm()
  44. sql := ` SELECT a.*,b.real_name FROM overseas_custom_seller AS a
  45. INNER JOIN admin AS b ON a.seller_id=b.admin_id `
  46. _, err = o.Raw(sql).QueryRows(&list)
  47. return
  48. }
  49. type AdminItem struct {
  50. AdminId int `description:"系统用户id"`
  51. AdminName string `description:"系统用户名称"`
  52. RealName string `description:"系统用户姓名"`
  53. Mobile string `description:"手机号"`
  54. }
  55. func (m *OverseasCustomerSale) HandelOverseasCustomerSale(sellerId, isOverseas int) (err error) {
  56. o := orm.NewOrm()
  57. sellerItem := new(AdminItem)
  58. sql := ` SELECT * FROM admin WHERE admin_id=? `
  59. err = o.Raw(sql, sellerId).QueryRow(&sellerItem)
  60. if err != nil {
  61. return err
  62. }
  63. if sellerItem.Mobile == "13065778668" {
  64. sql = ` UPDATE company_product SET is_overseas = ? WHERE seller_id=? AND company_id IN (SELECT company_id FROM company WHERE region_type='国内') `
  65. _, err = o.Raw(sql, isOverseas, sellerId).Exec()
  66. return err
  67. }
  68. return err
  69. }
  70. // EnglishCompany 英文客户
  71. type EnglishCompany struct {
  72. CompanyId int `orm:"column(company_id);pk" description:"英文客户ID"`
  73. CompanyName string `description:"客户名称"`
  74. CountryCode string `description:"国家Code"`
  75. Country string `description:"国家"`
  76. SellerId int `description:"销售ID"`
  77. SellerName string `description:"销售姓名"`
  78. ViewTotal int `description:"累计点击量/阅读量"`
  79. IsDeleted int `description:"删除状态:0-正常;1-已删除"`
  80. CreateTime time.Time `description:"创建时间"`
  81. ModifyTime time.Time `description:"更新时间"`
  82. Enabled int `description:"0-禁用; 1-启用; 2-部分禁用"`
  83. Status int `description:"1:正式,2:临时,3:终止"`
  84. Nation string `description:"所属国家"`
  85. IsHide int `description:"是否隐藏:0:不隐藏,1:隐藏"`
  86. OverseasStatus string `description:"海外客户状态:'正式','试用','关闭'"`
  87. OverseasLabel int `description:"海外客户试用子标签:1未分类、2 推进、3 跟踪、4 预备、"`
  88. }
  89. func (m *OverseasCustomerSale) HandelCompanyStatus(sellerId int) (err error) {
  90. o := orm.NewOrm()
  91. tx, err := o.BeginWithCtx(context.TODO())
  92. if err != nil {
  93. return err
  94. }
  95. enCompanyList := make([]*EnglishCompany, 0)
  96. sql := ` SELECT * FROM english_company WHERE seller_id=? `
  97. _, err = tx.Raw(sql, sellerId).QueryRows(&enCompanyList)
  98. if err != nil {
  99. return err
  100. }
  101. if len(enCompanyList) > 0 {
  102. for _, v := range enCompanyList {
  103. var overseasStatus string
  104. var resetBtn int
  105. if v.Enabled == 0 {
  106. overseasStatus = "关闭"
  107. resetBtn = 0
  108. } else {
  109. overseasStatus = "试用"
  110. resetBtn = 1
  111. }
  112. sql = ` UPDATE english_company SET overseas_status=?,reset_btn=? WHERE company_id=? `
  113. _, err = tx.Raw(sql, overseasStatus, resetBtn, v.CompanyId).Exec()
  114. if err != nil {
  115. return err
  116. }
  117. }
  118. }
  119. companyList := make([]*company.CompanyProduct, 0)
  120. sql = ` SELECT * FROM company_product WHERE seller_id=? `
  121. _, err = tx.Raw(sql, sellerId).QueryRows(&companyList)
  122. if err != nil {
  123. return err
  124. }
  125. if len(companyList) > 0 {
  126. for _, v := range companyList {
  127. var overseasStatus string
  128. var resetBtn int
  129. if v.Status == "正式" || v.Status == "永续" {
  130. overseasStatus = "正式"
  131. resetBtn = 0
  132. } else if v.Status == "试用" {
  133. overseasStatus = "试用"
  134. resetBtn = 1
  135. } else {
  136. overseasStatus = "关闭"
  137. resetBtn = 0
  138. }
  139. sql = ` UPDATE english_company SET overseas_status=?,reset_btn=? WHERE company_id=? `
  140. _, err = tx.Raw(sql, overseasStatus, resetBtn, v.CompanyId).Exec()
  141. if err != nil {
  142. return err
  143. }
  144. }
  145. }
  146. return err
  147. }