Exemplo n.º 1
0
        /// <summary>
        /// 签到
        /// </summary>
        /// <returns></returns>
        public JsonResult LoginIn(string AdminId, string MacAddress)
        {
            OperationResult oper       = new OperationResult(OperationResultType.Error, "请重新登陆");
            int             adminId    = 0;
            string          strAdminId = AdminId;

            if (string.IsNullOrEmpty(strAdminId))
            {
                return(Json(oper));
            }

            adminId = int.Parse(strAdminId);

            if (ExistUnreadMsg(adminId))
            {
                oper.Message = "请先阅读通知";
                return(Json(oper));
            }

            var examRecords = _examRecordContract.Entities.Count(r => r.AdminId == adminId && !r.IsDeleted && r.IsEnabled && r.EntryTrainStatus == 0);

            if (examRecords > 0)
            {
                oper.Message = "您的入职培训试题未完成,无法签到";
                return(Json(oper));
            }

            if (_workOrderDealtWithContract.Entities.Count(d => d.HandlerID == adminId && d.Status == 0) > 0)
            {
                oper.Message = "您有未处理的配单信息";
                return(Json(oper));
            }

            var dic = _attendanceContract.DoubleScoreReminderBySign(adminId);

            if (dic["DeductionDoubleScore"])
            {
                oper.Message = "扣除双倍积分";
                oper.Other   = -2;
                return(Json(oper));
            }

            Administrator admin = _administratorContract.View(adminId);

            var checkmac = admin?.JobPosition.CheckMac != false;

            if (checkmac)
            {
                string strMac = MacAddress;
                oper = this.CheckMac(strMac);

                if (oper.ResultType != OperationResultType.Success)
                {
                    return(Json(oper, JsonRequestBehavior.AllowGet));
                }
            }
            Department department = oper.Data as Department;

            oper = _attendanceContract.LoginIn(adminId, department, !checkmac);
            if (dic["IsReminder"])
            {
                oper.Other = -1;
            }
            else
            {
                oper.Other = 0;
            }
            admin.UpdatedTime = DateTime.Now;
            admin.LoginTime   = DateTime.Now;
            _administratorContract.Update(admin);

            var res = _statContract.SetStoreOpenWhenFirstSignIn(adminId);

            if (res.ResultType != OperationResultType.Success)
            {
                _Logger.Error(res.Message);
            }
            if (oper.ResultType == OperationResultType.Success)
            {
                _administratorContract.SendAdminBirthdayNoti(adminId);
            }

            return(Json(oper, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// 签到
        /// </summary>
        /// <returns></returns>
        public JsonResult LoginIn()
        {
            OperationResult oper    = new OperationResult(OperationResultType.Error, "请重新登陆");
            int             adminId = AuthorityHelper.OperatorId ?? 0;
            Administrator   admin   = _administratorContract.View(adminId);


            var examRecords = _examRecordContract.Entities.Count(r => r.AdminId == adminId && !r.IsDeleted && r.IsEnabled && r.EntryTrainStatus == 0);

            if (examRecords > 0)
            {
                oper.Message = "您的入职培训试题未完成,无法签到";
                return(Json(oper, JsonRequestBehavior.AllowGet));
            }

            if (_workOrderDealtWithContract.Entities.Count(d => d.HandlerID == adminId && d.Status == 0) > 0)
            {
                oper.Message = "您有未处理的配单信息";
                return(Json(oper, JsonRequestBehavior.AllowGet));
            }

            var dic = _attendanceContract.DoubleScoreReminderBySign(adminId);

            if (dic["DeductionDoubleScore"])
            {
                oper.Message = "上个月有未处理的补卡,处理后方可正常签到";
                oper.Other   = -2;
                return(Json(oper, JsonRequestBehavior.AllowGet));
            }

            string strMac = Request["Mac"];

            var checkmac = admin?.JobPosition.CheckMac != false;

            if (checkmac)
            {
                oper = this.CheckMac(strMac);

                if (oper.ResultType != OperationResultType.Success)
                {
                    return(Json(oper, JsonRequestBehavior.AllowGet));
                }
            }
            Department department = oper.Data as Department;

            oper = _attendanceContract.LoginIn(adminId, department);

            if (dic["IsReminder"])
            {
                oper.Other   = -1;
                oper.Message = "补卡未处理的从下个月进行补卡会扣双倍积分";
            }
            else
            {
                oper.Other = 0;
            }
            admin.UpdatedTime = DateTime.Now;
            admin.LoginTime   = DateTime.Now;
            _administratorContract.Update(admin);

            var res = _statContract.SetStoreOpenWhenFirstSignIn(adminId);

            if (oper.ResultType == OperationResultType.Success)
            {
                _administratorContract.SendAdminBirthdayNoti(adminId);
            }

            return(Json(oper, JsonRequestBehavior.AllowGet));
        }