ziwen 1 year ago
parent
commit
8372dbf4ba

+ 5 - 2
services/company_product.go

@@ -121,6 +121,10 @@ func CompanyTryOut(cont context.Context) (err error) {
 		}
 		fmt.Println(k, v.CompanyId)
 
+		// 更新专项调研点数,需要在状态变更之前
+		if v.ProductId == 2 {
+			cygx.ActivitySpecialCompanyTryOutReduce(v.CompanyId)
+		}
 		//客户正式转试用
 		companyReportPermissionList, err := models.CompanyTryOut(v.CompanyId, v.ProductId)
 		if err != nil {
@@ -141,10 +145,9 @@ func CompanyTryOut(cont context.Context) (err error) {
 			}
 		}
 
-		//正式专试用定时任务更新研选及专项调研扣点
+		//正式转试用定时任务更新研选扣点
 		{
 			cygx.YanXuanCompanyCompanyTryOut(v.CompanyId)
-			cygx.ActivitySpecialCompanyTryOutReduce(v.CompanyId)
 		}
 	}
 	return

+ 19 - 10
services/cygx/activity_points_set.go

@@ -126,21 +126,25 @@ func ActivitySpecialCompanyApproval(companyId int) (err error) {
 			itemBill.Content = "70w大套餐转正"
 		}
 	} else {
-		list, e := GetCompanyReportPermissionUpgrade(companyId, 2)
+		list, e := GetCompanyReportPermission(companyId, 2)
 		if e != nil && e.Error() != utils.ErrNoRow() {
 			err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
 		}
-		// 10.9.1本身升级没有也可能通过继承获得
-		//if len(list) == 0 {
-		//	return
-		//}
+		if len(list) == 0 {
+			return
+		}
 		var chartPermissionIdSlice []string
 		mapChartName := make(map[string]int)
+		mapUpgradeId := make(map[int]int)
 		mapInheritChartName := make(map[string]int)
 		mapPermissionNameTrip := make(map[string]int)
 		//mapPermissionName := make(map[int]string)
 		for _, v := range list {
 			chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
+			//是升级套餐才有点数
+			if v.IsUpgrade == 1 {
+				mapUpgradeId[v.ChartPermissionId] = 1
+			}
 		}
 		chartList := make([]*models.ChartPermission, 0)
 		if len(chartPermissionIdSlice) > 0 {
@@ -150,13 +154,18 @@ func ActivitySpecialCompanyApproval(companyId int) (err error) {
 				return
 			}
 		}
-		// 10.9.1本身升级套餐没有也可能通过继承获得
-		//if len(chartList) == 0 {
-		//	return
-		//}
+		if len(chartList) == 0 {
+			return
+		}
 		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 {
 			mapInheritChartName[v.ChartPermissionName] = v.Points
 		}

+ 99 - 231
services/cygx/activity_special.go

@@ -12,137 +12,6 @@ import (
 	"time"
 )
 
-// GetChartPermissionTripRemainingByCompany 获取公司专项调研次数
-func GetChartPermissionTripRemainingByCompany(companyId int) (tripRemaining int, err error) {
-	companyDetail, e := data_manage.GetCompanyDetailByIdGroup(companyId)
-	if e != nil {
-		err = errors.New("GetCompanyDetailByIdGroup, Err: " + e.Error())
-	}
-	if companyDetail == nil {
-		return
-	}
-	if companyDetail.Status != "永续" && companyDetail.Status != "正式" {
-		return
-	}
-	//var specialSurplus string
-	//if companyDetail.Status == "永续" {
-	//	specialSurplus = "不限次数"
-	//}
-	//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}
-	//var packageType int
-	userType, _, _, _, _ := GetUserType(companyId)
-	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("2006")+"-01-01")
-	listTripBill, e := data_manage.GetCygxActivitySpecialTripBillList(condition, pars)
-	if e != nil {
-		err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
-		return
-	}
-	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
-		for _, v := range listTripBill {
-			TripBillNum += v.BillDetailed
-		}
-		// CRM13.2 70w客户有16次专项调研, 45w有10次
-		//packageTypeMap := map[int]int{1: 16, 2: 10}
-		//totalTrip := packageTypeMap[packageType]
-
-		tripRemaining = TripBillNum
-		if 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 {
-		list, e := GetCompanyReportPermissionUpgrade(companyId, 2)
-		if e != nil && e.Error() != utils.ErrNoRow() {
-			err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
-		}
-		if len(list) == 0 {
-			return
-		}
-		var chartPermissionIdSlice []string
-		mapChartName := make(map[string]int)
-		mapPermissionNameTrip := make(map[string]int)
-		//mapPermissionName := make(map[int]string)
-		for _, v := range list {
-			chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
-
-		}
-		chartList, e := models.GetChartPermissionByIds(chartPermissionIdSlice)
-		if e != nil {
-			err = errors.New("获取品种信息失败, Err:" + e.Error())
-			return
-		}
-		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 {
-			if v.ActivityId == 0 {
-				continue
-			}
-			mapPermissionNameTrip[v.ChartPermissionName] += v.BillDetailed
-		}
-		for _, v := range chartList {
-			mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
-		}
-		for _, v := range mapChartName {
-			if v > 0 {
-				tripRemaining += v
-			}
-		}
-	}
-	return
-}
-
 func ActivitySpecialCompanyTryOutReduce(comapnyId int) (err error) {
 	defer func() {
 		if err != nil {
@@ -182,9 +51,9 @@ func ActivitySpecialCompanyTryOutReduce(comapnyId int) (err error) {
 	if err != nil {
 		return
 	}
-	chartMap := map[string]int{utils.YI_YAO_NAME:utils.YI_YAO_ID, utils.XIAO_FEI_NAME:utils.XIAO_FEI_ID, utils.KE_JI_NAME:utils.KE_JI_ID, utils.ZHI_ZAO_NAME:utils.ZHI_ZAO_ID}
+	chartMap := map[string]int{utils.YI_YAO_NAME: utils.YI_YAO_ID, utils.XIAO_FEI_NAME: utils.XIAO_FEI_ID, utils.KE_JI_NAME: utils.KE_JI_ID, utils.ZHI_ZAO_NAME: utils.ZHI_ZAO_ID}
 	//添加继承点数表
-	inheritItems := make([]*data_manage.CygxActivitySpecialInheritPointsCompany,0)
+	inheritItems := make([]*data_manage.CygxActivitySpecialInheritPointsCompany, 0)
 	if userType == 2 {
 		inheritItem := new(data_manage.CygxActivitySpecialInheritPointsCompany)
 		inheritItem.CompanyId = comapnyId
@@ -310,7 +179,7 @@ func GetUserType(companyId int) (userType, packageType int, permissionStrnew, co
 	return
 }
 
-// GetChartPermissionSpecialSurplusByCompany 获取公司专项调研次数-分品种-无视正式状态
+// GetChartPermissionSpecialSurplusByCompany 获取公司专项调研次数-分品种
 func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tripRemaining int, mapChartName map[string]int, err error) {
 	companyDetail, e := data_manage.GetCompanyDetailByIdGroup(companyId)
 	if e != nil {
@@ -329,115 +198,114 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 	//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}
 	//var packageType int
-	userType, _, _, _, _ = GetUserType(companyId)
-	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("2006")+"-01-01")
-	listTripBill, e := data_manage.GetCygxActivitySpecialTripBillList(condition, pars)
-	if e != nil {
-		err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
-		return
+	// 获取继承点数
+	inheritList, e := data_manage.GetCygxActivitySpecialInheritPointsByCompanyId(companyId)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCygxActivitySpecialInheritPointsByCompanyId, Err: " + e.Error())
 	}
-	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
-		for _, v := range listTripBill {
-			TripBillNum += v.BillDetailed
-		}
-		// CRM13.2 70w客户有16次专项调研, 45w有10次
-		//packageTypeMap := map[int]int{1: 16, 2: 10}
-		//totalTrip := packageTypeMap[packageType]
-
-		tripRemaining = TripBillNum
-		if 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, ",")
+	if companyDetail.Status == "正式" {
+		userType, _, _, _, _ = GetUserType(companyId)
+		var condition string
+		var pars []interface{}
 
-		//tripRemaining = 12 - tripTota
-	} else {
-		list, e := GetCompanyReportPermissionUpgrade(companyId, 2)
-		if e != nil && e.Error() != utils.ErrNoRow() {
-			err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
-		}
-		if len(list) == 0 {
-			return
-		}
-		var chartPermissionIdSlice []string
-		mapChartName = make(map[string]int)
-		mapPermissionNameTrip := make(map[string]int)
-		//mapPermissionName := make(map[int]string)
-		for _, v := range list {
-			chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
+		condition += ` AND company_id = ? `
+		pars = append(pars, companyId)
 
-		}
-		chartList, e := models.GetChartPermissionByIds(chartPermissionIdSlice)
+		//查询当年的数据
+		condition += ` AND b.create_time >= ?  `
+		pars = append(pars, time.Now().Format("2006")+"-01-01")
+		listTripBill, e := data_manage.GetCygxActivitySpecialTripBillList(condition, pars)
 		if e != nil {
-			err = errors.New("获取品种信息失败, Err:" + e.Error())
+			err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
 			return
 		}
-		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
-		//}
+		if userType == 2 {
+			//condition += ` AND is_valid = 1 `
+			//TripBillNumMap := make(map[int]int)
+			//for _, v := range listTripBill {
+			//	TripBillNumMap[v.ChartPermissionId] += v.BillDetailed
+			//}
+			var TripBillNum int
+			for _, v := range listTripBill {
+				TripBillNum += v.BillDetailed
+			}
+			// CRM13.2 70w客户有16次专项调研, 45w有10次
+			//packageTypeMap := map[int]int{1: 16, 2: 10}
+			//totalTrip := packageTypeMap[packageType]
 
-		//var TripBillNum int
-		for _, v := range listTripBill {
-			if v.ActivityId == 0 {
-				continue
+			tripRemaining = TripBillNum
+			if tripRemaining < 0 {
+				tripRemaining = 0
 			}
-			mapPermissionNameTrip[v.ChartPermissionName] += v.BillDetailed
-		}
-		for _, v := range chartList {
-			mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
-		}
-		for _, v := range mapChartName {
-			if v > 0 {
-				tripRemaining += v
+
+			//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 {
+			list, e := GetCompanyReportPermission(companyId, 2)
+			if e != nil && e.Error() != utils.ErrNoRow() {
+				err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
+			}
+			if len(list) == 0 {
+				return
+			}
+			var chartPermissionIdSlice []string
+			mapChartName = make(map[string]int)
+			mapUpgradeId := make(map[int]int)
+			mapInheritChartName := make(map[string]int)
+			mapPermissionNameTrip := make(map[string]int)
+			//mapPermissionName := make(map[int]string)
+			for _, v := range list {
+				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
+			}
+			if len(chartList) == 0 {
+				return
+			}
+
+			//var TripBillNum int
+			for _, v := range listTripBill {
+				if v.ActivityId == 0 {
+					continue
+				}
+				mapPermissionNameTrip[v.ChartPermissionName] += v.BillDetailed
 			}
-		}
 
+			for _, v := range chartList {
+				//如果是升级则加点
+				if _, ok := mapUpgradeId[v.ChartPermissionId]; ok {
+					mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
+				} else {
+					mapChartName[v.PermissionName] = mapPermissionNameTrip[v.ChartPermissionName]
+				}
+			}
+			// 通过继承获得的加点
+			for _, v := range inheritList {
+				mapInheritChartName[v.ChartPermissionName] = v.Points
+			}
+			for _, v := range mapChartName {
+				if v > 0 {
+					tripRemaining += v
+				}
+			}
+		}
 	}
 	return
 }

+ 2 - 4
services/cygx/company_permission.go

@@ -23,8 +23,8 @@ type CompanyReportPermission struct {
 	ExpensiveYx               int       `description:"权益研选: 0-3w; 1-5w"`
 }
 
-// GetCompanyReportPermissionUpgrade 获取升级的权限类型
-func GetCompanyReportPermissionUpgrade(companyId, productId int) (items []*CompanyReportPermission, err error) {
+// GetCompanyReportPermission 获取权限类型
+func GetCompanyReportPermission(companyId, productId int) (items []*CompanyReportPermission, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
 	re.*
@@ -34,8 +34,6 @@ FROM
 WHERE
 	re.company_id = ? 
 	AND re.product_id = ? 
-	AND re.is_upgrade = 1 
-	AND c.permission_type = 1
 	AND STATUS = '正式' `
 	_, err = o.Raw(sql, companyId, productId).QueryRows(&items)
 	return