/// <summary> /// 重置分组 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task RenewFansGroup(MpFanGroupDto input) { var mpid = await _userMpAppService.GetDefaultMpId(); var renewGroupIds = _mpFansGroupMapRepository.GetAll().Where(m => m.IsDeleted == false && input.FansIds.Contains(m.FansID)).Select(m => m.GroupID).Distinct().ToList(); await _mpFansGroupMapRepository.DeleteAsync(m => m.IsDeleted == false && input.FansIds.Contains(m.FansID)); foreach (var item in input.FansIds) { await _mpFansGroupMapRepository.InsertAsync(new MpFansGroupMap { MpID = mpid, FansID = item, GroupID = input.GroupID, GroupName = input.GroupName }); } if (!renewGroupIds.Contains(input.GroupID)) { renewGroupIds.Add(input.GroupID); } foreach (var gpId in renewGroupIds) { await RefreshFansGroup(gpId); } }
/// <summary> /// 追加分组 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task UpdateFansGroup(MpFanGroupDto input) { var mpid = await _userMpAppService.GetDefaultMpId(); var existFansIds = (await _mpFansGroupMapRepository.GetAllListAsync(m => m.IsDeleted == false && m.MpID == mpid && input.FansIds.Contains(m.FansID) && m.GroupID == input.GroupID)).Select(m => m.FansID).ToList(); var fansIds = input.FansIds.Except(existFansIds); foreach (var item in fansIds) { await _mpFansGroupMapRepository.InsertAsync(new MpFansGroupMap { MpID = mpid, FansID = item, GroupID = input.GroupID, GroupName = input.GroupName }); } await RefreshFansGroup(input.GroupID); }