当前位置: 首页 > news >正文

计算机毕业设计 健身房管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
————————————————
计算机毕业设计《1000套》✌

目录

1、项目介绍及开发技术

1.1 项目介绍

1.2 开发技术

2、系统功能设计结构图

3、功能截图

3.1 前台功能

3.2 后台功能

4、数据库表结构设计

5、关键代码

5.1 教练Controller模块 

5.2 教练Service模块 

5.3 教练ServiceImpl模块

5.4  教练Dao模块

6、论文目录结构

7、源码获取


1、项目介绍及开发技术

1.1 项目介绍

随着健康生活方式的普及和健身意识的增强,健身中心成为了城市生活中不可或缺的一部分。然而,传统的健身中心管理方式存在诸多不便,如场地预约困难、课程信息不透明、用户反馈渠道不畅等问题,这些问题影响了用户的健身体验和健身中心的运营效率。为了解决这些问题,提升健身服务的质量和效率,我们设计并开发了一个健身中心管理平台。

背景:
在快节奏的都市生活中,人们越来越重视身体健康和生活质量。健身中心作为提供专业健身服务的场所,其管理方式和服务模式亟需与现代技术相结合,以满足用户的需求。传统的手工记录和管理方式已经无法适应市场的发展,需要一个集成化的平台来提升管理效率和用户体验。

目的意义:

  • 1. 提升用户体验:平台通过提供场地信息浏览、在线预约、课程查询等功能,使用户能够更加便捷地获取健身服务,提升用户的满意度和忠诚度。
  • 2. 优化场地管理:系统化的场地预约申请管理能够帮助健身中心更有效地管理场地资源,提高场地利用率,减少资源浪费。
  • 3. 增强互动交流:交流论坛和公告通知功能为用户提供了一个交流健身经验、获取健身资讯的平台,同时也使健身中心能够及时发布重要信息。
  • 4. 提高运营效率:后端管理系统为健身中心提供了全面的管理工具,包括用户管理、课程管理、器材管理等,极大地提高了运营效率和管理水平。
  • 5. 支持决策制定:平台收集的用户数据和反馈信息,为健身中心的决策者提供了宝贵的信息资源,有助于制定更加精准的市场策略和运营计划。

综上所述,健身中心管理平台的设计与实现,不仅能够为健身爱好者提供一个全面、便捷的服务体验,还能够为健身中心提供一个高效、智能的管理工具。通过技术手段优化健身中心的运营流程,该平台有望成为推动健身行业服务升级的重要力量。
 

1.2 开发技术

类别技术名称用途/描述
开发语言Java一种广泛使用的面向对象编程语言。
框架Spring Boot简化Spring应用的初始搭建以及开发过程。
ORM工具MyBatis PlusMyBatis的增强工具,简化CRUD操作。
数据库MySQL流行的关系型数据库管理系统。
构建工具Maven项目管理和理解工具。
开发工具IDEA集成开发环境,用于代码编写和调试。
JDK版本JDK 1.8+Java开发工具包,提供运行Java程序所需的环境。
前端框架Vue用于构建用户界面的渐进式JavaScript框架。
UI框架Element UI基于Vue的桌面端组件库。
前端技术HTML网页内容的标准标记语言。
前端技术CSS描述HTML文档的样式。
前端技术JS网页脚本语言,用于实现网页的动态效果。

2、系统功能设计结构图

功能模块结构图

├── 前端
│   ├── 登录
│   ├── 注册
│   ├── 首页
│   ├── 场地信息
│   ├── 交流论坛
│   ├── 健身课程
│   ├── 公告通知
│   └── 个人中心
│       ├── 个人信息
│       ├── 场地收藏
│       ├── 场地留言
│       ├── 场地预约申请
│       ├── 课程收藏
│       ├── 课程留言
│       └── 课程订单

└── 后端
    ├── 登录
    ├── 首页
    ├── 个人中心
    ├── 管理员管理
    ├── 店长管理
    ├── 教练管理
    ├── 前台管理
    ├── 驻场人员管理
    ├── 用户管理
    ├── 健身课程管理
    ├── 场地信息管理
    ├── 场地预约申请管理
    ├── 健身器材管理
    ├── 出入库管理
    ├── 资费管理
    ├── 基础数据管理
    ├── 交流论坛管理
    ├── 公告通知管理
    └── 轮播图信息管理

系统MVC框架,请求流程展示:

3、功能截图

3.1 前台功能

3.2 后台功能

 

4、数据库表结构设计

CREATE TABLE `jianshenkecheng` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`jiaolian_id` int(11) DEFAULT NULL COMMENT '教练',`jianshenkecheng_name` varchar(200) DEFAULT NULL COMMENT '健身课程名称  Search111 ',`jianshenkecheng_photo` varchar(200) DEFAULT NULL COMMENT '健身课程照片',`zan_number` int(11) DEFAULT NULL COMMENT '赞',`cai_number` int(11) DEFAULT NULL COMMENT '踩',`jianshenkecheng_types` int(11) DEFAULT NULL COMMENT '健身课程类型 Search111',`jianshenkecheng_clicknum` int(11) DEFAULT NULL COMMENT '健身课程热度',`jianshenkecheng_new_money` decimal(10,2) DEFAULT NULL COMMENT '课程价格',`jianshenkecheng_content` longtext COMMENT '健身课程介绍 ',`shangxia_types` int(11) DEFAULT NULL COMMENT '是否上架 ',`data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',`insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show1 show2 photoShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='健身课程';CREATE TABLE `jianshenkecheng_liuyan` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`jianshenkecheng_id` int(11) DEFAULT NULL COMMENT '健身课程',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`jianshenkecheng_liuyan_text` longtext COMMENT '留言内容',`insert_time` timestamp NULL DEFAULT NULL COMMENT '留言时间',`reply_text` longtext COMMENT '回复内容',`update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='课程留言';CREATE TABLE `jianshenqichai` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`jianshenqichai_uuid_number` varchar(200) DEFAULT NULL COMMENT '健身器材编号',`jianshenqichai_name` varchar(200) DEFAULT NULL COMMENT '健身器材名称  Search111 ',`jianshenqichai_types` int(11) DEFAULT NULL COMMENT '健身器材类型 Search111',`jianshenqichai_kucun_number` int(11) DEFAULT NULL COMMENT '健身器材库存',`jianshenqichai_new_money` decimal(10,2) DEFAULT NULL COMMENT '价格',`jianshenqichai_content` longtext COMMENT '健身器材介绍 ',`insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='健身器材';CREATE TABLE `jianshenqichai_churu_inout` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`jianshenqichai_churu_inout_uuid_number` varchar(200) DEFAULT NULL COMMENT '出入库流水号',`jianshenqichai_churu_inout_name` varchar(200) DEFAULT NULL COMMENT '出入库名称  Search111 ',`jianshenqichai_churu_inout_types` int(11) DEFAULT NULL COMMENT '出入库类型  Search111 ',`jianshenqichai_churu_inout_content` longtext COMMENT '备注',`insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='出入库';CREATE TABLE `jianshenqichai_churu_inout_list` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`jianshenqichai_churu_inout_id` int(11) DEFAULT NULL COMMENT '出入库',`jianshenqichai_id` int(11) DEFAULT NULL COMMENT '健身器材',`jianshenqichai_churu_inout_list_number` int(11) DEFAULT NULL COMMENT '操作数量',`insert_time` timestamp NULL DEFAULT NULL COMMENT '操作时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='出入库详情';CREATE TABLE `jiaolian` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(200) DEFAULT NULL COMMENT '账户',`password` varchar(200) DEFAULT NULL COMMENT '密码',`jiaolian_name` varchar(200) DEFAULT NULL COMMENT '教练名称 Search111 ',`jiaolian_phone` varchar(200) DEFAULT NULL COMMENT '教练手机号',`jiaolian_photo` varchar(200) DEFAULT NULL COMMENT '教练头像',`sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',`jiaolian_email` varchar(200) DEFAULT NULL COMMENT '教练邮箱',`jiaolian_new_money` decimal(10,2) DEFAULT NULL COMMENT '工薪',`jiaolian_content` longtext COMMENT '教练简介 ',`data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',`insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='教练';CREATE TABLE `news` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`news_name` varchar(200) DEFAULT NULL COMMENT '公告标题  Search111 ',`news_types` int(11) DEFAULT NULL COMMENT '公告类型  Search111 ',`news_photo` varchar(200) DEFAULT NULL COMMENT '公告图片',`insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',`news_content` longtext COMMENT '公告详情',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='公告通知';CREATE TABLE `qiantai` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(200) DEFAULT NULL COMMENT '账户',`password` varchar(200) DEFAULT NULL COMMENT '密码',`qiantai_name` varchar(200) DEFAULT NULL COMMENT '前台名称 Search111 ',`qiantai_phone` varchar(200) DEFAULT NULL COMMENT '前台手机号',`qiantai_photo` varchar(200) DEFAULT NULL COMMENT '前台头像',`sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',`qiantai_email` varchar(200) DEFAULT NULL COMMENT '前台邮箱',`qiantai_new_money` decimal(10,2) DEFAULT NULL COMMENT '工薪',`qiantai_content` longtext COMMENT '前台简介 ',`data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',`insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='前台';CREATE TABLE `token` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`userid` bigint(20) NOT NULL COMMENT '管理id',`username` varchar(100) NOT NULL COMMENT '管理名',`tablename` varchar(100) DEFAULT NULL COMMENT '表名',`role` varchar(100) DEFAULT NULL COMMENT '角色',`token` varchar(200) NOT NULL COMMENT '密码',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',`expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='token表';CREATE TABLE `users` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(100) NOT NULL COMMENT '医院名',`password` varchar(100) NOT NULL COMMENT '密码',`role` varchar(100) DEFAULT '管理员' COMMENT '角色',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='管理员';CREATE TABLE `yonghu` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(200) DEFAULT NULL COMMENT '账户',`password` varchar(200) DEFAULT NULL COMMENT '密码',`yonghu_name` varchar(200) DEFAULT NULL COMMENT '用户名称 Search111 ',`yonghu_phone` varchar(200) DEFAULT NULL COMMENT '用户手机号',`yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '用户身份证号',`yonghu_photo` varchar(200) DEFAULT NULL COMMENT '用户头像',`sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',`yonghu_email` varchar(200) DEFAULT NULL COMMENT '用户邮箱',`new_money` decimal(10,2) DEFAULT NULL COMMENT '现有余额',`data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',`insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户';CREATE TABLE `zhuchang` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(200) DEFAULT NULL COMMENT '账户',`password` varchar(200) DEFAULT NULL COMMENT '密码',`zhuchang_name` varchar(200) DEFAULT NULL COMMENT '驻场人员名称 Search111 ',`zhuchang_phone` varchar(200) DEFAULT NULL COMMENT '驻场人员手机号',`zhuchang_photo` varchar(200) DEFAULT NULL COMMENT '驻场人员头像',`sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',`zhuchang_email` varchar(200) DEFAULT NULL COMMENT '驻场人员邮箱',`zhuchang_new_money` decimal(10,2) DEFAULT NULL COMMENT '工薪',`zhuchang_content` longtext COMMENT '驻场人员简介 ',`data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',`insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='驻场人员';CREATE TABLE `zifei` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`zifei_uuid_number` varchar(200) DEFAULT NULL COMMENT '资费编号',`zifei_name` varchar(200) DEFAULT NULL COMMENT '资费名称  Search111 ',`zifei_types` int(11) DEFAULT NULL COMMENT '资费类型 Search111',`zifei_new_money` decimal(10,2) DEFAULT NULL COMMENT '金额',`qiantai_id` int(11) DEFAULT NULL COMMENT '前台',`zifei_content` longtext COMMENT '资费详情',`insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='资费';

5、关键代码

5.1 教练Controller模块 

package com.controller;import java.io.File;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.*;
import java.lang.reflect.InvocationTargetException;import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;/*** 教练* 后端接口* @author* @email
*/
@RestController
@Controller
@RequestMapping("/jiaolian")
public class JiaolianController {private static final Logger logger = LoggerFactory.getLogger(JiaolianController.class);private static final String TABLE_NAME = "jiaolian";@Autowiredprivate JiaolianService jiaolianService;@Autowiredprivate TokenService tokenService;@Autowiredprivate ChangdiService changdiService;//场地信息@Autowiredprivate ChangdiCollectionService changdiCollectionService;//场地收藏@Autowiredprivate ChangdiLiuyanService changdiLiuyanService;//场地留言@Autowiredprivate ChangdiYuyueService changdiYuyueService;//场地预约申请@Autowiredprivate DianzhangService dianzhangService;//店长@Autowiredprivate DictionaryService dictionaryService;//字典@Autowiredprivate ForumService forumService;//交流论坛@Autowiredprivate JianshenkechengService jianshenkechengService;//健身课程@Autowiredprivate JianshenkechengCollectionService jianshenkechengCollectionService;//课程收藏@Autowiredprivate JianshenkechengLiuyanService jianshenkechengLiuyanService;//课程留言@Autowiredprivate JianshenkechengOrderService jianshenkechengOrderService;//课程订单@Autowiredprivate JianshenqichaiService jianshenqichaiService;//健身器材@Autowiredprivate JianshenqichaiChuruInoutService jianshenqichaiChuruInoutService;//出入库@Autowiredprivate JianshenqichaiChuruInoutListService jianshenqichaiChuruInoutListService;//出入库详情@Autowiredprivate NewsService newsService;//公告通知@Autowiredprivate QiantaiService qiantaiService;//前台@Autowiredprivate YonghuService yonghuService;//用户@Autowiredprivate ZhuchangService zhuchangService;//驻场人员@Autowiredprivate ZifeiService zifeiService;//资费@Autowiredprivate UsersService usersService;//管理员/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永不会进入");else if("用户".equals(role))params.put("yonghuId",request.getSession().getAttribute("userId"));else if("店长".equals(role))params.put("dianzhangId",request.getSession().getAttribute("userId"));else if("教练".equals(role))params.put("jiaolianId",request.getSession().getAttribute("userId"));else if("前台".equals(role))params.put("qiantaiId",request.getSession().getAttribute("userId"));else if("驻场人员".equals(role))params.put("zhuchangId",request.getSession().getAttribute("userId"));params.put("dataDeleteStart",1);params.put("dataDeleteEnd",1);CommonUtil.checkMap(params);PageUtils page = jiaolianService.queryPage(params);//字典表数据转换List<JiaolianView> list =(List<JiaolianView>)page.getList();for(JiaolianView c:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c, request);}return R.ok().put("data", page);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id, HttpServletRequest request){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);JiaolianEntity jiaolian = jiaolianService.selectById(id);if(jiaolian !=null){//entity转viewJiaolianView view = new JiaolianView();BeanUtils.copyProperties( jiaolian , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody JiaolianEntity jiaolian, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,jiaolian:{}",this.getClass().getName(),jiaolian.toString());String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永远不会进入");Wrapper<JiaolianEntity> queryWrapper = new EntityWrapper<JiaolianEntity>().eq("username", jiaolian.getUsername()).or().eq("jiaolian_phone", jiaolian.getJiaolianPhone()).eq("data_delete", 1);logger.info("sql语句:"+queryWrapper.getSqlSegment());JiaolianEntity jiaolianEntity = jiaolianService.selectOne(queryWrapper);if(jiaolianEntity==null){jiaolian.setDataDelete(1);jiaolian.setInsertTime(new Date());jiaolian.setCreateTime(new Date());jiaolian.setPassword("123456");jiaolianService.insert(jiaolian);return R.ok();}else {return R.error(511,"账户或者教练手机号已经被使用");}}/*** 后端修改*/@RequestMapping("/update")public R update(@RequestBody JiaolianEntity jiaolian, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {logger.debug("update方法:,,Controller:{},,jiaolian:{}",this.getClass().getName(),jiaolian.toString());JiaolianEntity oldJiaolianEntity = jiaolianService.selectById(jiaolian.getId());//查询原先数据String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");if("".equals(jiaolian.getJiaolianPhoto()) || "null".equals(jiaolian.getJiaolianPhoto())){jiaolian.setJiaolianPhoto(null);}if("".equals(jiaolian.getJiaolianContent()) || "null".equals(jiaolian.getJiaolianContent())){jiaolian.setJiaolianContent(null);}jiaolianService.updateById(jiaolian);//根据id更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Integer[] ids, HttpServletRequest request){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());List<JiaolianEntity> oldJiaolianList =jiaolianService.selectBatchIds(Arrays.asList(ids));//要删除的数据ArrayList<JiaolianEntity> list = new ArrayList<>();for(Integer id:ids){JiaolianEntity jiaolianEntity = new JiaolianEntity();jiaolianEntity.setId(id);jiaolianEntity.setDataDelete(2);list.add(jiaolianEntity);}if(list != null && list.size() >0){jiaolianService.updateBatchById(list);}return R.ok();}/*** 批量上传*/@RequestMapping("/batchInsert")public R save( String fileName, HttpServletRequest request){logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))try {List<JiaolianEntity> jiaolianList = new ArrayList<>();//上传的东西Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段Date date = new Date();int lastIndexOf = fileName.lastIndexOf(".");if(lastIndexOf == -1){return R.error(511,"该文件没有后缀");}else{String suffix = fileName.substring(lastIndexOf);if(!".xls".equals(suffix)){return R.error(511,"只支持后缀为xls的excel文件");}else{URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径File file = new File(resource.getFile());if(!file.exists()){return R.error(511,"找不到上传文件,请联系管理员");}else{List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件dataList.remove(0);//删除第一行,因为第一行是提示for(List<String> data:dataList){//循环JiaolianEntity jiaolianEntity = new JiaolianEntity();
//                            jiaolianEntity.setUsername(data.get(0));                    //账户 要改的
//                            jiaolianEntity.setPassword("123456");//密码
//                            jiaolianEntity.setJiaolianName(data.get(0));                    //教练名称 要改的
//                            jiaolianEntity.setJiaolianPhone(data.get(0));                    //教练手机号 要改的
//                            jiaolianEntity.setJiaolianPhoto("");//详情和图片
//                            jiaolianEntity.setSexTypes(Integer.valueOf(data.get(0)));   //性别 要改的
//                            jiaolianEntity.setJiaolianEmail(data.get(0));                    //教练邮箱 要改的
//                            jiaolianEntity.setJiaolianNewMoney(data.get(0));                    //工薪 要改的
//                            jiaolianEntity.setJiaolianContent("");//详情和图片
//                            jiaolianEntity.setDataDelete(1);//逻辑删除字段
//                            jiaolianEntity.setInsertTime(date);//时间
//                            jiaolianEntity.setCreateTime(date);//时间jiaolianList.add(jiaolianEntity);//把要查询是否重复的字段放入map中//账户if(seachFields.containsKey("username")){List<String> username = seachFields.get("username");username.add(data.get(0));//要改的}else{List<String> username = new ArrayList<>();username.add(data.get(0));//要改的seachFields.put("username",username);}//教练手机号if(seachFields.containsKey("jiaolianPhone")){List<String> jiaolianPhone = seachFields.get("jiaolianPhone");jiaolianPhone.add(data.get(0));//要改的}else{List<String> jiaolianPhone = new ArrayList<>();jiaolianPhone.add(data.get(0));//要改的seachFields.put("jiaolianPhone",jiaolianPhone);}}//查询是否重复//账户List<JiaolianEntity> jiaolianEntities_username = jiaolianService.selectList(new EntityWrapper<JiaolianEntity>().in("username", seachFields.get("username")).eq("data_delete", 1));if(jiaolianEntities_username.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(JiaolianEntity s:jiaolianEntities_username){repeatFields.add(s.getUsername());}return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());}//教练手机号List<JiaolianEntity> jiaolianEntities_jiaolianPhone = jiaolianService.selectList(new EntityWrapper<JiaolianEntity>().in("jiaolian_phone", seachFields.get("jiaolianPhone")).eq("data_delete", 1));if(jiaolianEntities_jiaolianPhone.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(JiaolianEntity s:jiaolianEntities_jiaolianPhone){repeatFields.add(s.getJiaolianPhone());}return R.error(511,"数据库的该表中的 [教练手机号] 字段已经存在 存在数据为:"+repeatFields.toString());}jiaolianService.insertBatch(jiaolianList);return R.ok();}}}}catch (Exception e){e.printStackTrace();return R.error(511,"批量插入数据异常,请联系管理员");}}/*** 登录*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {JiaolianEntity jiaolian = jiaolianService.selectOne(new EntityWrapper<JiaolianEntity>().eq("username", username));if(jiaolian==null || !jiaolian.getPassword().equals(password))return R.error("账号或密码不正确");else if(jiaolian.getDataDelete() != 1)return R.error("账户已被删除");String token = tokenService.generateToken(jiaolian.getId(),username, "jiaolian", "教练");R r = R.ok();r.put("token", token);r.put("role","教练");r.put("username",jiaolian.getJiaolianName());r.put("tableName","jiaolian");r.put("userId",jiaolian.getId());return r;}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody JiaolianEntity jiaolian, HttpServletRequest request) {
//    	ValidatorUtils.validateEntity(user);Wrapper<JiaolianEntity> queryWrapper = new EntityWrapper<JiaolianEntity>().eq("username", jiaolian.getUsername()).or().eq("jiaolian_phone", jiaolian.getJiaolianPhone()).andNew().eq("data_delete", 1);JiaolianEntity jiaolianEntity = jiaolianService.selectOne(queryWrapper);if(jiaolianEntity != null)return R.error("账户或者教练手机号已经被使用");jiaolian.setJiaolianNewMoney(0.0);jiaolian.setDataDelete(1);jiaolian.setInsertTime(new Date());jiaolian.setCreateTime(new Date());jiaolianService.insert(jiaolian);return R.ok();}/*** 重置密码*/@GetMapping(value = "/resetPassword")public R resetPassword(Integer  id, HttpServletRequest request) {JiaolianEntity jiaolian = jiaolianService.selectById(id);jiaolian.setPassword("123456");jiaolianService.updateById(jiaolian);return R.ok();}/*** 修改密码*/@GetMapping(value = "/updatePassword")public R updatePassword(String  oldPassword, String  newPassword, HttpServletRequest request) {JiaolianEntity jiaolian = jiaolianService.selectById((Integer)request.getSession().getAttribute("userId"));if(newPassword == null){return R.error("新密码不能为空") ;}if(!oldPassword.equals(jiaolian.getPassword())){return R.error("原密码输入错误");}if(newPassword.equals(jiaolian.getPassword())){return R.error("新密码不能和原密码一致") ;}jiaolian.setPassword(newPassword);jiaolianService.updateById(jiaolian);return R.ok();}/*** 忘记密码*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request) {JiaolianEntity jiaolian = jiaolianService.selectOne(new EntityWrapper<JiaolianEntity>().eq("username", username));if(jiaolian!=null){jiaolian.setPassword("123456");jiaolianService.updateById(jiaolian);return R.ok();}else{return R.error("账号不存在");}}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrJiaolian(HttpServletRequest request){Integer id = (Integer)request.getSession().getAttribute("userId");JiaolianEntity jiaolian = jiaolianService.selectById(id);if(jiaolian !=null){//entity转viewJiaolianView view = new JiaolianView();BeanUtils.copyProperties( jiaolian , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));CommonUtil.checkMap(params);PageUtils page = jiaolianService.queryPage(params);//字典表数据转换List<JiaolianView> list =(List<JiaolianView>)page.getList();for(JiaolianView c:list)dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段return R.ok().put("data", page);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Integer id, HttpServletRequest request){logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);JiaolianEntity jiaolian = jiaolianService.selectById(id);if(jiaolian !=null){//entity转viewJiaolianView view = new JiaolianView();BeanUtils.copyProperties( jiaolian , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody JiaolianEntity jiaolian, HttpServletRequest request){logger.debug("add方法:,,Controller:{},,jiaolian:{}",this.getClass().getName(),jiaolian.toString());Wrapper<JiaolianEntity> queryWrapper = new EntityWrapper<JiaolianEntity>().eq("username", jiaolian.getUsername()).or().eq("jiaolian_phone", jiaolian.getJiaolianPhone()).andNew().eq("data_delete", 1)
//            .notIn("jiaolian_types", new Integer[]{102});logger.info("sql语句:"+queryWrapper.getSqlSegment());JiaolianEntity jiaolianEntity = jiaolianService.selectOne(queryWrapper);if(jiaolianEntity==null){jiaolian.setDataDelete(1);jiaolian.setInsertTime(new Date());jiaolian.setCreateTime(new Date());jiaolian.setPassword("123456");jiaolianService.insert(jiaolian);return R.ok();}else {return R.error(511,"账户或者教练手机号已经被使用");}}}

5.2 教练Service模块 

 package com.service;import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.JiaolianEntity;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import java.util.List;/*** 教练 服务类*/
public interface JiaolianService extends IService<JiaolianEntity> {/*** @param params 查询参数* @return 带分页的查询出来的数据*/PageUtils queryPage(Map<String, Object> params);}

5.3 教练ServiceImpl模块


package com.service.impl;import com.utils.StringUtil;
import com.service.DictionaryService;
import com.utils.ClazzDiff;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.*;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import com.utils.PageUtils;
import com.utils.Query;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import com.dao.JiaolianDao;
import com.entity.JiaolianEntity;
import com.service.JiaolianService;
import com.entity.view.JiaolianView;/*** 教练 服务实现类*/
@Service("jiaolianService")
@Transactional
public class JiaolianServiceImpl extends ServiceImpl<JiaolianDao, JiaolianEntity> implements JiaolianService {@Overridepublic PageUtils queryPage(Map<String,Object> params) {Page<JiaolianView> page =new Query<JiaolianView>(params).getPage();page.setRecords(baseMapper.selectListView(page,params));return new PageUtils(page);}}

5.4  教练Dao模块


package com.dao;import com.entity.JiaolianEntity;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;import org.apache.ibatis.annotations.Param;
import com.entity.view.JiaolianView;/*** 教练 Dao 接口** @author */
public interface JiaolianDao extends BaseMapper<JiaolianEntity> {List<JiaolianView> selectListView(Pagination page,@Param("params")Map<String,Object> params);}

6、论文目录结构

摘要... I

Abstract... II

1 绪论... 1
   1.1 项目简介... 1
   1.2 调查研究... 1
       1.2.1 研究背景及意义... 1
       1.2.2 国内外研究现状... 2
       1.2.3 研究主要内容... 2
   1.3 论文的章节安排... 3

2 系统相关技术介绍... 4
   2.1 Java语言... 4
   2.2 SpringBoot框架... 4
   2.3 Vue框架... 4
   2.4 MySQL数据库... 4

3 系统需求分析... 6
   3.1 可行性分析... 6
       3.1.1 技术可行性... 6
       3.1.2 经济可行性... 6
       3.1.3 操作可行性... 6
   3.2 系统功能需求... 6
       3.2.1 用户端功能需求... 6
       3.2.2 XX端功能需求... 6
       3.2.3 管理员端功能需求... 6
   3.3 系统性能需求... 6

4 系统总体设计... 7
   4.1 系统总体架构设计... 7
   4.2 系统的功能设计... 7
   4.3 数据库设计... 7
       4.3.1 概念设计E-R图... 7
       4.3.2 逻辑设计关系模式... 7
       4.3.3 数据库物理设计... 7

5 系统详细实现... 14
   5.1 系统实现环境... 14
   5.2 用户端... 14
       5.2.1 登录页面... 14
       5.2.2 注册页面... 14
       5.2.3 XXXX页面... 14
       5.2.4 XXXX页面... 14
       5.2.5 XXXX页面... 14
   5.3 XXXX端... 15
       5.3.1 XXXX页面... 15
       5.3.2 XXXX页面... 15
       5.3.3 XXXX页面... 15
       5.3.4 XXXX页面... 15
   5.4 管理端... 15
       5.4.1 用户管理页面... 15
       5.4.2 XXXX页面... 15
       5.4.3 XXXX页面... 16
       5.4.4 XXXX页面... 16

6 系统测试... 16
   6.1 测试目的... 16
   6.2 测试方法... 16
   6.3 测试用例... 16
       6.3.1 XXXX测试... 16
       6.3.2 XXXX测试... 16
   6.4 测试结果... 16

结论... 17

参考文献... 18

致谢... 19

更多源码:

计算机毕业设计选题1000套等你来!!!

7、源码获取

感谢大家的阅读,如有不懂的问题可以评论区交流或私聊!

喜欢文章可以点赞、收藏、关注、评论

下方联系方式获取源码

相关文章:

计算机毕业设计 健身房管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…...

uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件

uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件 日历期间、年期间、月期间及时分期间组件在不同的应用场景中发挥着重要的作用。这些组件通常用于表单、应用程序或网站中&#xff0c;以方便用户输入和选择特定的日期和时间范围。以下是这些组件的主要作用&a…...

GAMES101(10~11节,几何)

Geometry implicit隐式几何表示&#xff1a; 函数f(x,y,z)&#xff1a; 根据函数fn描述几何&#xff0c;遍历所有空间内 的点&#xff0c;如果带入xyz到函数f(x,y,z)结果0那就绘制这个点 如果xyz求值结果>0表示在几何外&#xff0c;0在表面,<0在几何内 构造几何csg(…...

家电制造的隐形守护者:矫平机确保材料完美无瑕

在家电制造业中&#xff0c;产品的美观和耐用性是消费者选择的关键因素。然而&#xff0c;在生产过程中&#xff0c;材料的翘曲问题往往成为影响产品质量的隐形杀手。幸运的是&#xff0c;矫平机的出现&#xff0c;为家电制造商提供了一个有效的解决方案&#xff0c;确保每一件…...

软件设计师考纲及笔记

1. 计算机系统知识&#xff08;分值占比&#xff1a;10%&#xff0c;重要程度&#xff1a;★★★★☆&#xff09; 1.1 计算机系统基础 计算机组成&#xff1a; 中央处理器&#xff08;CPU&#xff09;&#xff1a;计算机的核心部件&#xff0c;执行指令并处理数据。内存&…...

基于SpringCloud的微服务框架

1. 服务架构演变 1.1 单体架构 开发部署方便&#xff0c;维护扩展难。 1.2 垂直分割 将应用拆分成多个垂直部分&#xff0c;每一部分负责一组相关功能。 1.3 SOA&#xff08;Service-Oriented Architecture&#xff09; 面向服务的架构&#xff0c;引入了服务的概念。通过…...

C++速通LeetCode简单第19题-只出现一次的数字

方法一&#xff1a;暴力求解&#xff0c;排序后两个两个比较&#xff0c;两者不同时前者为答案&#xff1a; class Solution { public:int singleNumber(vector<int>& nums) {if(nums.size() 1) return nums[0];list<int> l;int ans 0;for(int i 0;i< n…...

AutoSar AP中Proxy Class中Methods描述的总结

☞ 返回总目录 5.3.6 Methods&#xff08;方法&#xff09; Proxy Class 与方法包装类 代理类与方法成员&#xff1a;对于远程服务的每种方法&#xff0c;Proxy Class 包含特定于该方法的包装类成员。例如示例中有 Calibrate、Adjust 和 LogCurrentState 三种方法对应的成员。…...

如何在本地计算机中打开远程服务器的Jupyter notebook

1. 在你的本地计算机上打开终端。 2. 使用SSH命令创建一个隧道&#xff1a; ssh -L 8888:localhost:8888 your_usernameyour_server_ip 这里&#xff0c;your_username 是你的服务器用户名&#xff0c;your_server_ip 是你的服务器IP地址。 其中&#xff0c;-L 8888:localhos…...

实习项目|苍穹外卖|day11

Apache ECharts 前端技术。 营业额统计 还是比较简单的。 用户统计 订单统计 以上所有需求。难点在于对时间类的处理&#xff1a; // 接收格式 GetMapping("/turnoverStatistics")ApiOperation("营业额统计")public Result<TurnoverReportVO>…...

easy_cloudantivirus

0x00前言 必须安装在virtualbox 攻击机&#xff1a;kali 靶机 easy_cloudantivirus 链接&#xff1a; https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453/ 0x01信息搜集 经过测试发现靶场IP为192.168.56.106 进一部对IP搜集信息 发现8080端口youhttp服务。…...

python中Web API 框架

Python 中有几个非常流行的 Web API 框架&#xff0c;它们让你可以轻松地构建和部署高效的 Web API。下面我将为你介绍几个最受欢迎的 Python Web API 框架&#xff0c;及其使用方法和特点。 1. FastAPI FastAPI 是一个现代、快速&#xff08;非常高性能&#xff09;的 Web 框…...

Linux(6)--CentOS目录

文章目录 1. 根目录2. cd目录切换命令3. CentOS目录介绍4. pwd命令介绍5. ls命令介绍5.1 ls5.2 ls -a5.3 ls -l 1. 根目录 Windows电脑的根目录是计算机(我的电脑)&#xff0c;然后C盘、D盘。 Linux系统的根目录是/&#xff0c;我们可以使用cd /进入根目录&#xff0c;然后使…...

标准C++(二)

一、名字空间 什么是名字空间 在C语言中定义的全局变量、函数、结构、联合、枚举、枚举值、宏都在全局作用域下&#xff0c;所以当项目比较庞大时&#xff0c;非常容易造成命名冲突&#xff08;以模块名作前缀、后缀&#xff09;&#xff0c;所以C中选择把全局作用域进行拆分…...

硬件工程师笔试面试——保险丝

目录 10、保险丝 10.1 基础 保险丝原理图 保险丝实物图 10.1.1 概念 10.1.2 保险丝的工作原理 10.1.3 保险丝的主要类型 10.1.4 保险丝的选择和使用注意事项 10.2 相关问题 10.2.1 保险丝的额定电流和额定电压是如何确定的? 10.2.2 保险丝的熔断速度对电路保护有何…...

本地安装Ollama+WebUI

本地安装OllamaWebUI B站教程地址&#xff1a;https://www.bilibili.com/video/BV1Kz421h7Jk/?spm_id_from333.337.search-card.all.click&vd_source42b07826977d09765ec11b9fa06715e5 一、下载Ollama https://ollama.com/download 支持mac、linux、windows 选择在ubu…...

请求响应-05.请求-日期参数JSON参数

一.日期参数 当浏览器发起的请求参数类型是日期参数时&#xff0c;我们通常使用LocalDateTime对象来接收&#xff0c;前面使用DateTimeFormat注解来完成日期的格式转换&#xff08;日期时间格式有多种&#xff0c;需要哪种就设置为哪种&#xff1a;如yyyy-MM-dd HH:mm:ss&…...

CSS学习路线

CSS学习路线大全及面试常见题目可以归纳为以下几个部分&#xff1a; CSS学习路线大全 CSS基础 引入CSS的方式&#xff1a;外部样式表、内部样式表、内联样式。CSS选择器&#xff1a;包括ID选择器、类选择器、标签选择器、后代选择器、子选择器、相邻兄弟选择器、兄弟选择器、…...

Linux memcg lru lock提升锁性能

目录 内核关于per memcg lru lock的重要提交&#xff1a; 计算虚拟地址转换基本机制 问题背景 swap换入流程 时奎亮的per memcg lru lock分享视频 内核关于per memcg lru lock的重要提交&#xff1a; f9b1038ebccad354256cf84749cbc321b5347497 6168d0da2b479ce25a4647d…...

【spring】引入 Jackson 依赖 对java对象序列号和反序列化

Jackson Jackson 是一个非常流行的 Java 序列化/反序列化库,用于将 JSON 转换为 Java 对象,或者将 Java 对象转换为 JSON。要在你的 pom.xml 文件中引入 Jackson 依赖,你可以按照下面的步骤进行操作。引入 Jackson 依赖 通常,Jackson 核心库包含以下三个部分: jackson-dat…...

算法面经手撕系列(3)--手撕LayerNormlization

LayerNormlization 在许多的语言模型如Bert里&#xff0c;虽然都是说做的LayerNormlization&#xff0c;但计算均值和方差只会沿着channel维度做&#xff0c;并不是沿着seq_L和channel维度一起做&#xff0c;参考:BERT用的LayerNorm可能不是你认为的那个Layer Norm  LayerNorm…...

出厂非澎湃OS手机解BL锁

脚本作者&#xff1a;酷安mlgmxyysd 脚本项目链接&#xff1a;https://github.com/MlgmXyysd/Xiaomi-HyperOS-BootLoader-Bypass/ 参考 B站作者&#xff1a;蓝空穹 https://www.bilibili.com/read/cv33210124/ 其他参考&#xff1a;云墨清风、水墨青竹、Magisk中文网 决定解BL…...

Go语言错误处理之道:优雅地应对程序中的问题

错误处理是任何编程语言中的关键部分&#xff0c;Go语言以其独特的错误处理机制而著称。对于初学者来说&#xff0c;理解Go语言中的错误处理对于编写健壮和可靠的程序至关重要。 为什么需要错误处理 在编程中&#xff0c;错误处理是必不可少的&#xff0c;因为程序可能会遇到…...

LIMS实验室管理系统的特点

LIMS实验室管理系统在实验室管理中发挥着不可或缺的作用。首要特点是其强大的自动化数据管理功能&#xff0c;该系统能够无缝集成实验室从样品接收到测试结果录入与存储的全过程&#xff0c;显著提升了数据的准确性和可靠性&#xff0c;减少了人为错误的可能性。 流程优化是LI…...

vue之 package.json和package-lock.json

一、package.json 定义了当前项目所需要引用的各个模块&#xff0c;可以手工修改配置&#xff0c;也可以删除后&#xff0c;使用npm init命令重新自动生成。 但是该文件只锁定大版本号&#xff0c;也就是版本号的第一位&#xff0c;所以你会发现两个文件中同一个包的版本号不一…...

android 老项目中用到的jar包不存在,通过离线的方法加载

1、之前的项目用的jar包&#xff0c;已经不在远程仓库中&#xff0c;只能手工去下载&#xff0c;并且安装。 // implementation com.github.nostra13:Android-Universal-Image-Loader // implementation com.github.lecho:hellocharts-android:v1.5.8 这…...

每天五分钟玩转深度学习框架PyTorch:梯度下降之学习率衰减

本文重点 我们前面学习了优化器optim,然后学习了为神经网络不同层设置不同的学习率,本节课程我们讲解学习率衰减的方法,也就是说如何在训练过程中动态的修改学习率,本文介绍两种方法。本文是学习第6步(优化器) 为什么要进行学习率衰减 对于一阶梯度进行优化的方法而言,…...

智能家居配上高颜值UI,瞬间感觉消费不起了呢

高颜值的UI设计可以给智能家居产品带来奢华和高端的感觉&#xff0c;为大家分享一波搞颜值界面。 高颜值的智能家居界面设计可以带来以下优势和好处&#xff1a; 用户体验提升&#xff1a; 高颜值的界面设计可以提升用户的视觉享受和满意度。精美的界面设计可以给用户带来愉…...

Winform登录实现及工具栏切换

1、登录实现 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace LoginApp {public par…...

Git bash使用

将本地文件推送到github上 先在所在文件夹进行初始化 git init绑定你的远程仓库 git remote add origin URL 随即 git add 指定文件 ——将工作区域中的文件添加到缓冲区 git commit -m【提交附带的信息】 git push origin master 推送到远程仓库 推送的时候可能会出现一些情…...