コード例 #1
0
        /// <summary>
        /// 保存按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_Click_Save(object sender, RoutedEventArgs e)
        {
            SkeletonLengthEntity skeletonLengthEntity = new SkeletonLengthEntity();

            skeletonLengthEntity.Fk_member_id = Pk_User_Id;
            if (Weigth.Text != null && Weigth.Text != "")
            {
                skeletonLengthEntity.Weigth = System.Convert.ToDouble(Weigth.Text);
            }
            skeletonLengthEntity.Height          = System.Convert.ToDouble(Man_Height.Text);
            skeletonLengthEntity.Shoulder_width  = System.Convert.ToDouble(Shoulder_width.Text);
            skeletonLengthEntity.Arm_length_up   = System.Convert.ToDouble(Arm_length_up.Text);
            skeletonLengthEntity.Arm_length_down = System.Convert.ToDouble(Arm_length_down.Text);
            skeletonLengthEntity.Leg_length_up   = System.Convert.ToDouble(Leg_length_up.Text);
            skeletonLengthEntity.Leg_length_down = System.Convert.ToDouble(Leg_length_down.Text);
            skeletonLengthEntity.Body_length     = System.Convert.ToDouble(Body_length.Text);

            if (skeletonLengthDAO.getSkeletonLengthRecord(Pk_User_Id) == null)
            {
                skeletonLengthDAO.insertSkeletonLengthRecord(skeletonLengthEntity);
            }
            else
            {
                if (Weigth.Text != null && Weigth.Text != "")
                {
                    skeletonLengthDAO.updateSkeletonLengthAndWeightRecord(skeletonLengthEntity);
                }
                else
                {
                    skeletonLengthDAO.updateSkeletonLengthRecord(skeletonLengthEntity);
                }
            }
            MessageBoxX.Info("保存成功");
        }
コード例 #2
0
        /// <summary>
        /// 页面加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            //取消窗体X操作
            var hwnd = new System.Windows.Interop.WindowInteropHelper(this).Handle;

            SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);

            SkeletonLengthEntity skeletonLengthEntity = new SkeletonLengthEntity();

            skeletonLengthEntity = skeletonLengthDAO.GetByPk_User_Id(SelectUser.Pk_User_Id);
            if (skeletonLengthEntity != null)
            {
                if (skeletonLengthEntity.Weigth > 0)
                {
                    Weigth.Text = skeletonLengthEntity.Weigth.ToString();
                }
                Man_Height.Text      = skeletonLengthEntity.Height.ToString();
                Shoulder_width.Text  = skeletonLengthEntity.Shoulder_width.ToString();
                Arm_length_up.Text   = skeletonLengthEntity.Arm_length_up.ToString();
                Arm_length_down.Text = skeletonLengthEntity.Arm_length_down.ToString();
                Leg_length_up.Text   = skeletonLengthEntity.Leg_length_up.ToString();
                Leg_length_down.Text = skeletonLengthEntity.Leg_length_down.ToString();
                Body_length.Text     = skeletonLengthEntity.Body_length.ToString();
            }
        }
コード例 #3
0
        //确认按钮,关闭此窗体
        private void Button_OK(object sender, RoutedEventArgs e)
        {
            //this.Hide();
            NuitrackScan nuitrackScan = new NuitrackScan
            {
                Owner                 = Window.GetWindow(this),
                ShowActivated         = true,
                ShowInTaskbar         = false,
                WindowStartupLocation = WindowStartupLocation.CenterScreen
            };

            SkeletonLengthDAO skeletonLengthDAO = new SkeletonLengthDAO();
            NuitrackEntity    nuitrackEntity    = new NuitrackEntity();

            //if (skeletonLengthDAO.GetPk_user_idByStatus(1) == null)
            //{
            //    this.Hide();
            //    nuitrackScan.ShowDialog();
            //    G_NfcTipTwoStatus = 0;
            //    this.Close();
            //    return;
            //}
            if (skeletonLengthDAO.GetPk_user_idByStatus(1) != null)
            {
                nuitrackEntity          = skeletonLengthDAO.GetPk_user_idByStatus(1);
                nuitrackScan.Pk_User_Id = nuitrackEntity.Fk_user_id;
                skeletonLengthDAO.updateStatusByFk_user_id(nuitrackEntity);
            }

            SkeletonLengthEntity skeletonLengthEntity = new SkeletonLengthEntity();

            if (skeletonLengthDAO.GetByPk_User_Id(nuitrackScan.Pk_User_Id) != null)
            {
                skeletonLengthEntity = skeletonLengthDAO.GetByPk_User_Id(nuitrackScan.Pk_User_Id);

                if (skeletonLengthEntity.Weigth > 0)
                {
                    nuitrackScan.Weigth.Text = skeletonLengthEntity.Weigth.ToString();
                }
                nuitrackScan.Man_Height.Text      = skeletonLengthEntity.Height.ToString();
                nuitrackScan.Shoulder_width.Text  = skeletonLengthEntity.Shoulder_width.ToString();
                nuitrackScan.Arm_length_up.Text   = skeletonLengthEntity.Arm_length_up.ToString();
                nuitrackScan.Arm_length_down.Text = skeletonLengthEntity.Arm_length_down.ToString();
                nuitrackScan.Leg_length_up.Text   = skeletonLengthEntity.Leg_length_up.ToString();
                nuitrackScan.Leg_length_down.Text = skeletonLengthEntity.Leg_length_down.ToString();
                nuitrackScan.Body_length.Text     = skeletonLengthEntity.Body_length.ToString();
            }

            //this.Hide();
            nuitrackScan.ShowDialog();
            G_NfcTipTwoStatus = 0;
            //this.Close();
            Application.Current.Shutdown();
        }
コード例 #4
0
 public SkeletonLengthDTO(SkeletonLengthEntity skeletonLengthEntity)
 {
     this.Id            = skeletonLengthEntity.Id.ToString();
     this.FkMemberId    = skeletonLengthEntity.Fk_member_id.ToString();
     this.BodyLength    = skeletonLengthEntity.Body_length.ToString();
     this.ShoulderWidth = skeletonLengthEntity.Shoulder_width.ToString();
     this.ArmLengthUp   = skeletonLengthEntity.Arm_length_up.ToString();
     this.ArmLengthDown = skeletonLengthEntity.Arm_length_down.ToString();
     this.LegLengthUp   = skeletonLengthEntity.Leg_length_up.ToString();
     this.LegLengthDown = skeletonLengthEntity.Leg_length_down.ToString();
 }
コード例 #5
0
        /// <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();
            }
        }
コード例 #6
0
        ///// <summary>
        /// 处理登录请求
        /// </summary>
        /// <param name="request"></param>
        public LoginResponse HandleLoginRequest(LoginRequest request)
        {
            LoginResponse response = new LoginResponse();

            //根据bind_id查询到Uerid
            UserRelation userRelation = userRelationDao.FindUserRelationByBind_id(request.BindId);

            if (userRelation == null)
            {
                logger.Info("数据库中没有对应的手环id");
                response.InfoResponse = 0;
                return(response);
            }
            string uid = (userRelation.Fk_user_id).ToString();

            response.Uid           = uid;
            response.ExisitSetting = false;
            response.ClientTime    = request.ClientTime;
            response.ServerTime    = DateTime.Now.ToString();
            //查询用户是否存在,若不存在 。。。打印日志
            User user = userDAO.GetByPK(uid);

            if (user != null)
            {
                logger.Info("用户存在" + user.Pk_User_Id.ToString());
                logger.Info("锻炼设备id" + (int)(request.DeviceType));
                string birth_year = (user.User_Birth.ToString().Split('/'))[0];
                //Console.WriteLine("birth_year:" + birth_year);
                int now_year = int.Parse((DateTime.Now.ToString("yyyy")));
                //Console.WriteLine("now_year:" + DateTime.Now.ToString());
                response.Age = now_year - int.Parse(birth_year);
                SkeletonLengthEntity skeletonLengthEntity = skeletonLengthDAO.getSkeletonLengthRecord(int.Parse(uid));
                if (skeletonLengthEntity != null)
                {
                    response.Weight = skeletonLengthEntity.Weigth;
                }
                else
                {
                    response.Weight = 0;
                }
                response.UserName = user.User_Name;
            }
            else
            {
                //Console.WriteLine("用户存在");
                logger.Info("用户不存在");
                response.InfoResponse = 0;
                return(response);
            }

            //查询用户此台设备是否存在个人设置,如果不存在,为其增加此设备的个人设置
            var pSetting = personalSettingDAO.GetSettingByMemberId(uid, ((int)request.DeviceType).ToString());

            if (pSetting != null)
            {//存在个人设置
                response.ExisitSetting     = true;
                response.TrainMode         = (TrainMode)Enum.Parse(typeof(TrainMode), pSetting.Training_mode);
                response.SeatHeight        = pSetting.Seat_height == null ? 0 : (int)pSetting.Seat_height;
                response.BackDistance      = pSetting.Backrest_distance == null ? 0 : (int)pSetting.Backrest_distance;
                response.FootboardDistance = pSetting.Footboard_distance == null ? 0 : (int)pSetting.Backrest_distance;
                response.LeverAngle        = pSetting.Lever_angle == null ? 0 : (double)pSetting.Lever_angle;
                response.ForwardLimit      = pSetting.Front_limit == null ? 0 : (int)pSetting.Front_limit;
                response.BackLimit         = pSetting.Back_limit == null ? 0 : (int)pSetting.Back_limit;
                response.ConsequentForce   = pSetting.Consequent_force == null ? 0 : (double)pSetting.Consequent_force;
                response.ReverseForce      = pSetting.Reverse_force == null ? 0 : (double)pSetting.Reverse_force;
                response.Power             = pSetting.Power == null ? 0 : (double)pSetting.Power;
            }
            else
            {
                logger.Info("用户不存在个人设置,自创建个人设置未生效");
                return(response);
            }


            //查询此用户是否有未做大处方
            List <TrainInfo> trainInfos = trainService.GetTrainInfosByUserId(int.Parse(uid));
            int use_trainfo_number      = 0;

            if (trainInfos != null)
            {
                int no_use_trainfos = 0;

                for (int i = 0; i < trainInfos.Count; i++)
                {
                    if (trainInfos[i].Status == 0)
                    {
                        use_trainfo_number = i;
                        var trainInfo_id = trainInfos[i].Pk_TI_Id;
                        var ds_id        = (int)(request.DeviceType);

                        //根据traininfo_id和设备id获取处方信息
                        entity.newEntity.NewDevicePrescription newDevicePrescription = trainService.GetDevicePrescriptionByTiIdAndDsId(trainInfo_id, ds_id);
                        if (newDevicePrescription != null)
                        {
                            if (newDevicePrescription.Dp_status == 0)
                            {
                                //有大处方,有此设备的训练计划,,没完成
                                response.DpStatus     = 0;
                                response.DpMoveway    = (int)newDevicePrescription.Dp_moveway;
                                response.DpMemo       = newDevicePrescription.Dp_memo;
                                response.DpGroupcount = (int)newDevicePrescription.Dp_groupcount;
                                response.DpGroupnum   = (int)newDevicePrescription.Dp_groupnum;
                                response.DpRelaxtime  = (int)newDevicePrescription.Dp_relaxtime;
                                response.SpeedRank    = newDevicePrescription.Speed_rank == null ? 0 : (int)(newDevicePrescription.Speed_rank);
                                response.DpId         = (int)newDevicePrescription.Pk_dp_id;
                                response.InfoResponse = 7;
                            }
                            else
                            {
                                //有大处方,有此设备的训练计划,,完成了
                                response.DpStatus     = 1;
                                response.InfoResponse = 6;
                            }
                        }
                        else
                        {
                            //有大处方,无此设备的训练计划
                            response.InfoResponse = 5;
                            return(response);
                        }

                        break;
                    }
                    else
                    {
                        no_use_trainfos += 1;
                    }
                }
                if (no_use_trainfos == trainInfos.Count)
                {
                    logger.Info("大处方已完成或者废弃了" + uid);
                    response.InfoResponse = 3;
                }
            }
            else
            {
                logger.Info("用户没有设置大处方");
                response.InfoResponse = 1;
                return(response);
            }



            //当前系统版本
            Setter setter = setterService.getSetter();

            if (setter != null)
            {
                var ver = setter.Set_Version;
                response.SysVersion = ver;
            }
            else
            {
                logger.Info("无系统版本");
                response.SysVersion = "null";
                return(response);
            }

            // 待训练列表
            // List<DeviceType> todoDevices = GenToDoDevices(trainInfos[use_trainfo_number].Pk_TI_Id);
            List <DeviceType> todoDevices = GenToDoDevicesTwo(trainInfos[use_trainfo_number].Pk_TI_Id);

            response.DeviceTypeArr.AddRange(todoDevices);
            return(response);
        }