|
@@ -163,7 +163,7 @@ func GetProjectInfoList(r *ghttp.Request) *TalentHttpResult {
|
|
//稿费的展示情况
|
|
//稿费的展示情况
|
|
allFeeFormNoFee := true // 假设都是无费置换
|
|
allFeeFormNoFee := true // 假设都是无费置换
|
|
var hasSelfPrice bool
|
|
var hasSelfPrice bool
|
|
- var minOffer, maxOffer int
|
|
|
|
|
|
+ var minOffer, maxOffer float64
|
|
|
|
|
|
for _, strategy := range project.RecruitStrategys {
|
|
for _, strategy := range project.RecruitStrategys {
|
|
if strategy.FeeForm != 1 { // 如果存在非无费置换的策略
|
|
if strategy.FeeForm != 1 { // 如果存在非无费置换的策略
|
|
@@ -231,6 +231,203 @@ func GetProjectInfoList(r *ghttp.Request) *TalentHttpResult {
|
|
return &TalentHttpResult{Code: 0, Msg: "success", Data: projectInfoList}
|
|
return &TalentHttpResult{Code: 0, Msg: "success", Data: projectInfoList}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func getViewNum(projectViewKey string, userViewedKey string) int {
|
|
|
|
+ // 在redis中增加浏览量
|
|
|
|
+ viewed, err := g.Redis().DoVar("GET", userViewedKey)
|
|
|
|
+ if err != nil {
|
|
|
|
+ glog.Error(err)
|
|
|
|
+ return 0
|
|
|
|
+ }
|
|
|
|
+ if viewed.IsNil() {
|
|
|
|
+ _, err = g.Redis().Do("INCR", projectViewKey)
|
|
|
|
+ if err != nil {
|
|
|
|
+ glog.Error(err)
|
|
|
|
+ return 0
|
|
|
|
+ }
|
|
|
|
+ _, err = g.Redis().Do("SET", userViewedKey, true)
|
|
|
|
+ if err != nil {
|
|
|
|
+ glog.Error(err)
|
|
|
|
+ return 0
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ viewNum, err := g.Redis().DoVar("GET", projectViewKey)
|
|
|
|
+ if err != nil {
|
|
|
|
+ fmt.Println("获取浏览量失败")
|
|
|
|
+ return 0
|
|
|
|
+ }
|
|
|
|
+ return viewNum.Int()
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//
|
|
|
|
+//// 获取单个项目详情service
|
|
|
|
+//func GetProjectDetail(r *ghttp.Request) *TalentHttpResult {
|
|
|
|
+// tid, _ := utils.SessionTalentInfo.GetTalentIdFromSession(r)
|
|
|
|
+// //列表页面进入
|
|
|
|
+// pid := r.GetQueryString("project_id", "")
|
|
|
|
+//
|
|
|
|
+// //扫码进入:1. 商家端的码 2. 服务商的码
|
|
|
|
+// s_project_id := r.GetQueryInt("s_project_id", 0)
|
|
|
|
+// var projectViewKey = ""
|
|
|
|
+// var userViewedKey = ""
|
|
|
|
+// //达人类型转string
|
|
|
|
+// var talentCategory []*youngee_talent_model.YounggeeTalentCategory
|
|
|
|
+// err := g.DB().Model("younggee_talent_category").Scan(&talentCategory)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: -1, Msg: err.Error()}
|
|
|
|
+// }
|
|
|
|
+// // 创建一个数字到汉字的映射
|
|
|
|
+// categoryMap := make(map[string]string)
|
|
|
|
+// for _, category := range talentCategory {
|
|
|
|
+// categoryMap[fmt.Sprint(category.Id)] = category.Category
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// if s_project_id != 0 { //服务商
|
|
|
|
+// var SProjectDetail *youngee_talent_model.ProjectInfoSupplier
|
|
|
|
+// err := g.DB().Model("younggee_s_project_info").WithAll().Where("s_project_id", s_project_id).Scan(&SProjectDetail)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: -3, Msg: err.Error()}
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// //浏览量统计
|
|
|
|
+// projectViewKey = "project:view:s_" + gconv.String(s_project_id)
|
|
|
|
+// userViewedKey = "user:viewed:" + gconv.String(tid) + ":s_" + gconv.String(s_project_id)
|
|
|
|
+// viewNum := getViewNum(projectViewKey, userViewedKey)
|
|
|
|
+// SProjectDetail.ProjectDetail.ViewNum = viewNum
|
|
|
|
+// //浏览历史
|
|
|
|
+// currentDate := gtime.Now().Format("Ymd")
|
|
|
|
+// redisBrowseKey := fmt.Sprintf("browseProject:%s:%s", currentDate, tid)
|
|
|
|
+// fmt.Println("redis浏览记录的key为——————————", redisBrowseKey)
|
|
|
|
+// // 将 project_id:s_project_id 添加到 Redis 中的 SET 中,因为project_id可以对应多个s_project_id(被多个服务商接手)
|
|
|
|
+// // 组合 pid 和 s_project_id
|
|
|
|
+// browseItem := fmt.Sprintf("%s:%s", pid, s_project_id)
|
|
|
|
+// _, err = g.Redis().Do("SADD", redisBrowseKey, browseItem)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: 0, Msg: "Redis 存浏览历史数据失败"}
|
|
|
|
+// }
|
|
|
|
+// _, err = g.Redis().Do("EXPIRE", redisBrowseKey, 7*24*60*60) // 7 天的秒数
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: 0, Msg: "Redis 设置过期时间失败"}
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// //达人类型转化
|
|
|
|
+// talentTypes := strings.Split(SProjectDetail.ProjectDetail.TalentType, ",")
|
|
|
|
+// var result []string
|
|
|
|
+// for _, t := range talentTypes {
|
|
|
|
+// if name, ok := categoryMap[t]; ok {
|
|
|
|
+// result = append(result, name)
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// resultStr := strings.Join(result, ",")
|
|
|
|
+// SProjectDetail.ProjectDetail.TalentType = resultStr
|
|
|
|
+//
|
|
|
|
+// //违约
|
|
|
|
+// if SProjectDetail.ProjectType == 1 { //公开任务
|
|
|
|
+// one, err := g.DB().Model("info_auto_default_handle").Where("auto_default_id=?", SProjectDetail.ProjectDetail.AutoDefaultId).One()
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: 0, Msg: err.Error()}
|
|
|
|
+// } else {
|
|
|
|
+// SProjectDetail.ProjectDetail.DraftBreakPercent = one["sketch_replace_not_upload"].Int()
|
|
|
|
+// SProjectDetail.ProjectDetail.LinkBreakPercent = one["link_replace_not_upload"].Int()
|
|
|
|
+// SProjectDetail.ProjectDetail.DataBreakPercent = one["data_replace_not_upload"].Int()
|
|
|
|
+// }
|
|
|
|
+// one2, err2 := g.DB().Model("info_auto_task").Where("auto_task_id=?", SProjectDetail.ProjectDetail.AutoTaskId).One()
|
|
|
|
+// if err2 != nil {
|
|
|
|
+// return &TalentHttpResult{Code: 0, Msg: "one2 is nil"}
|
|
|
|
+// } else {
|
|
|
|
+// SProjectDetail.ProjectDetail.DraftBreakTime = one2["draft_default"].Int()
|
|
|
|
+// SProjectDetail.ProjectDetail.LinkBreakTime = one2["link_breach"].Int()
|
|
|
|
+// SProjectDetail.ProjectDetail.DataBreakTime = one2["case_close_default"].Int()
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// //填充收藏信息
|
|
|
|
+// collectionInfo := []youngee_talent_model.ProjectCollection{}
|
|
|
|
+// err = g.DB().Model("younggee_project_collect_info").Where("project_id=? and talent_id = ?", SProjectDetail.ProjectID, tid).Scan(&collectionInfo)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: -1, Msg: err.Error()}
|
|
|
|
+// }
|
|
|
|
+// if len(collectionInfo) != 0 && collectionInfo[0].Deleted == 0 {
|
|
|
|
+// SProjectDetail.ProjectDetail.IsCollected = 1
|
|
|
|
+// } else {
|
|
|
|
+// SProjectDetail.ProjectDetail.IsCollected = 0
|
|
|
|
+// }
|
|
|
|
+// return &TalentHttpResult{Code: 0, Msg: "success", Data: SProjectDetail}
|
|
|
|
+//
|
|
|
|
+// } else { //商家
|
|
|
|
+// var ProjectDetail *youngee_talent_model.ProjectDetail
|
|
|
|
+// err := g.DB().Model("project_info").WithAll().Where("project_id", pid).Scan(&ProjectDetail)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: -3, Msg: err.Error()}
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// //浏览量统计
|
|
|
|
+// projectViewKey = "project:view:" + pid
|
|
|
|
+// userViewedKey = "user:viewed:" + gconv.String(tid) + ":" + pid
|
|
|
|
+// viewNum := getViewNum(projectViewKey, userViewedKey)
|
|
|
|
+// ProjectDetail.ViewNum = viewNum
|
|
|
|
+// //浏览历史
|
|
|
|
+// currentDate := gtime.Now().Format("Ymd")
|
|
|
|
+// redisBrowseKey := fmt.Sprintf("browseProject:%s:%s", currentDate, tid)
|
|
|
|
+// fmt.Println("redis浏览记录的key为——————————", redisBrowseKey)
|
|
|
|
+// // 将 project_id:s_project_id 添加到 Redis 中的 SET 中,因为project_id可以对应多个s_project_id(被多个服务商接手)
|
|
|
|
+// // 组合 pid 和 s_project_id
|
|
|
|
+// browseItem := fmt.Sprintf("%s:%s", pid, s_project_id)
|
|
|
|
+// _, err = g.Redis().Do("SADD", redisBrowseKey, browseItem)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: 0, Msg: "Redis 存浏览历史数据失败"}
|
|
|
|
+// }
|
|
|
|
+// _, err = g.Redis().Do("EXPIRE", redisBrowseKey, 7*24*60*60) // 7 天的秒数
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: 0, Msg: "Redis 设置过期时间失败"}
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// //达人类型转化
|
|
|
|
+// talentTypes := strings.Split(ProjectDetail.TalentType, ",")
|
|
|
|
+// var result []string
|
|
|
|
+// for _, t := range talentTypes {
|
|
|
|
+// if name, ok := categoryMap[t]; ok {
|
|
|
|
+// result = append(result, name)
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// resultStr := strings.Join(result, ",")
|
|
|
|
+// ProjectDetail.TalentType = resultStr
|
|
|
|
+//
|
|
|
|
+// //违约
|
|
|
|
+// if ProjectDetail.ProjectType == 1 { //公开任务
|
|
|
|
+// one, err := g.DB().Model("info_auto_default_handle").Where("auto_default_id=?", ProjectDetail.AutoDefaultId).One()
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: 0, Msg: err.Error()}
|
|
|
|
+// } else {
|
|
|
|
+// ProjectDetail.DraftBreakPercent = one["sketch_replace_not_upload"].Int()
|
|
|
|
+// ProjectDetail.LinkBreakPercent = one["link_replace_not_upload"].Int()
|
|
|
|
+// ProjectDetail.DataBreakPercent = one["data_replace_not_upload"].Int()
|
|
|
|
+// }
|
|
|
|
+// one2, err2 := g.DB().Model("info_auto_task").Where("auto_task_id=?", ProjectDetail.AutoTaskId).One()
|
|
|
|
+// if err2 != nil {
|
|
|
|
+// return &TalentHttpResult{Code: 0, Msg: "one2 is nil"}
|
|
|
|
+// } else {
|
|
|
|
+// ProjectDetail.DraftBreakTime = one2["draft_default"].Int()
|
|
|
|
+// ProjectDetail.LinkBreakTime = one2["link_breach"].Int()
|
|
|
|
+// ProjectDetail.DataBreakTime = one2["case_close_default"].Int()
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// //填充收藏信息
|
|
|
|
+// collectionInfo := []youngee_talent_model.ProjectCollection{}
|
|
|
|
+// err = g.DB().Model("younggee_project_collect_info").Where("project_id=? and talent_id = ?", pid, tid).Scan(&collectionInfo)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: -1, Msg: err.Error()}
|
|
|
|
+// }
|
|
|
|
+// if len(collectionInfo) != 0 && collectionInfo[0].Deleted == 0 { //有数据 且 没取消收藏
|
|
|
|
+// ProjectDetail.IsCollected = 1
|
|
|
|
+// } else {
|
|
|
|
+// ProjectDetail.IsCollected = 0 //没数据 或 有数据但取消了收藏
|
|
|
|
+// }
|
|
|
|
+// return &TalentHttpResult{Code: 0, Msg: "success", Data: ProjectDetail}
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+//}
|
|
|
|
+
|
|
// 获取单个项目详情service
|
|
// 获取单个项目详情service
|
|
func GetProjectDetail(r *ghttp.Request) *TalentHttpResult {
|
|
func GetProjectDetail(r *ghttp.Request) *TalentHttpResult {
|
|
g.Log().Info("This is an GetProjectDetail message")
|
|
g.Log().Info("This is an GetProjectDetail message")
|
|
@@ -266,6 +463,14 @@ func GetProjectDetail(r *ghttp.Request) *TalentHttpResult {
|
|
for _, category := range talentCategory {
|
|
for _, category := range talentCategory {
|
|
categoryMap[fmt.Sprint(category.Id)] = category.Category
|
|
categoryMap[fmt.Sprint(category.Id)] = category.Category
|
|
}
|
|
}
|
|
|
|
+ if s_project_id != 0 { //服务商
|
|
|
|
+ var SProjectDetail *youngee_talent_model.ProjectInfoSupplier
|
|
|
|
+ err = g.DB().Model("younggee_s_project_info").WithAll().Where("s_project_id", s_project_id).Scan(&SProjectDetail)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return &TalentHttpResult{Code: -3, Msg: err.Error()}
|
|
|
|
+ }
|
|
|
|
+ pid = SProjectDetail.ProjectID //获取商家端的pid
|
|
|
|
+ }
|
|
err = g.DB().Model("project_info").WithAll().Where("project_id", pid).Scan(&ProjectDetail)
|
|
err = g.DB().Model("project_info").WithAll().Where("project_id", pid).Scan(&ProjectDetail)
|
|
if err != nil {
|
|
if err != nil {
|
|
return &TalentHttpResult{Code: -3, Msg: err.Error()}
|
|
return &TalentHttpResult{Code: -3, Msg: err.Error()}
|
|
@@ -387,59 +592,59 @@ func GetProjectDetail(r *ghttp.Request) *TalentHttpResult {
|
|
return &TalentHttpResult{Code: 0, Msg: "success", Data: ProjectDetail}
|
|
return &TalentHttpResult{Code: 0, Msg: "success", Data: ProjectDetail}
|
|
}
|
|
}
|
|
|
|
|
|
-func GetProjectDetailFromBrowse(r *ghttp.Request) *TalentHttpResult {
|
|
|
|
- //从redis的 key--》browseProject:currentDate:tid中获取对应的 project_id:s_project_id
|
|
|
|
-
|
|
|
|
- pid := r.GetQueryInt("project_id", 0)
|
|
|
|
- enterprise_id := r.GetQueryString("enterprise_id", "") //来自商家
|
|
|
|
- s_project_id := r.GetQueryString("s_project_id", "")
|
|
|
|
- projectInfoSupplier := youngee_talent_model.ProjectInfoSupplier{}
|
|
|
|
- if s_project_id != "" {
|
|
|
|
- // 来自服务商
|
|
|
|
- err := g.DB().Model("younggee_s_project_info").Where("s_project_id=?", s_project_id).Scan(&projectInfoSupplier)
|
|
|
|
- if err != nil {
|
|
|
|
- fmt.Println("projectInfoSupplier err:", err.Error())
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if pid == 0 {
|
|
|
|
- return &TalentHttpResult{Code: -2, Msg: "parse param error"}
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- var ProjectDetail *youngee_talent_model.ProjectDetail
|
|
|
|
- err := g.DB().Model("project_info").WithAll().Where("project_id", pid).Scan(&ProjectDetail)
|
|
|
|
- if err != nil {
|
|
|
|
- return &TalentHttpResult{Code: -3, Msg: err.Error()}
|
|
|
|
- }
|
|
|
|
- //违约
|
|
|
|
- one, err := g.DB().Model("info_auto_default_handle").Where("auto_default_id=?", ProjectDetail.AutoDefaultId).One()
|
|
|
|
- one2, err := g.DB().Model("info_auto_task").Where("auto_task_id=?", ProjectDetail.AutoTaskId).One()
|
|
|
|
- ProjectDetail.DraftBreakPercent = one["sketch_replace_not_upload"].Int()
|
|
|
|
- ProjectDetail.LinkBreakPercent = one["link_replace_not_upload"].Int()
|
|
|
|
- ProjectDetail.DataBreakPercent = one["data_replace_not_upload"].Int()
|
|
|
|
- ProjectDetail.DraftBreakTime = one2["draft_default"].Int()
|
|
|
|
- ProjectDetail.DraftBreakTime = one2["link_breach"].Int()
|
|
|
|
- ProjectDetail.DraftBreakTime = one2["case_close_default"].Int()
|
|
|
|
-
|
|
|
|
- if s_project_id != "" { // 来自服务商
|
|
|
|
- var younggeeSupplier *youngee_talent_model.YounggeeSupplier
|
|
|
|
- err = g.DB().Model("younggee_supplier").WithAll().Where("supplier_id", projectInfoSupplier.SupplierID).Scan(&younggeeSupplier)
|
|
|
|
- if err != nil {
|
|
|
|
- return &TalentHttpResult{Code: -3, Msg: err.Error()}
|
|
|
|
- }
|
|
|
|
- ProjectDetail.YounggeeSupplier = younggeeSupplier
|
|
|
|
- ProjectDetail.ProjectInfoSupplier = &projectInfoSupplier
|
|
|
|
- } else { //project来自商家
|
|
|
|
- var enterprise *youngee_talent_model.Enterprise
|
|
|
|
- err = g.DB().Model("enterprise").WithAll().Where("enterprise_id", enterprise_id).Scan(&enterprise)
|
|
|
|
- if err != nil {
|
|
|
|
- return &TalentHttpResult{Code: -3, Msg: err.Error()}
|
|
|
|
- }
|
|
|
|
- ProjectDetail.Enterprise = enterprise
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return &TalentHttpResult{Code: 0, Msg: "success", Data: ProjectDetail}
|
|
|
|
-}
|
|
|
|
|
|
+//func GetProjectDetailFromBrowse(r *ghttp.Request) *TalentHttpResult {
|
|
|
|
+// //从redis的 key--》browseProject:currentDate:tid中获取对应的 project_id:s_project_id
|
|
|
|
+//
|
|
|
|
+// pid := r.GetQueryInt("project_id", 0)
|
|
|
|
+// enterprise_id := r.GetQueryString("enterprise_id", "") //来自商家
|
|
|
|
+// s_project_id := r.GetQueryString("s_project_id", "")
|
|
|
|
+// projectInfoSupplier := youngee_talent_model.ProjectInfoSupplier{}
|
|
|
|
+// if s_project_id != "" {
|
|
|
|
+// // 来自服务商
|
|
|
|
+// err := g.DB().Model("younggee_s_project_info").Where("s_project_id=?", s_project_id).Scan(&projectInfoSupplier)
|
|
|
|
+// if err != nil {
|
|
|
|
+// fmt.Println("projectInfoSupplier err:", err.Error())
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// if pid == 0 {
|
|
|
|
+// return &TalentHttpResult{Code: -2, Msg: "parse param error"}
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// var ProjectDetail *youngee_talent_model.ProjectDetail
|
|
|
|
+// err := g.DB().Model("project_info").WithAll().Where("project_id", pid).Scan(&ProjectDetail)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: -3, Msg: err.Error()}
|
|
|
|
+// }
|
|
|
|
+// //违约
|
|
|
|
+// one, err := g.DB().Model("info_auto_default_handle").Where("auto_default_id=?", ProjectDetail.AutoDefaultId).One()
|
|
|
|
+// one2, err := g.DB().Model("info_auto_task").Where("auto_task_id=?", ProjectDetail.AutoTaskId).One()
|
|
|
|
+// ProjectDetail.DraftBreakPercent = one["sketch_replace_not_upload"].Int()
|
|
|
|
+// ProjectDetail.LinkBreakPercent = one["link_replace_not_upload"].Int()
|
|
|
|
+// ProjectDetail.DataBreakPercent = one["data_replace_not_upload"].Int()
|
|
|
|
+// ProjectDetail.DraftBreakTime = one2["draft_default"].Int()
|
|
|
|
+// ProjectDetail.DraftBreakTime = one2["link_breach"].Int()
|
|
|
|
+// ProjectDetail.DraftBreakTime = one2["case_close_default"].Int()
|
|
|
|
+//
|
|
|
|
+// if s_project_id != "" { // 来自服务商
|
|
|
|
+// var younggeeSupplier *youngee_talent_model.YounggeeSupplier
|
|
|
|
+// err = g.DB().Model("younggee_supplier").WithAll().Where("supplier_id", projectInfoSupplier.SupplierID).Scan(&younggeeSupplier)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: -3, Msg: err.Error()}
|
|
|
|
+// }
|
|
|
|
+// ProjectDetail.YounggeeSupplier = younggeeSupplier
|
|
|
|
+// ProjectDetail.ProjectInfoSupplier = &projectInfoSupplier
|
|
|
|
+// } else { //project来自商家
|
|
|
|
+// var enterprise *youngee_talent_model.Enterprise
|
|
|
|
+// err = g.DB().Model("enterprise").WithAll().Where("enterprise_id", enterprise_id).Scan(&enterprise)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return &TalentHttpResult{Code: -3, Msg: err.Error()}
|
|
|
|
+// }
|
|
|
|
+// ProjectDetail.Enterprise = enterprise
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// return &TalentHttpResult{Code: 0, Msg: "success", Data: ProjectDetail}
|
|
|
|
+//}
|
|
|
|
|
|
func SignUpProjKuaishouList(r *ghttp.Request) *TalentHttpResult {
|
|
func SignUpProjKuaishouList(r *ghttp.Request) *TalentHttpResult {
|
|
tid, _ := utils.SessionTalentInfo.GetTalentIdFromSession(r)
|
|
tid, _ := utils.SessionTalentInfo.GetTalentIdFromSession(r)
|