/// <summary> /// 关闭订单 /// </summary> /// <param name="or_id">订单id</param> /// <param name="us_id">用户id</param> /// <returns></returns> public static bool OrderClose(string or_id, string us_id) { JObject or_json = OrderDAL.GetInfo(or_id); string cmd; int flag = -1; if (or_json["us_id"].ToString() == us_id) { cmd = @"update [OrderDetails] set or_state=30 where or_id=@or_id"; flag = 0; } else { cmd = @"update [OrderDetails] set or_state=30 where or_id=@or_id and us_id=@us_id"; flag = 1; } bool result = DBHelper.Exec(cmd, "@or_id", or_id) > 0; if (flag == 0) { string cmd2 = @"update [Order] set or_state=30 where or_id=@or_id and us_id=@us_id"; return(DBHelper.Exec(cmd2, "@or_id", or_id, "@us_id", us_id) > 0); } return(false); }
/// <summary> /// 作为司机邀请乘客 /// </summary> /// <param name="or_id">乘客订单id</param> /// <param name="us_id">司机用户id</param> /// <returns></returns> public static bool InviteOrder(string or_id, string us_id) { CheckAvailability(); JObject or_json = OrderDAL.GetInfo(or_id); JObject ods_json = OrderDAL.GetOrderDetailsInfo(or_id, or_json["us_id"].ToString()); if (or_json == null) { return(false); } string cmd = @"insert [OrderDetails](or_id, us_id, price, or_state, [identity]) values(@or_id, @us_id, @price, @or_state, @identity)"; bool result = DBHelper.Exec(cmd, "@or_id", or_id, "@us_id", us_id, "@or_state", 15, "@price", ods_json["price"].ToString(), "@identity", "1") > 0; return(result); }
/// <summary> /// 获取已完成订单 /// </summary> /// <param name="us_id">用户id</param> /// <returns></returns> public static JObject GetCompleted(string us_id, int curpage, int pagecount) { CheckAvailability(); string cmd = @"select od.* from [Order] od, [OrderDetails] ods where od.or_id=ods.or_id and (ods.us_id=@us_id) and (ods.or_state=20) order by ods.or_state, ods.time desc"; string offset = @" offset @passcount ROWS fetch next @pagecount ROWS only"; int passcount = (curpage - 1) * pagecount; cmd += offset; JArray or_jarr = DBHelper.GetData(cmd, "@us_id", us_id, "@passcount", passcount, "@pagecount", pagecount); string cmd_ods = @"select * from [OrderDetails] ods where or_id=@or_id and (or_state=0 or or_state=1 or or_state=20) order by [identity] desc"; JArray search_jarr = new JArray(); foreach (JObject item in or_jarr) { JObject json = new JObject(); json.Add("order", item); //json.Add("user", UserDAL.GetInfo(item["us_id"].ToString())); JObject ods_json = OrderDAL.GetOrderDetailsInfo(item["or_id"].ToString(), item["us_id"].ToString()); json.Add("orderdetail", ods_json); JObject owner = OrderDAL.GetOrderDetailsInfo(item["or_id"].ToString(), us_id); json.Add("owner", owner); JObject carus_tmp = OrderDAL.GetOrderCar(item["or_id"].ToString()); JObject carus = new JObject(); if (carus_tmp != null) { carus.Add("id", carus_tmp["id"]); carus.Add("tel", carus_tmp["tel"]); carus.Add("name", carus_tmp["name"]); //JObject carowner_json = } json.Add("carus", carus_tmp == null ? null : carus); JArray ord_jarr = DBHelper.GetData(cmd_ods, "@or_id", item["or_id"].ToString()); JArray info_jarr = new JArray(); //if (ods_json["identity"].ToString() == "1" && ods_json["us_id"].ToString() == us_id) { foreach (JObject tmp in ord_jarr) { if (tmp["us_id"].ToString() == us_id) { continue; } if (owner["identity"].ToString() == "0" && tmp["identity"].ToString() == "0") { continue; } JObject us_json = UserDAL.GetInfo(tmp["us_id"].ToString()); us_json.Remove("password"); us_json.Remove("idcard"); us_json.Remove("type"); us_json.Remove("time"); JObject info_json = new JObject(); info_json.Add("user", us_json); info_json.Add("orderdetail", tmp); info_jarr.Add(info_json); } } json.Add("info", info_jarr); search_jarr.Add(json); } int count = GetCompletedCount(us_id); int pages = count / pagecount + (count % pagecount > 0 ? 1 : 0); JObject ret_json = new JObject(); ret_json.Add("data", search_jarr); ret_json.Add("pages", pages); return(ret_json); }