lihao 4 年之前
父節點
當前提交
fa5a1ab06a

+ 13 - 0
gx_api/GxPress/Repository/GxPress.Repository.Implement/Friends/FriendsRepository.cs

@@ -76,5 +76,18 @@ namespace GxPress.Repository.Implement.Friends
             query.Where(nameof(Entity.Friends.UserId), userId);
             return await _repository.UpdateAsync(query) > 0;
         }
+        /// <summary>
+        /// 是否是好友
+        /// </summary>
+        /// <param name="friendsUserId"></param>
+        /// <param name="userId"></param>
+        /// <returns></returns>
+        public async Task<bool> ExistsAsync(int friendsUserId, int userId)
+        {
+            var query = Q.NewQuery();
+            query.Where(nameof(Entity.Friends.UserId), userId);
+            query.Where(nameof(Entity.Friends.FriendsUserId), friendsUserId);
+            return await _repository.ExistsAsync(query);
+        }
     }
 }

+ 5 - 1
gx_api/GxPress/Repository/GxPress.Repository.Implement/GroupRepository.cs

@@ -424,7 +424,10 @@ namespace GxPress.Repository.Implement
         }
         public async Task<List<JobGroupResult>> ElasticSearchGroup()
         {
-            var sql = "select a.Id,a.GuId,a.UserId,b.Id,b.Name,b.AvatarUrl,b.CreatedDate,c.Name from tede_middle a inner join tede_group b on a.MiddleId=b.Id inner join tede_user c on c.Id=b.UserId where a.FolderType=7 and a.IsUpload=0 order by a.CreatedDate desc limit 0,100";
+            var sql = @"select a.Id,a.GuId,a.UserId,b.Id,b.Name,b.AvatarUrl,b.CreatedDate,c.Name from tede_middle a 
+                        inner join tede_group b on a.MiddleId=b.Id 
+                        inner join tede_user c on c.Id=b.UserId 
+                        where a.FolderType=7 and a.IsUpload=0 order by a.CreatedDate desc limit 0,100";
             var databaseType = StringUtils.ToEnum<DatabaseType>(_databaseTypeStr, DatabaseType.MySql);
             var database = new Database(databaseType, _connectionString);
             var connection = database.GetConnection();
@@ -727,5 +730,6 @@ namespace GxPress.Repository.Implement
             }
             return result;
         }
+       
     }
 }

+ 13 - 0
gx_api/GxPress/Repository/GxPress.Repository.Implement/GroupUserRepository.cs

@@ -195,5 +195,18 @@ namespace GxPress.Repository.Implement
             var result = await connection.ExecuteScalarAsync<int>(sql);
             return result;
         }
+        /// <summary>
+        /// 查询小组用户是否存在
+        /// </summary>
+        /// <param name="userId"></param>
+        /// <param name="groupId"></param>
+        /// <returns></returns>
+        public async Task<bool> ExistsAsync(int userId, int groupId)
+        {
+            var query = Q.NewQuery();
+            query.Where(nameof(Entity.GroupUser.GroupId), groupId);
+            query.Where(nameof(Entity.GroupUser.UserId), userId);
+            return await _repository.ExistsAsync(query);
+        }
     }
 }

+ 9 - 2
gx_api/GxPress/Repository/GxPress.Repository.Interface/Friends/IFriendsRepository.cs

@@ -4,9 +4,9 @@ using Datory;
 
 namespace GxPress.Repository.Interface.Friends
 {
-    public interface IFriendsRepository:IRepository
+    public interface IFriendsRepository : IRepository
     {
-         /// <summary>
+        /// <summary>
         /// 添加
         /// </summary>
         /// <param name="model"></param>
@@ -35,5 +35,12 @@ namespace GxPress.Repository.Interface.Friends
         /// <param name="addressBookGroupId"></param>
         /// <returns></returns>
         Task<bool> UpdateAddressBookGroupId(IEnumerable<int> friendsUserId, int userId, int addressBookGroupId);
+        /// <summary>
+        /// 是否是好友
+        /// </summary>
+        /// <param name="friendsUserId"></param>
+        /// <param name="userId"></param>
+        /// <returns></returns>
+        Task<bool> ExistsAsync(int friendsUserId, int userId);
     }
 }

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

@@ -52,5 +52,12 @@ namespace GxPress.Repository.Interface
         Task<int> GetUserIntoGroupUserCountAsync(int userId);
         Task<int> CountAsync(int groupId);
         Task<bool> UpdateAsync(Entity.GroupUser groupUser);
+        /// <summary>
+        /// 查询小组用户是否存在
+        /// </summary>
+        /// <param name="userId"></param>
+        /// <param name="groupId"></param>
+        /// <returns></returns>
+        Task<bool> ExistsAsync(int userId, int groupId);
     }
 }

+ 10 - 14
gx_api/GxPress/Service/GxPress.Service.Implement/AdminVerify/AdminVerifyInsetService.cs

@@ -12,7 +12,7 @@ using GxPress.Request.App.AdminVerify;
 using GxPress.Request.App.Middle;
 using GxPress.Service.Interface.AdminVerify;
 using GxPress.Service.Interface.Middle;
-
+using GxPress.Repository.Interface.Friends;
 namespace GxPress.Service.Implement.AdminVerify
 {
     public class AdminVerifyInsetService : IAdminVerifyInsertService
@@ -26,9 +26,11 @@ namespace GxPress.Service.Implement.AdminVerify
         private readonly IMiddleRepository _middleRepository;
         private readonly IGroupUserRepository _groupUserRepository;
         private readonly IDepartmentUserRepository departmentUserRepository;
+        private readonly IFriendsRepository friendsRepository;
         public AdminVerifyInsetService(IAdminVerifyRepository adminVerifyRepository, IUserRepository userRepository,
             IDepartmentRepository departmentRepository, IMiddleService middleService, IGroupRepository groupRepository,
-            IGroupChatRepository groupChatRepository, IMiddleRepository middleRepository, IGroupUserRepository groupUserRepository, IDepartmentUserRepository departmentUserRepository)
+            IGroupChatRepository groupChatRepository, IMiddleRepository middleRepository, IGroupUserRepository groupUserRepository,
+            IDepartmentUserRepository departmentUserRepository, IFriendsRepository friendsRepository)
         {
             _adminVerifyRepository = adminVerifyRepository;
             _userRepository = userRepository;
@@ -39,6 +41,7 @@ namespace GxPress.Service.Implement.AdminVerify
             _middleRepository = middleRepository;
             _groupUserRepository = groupUserRepository;
             this.departmentUserRepository = departmentUserRepository;
+            this.friendsRepository = friendsRepository;
         }
 
         /// <summary>
@@ -70,20 +73,13 @@ namespace GxPress.Service.Implement.AdminVerify
                     continue;
                 var department = new Entity.Department();
                 if (departmentUsers.FirstOrDefault(n => n.UserId == user.Id) != null)
-                {
                     department = departments.FirstOrDefault(m => m.Id == departmentUsers.FirstOrDefault(n => n.UserId == user.Id).DepartmentId);
+                //判断是否是小组成员
+                if (request.VerifyType == GroupTypeConst.Group)
+                {
+                    if (await _groupUserRepository.ExistsAsync(userId, request.SourceId))
+                        continue;
                 }
-
-                var query = Q.NewQuery();
-                query.Where(nameof(Entity.AdminVerify.AdminId), userId);
-                query.Where(nameof(Entity.AdminVerify.SourceType), request.SourceType);
-                query.Where(nameof(Entity.AdminVerify.SourceId), group.Id);
-                query.WhereIn(nameof(Entity.AdminVerify.DisposeType), new List<int> { 0, 1 });
-                //查询是否存在
-                adminVerify = await _adminVerifyRepository.GetAsync(query);
-                if (adminVerify != null)
-                    continue;
-                adminVerify = new Entity.AdminVerify();
                 //申请
                 if (request.SourceType == 1)
                 {

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

@@ -17,11 +17,13 @@ namespace GxPress.Service.Implement.AdminVerify
             {
                 using (var transactions = new TransactionScope())
                 {
+                    //判断是否是好友
+                    if (await friendsRepository.ExistsAsync(request.FriendsUserId, request.UserId))
+                        return false;
                     //获取用户信息
                     var user = await _userRepository.GetAsync(request.UserId);
                     var entity = new Entity.AdminVerify()
                     {
-                        //
                         VerifyType = GroupTypeConst.Friends,
                         DisposeType = 0,
                         AdminId = request.FriendsUserId,
@@ -33,24 +35,7 @@ namespace GxPress.Service.Implement.AdminVerify
                         SourceType = 0,
                         AddressBookGroupId = request.AddressBookGroupId
                     };
-                     await _adminVerifyRepository.InsertAsync(entity);
-                    // //获取用户信息
-                    // user = await _userRepository.GetAsync(request.UserId);
-                    // entity = new Entity.AdminVerify()
-                    // {
-                    //     //
-                    //     VerifyType = GroupTypeConst.Friends,
-                    //     DisposeType = 0,
-                    //     AdminId = request.UserId,
-                    //     UserId = request.FriendsUserId,
-                    //     SourceId = 0,
-                    //     Name = user.Name,
-                    //     AvatarUrl = user.AvatarUrl,
-                    //     Remark = request.Remark,
-                    //     SourceType = 0,
-                    //     AddressBookGroupId = 0
-                    // };
-                    // await _adminVerifyRepository.InsertAsync(entity);
+                    await _adminVerifyRepository.InsertAsync(entity);
                     transactions.Complete();
                 }
             }