company.go 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package company
  2. import (
  3. "github.com/rdlucklib/rdluck_tools/orm"
  4. "time"
  5. )
  6. type Company struct {
  7. CompanyId int `orm:"column(company_id);pk"`
  8. CompanyName string `description:"客户名称"`
  9. CompanyType int `orm:"column(type)"`
  10. CreditCode string `description:"社会统一信用码"`
  11. CompanyCode string `description:"客户编码"`
  12. Sort int `description:"优先级"`
  13. IsFeeCustomer int `description:"是否付费用户"`
  14. Country string `description:"国家编码"`
  15. Province string `description:"省"`
  16. City string `description:"市"`
  17. Address string `description:"详细地址"`
  18. Enabled int `description:"用户状态"`
  19. CreatedTime time.Time `description:"创建时间"`
  20. LastUpdatedTime time.Time `description:"最后一次阅读时间"`
  21. Seller string `description:"销售员"`
  22. SellsId int `description:"销售员id"`
  23. CompanyBelong string `description:"客户所属,ficc:ficc客户,public_offering:公募客户,partner:合作伙伴"`
  24. StartDate string `description:"合同开始日期"`
  25. EndDate string `description:"合同结束日期"`
  26. LastType int `description:"原客户标签"`
  27. IsVip int `description:"0:普通用户,1:大客户"`
  28. FirstStartDate string `description:"首次设置为试用客户开始时间"`
  29. FirstEndDate string `description:"首次设置为试用客户结束时间"`
  30. DateType int `description:"设置流失类型,1:1个月,2:2个月,3:3个月"`
  31. Remark string `description:"备注信息"`
  32. RegionType string `description:"地区类型,国内,国外"`
  33. }
  34. type CompanyList struct {
  35. CompanyId int `description:"客户id" json:"company_id"`
  36. CompanyName string `description:"客户名称" json:"company_name"`
  37. CreditCode string `description:"社会统一信用码" json:"credit_code"`
  38. Status string `description:"客户状态" json:"status"`
  39. }
  40. // GetList 获取客户列表
  41. func GetList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*CompanyList, err error) {
  42. o := orm.NewOrm()
  43. sql := `SELECT a.company_id,a.company_name,a.credit_code,b.status
  44. FROM company AS a
  45. INNER JOIN company_product AS b ON a.company_id=b.company_id
  46. WHERE 1=1 `
  47. if condition != "" {
  48. sql += condition
  49. }
  50. sql += ` GROUP BY a.company_id ORDER BY a.last_updated_time DESC `
  51. totalSql := `select count(*) count from (` + sql + `) g`
  52. err = o.Raw(totalSql, pars).QueryRow(&total)
  53. if err != nil {
  54. return
  55. }
  56. sql += ` limit ?,?`
  57. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
  58. return
  59. }