123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- package youngee_talent_service
- import (
- "fmt"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/net/ghttp"
- "github.com/gogf/gf/util/gconv"
- "strings"
- "youngmini_server/app/model/youngee_talent_model"
- "youngmini_server/app/utils"
- )
- // 存储每个日期和对应的种草列表
- type BrowseProjectHistory struct {
- Date string `json:"date"`
- ProjectList []youngee_talent_model.ProjectDetail `json:"projectList"`
- }
- // 存储每个日期和对应的带货列表
- type BrowseSelectionHistory struct {
- Date string `json:"date"`
- SelectionList []youngee_talent_model.SelectionDetail `json:"selectionList"`
- }
- func GetProjectBrowseHistory(r *ghttp.Request) *TalentHttpResult {
- tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r)
- if err != nil {
- return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"}
- }
- // 获取所有相关的 Redis Key
- redisKeyPattern := fmt.Sprintf("browseProject:*:%s", tid)
- keys, err := g.Redis().DoVar("KEYS", redisKeyPattern)
- if err != nil {
- fmt.Println("Get redis keys error", err)
- }
- // 初始化返回的数据
- var browseProjectHistories []BrowseProjectHistory
- // 遍历所有的日期 Key
- for _, key := range keys.Slice() {
- // 获取日期部分
- keyStr := gconv.String(key)
- date := strings.Split(keyStr, ":")[1]
- // 获取该日期下的所有 pid
- pids, err := g.Redis().DoVar("SMEMBERS", keyStr)
- if err != nil {
- println("Get redis keys error", err)
- }
- // 使用 pids 查询数据库,获取商品列表
- var projectList []youngee_talent_model.ProjectDetail
- err = g.DB().Model("project_info").WithAll().Where("project_id IN(?)", pids.Strings()).Scan(&projectList)
- if err != nil {
- println("Get redis projects error", err)
- }
- // 构建 BrowseHistory 对象
- browseProjectHistory := BrowseProjectHistory{
- Date: date,
- ProjectList: projectList,
- }
- // 添加到结果列表中
- browseProjectHistories = append(browseProjectHistories, browseProjectHistory)
- }
- return &TalentHttpResult{Code: 0, Msg: "success", Data: browseProjectHistories}
- }
- // 获取带货浏览记录
- func GetSelectionBrowseHistory(r *ghttp.Request) *TalentHttpResult {
- tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r)
- if err != nil {
- return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"}
- }
- // 获取所有相关的 Redis Key
- redisKeyPattern := fmt.Sprintf("browseSelection:*:%s", tid)
- keys, err := g.Redis().DoVar("KEYS", redisKeyPattern)
- if err != nil {
- fmt.Println("Get redis keys error", err)
- }
- // 初始化返回的数据
- var browseSelectionHistories []BrowseSelectionHistory
- // 遍历所有的日期 Key
- for _, key := range keys.Slice() {
- // 获取日期部分
- keyStr := gconv.String(key)
- date := strings.Split(keyStr, ":")[1]
- // 获取该日期下的所有 pid
- selctionIds, err := g.Redis().DoVar("SMEMBERS", keyStr)
- if err != nil {
- println("Get redis keys error", err)
- }
- // 使用 pids 查询数据库,获取商品列表
- var selectionList []youngee_talent_model.SelectionDetail
- err = g.DB().Model("younggee_selection_info").WithAll().Where("selection_id IN(?)", selctionIds.Strings()).Scan(&selectionList)
- if err != nil {
- println("Get redis selections error", err)
- }
- // 构建 BrowseHistory 对象
- browseSelectionHistory := BrowseSelectionHistory{
- Date: date,
- SelectionList: selectionList,
- }
- // 添加到结果列表中
- browseSelectionHistories = append(browseSelectionHistories, browseSelectionHistory)
- }
- return &TalentHttpResult{Code: 0, Msg: "success", Data: browseSelectionHistories}
- }
|