123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package cygx
- import (
- "github.com/beego/beego/v2/client/orm"
- "github.com/rdlucklib/rdluck_tools/paging"
- )
- // 增量客户统计报表列表数据结构
- type CompanyContractResp struct {
- CompanyContractId int `description:"合同id"`
- ContractType string `description:"合同类型"`
- CompanyId int `description:"企业客户id"`
- CompanyName string `description:"企业客户名称"`
- ContractCode string `description:"合同编码"`
- StartDate string `description:"合同开始日期"`
- EndDate string `description:"合同结束日期"`
- Money float64 `description:"合同金额"`
- CreateTime string `description:"合同创建时间"`
- ModifyTime string `description:"合同修改时间"`
- SellerId int `description:"归属销售id"`
- SellerName string `description:"归属销售名称"`
- IsAllocation int `description:"是否派点: 0-未派点; 1-已派点"`
- Source string `description:"合同来源,枚举值:上传附件、系统合同,默认上传附件"`
- FormalType string `description:"转正类型,枚举值: 标准、非标"`
- IsGray bool `description:"是否置灰"`
- ContractId int `description:"合同唯一id"`
- MoneyPoint float64 `description:"派点金额"`
- PermissionName string `description:"权限名"`
- Quarter string `description:"季度(X类试用客户使用)"`
- }
- // 增量客户统计报表返回类
- type CompanyContractListResp struct {
- Paging *paging.PagingItem `description:"分页数据"`
- List []*CompanyContractResp
- }
- // 获取存量客户未续约报表列表统计数据(根据合同来展示)
- func GetCompanyContractCountJoinCompany(condition string, pars []interface{}) (total int, err error) {
- o := orm.NewOrm()
- sql := ` SELECT
- count(*) AS count
- FROM
- (
- SELECT
- COUNT(*)
- 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
- a.STATUS = 1
- ` + condition + `
- GROUP BY
- a.company_contract_id
- ) b`
- err = o.Raw(sql, pars).QueryRow(&total)
- return
- }
- // 获取存量客户未续约报表列表数据(根据合同来展示)
- func GetCompanyContractListJoinCompany(condition string, pars []interface{}, startSize, pageSize int) (items []*CompanyContractResp, 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 a.status = 1 `
- //
- //if condition != "" {
- // sql += condition
- //}
- //sql += " order by a.start_date desc "
- //sql = `select *,count(*) count from (` + sql + `) b group by company_id order by end_date asc,company_id desc limit ?,?`
- 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
- a.STATUS = 1`
- sql += condition
- sql += `GROUP BY a.company_contract_id ORDER BY a.start_date DESC , a.company_contract_id DESC LIMIT ?,? `
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
- return
- }
|