/// <summary> /// 根据Code获取二维码登录 /// </summary> /// <param name="code"></param> /// <returns></returns> public static QrCodeLoginInfo GetByCode(string code) { var info = new QrCodeLoginInfo { Code = code }; info = AppConnectEntityProcedure.GetEntityInstanceFromCacheByExtendedId(info); if (info == null || info.IsEmpty) { var db = Database.GetDatabase(DatabaseName.AppConnect); info = SafeProcedure.ExecuteAndGetInstance <QrCodeLoginInfo>(db, "dbo.QrCodeLogin_GetByCode", parameterMapper => { parameterMapper.AddWithValue("@Code", new Guid(code)); }, BuildInfo); if (info != null) { info.IsEmpty = false; AppConnectEntityProcedure.SaveEntityInstanceToCache(info); } } return(info); }
/// <summary> /// 增加二维码登录 /// </summary> /// <param name="info"></param> /// <returns></returns> public void Add(QrCodeLoginInfo info) { ArgumentHelper.AssertIsTrue(info != null, "QrCodeLoginInfo is null"); ArgumentHelper.AssertNotNullOrEmpty(info.Code, "QrCodeLoginInfo.Code is null or empty"); ArgumentHelper.AssertIsTrue(info.TitaAppId > 0, "info.TitaAppId is less than 0"); QrCodeLoginDao.Insert(info); }
public void TestAdd() { var info = new QrCodeLoginInfo(); info.Code = Guid.NewGuid().ToString(); info.State = QrCodeLoginState.UnLogin; ProviderGateway.QrCodeLoginProvider.Add(info); }
/// <summary> /// 数据映射 /// </summary> /// <param name="record">记录</param> /// <param name="info">实体</param> private static void BuildInfo(IRecord record, QrCodeLoginInfo info) { info.Id = record.Get <int>("Id"); info.Code = record.Get <Guid>("Code").ToString(); info.TitaAppId = record.Get <int>("TitaAppId"); info.TenantId = record.Get <int>("TenantId"); info.UserId = record.Get <int>("UserId"); info.State = (QrCodeLoginState)record.Get <short>("State"); }
/// <summary> /// 更新二维码登录状态 /// </summary> /// <param name="info"></param> public static void UpdateState(QrCodeLoginInfo info) { var db = Database.GetDatabase(DatabaseName.AppConnect); SafeProcedure.ExecuteNonQuery(db, "dbo.QrCodeLogin_UpdateState", parameterMapper => { parameterMapper.AddWithValue("@Code", new Guid(info.Code)); parameterMapper.AddWithValue("@State", (short)info.State); }); AppConnectEntityProcedure.SaveEntityInstanceToCache(info); }
/// <summary> /// 生成二维码登录 /// </summary> /// <returns></returns> public string GenerateQrCode(int titaAppId) { var checkResult = ProviderGateway.AuthorizeProvider.CheckApp(titaAppId, ""); if (!checkResult) { AppConnectLogHelper.Error("GenerateQrCode--检查app失败"); return(null); } var qrCodeLoginInfo = new QrCodeLoginInfo { Code = Guid.NewGuid().ToString(), TitaAppId = titaAppId }; Add(qrCodeLoginInfo); return(qrCodeLoginInfo.Code); }
/// <summary> /// 增加二维码登录 /// </summary> /// <param name="qrCodeLoginInfo"></param> public static int Insert(QrCodeLoginInfo qrCodeLoginInfo) { var db = Database.GetDatabase(DatabaseName.AppConnect); int id = 0; SafeProcedure.ExecuteNonQuery(db, "dbo.QrCodeLogin_Insert", parameterMapper => { parameterMapper.AddWithValue("@Code", new Guid(qrCodeLoginInfo.Code)); parameterMapper.AddWithValue("@TitaAppId", qrCodeLoginInfo.TitaAppId); parameterMapper.AddWithValue("@TenantId", qrCodeLoginInfo.TenantId); parameterMapper.AddWithValue("@UserId", qrCodeLoginInfo.UserId); parameterMapper.AddWithValue("@State", (short)qrCodeLoginInfo.State); parameterMapper.AddTypedDbNull("@Id", ParameterDirectionWrap.Output, DbType.Int32); }, o => { id = (int)o.GetValue("@Id"); }); AppConnectEntityProcedure.SaveEntityInstanceToCache(qrCodeLoginInfo); AppConnectLogHelper.DebugFormat("增加二维码数据,返回值:{0}", id); return(id); }