package app import ( . "code.hoteas.com/golang/hotime" . "code.hoteas.com/golang/hotime/common" ) var FavoriteCtr = Ctr{ //关注 "follow": func(that *Context) { if that.Session("user_id").Data == nil { that.Display(2, "没有登录") return } policyId := ObjToInt(that.Req.FormValue("policy_id")) notifyId := ObjToInt(that.Req.FormValue("notify_id")) declareId := ObjToInt(that.Req.FormValue("declare_id")) providerId := ObjToInt(that.Req.FormValue("provider_id")) favorite := Map{} data := Map{} if providerId != 0 { data = Map{"provider_id": providerId, "user_id": that.Session("user_id").Data} favorite = that.Db.Get("favorite", "*", Map{"AND": data}) data["modify_time[#]"] = "now()" data["del_flag"] = 0 data["type"] = 1 } else if notifyId != 0 { article := that.Db.Get("article", "id", Map{"notify_id": notifyId}) if article != nil { data = Map{"notify_id": notifyId, "article_id": article.GetCeilInt("id"), "user_id": that.Session("user_id").Data} favorite = that.Db.Get("favorite", "*", Map{"AND": data}) data["modify_time[#]"] = "now()" data["del_flag"] = 0 data["type"] = 2 } } else if policyId != 0 { article := that.Db.Get("article", "id", Map{"policy_id": policyId}) if article != nil { data = Map{"policy_id": policyId, "article_id": article.GetCeilInt("id"), "user_id": that.Session("user_id").Data} favorite = that.Db.Get("favorite", "*", Map{"AND": data}) data["modify_time[#]"] = "now()" data["del_flag"] = 0 data["type"] = 3 } } else if declareId != 0 { article := that.Db.Get("article", "id", Map{"declare_id": declareId}) if article != nil { data = Map{"declare_id": declareId, "article_id": article.GetCeilInt("id"), "user_id": that.Session("user_id").Data} favorite = that.Db.Get("favorite", "*", Map{"AND": data}) data["modify_time[#]"] = "now()" data["del_flag"] = 0 data["type"] = 4 } } if len(data) != 0 { isFavorite := int64(0) if favorite != nil { isFavorite = that.Db.Update("favorite", data, Map{"id": favorite.GetCeilInt("id")}) } else { data["create_time[#]"] = "now()" isFavorite = that.Db.Insert("favorite", data) } if isFavorite != 0 { if data.GetCeilInt("article_id") != 0 { that.Db.Update("article", Map{"favorite_num[#]": "favorite_num+1"}, Map{"id": data.GetCeilInt("article_id")}) } if data.GetCeilInt("notify_id") != 0 { that.Db.Update("notify", Map{"favorite_num[#]": "favorite_num+1"}, Map{"id": data.GetCeilInt("notify_id")}) } if data.GetCeilInt("policy_id") != 0 { that.Db.Update("policy", Map{"favorite_num[#]": "favorite_num+1"}, Map{"id": data.GetCeilInt("policy_id")}) } if data.GetCeilInt("declare_id") != 0 { that.Db.Update("declare", Map{"favorite_num[#]": "favorite_num+1"}, Map{"id": data.GetCeilInt("declare_id")}) } if data.GetCeilInt("provider_id") != 0 { that.Db.Update("provider", Map{"favorite_num[#]": "favorite_num+1"}, Map{"id": data.GetCeilInt("provider_id")}) } } that.Display(0, "关注成功") return } that.Display(4, "找不到关注对象") return }, //关注 "unfollow": func(that *Context) { if that.Session("user_id").Data == nil { that.Display(2, "没有登录") return } policyId := ObjToInt(that.Req.FormValue("policy_id")) notifyId := ObjToInt(that.Req.FormValue("notify_id")) declareId := ObjToInt(that.Req.FormValue("declare_id")) providerId := ObjToInt(that.Req.FormValue("provider_id")) favorite := Map{} data := Map{} if providerId != 0 { data = Map{"provider_id": providerId, "user_id": that.Session("user_id").Data} favorite = that.Db.Get("favorite", "*", Map{"AND": data}) data["modify_time[#]"] = "now()" data["del_flag"] = 1 data["type"] = 1 } else if notifyId != 0 { article := that.Db.Get("article", "id", Map{"notify_id": notifyId}) if article != nil { data = Map{"notify_id": notifyId, "article_id": article.GetCeilInt("id"), "user_id": that.Session("user_id").Data} favorite = that.Db.Get("favorite", "*", Map{"AND": data}) data["modify_time[#]"] = "now()" data["del_flag"] = 1 data["type"] = 2 } } else if policyId != 0 { article := that.Db.Get("article", "id", Map{"policy_id": policyId}) if article != nil { data = Map{"policy_id": policyId, "article_id": article.GetCeilInt("id"), "user_id": that.Session("user_id").Data} favorite = that.Db.Get("favorite", "*", Map{"AND": data}) data["modify_time[#]"] = "now()" data["del_flag"] = 1 data["type"] = 3 } } else if declareId != 0 { article := that.Db.Get("article", "id", Map{"declare_id": declareId}) if article != nil { data = Map{"declare_id": declareId, "article_id": article.GetCeilInt("id"), "user_id": that.Session("user_id").Data} favorite = that.Db.Get("favorite", "*", Map{"AND": data}) data["modify_time[#]"] = "now()" data["del_flag"] = 1 data["type"] = 4 } } if len(data) != 0 && favorite != nil { isFavorite := that.Db.Update("favorite", data, Map{"id": favorite.GetCeilInt("id")}) if isFavorite != 0 { if data.GetCeilInt("article_id") != 0 { that.Db.Update("article", Map{"favorite_num[#]": "favorite_num-1"}, Map{"id": data.GetCeilInt("article_id")}) } if data.GetCeilInt("notify_id") != 0 { that.Db.Update("notify", Map{"favorite_num[#]": "favorite_num-1"}, Map{"id": data.GetCeilInt("notify_id")}) } if data.GetCeilInt("policy_id") != 0 { that.Db.Update("policy", Map{"favorite_num[#]": "favorite_num-1"}, Map{"id": data.GetCeilInt("policy_id")}) } if data.GetCeilInt("declare_id") != 0 { that.Db.Update("declare", Map{"favorite_num[#]": "favorite_num-1"}, Map{"id": data.GetCeilInt("declare_id")}) } if data.GetCeilInt("provider_id") != 0 { that.Db.Update("provider", Map{"favorite_num[#]": "favorite_num-1"}, Map{"id": data.GetCeilInt("provider_id")}) } } that.Display(0, "取消关注成功") return } that.Display(0, "没有关注") return }, "search": func(that *Context) { if that.Session("user_id").Data == nil { that.Display(2, "没有登录") return } page := ObjToInt(that.Req.FormValue("page")) pageSize := ObjToInt(that.Req.FormValue("pageSize")) tp := ObjToInt(that.Req.FormValue("type")) if page < 1 { page = 1 } if pageSize <= 0 { pageSize = 20 } data := Map{"del_flag": 0, "user_id": that.Session("user_id").Data} if tp != 0 { data["type"] = tp } if len(data) > 1 { data = Map{"AND": data, "ORDER": "modify_time DESC"} } count := that.Db.Count("favorite", data) res := that.Db.Page(page, pageSize).PageSelect("favorite", "*", data) for _, v := range res { if v.GetCeilInt64("policy_id") != 0 { v["policy"] = that.Db.Get("policy", "id,tag", Map{"id": v.GetCeilInt64("policy_id")}) } if v.GetCeilInt64("declare_id") != 0 { v["declare"] = that.Db.Get("declare", "id,money_scope_min,money_scope_max,status", Map{"id": v.GetCeilInt64("declare_id")}) } if v.GetCeilInt64("notify_id") != 0 { v["notify"] = that.Db.Get("notify", "id,tag", Map{"id": v.GetCeilInt64("notify_id")}) } if v.GetCeilInt64("article_id") != 0 { v["article"] = that.Db.Get("article", "id,title,description,department_id,click_num+click_num_base AS click_num,"+ "favorite_num_base+favorite_num AS favorite_num,dispatch_num,dispatch_name,prepare_date,release_time,expire_date,area_id,status", Map{"id": v.GetCeilInt64("article_id")}) } if v.GetCeilInt64("provider_id") != 0 { v["provider"] = that.Db.Get("provider", "id,name,level,discount,avatar,title,description,"+ "click_num_base+click_num AS click_num,handle_num_base+handle_num AS handle_num,favorite_num_base+favorite_num AS favorite_num,modify_time", Map{"id": v.GetCeilInt64("provider_id")}) } } that.Display(0, Map{"total": count, "data": res}) }, }