public static void DingTalkDepartmentList(YiFang_CustomerComplaintEntities dbContext, long?Id, List <DepartmentDomain> DingTalkDepartment) { foreach (var item in DingTalkDepartment.Where(k => k.Parentid == Id).ToList()) { var department = dbContext.OR_Department.FirstOrDefault(k => k.Code == item.Id.ToString()); if (department == null) { department = new OR_Department { Code = item.Id.ToString() }; dbContext.OR_Department.Add(department); } department.Name = item.Name; department.CodeDepartment = item.Parentid.ToString() == "0" ? null : item.Parentid.ToString(); department.FullName = item.Name; department.CreateTime = DateTime.Now; //提交部门信息 dbContext.SaveChanges(); Console.WriteLine("【" + item.Name + "】部门-同步成功"); DingTalkDepartmentList(dbContext, item.Id, DingTalkDepartment); } }
/// <summary> /// 发送审批实列 /// </summary> /// <param name="kSCustomer">客诉</param> /// <param name="Token"></param> /// <param name="DbContext"></param> /// <returns></returns> public static OapiProcessinstanceCreateResponse SendTemplate(KS_Customer kSCustomer, int DepCode, string Userid, string Token, YiFang_CustomerComplaintEntities DbContext) { DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create"); OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest(); request.AgentId = Allocation.AgentId; request.ProcessCode = Allocation.ProcessCode; request.DeptId = DepCode; request.OriginatorUserId = Userid; List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues = new List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain>(); //客诉门店 var Person = DbContext.OR_Person.FirstOrDefault(p => p.Id == kSCustomer.IdPerson); //一方督导 var PersonSupervision = DbContext.OR_Person.FirstOrDefault(p => p.Id == kSCustomer.IdPersonSupervision); //异常归类 var Abnormal = DbContext.BA_SysEnType.FirstOrDefault(p => p.Id == kSCustomer.AbnormalId)?.Name; //客诉小类名称 var customername = DbContext.BA_SysEnType.FirstOrDefault(p => p.Id == kSCustomer.SubclassId).Name; //所属大区 //var regionid = DbContext.AC_SysUsers.FirstOrDefault(k => k.UserName == Person.LoginName).ST_Store.FirstOrDefault().RegionId; var regionid = 1; var RegionName = DbContext.BA_SysEnType.FirstOrDefault(p => p.Id == regionid)?.Name;; switch (kSCustomer.StateId) { case 1: #region 创建客诉类型为原物料的审批 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain from1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain() { Name = "客诉类型", Value = customername }; formComponentValues.Add(from1); var from2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from2.Name = "客诉内容"; from2.Value = kSCustomer.Remark + ""; formComponentValues.Add(from2); var from3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from3.Name = "客诉单号"; from3.Value = kSCustomer.Id + ""; formComponentValues.Add(from3); var from4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from4.Name = "提交时间"; from4.Value = kSCustomer.CreateTime + ""; formComponentValues.Add(from4); var from5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from5.Name = "异常产品"; from5.Value = kSCustomer.ProductIdNames + ""; formComponentValues.Add(from5); var from6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from6.Name = "异常数量"; from6.Value = kSCustomer.Number + ""; formComponentValues.Add(from6); var from7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from7.Name = "异常归类"; from7.Value = Abnormal + ""; formComponentValues.Add(from7); var from8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from8.Name = "到货日期"; from8.Value = kSCustomer.DeliveryDate + ""; formComponentValues.Add(from8); var from9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from9.Name = "生产批次"; from9.Value = kSCustomer.ProductionBatch + ""; formComponentValues.Add(from9); var from10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from10.Name = "一言为订订单号"; from10.Value = kSCustomer.OrderNumber + ""; formComponentValues.Add(from10); var from11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from11.Name = "一芳督导"; from11.Value = PersonSupervision?.Name + ""; formComponentValues.Add(from11); var from12 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from12.Name = "客诉门店"; from12.Value = Person?.Id + ""; formComponentValues.Add(from12); var from13 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from13.Name = "门店联系人"; from13.Value = kSCustomer.StoreContact + ""; formComponentValues.Add(from13); var from14 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from14.Name = "详情"; from14.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + ""; formComponentValues.Add(from14); var from15 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from15.Name = "所属大区"; from15.Value = RegionName; formComponentValues.Add(from15); #endregion break; case 2: #region 创建客诉类型为设备报修的审批 var Repair1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair1.Name = "客诉类型"; Repair1.Value = customername; formComponentValues.Add(Repair1); var Repair2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair2.Name = "客诉内容"; Repair2.Value = kSCustomer.Remark + ""; formComponentValues.Add(Repair2); var Repair3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair3.Name = "客诉单号"; Repair3.Value = kSCustomer.Id + ""; formComponentValues.Add(Repair3); var Repair4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair4.Name = "提交时间"; Repair4.Value = "" + kSCustomer.CreateTime; formComponentValues.Add(Repair4); var Repair5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair5.Name = "异常产品"; Repair5.Value = "" + kSCustomer.ProductIdNames; formComponentValues.Add(Repair5); var Repair6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair6.Name = "门店联系人"; Repair6.Value = "" + kSCustomer.StoreContact; formComponentValues.Add(Repair6); var Repair7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair7.Name = "门店联系人电话"; Repair7.Value = "" + kSCustomer.StoreTel; formComponentValues.Add(Repair7); var Repair8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair8.Name = "门店地址"; Repair8.Value = "" + kSCustomer.StoreAddress; formComponentValues.Add(Repair8); var Repair9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair9.Name = "一芳督导"; Repair9.Value = "" + PersonSupervision?.Name; formComponentValues.Add(Repair9); var Repair10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair10.Name = "详情"; Repair10.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + ""; formComponentValues.Add(Repair10); var Repair11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair11.Name = "所属大区"; Repair11.Value = RegionName; formComponentValues.Add(Repair11); #endregion break; case 3: #region 创建客诉类型为运营反馈的审批 var Operate1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate1.Name = "客诉类型"; Operate1.Value = customername; formComponentValues.Add(Operate1); var Operate2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate2.Name = "客诉内容"; Operate2.Value = "" + kSCustomer.Remark; formComponentValues.Add(Operate2); var Operate3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate3.Name = "客诉单号"; Operate3.Value = "" + kSCustomer.Id; formComponentValues.Add(Operate3); var Operate4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate4.Name = "提交时间"; Operate4.Value = "" + kSCustomer.CreateTime; formComponentValues.Add(Operate4); var Operate5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate5.Name = "异常产品"; Operate5.Value = "" + kSCustomer.ProductIdNames; formComponentValues.Add(Operate5); var Operate6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate6.Name = "联系人"; Operate6.Value = "" + kSCustomer.StoreContact; formComponentValues.Add(Operate6); var Operate7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate7.Name = "联系电话"; Operate7.Value = "" + kSCustomer.StoreTel; formComponentValues.Add(Operate7); var Operate8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate8.Name = "邮箱"; Operate8.Value = "" + kSCustomer.StoreEmail; formComponentValues.Add(Operate8); var Operate9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate9.Name = "客诉门店"; Operate9.Value = "" + kSCustomer.Id; formComponentValues.Add(Operate9); var Operate10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate10.Name = "门店联系人"; Operate10.Value = "" + Person?.Name; formComponentValues.Add(Operate10); var Operate11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate11.Name = "门店联系人电话"; Operate11.Value = "" + Person?.PsnMobilePhone; formComponentValues.Add(Operate11); var Operate12 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate12.Name = "详情"; Operate12.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + ""; formComponentValues.Add(Operate12); var Operate13 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate13.Name = "所属大区"; Operate13.Value = RegionName; formComponentValues.Add(Operate13); #endregion break; case 4: #region 创建客诉类型为其他反馈的审批 var Other1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other1.Name = "客诉类型"; Other1.Value = customername; formComponentValues.Add(Other1); var Other2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other2.Name = "客诉内容"; Other2.Value = "" + kSCustomer.Remark; formComponentValues.Add(Other2); var Other3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other3.Name = "客诉单号"; Other3.Value = "" + kSCustomer.Id; formComponentValues.Add(Other3); var Other4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other4.Name = "提交时间"; Other4.Value = "" + kSCustomer.CreateTime; formComponentValues.Add(Other4); var Other5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other5.Name = "联系人"; Other5.Value = "" + kSCustomer.StoreContact; formComponentValues.Add(Other5); var Other6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other6.Name = "联系电话"; Other6.Value = "" + kSCustomer.StoreTel; formComponentValues.Add(Other6); var Other7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other7.Name = "邮箱"; Other7.Value = "" + kSCustomer.StoreEmail; formComponentValues.Add(Other7); var Other8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other8.Name = "一芳督导"; Other8.Value = "" + PersonSupervision?.Name; formComponentValues.Add(Other8); var Other9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other9.Name = "客诉门店"; Other9.Value = "" + Person?.Id; formComponentValues.Add(Other9); var Other10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other10.Name = "门店联系电话"; Other10.Value = "" + Person?.PsnMobilePhone; formComponentValues.Add(Other10); var Other11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other11.Name = "门店联系人"; Other11.Value = "" + Person?.Name; formComponentValues.Add(Other11); var Other12 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other12.Name = "详情"; Other12.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + ""; formComponentValues.Add(Other12); var Other13 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other13.Name = "所属大区"; Other13.Value = RegionName; formComponentValues.Add(Other13); #endregion break; } //生成图片至钉钉 //获取当前访问ip信息 string url = HttpContext.Current.Request.Url.ToString().Replace(HttpContext.Current.Request.Url.PathAndQuery, ""); //服务器协议+域名+端口 var attachments = DbContext.BA_Attachment.Where(k => k.SourceId == kSCustomer.Id && k.CodeBusinessType == "KS01").Select(k => "\"" + url + k.FileAccess + "\"").ToList(); if (attachments.Count() > 0) { formComponentValues.Add(new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain() { Name = "图片", Value = $"[{string.Join(",", attachments)}]" }); } request.FormComponentValues_ = formComponentValues; OapiProcessinstanceCreateResponse response = client.Execute(request, Token); return(response); }
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(); }
static void Main(string[] args) { try { YiFang_CustomerComplaintEntities DbContext = new YiFang_CustomerComplaintEntities(); var list = DbContext.KS_Customer.Where(p => p.DingTalkApproval != null && p.Number == 4).Select(p => new { p.DingTalkApproval, p.Id }).ToList(); //list.ForEach(ks => //{ // var info = DbContext.KS_Customer.FirstOrDefault(p => p.Id == ks.Id); // var number = ApprovalDetails(ks.DingTalkApproval); // info.Number = number; // Console.WriteLine("同步客诉单【" + ks.Id + "】"); //}); var person = DbContext.OR_Person.Where(p => p.LeaveDate == null); var all = DbContext.KS_Customer_Approval.Where(p => p.state > 2); foreach (var ks in list) { Console.WriteLine("同步客诉单【" + ks.Id + "】"); IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/get"); OapiProcessinstanceGetRequest request = new OapiProcessinstanceGetRequest(); request.ProcessInstanceId = ks.DingTalkApproval; string token = AccessToken.GetAccessToken(); OapiProcessinstanceGetResponse response = client.Execute(request, token); Console.WriteLine(response.Errmsg); if (response.Errcode == 0) { if (response.ProcessInstance.Status == "COMPLETED") { Console.WriteLine("审批单结束"); var info = DbContext.KS_Customer.FirstOrDefault(p => p.Id == ks.Id); if (response.ProcessInstance.Result == "agree") { info.Number = 1; info.DeliveryDate = DateTime.Now; info.State = 2; } if (response.ProcessInstance.Result == "refuse") { info.Number = 2; info.DeliveryDate = DateTime.Now; info.State = 2; } DbContext.SaveChanges(); Console.WriteLine("审批完成"); } //新增审批详情 foreach (var u in response.ProcessInstance.Tasks) { if (u.Userid == null) { continue; } Console.WriteLine(u.Userid); var ren = person.FirstOrDefault(p => p.PsnNum == u.Userid); if (ren == null) { continue; } Console.WriteLine(ren.Id.ToString()); if (all.Any(p => p.IdCustomer == ks.Id && p.IdPerson == ren.Id)) { continue; } if (u.TaskResult == "AGREE") { KS_Customer_Approval kS_Customer = new KS_Customer_Approval { FinishTime = DateTime.Now, IdCustomer = ks.Id, IdPerson = ren.Id, Name = ren.Name, state = 3 }; Console.WriteLine("审批同意"); DbContext.KS_Customer_Approval.Add(kS_Customer); } if (u.TaskResult == "REFUSE") { KS_Customer_Approval kS_Customer = new KS_Customer_Approval { FinishTime = DateTime.Now, IdCustomer = ks.Id, IdPerson = ren.Id, Name = ren.Name, state = 4 }; Console.WriteLine("审批拒绝"); DbContext.KS_Customer_Approval.Add(kS_Customer); } } Console.WriteLine("成功"); } } DbContext.SaveChanges(); Console.WriteLine("同步完成"); //Environment.Exit(0); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } System.Environment.Exit(0); }
public override Task GrantClientCredentials(OAuthGrantClientCredentialsContext context) { YiFang_CustomerComplaintEntities dbContext = new YiFang_CustomerComplaintEntities(); try { //var data = await context.Request.ReadFormAsync(); var formData = context.Request.ReadFormAsync(); string Code = formData.Result["Code"]; string CS = formData.Result["CS"]; //ClaimsIdentity oAuthIdentity = new ClaimsIdentity(OAuthDefaults.AuthenticationType); ////用户名 //oAuthIdentity.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, "19423657671291041")); ////设置授权凭据 //AuthenticationProperties properties = CreateProperties("19423657671291041"); //AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); //context.Validated(ticket); //return base.GrantClientCredentials(context); //Code临时授权码为null执行微信登录,不为null执行钉钉登录 if (!string.IsNullOrEmpty(Code)) { if (CS == "CS") { ClaimsIdentity oAuthIdentity = new ClaimsIdentity(OAuthDefaults.AuthenticationType); //用户名 oAuthIdentity.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, Code)); //设置授权凭据 AuthenticationProperties properties = CreateProperties(Code); AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); context.Validated(ticket); } else { DefaultDingTalkClient defaultDingTalk = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/getuserinfo"); OapiUserGetuserinfoRequest req = new OapiUserGetuserinfoRequest(); req.Code = Code; req.SetHttpMethod("GET"); OapiUserGetuserinfoResponse execute = defaultDingTalk.Execute(req, AccessToken.GetAccessToken()); if (execute.Errcode != 0) { DingTalk.Core.Logs.LogHelper.WriteLog(execute.Body); context.SetError("授权码出错啦或配置错误"); return(base.GrantClientCredentials(context)); } string userid = execute.Userid; var Person = dbContext.OR_Person.FirstOrDefault(p => p.LoginName == userid); if (Person == null) { context.SetError("该人员不在组织中"); return(base.GrantClientCredentials(context)); } ClaimsIdentity oAuthIdentity = new ClaimsIdentity(OAuthDefaults.AuthenticationType); //用户名 oAuthIdentity.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, userid)); //设置授权凭据 AuthenticationProperties properties = CreateProperties(userid); AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); context.Validated(ticket); } //return base.GrantClientCredentials(context); #region 钉钉登录 //if (Code=="123") //{ // ClaimsIdentity oAuthIdentity = new ClaimsIdentity(OAuthDefaults.AuthenticationType); // //010742350933650042 // oAuthIdentity.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, "010742350933650042")); // AuthenticationProperties properties = CreateProperties("010742350933650042"); // AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); // context.Validated(ticket); // return base.GrantClientCredentials(context); //} //var AccessToken= Jusoft.YiFang.Db.ThirdSystem.AccessToken.GetAccessToken(); //if (string.IsNullOrEmpty(AccessToken)) //{ // context.SetError("AccessToken", $"Code【{Code}】获取token失败"); // return base.GrantClientCredentials(context); //} //var resUserId= Jusoft.YiFang.Db.ThirdSystem.AccessToken.GetUserId(Code, AccessToken); //if (resUserId.Errcode!=0) //{ // context.SetError("resUserId", $"Code【{Code}】"+resUserId.Errmsg); // return base.GrantClientCredentials(context); //} //var Person = dbContext.OR_Person.FirstOrDefault(p=>p.LoginName == resUserId.Userid); //if (Person != null) //{ // ClaimsIdentity oAuthIdentity = new ClaimsIdentity(OAuthDefaults.AuthenticationType); // oAuthIdentity.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, Person.LoginName)); // AuthenticationProperties properties = CreateProperties(Person.LoginName); // AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); // context.Validated(ticket); //} //else //{ // context.SetError("Person", $"Code【{Code}】未找到人员,请联系管理员"); // return base.GrantClientCredentials(context); //} #endregion } else { #region 微信登录 //string userid = formData.Result["username"];//用户名 //string password = formData.Result["password"];//密码 //string openid = formData.Result["openid"];//微信openid // //优先校验openid //if (string.IsNullOrEmpty(openid)) //{ // context.SetError("invalid_grant", "openid不合法"); // return base.GrantClientCredentials(context); //} //if (!string.IsNullOrEmpty(userid)) //{ // var person = dbContext.OR_Person.FirstOrDefault(k => k.LoginName == userid); // if (person == null) // { // context.SetError("1001", "门店账号信息不对,请重新输入"); // return base.GrantClientCredentials(context); // } // else if (!string.IsNullOrEmpty(person.WeChatOpenId)) // { // context.SetError("1001", $"门店账号信息已绑定用户,请联系管理员操作"); // return base.GrantClientCredentials(context); // } // if (!dbContext.AC_SysUsers.Any(k => k.UserName == userid && k.PasswordHash == password)) // { // context.SetError("1001", "门店密码信息不对,请重新输入"); // return base.GrantClientCredentials(context); // } // person.WeChatOpenId = openid; // dbContext.SaveChanges(); //} //else //{ // var person = dbContext.OR_Person.FirstOrDefault(k => k.WeChatOpenId == openid); // if (person == null) // { // context.SetError("1002", "用户还未绑定账号,请先绑定"); // return base.GrantClientCredentials(context); // } // userid = person.LoginName; //} ////TODO: 校验该用户是否存在与我们自身的系统之中,若存在,则正常加入凭据信息 //var oAuthIdentity = new ClaimsIdentity(context.Options.AuthenticationType); //oAuthIdentity.AddClaim(new Claim(ClaimTypes.Name, userid)); //var ticket = new AuthenticationTicket(oAuthIdentity, new AuthenticationProperties()); //context.Validated(ticket); #endregion } } catch (Exception ex) { context.SetError("invalid_grant", ex.ToString()); } return(base.GrantClientCredentials(context)); }
public static bool IsExistencePerson(this Controller controller, YiFang_CustomerComplaintEntities db) { string loginName = controller.User.Identity.Name; return(db.OR_Person.Any(p => p.LoginName == loginName)); }