xingzai 1 rok temu
rodzic
commit
5e3a69f27a

+ 6 - 6
controllers/cygx/contract_allocation.go

@@ -257,7 +257,7 @@ func (this *ContractAllocationController) CompanyContractList() {
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
-	mapCompamy := make(map[int]string)
+	//mapCompamy := make(map[int]string)
 	listLen := len(list)
 	if listLen == 0 {
 		list = make([]*cygx.CompanyContractResp, 0)
@@ -274,7 +274,7 @@ func (this *ContractAllocationController) CompanyContractList() {
 			}
 			contractCodes = append(contractCodes, v.ContractCode)
 			companyContractIds = append(companyContractIds, v.CompanyContractId)
-			mapCompamy[v.CompanyId] = strconv.Itoa(v.CompanyContractId)
+			//mapCompamy[v.CompanyId] = strconv.Itoa(v.CompanyContractId)
 		}
 		lencontractCodes := len(contractCodes)
 		if lencontractCodes > 0 {
@@ -304,7 +304,7 @@ func (this *ContractAllocationController) CompanyContractList() {
 			}
 
 			//合并合同所对应的权限
-			mappermissionName, err := cygxService.GetCompanyContractPermissionNameMapById(mapCompamy)
+			mappermissionName, err := cygxService.GetCompanyContractPermissionNameMapById(companyContractIds)
 			if err != nil {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -314,7 +314,7 @@ func (this *ContractAllocationController) CompanyContractList() {
 			for _, v := range list {
 				v.ContractId = mapContractCode[v.ContractCode]
 				v.MoneyPoint = mapMoneyPoint[v.CompanyContractId]
-				v.PermissionName = mappermissionName[v.CompanyId]
+				v.PermissionName = mappermissionName[v.CompanyContractId]
 				v.IsGray = mapIsGray[v.CompanyContractId]
 			}
 		}
@@ -939,7 +939,7 @@ func (this *ContractAllocationController) CompanyContractStatistics() {
 		item := new(cygx.AllocationRealNameStatisticsListResp)
 		item.RealName = v.Name
 		item.TotalRelatedContract = mapUserAllocation[v.Name]
-		item.TotalDispatchPoint = fmt.Sprint(mapUserMoney[v.Name])
+		item.TotalDispatchPoint = utils.SubFloatToString(mapUserMoney[v.Name], 2)
 		if item.TotalDispatchPoint == "" {
 			item.TotalDispatchPoint = "0"
 		}
@@ -1019,7 +1019,7 @@ func (this *ContractAllocationController) CompanyContractStatistics() {
 		List: list,
 	}
 	resp.TotalContract = totalContract
-	resp.TotalMoney = totalMoney
+	resp.TotalMoney = utils.SubFloatToFloat(totalMoney, 2)
 	//导出excel
 	if isExport {
 		CompanyContractStatisticsExport(this, resp, br)

+ 42 - 19
models/cygx/company_contract.go

@@ -37,16 +37,23 @@ type CompanyContractListResp struct {
 // 获取存量客户未续约报表列表统计数据(根据合同来展示)
 func GetCompanyContractCountJoinCompany(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 a.status = 1 `
-
-	if condition != "" {
-		sql += condition
-	}
-	//sql += " order by a.start_date desc "
-	sql = `select count(1) count from (` + sql + ` group by company_id) f`
+	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
 }
@@ -54,16 +61,32 @@ func GetCompanyContractCountJoinCompany(condition string, pars []interface{}) (t
 // 获取存量客户未续约报表列表数据(根据合同来展示)
 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 `
-
-	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 	LIMIT  ?,? `
 	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
 	return
 }

+ 13 - 26
services/cygx/contract_allocation.go

@@ -8,33 +8,23 @@ import (
 	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
-	"strconv"
 	"strings"
 	"time"
 )
 
 // GetCompanyContractPermissionNameMapById 获取合并之后的合同所对应的权限种类名称
-func GetCompanyContractPermissionNameMapById(mapCompamy map[int]string) (mapContractResp map[int]string, err error) {
+func GetCompanyContractPermissionNameMapById(companyContractIds []int) (mapContractResp map[int]string, err error) {
 	//return
-	if len(mapCompamy) == 0 {
+	lenArr := len(companyContractIds)
+	if lenArr == 0 {
 		return
 	}
 	var condition string
 	var pars []interface{}
 
-	mapContracIdCompanyId := make(map[string]int) //建立合同ID与公司ID的map对应关系
-
-	var companyContractIdGroup string //多个合同ID
-	for k, v := range mapCompamy {
-		companyContractIdGroup += v + ","
-		sliceContract := strings.Split(v, ",")
-		for _, compamyContracId := range sliceContract {
-			mapContracIdCompanyId[compamyContracId] = k
-		}
-	}
+	condition += " AND  company_contract_id IN (" + utils.GetOrmInReplace(lenArr) + ")"
+	pars = append(pars, companyContractIds)
 
-	companyContractIdGroup = strings.TrimRight(companyContractIdGroup, ",")
-	condition += " AND  company_contract_id IN (" + companyContractIdGroup + ")"
 	companyContractList, e := company.GetCompanyContractList(condition, pars)
 	if e != nil && e.Error() != utils.ErrNoRow() {
 		err = errors.New("GetCompanyContractList, Err: " + e.Error())
@@ -51,13 +41,13 @@ func GetCompanyContractPermissionNameMapById(mapCompamy map[int]string) (mapCont
 		mappermissionName[v.ChartPermissionId] = v.Remark
 	}
 
-	mapContractIdPerssion := make(map[string]string) //单个合同ID所对应的套餐或者权限名称
+	mapContractIdPerssion := make(map[int]string) //单个合同ID所对应的套餐或者权限名称
 	for _, v := range companyContractList {
 		if v.RaiPackageType == 1 {
-			mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] = "70w套餐"
+			mapContractIdPerssion[v.CompanyContractId] = "70w套餐"
 		}
 		if v.RaiPackageType == 2 {
-			mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] = "45w套餐"
+			mapContractIdPerssion[v.CompanyContractId] = "45w套餐"
 		}
 	}
 
@@ -68,15 +58,15 @@ func GetCompanyContractPermissionNameMapById(mapCompamy map[int]string) (mapCont
 	}
 	for _, v := range companyContractPermissionList {
 		//如果开通的不是整个套餐,那么就做单独的子权限处理
-		if strings.Count(mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)], "w套餐") == 0 {
+		if strings.Count(mapContractIdPerssion[(v.CompanyContractId)], "w套餐") == 0 {
 			if v.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
 				if v.ExpensiveYx == 1 {
-					mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(5w),"
+					mapContractIdPerssion[(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(5w),"
 				} else {
-					mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(3w),"
+					mapContractIdPerssion[(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(3w),"
 				}
 			} else {
-				mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] += mappermissionName[v.ChartPermissionId] + ","
+				mapContractIdPerssion[(v.CompanyContractId)] += mappermissionName[v.ChartPermissionId] + ","
 			}
 		}
 	}
@@ -104,12 +94,9 @@ func GetCompanyContractPermissionNameMapById(mapCompamy map[int]string) (mapCont
 		mapContractIdPerssion[k] = perssionName
 	}
 	mapContractResp = make(map[int]string, 0)
-	for k, v := range mapContractIdPerssion {
-		mapContractResp[mapContracIdCompanyId[k]] += v + ","
-	}
 
 	//过滤多余的","
-	for k, v := range mapContractResp {
+	for k, v := range mapContractIdPerssion {
 		sliceName := strings.Split(v, ",")
 		var nameArr []string
 		for _, vName := range sliceName {