/// <summary> /// EditActity页活动分组Expnder中的个人设置查询 分组是前端根据活动类型分 /// </summary> /// <returns></returns> public List <ActivityGroupDTO> ListActivitysGroupAndPersonalSetting() { //当前正在进行和训练课程ID long courseId = ParseIntegerUtil.ParseInt(CommUtil.GetSettingString("trainingCourseId")); return(activityDAO.ListActivitysGroupAndPersonalSetting(courseId)); }
/// <summary> ///查询训练计划分析页面展示的信息,参数为AppConfig中的当前训练计划id,当前训练课程id /// </summary> /// <returns></returns> public TrainingPlanVO GetTrainingPlanVO() { string trainingPlanId = CommUtil.GetSettingString("trainingPlanId"); string trainingCourseId = CommUtil.GetSettingString("trainingCourseId"); return(trainingPlanDAO.GetTrainingPlanVO(trainingPlanId, trainingCourseId)); }
/// <summary> /// 批量插入训练活动 /// </summary> /// <param name="activities"></param> /// <returns></returns> public long BatchSaveActivity(List <ActivityEntity> activities) { using (TransactionScope ts = new TransactionScope()) { UploadManagementDAO uploadManagementDao2 = new UploadManagementDAO(); long result = 0; //判断登陆用户,是教练自己锻炼。还是教练为用户进行设置。决定传哪个参数 string currentMemberPK = CommUtil.GetSettingString("memberPrimarykey"); string currentCoachId = CommUtil.GetSettingString("coachId"); if ((currentMemberPK == null || currentMemberPK == "") && (currentCoachId != null && currentCoachId != "")) { //无用户登陆。教练单独登陆时对教练进行设置 foreach (var activity in activities) { activity.Id = KeyGenerator.GetNextKeyValueLong("bdl_activity"); activity.Member_id = CommUtil.GetSettingString("memberId"); activity.Fk_member_id = ParseIntegerUtil.ParseInt(CommUtil.GetSettingString("coachId")); activity.Fk_training_course_id = ParseIntegerUtil.ParseInt(CommUtil.GetSettingString("trainingCourseId")); activity.Gmt_create = System.DateTime.Now; activity.Is_complete = false; activity.current_turn_number = 0; //插入至上传表 uploadManagementDao2.Insert(new UploadManagement(activity.Id, "bdl_activity", 0)); } //批量插入训练活动 result = activityDAO.BatchInsert(activities); //根据训练活动批量插入个人设置记录 传入教练的主键id personalSettingService.SavePersonalSettings(ParseIntegerUtil.ParseInt(CommUtil.GetSettingString("coachId"))); } else { //只要用户登录,为用户进行设置 foreach (var activity in activities) { activity.Id = KeyGenerator.GetNextKeyValueLong("bdl_activity"); activity.Member_id = CommUtil.GetSettingString("memberId"); activity.Fk_member_id = ParseIntegerUtil.ParseInt(CommUtil.GetSettingString("memberPrimarykey")); activity.Fk_training_course_id = ParseIntegerUtil.ParseInt(CommUtil.GetSettingString("trainingCourseId")); activity.Gmt_create = System.DateTime.Now; activity.Is_complete = false; activity.current_turn_number = 0; //插入至上传表 uploadManagementDao2.Insert(new UploadManagement(activity.Id, "bdl_activity", 0)); } //批量插入训练活动 result = activityDAO.BatchInsert(activities); //根据训练活动批量插入个人设置记录 传入会员的主键id personalSettingService.SavePersonalSettings(ParseIntegerUtil.ParseInt(CommUtil.GetSettingString("memberPrimarykey"))); } ts.Complete(); return(result); } }
/// <summary> /// 根据APP中的主键memberPrimarykey,查询用户,可以用于写卡前的查询、加载用户信息页面 /// </summary> /// <returns></returns> public MemberEntity InitMemberInfo() { //判断登陆用户,是教练自己锻炼。还是教练为用户进行设置。决定传哪个参数 string currentMemberPK = CommUtil.GetSettingString("memberPrimarykey"); string currentCoachId = CommUtil.GetSettingString("coachId"); if ((currentMemberPK == null || currentMemberPK == "") && (currentCoachId != null && currentCoachId != "")) { //无用户登陆。教练单独登陆时显示教练的信息。 return(memberDAO.Load(currentCoachId)); } else { //只要用户登录,教练不管是否登录 都显示用户信息 return(memberDAO.Load(currentMemberPK)); } }
public EchartWindow() { InitializeComponent(); //在选择框加载可选的设备 ListDataCode = DataCodeDAO.ListByTypeId("DEVICE"); this.comboxDevice.ItemsSource = ListDataCode; this.comboxDevice2.ItemsSource = ListDataCode; //初始化选中的用户id userId = CommUtil.ParseInt(CommUtil.GetSettingString("selectedUserId")); //选择的设备ID int deviceId = CommUtil.ParseInt(comboxDevice.SelectedValue.ToString()); //初始化心率折线图表 默认加载第一台设备,1条记录 RefreshChart(userId, deviceId, 1); //初始化感想折线 drawUserThoughts(deviceId); }
/// <summary> /// 添加训练课程 /// </summary> /// <param name="trainingCourseEntity"></param> /// <returns></returns> public void SaveTrainingCourse(DateTime?startDate) { TrainingCourseEntity trainingCourseEntity = new TrainingCourseEntity(); //主键id trainingCourseEntity.Id = KeyGenerator.GetNextKeyValueLong("bdl_training_course"); //设置外键训练计划id trainingCourseEntity.Fk_training_plan_id = ParseIntegerUtil.ParseInt(CommUtil.GetSettingString("trainingPlanId")); //设置会员卡号 trainingCourseEntity.Member_id = CommUtil.GetSettingString("memberId"); //当前创建时间 trainingCourseEntity.Gmt_create = System.DateTime.Now; //6.创建一个默认的训练课程 // 课程开始时间 = 训练计划的开始时间 trainingCourseEntity.Start_date = startDate; // 默认暂停时间是4天 trainingCourseEntity.Rest_days = 2; // 默认课程天数是16天 trainingCourseEntity.Target_course_count = 16; // 默认结束日期 = 开始日期 + (暂停时间*(课程天数 - 1)) 减一是因为当天算第一天 trainingCourseEntity.End_date = trainingCourseEntity.Start_date.Value.AddDays(trainingCourseEntity.Rest_days.Value * (trainingCourseEntity.Target_course_count.Value - 1)); // 状态未完成 trainingCourseEntity.Is_complete = false; // 当前计数默认0 trainingCourseEntity.Current_course_count = 0; // 保存课程 //这个插入基类有BUG 明明插入进入了 但是返回的结果为0,所以不要返回值了。反正如果插入失败也报异常,返回值也没啥用 trainingCourseDAO.Insert(trainingCourseEntity); //插入至上传表 UploadManagementDAO uploadManagementDao = new UploadManagementDAO(); uploadManagementDao.Insert(new UploadManagement(trainingCourseEntity.Id, "bdl_training_course", 0)); //更新配置中的课程id CommUtil.UpdateSettingString("trainingCourseId", (trainingCourseEntity.Id).ToString()); //训练课程目标天数 CommUtil.UpdateSettingString("targetCourseCount", (trainingCourseEntity.Target_course_count).ToString()); }
/// <summary> /// EditActivity页面分组头转换器用 根据课程id和活动类型查出目标伦次 /// </summary> /// <param name="activityType"></param> /// <returns></returns> public int?GetTargetTurnNumByType(string activityType) { string courseId = CommUtil.GetSettingString("trainingCourseId"); return(activityDAO.GetTargetTurnNumByTypeCourseId(activityType, courseId)); }
/// <summary> /// 训练活动分页页面的list查询 /// </summary> /// <returns></returns> public List <TrainingActivityVO> ListActivityRecords(int?currentCourseCount) { string memberId = CommUtil.GetSettingString("memberId"); return(trainingActivityRecordDAO.ListActivityRecords(currentCourseCount, memberId)); }
/// <summary> /// 根据训练课程ID查询出对应的训练活动 /// </summary> /// <returns></returns> public List <ActivityEntity> ListActivitysByCourseId() { return(activityDAO.ListActivitysByCourseId(ParseIntegerUtil.ParseInt(CommUtil.GetSettingString("trainingCourseId")))); }
/// <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(); } }
/// <summary> /// 根据当前登录会员,获得所有的训练计划 /// </summary> /// <returns></returns> public List <TrainingPlanEntity> GetAllPlan() { string memberId = CommUtil.GetSettingString("memberId"); return(trainingPlanDAO.GetAllPlan(memberId)); }
/// <summary> /// 根据当前登陆会员 获得其训练计划 /// </summary> /// <returns></returns> public TrainingPlanEntity GetPlanByMumberId() { string memberId = CommUtil.GetSettingString("memberId"); return(trainingPlanDAO.GetTrainingPlanByMumberId(memberId)); }
/// <summary> /// 新增保存会员信息 /// </summary> /// <param name="memberEntity"></param> /// <returns></returns> public long InsertMember(MemberEntity memberEntity) { //使整个代码块成为事务性代码 using (TransactionScope ts = new TransactionScope()) { //计算最大心率 = 220 - 年龄 //memberEntity.Max_heart_rate = 220 - memberEntity.Age; //计算最宜心率 = (最大心率 * 76.5%)然后四舍五入为整数 memberEntity.Suitable_heart_rate = (int?)Math.Round(memberEntity.Max_heart_rate.Value * 0.765); //设置主键id memberEntity.Id = KeyGenerator.GetNextKeyValueLong("bdl_member"); //设置创建时间 memberEntity.Gmt_create = System.DateTime.Now; //默认不开启减脂模式 memberEntity.Is_open_fat_reduction = false; //设置会员ID StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(memberEntity.Member_familyName); stringBuilder.Append(memberEntity.Member_firstName); //用户名3个字符以内 写入时UTF-8编码每个汉字占3个字节 if (stringBuilder.ToString().Length > 3) { string subMemberId = stringBuilder.ToString().Substring(0, 3); stringBuilder.Clear(); stringBuilder.Append(subMemberId); } //手机号不为空则拼接手机号后四位 if (memberEntity.Mobile_phone != null && memberEntity.Mobile_phone != "") { stringBuilder.Append(memberEntity.Mobile_phone.Substring(memberEntity.Mobile_phone.Length - 4)); } else { logger.Warn("拼接用户id时,用户手机号为空。用户名:" + memberEntity.Member_familyName + memberEntity.Member_firstName); } Console.WriteLine("用户名+手机号码后4位:" + stringBuilder.ToString()); //添加CRC校验 //string fullName = memberEntity.Member_familyName + memberEntity.Member_firstName; //string phone = memberEntity.Mobile_phone.Substring(memberEntity.Mobile_phone.Length - 2); //byte[] dataCRC = new byte[12]; //Encoding.GetEncoding("GBK").GetBytes(fullName, 0, fullName.Length, dataCRC, 0); //Encoding.GetEncoding("ASCII").GetBytes(phone, 0, phone.Length, dataCRC, 10); //string lowStrCRC = SerialPortUtil.CRC16(dataCRC)[0].ToString(); //string highStrCRC = SerialPortUtil.CRC16(dataCRC)[1].ToString(); //string fullCRC = lowStrCRC + highStrCRC; //stringBuilder.Append(fullCRC); //设置用户id memberEntity.Member_id = stringBuilder.ToString(); if (memberEntity.Role_id == 1)//只有添加的角色是用户才设置教练外键 { //当前登陆的教练Id memberEntity.Fk_coach_id = ParseIntegerUtil.ParseInt(CommUtil.GetSettingString("coachId")); } //使用基类插入新会员 long resultCode = memberDAO.Insert(memberEntity); //更新APP中会员设置,让新增的该会员登陆 强制更新配置类,将当前登陆用户踢出 //1.更新会员卡号ID CommUtil.UpdateSettingString("memberId", memberEntity.Member_id); //3.更新当前登陆用户的训练计划id CommUtil.UpdateSettingString("trainingPlanId", ""); //4.更新当前登陆用户的训练课程id CommUtil.UpdateSettingString("trainingCourseId", ""); //5.更新当前登陆用户的当前课程记录id current_course_count CommUtil.UpdateSettingString("currentCourseCount", ""); //5.更新当前登陆用户的目标课程记录id CommUtil.UpdateSettingString("targetCourseCount", ""); //6.更新当前登陆会员的主键 CommUtil.UpdateSettingString("memberPrimarykey", memberEntity.Id.ToString()); ts.Complete(); //使用基类插入新会员 return(resultCode); } }
/// <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); }
/// <summary> /// 根据登陆会员卡号查询训练课程 /// </summary> /// <returns></returns> public TrainingCourseEntity GetCourseByMemberId() { string memberId = CommUtil.GetSettingString("memberId"); return(trainingCourseDAO.GetCourseByMemberId(memberId)); }
/// <summary> /// 课程分析页面,查询课程记录列表 /// </summary> /// <returns></returns> public List <TrainingCourseVO> listCourseRecord() { string trainingCourseId = CommUtil.GetSettingString("trainingCourseId"); return(trainingCourseDAO.listCourseRecord(trainingCourseId)); }
/// <summary> /// 根据3D扫描的到的用户身体数据更新个人设置的通配参数:座位高度、靠背距离、踏板距离 /// </summary> public void UpdatePersonalSettingBy3DScan() { using (TransactionScope ts = new TransactionScope()) { //1.首先得到用户的身体长度数据 根据会员id统一更新座位高度、靠背距离、踏板长度 string memberPK = CommUtil.GetSettingString("memberPrimarykey"); string coachId = CommUtil.GetSettingString("coachId"); string fkmemberId = (memberPK != null && memberPK != "") ? memberPK : coachId; string memberId = CommUtil.GetSettingString("memberId"); //根据当前登陆用户主键PK查询扫描数据 SkeletonLengthEntity skeletonLengthEntity = skeletonLengthDAO.getSkeletonLengthRecord(fkmemberId); //计算公式:y=K*X+B ==> 设备参数 = k * 用户某一部位长度 + 常量 具体取值多少合适需要结合实际测试。可能不同的参数需要不同的K和B 根据实际情况修改也可 double K = 2.7; //后方限制系数 double M = 0.5; //前方限制系数 double B = 0; //常量 var personalSettingEntity = new PersonalSettingEntity { Member_id = memberId, //基于小腿计算座位高度 Seat_height = (int?)Math.Round(K * skeletonLengthEntity.Leg_length_down + B), //靠背距离基于大腿长 Backrest_distance = (int?)Math.Round(K * skeletonLengthEntity.Leg_length_up + B), //踏板距离基于小腿长 Footboard_distance = (int?)Math.Round(K * skeletonLengthEntity.Leg_length_down + B), }; personalSettingDAO.UpdatePersonalSettingBy3DScan(personalSettingEntity); //2.根据会员id,设备编码,单独更新每一种设备的前后方限制、杠杆角度(如果有的话) //0:腿部推蹬机 var personalSetting0 = new PersonalSettingEntity { Member_id = memberId, //腿部推蹬机 Device_code = "0", //基于大腿加小腿来设置前后方限制 Back_limit = (int?)Math.Round(M * (skeletonLengthEntity.Leg_length_up + skeletonLengthEntity.Leg_length_down) + B), //前方限制 Front_limit = (int?)Math.Round(K * (skeletonLengthEntity.Leg_length_up + skeletonLengthEntity.Leg_length_down) + B), }; personalSettingDAO.UpdateLimitByType(personalSetting0); //1:坐式背阔肌高拉机 基于大臂加小臂来设置前后方限制 var personalSetting1 = new PersonalSettingEntity { Member_id = memberId, Device_code = "1", //后方限制 Back_limit = (int?)Math.Round(M * (skeletonLengthEntity.Arm_length_up + skeletonLengthEntity.Arm_length_down) + B), //前方限制 Front_limit = (int?)Math.Round(K * (skeletonLengthEntity.Arm_length_up + skeletonLengthEntity.Arm_length_down) + B), }; personalSettingDAO.UpdateLimitByType(personalSetting1); //2:三头肌训练机 基于小臂来设置前后方限制 var personalSetting2 = new PersonalSettingEntity { Member_id = memberId, Device_code = "2", Back_limit = (int?)Math.Round(M * (skeletonLengthEntity.Arm_length_down) + B), Front_limit = (int?)Math.Round(K * (skeletonLengthEntity.Arm_length_down) + B), }; personalSettingDAO.UpdateLimitByType(personalSetting2); //3:腿部内弯机 比较特殊,两腿夹着垫子向内用力合拢 感觉和肢体数据无关 前后方限制为张开的角度,前方限制角度小 后方限制可以合拢成90度 暂且先这么写 var personalSetting3 = new PersonalSettingEntity { Member_id = memberId, Device_code = "3", //前方限制 Front_limit = 75, //后方限制 Back_limit = 0, }; personalSettingDAO.UpdateLimitByType(personalSetting3); //4:腿部外弯机 比较特殊,垫子夹着两腿,两腿用力向外张开 感觉和肢体数据无关 前后方限制为张开的角度,前方限制角度小 暂且先这么写 var personalSetting4 = new PersonalSettingEntity { Member_id = memberId, Device_code = "3", //前方限制 Front_limit = 75, //后方限制 Back_limit = 20, }; personalSettingDAO.UpdateLimitByType(personalSetting4); //5:蝴蝶机 向胸前内拉 var personalSetting5 = new PersonalSettingEntity { Member_id = memberId, Device_code = "5", //前方限制 Front_limit = 90, //后方限制 Back_limit = 0, }; personalSettingDAO.UpdateLimitByType(personalSetting5); //6:反向蝴蝶机 向外张开拉 var personalSetting6 = new PersonalSettingEntity { Member_id = memberId, Device_code = "6", //前方限制 Front_limit = 90, //后方限制 Back_limit = 0, }; personalSettingDAO.UpdateLimitByType(personalSetting6); //7:坐式背部伸展机器 var personalSetting7 = new PersonalSettingEntity { Member_id = memberId, Device_code = "7", //前方限制 大概往前弯腰50度 Front_limit = 50, //后方限制 Back_limit = 0, //杠杆角度根据人体躯干长 Lever_angle = (int?)Math.Round(K * (skeletonLengthEntity.Body_length) + B), }; personalSettingDAO.UpdateLimitByType(personalSetting7); //8:躯干扭转组合 var personalSetting8 = new PersonalSettingEntity { Member_id = memberId, Device_code = "8", //前方限制 Front_limit = 60, //后方限制 Back_limit = 20, }; personalSettingDAO.UpdateLimitByType(personalSetting8); //9:坐式腿伸展训练机 var personalSetting9 = new PersonalSettingEntity { Member_id = memberId, Device_code = "9", //前方限制 Front_limit = 60, //后方限制 Back_limit = 20, //杠杆角度根据小腿长 Lever_angle = (int?)Math.Round(K * (skeletonLengthEntity.Leg_length_down) + B), }; personalSettingDAO.UpdateLimitByType(personalSetting9); //10:坐式推胸机 根据大臂加小臂 var personalSetting10 = new PersonalSettingEntity { Member_id = memberId, Device_code = "10", //前方限制 Front_limit = (int?)Math.Round(K * (skeletonLengthEntity.Arm_length_up + skeletonLengthEntity.Arm_length_down) + B), //后方限制 Back_limit = (int?)Math.Round(M * (skeletonLengthEntity.Arm_length_up + skeletonLengthEntity.Arm_length_down) + B), }; personalSettingDAO.UpdateLimitByType(personalSetting10); //11:坐式划船机 根据大臂加小臂 var personalSetting11 = new PersonalSettingEntity { Member_id = memberId, Device_code = "11", //前方限制 Front_limit = (int?)Math.Round(K * (skeletonLengthEntity.Arm_length_up + skeletonLengthEntity.Arm_length_down) + B), //后方限制 Back_limit = (int?)Math.Round(M * (skeletonLengthEntity.Arm_length_up + skeletonLengthEntity.Arm_length_down) + B), }; personalSettingDAO.UpdateLimitByType(personalSetting11); //12:椭圆跑步机不用设置 //13:坐式屈腿训练机 var personalSetting13 = new PersonalSettingEntity { Member_id = memberId, Device_code = "13", //前方限制 Front_limit = 60, //后方限制 Back_limit = 20, //杠杆角度根据小腿长 Lever_angle = (int?)Math.Round(K * (skeletonLengthEntity.Leg_length_down) + B), }; personalSettingDAO.UpdateLimitByType(personalSetting13); //14:腹肌训练机 var personalSetting14 = new PersonalSettingEntity { Member_id = memberId, Device_code = "14", //前方限制 Front_limit = 100, //后方限制 Back_limit = 20, //杠杆角度根据躯干长 Lever_angle = (int?)Math.Round(K * (skeletonLengthEntity.Body_length) + B), }; personalSettingDAO.UpdateLimitByType(personalSetting14); //15:坐式背部伸展机器 var personalSetting15 = new PersonalSettingEntity { Member_id = memberId, Device_code = "15", //前方限制 大概往前弯腰50度 Front_limit = 50, //后方限制 Back_limit = 0, //杠杆角度根据人体躯干长 Lever_angle = (int?)Math.Round(K * (skeletonLengthEntity.Body_length) + B), }; personalSettingDAO.UpdateLimitByType(personalSetting15); ts.Complete(); } }
private void Window_Loaded(object sender, RoutedEventArgs e) { //加载图片 if (LanguageUtils.IsChainese()) { DesignerHead4.Source = new BitmapImage(new Uri(@"\view\images\6.png", UriKind.Relative)); } else { //TODO 英文图片 DesignerHead4.Source = new BitmapImage(new Uri(@"\view\images\6.png", UriKind.Relative)); } var hwnd = new System.Windows.Interop.WindowInteropHelper(this).Handle; SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU); #region 通知公告 //SetterDAO setterDao = new SetterDAO(); ////未激活无心跳 //if (setterDao.ListAll() != null && setterDao.ListAll().Count == 0) //{ //} ////没有一般用户无心跳 //else if (authDao.ListAll() != null && authDao.ListAll().Count == 1) //{ //} //else { // if (timerNotice == null) // { // BindNotice(); // timerNotice = new System.Timers.Timer(); // timerNotice.Elapsed += new System.Timers.ElapsedEventHandler((o, eea) => { BindNotice(); }); // timerNotice.Interval = CommUtil.GetHeartBeatRate(); // timerNotice.Start(); // } //} #endregion //打开时,是否记住密码的勾选,如果是就勾选,并且填充登录名和密码 如果不是就没有操作 //bool? checkRemind = isRemind.IsChecked; String ckeckStr = CommUtil.GetSettingString("isRemind"); String ckeckStrName = CommUtil.GetSettingString("isRemindName"); bool? checkRemind = ckeckStr == "true" ? true : false; bool? checkRemindName = ckeckStrName == "true" ? true : false; if (checkRemind == true) { //UI效果-记住密码,一定记住用户名 isRemind.IsChecked = true; isRemindName.IsChecked = true; //获取用户名 String name = ConfigUtil.GetEncrypt("userName", ""); this.User_Name.Text = name; //获取密码 String password = ConfigUtil.GetEncrypt("password", "");; this.User_Password.Password = password; } else if (checkRemindName == true) { //UI效果-只记住用户名就只显示用户名 isRemindName.IsChecked = true; //界面注入 String name = ConfigUtil.GetEncrypt("userName", ""); this.User_Name.Text = name; } }
/// <summary> /// 添加训练活动后,自动根据数据库中的训练活动记录,往个人设置表插入记录 /// </summary> /// <returns></returns> public bool SavePersonalSettings(long userPK) { //上传表 UploadManagementDAO uploadManagementDao = new UploadManagementDAO(); //使整个代码块成为事务性代码 using (TransactionScope ts = new TransactionScope()) { //1.先查询当前训练课程对应的训练活动集合 List <ActivityEntity> activities = activityDAO.ListActivitysByCourseId(ParseIntegerUtil.ParseInt(CommUtil.GetSettingString("trainingCourseId"))); //遍历每一条活动 foreach (var activity in activities) { //先查询判断个人设置表是否有该会员ID,该活动类型的记录,传入会员id和活动类型 string memberID = CommUtil.GetSettingString("memberId"); List <PersonalSettingEntity> personalSettingEntities = personalSettingDAO.ListSettingByMemberIdActivityType(memberID, activity.Activity_type); //若个人设置表无该会员该训练活动的记录,则每个设备往个人设置表插入一条记录 if (personalSettingEntities.Count == 0) { //查询出每个活动类型对应着哪些设备 List <DatacodeEntity> datacodeEntities = datacodeDao.ListByTypeIdAndExtValue("DEVICE", activity.Activity_type); //批量插入 构建集合 var personalSettingList = new List <PersonalSettingEntity>(); foreach (var item in datacodeEntities) { var personalSetting = new PersonalSettingEntity(); personalSetting.Id = KeyGenerator.GetNextKeyValueLong("bdl_personal_setting"); personalSetting.Activity_type = activity.Activity_type; //默认标准模式 personalSetting.Training_mode = "0"; personalSetting.Device_code = item.Code_s_value; personalSetting.Device_order_number = item.Code_xh; //主键设置为传入的主键,因为传入前判断是登陆的教练单独训练还是有用户登录 personalSetting.Fk_member_id = userPK; personalSetting.Member_id = CommUtil.GetSettingString("memberId"); personalSetting.Gmt_create = System.DateTime.Now; //这个外键id用于展示的时候联查活动表和设置表。能够根据当前存在的训练活动查出相应的设置。根据活动id联查是最简单的方法。 //否则如果根据会员卡号查有可能出现没选这个训练活动却因为以前添加过设置查出来了。如果再根据类型判断查询也很麻烦。添加活动的时候更新个人设置里这个外键活动id是最好的办法。 personalSetting.Fk_training_activity_id = activity.Id; //分别设置力度和功率 单车跑步机只设置功率 其他设置力度 if ("12".Equals(item.Code_s_value) || "16".Equals(item.Code_s_value)) { personalSetting.Power = 30; } else { //设置各个属性的默认值 personalSetting.Consequent_force = 21; //顺向力 personalSetting.Reverse_force = 21; //反向力 personalSetting.Front_limit = 100; //前方限制 personalSetting.Back_limit = 0; //后方限制 } //添加进集合 personalSettingList.Add(personalSetting); //插入至上传表 uploadManagementDao.Insert(new UploadManagement(personalSetting.Id, "bdl_personal_setting", 0)); } //使用基本DAO 批量插入数据库 personalSettingDAO.BatchInsert(personalSettingList); } //如果有记录就更新记录的外键活动id else if (personalSettingEntities.Count > 0) { PersonalSettingEntity personalSetting = new PersonalSettingEntity(); personalSetting.Fk_training_activity_id = activity.Id; personalSetting.Member_id = CommUtil.GetSettingString("memberId"); personalSetting.Activity_type = activity.Activity_type; personalSettingDAO.UpdateSettingActivityId(personalSetting); } } ts.Complete(); } return(true); }