company_contract.go 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package company_contract
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "hongze/hongze_mobile_admin/models/tables/company_report_permission"
  5. "time"
  6. )
  7. type CompanyContract struct {
  8. CompanyContractId int `orm:"column(company_contract_id);pk" description:"客户合同id"`
  9. ContractType string `description:"合同类型:枚举值:'新签合同','续约合同','补充协议'"`
  10. ProductId int `description:"产品id"`
  11. ProductName string `description:"产品名称"`
  12. CompanyId int `description:"客户id"`
  13. CompanyProductId int `description:"客户产品id"`
  14. ContractCode string `description:"合同编码"`
  15. StartDate string `description:"合同开始时间"`
  16. EndDate string `description:"合同结束时间"`
  17. Money float64 `description:"合同金额"`
  18. PayMethod string `description:"支付方式"`
  19. PayChannel string `description:"支付渠道"`
  20. ImgUrl string `description:"合同图片,多个用#隔开"`
  21. CreateTime time.Time `description:"合同创建时间"`
  22. ModifyTime time.Time `description:"合同修改时间"`
  23. Status int `description:"状态"`
  24. Source string `description:"合同来源:上传附件, 系统合同"`
  25. PackageType int `description:"套餐类型,0:无,1:大套餐,2:小套餐"`
  26. }
  27. type CompanyContractDetail struct {
  28. CompanyContractId int
  29. CompanyId int `description:"客户id"`
  30. ProductId int `description:"产品id" json:"-"`
  31. ContractCode string `description:"合同编码"`
  32. ContractType string `description:"合同类型:枚举值:'新签合同','续约合同','补充协议'"`
  33. StartDate string `description:"合同开始时间"`
  34. EndDate string `description:"合同结束时间"`
  35. Money float64 `description:"合同金额"`
  36. PayMethod string `description:"支付方式"`
  37. PayChannel string `description:"支付渠道"`
  38. ImgUrl string `description:"合同图片,多个用#隔开"`
  39. CreateTime time.Time `description:"合同创建时间"`
  40. ModifyTime time.Time `description:"合同修改时间"`
  41. Status int `description:"状态"`
  42. PackageType int `description:"套餐类型,0:无,1:大套餐,2:小套餐"`
  43. RaiPackageType int `description:"权益套餐类型: 0-无; 1-70w套餐; 2-45w套餐"`
  44. Source string `description:"合同来源:上传附件, 系统合同"`
  45. PermissionList []*company_report_permission.PermissionLookList
  46. }
  47. func GetCompanyContractDetail(companyId, productId, companyContractId int) (item *CompanyContractDetail, err error) {
  48. o := orm.NewOrm()
  49. if companyContractId == 0 {
  50. sql := `SELECT * FROM company_contract WHERE company_id=? AND product_id=? AND status=0 `
  51. err = o.Raw(sql, companyId, productId).QueryRow(&item)
  52. } else {
  53. sql := `SELECT * FROM company_contract WHERE company_contract_id=? `
  54. err = o.Raw(sql, companyContractId).QueryRow(&item)
  55. }
  56. return
  57. }
  58. // GetCompanyContractPermissionCheckByContractId 根据合同id获取已经勾选的权限
  59. func GetCompanyContractPermissionCheckByContractId(companyId, companyContractId, permissionId int) (count int, err error) {
  60. o := orm.NewOrm()
  61. sql := `SELECT COUNT(1) AS count FROM company_contract_permission AS a WHERE a.company_id=? AND company_contract_id=? AND a.chart_permission_id=? `
  62. err = o.Raw(sql, companyId, companyContractId, permissionId).QueryRow(&count)
  63. return
  64. }
  65. func GetCompanyContractDetailByContractIds(contractIds string) (list []*CompanyContract, err error) {
  66. o := orm.NewOrm()
  67. sql := `SELECT * FROM company_contract WHERE company_contract_id in (` + contractIds + `)`
  68. _, err = o.Raw(sql).QueryRows(&list)
  69. return
  70. }
  71. // 根据合同id集合字符串获取权限列表数据
  72. type CompanyContractPermissionName struct {
  73. Id int `orm:"column(id);pk" description:"客户合同id"`
  74. CompanyId int `description:"客户id"`
  75. CompanyContractId int `description:"合同id"`
  76. ChartPermissionId int `description:"权限id"`
  77. ChartPermissionName string `description:"权限名称"`
  78. PermissionName string `description:"权限名称"`
  79. PermissionRemark string `description:"权限备注"`
  80. ClassifyName string `description:"权限分类名称"`
  81. StartDate string `description:"开始日期"`
  82. EndDate string `description:"结束日期"`
  83. CreateTime time.Time `json:"-" description:"创建时间"`
  84. ModifyTime time.Time `json:"-" description:"修改时间"`
  85. IsUpgrade int `description:"是否升级,1是,0否"`
  86. }
  87. // GetCompanyContractPermissionListByContractId 根据合同Id获取合同的权限列表
  88. func GetCompanyContractPermissionListByContractId(companyContractId int) (list []*CompanyContractPermissionName, err error) {
  89. o := orm.NewOrm()
  90. sql := `SELECT a.*,b.chart_permission_name,b.classify_name FROM company_contract_permission AS a left join chart_permission b on a.chart_permission_id = b.chart_permission_id WHERE company_contract_id =? `
  91. _, err = o.Raw(sql, companyContractId).QueryRows(&list)
  92. return
  93. }