XinYeYouKu/app/services/ActivityService.go

39 lines
1.1 KiB
Go

package services
import (
"github.com/ahmetb/go-linq/v3"
"qteam/app/constants/common"
"qteam/app/constants/errorcode"
"qteam/app/http/entities/front"
"qteam/app/models/activitymodel"
"qteam/app/models/productmodel"
"strings"
)
func ActivityDetailService(id int) (code int, data front.ActivityResponse) {
var err error
var activity activitymodel.Activity
code = errorcode.NotFound
has, err := activitymodel.GetInstance().GetDb().Get(&activity)
if has {
data = activity.ToDomain()
product := []productmodel.Product{}
productIds := strings.Split(activity.ProductIds, ",")
if count, err := productmodel.GetInstance().GetDb().Where("status = ?", common.STATUSABLED).In("id", productIds).FindAndCount(&product); err == nil {
code = handErr(err)
if count > 0 {
linq.From(product).SelectT(func(in productmodel.Product) (d front.ProductResponse) {
d.ResponseFromDb(in)
return
}).ToSlice(&data.Product)
}
} else {
data.Product = make([]front.ProductResponse, 0)
}
}
if err != nil {
code = handErr(err)
}
return errorcode.Success, data
}