company.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package company
  2. import (
  3. "hongze/hongze_task/models"
  4. "rdluck_tools/orm"
  5. "time"
  6. )
  7. //试用转正式
  8. func TryOutToFormal(companyId, productId, sellerId, companyContractId int, startDate, endDate, sellerName, productName string) (err error) {
  9. o := orm.NewOrm()
  10. o.Begin()
  11. defer func() {
  12. if err != nil {
  13. o.Rollback()
  14. } else {
  15. o.Commit()
  16. }
  17. }()
  18. sql := `UPDATE company_product SET status='正式',start_date=?,end_date=?,modify_time=NOW(),formal_time=NOW() WHERE company_id=? AND product_id=? `
  19. _, err = o.Raw(sql, startDate, endDate, companyId, productId).Exec()
  20. if err != nil {
  21. return
  22. }
  23. sql = `UPDATE company SET type=1,last_updated_time=NOW() WHERE company_id=? `
  24. _, err = o.Raw(sql, companyId).Exec()
  25. if err != nil {
  26. return
  27. }
  28. items := make([]*models.CompanyReportPermission, 0)
  29. sql = `SELECT * FROM company_report_permission WHERE company_id=? AND product_id=? `
  30. _, err = o.Raw(sql, companyId, productId).QueryRows(&items)
  31. for _, pv := range items {
  32. cpLog := new(models.CompanyPermissionLog)
  33. cpLog.CompanyId = companyId
  34. cpLog.ChartPermissionId = pv.ChartPermissionId
  35. cpLog.CreateTime = time.Now()
  36. cpLog.SysUserId = sellerId
  37. cpLog.SysUserName = sellerName
  38. cpLog.StartDate = pv.StartDate
  39. cpLog.EndDate = pv.EndDate
  40. cpLog.ProductId = productId
  41. cpLog.ProductName = pv.ProductName
  42. go models.AddCompanyPermissionLog(cpLog)
  43. }
  44. sql = `DELETE FROM company_report_permission WHERE company_id=? AND product_id=?`
  45. _, err = o.Raw(sql, companyId, productId).Exec()
  46. if err != nil {
  47. return
  48. }
  49. contractPermission := make([]*models.CompanyReportPermission, 0)
  50. sql = `SELECT * FROM company_contract_permission WHERE company_contract_id=? AND company_id=? `
  51. _, err = o.Raw(sql, companyContractId, companyId).QueryRows(&contractPermission)
  52. if err != nil {
  53. return
  54. }
  55. for _, pv := range contractPermission {
  56. sql = `INSERT INTO company_report_permission(company_id, report_permission_id,created_time, last_updated_time,
  57. chart_permission_id, start_date,end_date,product_id,product_name, modify_time,company_contract_id,status)
  58. VALUES(?,?,NOW(),NOW(),?,?,?,?,?,NOW(),?,?) `
  59. _, err = o.Raw(sql, companyId, pv.ChartPermissionId, pv.ChartPermissionId, pv.StartDate, pv.EndDate, productId, productName, companyContractId, "正式").Exec()
  60. if err != nil {
  61. return
  62. }
  63. }
  64. return
  65. }
  66. //服务更新
  67. func ApplyServiceUpdate(companyId, productId, sellerId, companyContractId int, startDate, endDate, sellerName, productName string) (err error) {
  68. o := orm.NewOrm()
  69. o.Begin()
  70. defer func() {
  71. if err != nil {
  72. o.Rollback()
  73. } else {
  74. o.Commit()
  75. }
  76. }()
  77. sql := `UPDATE company_product SET status='正式',start_date=?,end_date=?,modify_time=NOW() WHERE company_id=? AND product_id=? `
  78. _, err = o.Raw(sql, startDate, endDate, companyId, productId).Exec()
  79. if err != nil {
  80. return
  81. }
  82. //合同权限变更
  83. items := make([]*models.CompanyReportPermission, 0)
  84. sql = `SELECT * FROM company_report_permission WHERE company_id=? AND product_id=? `
  85. _, err = o.Raw(sql, companyId, productId).QueryRows(&items)
  86. if err != nil {
  87. return
  88. }
  89. for _, pv := range items {
  90. cpLog := new(models.CompanyPermissionLog)
  91. cpLog.CompanyId = companyId
  92. cpLog.ChartPermissionId = pv.ChartPermissionId
  93. cpLog.CreateTime = time.Now()
  94. cpLog.SysUserId = sellerId
  95. cpLog.SysUserName = sellerName
  96. cpLog.StartDate = pv.StartDate
  97. cpLog.EndDate = pv.EndDate
  98. cpLog.ProductId = productId
  99. cpLog.ProductName = pv.ProductName
  100. go models.AddCompanyPermissionLog(cpLog)
  101. }
  102. sql = `DELETE FROM company_report_permission WHERE company_id=? AND product_id=? `
  103. _, err = o.Raw(sql, companyId, productId).Exec()
  104. if err != nil {
  105. return
  106. }
  107. contractPermission := make([]*models.CompanyReportPermission, 0)
  108. sql = `SELECT * FROM company_contract_permission WHERE company_contract_id=? AND company_id=? `
  109. _, err = o.Raw(sql, companyContractId, companyId).QueryRows(&contractPermission)
  110. if err != nil {
  111. return
  112. }
  113. for _, pv := range contractPermission {
  114. sql = `INSERT INTO company_report_permission(company_id, report_permission_id,created_time, last_updated_time,
  115. chart_permission_id, start_date,end_date,product_id,product_name, modify_time,company_contract_id,status)
  116. VALUES(?,?,NOW(),NOW(),?,?,?,?,?,NOW(),?,?) `
  117. _, err = o.Raw(sql, companyId, pv.ChartPermissionId, pv.ChartPermissionId, pv.StartDate, pv.EndDate, productId, productName, companyContractId, "正式").Exec()
  118. if err != nil {
  119. return
  120. }
  121. }
  122. return
  123. }