using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Operation; using Sog; using LitJson; using SimpleHttpServer; using MySql.Data.MySqlClient; using ProtoCSStruct; namespace Operation { public class RecalledEmail { [RequestMapping("撤回邮件",PermissionCode.MAIL_RECALLED, toLog: true)] public static int OnRecalledEmailHttpReq(string httpApiCmd, JsonData jsonData, HttpResponse rsp, HttpRequest request, HttpQueryParams query, uint httpContextId) { TraceLog.Trace("RecalledEmail.OnRecalledEmailHttpReq url {0} ,param count {1} ,httpContextId {2}", request.Url, query.Count, httpContextId); string uuid = query.GetValue("uuid") == null ? "" : query.GetValue("uuid"); string id = query.GetValue("id") == null ? "" : query.GetValue("id"); string table = query.GetValue("table") == null ? "" : query.GetValue("table"); TraceLog.Trace("RecalledEmail.OnRecalledEmailHttpReq uuid {0} ,id {1}", uuid, id); RepeatedFixedStructString128_10 data = new RepeatedFixedStructString128_10(); data.Add(uuid); data.Add(id); data.Add(table); HttpApiRootHandler.FillHttpApiDbReq2MessageTaskDistributor(httpApiCmd, httpContextId, ref data); rsp.IsWaitFor = true; return 0; } public static int DoRecalledEmail(string httpApiCmd, SSHttpApiDbReq req, DBOperator dbOperator) { TraceLog.Trace("RecalledEmail.DoRecalledEmail HttpContextId {0}", req.HttpContextId); HttpRequestInfo m_request = null; LitJson.JsonData builder = new LitJson.JsonData(); try { var httpContextId = req.HttpContextId; m_request = OperationServer.m_httpService.m_requestList.Find(f => f.Http.id == httpContextId); if (req.Data.Count < 2) { TraceLog.Error("RecalledEmail.DoRecalledEmail param error"); builder["ret"] = 2; builder["msg"] = "参数错误"; } else dbOperator.DBRecalledEmail(req.Data[0].ToString(), req.Data[1].ToString(),req.Data[2].ToString(), builder); } catch (Exception ex) { TraceLog.Error("RecalledEmail.DoRecalledEmail Error Msg {0}", ex.Message); } finally { if (m_request != null) { m_request.Http.httpResponse.ContentAsUTF8 = builder.ToJson(); m_request.ProcessEnd = true; } } TraceLog.Trace("RecalledEmail.DoRecalledEmail success httpContextId {0}", req.HttpContextId); return 0; } } }