.net core 实例教程(十五)用户管理相关接口实现代码

本文源码下载地址:http://www.80cxy.com/Blog/ResourceView?arId=202403191532545995NAAqJh

系列教程地址:http://www.80cxy.com/Blog/ArticleView?arId=202403191517574161ay3s5V

本文实现用户管理相关模块代码,主要有分页获取用户列表、增加用户、修改用户、删除用户以及批量删除用户接口。下面直接上代码。

一、仓储代码

(一)仓储接口代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

/// <summary>

        /// 根据用户Id获取用户信息

        /// </summary>

        /// <param name="userId"></param>

        /// <returns></returns>

        Task<SysUser?> FindOneUserById(string id);

        /// <summary>

        /// 根据用户名查找用户

        /// </summary>

        /// <param name="userName">用户名</param>

        /// <returns></returns>

        Task<SysUser?> FindOneByUserName(string userName);

        /// <summary>

        /// 分页获取用户数据

        /// </summary>

        /// <param name="pageIndex">第几页</param>

        /// <param name="pageSize">每页条数</param>

        /// <param name="wheres">查询条件</param>

        /// <param name="sort">排序字段</param>

        /// <param name="order">排序分类</param>

        /// <returns></returns>

        Task<(SysUser[], int total)> GetUserList(int pageIndex, int pageSize, string wheres, string sort, string order);

        /// <summary>

        /// 添加用户

        /// </summary>

        /// <param name="userName">登录名</param>

        /// <param name="realName">真实姓名</param>

        /// <param name="userType">用户类型</param>

        /// <returns></returns>

        Task<SysUser> AddUser(string userName, string password, string realName, string photoPath);

        /// <summary>

        /// 修改用户

        /// </summary>

        /// <param name="id">用户id</param>

        /// <param name="userName">登录名</param>

        /// <param name="realName">真实姓名</param>

        /// <param name="userType">用户类型</param>

        /// <returns></returns>

        Task<SysUser> EditUser(string id, string userName, string realName, string photoPath);

        /// <summary>

        /// 根据用户id删除一个用户

        /// </summary>

        /// <param name="id">用户id</param>

        /// <returns></returns>

        Task DeleteUser(string id);

        /// <summary>

        /// 根据用户id数组,批量删除用户

        /// </summary>

        /// <param name="ids"></param>

        /// <returns></returns>

        void DeleteUserRange(string[] ids);

        /// <summary>

        /// 验证用户名密码是否正确

        /// </summary>

        /// <param name="user">用户信息</param>

        /// <param name="password">登录密码</param>

        /// <returns></returns>

        string CheckForSignInAsync(SysUser user, string password);

(二)仓储接口实现代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

public async Task<SysUser?> FindOneUserById(string id)

        {

            return await _dbContext.SysUser.FindAsync(Guid.Parse(id));

        }

        public async Task<SysUser?> FindOneByUserName(string userName)

        {

            return await _dbContext.SysUser.SingleOrDefaultAsync(m => m.UserName == userName);

        }

        public async Task<(SysUser[], int total)> GetUserList(int pageIndex, int pageSize, string wheres, string sort, string order)

        {

            //where查询条件

            List<DataFilter> searchParametersList = FormatParameters.GetSearchParameters(wheres);

            //order排序条件

            Dictionary<string, QueryOrderBy> orderBy = FormatParameters.GetOrderParameters(sort, order);

            //构造查询条件

            Expression<Func<SysUser, bool>> expression = DataFilterConvertor<SysUser>.ToExpression(searchParametersList);

            var listAll = _dbContext.SysUser.Where(expression);

            int total = listAll.Count();

            var list = await listAll.OrderConditions(orderBy).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToArrayAsync();

            return (list, total);

        }

        public async Task<SysUser> AddUser(string userName, string password, string realName, string photoPath)

        {

            SysUser model = SysUser.Add(userName, password, realName, photoPath);

            await _dbContext.SysUser.AddAsync(model);

            return model;

        }

        public async Task<SysUser> EditUser(string id, string userName, string realName, string photoPath)

        {

            var model = await FindOneUserById(id);

            model?.Edit(userName, realName, photoPath);

            return model;

        }

        public async Task DeleteUser(string id)

        {

            var model = await _dbContext.SysUser.FindAsync(Guid.Parse(id));

            if (model != null)

            {

                _dbContext.SysUser.Remove(model);

            }

        }

        public void DeleteUserRange(string[] ids)

        {

            _dbContext.SysUser.RemoveRange(_dbContext.SysUser.Where(x => ids.Contains(x.Id.ToString())).ToArray());

        }

二、领域服务代码

(一)领域服务接口代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

/// <summary>

        /// 分页获取用户数据

        /// </summary>

        /// <param name="pageIndex">第几页</param>

        /// <param name="pageSize">每页条数</param>

        /// <param name="wheres">查询条件</param>

        /// <param name="sort">排序字段</param>

        /// <param name="order">排序分类</param>

        /// <returns></returns>

        Task<ResponseContent> GetUserList(int pageIndex, int pageSize, string wheres, string sort, string order);

        /// <summary>

        /// 添加用户

        /// </summary>

        /// <param name="userName">登录名</param>

        /// <param name="realName">真实姓名</param>

        /// <param name="userType">用户类型</param>

        /// <returns></returns>

        Task<ResponseContent> AddUser(string userName, string password, string realName, string photoPath);

        /// <summary>

        /// 修改用户

        /// </summary>

        /// <param name="id">用户id</param>

        /// <param name="userName">登录名</param>

        /// <param name="realName">真实姓名</param>

        /// <param name="userType">用户类型</param>

        /// <returns></returns>

        Task<ResponseContent> EditUser(string id, string userName, string realName, string photoPath);

        /// <summary>

        /// 根据用户id删除一个用户

        /// </summary>

        /// <param name="id">用户id</param>

        /// <returns></returns>

        Task<ResponseContent> DeleteUser(string id);

        /// <summary>

        /// 根据用户id数组,批量删除用户

        /// </summary>

        /// <param name="ids"></param>

        /// <returns></returns>

        ResponseContent DeleteUserRange(string[] ids);

(二)领域服务接口实现代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

public async Task<ResponseContent> GetUserList(int pageIndex, int pageSize, string wheres, string sort, string order)

        {

            ResponseContent response = new ResponseContent();

            (var list, int total) = await _systemDomainRepostory.GetUserList(pageIndex, pageSize, wheres, sort, order);

            return response.Ok(new { total = total, rows = list });

        }

        public async Task<ResponseContent> AddUser(string userName, string password, string realName, string photoPath)

        {

            ResponseContent response = new ResponseContent();

            await _systemDomainRepostory.AddUser(userName, Md5.Encrypt(password), realName, photoPath);

            return response.Ok();

        }

        public async Task<ResponseContent> EditUser(string id, string userName, string realName, string photoPath)

        {

            ResponseContent response = new ResponseContent();

            var model = await _systemDomainRepostory.EditUser(id, userName, realName, photoPath);

            return response.Ok();

        }

        public async Task<ResponseContent> DeleteUser(string id)

        {

            ResponseContent response = new ResponseContent();

            await _systemDomainRepostory.DeleteUser(id);

            return response.Ok();

        }

        public ResponseContent DeleteUserRange(string[] ids)

        {

            ResponseContent response = new ResponseContent();

            _systemDomainRepostory.DeleteUserRange(ids);

            return response.Ok();

        }

三、Controller代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

/// <summary>

        /// 获取用户列表

        /// </summary>

        /// <remarks>

        /// 描述:分页获取用户列表接口

        /// </remarks>

        /// <param name="req">请求参数</param>

        /// <returns></returns>

        [HttpPost]

        public async Task<ActionResult> GetUserList(PageGridRequest req)

        {

            return new JsonResult(await _systemDomainService.GetUserList(req.PageIndex, req.PageSize, req.Wheres, req.Sort, req.Order));

        }

        /// <summary>

        /// 添加用户

        /// </summary>

        /// <remarks>

        /// 描述:添加后台管理用户接口

        /// </remarks>

        /// <param name="req"></param>

        /// <returns></returns>

        [HttpPost]

        [UnitOfWork(typeof(SignUpDbContext))]

        public async Task<ActionResult> AddUser(AddUserRequest req)

        {

            return new JsonResult(await _systemDomainService.AddUser(req.UserName, req.Password, req.RealName, req.PhotoPath));

        }

        /// <summary>

        /// 修改用户

        /// </summary>

        /// <remarks>

        /// 描述:修改用户基本信息接口

        /// </remarks>

        /// <param name="req"></param>

        /// <returns></returns>

        [HttpPut]

        [UnitOfWork(typeof(SignUpDbContext))]

        public async Task<ActionResult> EditUser(EditUserRequest req)

        {

            return new JsonResult(await _systemDomainService.EditUser(req.Id, req.UserName, req.RealName, req.PhotoPath));

        }

        /// <summary>

        /// 删除用户

        /// </summary>

        /// <remarks>

        /// 描述:删除后台管理用户

        /// </remarks>

        /// <param name="id">用户ID</param>

        /// <returns></returns>

        [HttpDelete]

        [UnitOfWork(typeof(SignUpDbContext))]

        public async Task<ActionResult> DeleteUser(string id)

        {

            return new JsonResult(await _systemDomainService.DeleteUser(id));

        }

        /// <summary>

        /// 批量删除用户

        /// </summary>

        /// <remarks>

        /// 描述:批量删除用户信息

        /// </remarks>

        /// <param name="ids"></param>

        /// <returns></returns>

        [HttpDelete]

        [UnitOfWork(typeof(SignUpDbContext))]

        public ActionResult DeleteUserRange(string[] ids)

        {

            return new JsonResult(_systemDomainService.DeleteUserRange(ids));

        }

using FluentValidation;

namespace SignUp.WebApi.ViewModels.System

{

    public record AddUserRequest(string UserName, string Password, string RealName, string? PhotoPath);

    public class AddUserRequestValidator : AbstractValidator<AddUserRequest>

    {

        public AddUserRequestValidator()

        {

            RuleFor(x => x.UserName).NotEmpty();

            RuleFor(x => x.RealName).NotEmpty();

        }

    }

}

using FluentValidation;

namespace SignUp.WebApi.ViewModels.System

{

    public record EditUserRequest(string Id, string UserName, string RealName, string? PhotoPath);

    public class EditUserRequestValidator : AbstractValidator<EditUserRequest>

    {

        public EditUserRequestValidator()

        {

            RuleFor(x => x.Id).NotEmpty();

            RuleFor(x => x.UserName).NotEmpty();

            RuleFor(x => x.RealName).NotEmpty();

        }

    }

}

学习交流

附笔者学习 .net core开发时参考相关项目实例源码:asp.net core webapi项目实例源代码锦集下载(72个)

  • 23
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值