package svc import ( "applet/app/comm/e" "applet/app/comm/svc" "applet/app/comm/utils" "applet/app/store/md" "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models" "encoding/json" "github.com/gin-gonic/gin" "strings" "time" ) func ProjectList(c *gin.Context) { var args md.ProjectReq if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } res := ProjectComm(c, args) e.OutSuc(c, res, nil) return } func ProjectDetail(c *gin.Context) { var args md.ProjectReq if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } args.P = "1" list := ProjectComm(c, args) res := map[string]interface{}{} if len(list) > 0 { res = list[0] } e.OutSuc(c, res, nil) return } func ProjectLikeList(c *gin.Context) { var args md.ProjectReq if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } var project models.CampTaskProject svc.MasterDb(c).Where("id=?", project.Id).Get(&project) args.Id = "" args.Cid = utils.IntToStr(project.Cid) list := ProjectComm(c, args) res := map[string]interface{}{} if len(list) > 0 { res = list[0] } e.OutSuc(c, res, nil) return } func ProjectLike(c *gin.Context) { var args md.ProjectReq if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } user := svc.GetUser(c) count, _ := svc.MasterDb(c).Where("uid=? and project_id=?", user.Info.Uid, args.Id).Count(&models.CampTaskProjectUserLike{}) if count > 0 { e.OutErr(c, 400, e.NewErr(400, "意向已提交,负责人将与您对接")) return } var data = models.CampTaskProjectUserLike{ Uid: user.Info.Uid, ProjectId: utils.StrToInt(args.Id), CreateTime: time.Now(), } svc.MasterDb(c).Insert(&data) e.OutSuc(c, "success", nil) return } func ProjectComm(c *gin.Context, args md.ProjectReq) []map[string]interface{} { args.Size = "10" list := make([]map[string]interface{}, 0) var data = make([]models.CampTaskProject, 0) sess := svc.MasterDb(c).Where("state=?", 1) if args.Cid != "" { sess.And("cid=?", args.Cid) } if args.Keyword != "" { sess.And("name like ?", "%"+args.Keyword+"%") } if args.Id != "" { sess.And("id=?", args.Id) } if args.Price != "" { ex := strings.Split(args.Price, "_") sess.And("money>=?", ex[0]) sess.And("money 0 { firstImg = img[0] } detailInfo := make([]string, 0) json.Unmarshal([]byte(v.DetailInfo), &detailInfo) label := make([]string, 0) json.Unmarshal([]byte(v.Label), &label) tmp := map[string]interface{}{ "year": v.CreateTime.Format("2006") + "年", "id": utils.IntToStr(v.Id), "name": v.Name, "money": utils.Comm(v.Money), "img": firstImg, "video_info": v.VideoInfo, "img_list": img, "detail_info": detailInfo, "create_time": v.CreateTime.Format("2006-01-02 15:04:05"), "enterprise_info": enterpriseInfo1, "cate_name": "", "adv_word": v.AdvWord, "label": label, "is_like": "0", } if user != nil { count, _ := svc.MasterDb(c).Where("uid=? and project_id=?", user.Info.Uid, v.Id).Count(&models.CampTaskProjectUserLike{}) if count > 0 { tmp["is_like"] = "1" } } for _, v1 := range cate { if v1.Id == v.Cid { tmp["cate_name"] = v1.Name } } list = append(list, tmp) } return list }