package company import ( "hongze/hongze_task/models" "rdluck_tools/orm" "time" ) //试用转正式 func TryOutToFormal(companyId, productId, sellerId, companyContractId int, startDate, endDate, sellerName, productName string) (err error) { o := orm.NewOrm() o.Begin() defer func() { if err != nil { o.Rollback() } else { o.Commit() } }() sql := `UPDATE company_product SET status='正式',start_date=?,end_date=?,modify_time=NOW(),formal_time=NOW() WHERE company_id=? AND product_id=? ` _, err = o.Raw(sql, startDate, endDate, companyId, productId).Exec() if err != nil { return } sql = `UPDATE company SET type=1,last_updated_time=NOW() WHERE company_id=? ` _, err = o.Raw(sql, companyId).Exec() if err != nil { return } items := make([]*models.CompanyReportPermission, 0) sql = `SELECT * FROM company_report_permission WHERE company_id=? AND product_id=? ` _, err = o.Raw(sql, companyId, productId).QueryRows(&items) for _, pv := range items { cpLog := new(models.CompanyPermissionLog) cpLog.CompanyId = companyId cpLog.ChartPermissionId = pv.ChartPermissionId cpLog.CreateTime = time.Now() cpLog.SysUserId = sellerId cpLog.SysUserName = sellerName cpLog.StartDate = pv.StartDate cpLog.EndDate = pv.EndDate cpLog.ProductId = productId cpLog.ProductName = pv.ProductName go models.AddCompanyPermissionLog(cpLog) } sql = `DELETE FROM company_report_permission WHERE company_id=? AND product_id=?` _, err = o.Raw(sql, companyId, productId).Exec() if err != nil { return } contractPermission := make([]*models.CompanyReportPermission, 0) sql = `SELECT * FROM company_contract_permission WHERE company_contract_id=? AND company_id=? ` _, err = o.Raw(sql, companyContractId, companyId).QueryRows(&contractPermission) if err != nil { return } for _, pv := range contractPermission { sql = `INSERT INTO company_report_permission(company_id, report_permission_id,created_time, last_updated_time, chart_permission_id, start_date,end_date,product_id,product_name, modify_time,company_contract_id,status) VALUES(?,?,NOW(),NOW(),?,?,?,?,?,NOW(),?,?) ` _, err = o.Raw(sql, companyId, pv.ChartPermissionId, pv.ChartPermissionId, pv.StartDate, pv.EndDate, productId, productName, companyContractId, "正式").Exec() if err != nil { return } } return } //服务更新 func ApplyServiceUpdate(companyId, productId, sellerId, companyContractId int, startDate, endDate, sellerName, productName string) (err error) { o := orm.NewOrm() o.Begin() defer func() { if err != nil { o.Rollback() } else { o.Commit() } }() sql := `UPDATE company_product SET status='正式',start_date=?,end_date=?,modify_time=NOW() WHERE company_id=? AND product_id=? ` _, err = o.Raw(sql, startDate, endDate, companyId, productId).Exec() if err != nil { return } //合同权限变更 items := make([]*models.CompanyReportPermission, 0) sql = `SELECT * FROM company_report_permission WHERE company_id=? AND product_id=? ` _, err = o.Raw(sql, companyId, productId).QueryRows(&items) if err != nil { return } for _, pv := range items { cpLog := new(models.CompanyPermissionLog) cpLog.CompanyId = companyId cpLog.ChartPermissionId = pv.ChartPermissionId cpLog.CreateTime = time.Now() cpLog.SysUserId = sellerId cpLog.SysUserName = sellerName cpLog.StartDate = pv.StartDate cpLog.EndDate = pv.EndDate cpLog.ProductId = productId cpLog.ProductName = pv.ProductName go models.AddCompanyPermissionLog(cpLog) } sql = `DELETE FROM company_report_permission WHERE company_id=? AND product_id=? ` _, err = o.Raw(sql, companyId, productId).Exec() if err != nil { return } contractPermission := make([]*models.CompanyReportPermission, 0) sql = `SELECT * FROM company_contract_permission WHERE company_contract_id=? AND company_id=? ` _, err = o.Raw(sql, companyContractId, companyId).QueryRows(&contractPermission) if err != nil { return } for _, pv := range contractPermission { sql = `INSERT INTO company_report_permission(company_id, report_permission_id,created_time, last_updated_time, chart_permission_id, start_date,end_date,product_id,product_name, modify_time,company_contract_id,status) VALUES(?,?,NOW(),NOW(),?,?,?,?,?,NOW(),?,?) ` _, err = o.Raw(sql, companyId, pv.ChartPermissionId, pv.ChartPermissionId, pv.StartDate, pv.EndDate, productId, productName, companyContractId, "正式").Exec() if err != nil { return } } return }