Beispiel #1
0
 /// <summary>
 /// 保存表单(新增、修改)
 /// </summary>
 /// <param name="keyValue">主键值</param>
 /// <param name="entity">实体对象</param>
 /// <returns></returns>
 public void SaveForm(string keyValue, TrainingPlanEntity entity)
 {
     try
     {
         service.SaveForm(conEntity.DbConnection, keyValue, entity);
     }
     catch (Exception)
     {
         throw;
     }
 }
Beispiel #2
0
 public TrainingPlanDTO(TrainingPlanEntity trainingPlanEntity)
 {
     this.Id             = trainingPlanEntity.Id.ToString();
     this.FkMemberId     = trainingPlanEntity.Fk_member_id.ToString();
     this.MemberId       = trainingPlanEntity.Member_id;
     this.Title          = trainingPlanEntity.Title;
     this.StartDate      = trainingPlanEntity.Start_date.ToString().Replace("/", "-");
     this.TrainingTarget = trainingPlanEntity.Training_target;
     this.IsDeleted      = trainingPlanEntity.Is_deleted.ToString();
     this.GmtCreate      = trainingPlanEntity.Gmt_create.ToString().Replace("/", "-");
     this.GmtModified    = trainingPlanEntity.Gmt_modified.ToString().Replace("/", "-");
 }
Beispiel #3
0
        /// <summary>
        /// 自动创建模板训练课程
        /// </summary>
        /// <param name="trainingCourseEntity"></param>
        /// <returns></returns>
        public void AutoSaveNewTemplateCourse(TrainingPlanEntity trainingPlan, PlanTemplate planTemplate)
        {
            //使整个代码块成为事务性代码
            using (TransactionScope ts = new TransactionScope())
            {
                TrainingCourseEntity trainingCourseEntity = new TrainingCourseEntity();

                //主键id
                trainingCourseEntity.Id = KeyGenerator.GetNextKeyValueLong("bdl_training_course");
                //设置外键训练计划id
                trainingCourseEntity.Fk_training_plan_id = trainingPlan.Id;
                //设置会员卡号
                trainingCourseEntity.Member_id = trainingPlan.Member_id;
                //当前创建时间
                trainingCourseEntity.Gmt_create = System.DateTime.Now;
                //6.创建一个默认的训练课程
                //  课程开始时间 = 训练计划的开始时间
                trainingCourseEntity.Start_date = trainingPlan.Start_date;
                //  默认暂停时间是2天
                trainingCourseEntity.Rest_days = 2;
                //  默认课程天数是16天
                trainingCourseEntity.Target_course_count = 16;
                //  当前计数默认0
                trainingCourseEntity.Current_course_count = 0;
                //  默认结束日期 = 开始日期 + (暂停时间*(课程天数 - 1))  减一是因为当天算第一天
                trainingCourseEntity.End_date = trainingCourseEntity.Start_date.Value.AddDays(trainingCourseEntity.Rest_days.Value * (trainingCourseEntity.Target_course_count.Value - 1));
                //  状态未完成
                trainingCourseEntity.Is_complete = false;

                //  保存课程
                //这个插入基类有BUG 明明插入进入了 但是返回的结果为0,所以不要返回值了。反正如果插入失败也报异常,返回值也没啥用
                trainingCourseDAO.Insert(trainingCourseEntity);
                //插入至上传表
                UploadManagementDAO uploadManagementDao = new UploadManagementDAO();
                uploadManagementDao.Insert(new UploadManagement((int)trainingCourseEntity.Id, "bdl_training_course", 0));
                //更新配置中的课程id
                CommUtil.UpdateSettingString("trainingCourseId", (trainingCourseEntity.Id).ToString());
                //训练课程目标天数
                CommUtil.UpdateSettingString("targetCourseCount", (trainingCourseEntity.Target_course_count).ToString());
                //调用创建模板训练活动
                trainingActivityService.AutoSaveActivityTemplate(trainingCourseEntity, trainingPlan.Fk_member_id.Value, planTemplate);
                ts.Complete();
            }
        }
        /// <summary>
        /// 自动创建模板训练计划 2019.3.27
        /// </summary>
        /// <param name="memberId"></param>
        public void AutoSaveNewPlan(MemberEntity memberEntity, PlanTemplate planTemplate)
        {
            //插入至上传表
            UploadManagementDAO uploadManagementDao = new UploadManagementDAO();

            //使整个代码块成为事务性代码
            using (TransactionScope ts = new TransactionScope())
            {
                TrainingPlanEntity trainingPlan = new TrainingPlanEntity();

                //会员卡号ID
                string memberId = memberEntity.Member_id;

                //1.删除旧的训练计划
                trainingPlanDAO.DeletePlanByMemberId(memberId);
                //2.完成旧的训练课程
                trainingCourseDAO.UpdateCompleteState(memberId, true);
                List <long> listId1 = new List <long>();
                listId1 = trainingCourseDAO.ListIdByMemeberId(memberId);
                foreach (var id in listId1)
                {
                    //数据上传
                    uploadManagementDao.Insert(new UploadManagement(id, "bdl_training_course", 1));
                }

                //3.完成旧的训练活动
                activityDAO.UpdateCompleteState(memberId, true);

                List <long> listId = new List <long>();
                //通过memberId获取主键id
                listId = activityDAO.ListIdByMemeberId(memberId);
                foreach (var id in listId)
                {
                    //数据上传
                    uploadManagementDao.Insert(new UploadManagement(id, "bdl_activity", 1));
                }
                //4.新增训练计划
                trainingPlan.Id = KeyGenerator.GetNextKeyValueLong("bdl_training_plan");
                //外键用户主键id
                trainingPlan.Fk_member_id = memberEntity.Id;
                //  设置会员卡号
                trainingPlan.Member_id = memberEntity.Member_id;
                // 开始时间
                trainingPlan.Start_date = System.DateTime.Now;
                //  设置状态为未删除
                trainingPlan.Is_deleted = false;
                //  创建时间
                trainingPlan.Gmt_create = System.DateTime.Now;
                //训练计划标题
                switch (planTemplate)
                {
                case PlanTemplate.StrengthCycle:
                    trainingPlan.Title = "力量循环";
                    break;

                case PlanTemplate.EnduranceCycle:
                    trainingPlan.Title = "力量耐力循环";
                    break;

                case PlanTemplate.StrengthEnduranceCycle:
                    trainingPlan.Title = "力量循环与力量耐力循环";
                    break;

                default:
                    break;
                }

                trainingPlan.Training_target = "塑形";
                //  插入新训练计划
                trainingPlanDAO.Insert(trainingPlan);
                uploadManagementDao.Insert(new UploadManagement(trainingPlan.Id, "bdl_training_plan", 0));
                //5.更新App.config中训练计划id
                CommUtil.UpdateSettingString("trainingPlanId", (trainingPlan.Id).ToString());
                //自动创建模板课程
                trainingCourseService.AutoSaveNewTemplateCourse(trainingPlan, planTemplate);
                ts.Complete();
            }
        }
        /// <summary>
        /// 添加新的训练计划,需要先删除旧的训练计划
        /// </summary>
        /// <param name="trainingPlan"></param>
        /// <returns></returns>
        public void SaveNewTrainingPlan(TrainingPlanEntity trainingPlan)
        {
            //使整个代码块成为事务性代码
            using (TransactionScope ts = new TransactionScope())
            {
                UploadManagementDAO uploadManagementDao = new UploadManagementDAO();
                //会员卡号ID
                string memberId = CommUtil.GetSettingString("memberId");
                //1.删除旧的训练计划
                trainingPlanDAO.DeletePlanByMemberId(memberId);
                //2.完成旧的训练课程
                trainingCourseDAO.UpdateCompleteState(memberId, true);
                List <long> listId1 = new List <long>();
                listId1 = trainingCourseDAO.ListIdByMemeberId(memberId);
                foreach (var id in listId1)
                {
                    //数据上传
                    uploadManagementDao.Insert(new UploadManagement(id, "bdl_training_course", 1));
                }
                //3.完成旧的训练活动
                activityDAO.UpdateCompleteState(memberId, true);
                List <long> listId = new List <long>();
                //通过memberId获取主键id
                listId = activityDAO.ListIdByMemeberId(memberId);
                foreach (var id in listId)
                {
                    //数据上传
                    uploadManagementDao.Insert(new UploadManagement(id, "bdl_activity", 1));
                }
                //4.新增训练计划
                trainingPlan.Id = KeyGenerator.GetNextKeyValueLong("bdl_training_plan");

                //判断登陆用户,是教练自己锻炼。还是教练为用户进行设置。决定传哪个主键设置
                string currentMemberPK = CommUtil.GetSettingString("memberPrimarykey");
                string currentCoachId  = CommUtil.GetSettingString("coachId");
                if ((currentMemberPK == null || currentMemberPK == "") && (currentCoachId != null && currentCoachId != ""))
                {
                    //无用户登陆。教练单独登陆时
                    //  从app.config中取id,转成int赋值
                    trainingPlan.Fk_member_id = ParseIntegerUtil.ParseInt(currentCoachId);
                }
                else
                {
                    //只要用户登录,就是为用户进行设置
                    //  从app.config中取id,转成int赋值
                    trainingPlan.Fk_member_id = ParseIntegerUtil.ParseInt(currentMemberPK);
                }


                //  设置会员卡号
                trainingPlan.Member_id = CommUtil.GetSettingString("memberId");
                //  设置状态为未删除
                trainingPlan.Is_deleted = false;
                //  创建时间
                trainingPlan.Gmt_create = System.DateTime.Now;
                //  插入新训练计划
                trainingPlanDAO.Insert(trainingPlan);
                //插入至上传表
                uploadManagementDao.Insert(new UploadManagement(trainingPlan.Id, "bdl_training_plan", 0));
                //5.更新App.config中训练计划id
                CommUtil.UpdateSettingString("trainingPlanId", (trainingPlan.Id).ToString());

                //插入默认训练课程 课程开始时间 = 训练计划开始时间
                trainingCourseService.SaveTrainingCourse(trainingPlan.Start_date);
                ts.Complete();
            }
        }
Beispiel #6
0
        /// <summary>
        /// 1.该方法可用于登陆后,根据传入卡号更新App.config。
        /// 2.允许教练单独登陆,那么这些设置都是教练的,可以和普通用户一样查看图表。教练、用户同时登陆则保留用户的信息,两个主键位都有值
        /// 3.参roleId 1代表用户 0代表教练
        /// 4.登陆成功的情况更新数据库最近登陆时间
        /// </summary>
        /// <param name="memberId"></param>
        /// <param name="roleId"></param>
        private Enum UpdateSetting(string memberId, string roleId)
        {
            try
            {
                //系统允许至多一位教练和一位用户同时登录,存一个用户主键和一系列ID,存一个教练id
                string currentMemberPK = CommUtil.GetSettingString("memberPrimarykey");
                string currentCoachId  = CommUtil.GetSettingString("coachId");
                if ((currentMemberPK == null || currentMemberPK == "") && (currentCoachId == null || currentCoachId == ""))
                {
                    //同时为空 无人登陆
                    //判断登陆者角色
                    if ("1".Equals(roleId))//用户
                    {
                        //1.更新会员卡号ID
                        CommUtil.UpdateSettingString("memberId", memberId);
                        //3.更新当前登陆用户的训练计划id
                        TrainingPlanEntity trainingPlanEntity = trainingPlanDAO.GetTrainingPlanByMumberId(memberId);
                        if (trainingPlanEntity != null)
                        {
                            CommUtil.UpdateSettingString("trainingPlanId", (trainingPlanEntity.Id).ToString());
                        }
                        //4.更新当前登陆用户的训练课程id
                        TrainingCourseEntity trainingCourseEntity = trainingCourseDAO.GetCourseByMemberId(memberId);
                        if (trainingCourseEntity != null)
                        {
                            CommUtil.UpdateSettingString("trainingCourseId", (trainingCourseEntity.Id).ToString());
                            //5.更新当前登陆用户的当前课程记录id current_course_count
                            CommUtil.UpdateSettingString("currentCourseCount", (trainingCourseEntity.Current_course_count).ToString());
                            //5.更新当前登陆用户的目标课程记录id
                            CommUtil.UpdateSettingString("targetCourseCount", (trainingCourseEntity.Target_course_count).ToString());
                        }

                        //6.更新当前登陆会员的主键
                        //根据卡号查询会员
                        MemberEntity member = memberDAO.GetMember(memberId);
                        if (member != null)
                        {
                            CommUtil.UpdateSettingString("memberPrimarykey", (member.Id).ToString());
                            //7.更新会员最近登录时间
                            member.Last_login_date = System.DateTime.Now;
                            UpdateLastLoginDate(member);
                        }

                        logger.Debug("状态:无教练无用户登录。用户登录,返回用户页 ID:" + memberId);
                        //需要返回的页面类型
                        return(LoginPageStatus.UserPage);
                    }
                    else if ("0".Equals(roleId))//教练登陆
                    {
                        //1.更新会员卡号ID
                        CommUtil.UpdateSettingString("memberId", memberId);
                        //3.更新当前登陆用户的训练计划id
                        TrainingPlanEntity trainingPlanEntity = trainingPlanDAO.GetTrainingPlanByMumberId(memberId);
                        if (trainingPlanEntity != null)
                        {
                            CommUtil.UpdateSettingString("trainingPlanId", (trainingPlanEntity.Id).ToString());
                        }
                        //4.更新当前登陆用户的训练课程id
                        TrainingCourseEntity trainingCourseEntity = trainingCourseDAO.GetCourseByMemberId(memberId);
                        if (trainingCourseEntity != null)
                        {
                            CommUtil.UpdateSettingString("trainingCourseId", (trainingCourseEntity.Id).ToString());
                            //5.更新当前登陆用户的当前课程记录id current_course_count
                            CommUtil.UpdateSettingString("currentCourseCount", (trainingCourseEntity.Current_course_count).ToString());
                            //5.更新当前登陆用户的目标课程记录id
                            CommUtil.UpdateSettingString("targetCourseCount", (trainingCourseEntity.Target_course_count).ToString());
                        }
                        //6.更新当前登陆用户的主键
                        //根据卡号查询用户
                        MemberEntity member = memberDAO.GetMember(memberId);
                        if (member != null)
                        {
                            //7.更新教练最近登录时间
                            member.Last_login_date = System.DateTime.Now;
                            UpdateLastLoginDate(member);
                            //8.更新教练ID
                            CommUtil.UpdateSettingString("coachId", (member.Id).ToString());
                        }


                        logger.Debug("状态:无教练无用户登录。教练登录,返回教练页面。ID:" + memberId);
                        //需要返回的页面类型
                        return(LoginPageStatus.CoachPage);
                    }
                }
                else if ((currentMemberPK == null || currentMemberPK == "") && (currentCoachId != null && currentCoachId != ""))
                {
                    //教练已经登陆 会员未登陆
                    //判断登陆者角色
                    if ("1".Equals(roleId))//此时用户登陆还是在教练页面
                    {
                        //1.更新会员卡号ID
                        CommUtil.UpdateSettingString("memberId", memberId);
                        //3.更新当前登陆用户的训练计划id
                        TrainingPlanEntity trainingPlanEntity = trainingPlanDAO.GetTrainingPlanByMumberId(memberId);
                        if (trainingPlanEntity != null)
                        {
                            CommUtil.UpdateSettingString("trainingPlanId", (trainingPlanEntity.Id).ToString());
                        }
                        //4.更新当前登陆用户的训练课程id
                        TrainingCourseEntity trainingCourseEntity = trainingCourseDAO.GetCourseByMemberId(memberId);
                        if (trainingCourseEntity != null)
                        {
                            CommUtil.UpdateSettingString("trainingCourseId", (trainingCourseEntity.Id).ToString());
                            //5.更新当前登陆用户的当前课程记录id current_course_count
                            CommUtil.UpdateSettingString("currentCourseCount", (trainingCourseEntity.Current_course_count).ToString());
                            //5.更新当前登陆用户的目标课程记录id
                            CommUtil.UpdateSettingString("targetCourseCount", (trainingCourseEntity.Target_course_count).ToString());
                        }

                        //6.更新当前登陆会员的主键
                        //根据卡号查询会员
                        MemberEntity member = memberDAO.GetMember(memberId);
                        if (member != null)
                        {
                            CommUtil.UpdateSettingString("memberPrimarykey", (member.Id).ToString());
                            //7.更新会员最近登录时间
                            member.Last_login_date = System.DateTime.Now;
                            UpdateLastLoginDate(member);
                        }

                        logger.Debug("状态:教练已经登陆 会员未登陆。用户登录,返回教练页面。ID:" + memberId);
                        return(LoginPageStatus.CoachPage);
                    }
                    else if ("0".Equals(roleId))//教练重复登陆
                    {
                        logger.Debug("状态:教练已经登陆 会员未登陆。其他教练重复登录,已拦截,ID:" + memberId);
                        return(LoginPageStatus.RepeatLogins);
                    }
                }
                else if ((currentMemberPK != null && currentMemberPK != "") && (currentCoachId == null || currentCoachId == ""))
                {
                    //会员已登陆 教练未登录
                    //判断登陆者角色
                    if ("1".Equals(roleId))//用户
                    {
                        logger.Debug("状态:会员已登陆 教练未登录。其他用户重复登录,已拦截,ID:" + memberId);
                        return(LoginPageStatus.RepeatLogins);
                    }
                    else if ("0".Equals(roleId))//教练登陆 原用户的设置不动 只增加教练ID
                    {
                        //8.更新教练ID
                        MemberEntity member = memberDAO.GetMember(memberId);
                        if (member != null)
                        {
                            CommUtil.UpdateSettingString("coachId", (member.Id).ToString());
                            //更新教练最近登录时间
                            member.Last_login_date = System.DateTime.Now;
                            UpdateLastLoginDate(member);
                        }

                        logger.Debug("状态:会员已登陆 教练未登录。教练登录,ID:" + memberId);
                        //需要返回的页面类型
                        return(LoginPageStatus.CoachPage);
                    }
                }
                else if ((currentMemberPK != null && currentMemberPK != "") && (currentCoachId != null && currentCoachId != ""))
                {
                    //会员已登录 教练已登录
                    logger.Debug("状态:会员已登录 教练已登录。已有登陆会员和教练。重复登录,ID:" + memberId);

                    return(LoginPageStatus.RepeatLogins);
                }
                else
                {
                    return(LoginPageStatus.UnknownID);
                }
            }
            catch (Exception ex)
            {
                logger.Warn("用户登录更新配置类出现异常");
                throw new Exception("用户登录更新配置类出现异常", ex);
            }

            return(LoginPageStatus.UnknownID);
        }