apply_record.go 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package cygx
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "github.com/rdlucklib/rdluck_tools/paging"
  5. )
  6. type CygxApplyRecord struct {
  7. ApplyRecordId int `orm:"column(apply_record_id);pk" description:"申请试用id"`
  8. BusinessCardUrl string `description:"名片地址"`
  9. RealName string `description:"姓名"`
  10. CompanyName string `description:"公司名称"`
  11. Mobile string `description:"手机号"`
  12. CreateTime string `description:"创建时间"`
  13. ApplyMethod int `description:"1:已付费客户申请试用,2:非客户申请试用"`
  14. Status int `description:"0:未处理,1:已处理"`
  15. DealTime string `description:"处理时间"`
  16. Email string `description:"邮箱"`
  17. SellerName string `description:"销售"`
  18. CompanyIdPay int `description:"1:为潜在客户,大于1现有客户"`
  19. InviteeMobile string `description:"邀请人手机号"`
  20. InviteeCompany string `description:"邀请人公司名称"`
  21. InviteeCompanyId string `description:"邀请人公司ID"`
  22. ApplySource string `description:"申请来源"`
  23. InviteeEmail string `description:"邀请人邮箱"`
  24. IsInviteeComanyExistence bool `description:"邀请公司是否还存在"`
  25. InviteeCompanyNum int `description:"邀请公司是否还存在(辅助字段)"`
  26. CompanyIdType int `description:"用户状态,1:潜在客户 、2:现有客户 、3:FICC客户 、4:现有客户(正式,无对应权限) 、5:现有客户(试用,无对应权限) 、6:现有客户(试用暂停) 、7:现有客户(冻结) 、8:现有客户(流失) "`
  27. CompanyIdTypeName string `description:"用户状态,1:潜在客户 、2:现有客户 、3:FICC客户 、4:现有客户(正式,无对应权限) 、5:现有客户(试用,无对应权限) 、6:现有客户(试用暂停) 、7:现有客户(冻结) 、8:现有客户(流失) "`
  28. RegisterPlatform int `description:"来源 1小程序,2:网页"`
  29. InviteCompanySource int `description:"三方来源 ,1:弘则本身,2:络町"`
  30. ApplicationSource string `description:"申请来源"`
  31. SourceId int `description:"资源ID"`
  32. Source string `description:"资源类型 报告 :article 、图表 :newchart、微路演 :roadshow、活动 :activity、活动视频:activityvideo、活动音频:activityvoice、专项调研活动:activityspecial"`
  33. Title string `description:"标题"`
  34. }
  35. type CygxApplyRecordResp struct {
  36. ApplyRecordId int `orm:"column(apply_record_id);pk" description:"申请试用id"`
  37. BusinessCardUrl string `description:"名片地址"`
  38. RealName string `description:"姓名"`
  39. CompanyName string `description:"公司名称"`
  40. Mobile string `description:"手机号"`
  41. CreateTime string `description:"创建时间"`
  42. ApplyMethod int `description:"1:已付费客户申请试用,2:非客户申请试用"`
  43. Status int `description:"0:未处理,1:已处理"`
  44. DealTime string `description:"处理时间"`
  45. Email string `description:"邮箱"`
  46. SellerName string `description:"销售"`
  47. CompanyIdPay int `description:"1:为潜在客户,大于1现有客户"`
  48. InviteeMobile string `description:"邀请人手机号"`
  49. InviteeCompany string `description:"邀请人公司名称"`
  50. InviteeCompanyId string `description:"邀请人公司ID"`
  51. ApplySource string `description:"申请来源"`
  52. InviteeEmail string `description:"邀请人邮箱"`
  53. IsInviteeComanyExistence bool `description:"邀请公司是否还存在"`
  54. InviteeCompanyNum int `description:"邀请公司是否还存在(辅助字段)"`
  55. CompanyIdType int `description:"用户状态,1:潜在客户 、2:现有客户 、3:FICC客户 、4:现有客户(正式,无对应权限) 、5:现有客户(试用,无对应权限) 、6:现有客户(试用暂停) 、7:现有客户(冻结) 、8:现有客户(流失) "`
  56. CompanyIdTypeName string `description:"用户状态,1:潜在客户 、2:现有客户 、3:FICC客户 、4:现有客户(正式,无对应权限) 、5:现有客户(试用,无对应权限) 、6:现有客户(试用暂停) 、7:现有客户(冻结) 、8:现有客户(流失) "`
  57. RegisterPlatform int `description:"来源 1小程序,2:网页"`
  58. InviteCompanySource int `description:"三方来源 ,1:弘则本身,2:络町"`
  59. ApplicationSource string `description:"申请来源"`
  60. SourceId int `description:"资源ID"`
  61. Source string `description:"资源类型 报告 :article 、图表 :newchart、微路演 :roadshow、活动 :activity、活动视频:activityvideo、活动音频:activityvoice、专项调研活动:activityspecial"`
  62. Title string `description:"标题"`
  63. HttpUrl string `description:"跳转地址"`
  64. }
  65. func GetCygxApplyRecord(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxApplyRecordResp, err error) {
  66. o := orm.NewOrm()
  67. sql := ` SELECT DISTINCT a.*,i.invitee_mobile,i.invitee_company,i.invitee_email,invitee_company_id, GROUP_CONCAT(b.seller_name ORDER BY b.product_id ASC SEPARATOR '/') AS seller_name,c.email,(SELECT COUNT(1) FROM company WHERE company_id =invitee_company_id ) as invitee_company_num
  68. FROM cygx_apply_record AS a
  69. LEFT JOIN company_product AS b ON a.company_id_pay=b.company_id
  70. LEFT JOIN wx_user AS c ON a.user_id=c.user_id
  71. LEFT JOIN user_invitee AS i ON a.user_id = i.inviteed_user_id WHERE 1=1 `
  72. if condition != "" {
  73. sql += condition
  74. }
  75. sql += ` GROUP BY a.apply_record_id ORDER BY a.create_time DESC LIMIT ?,? `
  76. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  77. return
  78. }
  79. func GetCygxApplyRecordCount(condition string, pars []interface{}) (count int, err error) {
  80. o := orm.NewOrm()
  81. //sql := `SELECT COUNT(1) AS count FROM cygx_apply_record AS a
  82. // LEFT JOIN company_product AS b ON a.company_id_pay=b.company_id
  83. // LEFT JOIN wx_user AS c ON a.user_id=c.user_id WHERE 1=1 `
  84. //
  85. //if condition != "" {
  86. // sql += condition
  87. //}
  88. sql := `SELECT COUNT(1) AS count FROM ( SELECT DISTINCT a.*,
  89. GROUP_CONCAT(b.seller_name ORDER BY b.product_id ASC SEPARATOR '/') AS seller_name,c.email
  90. FROM cygx_apply_record AS a
  91. LEFT JOIN company_product AS b ON a.company_id_pay=b.company_id
  92. LEFT JOIN wx_user AS c ON a.user_id=c.user_id WHERE 1=1 `
  93. if condition != "" {
  94. sql += condition
  95. }
  96. sql += ` GROUP BY a.apply_record_id ) b `
  97. err = o.Raw(sql, pars).QueryRow(&count)
  98. return
  99. }
  100. type CygxApplyRecordListResp struct {
  101. List []*CygxApplyRecordResp
  102. Paging *paging.PagingItem `description:"分页数据"`
  103. }
  104. type CygxDealReq struct {
  105. ApplyRecordId int `description:"申请试用id"`
  106. }
  107. func DealCygxApplyRecord(applyRecordId, sysUserId int) (err error) {
  108. sql := `UPDATE cygx_apply_record SET status=1,deal_time=NOW(),sys_user_id=? WHERE apply_record_id=? `
  109. o := orm.NewOrm()
  110. _, err = o.Raw(sql, sysUserId, applyRecordId).Exec()
  111. return
  112. }