Ejemplo n.º 1
0
        public Response <bool> InsertSyncDataToUserByOid(string OID)
        {
            var response = new Response <bool>();

            //var org = OrgApp.Get(OID);
            //if (org == null)
            //{
            //    response.Code = -1;
            //    response.Message = "方法InsertSyncDataToUserByOid:找不到组织";
            //}
            int CountSuccess = 0;
            int CountFail    = 0;
            var orgs         = OrgApp.GetOrgAndChilds(OID);

            if (orgs == null)
            {
                response.Code    = 200;
                response.Message = "成功0条;失败0条";
                return(response);
            }
            foreach (var item in orgs)
            {
                //1、检验该组织是否有同步需要,如果有则先同步
                if (item.DD_SyncEnabled == true)
                {
                    if (SyncOrgHandler(item) == false)
                    {
                        continue;
                    }
                }
                //2.1 获取组织ID下面所有员工
                var users     = UserApp.GetUserListByOrgId(item.Id);
                var otheruser = OtherUserApp.GetUserListByType("1").Select(t => t.UserID).ToArray();
                //2.2 获取otheruser没有的数据
                var extusers = from u in users
                               where !otheruser.Contains(u.Id)
                               select u;
                foreach (var itemuser in extusers)
                {
                    //3、创建准备同步钉钉数据
                    Other_User ouser = new Other_User();
                    ouser.Email      = itemuser.Email;
                    ouser.Gender     = itemuser.Sex.ToString();
                    ouser.Mobile     = itemuser.Mobile;
                    ouser.O_Name     = itemuser.Name;
                    ouser.SyncMethod = "add";
                    ouser.TypeName   = "1";
                    ouser.UserID     = itemuser.Id;
                    OtherUserApp.Add(ouser);
                    CountSuccess++;
                }
            }
            response.Code    = 200;
            response.Message = "成功" + CountSuccess + "条;失败0条";
            return(response);
        }
Ejemplo n.º 2
0
        public Response <bool> SyncUserIni()
        {
            return(null);

            var response = new Response <bool>();
            //1、循环组织
            var orgs = OrgApp.Repository.Find(t => t.IsDeleted == false);

            foreach (var item in orgs)
            {
                //2、获取组织下用户信息
                var res = new GetUserListRequest();
                res.DepartmentId = Ext.ToLong(item.DD_Id);
                var resuser = DingDingService.GetUserList(res);
                foreach (var itemuser in resuser.Userlist)
                {
                    OtherUserApp.update(itemuser.Mobile, itemuser.Email, itemuser.Name, itemuser.Userid);
                }
            }


            return(response);
        }
Ejemplo n.º 3
0
        public Response <bool> SyncUserAuto()
        {
            var response     = new Response <bool>();
            var ouserList    = OtherUserApp.GetUserListByType("1").Where(t => t.SyncMethod.IsEmpty() == false);
            int SuccessCount = 0;
            int FailCount    = 0;

            foreach (var item in ouserList)
            {
                try
                {
                    var    deptid    = OrgApp.GetOrgByUserId(item.UserID).DD_Id;
                    long[] deptidids = { Ext.ToLong(deptid) };
                    if (item.SyncMethod == "add")
                    {
                        CreateUserRequest model = new CreateUserRequest();
                        model.Department = deptidids.ToJson();
                        model.Email      = item.Email;
                        model.Mobile     = item.Mobile;
                        model.Name       = item.O_Name;
                        model.Remark     = "-";
                        model.Userid     = item.UserID;
                        DingDingService.CreateUser(model);
                    }
                    else if (item.SyncMethod == "update")
                    {
                        //获取实体通过uid
                        var user = DingDingService.GetUser(new GetUserRequest {
                            Userid = item.O_UserID
                        });
                        UpdateUserRequest model         = new UpdateUserRequest();
                        Int64             d             = Ext.ToLong(deptid);
                        List <long>       DepartmentIds = new List <long>();
                        DepartmentIds.Add(d);

                        model.Department    = DepartmentIds;
                        model.Email         = user.Email;
                        model.Extattr       = user.Extattr;
                        model.IsHide        = user.IsHide;
                        model.IsSenior      = user.IsSenior;
                        model.Jobnumber     = user.Jobnumber;
                        model.ManagerUserid = user.ManagerUserId;
                        model.Mobile        = user.Mobile;
                        model.Name          = user.Name;
                        model.OrderInDepts  = user.OrderInDepts;
                        model.OrgEmail      = user.OrgEmail;
                        model.Position      = user.Position;
                        model.Remark        = user.Remark;
                        model.Tel           = user.Tel;
                        model.Userid        = user.Userid;
                        model.WorkPlace     = user.WorkPlace;
                        DingDingService.UpdateUser(model);
                    }
                    else if (item.SyncMethod == "del")
                    {
                        DingDingService.DelUser(new UserDeleteRequest {
                            Userid = item.O_UserID
                        });
                    }
                    SuccessCount++;
                }
                catch (Exception)
                {
                    FailCount++;
                }
            }
            response.Message = "成功" + SuccessCount + "条;失败" + FailCount + "条; ";
            return(response);
        }