allocation_company_contract.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. package cygx
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "time"
  5. )
  6. // 研究员派点
  7. type CygxAllocationCompanyContract struct {
  8. AllocationCompanyContractId int `orm:"column(allocation_company_contract_id);pk"`
  9. CompanyContractId int `description:"合同id"`
  10. CreateTime time.Time `description:"创建时间"`
  11. ModifyTime time.Time `description:"更新时间"`
  12. Adminid int `description:"操作人ID"`
  13. AdminName string `description:"内容"`
  14. Proportion float64 `description:"占比"`
  15. RealName int `description:"研究员姓名"`
  16. }
  17. // 研究员派点日志
  18. type CygxAllocationCompanyContractLog struct {
  19. AllocationCompanyContractId int `orm:"column(allocation_company_contract_id);pk"`
  20. CompanyContractId int `description:"合同id"`
  21. CreateTime time.Time `description:"创建时间"`
  22. ModifyTime time.Time `description:"更新时间"`
  23. Adminid int `description:"操作人ID"`
  24. AdminName string `description:"内容"`
  25. Proportion float64 `description:"占比"`
  26. RealName int `description:"研究员姓名"`
  27. }
  28. // 行业派点
  29. type CygxAllocationCompanyContractPermission struct {
  30. AllocationCompanyContractId int `orm:"column(allocation_company_contract_id);pk"`
  31. CompanyContractId int `description:"合同id"`
  32. CreateTime time.Time `description:"创建时间"`
  33. ModifyTime time.Time `description:"更新时间"`
  34. Adminid int `description:"操作人ID"`
  35. AdminName string `description:"内容"`
  36. Proportion float64 `description:"占比"`
  37. ChartPermissionName int `description:"行业名称"`
  38. }
  39. // 行业派点日志
  40. type CygxAllocationCompanyContractPermissionLog struct {
  41. AllocationCompanyContractId int `orm:"column(allocation_company_contract_id);pk"`
  42. CompanyContractId int `description:"合同id"`
  43. CreateTime time.Time `description:"创建时间"`
  44. ModifyTime time.Time `description:"更新时间"`
  45. Adminid int `description:"操作人ID"`
  46. AdminName string `description:"内容"`
  47. Proportion float64 `description:"占比"`
  48. ChartPermissionName int `description:"行业名称"`
  49. }
  50. // 更新派点信息
  51. func AddAndUpdateCygxAllocationCompanyContract(items []*CygxAllocationCompanyContract, itemsPermission []*CygxAllocationCompanyContractPermission, companyContractId int) (err error) {
  52. o := orm.NewOrmUsingDB("hz_cygx")
  53. to, err := o.Begin()
  54. if err != nil {
  55. return
  56. }
  57. defer func() {
  58. if err != nil {
  59. _ = to.Rollback()
  60. } else {
  61. _ = to.Commit()
  62. }
  63. }()
  64. //组合研究员派点日志结构体
  65. var itemsLog []*CygxAllocationCompanyContractLog
  66. for _, v := range items {
  67. item := new(CygxAllocationCompanyContractLog)
  68. item.CompanyContractId = v.CompanyContractId
  69. item.Adminid = v.Adminid
  70. item.CompanyContractId = v.CompanyContractId
  71. item.AdminName = v.AdminName
  72. item.RealName = v.RealName
  73. item.CreateTime = time.Now()
  74. item.ModifyTime = time.Now()
  75. itemsLog = append(itemsLog, item)
  76. }
  77. //组合行业派点日志结构体
  78. var itemsPermissionLog []*CygxAllocationCompanyContractPermissionLog
  79. for _, v := range itemsPermission {
  80. item := new(CygxAllocationCompanyContractPermissionLog)
  81. item.CompanyContractId = v.CompanyContractId
  82. item.Adminid = v.Adminid
  83. item.CompanyContractId = v.CompanyContractId
  84. item.AdminName = v.AdminName
  85. item.ChartPermissionName = v.ChartPermissionName
  86. item.CreateTime = time.Now()
  87. item.ModifyTime = time.Now()
  88. itemsPermissionLog = append(itemsPermissionLog, item)
  89. }
  90. //删除原有的研究员派点信息
  91. sql := ` DELETE FROM cygx_allocation_company_contract WHERE company_contract_id = ?`
  92. _, err = to.Raw(sql, companyContractId).Exec()
  93. if err != nil {
  94. return
  95. }
  96. //删除原有的行业派点信息
  97. sql = ` DELETE FROM cygx_allocation_company_contract_permission WHERE company_contract_id = ?`
  98. _, err = to.Raw(sql, companyContractId).Exec()
  99. if err != nil {
  100. return
  101. }
  102. //批量添加研究员派点信息
  103. _, err = to.InsertMulti(len(items), items)
  104. if err != nil {
  105. return
  106. }
  107. _, err = to.InsertMulti(len(itemsLog), itemsLog)
  108. if err != nil {
  109. return
  110. }
  111. //批量添加行业派点信息
  112. _, err = to.InsertMulti(len(itemsPermission), itemsPermission)
  113. if err != nil {
  114. return
  115. }
  116. _, err = to.InsertMulti(len(itemsPermissionLog), itemsPermissionLog)
  117. if err != nil {
  118. return
  119. }
  120. return
  121. }
  122. type CygxAllocationCompanyContractDetailResp struct {
  123. Money float64 `description:"金额(单位万)"`
  124. TotalPointsContent string `description:"总点数描述"`
  125. List []*AllocationPermissionListResp
  126. }
  127. // 行业
  128. type AllocationPermissionListResp struct {
  129. ChartPermissionName int `description:"行业名称"`
  130. Proportion float64 `description:"占比"`
  131. Money float64 `description:"金额(单位万)"`
  132. List []*AllocationRealNameListResp
  133. }
  134. // 行业
  135. type AllocationRealNameListResp struct {
  136. RealName int `description:"研究员姓名"`
  137. Proportion float64 `description:"占比"`
  138. Money float64 `description:"金额(单位万)"`
  139. }
  140. // 获取数量
  141. func GetCygxAllocationCompanyContractCountByCompanyContractId(companyContractId int) (count int, err error) {
  142. o := orm.NewOrmUsingDB("hz_cygx")
  143. sqlCount := ` SELECT COUNT(1) AS count FROM cygx_allocation_company_contract WHERE company_contract_id = ? `
  144. err = o.Raw(sqlCount, companyContractId).QueryRow(&count)
  145. return
  146. }