Browse Source

数据修复

ziwen 1 year ago
parent
commit
ab93a6bdf3

+ 110 - 2
models/activity_special_trip_bill.go

@@ -67,7 +67,6 @@ type CygxActivitySpecialTripBillList struct {
 	Content             string    `description:"内容"`
 }
 
-
 func GetCygxActivitySpecialTripBillList(condition string, pars []interface{}) (item []*CygxActivitySpecialTripBillList, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -80,4 +79,113 @@ func GetCygxActivitySpecialTripBillList(condition string, pars []interface{}) (i
 			1 = 1` + condition
 	_, err = o.Raw(sql, pars).QueryRows(&item)
 	return
-}
+}
+
+type SpecialBillInitBig struct {
+	ApprovalTime time.Time
+	CompanyId    int
+	CompanyName  string
+}
+
+func GetActivitySecialTirpBillForInit(packageType int) (item []*SpecialBillInitBig, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT
+	a.approve_time,d.company_id,c.company_name 
+FROM
+	company_approval a
+	INNER JOIN company_contract b ON a.company_contract_id = b.company_contract_id
+	INNER JOIN company c ON a.company_id = c.company_id
+	INNER JOIN cygx_company_user_type d ON a.company_id = d.company_id
+WHERE
+	a.apply_method = 1 
+	AND a.product_id = 2 
+	AND a.approve_status = '已审批' 
+	AND b.product_id = 2 
+	AND d.package_type = ?
+	GROUP BY d.company_id `
+	_, err = o.Raw(sql, packageType).QueryRows(&item)
+	return
+}
+
+type SpecialBillInitNotBig struct {
+	ApprovalTime       time.Time
+	CompanyId          int
+	CompanyName        string
+	ChartPermissionIds string
+}
+
+func GetActivitySecialTirpBillForInitNotBig() (item []*SpecialBillInitNotBig, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT
+	a.approve_time,d.company_id,d.company_name,GROUP_CONCAT(DISTINCT c.chart_permission_id) AS chart_permission_ids
+FROM
+	company_approval a
+	INNER JOIN company_contract b ON a.company_contract_id = b.company_contract_id
+	INNER JOIN company_report_permission c ON a.company_id = c.company_id 
+	INNER JOIN company d ON a.company_id = d.company_id
+WHERE
+	a.apply_method = 1 
+	AND a.product_id = 2 
+	AND a.approve_status = '已审批' 
+	AND b.product_id = 2 
+	AND c.product_id = 2
+	AND c.is_upgrade = 1
+	GROUP BY d.company_id `
+	_, err = o.Raw(sql).QueryRows(&item)
+	return
+}
+
+// 批量添加
+func AddCygxActivitySpecialTripBillMulti(items []*CygxActivitySpecialTripBill) (err error) {
+	o := orm.NewOrm()
+	if len(items) > 0 {
+		//批量添加
+		_, err = o.InsertMulti(len(items), items)
+	}
+	return
+}
+
+type SpecialBillInitReduce struct {
+	CreateTime       time.Time
+	CompanyId          int
+	CompanyName        string
+}
+
+func GetActivitySecialTirpBillForReduce() (item []*SpecialBillInitReduce, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT
+	a.create_time,a.company_id,c.company_name 
+FROM
+	company_operation_record a
+	INNER JOIN company c ON a.company_id = c.company_id
+	INNER JOIN company_report_permission e ON a.company_id = e.company_id 
+WHERE
+	a.operation = 'try_out' 
+	AND a.product_id = 2 
+	AND e.status NOT IN ('正式','永续')
+	GROUP BY a.company_id `
+	_, err = o.Raw(sql).QueryRows(&item)
+	return
+}
+
+func GetCygxActivitySpecialTripBillForInit() (item []*CygxActivitySpecialTripBill, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM cygx_activity_special_trip_bill GROUP BY company_id `
+	_, err = o.Raw(sql).QueryRows(&item)
+	return
+}
+
+func GetCygxActivitySpecialTripBillByCompanyIdForInit(companyId int) (item []*CygxActivitySpecialTripBill, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM cygx_activity_special_trip_bill WHERE company_id = ? ORDER BY create_time DESC  `
+	_, err = o.Raw(sql, companyId).QueryRows(&item)
+	return
+}
+
+
+func UpdateCygxActivitySpecialTripBillByCompanyIdForInit(total string, id int) (err error) {
+	o := orm.NewOrm()
+	sql := ` UPDATE cygx_activity_special_trip_bill SET total=? WHERE id = ?  `
+	_, err = o.Raw(sql,total, id).Exec()
+	return
+}

+ 32 - 0
models/company_activity_trip.go

@@ -140,4 +140,36 @@ WHERE
 	AND STATUS = '正式' `
 	_, err = o.Raw(sql, companyId, productId).QueryRows(&items)
 	return
+}
+
+// GetCompanyReportPermissionByCompanyIdAndProductIdForInit 获取权限类型-初始化用,去掉正式的判断
+func GetCompanyReportPermissionByCompanyIdAndProductIdForInit(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 NOT IN ('正式','永续') GROUP BY re.chart_permission_id `
+	_, err = o.Raw(sql, companyId, productId).QueryRows(&items)
+	return
+}
+
+// GetCompanyReportPermissionByCompanyIdAndProductIdForInit 获取权限类型-初始化total用,去掉权限的判断
+func GetCompanyReportPermissionByCompanyIdAndProductIdForInit2(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 = ? 
+	 `
+	_, err = o.Raw(sql, companyId, productId).QueryRows(&items)
+	return
 }

+ 6 - 0
models/cygx_activity_special_points_company.go

@@ -36,4 +36,10 @@ func GetCygxActivitySpecialInheritPointsByCompanyId(companyId int) (list []*Cygx
 	sql := ` SELECT * FROM cygx_activity_special_inherit_points_company WHERE company_id = ?  `
 	_, err = o.Raw(sql,companyId).QueryRows(&list)
 	return
+}
+func DelCygxActivitySpecialInheritPointsByCompanyId(companyId int) (err error) {
+	o := orm.NewOrm()
+	sql := ` DELETE FROM cygx_activity_special_inherit_points_company WHERE company_id = ?  `
+	_, err = o.Raw(sql,companyId).Exec()
+	return
 }

+ 1 - 0
models/db.go

@@ -156,6 +156,7 @@ func init() {
 		new(CygxActivityPointsBill),
 		new(CygxActivityPointsCompany),
 		new(CygxTagHistory),
+		new(CygxActivitySpecialInheritPointsCompany),
 	)
 	// 记录ORM查询日志
 	orm.Debug = true

+ 245 - 0
services/activity_special.go

@@ -1392,3 +1392,248 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 	}
 	return
 }
+
+
+// 清零初始化用-去掉了正式用户的判断
+func GetChartPermissionSpecialSurplusByCompanyForInit(companyId int) (userType int, tripRemaining int, mapChartName map[string]int, err error) {
+	companyDetail, e := models.GetCompanyDetailByIdGroup(companyId)
+	if e != nil {
+		err = errors.New("GetCompanyDetailByIdGroup, Err: " + e.Error())
+	}
+	if companyDetail == nil {
+		return
+	}
+	//if companyDetail.Status != "永续" && companyDetail.Status != "正式" {
+	//	return
+	//}
+
+	//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(utils.FormatYearDate)+"-01-01")
+	listTripBill, e := models.GetCygxActivitySpecialTripBillList(condition, pars)
+	if e != nil {
+		err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
+		return
+	}
+	// 获取继承点数
+	inheritList, e := models.GetCygxActivitySpecialInheritPointsByCompanyId(companyId)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCygxActivitySpecialInheritPointsByCompanyId, Err: " + e.Error())
+	}
+	if userType == 2 {
+
+		var tripBillNum int
+		for _, v := range listTripBill {
+			//if v.ActivityId == 0 {
+			//	continue
+			//}
+			tripBillNum += v.BillDetailed
+		}
+		if len(inheritList) > 0 {
+			for _, v := range inheritList {
+				if v.ChartPermissionId == 0 {
+					tripBillNum += v.Points
+				}
+			}
+		}
+
+		tripRemaining = tripBillNum
+		if tripRemaining < 0 {
+			tripRemaining = 0
+		}
+
+	} else {
+		list, e := models.GetCompanyReportPermissionByCompanyIdAndProductIdForInit(companyId, 2)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = errors.New("GetCompanyReportPermissionByCompanyIdAndProductIdForInit, Err: " + e.Error())
+		}
+		if len(list) == 0 {
+			return
+		}
+		var chartPermissionIdSlice []string
+		mapChartName = make(map[string]int)
+		mapUpgradeId := make(map[int]int)
+		mapPermissionNameTrip := make(map[string]int)
+		mapInheritChartName := 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 {
+			chartList, e = models.GetChartPermissionByIds(chartPermissionIdSlice)
+			if e != nil {
+				err = errors.New("获取品种信息失败, Err:" + e.Error())
+				return
+			}
+		}
+
+		if len(chartList) == 0 {
+			return
+		}
+
+		for _, v := range listTripBill {
+			if v.ActivityId == 0 {
+				continue
+			}
+			mapPermissionNameTrip[v.ChartPermissionName] += v.BillDetailed
+		}
+		for _, v := range chartList {
+			if _, ok := chartNumMap[v.ChartPermissionId]; ok{
+				//如果是升级则加点
+				if _, ok := mapUpgradeId[v.ChartPermissionId]; ok {
+					mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.PermissionName]
+				} else {
+					mapChartName[v.PermissionName] = mapPermissionNameTrip[v.PermissionName]
+				}
+			}
+		}
+		// 通过继承获得的加点
+		for _, v := range inheritList {
+			mapInheritChartName[v.ChartPermissionName] = v.Points
+		}
+		for _, v := range mapChartName {
+			if v > 0 {
+				tripRemaining += v
+			}
+		}
+	}
+
+	return
+}
+
+// total初始化用-去掉了正式用户的判断
+func GetChartPermissionSpecialSurplusByCompanyForInitTotal(companyId int) (userType int, tripRemaining int, mapChartName map[string]int, err error) {
+	companyDetail, e := models.GetCompanyDetailByIdGroup(companyId)
+	if e != nil {
+		err = errors.New("GetCompanyDetailByIdGroup, Err: " + e.Error())
+	}
+	if companyDetail == nil {
+		return
+	}
+	//if companyDetail.Status != "永续" && companyDetail.Status != "正式" {
+	//	return
+	//}
+
+	//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(utils.FormatYearDate)+"-01-01")
+	listTripBill, e := models.GetCygxActivitySpecialTripBillList(condition, pars)
+	if e != nil {
+		err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
+		return
+	}
+	// 获取继承点数
+	inheritList, e := models.GetCygxActivitySpecialInheritPointsByCompanyId(companyId)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCygxActivitySpecialInheritPointsByCompanyId, Err: " + e.Error())
+	}
+	if userType == 2 {
+
+		var tripBillNum int
+		for _, v := range listTripBill {
+			//if v.ActivityId == 0 {
+			//	continue
+			//}
+			tripBillNum += v.BillDetailed
+		}
+		if len(inheritList) > 0 {
+			for _, v := range inheritList {
+				if v.ChartPermissionId == 0 {
+					tripBillNum += v.Points
+				}
+			}
+		}
+
+		tripRemaining = tripBillNum
+		if tripRemaining < 0 {
+			tripRemaining = 0
+		}
+
+	} else {
+		list, e := models.GetCompanyReportPermissionByCompanyIdAndProductIdForInit2(companyId, 2)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = errors.New("GetCompanyReportPermissionByCompanyIdAndProductIdForInit, Err: " + e.Error())
+		}
+		if len(list) == 0 {
+			return
+		}
+		var chartPermissionIdSlice []string
+		mapChartName = make(map[string]int)
+		mapUpgradeId := make(map[int]int)
+		mapPermissionNameTrip := make(map[string]int)
+		mapInheritChartName := 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 {
+			chartList, e = models.GetChartPermissionByIds(chartPermissionIdSlice)
+			if e != nil {
+				err = errors.New("获取品种信息失败, Err:" + e.Error())
+				return
+			}
+		}
+
+		if len(chartList) == 0 {
+			return
+		}
+
+		for _, v := range listTripBill {
+			if v.ActivityId == 0 {
+				continue
+			}
+			mapPermissionNameTrip[v.ChartPermissionName] += v.BillDetailed
+		}
+		for _, v := range chartList {
+			if _, ok := chartNumMap[v.ChartPermissionId]; ok{
+				//如果是升级则加点
+				if _, ok := mapUpgradeId[v.ChartPermissionId]; ok {
+					mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.PermissionName]
+				} else {
+					mapChartName[v.PermissionName] = mapPermissionNameTrip[v.PermissionName]
+				}
+			}
+		}
+		// 通过继承获得的加点
+		for _, v := range inheritList {
+			mapInheritChartName[v.ChartPermissionName] = v.Points
+		}
+		for _, v := range mapChartName {
+			if v > 0 {
+				tripRemaining += v
+			}
+		}
+	}
+
+	return
+}

+ 281 - 0
services/init_10.9.1.go

@@ -0,0 +1,281 @@
+package services
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_cygx/models"
+	"hongze/hongze_cygx/utils"
+	"strconv"
+	"strings"
+)
+
+// 大套餐的
+func InitActivitySpecialTripBillBig() (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+		}
+	}()
+	// 70w 16次
+	list70, err := models.GetActivitySecialTirpBillForInit(1)
+	if err != nil {
+		return
+	}
+	items70 := make([]*models.CygxActivitySpecialTripBill, 0)
+	for _, v := range list70 {
+		itemBill := new(models.CygxActivitySpecialTripBill)
+		itemBill.CreateTime = v.ApprovalTime
+		itemBill.CompanyId = v.CompanyId
+		itemBill.CompanyName = v.CompanyName
+		itemBill.Source = 2
+		itemBill.DoType = 2
+		itemBill.Way = 3
+		itemBill.Content = "70w大套餐转正"
+		itemBill.BillDetailed = 16
+		itemBill.Total = strconv.Itoa(itemBill.BillDetailed) + "次"
+		items70 = append(items70, itemBill)
+		fmt.Println("CompanyId: ", v.CompanyId)
+		fmt.Println("CompanyName: ", v.CompanyName)
+	}
+	err = models.AddCygxActivitySpecialTripBillMulti(items70)
+	if err != nil {
+		return
+	}
+
+	// 45w 10次
+	list45, err := models.GetActivitySecialTirpBillForInit(2)
+	if err != nil {
+		return
+	}
+	items45 := make([]*models.CygxActivitySpecialTripBill, 0)
+	for _, v := range list45 {
+		itemBill := new(models.CygxActivitySpecialTripBill)
+		itemBill.CreateTime = v.ApprovalTime
+		itemBill.CompanyId = v.CompanyId
+		itemBill.CompanyName = v.CompanyName
+		itemBill.Source = 2
+		itemBill.DoType = 2
+		itemBill.Way = 3
+		itemBill.Content = "45w大套餐转正"
+		itemBill.BillDetailed = 10
+		itemBill.Total = strconv.Itoa(itemBill.BillDetailed) + "次"
+		items45 = append(items45, itemBill)
+		fmt.Println("CompanyId: ", v.CompanyId)
+		fmt.Println("CompanyName: ", v.CompanyName)
+	}
+	err = models.AddCygxActivitySpecialTripBillMulti(items45)
+	if err != nil {
+		return
+	}
+	return
+}
+
+// 非大套餐的,根据行业权限添加
+func InitActivitySpecialTripBillNotBig() (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+		}
+	}()
+	list, err := models.GetActivitySecialTirpBillForInitNotBig()
+	if err != nil {
+		return
+	}
+	items := make([]*models.CygxActivitySpecialTripBill, 0)
+	for _, item := range list {
+		chartPermissionIdSlice := strings.Split(item.ChartPermissionIds, ",")
+
+		mapChartName := make(map[string]int)
+		mapPermissionNameTrip := make(map[string]int)
+
+		chartList, e := models.GetChartPermissionByIds(chartPermissionIdSlice)
+		if e != nil {
+			err = errors.New("获取品种信息失败, Err:" + e.Error())
+			return
+		}
+
+		for _, v := range chartList {
+			mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.PermissionName]
+		}
+		itemBill := new(models.CygxActivitySpecialTripBill)
+		itemBill.CreateTime = item.ApprovalTime
+		itemBill.CompanyId = item.CompanyId
+		itemBill.CompanyName = item.CompanyName
+		itemBill.Source = 2
+		itemBill.DoType = 2
+		itemBill.Way = 3
+		for k, v := range mapChartName {
+			if v > 0 {
+				itemBill.BillDetailed += v
+				itemBill.Total += k + strconv.Itoa(v) + "次+"
+			}
+		}
+		itemBill.Content = "行业升级套餐转正"
+		itemBill.Total = strings.TrimRight(itemBill.Total, "+")
+		items = append(items, itemBill)
+		fmt.Println("CompanyId: ", item.CompanyId)
+		fmt.Println("CompanyName: ", item.CompanyName)
+	}
+	err = models.AddCygxActivitySpecialTripBillMulti(items)
+	if err != nil {
+		return
+	}
+	return
+}
+
+// 到期清零和加入继承表
+func ActivitySpecialCompanyTryOutReduce() (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+		}
+	}()
+
+	list, err := models.GetActivitySecialTirpBillForReduce()
+	if err != nil {
+		return
+	}
+	for _, v := range list {
+		userType, tripRemaining, mapChartName, e := GetChartPermissionSpecialSurplusByCompanyForInit(v.CompanyId)
+		if e != nil {
+			err = e
+			fmt.Println("err :", err)
+			continue
+		}
+
+		itemBill := new(models.CygxActivitySpecialTripBill)
+		itemBill.CreateTime = v.CreateTime
+		itemBill.Source = 2
+		itemBill.DoType = 1
+		itemBill.Way = 3
+		itemBill.BillDetailed = -tripRemaining
+		itemBill.CompanyId = v.CompanyId
+		itemBill.CompanyName = v.CompanyName
+		itemBill.Content = "到期清零"
+		itemBill.Total = "0"
+		if tripRemaining == 0 {
+			continue
+		}
+		err = models.AddCygxActivitySpecialTripBill(itemBill)
+		if err != nil {
+			return
+		}
+		fmt.Println("CompanyId: ", v.CompanyId)
+		fmt.Println("CompanyName: ", v.CompanyName)
+		// 删除公司之前的继承表
+		err = models.DelCygxActivitySpecialInheritPointsByCompanyId(v.CompanyId)
+		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}
+		//添加继承点数表
+		inheritItems := make([]*models.CygxActivitySpecialInheritPointsCompany, 0)
+		if userType == 2 {
+			inheritItem := new(models.CygxActivitySpecialInheritPointsCompany)
+			inheritItem.CompanyId = v.CompanyId
+			inheritItem.CompanyName = v.CompanyName
+			inheritItem.CreateTime = v.CreateTime
+			inheritItem.ModifyTime = v.CreateTime
+			inheritItem.Points = tripRemaining
+			if tripRemaining > 0 {
+				inheritItems = append(inheritItems, inheritItem)
+			}
+		} else {
+			for k, num := range mapChartName {
+				inheritItem := new(models.CygxActivitySpecialInheritPointsCompany)
+				inheritItem.CompanyId = v.CompanyId
+				inheritItem.CompanyName = v.CompanyName
+				inheritItem.CreateTime = v.CreateTime
+				inheritItem.ModifyTime = v.CreateTime
+				inheritItem.Points = num
+				inheritItem.ChartPermissionName = k
+				if _, ok := chartMap[k]; ok {
+					inheritItem.ChartPermissionId = chartMap[k]
+				}
+				if num > 0 {
+					inheritItems = append(inheritItems, inheritItem)
+				}
+			}
+		}
+		if len(inheritItems) > 0 {
+			err = models.AddCygxActivitySpecialInheritPointsCompanyMulti(inheritItems)
+			if err != nil {
+				return
+			}
+		}
+	}
+
+	return
+}
+
+// 补充total
+func ActivitySpecialBillTotalInit() (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+		}
+	}()
+
+	billList, err := models.GetCygxActivitySpecialTripBillForInit()
+	if err != nil {
+		return
+	}
+	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}
+
+	for _, billItem := range billList {
+		userType, tripRemaining, mapChartName, e := GetChartPermissionSpecialSurplusByCompanyForInitTotal(billItem.CompanyId)
+		if e != nil {
+			err = e
+			continue
+		}
+		fmt.Println("CompanyId: ", billItem.CompanyId)
+		fmt.Println("CompanyName: ", billItem.CompanyName)
+		list, e := models.GetCygxActivitySpecialTripBillByCompanyIdForInit(billItem.CompanyId)
+		if e != nil {
+			err = e
+			return
+		}
+
+		if userType == 2 {
+			for i, v := range list {
+				if v.ActivityId == 0 {
+					continue
+				}
+				if i == 0 {
+					v.Total = strconv.Itoa(tripRemaining) + "次"
+				} else {
+					v.Total = strconv.Itoa(tripRemaining+v.BillDetailed) + "次"
+				}
+
+				fmt.Println("v.Total:",v.Total)
+				err = models.UpdateCygxActivitySpecialTripBillByCompanyIdForInit(v.Total, v.Id)
+				if err != nil {
+					return
+				}
+			}
+		} else {
+			for i, v := range list {
+				if chart, ok := chartMap[v.ChartPermissionId]; ok {
+					v.Total = ``
+					for k, num := range mapChartName {
+						if k == chart {
+							if i > 0 {
+								num += v.BillDetailed
+							}
+						}
+						v.Total += k + strconv.Itoa(num) + "次+"
+					}
+					v.Total = strings.TrimRight(v.Total, "+")
+					fmt.Println("v.Total:",v.Total)
+					err = models.UpdateCygxActivitySpecialTripBillByCompanyIdForInit(v.Total, v.Id)
+					if err != nil {
+						return
+					}
+				}
+			}
+		}
+
+	}
+
+	return
+}