115 lines
2.0 KiB
Go
115 lines
2.0 KiB
Go
package taskser
|
|
|
|
import (
|
|
"go.mongodb.org/mongo-driver/mongo/options"
|
|
"time"
|
|
|
|
"91porn-server/models/commod"
|
|
"91porn-server/models/v/dailytaskmod"
|
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
)
|
|
|
|
type DailyTaskListReq struct {
|
|
commod.Page
|
|
Status *bool `form:"status" json:"status" binding:"-"`
|
|
}
|
|
|
|
func GetDailyTaskList(p DailyTaskListReq) ([]dailytaskmod.DailyTask, bool, error) {
|
|
opt := options.Find()
|
|
opt.SetLimit(p.Limit64()).SetSkip(p.Skip64())
|
|
opt.SetSort(bson.D{{"sortNum", 1}})
|
|
filter := bson.M{}
|
|
if p.Status != nil {
|
|
filter["status"] = *p.Status
|
|
}
|
|
ot, next, err := dailytaskmod.GetTasks(filter, opt)
|
|
if err != nil {
|
|
return nil, false, err
|
|
}
|
|
return ot, next, nil
|
|
}
|
|
|
|
func AddDailyTask(adt dailytaskmod.AddDailyTaskReq) error {
|
|
var dt dailytaskmod.DailyTask
|
|
i := 0
|
|
if adt.Title != nil {
|
|
dt.Title = *adt.Title
|
|
i++
|
|
}
|
|
if adt.Desc != nil {
|
|
dt.Desc = *adt.Desc
|
|
i++
|
|
}
|
|
if adt.Img != nil {
|
|
dt.Img = *adt.Img
|
|
i++
|
|
}
|
|
if len(adt.Detail) != 0 {
|
|
dt.Detail = adt.Detail
|
|
i++
|
|
}
|
|
if adt.Type != nil {
|
|
dt.Type = *adt.Type
|
|
i++
|
|
}
|
|
if adt.Link != nil {
|
|
dt.Link = *adt.Link
|
|
i++
|
|
}
|
|
if adt.Status != nil {
|
|
dt.Status = *adt.Status
|
|
i++
|
|
}
|
|
if adt.SortNum != nil {
|
|
dt.SortNum = *adt.SortNum
|
|
i++
|
|
}
|
|
if i == 0 {
|
|
return nil
|
|
}
|
|
now := time.Now()
|
|
dt.CreatedAt = now
|
|
dt.UpdatedAt = now
|
|
if err := dailytaskmod.AddDailyTask(nil, dt); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func EditDailyTask(edtr dailytaskmod.EditDailyTaskReq) error {
|
|
if edtr.ID.IsZero() {
|
|
return nil
|
|
}
|
|
b := make(bson.M)
|
|
if edtr.Title != nil {
|
|
b["title"] = *edtr.Title
|
|
}
|
|
if edtr.Desc != nil {
|
|
b["desc"] = *edtr.Desc
|
|
}
|
|
if edtr.Img != nil {
|
|
b["img"] = *edtr.Img
|
|
}
|
|
if len(edtr.Detail) != 0 {
|
|
b["detail"] = edtr.Detail
|
|
}
|
|
if edtr.Type != nil {
|
|
b["type"] = *edtr.Type
|
|
}
|
|
if edtr.Link != nil {
|
|
b["link"] = *edtr.Link
|
|
}
|
|
if edtr.Status != nil {
|
|
b["status"] = *edtr.Status
|
|
}
|
|
if edtr.SortNum != nil {
|
|
b["sortNum"] = *edtr.SortNum
|
|
}
|
|
if len(b) == 0 {
|
|
return nil
|
|
}
|
|
b["updatedAt"] = time.Now()
|
|
return dailytaskmod.EditDailyTask(nil, edtr.ID, b)
|
|
}
|