Skip to content

Commit 373af79

Browse files
committed
update
1 parent 707e8ea commit 373af79

16 files changed

+546
-69
lines changed

Application/Application.csproj

+4
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,8 @@
1010
<ProjectReference Include="..\Repository\Repository\Repository.csproj" />
1111
</ItemGroup>
1212

13+
<ItemGroup>
14+
<Folder Include="User\ResponseModel\" />
15+
</ItemGroup>
16+
1317
</Project>

Application/Dto/BasePageList.cs

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
namespace Application.Dto
2+
{
3+
public class BasePageList
4+
{
5+
/// <summary>
6+
/// 当前页码
7+
/// </summary>
8+
public int PageIndex { get; set; }
9+
10+
/// <summary>
11+
/// 总页码
12+
/// </summary>
13+
public int TotalPages { get; set; }
14+
15+
/// <summary>
16+
/// 总条数
17+
/// </summary>
18+
public int TotalCount { get; set; }
19+
}
20+
}

Application/User/IUserOperationExampleServices.cs

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Application.User.ViewModel;
1+
using Application.User.RequestModel;
22
using Repository.Domain.User;
33

44
namespace Application.User
@@ -11,6 +11,13 @@ public interface IUserOperationExampleServices
1111
/// <returns></returns>
1212
Task<IEnumerable<UserInfo>> GetAllUserInfos();
1313

14+
/// <summary>
15+
/// 用户分页数据获取
16+
/// </summary>
17+
/// <param name="userInfoByPageListReq">userInfoByPageListReq</param>
18+
/// <returns></returns>
19+
Task<IEnumerable<UserInfo>> GetUserInfoByPageList(UserInfoByPageListReq userInfoByPageListReq);
20+
1421
/// <summary>
1522
/// 通过用户ID获取对应用户信息
1623
/// </summary>
@@ -23,15 +30,15 @@ public interface IUserOperationExampleServices
2330
/// </summary>
2431
/// <param name="userInfo">userInfo</param>
2532
/// <returns></returns>
26-
Task<UserInfo> AddUserInfo(UserInfoViewModel userInfo);
33+
Task<UserInfo> AddUserInfo(UserInfoReq userInfo);
2734

2835
/// <summary>
2936
/// 用户信息修改
3037
/// </summary>
3138
/// <param name="id">id</param>
3239
/// <param name="userInfo">userInfo</param>
3340
/// <returns></returns>
34-
Task<UserInfo> UpdateUserInfo(string id, UserInfoViewModel userInfo);
41+
Task<UserInfo> UpdateUserInfo(string id, UserInfoReq userInfo);
3542

3643
/// <summary>
3744
/// 用户信息删除

Application/User/IUserServices.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Application.User.ViewModel;
1+
using Application.User.RequestModel;
22
using Repository.Domain.User;
33

44
namespace Application.User
@@ -23,15 +23,15 @@ public interface IUserServices
2323
/// </summary>
2424
/// <param name="userInfo">userInfo</param>
2525
/// <returns></returns>
26-
Task<bool> AddUserInfo(UserInfoViewModel userInfo);
26+
Task<bool> AddUserInfo(UserInfoReq userInfo);
2727

2828
/// <summary>
2929
/// 用户信息修改
3030
/// </summary>
3131
/// <param name="id">id</param>
3232
/// <param name="userInfo">userInfo</param>
3333
/// <returns></returns>
34-
Task<UserInfo> UpdateUserInfo(string id, UserInfoViewModel userInfo);
34+
Task<UserInfo> UpdateUserInfo(string id, UserInfoReq userInfo);
3535

3636
/// <summary>
3737
/// 用户信息删除
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
namespace Application.User.RequestModel
2+
{
3+
public class UserInfoByPageListReq
4+
{
5+
/// <summary>
6+
/// 用户id
7+
/// </summary>
8+
public string Id { get; set; }
9+
10+
/// <summary>
11+
/// 用户昵称
12+
/// </summary>
13+
public string NickName { get; set; }
14+
15+
/// <summary>
16+
/// 当前页码
17+
/// </summary>
18+
public int PageIndex { get; set; }
19+
20+
/// <summary>
21+
/// 总条数
22+
/// </summary>
23+
public int PageSize { get; set; }
24+
}
25+
}

Application/User/ViewModel/UserInfoViewModel.cs Application/User/RequestModel/UserInfoReq.cs

+2-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Text;
5-
using System.Threading.Tasks;
6-
7-
namespace Application.User.ViewModel
1+
namespace Application.User.RequestModel
82
{
9-
public class UserInfoViewModel
3+
public class UserInfoReq
104
{
115
/// <summary>
126
/// 登录账号

Application/User/UserOperationExampleServices.cs

+86-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
using Application.User.ViewModel;
1+
using Amazon.Runtime.Internal;
2+
using Application.User.RequestModel;
3+
using Infrastructure.Extensions;
24
using MongoDB.Bson;
5+
using MongoDB.Driver;
36
using Repository.Domain.User;
47
using Repository.Repositories.User;
58

@@ -28,6 +31,31 @@ public async Task<IEnumerable<UserInfo>> GetAllUserInfos()
2831
return getAllUserInfos;
2932
}
3033

34+
/// <summary>
35+
/// 用户分页数据获取
36+
/// </summary>
37+
/// <param name="userInfoByPageListReq">userInfoByPageListReq</param>
38+
/// <returns></returns>
39+
public async Task<IEnumerable<UserInfo>> GetUserInfoByPageList(UserInfoByPageListReq request)
40+
{
41+
//创建查询条件构造器
42+
FilterDefinitionBuilder<UserInfo> buildFilter = Builders<UserInfo>.Filter;
43+
FilterDefinition<UserInfo> filter = buildFilter.Empty;
44+
SortDefinition<UserInfo> sort = Builders<UserInfo>.Sort.Ascending(m => m.CreateDate);
45+
if (!string.IsNullOrEmpty(request.NickName))
46+
{
47+
filter = buildFilter.Eq(m => m.NickName, request.NickName);
48+
}
49+
50+
if (!string.IsNullOrEmpty(request.Id))
51+
{
52+
filter = buildFilter.Eq(m => m.Id, request.Id);
53+
}
54+
55+
var list = await _userRepository.FindListByPageAsync(filter, request.PageIndex, request.PageSize, Array.Empty<string>(), sort);
56+
return list;
57+
}
58+
3159
/// <summary>
3260
/// 通过用户ID获取对应用户信息
3361
/// </summary>
@@ -44,15 +72,15 @@ public async Task<UserInfo> GetUserInfoById(string id)
4472
/// </summary>
4573
/// <param name="userInfo">userInfo</param>
4674
/// <returns></returns>
47-
public async Task<UserInfo> AddUserInfo(UserInfoViewModel userInfo)
75+
public async Task<UserInfo> AddUserInfo(UserInfoReq userInfo)
4876
{
4977
var addUserInfo = new UserInfo()
5078
{
5179
Id = ObjectId.GenerateNewId().ToString(),
5280
UserName = userInfo.UserName,
5381
Email = userInfo.Email,
5482
NickName = userInfo.NickName,
55-
Password = userInfo.Password,
83+
Password = MD5Helper.MDString(userInfo.Password),
5684
Status = 1,
5785
HeadPortrait = userInfo.HeadPortrait,
5886
CreateDate = DateTime.Now,
@@ -69,20 +97,64 @@ public async Task<UserInfo> AddUserInfo(UserInfoViewModel userInfo)
6997
/// <param name="id">id</param>
7098
/// <param name="userInfo">userInfo</param>
7199
/// <returns></returns>
72-
public async Task<UserInfo> UpdateUserInfo(string id, UserInfoViewModel userInfo)
100+
public async Task<UserInfo> UpdateUserInfo(string id, UserInfoReq userInfo)
73101
{
74-
var updateUserInfo = new UserInfo()
102+
#region 指定字段和条件修改
103+
104+
//修改条件
105+
var list = new List<FilterDefinition<UserInfo>>
75106
{
76-
UserName = userInfo.UserName,
77-
Email = userInfo.Email,
78-
NickName = userInfo.NickName,
79-
Password = userInfo.Password,
80-
Status = 1,
81-
HeadPortrait = userInfo.HeadPortrait,
82-
CreateDate = DateTime.Now,
83-
UpdateDate = DateTime.Now,
107+
Builders<UserInfo>.Filter.Eq("_id", new ObjectId(id))
84108
};
85-
await _userRepository.UpdateAsync(updateUserInfo, id);
109+
var filter = Builders<UserInfo>.Filter.And(list);
110+
111+
//指定要修改的字段内容
112+
//参考文章:https://chsakell.gitbook.io/mongodb-csharp-docs/crud-basics/update-documents
113+
var updateDefinition = Builders<UserInfo>.Update.
114+
Set(u => u.HeadPortrait, userInfo.HeadPortrait).
115+
Set(u => u.NickName, userInfo.NickName).
116+
Set(u => u.Status, userInfo.Status);
117+
118+
await _userRepository.UpdateAsync(filter, updateDefinition);
119+
120+
#endregion
121+
122+
#region 指定对象异步修改一条数据
123+
124+
//var updateUserInfo = new UserInfo
125+
//{
126+
// UserName = userInfo.UserName,
127+
// Password = MD5Helper.MDString(userInfo.Password),
128+
// Status = 1,
129+
// HeadPortrait = userInfo.HeadPortrait,
130+
// Email = userInfo.Email,
131+
// NickName = userInfo.NickName,
132+
// UpdateDate = DateTime.Now,
133+
//};
134+
//await _userRepository.UpdateAsync(updateUserInfo, id);
135+
136+
#endregion
137+
138+
#region 数据批量修改示例
139+
140+
////1.批量修改的条件(把创建时间CreateDate为近五日的用户状态更改为0)
141+
//var time = DateTime.Now;
142+
//var list = new List<FilterDefinition<UserInfo>>();
143+
//list.Add(Builders<UserInfo>.Filter.Gt("CreateDate", time));//大于当前时间
144+
//list.Add(Builders<UserInfo>.Filter.Lt("CreateDate", time.AddDays(5)));//小于当前时间+5day
145+
//var filter = Builders<UserInfo>.Filter.And(list);
146+
147+
////2.要修改的字段内容
148+
//var dic = new Dictionary<string, string>
149+
//{
150+
// { "Status", "0" }
151+
//};
152+
153+
////3.批量修改
154+
//await _userRepository.UpdateManayAsync(dic, filter);
155+
156+
#endregion
157+
86158
return await _userRepository.GetByIdAsync(id);
87159
}
88160

Application/User/UserServices.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Application.User.ViewModel;
1+
using Application.User.RequestModel;
22
using MongoDB.Bson;
33
using Repository.Domain.User;
44
using Repository.Repositories.User;
@@ -44,7 +44,7 @@ public async Task<UserInfo> GetUserInfoById(string id)
4444
/// </summary>
4545
/// <param name="userInfo">userInfo</param>
4646
/// <returns></returns>
47-
public async Task<bool> AddUserInfo(UserInfoViewModel userInfo)
47+
public async Task<bool> AddUserInfo(UserInfoReq userInfo)
4848
{
4949
try
5050
{
@@ -75,7 +75,7 @@ public async Task<bool> AddUserInfo(UserInfoViewModel userInfo)
7575
/// <param name="id">id</param>
7676
/// <param name="userInfo">userInfo</param>
7777
/// <returns></returns>
78-
public async Task<UserInfo> UpdateUserInfo(string id, UserInfoViewModel userInfo)
78+
public async Task<UserInfo> UpdateUserInfo(string id, UserInfoReq userInfo)
7979
{
8080
var updateUserInfo = new UserInfo()
8181
{

0 commit comments

Comments
 (0)