public void updateStatus(int tenantId, string[] userMappingInfoId)
        {
            var metaobj             = CloudDataHelper.GetMetaObject(tenantId, UserInfoMappingConstants.MetaName);
            var userMappingInfoList = CloudDataHelper.GetEntityListByIds(UserInfoMappingConstants.MetaName, tenantId, userMappingInfoId).ToList();

            if (userMappingInfoList != null && userMappingInfoList.Any())
            {
                foreach (var item in userMappingInfoList)
                {
                    item["Status"] = (int)BindStatusEnum.unbind;
                    CloudDataHelper.Update(metaobj, new List <ObjectData> {
                        item
                    });

                    //解绑公共租户数据
                    var filter = new BooleanFilter()
                                 .Must(new TermFilter(UserInfoMappingConstants.UserInfo_StaffId, Convert.ToInt32(item["StaffId"])))
                                 .Must(new TermFilter(UserInfoMappingConstants.UserInfo_SuiteKey, SystemInfo.SuiteKey))
                                 .Must(new TermFilter(UserInfoMappingConstants.UserInfo_CorpId, Convert.ToString(item["CorpId"])))
                                 .Must(new TermFilter(UserInfoMappingConstants.UserInfo_AppId, Convert.ToString(item["AppId"])))
                                 .Must(new TermFilter(UserInfoMappingConstants.UserInfo_Status, (int)BindStatusEnum.bind));

                    var sysMetaobj      = CloudDataHelper.GetMetaObject(SystemInfo.ISVSystemTenantId, UserInfoMappingConstants.MetaName);
                    var sysUserInfoList = CloudDataHelper.GetEntityAllList(UserInfoMappingConstants.MetaName, SystemInfo.ISVSystemTenantId, filter).ToList().FirstOrDefault();
                    sysUserInfoList["Status"] = (int)BindStatusEnum.unbind;
                    CloudDataHelper.Update(sysMetaobj, new List <ObjectData> {
                        sysUserInfoList
                    });
                }
            }
        }
        /// <summary>
        /// account 人员离职,删除后删除相应人员的绑定信息
        /// </summary>
        /// <param name="tenantId"></param>
        /// <param name="userId"></param>
        public void UnBindInfo(int tenantId, int userId)
        {
            var filter = new BooleanFilter()
                         .Must(new TermFilter(UserInfoMappingConstants.UserInfo_ISVTenantId, tenantId))
                         .Must(new TermFilter(UserInfoMappingConstants.UserInfo_StaffId, userId))
                         .Must(new TermFilter(UserInfoMappingConstants.UserInfo_SuiteKey, SystemInfo.SuiteKey));

            var metaobj      = CloudDataHelper.GetMetaObject(tenantId, UserInfoMappingConstants.MetaName);
            var userInfoList = CloudDataHelper.GetEntityAllList(UserInfoMappingConstants.MetaName, tenantId, filter).ToList();

            if (userInfoList != null && userInfoList.Any())
            {
                userInfoList.ForEach(n =>
                {
                    n["Status"] = (int)BindStatusEnum.unbind;
                });
                CloudDataHelper.Update(metaobj, userInfoList);
            }

            var sysMetaObj      = CloudDataHelper.GetMetaObject(SystemInfo.ISVSystemTenantId, UserInfoMappingConstants.MetaName);
            var sysUserInfoList = CloudDataHelper.GetEntityAllList(UserInfoMappingConstants.MetaName, SystemInfo.ISVSystemTenantId, filter).ToList();

            if (sysUserInfoList != null && sysUserInfoList.Any())
            {
                sysUserInfoList.ForEach(n =>
                {
                    n["Status"] = (int)BindStatusEnum.unbind;
                });
                CloudDataHelper.Update(sysMetaObj, sysUserInfoList);
            }
        }
Пример #3
0
        private static void AddCLoud(int tenantId, int sqlId, AppUserAccountInfo appUserAccountInfo)
        {
            ApplicationContext.Current.ApplicationName = "AppConnect";
            ApplicationContext.Current.TenantId        = tenantId;
            ApplicationContext.Current.UserId          = appUserAccountInfo.UserId;

            var metaObject = CloudDataHelper.GetMetaObject(tenantId, "AppConnect.AppUser");
            List <ObjectData> objectDatas = new List <ObjectData>();
            ObjectData        objectData  = new ObjectData(metaObject);

            objectData.ID                 = Guid.NewGuid();
            objectData.CreatedBy          = appUserAccountInfo.UserId;
            objectData.CreatedTime        = DateTime.Now;
            objectData.ModifiedBy         = appUserAccountInfo.UserId;
            objectData.ModifiedTime       = DateTime.Now;
            objectData["StdIsDeleted"]    = false;
            objectData["TenantId"]        = tenantId;
            objectData["UserId"]          = appUserAccountInfo.UserId;
            objectData["UserEmail"]       = appUserAccountInfo.BeisenAccount;
            objectData["State"]           = (int)appUserAccountInfo.State;
            objectData["ActivateTime"]    = DateTime.Now;
            objectData["OpenId"]          = appUserAccountInfo.OpenId;
            objectData["AppId"]           = appUserAccountInfo.AppId;
            objectData["SqlId"]           = sqlId;
            objectData["LoginType"]       = ((int)appUserAccountInfo.Type).ToString();
            objectData["MasterAccountId"] = appUserAccountInfo.MasterAccountId;
            objectDatas.Add(objectData);
            CloudDataHelper.Add(metaObject, objectDatas);
        }
Пример #4
0
        private static void AddCloudData(int tenantId, List <AppUserAccountInfo> appUserAccountInfos, ref string message)
        {
            try
            {
                message += string.Format("租户:{0} 开始处理数据\r\n", tenantId);
                BeisenUserDao.SetContext(tenantId);
                //先删除该租户数据
                List <string> delObjectIds = new List <string>();
                var           multiDataDic = GetMultiTenantData(tenantId);
                foreach (var item in multiDataDic)
                {
                    if (!delObjectIds.Contains(Convert.ToString(item.ID)))
                    {
                        delObjectIds.Add(Convert.ToString(item.ID));
                    }
                }
                CloudDataHelper.Delete("AppConnect.AppUser", tenantId, delObjectIds.ToArray());

                message += string.Format("租户:{0} 开始删除{1}条数据\r\n", tenantId, delObjectIds.Count);

                var metaObject = CloudDataHelper.GetMetaObject(tenantId, "AppConnect.AppUser");
                List <ObjectData> objectDatas = new List <ObjectData>();
                foreach (var appUserAccountInfo in appUserAccountInfos)
                {
                    ObjectData objectData = new ObjectData(metaObject);
                    objectData.ID                 = Guid.NewGuid();
                    objectData.CreatedBy          = appUserAccountInfo.UserId;
                    objectData.CreatedTime        = appUserAccountInfo.CreateTime;
                    objectData.ModifiedBy         = appUserAccountInfo.UserId;
                    objectData.ModifiedTime       = appUserAccountInfo.ModifyTime;
                    objectData["StdIsDeleted"]    = false;
                    objectData["TenantId"]        = appUserAccountInfo.TenantId;
                    objectData["UserId"]          = appUserAccountInfo.UserId;
                    objectData["UserEmail"]       = appUserAccountInfo.BeisenAccount;
                    objectData["State"]           = appUserAccountInfo.StateNotEnum;
                    objectData["ActivateTime"]    = appUserAccountInfo.CreateTime;
                    objectData["OpenId"]          = appUserAccountInfo.OpenId;
                    objectData["AppId"]           = appUserAccountInfo.AppId;
                    objectData["SqlId"]           = appUserAccountInfo.Id;
                    objectData["LoginType"]       = appUserAccountInfo.TypeNotEnum;
                    objectData["SqlId"]           = appUserAccountInfo.Id;
                    objectData["MasterAccountId"] = appUserAccountInfo.MasterAccountId;
                    objectDatas.Add(objectData);
                }
                CloudDataHelper.Add(metaObject, objectDatas);
                message += string.Format("租户:{0} 处理完毕,共处理{1}条数据 \r\n", tenantId, objectDatas.Count);
            }
            catch (Exception ex)
            {
                message += string.Format("租户:{0} 修复数据失败!\r\n", tenantId);
                AppConnectLogHelper.ErrorFormat(message, ex);
                Froms.MessageBox.Show(ex.Message);
            }
        }
Пример #5
0
 private static void AddCLoud(int tenantId, List <AppUserAccountInfo> appUserAccountInfos, ref string message)
 {
     try
     {
         BeisenUserDao.SetContext(tenantId);
         message += string.Format("租户:{0} 开始处理\r\n", tenantId);
         var metaObject = CloudDataHelper.GetMetaObject(tenantId, "AppConnect.AppUser");
         List <ObjectData> objectDatas    = new List <ObjectData>();
         var appUserAccountInfos_tenantId = appUserAccountInfos.Where(w => w.TenantId == tenantId).ToList();
         if (appUserAccountInfos_tenantId != null && appUserAccountInfos_tenantId.Count > 0)
         {
             appUserAccountInfos_tenantId.ForEach(appUserAccountInfo =>
             {
                 ObjectData objectData         = new ObjectData(metaObject);
                 objectData.ID                 = Guid.NewGuid();
                 objectData.CreatedBy          = appUserAccountInfo.UserId;
                 objectData.CreatedTime        = DateTime.Now;
                 objectData.ModifiedBy         = appUserAccountInfo.UserId;
                 objectData.ModifiedTime       = DateTime.Now;
                 objectData["StdIsDeleted"]    = false;
                 objectData["TenantId"]        = appUserAccountInfo.TenantId;
                 objectData["UserId"]          = appUserAccountInfo.UserId;
                 objectData["UserEmail"]       = appUserAccountInfo.BeisenAccount;
                 objectData["State"]           = appUserAccountInfo.StateNotEnum;
                 objectData["ActivateTime"]    = DateTime.Now;
                 objectData["OpenId"]          = appUserAccountInfo.OpenId;
                 objectData["AppId"]           = appUserAccountInfo.AppId;
                 objectData["SqlId"]           = appUserAccountInfo.Id;
                 objectData["LoginType"]       = appUserAccountInfo.TypeNotEnum;
                 objectData["SqlId"]           = appUserAccountInfo.Id;
                 objectData["MasterAccountId"] = appUserAccountInfo.MasterAccountId;
                 objectDatas.Add(objectData);
             });
         }
         CloudDataHelper.Add(metaObject, objectDatas);
         message += string.Format("租户:{0} 处理完毕,共处理{objectDatas.Count}条数据 \r\n", tenantId);
     }
     catch (Exception ex)
     {
         message += string.Format("租户:{0} 修复数据失败!\r\n", tenantId);
         AppConnectLogHelper.ErrorFormat(message, ex);
         Froms.MessageBox.Show(ex.Message);
     }
 }
Пример #6
0
        internal static void UnbindCloud(int tenantId, int userId, string ids)
        {
            ApplicationContext.Current.ApplicationName = "AppConnect";
            ApplicationContext.Current.TenantId        = tenantId;
            ApplicationContext.Current.UserId          = userId;
            var appUsers = GetAppUserList(tenantId, ids);

            if (appUsers != null && appUsers.Count > 0)
            {
                var metaObject = CloudDataHelper.GetMetaObject(tenantId, "AppConnect.AppUser");
                appUsers.ForEach(appUser =>
                {
                    appUser["State"]     = (int)AppUserAccountState.Unbind;
                    appUser.ModifiedBy   = userId;
                    appUser.ModifiedTime = DateTime.Now;
                });
                CloudDataHelper.Update(metaObject, appUsers);
            }
        }
Пример #7
0
        internal static void AddOrUpdateCLoud(int tenantId, int userId, AppAccountInfo info)
        {
            var metaObject = CloudDataHelper.GetMetaObject(tenantId, "AppConnect.AppUser");
            List <ObjectData> objectDatas = new List <ObjectData>();
            ObjectData        objectdata  = new ObjectData(metaObject);

            objectdata.ID              = Guid.NewGuid();
            objectdata.CreatedBy       = userId;
            objectdata.CreatedTime     = DateTime.Now;
            objectdata.ModifiedBy      = userId;
            objectdata.ModifiedTime    = DateTime.Now;
            objectdata["StdIsDeleted"] = false;
            objectdata["TenantId"]     = tenantId;
            objectdata["StaffID"]      = info.CreateBy;
            objectdata["UserEmail"]    = info.CreateBy;


            objectDatas.Add(objectdata);
            CloudDataHelper.Add(metaObject, objectDatas);
        }
Пример #8
0
        public static void MigrationUserInfoMapping(string metaObjectName, ref string message)
        {
            try
            {
                var appId     = SqlHelper.GetAppIdByType();
                var appIdList = appId.Select(n => Convert.ToString(n.AppId)).ToList();
                var appIdStr  = string.Join(",", appIdList.ToArray());

                var userInfoList            = SqlHelper.GetInfoByAppId(appIdStr);
                var userInfoGroupByTenantId = userInfoList.GroupBy(n => n.TenantId);

                foreach (var item in userInfoGroupByTenantId)
                {
                    //存储到各个租户
                    var metaObj = CloudDataHelper.GetMetaObject(item.Key, metaObjectName);
                    List <ObjectData> objectDataList = new List <ObjectData>();
                    foreach (var info in item)
                    {
                        var data = saveCloud(metaObj, info);
                        objectDataList.Add(data);
                    }
                    CloudDataHelper.Add(metaObj, objectDataList);
                    //存储到公共租户
                    var sysMetaObj = CloudDataHelper.GetMetaObject(SystemInfo.ISVSystemTenantId, metaObjectName);
                    List <ObjectData> sysObjectDataList = new List <ObjectData>();
                    foreach (var info in item)
                    {
                        var data = saveCloud(sysMetaObj, info);
                        objectDataList.Add(data);
                    }
                    CloudDataHelper.Add(sysMetaObj, sysObjectDataList);
                }
            }
            catch (Exception ex)
            {
                message += string.Format("租户:{tenantId} 修复数据失败!\r\n");
                logger.ErrorFormat(message, ex);
                MessageBox.Show(message);
                return;
            }
        }
Пример #9
0
 public static void RunRepair_UserId(List <int> tenantIdList, string metaObjectName, ref string message)
 {
     foreach (var tenantId in tenantIdList)
     {
         try
         {
             BeisenUserDao.SetContext(tenantId);
             message += string.Format("租户:{tenantId} 开始处理\r\n");
             var userInfoMappingList = CloudDataHelper.GetEntityAllList(metaObjectName, tenantId).ToList();
             var count = userInfoMappingList.Count;
             if (!userInfoMappingList.Any())
             {
                 message += string.Format("租户:{tenantId} 处理完毕,共处理{0}条数据 \r\n");
                 continue;
             }
             int tempId = 0;
             foreach (var item in userInfoMappingList)
             {
                 item["StaffId"] = item["UserId"];
                 tempId++;
             }
             if (tempId > 0)
             {
                 var metaobj = CloudDataHelper.GetMetaObject(tenantId, metaObjectName);
                 CloudDataHelper.Update(metaobj, userInfoMappingList);
             }
             message += string.Format("租户:{tenantId} 处理完毕,UserInfo映射信息共{count}条记录,处理{tempId}条数据 \r\n");
         }
         catch (Exception ex)
         {
             message += string.Format("租户:{tenantId} 修复数据失败!\r\n");
             logger.ErrorFormat(message, ex);
             MessageBox.Show(message);
             return;
         }
     }
 }
Пример #10
0
        private void AddCLoud(int tenantId, List <AppUserAccountInfo> appUserAccountInfos)
        {
            ApplicationContext.Current.ApplicationName = "AppConnect";
            ApplicationContext.Current.TenantId        = tenantId;
            ApplicationContext.Current.UserId          = 100000;
            var metaObject = CloudDataHelper.GetMetaObject(tenantId, "AppConnect.AppUser");
            List <ObjectData> objectDatas    = new List <ObjectData>();
            var appUserAccountInfos_tenantId = appUserAccountInfos.Where(w => w.TenantId == tenantId).ToList();

            if (appUserAccountInfos_tenantId != null && appUserAccountInfos_tenantId.Count > 0)
            {
                appUserAccountInfos_tenantId.ForEach(appUserAccountInfo =>
                {
                    ObjectData objectData         = new ObjectData(metaObject);
                    objectData.ID                 = Guid.NewGuid();
                    objectData.CreatedBy          = appUserAccountInfo.UserId;
                    objectData.CreatedTime        = DateTime.Now;
                    objectData.ModifiedBy         = appUserAccountInfo.UserId;
                    objectData.ModifiedTime       = DateTime.Now;
                    objectData["StdIsDeleted"]    = false;
                    objectData["TenantId"]        = appUserAccountInfo.TenantId;
                    objectData["UserId"]          = appUserAccountInfo.UserId;
                    objectData["UserEmail"]       = appUserAccountInfo.BeisenAccount;
                    objectData["State"]           = appUserAccountInfo.StateNotEnum;
                    objectData["ActivateTime"]    = DateTime.Now;
                    objectData["OpenId"]          = appUserAccountInfo.OpenId;
                    objectData["AppId"]           = appUserAccountInfo.AppId;
                    objectData["SqlId"]           = appUserAccountInfo.Id;
                    objectData["LoginType"]       = appUserAccountInfo.TypeNotEnum;
                    objectData["SqlId"]           = appUserAccountInfo.Id;
                    objectData["MasterAccountId"] = appUserAccountInfo.MasterAccountId;
                    objectDatas.Add(objectData);
                });
            }
            CloudDataHelper.Add(metaObject, objectDatas);
        }