static void Main(string[] args) { try { YiFang_CustomerComplaintEntities dbContext = new YiFang_CustomerComplaintEntities(); //同步部门信息 string accessToken = AccessToken.GetAccessToken(); IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/list"); OapiDepartmentListRequest request = new OapiDepartmentListRequest(); //request.Id request.SetHttpMethod("GET"); OapiDepartmentListResponse response = client.Execute(request, accessToken); if (response.Errcode != 0) { Console.WriteLine("错误原因:【" + response.Errmsg + "】"); } //移除部门-人员信息 dbContext.Database.ExecuteSqlCommand("delete REF_Person_Department"); //获取钉钉部门和人员集合 List <long> DepartmentList = new List <long>(); List <string> PersonList = new List <string>(); //获取普通用户 var nomal = dbContext.AC_SysRoles.FirstOrDefault(p => p.Name == "普通用户"); if (nomal == null) { Console.WriteLine("请维护角色"); return; } DingTalkDepartmentList(dbContext, 0, response.Department); foreach (var item in response.Department.OrderBy(k => k.Id)) { //部门人员 //添加读取该部门所有人员信息 var personlist = JsonConvert.DeserializeObject <Jusoft_DepartmentPerson>(HttpRequestHelper.HttpGet("https://oapi.dingtalk.com/user/list?access_token=" + accessToken + "&department_id=" + item.Id)); foreach (var user in personlist.userlist) { var person = dbContext.OR_Person.FirstOrDefault(k => k.PsnNum == user.userid); //person.REF_Person_Department.Add(new REF_Person_Department { }); if (person == null) { person = new OR_Person { PsnNum = user.userid, Sex = 0 }; dbContext.OR_Person.Add(person); } person.Name = user.name; person.CodeDepartment = user.department[0].ToString(); person.PsnMobilePhone = user.mobile; person.HeadUrl = user.avatar; person.LoginName = user.userid; person.ExternalBit = false; dbContext.SaveChanges(); Console.WriteLine("【" + user.name + "】人员-同步成功"); dbContext.REF_Person_Department.Add(new REF_Person_Department { CodeDepartment = item.Id.ToString(), IdPerson = person.Id }); //同步信息到账户表 if (!dbContext.AC_SysUsers.Any(k => k.UserName == user.userid)) { var _newUser = new AC_SysUsers { UserName = user.userid, PasswordType = 1, PasswordHash = user.userid, }; dbContext.AC_SysUsers.Add(_newUser); dbContext.SaveChanges(); string sql = string.Format("INSERT dbo.REF_User_Roles(IdSysUsers,IdSysRoles)VALUES({0},{1})", _newUser.Id, nomal.Id); Console.WriteLine(sql); dbContext.Database.ExecuteSqlCommand(sql); } dbContext.SaveChanges(); //部门及人员 赋值 PersonList.Add(user.userid); } DepartmentList.Add(item.Id); } //离职人员 -(我们系统存在钉钉不存在) var employee = dbContext.OR_Person.Where(k => k.ExternalBit == false).Select(k => k.PsnNum).ToList(); foreach (var item in employee.Except(PersonList)) { var yee = dbContext.OR_Person.FirstOrDefault(k => k.PsnNum == item); yee.CodeDepartment = "1"; yee.LeaveDate = DateTime.Now; dbContext.REF_Person_Department.RemoveRange(dbContext.REF_Person_Department.Where(w => w.IdPerson == yee.Id)); dbContext.SaveChanges(); Console.WriteLine("【" + yee.Name + "】人员-离职成功"); } //删除部门-(我们系统存在钉钉不存在) var Deletedepartment = dbContext.OR_Department.Select(k => k.Code).ToList().Select(k => Convert.ToInt64(k)).ToList(); foreach (var item in Deletedepartment.Except(DepartmentList).OrderByDescending(k => k)) { var delete = dbContext.OR_Department.FirstOrDefault(k => k.Code == item.ToString()); dbContext.OR_Department.Remove(delete); dbContext.SaveChanges(); Console.WriteLine("【" + delete.Name + "】部门-删除成功"); } Console.WriteLine("同步完成"); } catch (Exception ex) { Console.WriteLine("【异常】【" + ex.ToString() + "】"); } Console.WriteLine(); }
public object BasicMaintainDel(BasicDetailsModel model) { Result rs = new Result(); try { if (model.Id == null) { return(Json(new { Code = 1000, strResult = "Id不能为null" })); } if (model.type == 1) { var BASysEnType = dbContext.BA_SysEnType.Where(p => p.IdParent == model.Id || p.IdSysEnType == model.Id); if (BASysEnType.Count() > 0) { rs.Code = 0; rs.strResult = "你删除的的产品型号下有小类或者有产品,请先删除小类和产品!"; return(Json(rs)); } var SysEnTypeDel = dbContext.BA_SysEnType.FirstOrDefault(p => p.Id == model.Id); if (SysEnTypeDel != null) { dbContext.BA_SysEnType.Remove(SysEnTypeDel); } } else if (model.type == 2) { var Ststort = dbContext.ST_Store.FirstOrDefault(p => p.Id == model.Id); if (Ststort != null) { //var SysUsers = dbContext.AC_SysUsers.FirstOrDefault(p => p.Id == Ststort.IdSysUsers); AC_SysUsers SysUsers = null; if (SysUsers != null) { var OrPerson = dbContext.OR_Person.FirstOrDefault(p => p.LoginName == SysUsers.UserName); if (OrPerson != null) { OrPerson.LeaveDate = DateTime.Now; OrPerson.WeChatOpenId = null; OrPerson.LoginName = null; } dbContext.AC_SysUsers.Remove(SysUsers); } dbContext.ST_Store.Remove(Ststort); } } else if (model.type == 3) { var SysRoles = dbContext.AC_SysRoles.FirstOrDefault(p => p.Id == model.Id); if (SysRoles != null) { if (SysRoles.BA_SysMenu.Count() > 0) { return(Json(new { Code = 1000, strResult = "该角色已分配菜单!" })); } if (SysRoles.BA_SysCommand.Count() > 0) { return(Json(new { Code = 1000, strResult = "该角色已分配功能!" })); } if (SysRoles.AC_SysUsers.Count() > 0) { return(Json(new { Code = 1000, strResult = "该角色已被用户使用,请先给用户清除需要删除的角色!" })); } } dbContext.AC_SysRoles.Remove(SysRoles); } else if (model.type == 4) { var SysEntype = dbContext.BA_SysEnType.FirstOrDefault(p => p.Id == model.Id); if (SysEntype != null) { dbContext.BA_SysEnType.Remove(SysEntype); } } else if (model.type == 5) { var KsConfirm = dbContext.KS_Confirm.FirstOrDefault(p => p.Id == model.Id && p.IdPerson == model.IdPerson); if (KsConfirm != null) { dbContext.KS_Confirm.Remove(KsConfirm); } } dbContext.SaveChanges(); rs.Code = 0; rs.strResult = "删除成功!"; return(Json(rs)); } catch (Exception ex) { rs.Code = 1001; rs.strResult = ex.Message; return(Json(rs)); } }