package company import ( //"fmt" "github.com/beego/beego/v2/client/orm" "time" ) type CompanyContractMerge struct { CompanyContractMergeId int `orm:"column(company_contract_merge_id);pk" description:"主键ID"` ContractType string `description:"合同类型:枚举值:'新签合同','续约合同','补充协议'"` ProductId int `description:"产品id"` ProductName string `description:"产品名称"` CompanyId int `description:"客户id"` CompanyProductId int `description:"客户产品id"` StartDate string `description:"合同开始时间"` EndDate string `description:"合同结束时间"` Money float64 `description:"合同金额"` CreateTime time.Time `description:"合同创建时间"` ModifyTime time.Time `description:"合同修改时间"` CompanyContractIdGroup string `description:"表company_contract合并的 company_contract_id"` ChartPermissionName string `description:"权限类目名称"` PackageDifference string `description:"和上一份合同的区别"` IsBestNew int `description:"是否是最新的一条数据"` } type CompanyContractMergeResp struct { CompanyContractMergeId int `orm:"column(company_contract_merge_id);pk" description:"主键ID"` ContractType string `description:"合同类型:枚举值:'新签合同','续约合同','补充协议'"` ProductId int `description:"产品id"` ProductName string `description:"产品名称"` CompanyId int `description:"客户id"` CompanyProductId int `description:"客户产品id"` StartDate time.Time `description:"合同开始时间"` EndDate time.Time `description:"合同结束时间"` Money float64 `description:"合同金额"` CreateTime time.Time `description:"合同创建时间"` ModifyTime time.Time `description:"合同修改时间"` CompanyContractIdGroup string `description:"表company_contract合并的 company_contract_id"` ChartPermissionName string `description:"权限类目名称"` PackageDifference string `description:"和上一份合同的区别"` } type CompanyContractMergeDetailResp struct { CompanyContractMergeId int `orm:"column(company_contract_merge_id);pk" description:"主键ID"` ContractType string `description:"合同类型:枚举值:'新签合同','续约合同','补充协议'"` ProductId int `description:"产品id"` ProductName string `description:"产品名称"` CompanyId int `description:"客户id"` CompanyProductId int `description:"客户产品id"` StartDate string `description:"合同开始时间"` EndDate string `description:"合同结束时间"` Money float64 `description:"合同金额"` CreateTime time.Time `description:"合同创建时间"` ModifyTime time.Time `description:"合同修改时间"` CompanyContractIdGroup string `description:"表company_contract合并的 company_contract_id"` ChartPermissionName string `description:"权限类目名称"` PackageDifference string `description:"和上一份合同的区别"` PermissionName string `description:"权限名"` } func AddCompanyContractMerge(item *CompanyContractMerge) (err error) { o := orm.NewOrm() _, err = o.Insert(item) return } // MultiAddCompanyContractMerge 批量添加合同合并之后的数据 func MultiAddCompanyContractMerge(items []*CompanyContractMerge) (err error) { if len(items) == 0 { return } o := orm.NewOrm() _, err = o.InsertMulti(len(items), items) return } // 修改 func UpdateCompanyContractMerge(item *CompanyContractMerge) (err error) { o := orm.NewOrm() to, err := o.Begin() if err != nil { return } defer func() { if err != nil { _ = to.Rollback() } else { _ = to.Commit() } }() updateParams := make(map[string]interface{}) updateParams["EndDate"] = item.EndDate updateParams["Money"] = item.Money updateParams["CompanyContractIdGroup"] = item.CompanyContractIdGroup updateParams["PackageDifference"] = item.PackageDifference updateParams["IsBestNew"] = item.IsBestNew updateParams["ModifyTime"] = item.ModifyTime ptrStructOrTableName := "company_contract_merge" whereParam := map[string]interface{}{"company_contract_merge_id": item.CompanyContractMergeId} qs := to.QueryTable(ptrStructOrTableName) for expr, exprV := range whereParam { qs = qs.Filter(expr, exprV) } _, err = qs.Update(updateParams) if err != nil { return } return } // GetIncrementalNewCompanyProductMergeCount 获取增量客户产品报表列表统计数据(根据合同来展示) func GetIncrementalNewCompanyProductMergeCount(condition string, pars []interface{}) (total int, err error) { o := orm.NewOrm() sql := `SELECT a.*,b.region_type,c.seller_id,c.seller_name,b.company_name FROM company_contract a JOIN company b ON a.company_id = b.company_id JOIN company_product c ON a.company_id = c.company_id and a.product_id=c.product_id WHERE 1 = 1 ` if condition != "" { sql += condition } sql = `select count(1) count from (` + sql + ` ) f` err = o.Raw(sql, pars).QueryRow(&total) return } // GetIncrementalRenewalCompanyProductMergeCount 续约合同数量 func GetIncrementalRenewalCompanyProductMergeCount(condition string, pars []interface{}) (total int, err error) { o := orm.NewOrm() sql := `SELECT a.*,b.region_type,c.seller_id,c.seller_name,b.company_name FROM company_contract a JOIN company b ON a.company_id = b.company_id JOIN company_product c ON a.company_id = c.company_id and a.product_id=c.product_id WHERE 1 = 1 ` if condition != "" { sql += condition } sql = `select count(1) count from (` + sql + ` ) f` err = o.Raw(sql, pars).QueryRow(&total) return } type GetCompanyContractMergeDetailResp struct { Detail *CompanyContractMergeDetailResp } // 通过ID获取详情 //func GetCompanyContractMergeDetail(condition string, pars []interface{}) (item *CompanyContractMergeDetailResp, err error) { // o := orm.NewOrm() // sql := `SELECT * FROM company_contract_merge WHERE 1= 1 ` + condition // err = o.Raw(sql, pars).QueryRow(&item) // return //} // //// UpdateCompanyContractMergeIsBestNew 更改 is_best_new 状态 //func UpdateCompanyContractMergeIsBestNew(isBestNew, companyId int) (err error) { // o := orm.NewOrm() // sql := `UPDATE company_contract_merge SET is_best_new = ? WHERE company_id=? ` // _, err = o.Raw(sql, isBestNew, companyId).Exec() // return //} // //// UpdateCompanyContractMergeIsBestNew 更改 is_best_new 状态 //func UpdateCompanyContractMergeIsBestNewto1(companyContractMergeId int) (err error) { // o := orm.NewOrm() // sql := `UPDATE company_contract_merge SET is_best_new = 1 WHERE company_contract_merge_id=? ` // _, err = o.Raw(sql, companyContractMergeId).Exec() // return //}