public IHttpActionResult Detail(string UserID, string MomentID) { DisplayedMoment dm = new DisplayedMoment(); string Email = api.UserIDToEmail(UserID); //连接数据库 OracleConnection conn = new OracleConnection(DBAccess.connStr); try { conn.Open(); } catch (Exception ex) { throw (ex); } OracleCommand cmd = new OracleCommand(); cmd.Connection = conn; OracleDataReader rd = Access.GetDataReader(Access.Select("*", "moment", "id='" + MomentID + "'")); Moment mmt = new Moment(); if (rd.Read()) { mmt.ID = rd[0].ToString(); mmt.SenderID = rd[1].ToString(); mmt.Content = rd[2].ToString(); mmt.LikeNum = Convert.ToInt32(rd[3]); mmt.ForwardNum = Convert.ToInt32(rd[4]); mmt.CollectNum = Convert.ToInt32(rd[5]); mmt.CommentNum = Convert.ToInt32(rd[6]); if (rd[7] is DBNull) { mmt.Time = null; } else { mmt.Time = rd[7].ToString(); } if (rd[8] is DBNull) { mmt.QuoteMID = null; } else { mmt.QuoteMID = rd[8].ToString(); } } dm = All_Info_Of(mmt, Email, 1000); dm.FollowState = api.CheckFollowState(UserID, mmt.SenderID); return(Json(dm)); }
/// <summary> /// 获得一条动态的相关信息 /// </summary> /// <param name="mmt">Moment类型的动态</param> /// <param name="email">发送请求的用户的邮箱</param> /// <returns>用于展示的DisplayedMoment类型</returns> private DisplayedMoment All_Info_Of(Moment mmt, string email, int comment_limit) { DBAccess access = new DBAccess(); DisplayedMoment dm = new DisplayedMoment(); //获取动态内容 dm.moment = mmt; //获取发送动态的用户信息 Users user = api.GetUserInfoByID(mmt.SenderID); dm.user_email = user.Email; dm.user_username = user.Username; dm.user_bio = user.Bio; //获取原始动态的用户信息 OracleDataReader rd = access.GetDataReader(access.Select("sender_ID", "moment", "ID='" + mmt.QuoteMID + "'")); if (rd.Read()) { Users forwarded = api.GetUserInfoByID(rd[0].ToString()); dm.forwarded_id = forwarded.Email; dm.forwarded_username = forwarded.Username; } else { dm.forwarded_id = null; dm.forwarded_username = null; } //获取标签信息 dm.tags = new List <string>(); string CommandText = "select tag from moment_tag where moment_id = '" + mmt.ID + "'"; rd = access.GetDataReader(CommandText); while (rd.Read()) { dm.tags.Add(rd[0].ToString()); } //获取评论信息 dm.comments = null; //获知是否点赞过 dm.liked = api.CheckLikeState(email, mmt.ID); //获知是否收藏过 dm.collected = api.CheckCollectState(email, mmt.ID); return(dm); }
public IHttpActionResult Followings(string Email, int Page) { OracleConnection conn = new OracleConnection(DBAccess.connStr); OracleCommand CMD = new OracleCommand(); CMD.Connection = conn; List <DisplayedMoment> moments = new List <DisplayedMoment>(); //获取用户ID string UserID = api.EmailToUserID(Email); //获取朋友圈中所有Moment CMD.CommandText = "select moment.id, sender_id, content, like_num, forward_num, collect_num, comment_num, TO_CHAR(time,'YYYY-MM-DD HH24:MI:SS'), quote_mid " + "from users,moment " + "where moment.sender_id = users.id and " + "(users.id = '" + UserID + "' or " + "users.id in (select following_id " + "from follow_user " + "where follow_user.user_id = '" + UserID + "')) " + "order by moment.time desc"; try { conn.Open(); } catch (Exception ex) { throw (ex); } DataSet ds = new DataSet(); OracleDataAdapter OraDA = new OracleDataAdapter(CMD.CommandText, conn); OraDA.Fill(ds, 5 * (Page - 1), 5, "ds"); foreach (DataRow row in ds.Tables[0].Rows) { DisplayedMoment DM = new DisplayedMoment(); //动态内容 DM.moment = new Moment(); DM.moment.ID = row[0].ToString(); DM.moment.SenderID = row[1].ToString(); DM.moment.Content = row[2].ToString(); DM.moment.LikeNum = Convert.ToInt32(row[3]); DM.moment.ForwardNum = Convert.ToInt32(row[4]); DM.moment.CollectNum = Convert.ToInt32(row[5]); DM.moment.CommentNum = Convert.ToInt32(row[6]); DM.moment.Time = row[7].ToString(); DM.moment.QuoteMID = row[8].ToString(); //是否有更多评论 if (DM.moment.CommentNum > 4) { DM.more_comments = true; } //发送动态的用户信息 Users user = api.GetUserInfoByID(DM.moment.SenderID); DM.user_email = user.Email; DM.user_username = user.Username; DM.user_bio = user.Bio; //原始动态的用户信息 //OracleDataReader R = access.GetDataReader(access.Select("sender_ID", "moment", "ID='" + DM.moment.QuoteMID + "'")); CMD.CommandText = "select sender_ID from moment where ID='" + DM.moment.QuoteMID + "'"; OracleDataReader R = CMD.ExecuteReader(); if (R.Read()) { Users forwarded = api.GetUserInfoByID(R[0].ToString()); DM.forwarded_id = forwarded.ID; DM.forwarded_username = forwarded.Username; } else { DM.forwarded_id = null; DM.forwarded_username = null; } //获取标签信息 DM.tags = new List <string>(); CMD.CommandText = "select tag from moment_tag where moment_id = '" + DM.moment.ID + "'"; //R = access.GetDataReader(cmd); R = CMD.ExecuteReader(); while (R.Read()) { DM.tags.Add(R[0].ToString()); } //获取评论信息 DM.comments = GetComments(DM.moment.ID, 4); //获知是否点赞过 DM.liked = api.CheckLikeState(Email, DM.moment.ID); //获知是否收藏过 DM.collected = api.CheckCollectState(Email, DM.moment.ID); moments.Add(DM); } conn.Close(); return(Json(moments)); }