李昊 4 年之前
父节点
当前提交
4c25bbcc64

+ 19 - 3
gx_api/GxPress/Api/GxPress.Api/AppControllers/AddressBookGroupUserController.cs

@@ -1,6 +1,10 @@
+using System.Collections.Generic;
+using System.Linq;
 using System.Threading.Tasks;
+using Datory;
 using GxPress.Auth;
 using GxPress.Repository.Interface;
+using GxPress.Repository.Interface.Friends;
 using GxPress.Request.AddressBookGroupUser;
 using GxPress.Result.AddressBookGroupUser;
 using Microsoft.AspNetCore.Authorization;
@@ -20,11 +24,13 @@ namespace GxPress.Api.AppControllers
         private readonly ILogger<AppVersionController> _logger;
         private readonly IAddressBookGroupUserRepository _addressBookGroupUserRepository;
         private readonly ILoginContext _loginContext;
-        public AddressBookGroupUserController(ILogger<AppVersionController> logger, IAddressBookGroupUserRepository addressBookGroupUserRepository, ILoginContext loginContext)
+        private readonly IFriendsRepository friendsRepository;
+        public AddressBookGroupUserController(ILogger<AppVersionController> logger, IAddressBookGroupUserRepository addressBookGroupUserRepository, ILoginContext loginContext, IFriendsRepository friendsRepository)
         {
             _logger = logger;
             _addressBookGroupUserRepository = addressBookGroupUserRepository;
             _loginContext = loginContext;
+            this.friendsRepository = friendsRepository;
         }
 
         /// <summary>
@@ -44,7 +50,12 @@ namespace GxPress.Api.AppControllers
         [HttpPost("delete")]
         public async Task<bool> Deletes(AddressBookGroupUserDeleteRequest request)
         {
-            return await _addressBookGroupUserRepository.DeletesAsync(request.Ids);
+            if (await _addressBookGroupUserRepository.DeletesAsync(request.Ids))
+            {
+                var model = await _addressBookGroupUserRepository.GetAllAsync(Q.WhereIn(nameof(Entity.AddressBookGroupUser.Id), request.Ids));
+                return await friendsRepository.DeleteAsync(model.Select(n => n.UserId), _loginContext.AccountId);
+            }
+            return false;
         }
         /// <summary>
         /// 获取
@@ -66,7 +77,12 @@ namespace GxPress.Api.AppControllers
         [HttpPost("add")]
         public async Task<bool> Insert(AddressBookGroupUserInRequest request)
         {
-            return await _addressBookGroupUserRepository.InsertAsync(request);
+
+            if (await _addressBookGroupUserRepository.InsertAsync(request))
+            {
+                return await friendsRepository.UpdateAddressBookGroupId(new List<int> { request.UserId }, _loginContext.AccountId, request.AddressBookGroupId);
+            }
+            return false;
         }
         /// <summary>
         /// 移动分组成员

+ 13 - 2
gx_api/GxPress/Api/GxPress.Api/AppControllers/UserController.cs

@@ -13,6 +13,7 @@ using GxPress.Common.Validation;
 using GxPress.Entity;
 using GxPress.EnumConst;
 using GxPress.Repository.Interface;
+using GxPress.Repository.Interface.Friends;
 using GxPress.Request.App.User;
 using GxPress.Request.User;
 using GxPress.Request.UserMiddle;
@@ -47,10 +48,10 @@ namespace GxPress.Api.AppControllers
         private readonly IDistributedCache _cache;
         private readonly IUserLoginRepository userLoginRepository;
         private readonly IUserMiddleService userMiddleService;
-
+        private readonly IFriendsRepository friendsRepository;
         public UserController(IUserRepository userRepository, IOptions<JwtOptions> jwtOptions,
             ILogger<UserController> logger, IDepartmentRepository departmentRepository, ILoginContext loginContext,
-            IUserService userService, IFileLibraryRepository fileLibraryRepository, IDistributedCache cache, IUserLoginRepository userLoginRepository, IUserMiddleService userMiddleService)
+            IUserService userService, IFileLibraryRepository fileLibraryRepository, IDistributedCache cache, IUserLoginRepository userLoginRepository, IUserMiddleService userMiddleService, IFriendsRepository friendsRepository)
         {
             _userRepository = userRepository;
             _departmentRepository = departmentRepository;
@@ -62,6 +63,7 @@ namespace GxPress.Api.AppControllers
             _cache = cache;
             this.userLoginRepository = userLoginRepository;
             this.userMiddleService = userMiddleService;
+            this.friendsRepository = friendsRepository;
         }
         /// <summary>
         /// 登录
@@ -427,5 +429,14 @@ namespace GxPress.Api.AppControllers
         {
             return await _userService.FindUserInfoNoFriendsResultAsync(_loginContext.AccountId, keyword);
         }
+        /// <summary>
+        /// 删除我的好友
+        /// </summary>
+        /// <returns></returns>
+        [HttpDelete("friends")]
+        public async Task<bool> DeleteAsync(IEnumerable<int> friendsIds)
+        {
+            return await friendsRepository.DeleteAsync(friendsIds, _loginContext.AccountId);
+        }
     }
 }

+ 18 - 3
gx_api/GxPress/Api/GxPress.Api/WebControllers/AddressBookGroupUserController.cs

@@ -1,6 +1,10 @@
+using System.Collections.Generic;
+using System.Linq;
 using System.Threading.Tasks;
+using Datory;
 using GxPress.Auth;
 using GxPress.Repository.Interface;
+using GxPress.Repository.Interface.Friends;
 using GxPress.Request.AddressBookGroupUser;
 using GxPress.Result.AddressBookGroupUser;
 using Microsoft.AspNetCore.Authorization;
@@ -20,11 +24,13 @@ namespace GxPress.Api.AppControllers
         private readonly ILogger<AppVersionController> _logger;
         private readonly IAddressBookGroupUserRepository _addressBookGroupUserRepository;
         private readonly ILoginContext _loginContext;
-        public WebAddressBookGroupUserController(ILogger<AppVersionController> logger, IAddressBookGroupUserRepository addressBookGroupUserRepository, ILoginContext loginContext)
+        private readonly IFriendsRepository friendsRepository;
+        public WebAddressBookGroupUserController(ILogger<AppVersionController> logger, IAddressBookGroupUserRepository addressBookGroupUserRepository, ILoginContext loginContext, IFriendsRepository friendsRepository)
         {
             _logger = logger;
             _addressBookGroupUserRepository = addressBookGroupUserRepository;
             _loginContext = loginContext;
+            this.friendsRepository = friendsRepository;
         }
 
         /// <summary>
@@ -44,7 +50,12 @@ namespace GxPress.Api.AppControllers
         [HttpPost("delete")]
         public async Task<bool> Deletes(AddressBookGroupUserDeleteRequest request)
         {
-            return await _addressBookGroupUserRepository.DeletesAsync(request.Ids);
+            if (await _addressBookGroupUserRepository.DeletesAsync(request.Ids))
+            {
+                var model = await _addressBookGroupUserRepository.GetAllAsync(Q.WhereIn(nameof(Entity.AddressBookGroupUser.Id), request.Ids));
+                return await friendsRepository.DeleteAsync(model.Select(n => n.UserId), _loginContext.AccountId);
+            }
+            return false;
         }
         /// <summary>
         /// 获取
@@ -66,7 +77,11 @@ namespace GxPress.Api.AppControllers
         [HttpPost("add")]
         public async Task<bool> Insert(AddressBookGroupUserInRequest request)
         {
-            return await _addressBookGroupUserRepository.InsertAsync(request);
+            if (await _addressBookGroupUserRepository.InsertAsync(request))
+            {
+                return await friendsRepository.UpdateAddressBookGroupId(new List<int> { request.UserId }, _loginContext.AccountId, request.AddressBookGroupId);
+            }
+            return false;
         }
         /// <summary>
         /// 移动分组成员

+ 1 - 0
gx_api/GxPress/Api/GxPress.Api/WebControllers/WebGroupController.cs

@@ -76,6 +76,7 @@ namespace GxPress.Api.WebControllers
         /// <param name="categoryId"></param>
         /// <returns></returns>
         [HttpGet("category-list/{categoryId}")]
+        [AllowAnonymous]
         public async Task<IEnumerable<Entity.Group>> GetAllAsync(int categoryId)
         {
             return await _groupService.GetAllAsync(categoryId);

+ 1 - 0
gx_api/GxPress/Repository/GxPress.Repository.Implement/AddressBookGroupUserRepository.cs

@@ -119,6 +119,7 @@ namespace GxPress.Repository.Implement
                 AddressBookGroupId = request.AddressBookGroupId,
                 UserId = request.UserId
             };
+            //查询用户是否是好友
             return await _repository.InsertAsync(addressBookGroupUser) > 0;
         }
         /// <summary>