Browse Source

no message

xingzai 1 year ago
parent
commit
0cb9681141
3 changed files with 193 additions and 114 deletions
  1. 3 2
      controllers/statistic_company_merge.go
  2. 139 112
      services/company_contract.go
  3. 51 0
      services/cygx/contract_allocation.go

+ 3 - 2
controllers/statistic_company_merge.go

@@ -8,6 +8,7 @@ import (
 	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/models/response"
 	"hongze/hz_crm_api/services"
+	cygxService "hongze/hz_crm_api/services/cygx"
 	"os"
 	"path/filepath"
 	"strings"
@@ -449,7 +450,7 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
 
 	if dataType == "新签客户" || dataType == "续约客户" {
 		//合并合同所对应的权限
-		mappermissionName, err := services.GetCompanyContractPermissionNameMapById(mapCompamy)
+		mappermissionName, err := cygxService.GetCompanyContractPermissionNameMapBymapCompamy(mapCompamy)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -739,7 +740,7 @@ func (this *StatisticCompanyMergerController) CompanyPreviousDetail() {
 	}
 
 	resp.Detail = detailPrevious
-	mappermissionName, err := services.GetCompanyContractPermissionNameMapById(map[int]string{detailPrevious.CompanyId: detailPrevious.CompanyContractIdGroup})
+	mappermissionName, err := cygxService.GetCompanyContractPermissionNameMapBymapCompamy(map[int]string{detailPrevious.CompanyId: detailPrevious.CompanyContractIdGroup})
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()

+ 139 - 112
services/company_contract.go

@@ -3,7 +3,6 @@ package services
 import (
 	"errors"
 	"fmt"
-	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
@@ -135,118 +134,146 @@ func InitCompanyContractMerge() {
 	}
 }
 
-// GetCompanyContractPermissionNameMapById 获取合并之后的合同所对应的权限种类名称
-func GetCompanyContractPermissionNameMapById(mapCompamy map[int]string) (mapContractResp map[int]string, err error) {
-	if len(mapCompamy) == 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
-		}
-	}
-
-	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)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(5w),"
-				} else {
-					mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(3w),"
-				}
-			} else {
-				mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] += mappermissionName[v.ChartPermissionId] + ","
-			}
-		}
-	}
-
-	//合并客观权限
-	for k, v := range mapContractIdPerssion {
-		perssionName := v
-		if strings.Count(v, utils.YI_YAO_NAME) == 2 {
-			perssionName = strings.Replace(perssionName, "医药(主观)", "医药", -1)
-			perssionName = strings.Replace(perssionName, "医药(客观)", "", -1)
-		}
-		if strings.Count(v, utils.XIAO_FEI_NAME) == 2 {
-			perssionName = strings.Replace(perssionName, "消费(主观)", "消费", -1)
-			perssionName = strings.Replace(perssionName, "消费(客观)", "", -1)
-		}
-		if strings.Count(v, utils.KE_JI_NAME) == 2 {
-			perssionName = strings.Replace(perssionName, "科技(主观)", "科技", -1)
-			perssionName = strings.Replace(perssionName, "科技(客观)", "", -1)
-		}
-		if strings.Count(v, utils.ZHI_ZAO_NAME) == 2 {
-			perssionName = strings.Replace(perssionName, "智造(主观)", "智造", -1)
-			perssionName = strings.Replace(perssionName, "智造(客观)", "", -1)
-		}
-		perssionName = strings.TrimRight(perssionName, ",")
-		mapContractIdPerssion[k] = perssionName
-	}
-	mapContractResp = make(map[int]string, 0)
-	for k, v := range mapContractIdPerssion {
-		mapContractResp[mapContracIdCompanyId[k]] += v + ","
-	}
-
-	//过滤多余的","
-	for k, v := range mapContractResp {
-		sliceName := strings.Split(v, ",")
-		var nameArr []string
-		for _, vName := range sliceName {
-			if vName == "" {
-				continue
-			}
-			nameArr = append(nameArr, vName)
-		}
-		mapContractResp[k] = strings.Join(nameArr, ",")
-	}
-	return
-}
-
+//// GetCompanyContractPermissionNameMapById 获取合并之后的合同所对应的权限种类名称
+//func GetCompanyContractPermissionNameMapBymapCompamy(mapCompamy map[int]string) (mapContractResp map[int]string, err error) {
+//	if len(mapCompamy) == 0 {
+//		return
+//	}
+//	//var condition string
+//	//var pars []interface{}
 //
-//func init() {
-//	AddCompanyContractMergeByCompanyContractId(1187)
+//	mapContracIdCompanyId := make(map[int]int) //建立合同ID与公司ID的map对应关系
+//	var companyContractIds []int
+//	var companyContractIdGroup string //多个合同ID
+//	for k, v := range mapCompamy {
+//		companyContractIdGroup += v + ","
+//		sliceContract := strings.Split(v, ",")
+//		for _, compamyContracId := range sliceContract {
+//			companyContractIdInt, _ := strconv.Atoi(compamyContracId)
+//			mapContracIdCompanyId[companyContractIdInt] = k
+//			companyContractIds = append(companyContractIds, companyContractIdInt)
+//		}
+//	}
+//
+//	contractPermissionNameMap, e := cygxService.GetCompanyContractPermissionNameMapById(companyContractIds)
+//	if e != nil {
+//		err = errors.New("GetCompanyContractPermissionNameMapById, Err: " + e.Error())
+//		return
+//	}
+//
+//	mapContractResp = make(map[int]string, 0)
+//
+//	for k, v := range mapCompamy {
+//
+//		sliceContract := strings.Split(v, ",")
+//		for _, compamyContracId := range sliceContract {
+//			companyContractIdInt, _ := strconv.Atoi(compamyContracId)
+//			for k2, v2 := range contractPermissionNameMap {
+//				if companyContractIdInt == k2 {
+//					mapContractResp[k] += v2 + ","
+//				}
+//			}
+//		}
+//	}
+//
+//	//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套餐"
+//	//	}
+//	//}
+//	//mapIsUpgrade := make(map[string]bool) //合同ID对应的行业是否有升级
+//	//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)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(5w),"
+//	//			} else {
+//	//				mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(3w),"
+//	//			}
+//	//		} else {
+//	//			mapContractIdPerssion[strconv.Itoa(v.CompanyContractId)] += mappermissionName[v.ChartPermissionId] + ","
+//	//			if v.IsUpgrade == 1 {
+//	//				//合同ID,权限名称形成唯一的主键索引
+//	//				perssionName := mappermissionName[v.ChartPermissionId]
+//	//				perssionName = strings.Replace(perssionName, "(客观)", "", -1)
+//	//				perssionName = strings.Replace(perssionName, "(主观)", "", -1)
+//	//				mapIsUpgrade[fmt.Sprint(v.CompanyContractId, "perssionName", perssionName)] = true
+//	//			}
+//	//		}
+//	//	}
+//	//}
+//	//
+//	////合并客观权限
+//	//for k, v := range mapContractIdPerssion {
+//	//	perssionName := v
+//	//	if strings.Count(v, utils.YI_YAO_NAME) == 2 {
+//	//		perssionName = strings.Replace(perssionName, "医药(主观)", "医药", -1)
+//	//		perssionName = strings.Replace(perssionName, "医药(客观)", "", -1)
+//	//	}
+//	//	if strings.Count(v, utils.XIAO_FEI_NAME) == 2 {
+//	//		perssionName = strings.Replace(perssionName, "消费(主观)", "消费", -1)
+//	//		perssionName = strings.Replace(perssionName, "消费(客观)", "", -1)
+//	//	}
+//	//	if strings.Count(v, utils.KE_JI_NAME) == 2 {
+//	//		perssionName = strings.Replace(perssionName, "科技(主观)", "科技", -1)
+//	//		perssionName = strings.Replace(perssionName, "科技(客观)", "", -1)
+//	//	}
+//	//	if strings.Count(v, utils.ZHI_ZAO_NAME) == 2 {
+//	//		perssionName = strings.Replace(perssionName, "智造(主观)", "智造", -1)
+//	//		perssionName = strings.Replace(perssionName, "智造(客观)", "", -1)
+//	//	}
+//	//	perssionName = strings.TrimRight(perssionName, ",")
+//	//	mapContractIdPerssion[k] = perssionName
+//	//}
+//	//mapContractResp = make(map[int]string, 0)
+//	//for k, v := range mapContractIdPerssion {
+//	//	mapContractResp[mapContracIdCompanyId[k]] += v + ","
+//	//}
+//	//
+//	////过滤多余的","
+//	//for k, v := range mapContractResp {
+//	//	sliceName := strings.Split(v, ",")
+//	//	var nameArr []string
+//	//	for _, vName := range sliceName {
+//	//		if vName == "" {
+//	//			continue
+//	//		}
+//	//		if mapIsUpgrade[fmt.Sprint(k, "perssionName", vName)] {
+//	//			vName += "(升级)"
+//	//		}
+//	//		nameArr = append(nameArr, vName)
+//	//	}
+//	//	mapContractResp[k] = strings.Join(nameArr, ",")
+//	//}
+//	return
 //}
 
 // AddCompanyContractMergeByCompanyContractId 通过合同ID对合同进行合并

+ 51 - 0
services/cygx/contract_allocation.go

@@ -8,10 +8,61 @@ import (
 	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
+	"strconv"
 	"strings"
 	"time"
 )
 
+//
+//func init() {
+//	fmt.Println(GetCompanyContractPermissionNameMapBymapCompamy(map[int]string{6991: "1138"}))
+//}
+
+// GetCompanyContractPermissionNameMapBymapCompamy 获取合并之后的合同所对应的权限种类名称
+func GetCompanyContractPermissionNameMapBymapCompamy(mapCompamy map[int]string) (mapContractResp map[int]string, err error) {
+	if len(mapCompamy) == 0 {
+		return
+	}
+
+	mapContracIdCompanyId := make(map[int]int) //建立合同ID与公司ID的map对应关系
+	var companyContractIds []int
+	//var companyContractIdGroup string //多个合同ID
+	for k, v := range mapCompamy {
+		//companyContractIdGroup += v + ","
+		sliceContract := strings.Split(v, ",")
+		for _, compamyContracId := range sliceContract {
+			companyContractIdInt, _ := strconv.Atoi(compamyContracId)
+			mapContracIdCompanyId[companyContractIdInt] = k
+			companyContractIds = append(companyContractIds, companyContractIdInt)
+		}
+	}
+
+	// 获取单个合同所对应的权限名称
+	contractPermissionNameMap, e := GetCompanyContractPermissionNameMapById(companyContractIds)
+	if e != nil {
+		err = errors.New("GetCompanyContractPermissionNameMapById, Err: " + e.Error())
+		return
+	}
+
+	mapContractResp = make(map[int]string, 0)
+	for k, v := range mapCompamy {
+		sliceContract := strings.Split(v, ",")
+		for _, compamyContracId := range sliceContract {
+			companyContractIdInt, _ := strconv.Atoi(compamyContracId)
+			for k2, v2 := range contractPermissionNameMap {
+				if companyContractIdInt == k2 {
+					mapContractResp[k] += v2 + ","
+				}
+			}
+		}
+	}
+
+	for k, v := range mapContractResp {
+		mapContractResp[k] = strings.TrimRight(v, ",")
+	}
+	return
+}
+
 // GetCompanyContractPermissionNameMapById 获取合并之后的合同所对应的权限种类名称
 func GetCompanyContractPermissionNameMapById(companyContractIds []int) (mapContractResp map[int]string, err error) {
 	//return