company_product_update_log.go 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "time"
  5. )
  6. // CompanyProductUpdateLog 客户产品变更日志表
  7. type CompanyProductUpdateLog struct {
  8. Id int `orm:"column(id);pk"`
  9. CompanyId int `description:"客户id"`
  10. ProductId int `description:"产品id"`
  11. Status string `description:"变更后的状态"`
  12. SellerId int `description:"销售id"`
  13. SellerName string `description:"销售名称"`
  14. IsFormal int `description:"是否已经转正式,0是没有转正式,1是已经转过正式"`
  15. Source string `description:"来源"`
  16. CreateTime time.Time `description:"创建时间"`
  17. }
  18. // AddCompanyProductUpdateLog 新增客户产品变更日志
  19. func AddCompanyProductUpdateLog(item *CompanyProductUpdateLog) (lastId int64, err error) {
  20. o := orm.NewOrm()
  21. lastId, err = o.Insert(item)
  22. return
  23. }
  24. // GetCompanyProductUpdateLogList 获取客户产品变更日志列表
  25. func GetCompanyProductUpdateLogList(createTime string) (total int64, list []*CompanyProductUpdateLog, err error) {
  26. o := orm.NewOrm()
  27. //那就三种情况了:新增试用、冻结转试用、流失转试用
  28. //新增:add
  29. //领取:receive
  30. //试用转正式:turn_positive
  31. //冻结转试用:thaw
  32. //试用延期:delay
  33. //原销售申请领取流失客户:apply_receive
  34. //正式客户申请续约:service_update
  35. //正式客户新增补充协议:add_agreement
  36. sql := `SELECT * FROM company_product_update_log where create_time >= ? AND source in ("add","receive","thaw","apply_receive") `
  37. total, err = o.Raw(sql, createTime).QueryRows(&list)
  38. return
  39. }
  40. // IncrementCompanyProductUpdateLog 增量客户产品变更日志表
  41. type IncrementCompanyProductUpdateLog struct {
  42. Id int `orm:"column(id);pk"`
  43. CompanyId int `description:"客户id"`
  44. ProductId int `description:"产品id"`
  45. Status string `description:"变更后的状态"`
  46. Source string `description:"来源"`
  47. CreateTime time.Time `description:"创建时间"`
  48. CompanyName string `description:"客户名称"`
  49. CreditCode string `description:"社会信用码"`
  50. SellerName string `description:"销售名称"`
  51. CurrStatus string `description:"当前产品状态"`
  52. }
  53. // GetIncrementCompanyProductUpdateLogList 获取客户产品变更日志列表
  54. func GetIncrementCompanyProductUpdateLogList(startCreateTime, endCreateTime string) (total int64, list []*IncrementCompanyProductUpdateLog, err error) {
  55. o := orm.NewOrm()
  56. //那就三种情况了:新增试用、冻结转试用、流失转试用
  57. //新增:add
  58. //领取:receive
  59. //试用转正式:turn_positive
  60. //冻结转试用:thaw
  61. //试用延期:delay
  62. //原销售申请领取流失客户:apply_receive
  63. //正式客户申请续约:service_update
  64. //正式客户新增补充协议:add_agreement
  65. sql := `SELECT a.*,b.company_name,b.credit_code,c.status curr_status,c.seller_name FROM company_product_update_log a
  66. join company b on a.company_id=b.company_id
  67. join company_product c on a.company_id=c.company_id and c.product_id=a.product_id
  68. where a.create_time >= ? AND a.create_time < ? AND a.source in ("add","receive","thaw","apply_receive") `
  69. total, err = o.Raw(sql, startCreateTime, endCreateTime).QueryRows(&list)
  70. return
  71. }