package svc import ( "applet/app/comm/e" "applet/app/comm/svc" "applet/app/comm/utils" "applet/app/operator/md" md2 "applet/app/store/md" "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/implement" "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models" "encoding/json" "github.com/gin-gonic/gin" "time" ) func TaskUp(c *gin.Context) { var args map[string]string if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } user := svc.GetUser(c) update, _ := svc.MasterDb(c).Where("task_id=? and uid=?", args["id"], user.Info.Uid).Count(&models.CampTaskOperatorTask{}) if update > 0 { e.OutErr(c, 400, e.NewErr(400, "该任务已上架")) return } var data = models.CampTaskOperatorTask{ TaskId: utils.StrToInt(args["id"]), Uid: user.Info.Uid, CreateTime: time.Now(), } insert, _ := svc.MasterDb(c).Insert(&data) if insert == 0 { e.OutErr(c, 400, e.NewErr(400, "上架失败")) return } e.OutSuc(c, "success", nil) return } func TaskDown(c *gin.Context) { var args map[string]string if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } user := svc.GetUser(c) update, _ := svc.MasterDb(c).Where("task_id=? and uid=?", args["id"], user.Info.Uid).Delete(&models.CampTaskOperatorTask{}) if update == 0 { e.OutErr(c, 400, e.NewErr(400, "下架失败")) return } e.OutSuc(c, "success", nil) return } func TaskList(c *gin.Context) { var args md.TaskListReq if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } user := svc.GetUser(c) hotTask := make([]map[string]string, 0) var hotTaskList []models.CampTaskList sess := svc.MasterDb(c).Where("up_down_state=?", 1) if args.Cid != "" { sess.And("first_cid=?", args.Cid) } if args.SettleType != "" { sess.And("settle_type=?", args.SettleType) } total, _ := sess.Limit(utils.StrToInt(args.P), (utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size)).OrderBy("success_num desc,id desc").FindAndCount(&hotTaskList) for _, v := range hotTaskList { tmp := map[string]string{ "id": utils.IntToStr(v.Id), "is_check": "0", "name": v.Name, "price": v.Price, "num": utils.IntToStr(v.Num), "icon": svc.ImageFormat(c, v.Logo), "timer": v.StartTime.Format("2006-01-02") + "至" + v.EndTime.Format("2006-01-02"), } counts, _ := svc.MasterDb(c).Where("uid=? and task_id=?", user.Info.Uid, v.Id).Count(&models.CampTaskOperatorTask{}) if counts > 0 { tmp["is_check"] = "1" } hotTask = append(hotTask, tmp) } taskCate := make([]map[string]string, 0) taskCateList := make([]models.CampTaskCate, 0) svc.MasterDb(c).Where(" is_show=?", 1).OrderBy("sort desc,id desc").Find(&taskCateList) for _, v := range taskCateList { if v.Pid > 0 { continue } tmp := map[string]string{ "name": v.Name, "value": utils.IntToStr(v.Id), } taskCate = append(taskCate, tmp) } res := map[string]interface{}{ "cate_list": taskCate, "settle_type": []map[string]string{ {"name": "T+1", "value": "0"}, {"name": "T+7", "value": "1"}, {"name": "月结", "value": "2"}, }, "total": total, "list": hotTask, } e.OutSuc(c, res, nil) return } func TaskDetail(c *gin.Context) { var args map[string]string if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } user := svc.GetUser(c) taskDb := implement.NewCampTaskListDb(svc.MasterDb(c)) task, _ := taskDb.GetCampTaskById(args["id"]) res := md2.TaskAllDetail{} res.Label = make([]string, 0) res.DetailInfo = make([]string, 0) if task != nil { taskDetailDb := implement.NewCampTaskDetailDb(svc.MasterDb(c)) taskDetail, _ := taskDetailDb.GetCampTaskDetailById(args["id"]) res = md2.TaskAllDetail{ Id: utils.IntToStr(task.Id), Name: task.Name, Icon: svc.ImageFormat(c, task.Logo), Price: task.Price, Num: utils.IntToStr(task.Num), Timer: task.StartTime.Format("2006-01-02") + "至" + task.EndTime.Format("2006-01-02"), } if taskDetail != nil { DetailInfo := make([]string, 0) json.Unmarshal([]byte(taskDetail.DetailInfo), &DetailInfo) res.DetailInfo = DetailInfo } label := make([]string, 0) json.Unmarshal([]byte(task.Label), &label) res.Label = label counts, _ := svc.MasterDb(c).Where("uid=? and task_id=?", user.Info.Uid, task.Id).Count(&models.CampTaskOperatorTask{}) if counts > 0 { res.IsCheck = "1" } } e.OutSuc(c, res, nil) return }