/// <summary> /// OAuthScope.snsapi_userinfo方式回调 /// </summary> /// <param name="code"></param> /// <param name="returnUrl">用户最初尝试进入的页面</param> /// <returns></returns> public async Task <ActionResult> BaseCallback(string code, string returnUrl) { if (string.IsNullOrEmpty(code)) { return(Content("您拒绝了授权!")); } try { var appKey = AccessTokenContainer.BuildingKey(_workWeixinSetting); var accessToken = await AccessTokenContainer.GetTokenAsync(_corpId, _corpSecret); //获取用户信息 测试链接:https://open.work.weixin.qq.com/wwopen/devtool/interface?doc_id=10019 var oauthResult = await OAuth2Api.GetUserIdAsync(accessToken, code); var userId = oauthResult.UserId; GetMemberResult result = await MailListApi.GetMemberAsync(appKey, userId); if (result.errcode != ReturnCode_Work.请求成功) { return(Content("错误:" + result.errmsg)); } ViewData["returnUrl"] = returnUrl; /* 注意: * 实际适用场景,此处应该跳转到 returnUrl,不要停留在 Callback页面上。 * 因为当用户刷新此页面 URL 时,实际 code 等参数已失效,用户会受到错误信息。 */ return(View(result)); } catch (Exception ex) { return(Content("错误:" + ex.Message)); } }
public async Task <ResultJSON <List <Wage> > > Get(string ym) { if (string.IsNullOrWhiteSpace(ym)) { ym = DateTime.Now.ToString("yyyyMM"); } int d = Convert.ToInt32(ym); int y = Convert.ToInt32(ym.Substring(0, 4)); int m = Convert.ToInt32(ym.Substring(4, 2)); var users = r.GetAllList(); foreach (var u in users) { var workInfo = await MailListApi.GetMemberAsync(option.AccessToken, u.UserId); DateTime startdate = new DateTime(y, m, 1, 0, 0, 0); DateTime enddate = startdate.AddMonths(1).AddSeconds(-1); var olist = orderrepository.GetAllList(o => o.PayState == PayState.已结算 && o.CreatedBy == u.Name && o.LastUpdatedAt >= startdate && o.LastUpdatedAt <= enddate); if (!wr.Has(w => w.年月 == d && w.Name == u.Name)) { var wage = new Wage { Name = u.Name, 年月 = d, 基本 = u.BaseWage, 社保 = u.SocialSecurity, 安全保障金 = u.Security, 职务 = workInfo.isleader == 0 ? "普通职员" : "上级", DepartmentId = workInfo.department[0] }; if (olist.Count > 0) { wage.超额 = olist.Sum(o => (o.Price - o.MinPrice) * o.Count); wage.提成 = olist.Sum(o => o.SalesCommission); } wr.Insert(wage); } else { var wage = wr.FirstOrDefault(w => w.年月 == d && w.Name == u.Name); wage.Name = u.Name; wage.年月 = d; wage.基本 = u.BaseWage; wage.社保 = u.SocialSecurity; wage.安全保障金 = u.Security; wage.职务 = workInfo.isleader == 0 ? "普通职员" : "上级"; wage.DepartmentId = workInfo.department[0]; if (olist.Count > 0) { wage.超额 = olist.Sum(o => (o.Price - o.MinPrice) * o.Count); wage.提成 = olist.Sum(o => o.SalesCommission); } wr.Save(); } } var list = wr.GetAllList(w => w.年月 == d); foreach (var wage in list) { wage.实发 = wage.基本 + wage.提成 + wage.交通 - wage.社保 - wage.安全保障金 - wage.请假 - wage.餐费 - wage.借支; } return(new ResultJSON <List <Wage> > { Code = 0, Data = list }); }