package cygx import ( "github.com/beego/beego/v2/client/orm" "time" ) // 研究员派点 type CygxAllocationCompanyContract struct { AllocationCompanyContractId int `orm:"column(allocation_company_contract_id);pk"` CompanyContractId int `description:"合同id"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"更新时间"` Adminid int `description:"操作人ID"` AdminName string `description:"内容"` Proportion float64 `description:"占比"` RealName int `description:"研究员姓名"` } // 研究员派点日志 type CygxAllocationCompanyContractLog struct { AllocationCompanyContractId int `orm:"column(allocation_company_contract_id);pk"` CompanyContractId int `description:"合同id"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"更新时间"` Adminid int `description:"操作人ID"` AdminName string `description:"内容"` Proportion float64 `description:"占比"` RealName int `description:"研究员姓名"` } // 行业派点 type CygxAllocationCompanyContractPermission struct { AllocationCompanyContractId int `orm:"column(allocation_company_contract_id);pk"` CompanyContractId int `description:"合同id"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"更新时间"` Adminid int `description:"操作人ID"` AdminName string `description:"内容"` Proportion float64 `description:"占比"` ChartPermissionName int `description:"行业名称"` } // 行业派点日志 type CygxAllocationCompanyContractPermissionLog struct { AllocationCompanyContractId int `orm:"column(allocation_company_contract_id);pk"` CompanyContractId int `description:"合同id"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"更新时间"` Adminid int `description:"操作人ID"` AdminName string `description:"内容"` Proportion float64 `description:"占比"` ChartPermissionName int `description:"行业名称"` } // 更新派点信息 func AddAndUpdateCygxAllocationCompanyContract(items []*CygxAllocationCompanyContract, itemsPermission []*CygxAllocationCompanyContractPermission, companyContractId int) (err error) { o := orm.NewOrmUsingDB("hz_cygx") to, err := o.Begin() if err != nil { return } defer func() { if err != nil { _ = to.Rollback() } else { _ = to.Commit() } }() //组合研究员派点日志结构体 var itemsLog []*CygxAllocationCompanyContractLog for _, v := range items { item := new(CygxAllocationCompanyContractLog) item.CompanyContractId = v.CompanyContractId item.Adminid = v.Adminid item.CompanyContractId = v.CompanyContractId item.AdminName = v.AdminName item.RealName = v.RealName item.CreateTime = time.Now() item.ModifyTime = time.Now() itemsLog = append(itemsLog, item) } //组合行业派点日志结构体 var itemsPermissionLog []*CygxAllocationCompanyContractPermissionLog for _, v := range itemsPermission { item := new(CygxAllocationCompanyContractPermissionLog) item.CompanyContractId = v.CompanyContractId item.Adminid = v.Adminid item.CompanyContractId = v.CompanyContractId item.AdminName = v.AdminName item.ChartPermissionName = v.ChartPermissionName item.CreateTime = time.Now() item.ModifyTime = time.Now() itemsPermissionLog = append(itemsPermissionLog, item) } //删除原有的研究员派点信息 sql := ` DELETE FROM cygx_allocation_company_contract WHERE company_contract_id = ?` _, err = to.Raw(sql, companyContractId).Exec() if err != nil { return } //删除原有的行业派点信息 sql = ` DELETE FROM cygx_allocation_company_contract_permission WHERE company_contract_id = ?` _, err = to.Raw(sql, companyContractId).Exec() if err != nil { return } //批量添加研究员派点信息 _, err = to.InsertMulti(len(items), items) if err != nil { return } _, err = to.InsertMulti(len(itemsLog), itemsLog) if err != nil { return } //批量添加行业派点信息 _, err = to.InsertMulti(len(itemsPermission), itemsPermission) if err != nil { return } _, err = to.InsertMulti(len(itemsPermissionLog), itemsPermissionLog) if err != nil { return } return } type CygxAllocationCompanyContractDetailResp struct { Money float64 `description:"金额(单位万)"` TotalPointsContent string `description:"总点数描述"` List []*AllocationPermissionListResp } // 行业 type AllocationPermissionListResp struct { ChartPermissionName int `description:"行业名称"` Proportion float64 `description:"占比"` Money float64 `description:"金额(单位万)"` List []*AllocationRealNameListResp } // 行业 type AllocationRealNameListResp struct { RealName int `description:"研究员姓名"` Proportion float64 `description:"占比"` Money float64 `description:"金额(单位万)"` } // 获取数量 func GetCygxAllocationCompanyContractCountByCompanyContractId(companyContractId int) (count int, err error) { o := orm.NewOrmUsingDB("hz_cygx") sqlCount := ` SELECT COUNT(1) AS count FROM cygx_allocation_company_contract WHERE company_contract_id = ? ` err = o.Raw(sqlCount, companyContractId).QueryRow(&count) return }