123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280 |
- package youngee_task_service
- import (
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/net/ghttp"
- "github.com/gogf/gf/os/gtime"
- "time"
- "youngmini_server/app/dao"
- "youngmini_server/app/model"
- "youngmini_server/app/model/youngee_talent_model"
- )
- // 添加链接service
- func AddTaskLink(r *ghttp.Request) *TalentHttpResult {
- //解析添加初稿的图文
- var LinkInfoReq *youngee_talent_model.AddTaskLinkRequest
- err := r.ParseForm(&LinkInfoReq)
- if err != nil {
- return &TalentHttpResult{Code: -1, Msg: err.Error()}
- }
- taskLinkInfo := []model.YounggeeLinkInfo{}
- err = g.DB().Model(model.YounggeeLinkInfo{}).Where("task_id = ? ", LinkInfoReq.TaskId).OrderDesc("create_at").Scan(&taskLinkInfo)
- var autoAgreeAt *gtime.Time
- //获取种草和本地生活的task表
- taskInfo := youngee_talent_model.YoungeeTaskInfo{}
- localTaskInfo := youngee_talent_model.YoungeeLocalTaskInfo{}
- //查找auto_task_info表 AutoAgreeAt= task的创建时间 + auto_task_info的link_review_auto
- if LinkInfoReq.TaskType == 1 {
- err = g.DB().Model("youngee_task_info").WithAll().Where("task_id = ?", LinkInfoReq.TaskId).Scan(&taskInfo)
- if err != nil {
- return &TalentHttpResult{Code: -2, Msg: "YoungeeTaskInfo find failed", Data: err.Error()}
- }
- autoTaskInfo, err := g.DB().Model("info_auto_task").Where("auto_task_id = ?", taskInfo.ProjectDetail.AutoTaskId).One()
- if err != nil {
- return &TalentHttpResult{Code: -2, Msg: "InfoAutoTask find failed", Data: err.Error()}
- }
- if autoTaskInfo != nil {
- autoAgreeAt = taskInfo.CreateDate.Add(time.Duration(autoTaskInfo["link_review_auto"].Int64()) * time.Hour)
- } else {
- return &TalentHttpResult{Code: -2, Msg: "auto_task_id not found"}
- }
- } else if LinkInfoReq.TaskType == 2 {
- err = g.DB().Model("youngee_local_task_info").WithAll().Where("task_id = ?", LinkInfoReq.TaskId).Scan(localTaskInfo)
- if err != nil {
- return &TalentHttpResult{Code: -2, Msg: "YoungeeLocalTaskInfo find failed", Data: err.Error()}
- }
- autoTaskInfo, err := g.DB().Model("info_auto_task").WithAll().Where("auto_task_id = ?", localTaskInfo.LocalInfoDetail.AutoTaskId).One()
- if err != nil {
- return &TalentHttpResult{Code: -2, Msg: "InfoAutoTask find failed", Data: err.Error()}
- }
- if autoTaskInfo != nil {
- autoAgreeAt = localTaskInfo.CreateDate.Add(time.Duration(autoTaskInfo["link_review_auto"].Int64()) * time.Hour)
- } else {
- return &TalentHttpResult{Code: -2, Msg: "auto_task_id not found"}
- }
- }
- //最新link数据
- linkInfo := model.YounggeeLinkInfo{
- TaskId: LinkInfoReq.TaskId,
- LinkUrl: LinkInfoReq.LinkUrl,
- CreateAt: gtime.Now(),
- IsReview: 0,
- IsSubmit: 0, //忽略
- IsOk: 0,
- AutoAgreeAt: autoAgreeAt,
- TaskType: LinkInfoReq.TaskType,
- }
- //上传过但是被拒了
- var condition1 bool = len(taskLinkInfo) != 0 && taskLinkInfo[0].IsReview == 1 && taskLinkInfo[0].IsOk == 0
- //没有上传过初稿
- var condition2 bool = len(taskLinkInfo) == 0
- if condition1 || condition2 {
- //插入新数据
- _, err := g.DB().Model(model.YounggeeLinkInfo{}).Data(linkInfo).InsertAndGetId()
- if err != nil {
- return &TalentHttpResult{Code: -3, Msg: "YounggeeLinkInfo insert failed", Data: err.Error()}
- }
- } else {
- return &TalentHttpResult{Code: -3, Msg: "YounggeeLinkInfo insert failed", Data: "该任务已上传过链接,不能重复上传"}
- }
- //更新task表 or local_task表
- if LinkInfoReq.TaskType == 1 { //种草
- LinkStatus, err := g.DB().Model("youngee_task_info").Fields("link_status").Where("task_id = ?", LinkInfoReq.TaskId).Value()
- if err != nil {
- return &TalentHttpResult{Code: -5, Msg: "Get task info failed"}
- }
- if LinkStatus.Int64() == 1 {
- _, err = g.Model("youngee_task_info").Where("task_id = ?", LinkInfoReq.TaskId).Update(g.Map{"link_status": 2})
- if err != nil {
- return &TalentHttpResult{Code: -6, Msg: "YoungeeTaskInfo update failed"}
- }
- } else if LinkStatus.Int64() == 3 {
- _, err = g.Model("youngee_task_info").Where("task_id = ?", LinkInfoReq.TaskId).Update(g.Map{"link_status": 4})
- if err != nil {
- return &TalentHttpResult{Code: -6, Msg: "YoungeeTaskInfo update failed"}
- }
- }
- //修改task表,插入log和message
- taskInfo := youngee_talent_model.YoungeeTaskInfo{}
- // 查询是否处于违约状态
- err = g.DB().Model(model.YoungeeTaskInfo{}).Where("task_id = ?", LinkInfoReq.TaskId).Scan(&taskInfo)
- if taskInfo.CurDefaultType == 5 || taskInfo.CurDefaultType == 9 {
- // 若处于违约状态则解除并更新企业应支付金额
- _, err = g.DB().Model(model.YoungeeTaskInfo{}).Data(g.Map{"cur_default_type": "0", "err_break_rate": 0}).Where("task_id = ?", LinkInfoReq.TaskId).Update()
- if err != nil {
- return &TalentHttpResult{Code: -2, Msg: "YoungeeTaskInfo update failed"}
- }
- // 更新违约记录表
- _, err = g.DB().Model(model.YoungeeContractInfo{}).Data(g.Map{"default_status": 2}).Where("task_id = ? and default_status in (?)", LinkInfoReq.TaskId, g.Slice{1, 3, 4}).Update()
- if err != nil {
- return &TalentHttpResult{Code: -2, Msg: "YoungeeContractInfo update failed"}
- }
- }
- //task设置为链接待审
- _, err = g.DB().Model(model.YoungeeTaskInfo{}).Data(g.Map{"task_stage": "12"}).Where("task_id = ?", LinkInfoReq.TaskId).Update()
- if err != nil {
- return &TalentHttpResult{Code: -4, Msg: "YoungeeTaskInfo update failed"}
- }
- // 记录任务日志-上传链接
- taskLog := model.YounggeeTaskLog{
- TaskId: LinkInfoReq.TaskId,
- Content: "上传链接",
- LogAt: gtime.Now(),
- }
- _, err = g.DB().Model(dao.YounggeeTaskLog.Table).Data(&taskLog).Insert()
- if err != nil {
- return &TalentHttpResult{Code: -5, Msg: "YounggeeTaskLog insert failed"}
- }
- } else if LinkInfoReq.TaskType == 2 { //本地生活
- LinkStatus, err := g.DB().Model("youngee_local_task_info").Fields("link_status").Where("task_id = ?", LinkInfoReq.TaskId).Value()
- if err != nil {
- return &TalentHttpResult{Code: -5, Msg: "Get youngee_local_task_info failed"}
- }
- if LinkStatus.Int64() == 1 {
- _, err = g.Model("youngee_local_task_info").Where("task_id = ?", LinkInfoReq.TaskId).Update(g.Map{"link_status": 2})
- if err != nil {
- return &TalentHttpResult{Code: -6, Msg: "youngee_local_task_info update failed"}
- }
- } else if LinkStatus.Int64() == 3 {
- _, err = g.Model("youngee_local_task_info").Where("task_id = ?", LinkInfoReq.TaskId).Update(g.Map{"link_status": 4})
- if err != nil {
- return &TalentHttpResult{Code: -6, Msg: "youngee_local_task_info update failed"}
- }
- }
- //修改task表,插入log和message
- taskInfo := youngee_talent_model.YoungeeLocalTaskInfo{}
- // 查询是否处于违约状态
- err = g.DB().Model("youngee_local_task_info").Where("task_id = ?", LinkInfoReq.TaskId).Scan(&taskInfo)
- if taskInfo.CurDefaultType == 5 || taskInfo.CurDefaultType == 9 {
- // 若处于违约状态则解除并更新企业应支付金额
- _, err = g.DB().Model("youngee_local_task_info").Data(g.Map{"cur_default_type": "0", "err_break_rate": 0}).Where("task_id = ?", LinkInfoReq.TaskId).Update()
- if err != nil {
- return &TalentHttpResult{Code: -2, Msg: "youngee_local_task_info update failed"}
- }
- // 更新违约记录表
- _, err = g.DB().Model(model.YoungeeContractInfo{}).Data(g.Map{"default_status": 2}).Where("task_id = ? and default_status in (?)", LinkInfoReq.TaskId, g.Slice{1, 3, 4}).Update()
- if err != nil {
- return &TalentHttpResult{Code: -2, Msg: "YoungeeContractInfo update failed"}
- }
- }
- //task设置为链接待审
- _, err = g.DB().Model("youngee_local_task_info").Data(g.Map{"task_stage": "12"}).Where("task_id = ?", LinkInfoReq.TaskId).Update()
- if err != nil {
- return &TalentHttpResult{Code: -4, Msg: "YoungeeTaskInfo update failed"}
- }
- //记录任务日志-上传链接
- taskLog := youngee_talent_model.YounggeeLocalTaskLog{
- TaskId: LinkInfoReq.TaskId,
- Content: "上传链接",
- LogAt: gtime.Now(),
- }
- _, err = g.DB().Model("younggee_local_task_log").Data(&taskLog).Insert()
- if err != nil {
- return &TalentHttpResult{Code: -5, Msg: "YounggeeTaskLog insert failed", Data: err.Error()}
- }
- }
- return &TalentHttpResult{Code: 0, Msg: "success"}
- }
- // 提交链接service
- //func SubmitTaskLink(r *ghttp.Request) *TalentHttpResult {
- // taskId, _ := r.Get("task_id").(string)
- // taskInfo := model.YoungeeTaskInfo{}
- // // 查询是否处于违约状态
- // err1 := g.DB().Model(model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Scan(&taskInfo)
- // if err1 != nil {
- // return &TalentHttpResult{Code: -1, Msg: "YoungeeTaskInfo find failed"}
- // }
- // if taskInfo.CurDefaultType == 5 || taskInfo.CurDefaultType == 9 {
- // // 若处于违约状态则解除并更新企业应支付金额
- // _, err1 = g.DB().Model(model.YoungeeTaskInfo{}).Data(g.Map{"cur_default_type": "0", "real_payment": taskInfo.AllPayment, "err_break_rate": 0}).Where("task_id = ?", taskId).Update()
- // if err1 != nil {
- // return &TalentHttpResult{Code: -2, Msg: "YoungeeTaskInfo update failed"}
- // }
- //
- // // 更新违约记录表
- // _, err1 = g.DB().Model(model.YoungeeContractInfo{}).Data(g.Map{"default_status": 2}).Where("task_id = ? and default_status in (?)", taskId, g.Slice{1, 3, 4}).Update()
- // if err1 != nil {
- // return &TalentHttpResult{Code: -2, Msg: "YoungeeContractInfo update failed"}
- // }
- // }
- //
- // // 查询该任务是否有已添加或已修改链接
- // res, err := g.DB().Model(model.YounggeeLinkInfo{}).Where("task_id = ? and is_submit = 0", taskId).Count()
- // if err != nil {
- // return &TalentHttpResult{Code: -1, Msg: "YounggeeLinkInfo find failed"}
- // }
- // if res == 1 && (taskInfo.LinkStatus == 2 || taskInfo.LinkStatus == 4) {
- // _, err = g.DB().Model(model.YounggeeLinkInfo{}).Data(g.Map{"is_submit": "1", "submit_at": gtime.Now()}).Where("task_id = ? and is_submit = 0", taskId).Update()
- // if err != nil {
- // return &TalentHttpResult{Code: -3, Msg: "YounggeeLinkInfo update failed"}
- // }
- // _, err = g.DB().Model(model.YoungeeTaskInfo{}).Data(g.Map{"task_stage": "12"}).Where("task_id = ?", taskId).Update()
- // if err != nil {
- // return &TalentHttpResult{Code: -4, Msg: "YoungeeTaskInfo update failed"}
- // }
- // // 记录任务日志-上传链接
- // taskLog := model.YounggeeTaskLog{
- // TaskId: taskId,
- // Content: "上传链接",
- // LogAt: gtime.Now(),
- // }
- // _, err = g.DB().Model(dao.YounggeeTaskLog.Table).Data(&taskLog).Insert()
- // if err != nil {
- // return &TalentHttpResult{Code: -5, Msg: "YounggeeTaskLog insert failed"}
- // }
- // projectInfo := model.ProjectInfo{}
- // err1 = g.DB().Model(model.ProjectInfo{}).Where("project_id = ?", taskInfo.ProjectId).Scan(&projectInfo)
- // if err1 != nil {
- // return &TalentHttpResult{Code: -8, Msg: "ProjectInfo find failed"}
- // }
- // messageInfo := model.YounggeeMessageInfo{
- // MessageId: 12,
- // MessageType: 2,
- // CreatedAt: gtime.Now(),
- // TalentId: taskInfo.TalentId,
- // ProjectName: projectInfo.ProjectName,
- // IsReaded: 0,
- // IsDeleted: 0,
- // }
- // _, err = g.DB().Model(dao.YounggeeMessageInfo.Table).Data(&messageInfo).Insert()
- // if err != nil {
- // return &TalentHttpResult{Code: -9, Msg: "YounggeeMessageInfo insert failed"}
- // }
- // }
- //
- // return &TalentHttpResult{Code: 0, Msg: "success"}
- //}
- // 查询链接提交审阅记录service
- func GetTaskLink(r *ghttp.Request) *TalentHttpResult {
- taskId := r.Get("task_id")
- res, err := g.DB().Model(dao.YounggeeLinkInfo.Table).Where("is_review = 1 and task_id = ?", taskId).OrderDesc("create_at").All()
- if err != nil {
- return &TalentHttpResult{Code: -1, Msg: err.Error()}
- }
- return &TalentHttpResult{Code: 0, Msg: "success", Data: res}
- }
- // 查询未审核的链接
- func GetUnSubmitTaskLink(r *ghttp.Request) *TalentHttpResult {
- taskId := r.Get("task_id")
- res, err := g.DB().Model(dao.YounggeeLinkInfo.Table).Where("is_review = 0 and is_ok = 0 and task_id = ?", taskId).OrderDesc("create_at").One()
- if err != nil {
- return &TalentHttpResult{Code: -1, Msg: err.Error()}
- }
- if res == nil {
- return &TalentHttpResult{Code: 0, Msg: "success", Data: nil}
- }
- return &TalentHttpResult{Code: 0, Msg: "success", Data: res}
- }
|