diff --git a/project/data-sync/main.go b/project/data-sync/main.go index 4328795f..6358009a 100644 --- a/project/data-sync/main.go +++ b/project/data-sync/main.go @@ -1,7 +1,5 @@ package main -import "github.com/mao888/golang-guide/project/data-sync/mongo-to-mysql/art_need" - func main() { // mongo_to_mysql.RunGame() @@ -97,5 +95,7 @@ func main() { // 美术需求默认描述表 // Mongo/plat_console/artneeds.main_desc 数据迁移到 ARK cruiser_console/base_desc_template - art_need.RunBaseDescTemplate() + //art_need.RunBaseDescTemplate() + + // } diff --git a/project/data-sync/mongo-to-mysql/art_need/base_desc_template.go b/project/data-sync/mongo-to-mysql/art_need/base_desc_template.go index 7e72daec..1168b7d2 100644 --- a/project/data-sync/mongo-to-mysql/art_need/base_desc_template.go +++ b/project/data-sync/mongo-to-mysql/art_need/base_desc_template.go @@ -7,6 +7,8 @@ import ( "go.mongodb.org/mongo-driver/bson" ) +// 1000361 + func RunBaseDescTemplate() { // 1、建立连接 db := db2.MongoClient.Database("plat_console") diff --git a/project/data-sync/mongo-to-mysql/art_need/bean_mongo.go b/project/data-sync/mongo-to-mysql/art_need/bean_mongo.go index 17778466..965a37c6 100644 --- a/project/data-sync/mongo-to-mysql/art_need/bean_mongo.go +++ b/project/data-sync/mongo-to-mysql/art_need/bean_mongo.go @@ -101,7 +101,7 @@ type ArtNeedDrafts struct { UpdateTime *time.Time `json:"update_time" bson:"update_time"` } -type ArtNeedLogs struct { +type MArtNeedLogs struct { ID int `json:"_id" bson:"_id"` CompanyId int `json:"company_id" bson:"company_id"` //公司id GameId int `json:"game_id" bson:"game_id"` //游戏id diff --git a/project/data-sync/mongo-to-mysql/art_need/bean_mysql.go b/project/data-sync/mongo-to-mysql/art_need/bean_mysql.go index 68c41442..2e53b969 100644 --- a/project/data-sync/mongo-to-mysql/art_need/bean_mysql.go +++ b/project/data-sync/mongo-to-mysql/art_need/bean_mysql.go @@ -1,6 +1,6 @@ package art_need -// ArtNeed 美术需求主表 mapped from table cruiser_console +// ArtNeed 美术需求主表 mapped from table cruiser_console type ArtNeed struct { ID int32 `gorm:"column:id;primaryKey;autoIncrement:true" json:"id"` // 需求id GameID string `gorm:"column:game_id;not null" json:"game_id"` // 游戏ID diff --git a/project/data-sync/mongo-to-mysql/art_need/supply_desc.go b/project/data-sync/mongo-to-mysql/art_need/supply_desc.go index f175180f..97e0fb4b 100644 --- a/project/data-sync/mongo-to-mysql/art_need/supply_desc.go +++ b/project/data-sync/mongo-to-mysql/art_need/supply_desc.go @@ -1 +1,58 @@ package art_need + +import ( + "context" + "fmt" + "github.com/mao888/go-utils/constants" + db2 "github.com/mao888/golang-guide/project/data-sync/db" + "go.mongodb.org/mongo-driver/bson" + "sort" +) + +func RunSupplyDesc() { + // 1、建立连接 + db := db2.MongoClient.Database("plat_console") + coll := db.Collection("artneedlogs") + + // 2、从mysql查询数据 + artNeeds := make([]*ArtNeed, 0) + err := db2.MySQLClientCruiser.Table("art_needs").Find(artNeeds).Error + if err != nil { + fmt.Println("从mysql查询数据 错误:", err) + return + } + fmt.Println(artNeeds) + + // 3、将mongo数据装入切片 + for _, need := range artNeeds { + + // 根据需求id去mongo中查询日志 + mArtNeedLogs := make([]*MArtNeedLogs, 0) + err := coll.Find(context.TODO(), bson.M{"artneed_id": need.ID}).All(&mArtNeedLogs) + if err != nil { + fmt.Println("Mongo查询错误:", err) + return + } + if len(mArtNeedLogs) == constants.NumberZero { + continue + } + // 根据时间降序 + sort.Slice(mArtNeedLogs, func(i, j int) bool { + return mArtNeedLogs[i].UpdateTime.Unix() > mArtNeedLogs[j].UpdateTime.Unix() // 降序 + }) + // + for _, log := range mArtNeedLogs { + // SupplyDesc 补充说明 为空跳过 + if log.SupplyDesc == constants.EmptyString { + continue + } + // SupplyDesc 补充说明 不为空,则更新当前需求的补充说明 + err = db2.MySQLClientCruiser.Table("art_needs").Where("id = ?", need.ID). + UpdateColumn("extra_desc", log.SupplyDesc).Error + if err != nil { + fmt.Println("更新数据 错误:", err) + return + } + } + } +}