• springboot+vue运动场馆预约系统python+django体育馆预约系统


    💖💖作者:IT跃迁谷毕设展
    💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
    💛💛想说的话:感谢大家的关注与支持!
    💜💜
    Java实战项目集
    微信小程序实战项目集
    Python实战项目集
    安卓Android实战项目集

    💕💕文末获取源码

    运动场馆预约系统-系统简介

    现如今,预约这种行为方式更适合当下快节奏,高效率的生活,随着技术不断发展和专业人才不断增加,在生活中,却又普遍存在运动场所排队久,没有场地可供使用等情况。线上的运动场馆预约系统的实现,可以解决生活中普遍存在的公共设施利用率低的问题。除此之外,针对目前的疫情管控工作,也有一定的帮助。管理人员可以通过设置开放时间段和限制容纳人数,对预约人流量进行控制,可以一定程度上减少因人员过度聚集导致疫情传播。
    由此“IT跃迁谷毕设展”准备开发一个运动场馆预约系统。

    运动场馆预约系统-技术选型

    开发语言:Java+Python
    数据库:MySQL
    系统架构:B/S
    后端框架:SpringBoot(Spring+SpringMVC+Mybatis)+Django
    前端:Vue+HTML+CSS+JavaScript+jQuery

    运动场馆预约系统-图片展示

    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

    运动场馆预约系统-代码展示

    运动场馆预约系统-Java

    public void run(String... args) throws Exception {
            //更新csms_vdstate表的信息
            List<Csms_Venue> csms_venueLists = adminService.queryAllVenue();
            for(Csms_Venue csms_venue:csms_venueLists){
                //删除原有记录
                adminService.deleteVdstate(csms_venue.getVenue_Id());
                //设置预定日期表
                Date date = new Date();
                for(int i=0;i<3;i++){
                    //利用日历计算时间
                    Calendar calendar = Calendar.getInstance();
                    calendar.setTime(date);
                    //加相应的天数
                    if(i!=0){
                        calendar.add(Calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动
                    }
                    date = calendar.getTime();
                    Csms_Vdstate csms_vdstate = new Csms_Vdstate();
                    csms_vdstate.setVdstate_Id(csms_venue.getVenue_Id());
                    csms_vdstate.setVdstate_Date(date);
                    StringBuffer stringBuffer = new StringBuffer("11111111111111111111111");
                    //将未开馆前的时间设置为0
                    for(int y = 0;y<csms_venue.getVenue_Open(); y++){
                        if(stringBuffer.charAt(y)=='1'){
                            stringBuffer.replace(y,y+1,"0");
                        }
                    }
                    //将闭馆后的时间设置为0
                    for(int y = stringBuffer.length()-1;y>=csms_venue.getVenue_Close(); y--){
                        if(stringBuffer.charAt(y)=='1'){
                            stringBuffer.replace(y,y+1,"0");
                        }
                    }
                    csms_vdstate.setVdstate_St(stringBuffer.toString());
                    adminService.addVdstate(csms_vdstate);
                }
            }
            ScheduledTasksController scheduledTasksController = (ScheduledTasksController) SpringContextUtil.getBean("scheduledTasksController");
            scheduledTasksController.updateData();
        }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    运动场馆预约系统-Python

        def choose_block(self, nodes):
            try:
                free_cnt = 0
                for i in self.left_block:
                    logging.info("%d点 %d号 状态 %s" % (self.when_to_start,
                                 i // 5 + 1, nodes[i].get_attribute('class')))
                    if 'free' in nodes[i].get_attribute('class'):
                        free_cnt = free_cnt + 1
                        nodes[i].click()
                        logging.info("预定了 %d点 开始 %d 号" %
                                     (self.when_to_start, i // 5 + 1))
                        self.during_time = self.during_time - 1
                        if self.during_time > 0 and 'free' in nodes[i + 1].get_attribute('class'):
                            nodes[i + 1].click()
                            logging.info("预定了 %d点 开始 %d 号" %
                                         (self.when_to_start + 1, (i + 1) // 5 + 1))
                            self.during_time = self.during_time - 1
                        break
                if self.during_time > 0:
                    for i in self.left_block:
                        logging.info("%d点 %d号 状态 %s" % (
                            self.when_to_start + 1, (i + 1) // 5 + 1, nodes[i + 1].get_attribute('class')))
                        if 'free' in nodes[i + 1].get_attribute('class'):
                            free_cnt = free_cnt + 1
                            nodes[i + 1].click()
                            logging.info("预定了 %d点 开始 %d 号" %
                                         (self.when_to_start + 1, (i + 1) // 5 + 1))
                            self.during_time = self.during_time - 1
                            break
                if free_cnt == 0:
                    raise ValueError("没有空场地了")
            except IndexError as e:
                raise IndexError('选择场地时数组越界')
            except Exception as e:
                raise
    
        def move_verify(self):
            t = datetime.now()
            bg_ = base64.b64decode(self.find_by_classname(
                'verify-img-panel').find_element_by_tag_name('img').get_attribute('src')[22:])
            tp_ = base64.b64decode(self.find_by_classname(
                'verify-sub-block').find_element_by_tag_name('img').get_attribute('src')[22:])
            bg = cv2.imdecode(np.frombuffer(bg_, dtype=np.uint8), flags=1)
            tp = cv2.imdecode(np.frombuffer(tp_, dtype=np.uint8), flags=1)
            distance = identify_gap(bg, tp, os.path.join(
                filePath, 'old_log', '%s-%d-%d.png' % (threading.current_thread().getName(), t.month, t.day)))
            tracks = get_track(distance)
            slider = self.find_by_classname('verify-move-block')
            self.move_to_gap(slider, sum(tracks) + 3)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    运动场馆预约系统-结语

    💕💕
    Java实战项目集
    微信小程序实战项目集
    Python实战项目集
    安卓Android实战项目集
    💟💟如果大家有任何疑虑,欢迎在下方位置详细交流。

  • 相关阅读:
    js 生成随机字符串 -- chatGPT
    互联网数据管理平台
    代码随想录训练营day50, 买卖股票的最佳时间III, IV
    第二章:最新版零基础学习 PYTHON 教程(第五节 - Python 输入/输出–如何在Python中打印而不换行?)
    【入门篇】1.7 Redis 之 codis 入门介绍
    图像处理初学者导引---OpenCV 方法演示项目
    【ARMv9 DSU-120 系列 6.1 -- PPU power and reset control】
    实验二十一、积分运算电路的输出波形分析
    RunApi在发送请求的时候添加Token
    C++模拟实现位图和布隆过滤器
  • 原文地址:https://blog.csdn.net/weixin_53783806/article/details/127679333