66 lines
1.8 KiB
Go
66 lines
1.8 KiB
Go
package esmedia
|
|
|
|
import (
|
|
"91porn-server/common/elastic"
|
|
"91porn-server/common/log"
|
|
"91porn-server/models"
|
|
"91porn-server/models/v/mediamod"
|
|
)
|
|
|
|
// SyncDataToES 同步数据到ES
|
|
func SyncDataToES(data []*mediamod.Media) error {
|
|
if len(data) == 0 {
|
|
return nil
|
|
}
|
|
|
|
source := buildSource(data)
|
|
log.Info("Elastic sync ACG media data committing...")
|
|
if err := es.BulkChecked(models.ESMediaTable, source); err != nil {
|
|
log.Info("Elastic sync ACG media data commit failed.")
|
|
return err
|
|
}
|
|
log.Info("Elastic sync ACG media data committed.")
|
|
return nil
|
|
}
|
|
|
|
func buildSource(data []*mediamod.Media) elastic.M {
|
|
var source = elastic.M{}
|
|
for _, v := range data {
|
|
source[v.ID.Hex()] = mediamod.ESMedia{
|
|
ID: v.ID,
|
|
Title: v.Title,
|
|
HorizontalCover: v.HorizontalCover,
|
|
VerticalCover: v.VerticalCover,
|
|
Tags: v.Tags,
|
|
Summary: v.Summary,
|
|
TotalEpisode: v.TotalEpisode,
|
|
UpdateStatus: v.UpdateStatus,
|
|
MediaType: v.MediaType,
|
|
Kind: v.Kind,
|
|
PermissionIconHide: v.PermissionIconHide,
|
|
Permission: v.Permission,
|
|
Price: v.Price,
|
|
Direction: v.Direction,
|
|
FreeTime: v.FreeTime,
|
|
CountLike: v.CountLike,
|
|
CountBrowse: v.CountBrowse,
|
|
CountCollect: v.CountCollect,
|
|
MID: v.MID,
|
|
ModuleName: v.ModuleName,
|
|
SectionName: v.SectionName,
|
|
SID: v.SID,
|
|
SectionSort: v.SectionSort,
|
|
Choice: v.Choice,
|
|
ChoiceSort: v.ChoiceSort,
|
|
Number: v.Number,
|
|
SortCode: v.SortCode,
|
|
Status: v.Status,
|
|
IsDelete: v.IsDelete,
|
|
UpdatedAct: v.UpdatedAct,
|
|
CreatedAt: v.CreatedAt,
|
|
UpdateTime: v.UpdateTime,
|
|
}
|
|
}
|
|
return source
|
|
}
|