李昊 4 lat temu
rodzic
commit
75d0d38dbe

+ 1 - 1
gx_api/GxPress/Api/GxPress.Api/AppControllers/UserController.cs

@@ -348,7 +348,7 @@ namespace GxPress.Api.AppControllers
         [HttpPost("search")]
         public async Task<IEnumerable<UserInfoResult>> SearchUserName(SearchUserNameRequest request)
         {
-            return await _userRepository.SearchUserNameAsync(request);
+            return await _userService.GetSearchUserInfoResults(_loginContext.AccountId,request.Key);
         }
 
         /// <summary>

+ 1 - 1
gx_api/GxPress/Api/GxPress.Api/WebControllers/UserController.cs

@@ -357,7 +357,7 @@ namespace GxPress.Api.WebControllers
         [HttpPost("search")]
         public async Task<IEnumerable<UserInfoResult>> SearchUserName(SearchUserNameRequest request)
         {
-            return await _userRepository.SearchUserNameAsync(request);
+            return await _userService.GetSearchUserInfoResults(_loginContext.AccountId, request.Key);
         }
 
         /// <summary>

+ 23 - 0
gx_api/GxPress/Repository/GxPress.Repository.Implement/UserRepository.cs

@@ -1004,5 +1004,28 @@ namespace GxPress.Repository.Implement
                 item.AvatarUrl = StringUtils.AddDomainMin(item.AvatarUrl);
             return result;
         }
+
+        /// <summary>
+        /// 搜索好友部门用户
+        /// </summary>
+        /// <param name="keyword"></param>
+        /// <param name="userIds"></param>
+        /// <returns></returns>
+        public async Task<IEnumerable<UserInfoResult>> GetSearchUserInfoResults(string keyword, IEnumerable<int> userIds)
+        {
+            userIds = userIds.Distinct();
+            var sqlStr = "";
+            foreach (var item in userIds)
+                sqlStr += $"{item},";
+            sqlStr = sqlStr.Remove(sqlStr.Length - 1, 1);
+            var sql = $@"select * from tede_user where id in({sqlStr}) and (Name like '%{keyword}%' or phone like '%{keyword}%' or Email like '%{keyword}%')";
+            var databaseType = StringUtils.ToEnum<DatabaseType>(_databaseTypeStr, DatabaseType.MySql);
+            var database = new Database(databaseType, _connectionString);
+            var connection = database.GetConnection();
+            var result = await connection.QueryAsync<UserInfoResult>(sql);
+            foreach (var item in result)
+                item.AvatarUrl = StringUtils.AddDomainMin(item.AvatarUrl);
+            return result;
+        }
     }
 }

+ 7 - 0
gx_api/GxPress/Repository/GxPress.Repository.Interface/IUserRepository.cs

@@ -256,5 +256,12 @@ namespace GxPress.Repository.Interface
         /// <param name="userIds"></param>
         /// <returns></returns>
         Task<IEnumerable<UserInfoResult>> GetUserInfoNoFriendsResults(string keyword, IEnumerable<int> userIds);
+        /// <summary>
+        /// 搜索好友部门用户
+        /// </summary>
+        /// <param name="keyword"></param>
+        /// <param name="userIds"></param>
+        /// <returns></returns>
+        Task<IEnumerable<UserInfoResult>> GetSearchUserInfoResults(string keyword, IEnumerable<int> userIds);
     }
 }

+ 1 - 1
gx_api/GxPress/Service/GxPress.Service.Implement/AdminVerify/AdminVerifyService.AddFriends.cs

@@ -18,7 +18,7 @@ namespace GxPress.Service.Implement.AdminVerify
                 using (var transactions = new TransactionScope())
                 {
                     //获取用户信息
-                    var user = await _userRepository.GetAsync(request.FriendsUserId);
+                    var user = await _userRepository.GetAsync(request.UserId);
                     var entity = new Entity.AdminVerify()
                     {
                         //

+ 10 - 9
gx_api/GxPress/Service/GxPress.Service.Implement/OftenContact/OftenContactService.Insert.cs

@@ -4,6 +4,7 @@ using System.Threading.Tasks;
 using System.Transactions;
 using Datory;
 using GxPress.Common.Exceptions;
+using GxPress.EnumConst;
 using GxPress.Request.App.OftenContact;
 using GxPress.Result.App.OftenContact;
 
@@ -29,13 +30,13 @@ namespace GxPress.Service.Implement.OftenContact
                 {
                     if (request.ChatType == 1)
                     {
-                        var middleDto = await _middleRepository.GetMiddleAsync(Q.Where(nameof(Entity.Middle.Middle.MiddleId), oftenContact.Id).Where(nameof(Entity.Middle.Middle.FolderType), 10).Where(nameof(Entity.Middle.Middle.UserId), userId));
+                        var middleDto = await _middleRepository.GetMiddleAsync(Q.Where(nameof(Entity.Middle.Middle.MiddleId), oftenContact.Id).Where(nameof(Entity.Middle.Middle.FolderType), AllTypeConst.Wechat.GetHashCode()).Where(nameof(Entity.Middle.Middle.UserId), userId));
                         result.Id = middleDto != null ? middleDto.Id : 0;
                         result.IsTop = middleDto != null ? middleDto.IsTop : false;
                         //修改middle
-                        await _middleRepository.UpdateAsync(Q.Set(nameof(Entity.Middle.Middle.IsDelete), false).Where(nameof(Entity.Middle.Middle.MiddleId), oftenContact.Id).Where(nameof(Entity.Middle.Middle.FolderType), 10));
+                        await _middleRepository.UpdateAsync(Q.Set(nameof(Entity.Middle.Middle.IsDelete), false).Where(nameof(Entity.Middle.Middle.MiddleId), oftenContact.Id).Where(nameof(Entity.Middle.Middle.FolderType), AllTypeConst.Wechat.GetHashCode()));
                         //修改文件夹
-                        var middles = await _middleRepository.GetAllAsync(Q.Where(nameof(Entity.Middle.Middle.MiddleId), oftenContact.Id).Where(nameof(Entity.Middle.Middle.FolderType), 10));
+                        var middles = await _middleRepository.GetAllAsync(Q.Where(nameof(Entity.Middle.Middle.MiddleId), oftenContact.Id).Where(nameof(Entity.Middle.Middle.FolderType), AllTypeConst.Wechat.GetHashCode()));
                         foreach (var middle in middles)
                         {
                             if (middle.ParentId > 0)
@@ -50,11 +51,11 @@ namespace GxPress.Service.Implement.OftenContact
                             .Where(nameof(Entity.OftenContact.ContactUserId), userId));
                         if (oftenContact != null)
                         {
-                            await _middleRepository.UpdateAsync(Q.Set(nameof(Entity.Middle.Middle.IsDelete), false).Where(nameof(Entity.Middle.Middle.MiddleId), oftenContact.Id).Where(nameof(Entity.Middle.Middle.FolderType), 10));
+                            await _middleRepository.UpdateAsync(Q.Set(nameof(Entity.Middle.Middle.IsDelete), false).Where(nameof(Entity.Middle.Middle.MiddleId), oftenContact.Id).Where(nameof(Entity.Middle.Middle.FolderType), AllTypeConst.Wechat.GetHashCode()));
                             await _repository.UpdateAsync(Q.Where(nameof(Entity.OftenContact.UserId), int.Parse(request.ContactUserId))
                             .Where(nameof(Entity.OftenContact.ContactUserId), userId).Set(nameof(Entity.OftenContact.IsDelete), false));
                             //修改文件夹
-                            middles = await _middleRepository.GetAllAsync(Q.Where(nameof(Entity.Middle.Middle.MiddleId), oftenContact.Id).Where(nameof(Entity.Middle.Middle.FolderType), 10));
+                            middles = await _middleRepository.GetAllAsync(Q.Where(nameof(Entity.Middle.Middle.MiddleId), oftenContact.Id).Where(nameof(Entity.Middle.Middle.FolderType), AllTypeConst.Wechat.GetHashCode()));
                             foreach (var middle in middles)
                             {
                                 if (middle.ParentId > 0)
@@ -69,9 +70,9 @@ namespace GxPress.Service.Implement.OftenContact
                         var oftenContacts = await _repository.GetAllAsync(Q.Where(nameof(Entity.OftenContact.ContactUserId), request.ContactUserId));
                         await _repository.UpdateAsync(Q.Set(nameof(Entity.OftenContact.IsDelete), false).Where(nameof(Entity.OftenContact.ContactUserId), request.ContactUserId));
                         //修改middle
-                        await _middleRepository.UpdateAsync(Q.Set(nameof(Entity.Middle.Middle.IsDelete), false).WhereIn(nameof(Entity.Middle.Middle.MiddleId), oftenContacts.Select(n => n.Id)).Where(nameof(Entity.Middle.Middle.FolderType), 10));
+                        await _middleRepository.UpdateAsync(Q.Set(nameof(Entity.Middle.Middle.IsDelete), false).WhereIn(nameof(Entity.Middle.Middle.MiddleId), oftenContacts.Select(n => n.Id)).Where(nameof(Entity.Middle.Middle.FolderType), AllTypeConst.Wechat.GetHashCode()));
                         //修改文件夹
-                        var middles = await _middleRepository.GetAllAsync(Q.WhereIn(nameof(Entity.Middle.Middle.MiddleId), oftenContacts.Select(n => n.Id)).Where(nameof(Entity.Middle.Middle.FolderType), 10));
+                        var middles = await _middleRepository.GetAllAsync(Q.WhereIn(nameof(Entity.Middle.Middle.MiddleId), oftenContacts.Select(n => n.Id)).Where(nameof(Entity.Middle.Middle.FolderType), AllTypeConst.Wechat.GetHashCode()));
                         foreach (var middle in middles)
                         {
                             if (middle.ParentId > 0)
@@ -126,7 +127,7 @@ namespace GxPress.Service.Implement.OftenContact
                         middle = new Entity.Middle.Middle();
                         middle.IsAdmin = true;
                         middle.MiddleId = oftenContactId;
-                        middle.FolderType = 10;
+                        middle.FolderType = AllTypeConst.Wechat.GetHashCode();
                         middle.IsDefault = false;
                         middle.IsDelete = false;
                         middle.UserId = int.Parse(request.ContactUserId);
@@ -152,7 +153,7 @@ namespace GxPress.Service.Implement.OftenContact
                         var middle = new Entity.Middle.Middle();
                         middle.IsAdmin = true;
                         middle.MiddleId = oftenContactId;
-                        middle.FolderType = 10;
+                        middle.FolderType = AllTypeConst.Wechat.GetHashCode();
                         middle.IsDefault = false;
                         middle.IsDelete = false;
                         middle.UserId = userId;

+ 18 - 0
gx_api/GxPress/Service/GxPress.Service.Implement/UserService.cs

@@ -500,5 +500,23 @@ namespace GxPress.Service.Implement
             var result = await _userRepository.GetUserInfoNoFriendsResults(keyword, userIdsList);
             return result;
         }
+        /// <summary>
+        /// 搜索好友和部门用户
+        /// </summary>
+        /// <param name="keyword"></param>
+        /// <param name="userIds"></param>
+        /// <returns></returns>
+        public async Task<IEnumerable<UserInfoResult>> GetSearchUserInfoResults(int userId, string keyword)
+        {
+            var userIds = await friendsRepository.GetFriendsIdsAsync(userId, -1);
+            var userIdsList = userIds.ToList();
+            userIdsList.Add(userId);
+            //判断是否有部门
+            if (await departmentUserRepository.IsExistsAsync(userId))
+                //获取部门数据
+                userIdsList.AddRange(await departmentUserRepository.GetUserIdsAsync());
+            var result = await _userRepository.GetSearchUserInfoResults(keyword, userIdsList);
+            return result;
+        }
     }
 }

+ 7 - 0
gx_api/GxPress/Service/GxPress.Service.Interface/IUserService.cs

@@ -70,5 +70,12 @@ namespace GxPress.Service.Interface
         /// </summary>
         /// <returns></returns>
         Task<IEnumerable<UserInfoResult>> FindUserInfoNoFriendsResultAsync(int userId, string keyword);
+        /// <summary>
+        /// 搜索好友和部门用户
+        /// </summary>
+        /// <param name="keyword"></param>
+        /// <param name="userIds"></param>
+        /// <returns></returns>
+        Task<IEnumerable<UserInfoResult>> GetSearchUserInfoResults(int userId, string keyword);
     }
 }