xingzai 1 an în urmă
părinte
comite
385d1bba5e

+ 9 - 45
controllers/statistic_company_merge.go

@@ -7,10 +7,8 @@ import (
 	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/models/response"
 	"hongze/hz_crm_api/services"
-	"strings"
 	//"hongze/hz_crm_api/services"
 	"hongze/hz_crm_api/utils"
-	"strconv"
 	//"strings"
 	"time"
 )
@@ -64,6 +62,7 @@ func (this *StatisticCompanyMergerController) IncrementalCompanyList() {
 	dataType := this.GetString("DataType")
 	tryOutType := this.GetString("TryOutType")
 	keyword := this.GetString("Keyword")
+	packageDifference := this.GetString("PackageDifference")
 
 	startDate := this.GetString("StartDate")
 	endDate := this.GetString("EndDate")
@@ -115,6 +114,12 @@ func (this *StatisticCompanyMergerController) IncrementalCompanyList() {
 		condition += ` AND b.region_type = ? `
 		pars = append(pars, regionType)
 	}
+
+	if packageDifference != "" {
+		condition += ` AND b.package_difference = ? `
+		pars = append(pars, regionType)
+	}
+
 	//关键字搜索
 	if keyword != "" {
 		condition += ` and b.company_name like "%` + keyword + `%" `
@@ -246,7 +251,7 @@ func (this *StatisticCompanyMergerController) IncrementalCompanyList() {
 		////额外条件(续约合同的起始日期包含在所选时间段内且不包含在新签合同存续期内的客户)
 		//pars1 = append(pars1, endDate)
 
-		total, err := company.GetIncrementalRenewalCompanyProductMergeCount(condition1, pars1)
+		total, err := company.GetIncrementalNewCompanyProductMergeCount(condition1, pars1)
 		if err != nil && err.Error() != utils.ErrNoRow() {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -269,51 +274,10 @@ func (this *StatisticCompanyMergerController) IncrementalCompanyList() {
 				br.ErrMsg = "获取失败,Err:" + err.Error()
 				return
 			}
+
 			list = tmpList
 			dataTotal = total
 
-			var ids []string
-			companyMap := make(map[int]*models.IncrementalList)
-			oldCompanyMap := make(map[int]*models.IncrementalList)
-			countMap := make(map[int]int)
-			for _, item := range tmpList {
-				ids = append(ids, strconv.Itoa(item.CompanyId))
-				companyMap[item.CompanyId] = item
-			}
-			if len(ids) > 0 {
-				idStr := strings.Join(ids, ",")
-				lists, err := models.GetLastContractMoney(idStr)
-				if err != nil {
-					br.Msg = "获取失败"
-					br.ErrMsg = "获取失败,Err:" + err.Error()
-					return
-				}
-
-				for _, item := range lists {
-					_, countOk := countMap[item.CompanyId]
-					_, ok := oldCompanyMap[item.CompanyId]
-					if !ok {
-						oldCompanyMap[item.CompanyId] = item
-					} else if !countOk {
-						countMap[item.CompanyId] = 1
-						oldCompanyMap[item.CompanyId] = item
-					}
-				}
-				//给list赋值
-				for _, item := range list {
-					if item.ProductName == "权益" {
-						lastContract, _ := oldCompanyMap[item.CompanyId]
-						if item.Money > lastContract.Money {
-							item.PackageDifference = "增加套餐"
-						} else if item.Money < lastContract.Money {
-							item.PackageDifference = "减少套餐"
-						} else {
-							item.PackageDifference = "维持套餐"
-						}
-					}
-				}
-			}
-
 		}
 	}
 

+ 12 - 0
models/company/company_contract.go

@@ -229,3 +229,15 @@ func GetCompanyContractList(condition string, pars []interface{}) (items []*Comp
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
+
+// 获取合同对应的权限列表
+func GetCompanyContractPermissionList(condition string, pars []interface{}) (items []*CompanyContractPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM company_contract_permission WHERE 1 = 1  `
+
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}

+ 1 - 1
models/company/company_contract_merge.go

@@ -111,7 +111,7 @@ func GetIncrementalNewCompanyProductMergeCount(condition string, pars []interfac
 }
 
 // GetIncrementalNewCompanyList 获取增量客户报表列表数据(根据合同来展示)
-func GetIncrementalNewCompanyMergeList(condition string, pars []interface{}, startSize, pageSize int) (items []*IncrementalList, err error) {
+func GetIncrementalCompanyProductMergeCount(condition string, pars []interface{}, startSize, pageSize int) (items []*IncrementalList, err error) {
 	o := orm.NewOrm()
 
 	sql := `SELECT a.*,b.region_type,c.seller_id,c.seller_name,b.company_name,c.renewal_reason FROM company_contract_merge a

+ 1 - 0
models/statistic_report.go

@@ -400,6 +400,7 @@ type IncrementalList struct {
 	AscribeContent      string                             `description:"归因标签说明"`
 	IsShowNoRenewedNote bool                               `description:"是否展示未续约备注按钮"`
 	Content             string                             `description:"归因内容说明"`
+	PermissionName      string                             `description:"权限名"`
 }
 
 // GetIncrementalNewCompanyCount 获取增量客户报表列表统计数据(根据合同来展示)

+ 66 - 0
services/company_contract.go

@@ -1,7 +1,9 @@
 package services
 
 import (
+	"errors"
 	"fmt"
+	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/utils"
 	"strconv"
@@ -86,3 +88,67 @@ func InitCompanyContractMerge() {
 		return
 	}
 }
+
+func GetCompanyContractPermissionNameMapById(mapCompamy map[int]string) (mapContractResp map[int]string, err error) {
+	var condition string
+	var pars []interface{}
+
+	var companyContractIdGroup string //多个合同ID
+	for _, v := range mapCompamy {
+		companyContractIdGroup += v + ","
+	}
+	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())
+		return
+	}
+
+	permissionList, e := models.GetChartPermissionList()
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetChartPermissionList, Err: " + e.Error())
+		return
+	}
+	mappermissionName := make(map[int]string)
+	for _, v := range permissionList {
+		mappermissionName[v.ChartPermissionId] = v.Remark
+	}
+
+	mapContractIdPerssion := make(map[string]string) //单个合同ID所对应的套餐或者权限名称
+	for _, v := range companyContractList {
+		if v.RaiPackageType == 1 {
+			mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] = "70w套餐"
+		}
+		if v.RaiPackageType == 2 {
+			mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] = "45w套餐"
+		}
+	}
+
+	companyContractPermissionList, e := company.GetCompanyContractPermissionList(condition, pars)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCompanyContractPermissionList, Err: " + e.Error())
+		return
+	}
+	for _, v := range companyContractPermissionList {
+		//如果开通的不是整个套餐,那么就做单独的子权限处理
+		if strings.Count(mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)], "w套餐") == 0 {
+			if v.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
+				if v.ExpensiveYx == 1 {
+					mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] += mappermissionName[v.ChartPermissionId] + ","
+				} else {
+					mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] += mappermissionName[v.ChartPermissionId] + ","
+				}
+			} else {
+				mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] += mappermissionName[v.ChartPermissionId] + ","
+			}
+
+		}
+	}
+
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+	return
+}