예제 #1
0
        public async Task <ResultModel> Run(AcceptParam acceptParam, AppSetting appSetting, HttpContext context)
        {
            var keyDto = acceptParam.AnalyzeParam <KeyReq <long> >();

            if (keyDto == null || keyDto.Key <= 0)
            {
                return(ResultModel.GetParamErrorModel(string.Empty, "参数异常!"));
            }

            var idField = EntityTools.GetField <ArticleInfo>(nameof(ArticleInfo.Id));

            var whereArr = new List <string>
            {
                SqlCharConst.DefaultWhere,
                $"{idField} = {keyDto.Key}"
//        $"Id = @Id"
            };

            var conn = context.GetConnection(appSetting.GetMysqlConn().FlagKey, appSetting.GetMysqlConn().ConnStr);

//      var info = await DapperTools.GetItem<ArticleInfo>(conn, EntityTools.GetTableName<ArticleInfo>(), whereArr, new { Id = keyDto.Key});
            var info = await DapperTools.GetItem <ArticleInfo>(conn, EntityTools.GetTableName <ArticleInfo>(), whereArr);

            if (info == null)
            {
                return(ResultModel.GetParamErrorModel(string.Empty, "此文章不存在或已删除!"));
            }

            return(ResultModel.GetSuccessModel(String.Empty, info));
        }
예제 #2
0
        public async Task <ResultModel> Run(AcceptParam acceptParam, AppSetting appSetting, HttpContext context)
        {
            var dto = acceptParam.AnalyzeParam <UserLoginReq>();

            if (dto == null)
            {
                return(ResultModel.GetNullErrorModel());
            }

            var msg = dto.ValidInfo();

            if (msg != string.Empty)
            {
                return(ResultModel.GetParamErrorModel(msg));
            }

            var whereList = new List <string>()
            {
                $"{nameof(UserLoginReq.UserName)} = @{nameof(UserLoginReq.UserName)}",
                $"{nameof(UserLoginReq.LoginPwd)} = @{nameof(UserLoginReq.LoginPwd)}",
            };

            var userInfo = await DapperTools.GetItem <UserInfo>(appSetting.GetMysqlConn(context), EntityTools.GetTableName <UserInfo>(), whereList, dto);

            var cusRedisHelper = MemoryCache.GetInstance().TryGet <CusRedisHelper>(appSetting.GetRedisConn().FlagKey);

            var token = Guid.NewGuid().ToString().Replace("-", "");

//      cusRedisHelper.StringSetAsync("user_api_token")

            //使用 is4 =-= gg

            throw new NotImplementedException();
        }
예제 #3
0
        public async Task <ResultModel> Run(AcceptParam acceptParam, AppSetting appSetting, HttpContext context, long userId)
        {
            var item = await DapperTools.GetItem <UserInfo>(appSetting.GetMysqlConn(context), EntityTools.GetTableName <UserInfo>(),
                                                            new List <string>()
            {
                $"id = {userId}"
            });

            return(ResultModel.GetSuccessModel(item));
        }
예제 #4
0
        public async Task <object> TestDb()
        {
            using (IDbConnection conn = new MySqlConnection(AppSetting.DbConnMap["Mysql"].ConnStr))
            {
                var param = new UserInfo()
                {
                    UserName = "******",
                    LoginPwd = "monster"
                };

                var whereList = new List <string>()
                {
                    $"{nameof(UserInfo.UserName)} = @{nameof(UserInfo.UserName)}",
                    $"{nameof(UserInfo.LoginPwd)} = @{nameof(UserInfo.LoginPwd)}"
                };

                //根据用户唯一标识查找用户信息
                var clientUserInfo =
                    await DapperTools.GetItem <UserInfo>(conn, EntityTools.GetTableName <UserInfo>(), whereList, param);

                return(clientUserInfo);

                //        try
                //        {
                //
                //          var content =
                //            "<p><span style=\"font-size:30px\"><span style=\"font-family:Impact, serif\">🤣</span></span></p><p><span style=\"font-size:30px\"><span style=\"font-family:Impact, serif\">真逗呢</span></span></p><p><span style=\"font-size:30px\"><span style=\"font-family:Impact, serif\">哈哈哈</span></span></p>";
                //          var param = new {content};
                //
                //          var result = conn.Execute($@"INSERT INTO article_info
                //        ( title, author, category, content,articleType)
                //
                //      VALUES( '', '', '', @content,0)",param);
                //          return result;
                //
                //        }
                //        catch (Exception e)
                //        {
                //          return JsonConvert.SerializeObject(e);
                //        }


                //        IEnumerable<ArticleInfo> articleInfos = conn.Query<ArticleInfo>(
                //          $@"
                //{SqlCharConst.SELECT} {string.Join(",", EntityTools.GetFields<ArticleInfo>())}
                //{SqlCharConst.FROM} {EntityTools.GetTableName<ArticleInfo>()}
                //{SqlCharConst.WHERE} {SqlCharConst.DefaultWhere}
                //");
            }
        }
예제 #5
0
        public async Task <ResultModel> Run(AcceptParam acceptParam, AppSetting appSetting, HttpContext context)
        {
            var req = acceptParam.AnalyzeParam <KeyReq <long> >();

            if (req == null || req.Key <= 0)
            {
                return(ResultModel.GetNullErrorModel());
            }

            var conn = appSetting.GetMysqlConn(context);

            var item = await DapperTools.GetItem <ArticleSingleDto>(conn, EntityTools.GetTableName <ArticleInfo>(), new []
            {
                $"{nameof(BaseModel.Id)} = {req.Key}",
                $"{nameof(BaseModel.ValidFlag)} = {(int)ValidFlagMenu.UseFul}",
            });

            return(ResultModel.GetSuccessModel(item));
        }
예제 #6
0
        public async Task <ResultModel> Run(AcceptParam acceptParam, AppSetting appSetting, HttpContext context, long userId)
        {
            var req = acceptParam.AnalyzeParam <AttentionUserReq>();

            if (req == null)
            {
                return(ResultModel.GetNullErrorModel());
            }

            var msg = req.ValidInfo();

            if (msg != string.Empty)
            {
                return(ResultModel.GetParamErrorModel(msg));
            }

            if (req.AttentionUser == userId)
            {
                return(ResultModel.GetParamErrorModel());
            }

            var conn = appSetting.GetMysqlConn(context);

            AttentionInfo oldInfo = await DapperTools.GetItem <AttentionInfo>(conn, EntityTools.GetTableName <AttentionInfo>(),
                                                                              new[]
            {
                $"{EntityTools.GetField<AttentionInfo>(nameof(AttentionInfo.AttentionUser))} ={req.AttentionUser}",
                $"{EntityTools.GetField<AttentionInfo>(nameof(AttentionInfo.UserId))} ={userId}",
            },
                                                                              new[]
            {
                nameof(BaseModel.Id),
            });

//      var isExists = await DapperTools.IsExists(conn, EntityTools.GetTableName<AttentionInfo>(),
//        new[]
//        {
//          $"{EntityTools.GetField<AttentionInfo>(nameof(AttentionInfo.AttentionUser))} ={req.AttentionUser}",
//          $"{EntityTools.GetField<AttentionInfo>(nameof(AttentionInfo.UserId))} ={userId}",
//        });

            if (oldInfo == null)
            {
                var param = (CreateAttentionParam)req;

                param.UserId = userId;

                var result = await DapperTools.CreateItem(conn, EntityTools.GetTableName <AttentionInfo>(), param);

                return(ResultModel.GetSuccessModel(result));
            }
            else
            {
                var editParam = new
                {
                    UpdateTime = DateTime.Now,
                    ValidFlag  = (int)ValidFlagMenu.UseFul,
                    req.Description,
                    req.GroupKey,
                };

                var setFieldList = new List <string>();

                setFieldList.Add(nameof(BaseModel.UpdateTime));
                setFieldList.Add(nameof(BaseModel.ValidFlag));

                var result = await DapperTools.Edit(conn, EntityTools.GetTableName <AttentionInfo>(), new[]
                {
                    $"{nameof(BaseModel.Id)}={oldInfo.Id}"
                }, null, editParam);

                return(ResultModel.GetSuccessModel(result));
            }
        }
예제 #7
0
        public async Task <ResultModel> Run(AcceptParam acceptParam, AppSetting appSetting, HttpContext context, long userId)
        {
            var req = acceptParam.AnalyzeParam <SingleActionArticleReq>();

            if (req == null)
            {
                return(ResultModel.GetNullErrorModel());
            }

            string msg;

            if ((msg = req.ValidInfo()) != string.Empty)
            {
                return(ResultModel.GetParamErrorModel(msg));
            }

            if (Enum.TryParse(req.ActionKey, true, out ArticleOptMenu opt))
            {
                var conn = appSetting.GetMysqlConn(context);

                var info = await DapperTools.GetItem <ArticleOptInfo>(conn, EntityTools.GetTableName <ArticleOptInfo>(),
                                                                      new List <string>()
                {
                    $"{EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.OptionType))} = {(int) opt}",
                    $"{EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.RelationKey))} = {req.ArticleId}",
                    $"{EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.ActionUser))} = {userId}",
                }, new[]
                {
                    nameof(BaseModel.Id),
                    nameof(BaseModel.ValidFlag)
                }, null);

                //        var validFlag = await DapperTools.SelectSingle<int?>(conn, EntityTools.GetTableName<ArticleOptInfo>(),
                //          new List<string>()
                //          {
                //            $"{nameof(BaseModel.Id)} = {req.ArticleId}",
                //            $"{EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.OptionType))} = {(int) opt}",
                //            $"{EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.RelationKey))} = {req.ArticleId}",
                //          }, nameof(BaseModel.ValidFlag));

                if (info != null)
                {
                    EditValidFlagParam param = new EditValidFlagParam()
                    {
                        Id         = info.Id,
                        UpdateTime = DateTime.Now
                    };
                    if (info.ValidFlag == (int)ValidFlagMenu.UnUseFul)
                    {
                        param.ValidFlag = ValidFlagMenu.UseFul;
                    }
                    else
                    {
                        param.ValidFlag = ValidFlagMenu.UnUseFul;
                    }

                    var result = await DapperTools.Edit(conn, EntityTools.GetTableName <ArticleOptInfo>(), new[]
                    {
                        $"{nameof(BaseModel.Id)} = {info.Id}",
                        $"{EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.ActionUser))} = {userId}",
                    }, null, param);


                    return(ResultModel.GetSuccessModel(null, $"修改成功-{result}"));
                }
                else
                {
                    var param = new CreateArticleOptInfoParam()
                    {
                        ActionKey   = opt.ToString(),
                        Count       = 1,
                        OptionType  = (int)opt,
                        RelationKey = req.ArticleId,
                        ActionUser  = userId
                    };

                    var result = await DapperTools.CreateItem(conn, EntityTools.GetTableName <ArticleOptInfo>(), param);

                    return(ResultModel.GetSuccessModel(null, $"添加成功-{result}"));
                }

//        return ResultModel.GetSuccessModel(validFlag);

//        if (await DapperTools.IsExists(conn, EntityTools.GetTableName<ArticleOptInfo>(), new List<string>()
//        {
//          $"{nameof(BaseModel.Id)} = {req.ArticleId}",
//          $"{EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.OptionType))} = {(int)opt}",
//          $"{EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.RelationKey))} = {req.ArticleId}",
//        }))
//        {
//          return ResultModel.GetDealErrorModel("请勿重复操作!");
//        }
//        else
//        {
//
//          var param = new CreateArticleOptInfoParam()
//          {
//            ActionKey = opt.ToString(),
//            Count = 1,
//            OptionType = (int) opt,
//            RelationKey = req.ArticleId
//          };
//
//          var result = await DapperTools.CreateItem(conn, EntityTools.GetTableName<ArticleOptInfo>(), param);
//
//          return ResultModel.GetSuccessModel(result);
//
//        }
            }
            else
            {
                return(ResultModel.GetDealErrorModel($"操作<{req.ActionKey}>不存在!"));
            }
        }
        public async Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
        {
            if (true)
            {
                //验证失败
                context.Result =
                    new GrantValidationResult(TokenRequestErrors.InvalidGrant, "invalid custom credential");
            }

            Logger.Debug(JsonConvert.SerializeObject(AppSetting));

            UserInfo clientUserInfo = null;

            IDbConnection conn = new MySqlConnection(AppSetting.DbConnMap["Mysql"].ConnStr);

//        var param = new UserInfo()
//        {
//          UserName = context.UserName,
//          LoginPwd = context.Password
//        };

            var whereList = new List <string>()
            {
                $"{nameof(UserInfo.UserName)} = '{context.UserName}'",
                $"{nameof(UserInfo.LoginPwd)} = '{context.Password}'"
            };

            //根据用户唯一标识查找用户信息
            clientUserInfo = await DapperTools.GetItem <UserInfo>(conn, EntityTools.GetTableName <UserInfo>(), whereList);

//        clientUserInfo = conn.QueryFirst<UserInfo>(
//          $"select * from article_info WHERE {nameof(UserInfo.UserName)} = {context.UserName} AND {nameof(UserInfo.LoginPwd)} = {context.Password}");

            //此处使用context.UserName, context.Password 用户名和密码来与数据库的数据做校验
            if (clientUserInfo != null)
            {
//                var user = _users.FindByUsername(context.UserName);

                //验证通过返回结果
                //subjectId 为用户唯一标识 一般为用户id
                //authenticationMethod 描述自定义授权类型的认证方法
                //authTime 授权时间
                //claims 需要返回的用户身份信息单元 此处应该根据我们从数据库读取到的用户信息 添加Claims 如果是从数据库中读取角色信息,那么我们应该在此处添加

                context.Result = new GrantValidationResult(clientUserInfo.RoleCode,
                                                           OidcConstants.AuthenticationMethods.Password, _clock.UtcNow.UtcDateTime, new[]
                {
                    new Claim(JwtClaimTypes.Id, clientUserInfo.Id.ToString()),
                });

                //                context.Result = new GrantValidationResult(
                ////                    user.SubjectId ?? throw new ArgumentException("Subject ID not set", nameof(user.SubjectId)),
                ////                    OidcConstants.AuthenticationMethods.Password, _clock.UtcNow.UtcDateTime,
                ////                    user.Claims
                //                    );
            }
            else
            {
                //验证失败
                context.Result =
                    new GrantValidationResult(TokenRequestErrors.InvalidGrant, "invalid custom credential");
            }

            return;
        }