/// <summary> /// /// </summary> public static void AddAuthLog(this XAIReqBase req) { //TODO AUTH和Find记入参日志 using (var dbContext = new DbContextContainer(DbKind.MySql, DbName.FACEDb)._DataAccess) { try { var args = req.Args.ToEntity <XAIReqAuth>(); var dbAuthLog = new Db_AuthLog { AuthID = "".CreateKey(), AppCode = req.AppCode, PaperworkType = "IDCARD", PaperworkNo = args.UserInfo.PaperWorkNo, PhoneNo = args.UserInfo.PhoneNo, MessageIn = req.ToJson(), InTime = Convert.ToDateTime(req.ReqTime), AddDate = DateTime.Now, IsDelete = 0 }; dbContext.Entry(dbAuthLog).State = EntityState.Added; dbContext.SaveChanges(); req.RowId = dbAuthLog.Id; } catch (Exception ex) { LogModule.Error("Db Fail:" + ex.Message + (ex.InnerException == null ? "" : ex.InnerException.Message) + "\r\n参数:" + req.EntityToKeyValue(false)); } } }
/// <summary> /// 构造 /// </summary> /// <param name="_Req"></param> public BusinessBIDU(XAIReqBase _Req) { if (BIDUClientCache.Where(w => w.Key == _Req.AppCode).Count() == 0) { lock (BIDUClientCache) { using (var dbContext = new DbContextContainer(DbKind.MySql, DbName.FACEDb)._DataAccess) { var dbApp = dbContext.DbApp(_Req.AppCode); if (dbApp != null) { client = new Baidu.Aip.Face.Face(dbApp.AppKey.ToString(), dbApp.AppSecret.ToString()) { Timeout = 60000 // 修改超时时间 }; BIDUClientCache.AddOrUpdate(_Req.AppCode, client, (key, value) => value); } else { throw new Exception("Missing app config or not activated!"); } } } } else { client = BIDUClientCache.Where(w => w.Key == _Req.AppCode).FirstOrDefault().Value; } }
/// <summary> /// /// </summary> /// <param name="busKind"></param> /// <param name="req"></param> private void DoInit(string busKind, XAIReqBase req) { try { var builder = new ContainerBuilder(); builder.RegisterType(Type.GetType("XAI.Business.Business" + "BIDU")) .WithParameter("_Req", req) .As <IBusiness>(); _Business = builder.Build() .Resolve <IBusiness>(); } catch (Exception ex) { throw new Exception(ex.InnerException()); } }
/// <summary> /// /// </summary> protected void InvalidAppCode() { if (this.Request.Headers.ContentType == "application/json" || this.Request.Headers.ContentType == "application/json;") { var body = this.Request.Body.AsString(); LogModule.Info("XAI->Req--->入参:" + body); //支持Json传输 Args传对象 try { var _ReqJson = body.ToEntity <XAIReqBaseJson>(); _Req = new XAIReqBase() { AppCode = _ReqJson.AppCode, Channel = _ReqJson.Channel, Args = _ReqJson.Args.ToJson(), Kind = _ReqJson.Kind, ReqTime = _ReqJson.ReqTime, TermCode = _ReqJson.TermCode, }; } catch { _Req = body.ToEntity <XAIReqBase>(); } } else { _Req = this.Bind <XAIReqBase>(); LogModule.Info("XAI->Req--->入参:" + _Req.ToJson()); } if (_Req.AppCode.IsNullOrEmptyOfVar()) { _Req.AppCode = "0000"; } else { _App = _AppCache.Where(w => w.Key == _Req.AppCode).FirstOrDefault().Value; } if (_App == null) { throw new Exception("Invalid AppCode!"); } _Req.ReqTime.IsDateTime("ReqTime"); _Req.Channel.IsNullOrEmptyOfVar("Channel"); _Req.Args.IsNullOrEmptyOfVar("Args"); }
/// <summary> /// /// </summary> public static void AddFindLog(this XAIReqBase req) { using (var dbContext = new DbContextContainer(DbKind.MySql, DbName.FACEDb)._DataAccess) { try { var args = req.Args.ToEntity <XAIReqFind>(); var dbIdentLog = new Db_IdentLog { TimeIn = Convert.ToDateTime(req.ReqTime), AddDate = DateTime.Now, IsDelete = 0 }; dbContext.Entry(dbIdentLog).State = EntityState.Added; dbContext.SaveChanges(); req.RowId = dbIdentLog.Id; } catch (Exception ex) { LogModule.Error("Db Fail:" + ex.Message + (ex.InnerException == null ? "" : ex.InnerException.Message) + "\r\n参数:" + req.EntityToKeyValue(false)); } } }
/// <summary> /// 构造函数 /// </summary> /// <param name="busKind"></param> /// <param name="req"></param> public BusinessContainer(string busKind, XAIReqBase req) { DoInit(busKind, req); }