健身管理系统源码设计和实现

  • 简介
  • 1 开发环境介绍
    • 1.1 IIS的安装
    • 1.2 asp.net开发技术
  • 3.代码分析
    • 用户登录
    • 获取健身科目列表
    • 获取健身训练课题列表展示
    • 健身小结

简介

健身于二十世纪九十年代进入我国,随着经济的快速发展,人们的生活水平有了质的飞跃,老百姓的健身意识也有了较大程度的提高。在学习和工作之余,有更多的人愿意在闲暇的时间进行健身和体育锻炼,以达到缓解压力、放松心情、增强体质的目的。近年来,健身房已经进入我们寻常百姓的生活,它作为一个新兴的产业已经越来越得到大家的认可和欢迎[26]。然而,由于多方面的原因,健身房的管理长期以来处于人工管理为主的阶段,由于技术上的制约使健身房的管理及推广均得不到良好的发展,同时也制约了健身运动的推广。此外,对于人数众多的情况,健身房的管理更是困难重重,在增加管理成本的同时也使得健身房的管理效率较为低下,对整个健身房的运行也产生了极大的影响。当前,在北京、天津、石家庄等一、二线城市健身房的发展迅速,而湖南等三、四线城市现有的健身房大多采用老旧的模式,无法满足当前人民的需求。全国众多的中小城市健身房的发展建设蕴藏着巨大的潜力。随着互联网技术、嵌入式技术以及日益兴起的物联网技术的发展,网络化、数字化和智能化已经成为发展的趋势。因此,将健身房管理与计算机技术、网络技术相结合,设计出智能、高效的管理系统,才能更好的为广大用户服务。

1 开发环境介绍

1.1 IIS的安装

在开发前我们需要解析一下运行环境,Microsoft的windows系列都包含了可选安装的IIS组件,Windows2003和windows2000服务器版操作系统在安装时就已经默认安装了IIS,我们可以打开“我的电脑”/“控制面板”/“管理工具”即可以看到Internet信息服务的IIS管理器,如果系统没有安装那么我们就要自己安装了,首先我们先把系统盘放进光驱,然后进入“控制面板”,依次选“添加/删除程序→添加/删除Windows组件”,将“Internet信息服务(IIS)”前的小钩去掉(如有),重新勾选中后按提示操作即可完成IIS组件的添加。用这种方法添加的IIS组件中将包括Web、FTP、NNTP和SMTP等全部四项服务。当IIS添加成功之后,再进入“开始→程序→管理工具→Internet服务管理器”以打开IIS管理器。

1.2 asp.net开发技术

ASP.net是把基于通用语言的程序在服务器上运行,是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多。它使运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。

ASP.net使用一种字符基础的,分级的配置系统,使服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为“Zero Local Administration”的哲学观念使Asp.net的基于应用的开发更加具体和快捷。一个ASP.net的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须的文件,不需要系统的重新启动。多处理器环境的可靠性 ASP.net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。ASP.net可以加入自己定义的组件。安全性基于Windows认证技术和每应用程序配置,可以确定原程序时绝对安全的。ASP.NET 的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有ASP应用程序中逐渐添加 ASP.NET功能,随时增强 ASP 应用程序的功能。ASP.NET 是一个已编译的、基于.NET的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与 .NET兼容的语言(包括Visual Basic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET 应用程序都可以使用整个.NET Framework,可以无缝地与WYSIWYG HTML编辑器和其他编程工具(包括Microsoft Visual Studio .NET)一起工作。
————————————————

3.代码分析

用户登录

  public async Task<AppUserDto> AppUserLoginAsync(AppUserLoginInput input){var appUser = await SqlSugarClient.Queryable<AppUser>().Where(x => x.UserName == input.UserName).FirstAsync();if (appUser is null) throw new YoungException("登录验证失败");if (!input.PassWord.Equals(appUser.Password)) throw new YoungException("登录验证失败!");var userInfoDto = Mapper.Map<AppUser, AppUserDto>(appUser);return userInfoDto;}

获取健身科目列表

 public async Task<PagedReuslt<ExerciseDto>> GetListAsync(ExercisePageInput input){List<ExerciseDto> rs = new List<ExerciseDto>();RefAsync<int> totalCount = 0;var list = await SqlSugarClient.Queryable<Exercise>().WhereIF(input.ClassifyTypeId.HasValue, x => x.ClassifyTypeId == input.ClassifyTypeId).WhereIF(input.Name.IsNotNullOrNotWhiteSpace(), x => x.Name == input.Name).ToPageListAsync(input.Page, input.Size, totalCount);rs = Mapper.Map<List<ExerciseDto>>(list.ToList());return new PagedReuslt<ExerciseDto>(Mapper.Map<List<ExerciseDto>>(list), totalCount.Value);}

获取健身训练课题列表展示

  public async Task<PagedReuslt<ExerciseDto>> GetExerciseDtoInfoListAsync(ExercisePageInput input){List<ExerciseDto> rs = new List<ExerciseDto>();RefAsync<int> totalCount = 0;var list = await SqlSugarClient.Queryable<Exercise>().WhereIF(input.ClassifyTypeIds.Any(), x => input.ClassifyTypeIds.Contains(x.ClassifyTypeId.Value)).WhereIF(input.ClassifyTypeId.HasValue, x => x.ClassifyTypeId == input.ClassifyTypeId).WhereIF(input.Name.IsNotNullOrNotWhiteSpace(), x => x.Name == input.Name).ToPageListAsync(input.Page, input.Size, totalCount);rs = Mapper.Map<List<ExerciseDto>>(list.ToList());var exerciseIds = rs.Select(x => x.Id).ToArray();var classifyTypeIds = rs.Select(x => x.ClassifyTypeId).ToArray();var classiftTypeDtoList = await _classifyTypeManager.GetListAsync(new ClassifyTypePagedInput() { TypeDirect = TypeDirect.健身类, RelativeIds = classifyTypeIds });var exerciseDetailList = await SqlSugarClient.Queryable<ExerciseDetail>().WhereIF(exerciseIds.Any(), x => exerciseIds.Contains(x.ExerciseId)).ToListAsync();var exerciseDetailDtoList = Mapper.Map<List<ExerciseDetailDto>>(exerciseDetailList);var exerciseDetailIds = exerciseDetailDtoList.Select(x => x.Id).ToArray();var recordsIds = exerciseIds.Union(exerciseDetailIds);//获取所有浏览数据var lookRecords = await _recordManager.GetGroupListAsync(new RecordPagedInput() { RecordType = RecordType.运动浏览, RelativeIds = exerciseDetailIds.Where(x => x.HasValue).Select(x => x.Value).ToArray() });///统计所有活动参加人的次数var recordG = await SqlSugarClient.Queryable<ExerciseRecord>().Where(x => recordsIds.Contains(x.ExerciseId) || recordsIds.Contains(x.ExerciseDetailId)).GroupBy(x => new { x.ExerciseId, x.ExerciseDetailId }).Select(x => new{x.ExerciseId,x.ExerciseDetailId,Qty = SqlFunc.AggregateCount(x.ExerciseId)}).ToListAsync();//统计已经完成此项数据的次数var recordCompleteG = await SqlSugarClient.Queryable<ExerciseRecord>().Where(x => x.CompleteTime.HasValue && recordsIds.Contains(x.ExerciseDetailId)).GroupBy(x => new { x.ExerciseId, x.ExerciseDetailId }).Select(x => new{x.ExerciseId,x.ExerciseDetailId,Qty = SqlFunc.AggregateCount(x.ExerciseId)}).ToListAsync();foreach (var item in exerciseDetailDtoList){item.JoinCount = recordG.Where(x => x.ExerciseDetailId == item.Id).Sum(x => x.Qty);item.LookCount = lookRecords.Where(x => x.RelativeId == item.Id).Sum(x => x.Qty);item.CompleteCount = recordCompleteG.Where(x => x.ExerciseDetailId == item.Id).Sum(x => x.Qty);}foreach (var item in rs){item.ClassifyTypeDto = classiftTypeDtoList.Items.FirstOrDefault(x => x.Id == item.ClassifyTypeId);item.ExerciseDetailDtoList = exerciseDetailDtoList.Where(x => x.ExerciseId == item.Id).ToList();item.TotalSecond = item.ExerciseDetailDtoList.Sum(x => x.TotalSecond);item.TotalEnergy = item.ExerciseDetailDtoList.Sum(x => x.TotalEnergy);item.JoinCount = item.ExerciseDetailDtoList.Sum(x => x.JoinCount);item.LookCount = item.ExerciseDetailDtoList.Sum(x => x.LookCount);item.CompleteCount = item.ExerciseDetailDtoList.Sum(x => x.CompleteCount);}return new PagedReuslt<ExerciseDto>(rs, totalCount.Value);}

健身小结

  public async Task<PagedReuslt<ExerciseDetailDto>> GetExerciseDetailDtoListAsync(ExercisePageInput input){List<ExerciseDetailDto> rs = new List<ExerciseDetailDto>();RefAsync<int> totalCount = 0;var list = await SqlSugarClient.Queryable<ExerciseDetail>().LeftJoin<Exercise>((ed, e) => ed.ExerciseId == e.Id).WhereIF(input.Name.IsNotNullOrNotWhiteSpace(), (ed, e) => e.Name == input.Name).WhereIF(input.ExerciseDetailId.HasValue, (ed, e) => ed.Id == input.ExerciseDetailId).Select((ed, e) => new{ExerciseDetail = ed,Exercise = e}).ToPageListAsync(input.Page, input.Size, totalCount);var exerciseDetailIds = list.Select(x => x.ExerciseDetail.Id).ToArray();rs = Mapper.Map<List<ExerciseDetailDto>>(list.Select(x => x.ExerciseDetail));var exerciseDtos = Mapper.Map<List<ExerciseDto>>(list.Select(x => x.Exercise));//获取所有浏览数据var lookRecords = await _recordManager.GetGroupListAsync(new RecordPagedInput() { RecordType = RecordType.运动浏览, RelativeIds = exerciseDetailIds });///统计所有活动参加人的次数var recordG = await SqlSugarClient.Queryable<ExerciseRecord>().Where(x => exerciseDetailIds.Contains(x.ExerciseDetailId.Value)).GroupBy(x => new { x.ExerciseId, x.ExerciseDetailId }).Select(x => new{x.ExerciseId,x.ExerciseDetailId,Qty = SqlFunc.AggregateCount(x.ExerciseId)}).ToListAsync();//统计已经完成此项数据的次数var recordCompleteG = await SqlSugarClient.Queryable<ExerciseRecord>().Where(x => x.CompleteTime.HasValue && exerciseDetailIds.Contains(x.ExerciseDetailId.Value)).GroupBy(x => new { x.ExerciseId, x.ExerciseDetailId }).Select(x => new{x.ExerciseId,x.ExerciseDetailId,Qty = SqlFunc.AggregateCount(x.ExerciseId)}).ToListAsync();foreach (var item in rs){item.ExerciseDto = exerciseDtos.FirstOrDefault(x => x.Id == item.ExerciseId);item.JoinCount = recordG.Where(x => x.ExerciseDetailId == item.Id).Sum(x => x.Qty);item.LookCount = lookRecords.Where(x => x.RelativeId == item.Id).Sum(x => x.Qty);item.CompleteCount = recordCompleteG.Where(x => x.ExerciseDetailId == item.Id).Sum(x => x.Qty);}return new PagedReuslt<ExerciseDetailDto>(rs, totalCount.Value);}

摘要

互联网是社会发展的必然趋势,很多人已经意识到网络的强大生命力和它在未来将处于的重要地位。他们钻研并且努力进入到这一个新的空间,新的领域。其中包括你和我。以个人为中心,淡化了传统中心地位,使得我们的世界向多元化加速发展,人人都有话语权,人人都是中心。

互联网是一个互动性极强的平台,它自由、宽容、平等、共享,并使来自民间的声音参与到了构建主流话语的行动中来。计算机技术的发展,特别是网络技术的飞速发展,给文档的保存和管理提供极大的方便。本论文中,将软件工程的基本原理和方法应用到整个网站系统,并对其进行需求分析,提出了解决问题的具体方法。在具体制作中,用ASP技术来实现B/S系统,ASP技术与数据库技术结合,用户在浏览器端可以随意查询自己需要的标本,这样提高了网页的互动性,使整个系统能更好的为用户服务。

Internet飞速发展使得网站不再仅仅为企业或公司等大型结构所拥有,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。因此网站建设在Internet应用上的地位显而易见,一个家庭甚至个人都可以拥有属于自己的网站,而在这其中,个人网站已经日渐普及,而且发展到今天,创建一个能充分体现自我风格和特色的个人网站已经成为互联网用户的新追求。

关键词: 个人网站;ASP.net;SQL server 2008;互联网;

健身管理系统源码设计和实现相关推荐

  1. C语言成绩统计源代码,C语言课程设计学生成绩管理系统+源码

    <C语言课程设计学生成绩管理系统+源码>由会员分享,可在线阅读,更多相关<C语言课程设计学生成绩管理系统+源码(25页珍藏版)>请在人人文库网上搜索. 1.简易教学管理系统的设 ...

  2. 客栈(酒店)管理系统(源码+数据库+设计文档)

    客栈(酒店)管理系统(源码+数据库+设计文档) springboot+mybatis+mysql+thymeleaf 包括四大模块:登录管理.住宿管理.房间管理.系统管理 (1)登录管理:用于管理员登 ...

  3. PHP资产管理系统源码适用于IT办公行业固定资产管理,资产录入设备管理,功能齐全,可自由设计资产卡片

    PHP资产管理系统源码适用于IT办公行业固定资产管理,资产录入设备管理,功能齐全,可自由设计资产卡片. 程序基于开源框架layuimini开发,可本地部署,可局域网以及服务器联网运行. ,带部署文档, ...

  4. PHP资产管理系统源码可自由设计资产卡片

    PHP资产管理系统源码可自由设计资产卡片,适用于IT办公行业固定资产管理,资产录入设备管理,功能齐全. 标价即实价. 源码全开源基于layuimini,可本地部署,可局域网以及服务器联网运行. 需求环 ...

  5. PHP资产管理系统源码可自由设计资产卡片,适用于IT办公行业固定资产管理

    PHP资产管理系统源码可自由设计资产卡片,适用于IT办公行业固定资产管理,资产录入设备管理,功能齐全. 标价即实价. 源码全开源基于layuimini,可本地部署,也可局域网以及服务器联网运行 需求环 ...

  6. C语言期末大作业-学生成绩管理系统(完整源码+设计报告)

    C语言-学生成绩管理系统 一.学生成绩管理系统源码(完整) 二.程序设计报告 1.课程设计目的 2.课程设计任务与要求: 4.课程设计成果(运行截图) 5.课程设计心得 一.学生成绩管理系统源码(完整 ...

  7. java计算机毕业设计Web企业差旅在线管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计Web企业差旅在线管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计Web企业差旅在线管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈 ...

  8. java计算机毕业设计html5健身房信息管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计html5健身房信息管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计html5健身房信息管理系统源码+mysql数据库+系统+lw文档+部署 本源码技 ...

  9. java计算机毕业设计-数字相册管理系统-源码+数据库+系统+lw文档+mybatis+运行部署

    java计算机毕业设计-数字相册管理系统-源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计-数字相册管理系统-源码+数据库+系统+lw文档+mybatis+运行部署 本源 ...

最新文章

  1. iOS开发-模板方法模式
  2. 实现SELECT的全选,反选,AB选的JAVASCRIPT代码
  3. python参考手册 豆瓣_python之父亲自撰写两年后豆瓣评分9.8《python深度学习》PDF分享...
  4. 卓越管理的秘密(Behind Closed Doors)
  5. v-on绑定特性命名带小横杠 ‘-’与props属性中变量怎么对应
  6. MYSQL优化---hidba
  7. 操作自定义属性、H5自定义属性
  8. 汇编学习--7.10--程序编写
  9. objective-c NSMutableAttributedString
  10. 算法:回溯三 Combination Sum组合总数
  11. Dfinity(ICP)介绍-1
  12. Python小程序(1)--汇率换算器
  13. 关于程序员的调查报告
  14. 教你轻松快速学会用Calibre TXT转MOBI
  15. c语言 16 16 字库,用C语言编程16点阵字库
  16. ipv4 pxe 联想start_PC开机出现Start pxe over ipv4解决办法 PC重启后显示start pxe over IPv4...
  17. b365老掉线 h3c路由器_H3C路由器PPP连接的常见故障及解决方法
  18. 独家 | GAN大盘点,聊聊这些年的生成对抗网络 : LSGAN, WGAN, CGAN, infoGAN, EBGAN, BEGAN, VAE
  19. czl蒻蒟的OI之路10、11、12
  20. 英国内政大臣:科技公司给信息加密不可接受

热门文章

  1. 原创|我常用的3款脑图工具
  2. 学习记录-- 用 Latex 修改文字/段落颜色 用于回复审稿意见。
  3. 模拟幂律分布(附C语言代码)
  4. hta 北京自动挂号器
  5. 030 正定二次型及判别法之定义法、特征值法、顺序主子式法
  6. C++库常用函数一览表
  7. 英语caement水泥
  8. pip下载第三方库失败
  9. python使用selenium打开chrome浏览器时带用户登录信息
  10. 业界 | 为什么Jupyter是数据科学家们实战工具的首选?