Esempio n. 1
0
        /// <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));
            }
        }
Esempio n. 2
0
        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
            });
        }