ziwen 1 year ago
parent
commit
ee9d03bd34
2 changed files with 127 additions and 159 deletions
  1. 17 0
      models/company/company_permission.go
  2. 110 159
      services/cygx/activity_special.go

+ 17 - 0
models/company/company_permission.go

@@ -623,3 +623,20 @@ func GetReportPermissionIdsByCompanyIds(companyIds []int) (items []*CompanyListP
 	_, err = o.Raw(sql, companyIds).QueryRows(&items)
 	_, err = o.Raw(sql, companyIds).QueryRows(&items)
 	return
 	return
 }
 }
+
+
+// GetCompanyReportPermissionByCompanyIdAndProductId 获取权限类型
+func GetCompanyReportPermissionByCompanyIdAndProductId(companyId, productId int) (items []*CompanyReportPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+	re.*
+FROM
+	company_report_permission  as re 
+	INNER JOIN chart_permission as  c ON c.chart_permission_id = re.chart_permission_id
+WHERE
+	re.company_id = ? 
+	AND re.product_id = ? 
+	AND STATUS = '正式' `
+	_, err = o.Raw(sql, companyId, productId).QueryRows(&items)
+	return
+}

+ 110 - 159
services/cygx/activity_special.go

@@ -231,120 +231,79 @@ func GetSpecialSurplusByCompany(companyId int) (specialSurplus string, err error
 	//chartMap := map[int]string{utils.YI_YAO_ID:utils.YI_YAO_NAME, utils.XIAO_FEI_ID:utils.XIAO_FEI_NAME, utils.KE_JI_ID:utils.KE_JI_NAME, utils.ZHI_ZAO_ID:utils.ZHI_ZAO_NAME}
 	//chartMap := map[int]string{utils.YI_YAO_ID:utils.YI_YAO_NAME, utils.XIAO_FEI_ID:utils.XIAO_FEI_NAME, utils.KE_JI_ID:utils.KE_JI_NAME, utils.ZHI_ZAO_ID:utils.ZHI_ZAO_NAME}
 	//chartNumMap := map[int]int{utils.YI_YAO_ID:0, utils.XIAO_FEI_ID:0, utils.KE_JI_ID:0, utils.ZHI_ZAO_ID:0}
 	//chartNumMap := map[int]int{utils.YI_YAO_ID:0, utils.XIAO_FEI_ID:0, utils.KE_JI_ID:0, utils.ZHI_ZAO_ID:0}
 	chartNameMap := map[string]int{utils.YI_YAO_NAME: 0, utils.XIAO_FEI_NAME: 0, utils.KE_JI_NAME: 0, utils.ZHI_ZAO_NAME: 0}
 	chartNameMap := map[string]int{utils.YI_YAO_NAME: 0, utils.XIAO_FEI_NAME: 0, utils.KE_JI_NAME: 0, utils.ZHI_ZAO_NAME: 0}
+	var condition string
+	var pars []interface{}
+
+	condition += ` AND company_id = ? `
+	pars = append(pars, companyId)
+
+	//查询当年的数据
+	condition += ` AND b.create_time >= ?  `
+	pars = append(pars, time.Now().Format(utils.FormatYearDate)+"-01-01")
+	listTripBill, e := cygx.GetCygxActivitySpecialTripBillList(condition, pars)
+	if e != nil {
+		err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
+		return
+	}
 
 
 	if companyDetail.Status == "正式" {
 	if companyDetail.Status == "正式" {
 		userType, _, _, _, _ := GetUserType(companyId)
 		userType, _, _, _, _ := GetUserType(companyId)
 		if userType == 2 {
 		if userType == 2 {
-			var condition string
-			var pars []interface{}
-
-			condition += ` AND company_id = ? `
-			pars = append(pars, companyId)
-
-			//airborneList, e := cygx.GetActivitySpecialTripAirborneCountByActivitySpecial(condition, pars)
-			//if e != nil {
-			//	err = errors.New("GetActivitySpecialTripAirborneCountByActivitySpecial, Err: " + e.Error())
-			//	return
-			//}
-			//ariborneMap := make(map[int]int)
-			//for _, v := range airborneList {
-			//	ariborneMap[v.ChartPermissionId] = v.Count
-			//}
-			//到会空降的也加入流水记录表,这里不在做单独计算 2023-07-10
-			//airborneTota, e = cygx.GetActivitySpecialTripAirborneCountByActivitySpecial(condition, pars)
-			//if e != nil {
-			//	err = errors.New("GetActivitySpecialTripAirborneCountByActivitySpecial, Err: " + e.Error())
-			//	return
-			//}
-			//condition += ` AND is_valid = 1 `
-			//查询当年的数据
-			condition += ` AND create_time >= ?  `
-			pars = append(pars, time.Now().Format(utils.FormatYearDate)+"-01-01")
-			listTripBill, e := cygx.GetCygxActivitySpecialTripBill(condition, pars)
-			if e != nil {
-				err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
-				return
-			}
-			//TripBillNumMap := make(map[int]int)
-			//for _, v := range listTripBill {
-			//	TripBillNumMap[v.ChartPermissionId] += v.BillDetailed
-			//}
-			var TripBillNum int
+			var tripBillNum int
 			for _, v := range listTripBill {
 			for _, v := range listTripBill {
 				//if v.ActivityId == 0 {
 				//if v.ActivityId == 0 {
 				//	continue
 				//	continue
 				//}
 				//}
-				TripBillNum += v.BillDetailed
+				tripBillNum += v.BillDetailed
 			}
 			}
-			// CRM13.2 70w客户有16次专项调研, 45w有10次
-			//packageTypeMap := map[int]int{1: 16, 2: 10}
-			//totalTrip := packageTypeMap[packageType]
 
 
-			//tripRemaining := totalTrip + TripBillNum
-			tripRemaining := TripBillNum
+			if len(inheritList) > 0 {
+				for _, v := range inheritList {
+					if v.ChartPermissionId == 0 {
+						tripBillNum += v.Points
+					}
+				}
+			}
+			tripRemaining := tripBillNum
 			if tripRemaining < 0 {
 			if tripRemaining < 0 {
 				tripRemaining = 0
 				tripRemaining = 0
 			}
 			}
-			//for k, _ := range chartNumMap {
-			//	tripRemaining := totalTrip - ariborneMap[k] + TripBillNumMap[k]
-			//	if tripRemaining < 0 {
-			//		tripRemaining = 0
-			//	}
-			//	specialSurplus += chartMap[k] + strconv.Itoa(tripRemaining) + "次,"
-			//}
-			//specialSurplus = strings.TrimRight(specialSurplus, ",")
+
 			specialSurplus = strconv.Itoa(tripRemaining) + "次"
 			specialSurplus = strconv.Itoa(tripRemaining) + "次"
-			//tripRemaining = 12 - tripTota
 		} else {
 		} else {
-			list, e := company.GetCompanyReportPermissionUpgrade(companyId, 2)
+			list, e := company.GetCompanyReportPermissionByCompanyIdAndProductId(companyId, 2)
 			if e != nil && e.Error() != utils.ErrNoRow() {
 			if e != nil && e.Error() != utils.ErrNoRow() {
 				err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
 				err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
 			}
 			}
-			// 10.9.1本身升级没有也可能通过继承获得
-			//if len(list) == 0 {
-			//	return
-			//}
+			if len(list) == 0 {
+				return
+			}
 			var chartPermissionIdSlice []string
 			var chartPermissionIdSlice []string
 			mapChartName := make(map[string]int)
 			mapChartName := make(map[string]int)
+			mapUpgradeId := make(map[int]int)
 			mapPermissionNameTrip := make(map[string]int)
 			mapPermissionNameTrip := make(map[string]int)
 			mapInheritChartName := make(map[string]int)
 			mapInheritChartName := make(map[string]int)
 			//mapPermissionName := make(map[int]string)
 			//mapPermissionName := make(map[int]string)
 			for _, v := range list {
 			for _, v := range list {
 				chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
 				chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
+				//是升级套餐才有点数
+				if v.IsUpgrade == 1 {
+					mapUpgradeId[v.ChartPermissionId] = 1
+				}
 			}
 			}
-			chartList, e := models.GetChartPermissionByIds(chartPermissionIdSlice)
-			if e != nil {
-				err = errors.New("获取品种信息失败, Err:" + e.Error())
-				return
+			chartList := make([]*models.ChartPermission, 0)
+			if len(chartPermissionIdSlice) > 0 {
+				chartList, e = models.GetChartPermissionByIds(chartPermissionIdSlice)
+				if e != nil {
+					err = errors.New("获取品种信息失败, Err:" + e.Error())
+					return
+				}
 			}
 			}
-			// 10.9.1本身升级没有也可能通过继承获得
-			//if len(chartList) == 0 {
-			//	return
-			//}
-			//到会空降的也加入流水记录表,这里不在做单独计算 2023-07-10
-			//airborneList, e := cygx.GetCygxActivitySpecialTripAirborneListByComapnyId(companyId)
-			//if e != nil {
-			//	err = errors.New("获取品种信息失败, Err:" + e.Error())
-			//	return
-			//}
-			//for _, v := range airborneList {
-			//	mapPermissionNameTrip[v.ChartPermissionName] += 1
-			//}
-
-			var condition string
-			var pars []interface{}
-
-			condition += ` AND company_id = ? `
-			pars = append(pars, companyId)
-
-			//查询当年的数据
-			condition += ` AND b.create_time >= ?  `
-			pars = append(pars, time.Now().Format(utils.FormatYearDate)+"-01-01")
-			listTripBill, e := cygx.GetCygxActivitySpecialTripBillList(condition, pars)
-			if e != nil {
-				err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
+
+			if len(chartList) == 0 {
 				return
 				return
 			}
 			}
+
 			//var TripBillNum int
 			//var TripBillNum int
 			for _, v := range listTripBill {
 			for _, v := range listTripBill {
 				if v.ActivityId == 0 {
 				if v.ActivityId == 0 {
@@ -353,8 +312,14 @@ func GetSpecialSurplusByCompany(companyId int) (specialSurplus string, err error
 				mapPermissionNameTrip[v.ChartPermissionName] += v.BillDetailed
 				mapPermissionNameTrip[v.ChartPermissionName] += v.BillDetailed
 			}
 			}
 			for _, v := range chartList {
 			for _, v := range chartList {
-				mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
+				//如果是升级则加点
+				if _, ok := mapUpgradeId[v.ChartPermissionId]; ok {
+					mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
+				} else {
+					mapChartName[v.PermissionName] = mapPermissionNameTrip[v.ChartPermissionName]
+				}
 			}
 			}
+			// 通过继承获得的加点
 			for _, v := range inheritList {
 			for _, v := range inheritList {
 				mapInheritChartName[v.ChartPermissionName] = v.Points
 				mapInheritChartName[v.ChartPermissionName] = v.Points
 			}
 			}
@@ -365,6 +330,7 @@ func GetSpecialSurplusByCompany(companyId int) (specialSurplus string, err error
 					}
 					}
 				}
 				}
 			}
 			}
+
 			for k, v := range mapChartName {
 			for k, v := range mapChartName {
 				if v > 0 {
 				if v > 0 {
 					specialSurplus += k + strconv.Itoa(v) + "次+"
 					specialSurplus += k + strconv.Itoa(v) + "次+"
@@ -481,91 +447,61 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 			err = errors.New("GetCygxActivitySpecialInheritPointsByCompanyId, Err: " + e.Error())
 			err = errors.New("GetCygxActivitySpecialInheritPointsByCompanyId, Err: " + e.Error())
 		}
 		}
 		if userType == 2 {
 		if userType == 2 {
-			//airborneList, e := cygx.GetActivitySpecialTripAirborneCountByActivitySpecial(condition, pars)
-			//if e != nil {
-			//	err = errors.New("GetActivitySpecialTripAirborneCountByActivitySpecial, Err: " + e.Error())
-			//	return
-			//}
-			//ariborneMap := make(map[int]int)
-			//for _, v := range airborneList {
-			//	ariborneMap[v.ChartPermissionId] = v.Count
-			//}
-			//到会空降的也加入流水记录表,这里不在做单独计算 2023-07-10
-			//airborneTotal, e := cygx.GetActivitySpecialTripAirborneCountByActivitySpecial(condition, pars)
-			//if e != nil {
-			//	err = errors.New("GetActivitySpecialTripAirborneCountByActivitySpecial, Err: " + e.Error())
-			//	return
-			//}
-			//condition += ` AND is_valid = 1 `
-			//TripBillNumMap := make(map[int]int)
-			//for _, v := range listTripBill {
-			//	TripBillNumMap[v.ChartPermissionId] += v.BillDetailed
-			//}
-			var TripBillNum int
+
+			var tripBillNum int
 			for _, v := range listTripBill {
 			for _, v := range listTripBill {
 				//if v.ActivityId == 0 {
 				//if v.ActivityId == 0 {
 				//	continue
 				//	continue
 				//}
 				//}
-				TripBillNum += v.BillDetailed
+				tripBillNum += v.BillDetailed
+			}
+			if len(inheritList) > 0 {
+				for _, v := range inheritList {
+					if v.ChartPermissionId == 0 {
+						tripBillNum += v.Points
+					}
+				}
 			}
 			}
-			// CRM13.2 70w客户有16次专项调研, 45w有10次
-			//packageTypeMap := map[int]int{1: 16, 2: 10}
-			//totalTrip := packageTypeMap[packageType]
 
 
-			tripRemaining = TripBillNum
+			tripRemaining = tripBillNum
 			if tripRemaining < 0 {
 			if tripRemaining < 0 {
 				tripRemaining = 0
 				tripRemaining = 0
 			}
 			}
 
 
-			//for k, _ := range chartNumMap {
-			//	tripRemaining := totalTrip - ariborneMap[k] + TripBillNumMap[k]
-			//	if tripRemaining < 0 {
-			//		tripRemaining = 0
-			//	}
-			//	specialSurplus += chartMap[k] + strconv.Itoa(tripRemaining) + "次,"
-			//}
-			//specialSurplus = strings.TrimRight(specialSurplus, ",")
-
-			//tripRemaining = 12 - tripTota
 		} else {
 		} else {
-			list, e := company.GetCompanyReportPermissionUpgrade(companyId, 2)
+			list, e := company.GetCompanyReportPermissionByCompanyIdAndProductId(companyId, 2)
 			if e != nil && e.Error() != utils.ErrNoRow() {
 			if e != nil && e.Error() != utils.ErrNoRow() {
 				err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
 				err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
 			}
 			}
-			// 10.9.1本身升级没有也可能通过继承获得
-			//if len(list) == 0 {
-			//	return
-			//}
+			if len(list) == 0 {
+				return
+			}
 			var chartPermissionIdSlice []string
 			var chartPermissionIdSlice []string
 			mapChartName = make(map[string]int)
 			mapChartName = make(map[string]int)
-			mapInheritChartName := make(map[string]int)
+			mapUpgradeId := make(map[int]int)
 			mapPermissionNameTrip := make(map[string]int)
 			mapPermissionNameTrip := make(map[string]int)
+			mapInheritChartName := make(map[string]int)
 			//mapPermissionName := make(map[int]string)
 			//mapPermissionName := make(map[int]string)
 			for _, v := range list {
 			for _, v := range list {
 				chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
 				chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
-
+				//是升级套餐才有点数
+				if v.IsUpgrade == 1 {
+					mapUpgradeId[v.ChartPermissionId] = 1
+				}
 			}
 			}
-			chartList, e := models.GetChartPermissionByIds(chartPermissionIdSlice)
-			if e != nil {
-				err = errors.New("获取品种信息失败, Err:" + e.Error())
+			chartList := make([]*models.ChartPermission, 0)
+			if len(chartPermissionIdSlice) > 0 {
+				chartList, e = models.GetChartPermissionByIds(chartPermissionIdSlice)
+				if e != nil {
+					err = errors.New("获取品种信息失败, Err:" + e.Error())
+					return
+				}
+			}
+
+			if len(chartList) == 0 {
 				return
 				return
 			}
 			}
-			// 10.9.1本身升级没有也可能通过继承获得
-			//if len(chartList) == 0 {
-			//	return
-			//}
-
-			//到会空降的也加入流水记录表,这里不在做单独计算 2023-07-10
-			//airborneList, e := cygx.GetCygxActivitySpecialTripAirborneListByComapnyId(companyId)
-			//if e != nil {
-			//	err = errors.New("获取品种信息失败, Err:" + e.Error())
-			//	return
-			//}
-			//for _, v := range airborneList {
-			//	mapPermissionNameTrip[v.ChartPermissionName] += 1
-			//}
 
 
-			//var TripBillNum int
 			for _, v := range listTripBill {
 			for _, v := range listTripBill {
 				if v.ActivityId == 0 {
 				if v.ActivityId == 0 {
 					continue
 					continue
@@ -573,8 +509,14 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 				mapPermissionNameTrip[v.ChartPermissionName] += v.BillDetailed
 				mapPermissionNameTrip[v.ChartPermissionName] += v.BillDetailed
 			}
 			}
 			for _, v := range chartList {
 			for _, v := range chartList {
-				mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
+				//如果是升级则加点
+				if _, ok := mapUpgradeId[v.ChartPermissionId]; ok {
+					mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
+				} else {
+					mapChartName[v.PermissionName] = mapPermissionNameTrip[v.ChartPermissionName]
+				}
 			}
 			}
+			// 通过继承获得的加点
 			for _, v := range inheritList {
 			for _, v := range inheritList {
 				mapInheritChartName[v.ChartPermissionName] = v.Points
 				mapInheritChartName[v.ChartPermissionName] = v.Points
 			}
 			}
@@ -585,6 +527,7 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 					}
 					}
 				}
 				}
 			}
 			}
+
 			for k, v := range mapChartName {
 			for k, v := range mapChartName {
 				if v > 0 {
 				if v > 0 {
 					specialSurplus += k + strconv.Itoa(v) + "次+"
 					specialSurplus += k + strconv.Itoa(v) + "次+"
@@ -635,21 +578,25 @@ func ActivitySpecialCompanyApproval(companyId int, companyName string) (err erro
 			itemBill.Content = "70w大套餐转正"
 			itemBill.Content = "70w大套餐转正"
 		}
 		}
 	} else {
 	} else {
-		list, e := company.GetCompanyReportPermissionUpgrade(companyId, 2)
+		list, e := company.GetCompanyReportPermissionByCompanyIdAndProductId(companyId, 2)
 		if e != nil && e.Error() != utils.ErrNoRow() {
 		if e != nil && e.Error() != utils.ErrNoRow() {
 			err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
 			err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
 		}
 		}
-		// 10.9.1本身升级没有也可能通过继承获得
-		//if len(list) == 0 {
-		//	return
-		//}
+		if len(list) == 0 {
+			return
+		}
 		var chartPermissionIdSlice []string
 		var chartPermissionIdSlice []string
 		mapChartName := make(map[string]int)
 		mapChartName := make(map[string]int)
+		mapUpgradeId := make(map[int]int)
 		mapInheritChartName := make(map[string]int)
 		mapInheritChartName := make(map[string]int)
 		mapPermissionNameTrip := make(map[string]int)
 		mapPermissionNameTrip := make(map[string]int)
 		//mapPermissionName := make(map[int]string)
 		//mapPermissionName := make(map[int]string)
 		for _, v := range list {
 		for _, v := range list {
 			chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
 			chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
+			//是升级套餐才有点数
+			if v.IsUpgrade == 1 {
+				mapUpgradeId[v.ChartPermissionId] = 1
+			}
 		}
 		}
 		chartList := make([]*models.ChartPermission, 0)
 		chartList := make([]*models.ChartPermission, 0)
 		if len(chartPermissionIdSlice) > 0 {
 		if len(chartPermissionIdSlice) > 0 {
@@ -659,14 +606,18 @@ func ActivitySpecialCompanyApproval(companyId int, companyName string) (err erro
 				return
 				return
 			}
 			}
 		}
 		}
-
-		// 10.9.1本身升级没有也可能通过继承获得
-		//if len(chartList) == 0 {
-		//	return
-		//}
+		if len(chartList) == 0 {
+			return
+		}
 		for _, v := range chartList {
 		for _, v := range chartList {
-			mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
+			//如果是升级则加点
+			if _, ok := mapUpgradeId[v.ChartPermissionId]; ok {
+				mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
+			} else {
+				mapChartName[v.PermissionName] = mapPermissionNameTrip[v.ChartPermissionName]
+			}
 		}
 		}
+		// 通过继承获得的加点
 		for _, v := range inheritList {
 		for _, v := range inheritList {
 			mapInheritChartName[v.ChartPermissionName] = v.Points
 			mapInheritChartName[v.ChartPermissionName] = v.Points
 		}
 		}