Ver código fonte

更新回款表 业绩统计时间

wcc 9 meses atrás
pai
commit
b87215f115

+ 4 - 4
account_order/account_order_change.go

@@ -32,7 +32,7 @@ func allDataOrderSaleRecordForAccountOrderChange() {
 	}()
 
 	var total int64
-	JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("state IN  ?", []string{"1", "-1"}).Where("autoUpdate < ?", "2024-10-16").Count(&total)
+	JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("state IN  ?", []string{"1", "-1"}).Where("autoUpdate < ?", endTime).Count(&total)
 	log.Info("allDataOrderSaleRecordForAccountOrderChange", zap.Any("OrderSaleRecord 总数是", total))
 
 	rowsPerPage := 100                           // 每页的数量
@@ -40,7 +40,7 @@ func allDataOrderSaleRecordForAccountOrderChange() {
 
 	for page := 0; page < totalPages; page++ {
 		offset := page * rowsPerPage
-		rows, err := JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("state IN  ?", []string{"1", "-1"}).Where("autoUpdate < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		rows, err := JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("state IN  ?", []string{"1", "-1"}).Where("autoUpdate < ?", endTime).Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
 		defer func() {
 			err = rows.Close()
 			if err != nil {
@@ -308,7 +308,7 @@ func allDataRefundRecordForAccountOrderChange() {
 	}()
 
 	var total int64
-	AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", "2024-10-16").Count(&total)
+	AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", endTime).Count(&total)
 	log.Info("allDataRefundRecordForAccountOrderChange", zap.Any("RefundRecord 退款表 总数是", total))
 
 	rowsPerPage := 100                           // 每页的数量
@@ -316,7 +316,7 @@ func allDataRefundRecordForAccountOrderChange() {
 
 	for page := 0; page < totalPages; page++ {
 		offset := page * rowsPerPage
-		rows, err := AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		rows, err := AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", endTime).Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
 		defer func() {
 			err = rows.Close()
 			if err != nil {

+ 34 - 12
account_order/account_return.go

@@ -26,14 +26,14 @@ func allDataReturnMoneyRecordForAccountReturn() {
 	}()
 
 	var total int64
-	AnalysisDB.Debug().Model(&ReturnMoneyRecord{}).Where("state = ?", 1).Where("autoUpdate < ?", "2024-10-16").Count(&total)
+	AnalysisDB.Debug().Model(&ReturnMoneyRecord{}).Where("state = ?", 1).Where("autoUpdate < ?", endTime).Count(&total)
 	log.Info("allDataReturnMoneyRecordForAccountReturn", zap.Any("RefundRecord 退款表 总数是", total))
 
 	rowsPerPage := 100                           // 每页的数量
 	totalPages := (int(total) / rowsPerPage) + 1 //总页数
 	for page := 0; page < totalPages; page++ {
 		offset := page * rowsPerPage
-		rows, err := AnalysisDB.Debug().Model(&ReturnMoneyRecord{}).Where("state = ?", 1).Where("autoUpdate < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		rows, err := AnalysisDB.Debug().Model(&ReturnMoneyRecord{}).Where("state = ?", 1).Where("autoUpdate < ?", endTime).Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
 		defer func() {
 			err = rows.Close()
 			if err != nil {
@@ -45,6 +45,7 @@ func allDataReturnMoneyRecordForAccountReturn() {
 			var account_return DwdFAccountReturn      //归集后的剑鱼回款表
 			var return_money_record ReturnMoneyRecord //原来回款表
 			var order_sale_record OrderSaleRecord     // 原来业绩表更
+			var order_sale_record2 OrderSaleRecord    // 原来业绩表更2
 			//var account_order_change DwdFAccountOrderChange // 归集后的业绩变更表
 			var data_exOrder DataexportOrder //原来的订单表
 			//var account_order DwdFAccountOrder              //归集后的订单表
@@ -118,7 +119,17 @@ func allDataReturnMoneyRecordForAccountReturn() {
 					account_return.ReturnType = "对公转账"
 				}
 				//业绩统计日期
-				account_return.SaleTime = data_exOrder.SaleTime              //业绩统计日期
+				account_return.SaleTime = data_exOrder.SaleTime //业绩统计日期
+				//归集后的回款表-业绩统计日期。如果订单表的sale_time 值为空,就用order_sale_record.
+				//业绩统计时间,去时间最早的一条并且state!=2和-2;
+				if data_exOrder.SaleTime == nil {
+					//3.业绩变更表- order_sale_record
+					err = JianyuDB.Where("ordercode =? AND state !=2 AND state !=-2 ", return_money_record.OrderCode).Order("id asc").First(&order_sale_record2).Error
+					if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+						log.Info("allDataRefundRecordForAccountOrderChange", zap.Error(err))
+					}
+					account_return.SaleTime = order_sale_record2.StatisticsTime //业绩统计日期
+				}
 				account_return.ReturnTime = return_money_record.ReturnTime   //回款日期
 				account_return.ReturnMoney = return_money_record.ReturnMoney //回款金额
 				//签约主体
@@ -173,11 +184,11 @@ func allDataReturnMoneyRecordForAccountReturn() {
 				//退款状态
 				switch data_exOrder.RefundStatus {
 				case 1:
-					account_return.RefundStatus = "全额款"
+					account_return.RefundStatus = "全额退款"
 				case 2:
-					account_return.RefundStatus = "部分款"
+					account_return.RefundStatus = "部分退款"
 				case 0:
-					account_return.RefundStatus = "未款"
+					account_return.RefundStatus = "未退款"
 				}
 				//关联方式,operate_type;1-手动回款 2-自动回款
 				if return_money_record.OperateType == 1 {
@@ -215,14 +226,14 @@ func allDataDataexportOrderForAccountReturn() {
 		log.Info("aaaaaaaaaaaa")
 	}()
 	var total int64
-	AnalysisDB.Debug().Model(&DataexportOrder{}).Where("order_status =? AND is_backstage_order =? AND NOT (pay_way =? AND product_type =?)", 1, 0, "transferAccounts", "VIP订阅").Where("autoUpdate < ?", "2024-10-16").Count(&total)
+	AnalysisDB.Debug().Model(&DataexportOrder{}).Where("order_status =? AND is_backstage_order =? AND NOT (pay_way =? AND product_type =?)", 1, 0, "transferAccounts", "VIP订阅").Where("autoUpdate < ?", endTime).Count(&total)
 	log.Info("allDataDataexportOrderForAccountReturn", zap.Any("dataexport_order 订单表 ,order_status=1 and is_backstage_order=0 ,\n\t并排除pay_way=’transferAccounts’ and product_type=’VIP订阅’,总数是", total))
 
 	rowsPerPage := 100                           // 每页的数量
 	totalPages := (int(total) / rowsPerPage) + 1 //总页数
 	for page := 0; page < totalPages; page++ {
 		offset := page * rowsPerPage
-		rows, err := AnalysisDB.Debug().Model(&DataexportOrder{}).Where("order_status =? AND is_backstage_order =? AND NOT (pay_way =? AND product_type =?)", 1, 0, "transferAccounts", "VIP订阅").Where("autoUpdate < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		rows, err := AnalysisDB.Debug().Model(&DataexportOrder{}).Where("order_status =? AND is_backstage_order =? AND NOT (pay_way =? AND product_type =?)", 1, 0, "transferAccounts", "VIP订阅").Where("autoUpdate < ?", endTime).Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
 		defer func() {
 			err = rows.Close()
 			if err != nil {
@@ -234,7 +245,8 @@ func allDataDataexportOrderForAccountReturn() {
 			var data_exOrder DataexportOrder     //原来的订单表
 			var account_return DwdFAccountReturn //归集后的剑鱼回款表
 			//var return_money_record ReturnMoneyRecord //原来回款表
-			var order_sale_record OrderSaleRecord // 原来业绩表更
+			var order_sale_record OrderSaleRecord  // 原来业绩表更
+			var order_sale_record2 OrderSaleRecord // 原来业绩表更
 			// ScanRows 方法用于将一行记录扫描至结构体
 			err = AnalysisDB.ScanRows(rows, &data_exOrder)
 			if err != nil {
@@ -299,6 +311,16 @@ func allDataDataexportOrderForAccountReturn() {
 				//
 
 				account_return.SaleTime = data_exOrder.SaleTime
+				//归集后的回款表-业绩统计日期。如果订单表的sale_time 值为空,就用order_sale_record.
+				//业绩统计时间,去时间最早的一条并且state!=2和-2;
+				if data_exOrder.SaleTime == nil {
+					//3.业绩变更表- order_sale_record
+					err = JianyuDB.Where("ordercode =? AND state !=2 AND state !=-2 ", data_exOrder.OrderCode).Order("id asc").First(&order_sale_record2).Error
+					if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+						log.Info("allDataRefundRecordForAccountOrderChange", zap.Error(err))
+					}
+					account_return.SaleTime = order_sale_record2.StatisticsTime //业绩统计日期
+				}
 				account_return.ReturnTime = data_exOrder.PayTime
 				account_return.ReturnMoney = util.IntAll(filterMap["originalAmount"]) //回款金额
 				//签约主体
@@ -345,11 +367,11 @@ func allDataDataexportOrderForAccountReturn() {
 				//退款状态-refund_status
 				switch data_exOrder.RefundStatus {
 				case 1:
-					account_return.RefundStatus = "全额款"
+					account_return.RefundStatus = "全额退款"
 				case 2:
-					account_return.RefundStatus = "部分款"
+					account_return.RefundStatus = "部分退款"
 				case 0:
-					account_return.RefundStatus = "未款"
+					account_return.RefundStatus = "未退款"
 				}
 				account_return.OperateType = "自动回款"           //关联方式
 				account_return.OperatePerson = "jianyu@admin" //创建人

+ 4 - 4
account_order/account_return_change.go

@@ -30,14 +30,14 @@ func allDataOrderSaleRecordForAccountReturnChange() {
 		log.Info("allDataOrderSaleRecordForAccountReturnChange,数据处理完毕")
 	}()
 	var total int64
-	JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("autoUpdate < ?", "2024-10-16").Where("change_reason IN ? AND state IN ? ", []string{"业绩红冲", "销售撞单", "补录销售信息"}, []int{-1, 1}).Count(&total)
+	JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("autoUpdate < ?", endTime).Where("change_reason IN ? AND state IN ? ", []string{"业绩红冲", "销售撞单", "补录销售信息"}, []int{-1, 1}).Count(&total)
 	log.Info("allDataOrderSaleRecordForAccountReturnChange", zap.Any("业绩变更表中取变更类型change_reason是:业绩红冲、销售撞单、补录销售信息,且state in (-1,1),总数是", total))
 
 	rowsPerPage := 100                           //每页的数量
 	totalPages := (int(total) / rowsPerPage) + 1 //总页数
 	for page := 0; page < totalPages; page++ {
 		offset := page * rowsPerPage
-		rows, err := JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("autoUpdate < ?", "2024-10-16").Where("change_reason IN ? AND state IN ? ", []string{"业绩红冲", "销售撞单", "补录销售信息"}, []int{-1, 1}).Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		rows, err := JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("autoUpdate < ?", endTime).Where("change_reason IN ? AND state IN ? ", []string{"业绩红冲", "销售撞单", "补录销售信息"}, []int{-1, 1}).Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
 		defer func() {
 			err = rows.Close()
 			if err != nil {
@@ -220,7 +220,7 @@ func allDataRefundRecordForAccountReturnChange() {
 		log.Info("allDataRefundRecordForAccountReturnChange", zap.String("数据处理完毕", ""))
 	}()
 	var total int64
-	AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", "2024-10-16").Count(&total)
+	AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", endTime).Count(&total)
 	log.Info("allDataRefundRecordForAccountReturnChange", zap.Any("总数是", total))
 
 	rowsPerPage := 100                           //每页的数量
@@ -228,7 +228,7 @@ func allDataRefundRecordForAccountReturnChange() {
 
 	for page := 0; page < totalPages; page++ {
 		offset := page * rowsPerPage
-		rows, err := AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		rows, err := AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", endTime).Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
 		defer func() {
 			err = rows.Close()
 			if err != nil {

+ 33 - 5
account_order/main.go

@@ -9,6 +9,7 @@ import (
 	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
 	"jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
 	"jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
+	"sync"
 	"time"
 )
 
@@ -21,11 +22,38 @@ var (
 	JianyuSubjectDB *gorm.DB
 )
 
+var endTime = "2024-11-02"
+
 func main() {
-	//dealAllDataAccountOrder() // 1.处理归集后-存量剑鱼订单表-dwd_f_account_order
+	var wg sync.WaitGroup
+	wg.Add(4)
+	go func() {
+		defer wg.Done()
+		dealAllDataAccountOrder() // 1.处理归集后-存量剑鱼订单表-dwd_f_account_order
+	}()
+
+	go func() {
+		defer wg.Done()
+		dealAllDataAccountOrderChangeRecord() //2.处理归集后-存量业绩表更表-dwd_f_account_order_change
+	}()
+
+	go func() {
+		defer wg.Done()
+		dealAllDataAccountReturn() //3.处理归集后-存量剑鱼回款表-dwd_f_account_return
+	}()
+
+	go func() {
+		defer wg.Done()
+		dealAllDataAccountReturnChange() //4.处理归集后-剑鱼回款变更表-dwd_f_account_return_change
+	}()
+
+	wg.Wait()
+	log.Info("所有数据处理完毕")
+	//
+	//dealAllDataAccountOrder()             // 1.处理归集后-存量剑鱼订单表-dwd_f_account_order
 	//dealAllDataAccountOrderChangeRecord() //2.处理归集后-存量业绩表更表-dwd_f_account_order_change
-	dealAllDataAccountReturn() //3.处理归集后-存量剑鱼回款表-dwd_f_account_return
-	//dealAllDataAccountReturnChange() //4.处理归集后-剑鱼回款变更表-dwd_f_account_return_change
+	//dealAllDataAccountReturn()            //3.处理归集后-存量剑鱼回款表-dwd_f_account_return
+	//dealAllDataAccountReturnChange()      //4.处理归集后-剑鱼回款变更表-dwd_f_account_return_change
 }
 
 // dealAllDataAccountOrder 处理归集后-存量剑鱼订单表-dwd_f_account_order
@@ -38,7 +66,7 @@ func dealAllDataAccountOrder() {
 	}()
 
 	var total int64
-	AnalysisDB.Debug().Model(&DataexportOrder{}).Where("autoUpdate < ?", "2024-10-16").Count(&total)
+	AnalysisDB.Debug().Model(&DataexportOrder{}).Where("autoUpdate < ?", endTime).Count(&total)
 	log.Info("dealAllDataAccountOrder", zap.Any("总数是", total))
 
 	rowsPerPage := 100                           // 每页的数量
@@ -46,7 +74,7 @@ func dealAllDataAccountOrder() {
 
 	for page := 0; page < totalPages; page++ {
 		offset := page * rowsPerPage
-		rows, err := AnalysisDB.Debug().Model(&DataexportOrder{}).Where("autoUpdate < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		rows, err := AnalysisDB.Debug().Model(&DataexportOrder{}).Where("autoUpdate < ?", endTime).Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
 		defer func() {
 			err = rows.Close()
 			if err != nil {