/// <summary>
        /// 设置配置值
        /// </summary>
        /// <param name="conf"></param>
        /// <param name="tenantId"></param>
        /// <param name="value"></param>
        public static void SetConfig(Configs conf, int tenantId, object value)
        {
            string val;

            if (value == null)
            {
                val = "";
            }
            else
            {
                val = value.ToString();
            }
            var sqlwhere = "Sys_Config.ConfigName=@name AND Sys_Config.TenantId=@tenantId";
            var config   = DataAccess.GetList <Models.SysConfig>(sqlwhere, new { name = conf.ToString(), tenantId }).FirstOrDefault();

            if (config == null)
            {
                config = new Models.SysConfig()
                {
                    ConfigCode = conf.ToString(), ConfigName = conf.ToString(), ConfigValue = val, TenantId = tenantId
                };
                DataAccess.AddEntity(config);
            }
            else
            {
                config.ConfigValue = val;
                DataAccess.UpdateEntity(config);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 所有的考试
        /// </summary>
        /// <param name="classId"></param>
        /// <returns></returns>
        public List <Tr_TrainClassToExam> GetClassExamShow(int classId)
        {
            var examList = _dataAccess.GetList <Tr_TrainClassToExam>(" Tr_TrainClassToExam.IsDelete=0 and ClassId=" + classId);

            if (examList.Any())
            {
                var dbExamList  = _examinationDb.GetAllExamination(examList.Select(p => p.ExamID));
                var dbPaperList = _exampaperDb.GetExampaperRedundancyList();
                foreach (var exam in examList)
                {
                    if (exam.ExamID > 0)
                    {
                        tbExamination         model = dbExamList.FirstOrDefault(p => p._id == exam.ExamID);
                        tbExampaperRedundancy paper = dbPaperList.FirstOrDefault(p => p.ExampaperId == model.PaperID);
                        exam.PaperID        = paper != null ? paper._id : 0;
                        exam.Papername      = paper != null ? paper.ExampaperTitle : "--";
                        exam.TestTimes      = model.TestTimes;
                        exam.RadomOrderFlag = model.RadomOrderFlag;
                        exam.PassScore      = model.PassScore;
                    }
                }
            }

            return(examList);
        }
Beispiel #3
0
        public void LoadSendUsers(SurveyInfo surveyInfo)
        {
            var sqlwhere  = "Cde_UserSurvey.SurveyId=" + surveyInfo.SurveyId;
            var sendusers = _dataAccess.GetList <UserSurvey>(sqlwhere);

            surveyInfo.EvalUsers.AddRange(sendusers);
        }
Beispiel #4
0
        public Cde_SurveyExampaper GetFullExampaper(int id)
        {
            var exampaper = GetExampaper(id);

            if (exampaper == null)
            {
                return(null);
            }
            var questions =
                _dataAccess.GetListBySql <Cde_IndexQuestion>(@"SELECT sq.ShowOrder, iq.* ,s1.SortName,s2.SortName AS SecondSortName
FROM Cde_SurveyQuestion sq JOIN  Cde_IndexQuestion iq ON iq.QuestionId = sq.QuestionID
LEFT JOIN Cde_IndexSort s1 ON s1.SortId = iq.SortId
LEFT JOIN Cde_IndexSort s2 ON s2.SortId=iq.SecondSortId
WHERE sq.ExampaperID = " + id + " ORDER BY sq.ShowOrder");
            var answers =
                _dataAccess.GetList <Cde_IndexQuestionAnswer>(" Cde_IndexQuestionAnswer.QuestionId IN (" +
                                                              questions.Select(p => p.QuestionId).GetString() + ")  ");

            exampaper.Questions.AddRange(questions);
            foreach (var question in questions)
            {
                question.Answers.AddRange(answers.Where(p => p.QuestionId == question.QuestionId));
            }

            return(exampaper);
        }
Beispiel #5
0
        public void LoadOpenUsers(KL_Resource resource)
        {
            var sqlwhere = "KL_KnowledgeOpenUser.ResourceId=" + resource.ResourceId;

            resource.OpenUsers.Clear();
            resource.OpenUsers.AddRange(_dataAccess.GetList <KL_KnowledgeOpenUser>(sqlwhere));
        }
Beispiel #6
0
        public UserSurvey GetUserSurvey(int userId, int surveyId)
        {
            var sqlwhere = "SurveyId=" + surveyId + " AND UserId=" + userId;
            var model    = _dataAccess.GetList <UserSurvey>(sqlwhere).FirstOrDefault();

            return(model);
        }
Beispiel #7
0
        /// <summary>
        /// 获取部门列表
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        public List <SysDepartment> GetDeptList(string ids)
        {
            var deptList =
                _dataAccess.GetList <SysDepartment>(string.Format(" DeptId in ({0})", ids.TrimEnd(',').TrimStart(',')));

            return(deptList);
        }
Beispiel #8
0
        /// <summary>
        /// 获取子分类
        /// </summary>
        /// <param name="tenantId"></param>
        /// <param name="categoryId"></param>
        /// <returns></returns>
        public IEnumerable <EBookCategory> GetAllChilds(int tenantId, int categoryId)
        {
            var allsorts = _dataAccess.GetList <EBookCategory>("Res_EBookCategory.IsDelete = 0 and Res_EBookCategory.TenantId = " + tenantId);
            var list     = new List <EBookCategory>();

            GetSortChilds(categoryId, allsorts, list);
            return(list);
        }
Beispiel #9
0
        /// <summary>
        /// 获得培训班报名管理列表页
        /// </summary>
        /// <param name="totalCount"></param>
        /// <param name="classType"></param>
        /// <param name="deptId"></param>
        /// <param name="trainname"></param>
        /// <param name="traincode"></param>
        /// <param name="username"></param>
        /// <param name="signupstatus"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public List <TrainClassSignUpShow> GetClassSignUpList(out int totalCount, int classType, int deptId, string trainname, string traincode
                                                              , string username, int signupstatus, int pageIndex, int pageSize)
        {
            var sqlwhere = " and tt.IsDelete=0 and tt.IsSignUp=1 ";

            if (classType > -1)
            {
                sqlwhere += " and tt.ClassType =" + classType.ToString(CultureInfo.CurrentCulture);
            }
            if (!string.IsNullOrEmpty(trainname))
            {
                sqlwhere += string.Format(" AND tt.TrainName like '%{0}%'", trainname.ReplaceSql());
            }
            if (!string.IsNullOrEmpty(traincode))
            {
                sqlwhere += string.Format(" AND tt.Code like '%{0}%'", traincode.ReplaceSql());
            }
            if (!string.IsNullOrEmpty(username))
            {
                sqlwhere += string.Format(" AND tt.Realname like '%{0}%'", username.ReplaceSql());
            }
            if (signupstatus != -1)
            {
                sqlwhere += " and tt.SignUpCondition=" + signupstatus.ToString(CultureInfo.CurrentCulture);
            }
            if (deptId > 0)
            {
                var deptIds = new List <int> {
                    deptId
                };
                var deptList = _dataAccess.GetList <SysDepartment>("Sys_Department.Status = 0 ");
                GetChildDeptIds(deptId, deptList, deptIds);
                sqlwhere += " AND syu.DeptId in (" + deptIds.GetString() + ") ";
            }

            string sql   = string.Format(@"SELECT * FROM (
SELECT row_number()OVER(ORDER BY tt.ClassId desc) RowIndex,count(1)OVER(PARTITION BY null) totalCount
,tp.TrainName,ClassId, ClassType, Code,tt.Number,OldClassId,sd.DeptName,syu.Realname,tt.SignUpCondition,tt.SignUpEndTime,
(select count(*) from Tr_TrainClassToUser tc where tc.ClassId=tt.ClassId and tc.IsDelete=0) SignUpUser,
(select count(*) from Tr_TrainClassToUser tc where tc.ClassId=tt.ClassId and tc.IsDelete=0 and tc.ApproveStatus=1 ) SignUpApprovalUser
FROM Tr_TrainClass tt
LEFT JOIN Tr_PlanClass tp ON tp.PlanClassID=tt.PlanClassId
LEFT JOIN Sys_Department sd ON sd.DeptId=tt.DeptID
LEFT JOIN Sys_Users syu ON syu.UserId=tt.CreateUserID
WHERE tt.ApproveStatus=2  AND tt.IsDelete=0 {0}
)result WHERE  RowIndex BETWEEN @startLength*(@startIndex-1)+1  AND @startLength*@startIndex", sqlwhere);
            var    param = new
            {
                startIndex  = pageIndex,
                startLength = pageSize
            };
            var list = _dataAccess.FetchListBySql <TrainClassSignUpShow>(sql, param);

            totalCount = list.Any() ? list.FirstOrDefault().totalCount : 0;
            return(list.ToList());
        }
Beispiel #10
0
        public IEnumerable <KL_CategorySubscription> GetSubscriptions(int userId)
        {
            var list = _dataAccess.GetList <KL_CategorySubscription>("KL_CategorySubscription.UserId=" + userId);

            foreach (var subscription in list)
            {
                subscription.FirstCategoryName  = AllSorts.First(p => p.SortId == subscription.FirstCategory).SortName;
                subscription.SecondCategoryName = AllSorts.First(p => p.SortId == subscription.CategoryId).SortName;
            }
            return(list);
        }
Beispiel #11
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public List <SysPermission> GetAllPermissions()
        {
            var list = _dataAccess.GetList <SysPermission>("Sys_Permission.Status=0 ORDER BY Sort");

            foreach (var function in list)
            {
                //function.Father = list.FirstOrDefault(p => p.PermissionId == function.ParentId);
                function.Childrens.AddRange(list.Where(p => p.ParentId == function.PermissionId));
            }
            return(list);
        }
Beispiel #12
0
        public Cde_Report GetReport(int userSurveyId)
        {
            var report = _dataAccess.GetList <Cde_Report>("Cde_Report.UserSurveyId=" + userSurveyId).FirstOrDefault();

            if (report != null)
            {
                var indexs = _dataAccess.GetList <Cde_ReportIndex>("Cde_ReportIndex.ReportId=" + report.ReportId);
                report.IndexList.AddRange(indexs);
            }
            return(report);
        }
Beispiel #13
0
        /// <summary>
        /// 获取系统中所有的权限
        /// </summary>
        /// <returns></returns>
        public List <SysPermission> GetAllPermissions(int type)
        {
            var where = string.Format(@"Sys_Permission.Status=0 and UserType={0} ORDER BY Sort", type);
            var list = _dataAccess.GetList <SysPermission>(where);

            foreach (var function in list)
            {
                //function.Father = list.FirstOrDefault(p => p.PermissionId == function.ParentId);
                function.Childrens.AddRange(list.Where(p => p.ParentId == function.PermissionId));
            }
            return(list);
        }
Beispiel #14
0
        /// <summary>
        ///施教机构 系统中所有的权限
        /// </summary>
        public List <SysPermission> Permissions(int tenantId)
        {
            var cacheKey = "permissions_" + tenantId;

            CacheHelper.CacheService.Remove(cacheKey);
            var list = CacheHelper.CacheService.GetList <SysPermission>(cacheKey);

            if (list == null || !list.Any())
            {
                list = _dataAccess.GetList <SysPermission>("PermissionId IN (SELECT PermissionId FROM Sys_TenantPermission WHERE TenantId=" + tenantId + ") AND Status=0 ");
                CacheHelper.CacheService.SetList(cacheKey, list, CachingExpirationType.Invariable);
            }
            return(list.ToList());
        }
Beispiel #15
0
        /// <summary>
        /// 出发特定的积分事件
        /// </summary>
        /// <param name="ruleCode">规则代码</param>
        /// <param name="userId">用户id</param>
        /// <param name="tenantId">租户Id</param>
        /// <returns></returns>
        public int FireIntegrationEvent(IntegrationEvents ruleCode, int userId, int tenantId)
        {
            var code = ruleCode.ToString();

            if (!IntegrationRules.Instance.IsExistsCode(code))
            {
                //规则代码不匹配
                throw new Exception("规则代码不匹配");
            }
            //找到规则
            var rule = _dataAccess.GetList <IntegralRule>(string.Format("IsEnabled=1 AND RuleCode='{0}' AND TenantId={1}", ruleCode, tenantId)).FirstOrDefault();

            if (rule == null)
            {
                //该租户木有配置规则
                return(0);
            }
            //判断规则周期
            var startTime = DateTime.Now;

            switch (rule.TimeRange)
            {
            case -1:
                startTime     = new DateTime(1901, 1, 1);
                rule.MaxTimes = 1;
                break;

            case 0:
                AddIntegration(rule.RuleId, rule.Integral, userId, tenantId);
                return(rule.Integral);

            case 2:
                startTime = startTime.Accuracy("h");
                break;

            case 3:
                startTime = startTime.Accuracy("d");
                break;
            }
            //查找本周期内,积分奖惩次数
            var count = _dataAccess.GetCount <UserIntegral>(string.Format("Int_UserIntegral.RuleId={0} AND Int_UserIntegral.TimeToGet>'{1}' AND Int_UserIntegral.UserId={2}", rule.RuleId, startTime.ToString("yyyy-MM-dd HH:mm:00"), userId));

            if (count >= rule.MaxTimes)
            {
                return(0);
            }
            AddIntegration(rule.RuleId, rule.Integral, userId, tenantId, rule.RuleDesc);
            return(rule.Integral);
        }
Beispiel #16
0
        /// <summary>
        /// 初始化一个租户角色和其权限
        /// </summary>
        /// <param name="TenantId"></param>
        /// <returns>返回角色ID</returns>
        public int IntiRole(int tenantId)
        {
            var result = 0;
            var roleId = 0;
            var single = _dataAccess.GetList <SysRole>(" IsDefault=1 and TenantId=" + tenantId).FirstOrDefault();
            var role   = new SysRole
            {
                RoleName    = "默认角色",
                Description = "默认角色",
                TenantId    = tenantId,
                CreateTime  = DateTime.Now,
                IsDefault   = 1,
                Status      = 0,
                IsDelete    = 0
            };

            if (single != null)
            {
                roleId      = single.RoleId;
                role.RoleId = roleId;
                _dataAccess.UpdateEntity(role);
            }
            else
            {
                roleId = _dataAccess.AddEntity(role);
            }

            if (roleId > 0)
            {
                IntiRoleRight(roleId, tenantId);
            }
            return(roleId);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="courseId"></param>
        /// <returns></returns>
        public List <ResCourseToExam> LoadCourseExaminations(int courseId)
        {
            var sqlwhere = "Res_CourseToExam.CourseId=" + courseId;
            var list     = _dataAccess.GetList <ResCourseToExam>(sqlwhere);

            if (list.Count > 0)
            {
                var manager = new RetechWing.BusinessCommon.Examination.ExaminationCommonMethod();// ExampaperDb();
                var exampaperRedundancys = manager.GetAllExampaperRedundancy(list.Select(p => p.ExampaperId));

                var sortlist = manager.GetAllListByTenantId <RetechWing.Models.Exam.DBModels.tbExampaperSort>(false, exampaperRedundancys.First().TenantId);
                foreach (var exam in list)
                {
                    var tmp = exampaperRedundancys.FirstOrDefault(p => p._id == exam.ExampaperId);
                    if (tmp == null)
                    {
                        list.Remove(exam);
                        continue;
                    }
                    exam.Exampaper             = tmp;
                    exam.ExampaperId           = tmp.ExampaperId;
                    exam.ExampaperRedundancyId = tmp._id;
                    exam.SortName = sortlist.Any(p => p._id == tmp.ExamSortID) ? sortlist.Find(p => p._id == tmp.ExamSortID).Title : "";
                }
            }
            return(list);
        }
Beispiel #18
0
        /// <summary>
        /// 绑定用户到微信帐户,如果该openID已经绑定则取消原有,绑定新的
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="openId"></param>
        public void BindingUserAccount(int userId, string openId)
        {
            var model = _dataAccess.GetList <Wx_BindingAccount>(string.Format("openid = '{0}'", openId)).FirstOrDefault();

            if (model == null)
            {
                _dataAccess.AddEntity(new Wx_BindingAccount {
                    OpenID = openId, UserId = userId
                });
            }
            else if (model.UserId != userId)
            {
                model.UserId = userId;
                _dataAccess.UpdateEntity(model);
            }
        }
Beispiel #19
0
        /// <summary>
        /// 根据部门id获得审批流程
        /// </summary>
        /// <param name="deptId">部门id</param>
        /// <param name="wayType">
        /// 路径类型
        ///   0:培训
        ///   1:晋升学习
        /// </param>
        /// <param name="approveStepList">返回流程的步骤</param>
        /// <param name="approveDeptList">返回流程的适用部门</param>
        /// <param name="canUpdate">是否能修改流程,代表是自己新建的还是强制被覆盖的</param>
        /// <returns>返回0代表可以新建流程,否则返回流程wayid</returns>
        public ApproveWay GetApproveWay(int deptId, int wayType, out List <ApproveStep> approveStepList,
                                        out List <ApproveDept> approveDeptList, out bool canUpdate)
        {
            //找到部门所用流程
            var approvedepts =
                _dataAccess.GetList <ApproveDept>("Ap_ApproveDept.DeptId=" + deptId +
                                                  " and Ap_ApproveWay.WayType=" + wayType +
                                                  " and Ap_ApproveDept.IsDelete=0 and Ap_ApproveWay.IsDelete=0");

            //没有限定流程,可以新建
            if (approvedepts.Count == 0)
            {
                approveDeptList = new List <ApproveDept> {
                    new ApproveDept {
                        DeptId = deptId
                    }
                };
                approveStepList = new List <ApproveStep>();
                canUpdate       = true;
                return(new ApproveWay());
            }
            //限定流程
            if (approvedepts.Count == 1)
            {
                var approvedept = approvedepts.FirstOrDefault();
                //如果是自己创建的,可以修改
                if (approvedept.DeptId == approvedept.ApproveWay_DeptId)
                {
                    canUpdate       = true;
                    approveDeptList =
                        _dataAccess.GetList <ApproveDept>("Ap_ApproveDept.WayId=" + approvedept.WayId +
                                                          " and Ap_ApproveDept.IsDelete=0");
                }
                //不是自己创建的,只能查看
                else
                {
                    canUpdate       = false;
                    approveDeptList = new List <ApproveDept>();
                }
                //步骤获取
                approveStepList =
                    _dataAccess.GetList <ApproveStep>("Ap_ApproveStep.WayId=" + approvedept.WayId +
                                                      " Order by Ap_ApproveStep.OrderNum");

                return(_dataAccess.Get <ApproveWay>(approvedept.WayId));
            }
            throw new Exception(RetechWing.LanguageResources.Other.MultipleApprovalProcess);
        }
Beispiel #20
0
        /// <summary>
        /// 学习指派
        /// </summary>
        /// <param name="designateUser">指派者ID</param>
        /// <param name="userId">被指派者id</param>
        /// <returns></returns>
        public void GetDesignateDetail(int designateUser, int userId)
        {
            var userCourseListSql = string.Format(@"SELECT distinct u.UserId,u.Username,u.Realname,u.Sex,u.UserCode,dp.LevelPath,p.PostName,d.CourseId FROM Len_DesignateCourse d LEFT JOIN Sys_Users u
ON u.UserId=d.UserId
LEFT JOIN Sys_Department dp ON u.DeptId=dp.DeptId
LEFT JOIN Sys_Posts p ON u.PostId=p.PostId
WHERE   DesignateUser={0} AND d.InfoType IN(0) and u.UserId={1}", designateUser, userId);
            var userCourseList    = _dataAccess.FetchListBySql <DesignateUserList>(userCourseListSql);
            var courseIds         = userCourseList.Select(p => p.CourseId).Distinct().GetString();

            string[] courseId = courseIds.Split(',');
            //更新学习记录
            if (userCourseList.Any())
            {
//                var sql = string.Format(@"DELETE FROM dbo.Len_LearningRecord WHERE UserId = {0} AND CourseId IN ({1})
//AND LearnPath=0 AND SourceId=0 ", userId, courseIds);
//                var DeletelearnRecords = _dataAccess.ExecuteSql(sql);
                List <LenLearningRecord> learnRecords = new List <LenLearningRecord>();
                foreach (var item in courseId)
                {
                    var learnRecord = _dataAccess.GetList <LenLearningRecord>(string.Format(@"WHERE UserId = ({0}) AND CourseId = ({1})
AND LearnPath=0 AND SourceId=0 ", userId, Convert.ToInt32(item)));
                    if (learnRecord.Count > 0)
                    {
                        _dataAccess.UpdateFieldCalc("dbo.Len_LearningRecord", "LearnProcess", "2", "where RecordId=" + learnRecord[0].RecordId);
                    }
                    else
                    {
                        LenLearningRecord lr = new LenLearningRecord();
                        lr.CourseId      = Convert.ToInt32(item);
                        lr.UserId        = userId;
                        lr.LearnProcess  = 2;
                        lr.LearnPath     = 0;
                        lr.SourceId      = 0;
                        lr.StartTime     = DateTime.Now;
                        lr.EndTime       = DateTime.Now;
                        lr.LastLearnTime = DateTime.Now;
                        _dataAccess.AddEntity(lr);
                    }
                }
            }
        }
Beispiel #21
0
        /// <summary>
        ///     添加标签,返回ID
        ///     如果已经存在,则返回ID
        /// </summary>
        /// <param name="tag"></param>
        /// <returns></returns>
        public int Insert(KL_Tags tag)
        {
            var list = _dataAccess.GetList <KL_Tags>(string.Format(" KL_Tags.TenantId = {0} and KL_Tags.TagName = '{1}'", tag.TenantId, tag.TagName.ReplaceSql()));

            if (list.Count > 0)
            {
                return(list[0].TagId);
            }

            _dataAccess.AddEntity(tag);
            return(tag.TagId);
        }
Beispiel #22
0
        /// <summary>
        /// 获得数据列表
        /// </summary>
        public List <PromotionApply> GetList(string strWhere)
        {
            var list = _dataAccess.GetList <PromotionApply>(strWhere);

            if (list.Count == 0)
            {
                return(list);
            }
            var ways   = _dataAccess.GetList <PromotionWay>("Ab_PromotionWay.IsDelete=0 AND PromotionId IN (" + list.Select(p => p.PromotionId).GetString() + ")");
            var stages =
                _dataAccess.GetList <PromotionStage>("Ab_PromotionStage.IsDelete=0 AND PromotionId IN (" + list.Select(p => p.PromotionId).GetString() +
                                                     ")");

            list = list.FindAll(p => ways.Any(w => w.PromotionId == p.PromotionId));
            foreach (var way in ways)
            {
                way.Stages.AddRange(stages.Where(p => p.PromotionId == way.PromotionId).OrderBy(p => p.OrderNum));
                list.First(p => p.PromotionId == way.PromotionId).PromotionWay = way;
            }
            return(list);
        }
Beispiel #23
0
        /// <summary>
        /// 租户下所有的用户
        /// </summary>
        /// <returns></returns>
        public IEnumerable <SysUser> SystemUser()
        {
            var cacheKey = "users";
            var list     = CacheHelper.CacheService.GetList <SysUser>(cacheKey);

            if (list == null || !list.Any())
            {
                list = _dataAccess.GetList <SysUser>();
                CacheHelper.CacheService.SetList(cacheKey, list, CachingExpirationType.Stable);
            }
            return(list);
        }
Beispiel #24
0
        /// <summary>
        /// 创建小组,创建用户,并把两者进行关联
        /// 审批 or 发布 成功时,执行
        /// </summary>
        /// <param name="trainId"></param>
        public void TrainUserJoinGroup(int trainId)
        {
            if (string.IsNullOrWhiteSpace(mysqlconnectionString))
            {
                return;
            }

            var train = _dataAccess.Get <TrTrainingInfo>(trainId);

            if (train.Status != 4)
            {
                return;
            }
            var detailList = _dataAccess.GetList <TrTrainDetail>("Tr_TrainDetail.IsDeleted = 0 and Tr_TrainDetail.TrainId = " + trainId);
            var userids    = _dataAccess.FetchListBySql <int>(string.Format(@"
                    select userId from Tr_TrainUser where trainId = {0} 
                    union 
                    select userId from Tr_TrainRegister where ApplyStatus = 2 and Tr_TrainRegister.TrainId = {0}", trainId));

            var ofuser    = GetofUsers();
            var ofuserids = new List <int>();
            int o;

            foreach (var item in ofuser)
            {
                if (int.TryParse(item.username, out o))
                {
                    ofuserids.Add(o);
                }
            }

            //var ofuserids = GetofUsers().Select(p => Convert.ToInt32(p.username));
            var tmpuserid = userids.Where(p => !ofuserids.Contains(p)).ToList();

            if (tmpuserid.Any())
            {
                AddUsers(tmpuserid);
            }
            JoinUserGroup(detailList.Where(p => p.TrainFrom > 0).Select(p => p.DetailId), userids);
        }
Beispiel #25
0
        /// <summary>
        /// 批量添加授权信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool AddAllTenantToWare(List <Sys_TenantToWare> list, string wareids)
        {
            var result  = 0;
            var allList =
                _dataAccess.GetList <Sys_TenantToWare>(" WareID in (" + wareids.TrimEnd(',').TrimStart(',') + ")");

            foreach (var item in list)
            {
                var single = allList.FirstOrDefault(p => p.WareID == item.WareID);
                if (single == null)
                {
                    _dataAccess.AddEntity(item);
                }
                else
                {
                    var openList = (single.OpenObject.TrimEnd(',') + "," + item.OpenObject.TrimStart(',')).Split(',').ToList().Distinct();
                    single.OpenObject = string.Join(",", openList);
                    _dataAccess.UpdateEntity(single);
                }
                result++;
            }
            return(result == list.Count);
        }
Beispiel #26
0
        public IEnumerable <IntQuestion> GetAllThematicQuestons(int tenantId, int info)
        {
            var sqlwhere = "Int_Question.IsDelete=0 AND Int_Question.IsThematic=1 AND Int_Question.TenantId=" + tenantId;

            switch (info)
            {
            case 1:    //未处理的提问
                sqlwhere += " AND Int_Question.AnswerId=0 AND (Int_Question.Expired IS NULL OR Int_Question.Expired>'" + DateTime.Now.ToString("yyyy-MM-dd") + "')";
                break;

            case 2:    //已处理的提问
                sqlwhere += " AND Int_Question.AnswerId<>0 AND (Int_Question.Expired IS NULL OR Int_Question.Expired>'" + DateTime.Now.ToString("yyyy-MM-dd") + "')";
                break;

            case 3:    //已过期的提问
                sqlwhere += " AND Int_Question.AnswerId=0  AND Int_Question.Expired <'" + DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "'";
                break;
            }
            return(_dataAccess.GetList <IntQuestion>(sqlwhere));
        }
Beispiel #27
0
        private static readonly int REMOVEDIFF  = 60; //多少秒执行一次删除不活动用户

        /// <summary>
        /// Checks the online.
        /// </summary>
        /// <param name="userId">User identifier.</param>
        /// <param name="tenantId">Tenant identifier.</param>
        public static void CheckOnline(int userId, int tenantId)
        {
            lock (lockHelper)
            {
                string sessionId = System.Web.HttpContext.Current.Session.SessionID;

                //数据表中是否有用户的记录
                OnlineUser onlineUser = _dataAccess.GetList <OnlineUser>("sys_onlineuser.UserId=" + userId).FirstOrDefault();// onlineUsers.Find(p => p.UserId == userId);
                if (onlineUser != null && onlineUser.SessionId != sessionId)
                {
                    //SESSION变了???
                    //onlineUsers.Remove(onlineUser);
                    _dataAccess.DeleteEntities <OnlineUser>("sys_onlineuser.UserId=" + userId);
                    onlineUser = null;
                }
                if (onlineUser != null)
                {
                    //有;更新我的状态
                    onlineUser.LastActiveTime = DateTime.Now;
                    onlineUser.UserWhere      = AtWhere();
                    onlineUser.UserId         = userId;
                    _dataAccess.UpdateEntity(onlineUser, "SessionId");
                }
                else
                {
                    //无;加入关于我的在线信息
                    onlineUser                = new OnlineUser();
                    onlineUser.SessionId      = sessionId;
                    onlineUser.TenantId       = tenantId;
                    onlineUser.UserId         = userId;
                    onlineUser.LastActiveTime = DateTime.Now;
                    onlineUser.LoginTime      = DateTime.Now;
                    onlineUser.VisitorIp      = System.Web.HttpContext.Current.Request.UserHostAddress;
                    onlineUser.UserWhere      = AtWhere();
                    _dataAccess.AddEntity(onlineUser);
                }
                //如果离上次删除的时间间隔超过设定值
                TimeSpan tsRemove = DateTime.Now - LastRemove;
                if (tsRemove.Seconds > REMOVEDIFF)
                {
                    _dataAccess.ExecuteSql(string.Format(@"DELETE FROM sys_onlineuser
where TIMESTAMPDIFF(SECOND,LastActiveTime,now())>{0};", OFFLINEDIFF * 60));
                    //重置上次删除时间
                    LastRemove = DateTime.Now;
                }
            }
        }
Beispiel #28
0
        public int SaveLearningRecord(int stageid, int abilityid, int applyId)
        {
            var record = _dataAccess.GetList <AbLearningRecord>("StageId=" + stageid + " AND AbilityId=" + abilityid + " AND ApplyId=" + applyId).FirstOrDefault();

            if (record == null)
            {
                var promotion = _dataAccess.Get <PromotionStage>(stageid);
                return(_dataAccess.AddEntity(new AbLearningRecord()
                {
                    StageId = stageid,
                    AbilityId = abilityid,
                    ApplyId = applyId,
                    PromotionId = promotion.PromotionId
                }));
            }
            else
            {
                return(record.RecordId);
            }
        }
Beispiel #29
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="keyWord"></param>
        /// <param name="tenantId"></param>
        /// <returns></returns>
        public static int AddWord(string keyWord, int tenantId)
        {
            if (string.IsNullOrWhiteSpace(keyWord))
            {
                return(0);
            }
            var exists = _dataAccess.GetList <Sys_SearchKeyWord>("KeyWord=@keyword AND TenantId=@tid", new { keyword = keyWord, tid = tenantId }).FirstOrDefault();

            if (exists == null)
            {
                exists = new Sys_SearchKeyWord
                {
                    KeyWord     = keyWord,
                    SearchCount = 1,
                    TenantId    = tenantId,
                    Lookup      = keyWord.GetPy(0) + " " + keyWord.GetPy(2)
                };
                return(_dataAccess.AddEntity(exists));
            }
            exists.SearchCount += 1;
            return(_dataAccess.UpdateEntity(exists));
        }
Beispiel #30
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="deptId"></param>
        /// <returns></returns>
        public IEnumerable <SysPost> GetPostByDeptId(int deptId)
        {
            var sqlwhere = "Sys_Posts.Status=0 AND Sys_Posts.DeptId=" + deptId;

            return(_dataAccess.GetList <SysPost>(sqlwhere));
        }