专利名称:高效组织足球比赛的系统方法
技术领域:
本发明涉及一种应用于群众性足球比赛的经营活动的高效组织足球比赛的系统方法。
背景技术:
电子商务是指利用电子网络进行的商务活动。企业要实现电子商务,首先要使用Web开发技术和数据库技术编写自己的电子商务网站,然后与支持网上交易的商业银行签订协议,实现与此商业银行的主机的接口协议,使企业能接受使用网上支付方式支付的货款。这是实现电子商务最基本的技术要求。招商银行、广发银行支持网上交易,并且在它们的网站上提供了许多电子商务网站的链接,这些电子商务网站所交易的商品主要还是以传统的实物商品为主。群众性的足球活动目前大都是自发的,既使是较大的企业的企业球队,其足球比赛活动基本也都是自发组织的,没有利用电子商务从事群众性足球运动经营活动的企业。这些群众性足球比赛活动具有以下缺点(1)队员组成的范围较狭窄。一般只有与球队队长较熟悉的人才有可能加入该球队。(2)球队队员水平参差不齐,由于队员人数较少,不可避免的队员的运动水平会有较大的差异。(3)比赛较难组织,基本只能靠队长或队员联系其它球队进行比赛,即使比赛组织成功,如果两个队水平相差较多,则这两个队一般不会再打第二次比赛。
发明内容
本发明的目的是提供一种高效组织足球比赛的系统方法,该方法使用电子商务解决了用传统的通讯方式组织球赛效率太低和队员范围太小的问题,通过集中信息发布改善组织效率。
本发明的目的是这样实现的这种高效组织足球比赛的系统方法,所述的系统包括一个比赛登记服务程序、一个运行比赛登记服务程序的服务器设备、通信网络、多个通过通信网络与服务器设备相连的访问装置,所述的方法包括下列步骤(a)比赛组织者使用访问装置通过通信网络登录到比赛登记服务程序,发布最近将举行的比赛的比赛记录,(b)参赛队员使用访问装置通过通信网络在比赛登记服务程序上注册,输入自己真实的个人信息作为会员信息,(c)参赛队员使用访问装置通过通信网络在比赛登记服务程序上登录,并选择适合自己的比赛记录报名,参赛队员在提交报名信息、支付报名费后即完成报名手续,(d)比赛结束后比赛登记服务程序根据比赛结果和比赛等级计算会员积分,(e)根据实际情况,每隔一定时期比赛登记服务程序把每个级别排名靠前的队员的级别提高一级,将每个级别排名靠后的队员的级别降低一级。
(f)当消费者第一次完成上述(b)步骤后,再次报名参赛时不必再次完成上述(b)步骤。
这种高效组织足球比赛的系统方法,所述的比赛登记服务程序是一个使用Wed技术和数据库技术开发并正常运行的网站程序,包括用来建立必须的原始数据和用来支持组织者的日常管理事务的管理服务程序、用来支持工作人员日常工作的工作人员服务程序、以及用来支持队员的参赛报名事务的用户服务程序。
这种高效组织足球比赛的系统方法,所述的通信网络是因特网。
这种高效组织足球比赛的系统方法,所述的访问装置通过符合超文本传输协议HTTP的请求来访问比赛登记服务程序。
这种高效组织足球比赛的系统方法,所述的会员支付报名费的形式是网上支付,会员使用比赛登记服务程序提供的网上支付方式,利用各种银行卡进行网上支付。
这种高效组织足球比赛的系统方法,比赛登记服务程序在会员报名时将执行以下规则会员不能报名参加已报名截止的比赛;会员不能报名参加高于自己级别的比赛;会员不能报名参加报名人数已满的比赛。
这种高效组织足球比赛的系统方法,某个级别的规定的会员人数根据实际情况可作调整。
这种高效组织足球比赛的系统方法,如果某个级别的会员人数少于预先规定的人数,则此级别的会员不进行升降级。
本发明为大规模群众性足球比赛的组织提供了高效组织足球比赛的系统方法,通过集中信息发布改善组织效率,可有效减少组织大规模群众性足球比赛的组织成本,提高了组织效率,使企业能够容易地经营这种组织活动。
图1是使用本发明举行的群众性足球比赛的组织结构图。
图2是所述足球比赛的组织系统使用到的设备的系统结构图。
图3是用来支持队员的参赛报名事务的用户服务程序的流程图。
图4是用来支持工作人员日常工作的工作人员服务程序的流程图。
图5是用来建立必须的原始数据和用来支持组织者的日常管理事务的管理服务程序的流程图。
具体实施例方式
图1中,队员组成球队,球队间组织比赛的过程完全由本发明的系统方法自动完成,工作人员只需负责比赛的正常运行而不必与队员联系,只有发生意外情况,如比赛被取消等,才需要工作人员与参赛队员联系。
图2中,一个用户使用访问装置通过通信网络访问比赛登记服务程序服务器完成报名,再通过通信网络和银行主机完成付费。
图3中,队员报名前,先检查队员是否已经在用户服务程序上注册过。如没有注册,则需先进行注册(队员输入自己的真实信息作为会员信息)。已注册的队员可直接登录用户服务程序。然后队员选择自己喜欢的参赛时间和比赛地点进行报名。为保证比赛的正常进行和比赛的水平(使运动水平较低的队员不能参加高级别的比赛),系统在队员报名时将检测队员的用户信息和比赛报名状态,只有当比赛报名人数未满,且队员的用户级别高于比赛级别时才允许队员交费报名。队员付费后,报名手续即完成,队员只需根据所报名的比赛的要求(时间要求、地点要求、队服要求等)参加比赛即可。
以下是用户报名比赛时检查报名状态的程序段,实现用户报名的方法建立一条和用户自己的登录名、姓名、用户自己所选比赛相关的报名记录<pre listing-type="program-listing">procedureTWDMHw.DataSetAdapterNewRowAction3BeforeExecute(SenderTObject;ParamsTStrings;var HandledBoolean);constvSql=′select count(*)from TeamMate where′+′floor(teamID/100)=%s and loginName=″%s″′;var<dp n="d4"/> iCountinteger; b1,b2boolean;beginb1=(StrToInt(Params.Values[′_l-DSALiSunMatch-GradeID′])>StrToInt(Session.Values[′GradeID′]));b2=int(now()-TimeZoneI-1)+0.5>StrToDateTime(Params.Values[′_l-DSALiSunMatch-MatchTime′]);if b1 or b2 then begin Handled=true; DispatchPageName(′mmNoCompetence′,Response,[]);//将网页重导到提示页面,无法报名报名时间已过,或您的级别低于本场比赛的级别exit;end;if trim(Session.Values[′LoginName′])<>″then begin iCount=TestRecordCount(Format(vSql,[Params.Values[′_l-DSALiSunMatch-MatchID′],Session.Values[′LoginName′]])); if iCount>=1 then with ADOCUpdate do begin Parameters
.Value=Datetime Tostr(Now-TimeZoneI); Parameters[1].Value=StrToInt(Params.Values[′_l-DSALiSunMatch-MatchID′]); Parameters[2].Value=Session.Values[′LoginName′]; Execute;<dp n="d5"/>Handled=true;DispatchPageName(′mmAlreadySigned′,Response,[]);//将网页重导到提示页面您已经报过名了!! end;end;Session.Values[′MatchGrade′]=Params.Values[′_l-DSALiSunMatch-GradeID′];end;</pre>在付费时,要实现以下规则(1)不允许过多的人报名缴费。(2)根据队员报名的场上位置决定其报名费用。(3)报名费用为零的比赛(这种比赛是宣传、广告时必不可少的)将直接完成报名手续而不必再导向银行的付费页面。(4)当队员报名参赛但比赛由于天气等原因被取消,队员再次报名新的比赛时,不会重复收费。以下是执行付费处理的程序段<pre listing-type="program-listing">procedure TWDMHw.DataSetAdapterBrowseRowAction3BeforeExecute( SenderTObject;ParamsTStrings;var HandledBoolean);var iinteger; curcurrency; tsarraystr, function RedirectMorePayUser(sTeamID,sSignTimestring)boolean;const vC=′select count(*)from TeamMate where teamID=%s and′+′(payed=1 or(signuptime between(now()+INTERVAL-30-%d minute)and″%s″))′;//选择出排在自己前报名的人数<dp n="d6"/> begin//检查排在自己前而报名的人数。一场比赛中,一个队最多20人参加。都要付费。ifTestRecordCount(format(vC,[sTeamID,TimeZoneM,sSignTime]))>TeammateCount then//可报名TeammateCount人。第TeammateCount+1人被拒绝。beginRedirectMorePayUser=true;DispatchPageName(′mmMorePayingUser′,Response,[]);//将网页重导到提示页面目前付费的人过多,请稍后再试!!endelse RedirectMorePayUser=False; end; function RedirectMoreTeammate(sTeamIDstring)boolean; const qKeeper=′select count(*)from TeamMate where TeamID=%s and position 1<>″门将″′+′and Payed=1 and cancelMatch=″正常″′; beginif TestRecordCount(format(qKeeper,[sTeamID]))>=TeammateCount-1 then beginRedirectMore Teammate=true;<dp n="d7"/>DispatchPageName(′mmMoreGoalKeeper′,Response,[]);exit;//将网页重导到提示页面报名人数已满!! end;RedirectMoreTeammate=false; end; function RedirectMoreKeeper(sTeamIDstring)boolean; constqKeeper=′select count(*)from TeamMate where TeamID=%s and position1=″门将″′+′and Payed=1 and cancelMatch=″正常″′; beginif TestRecordCount(format(qKeeper,[sTeamID]))>=1 then beginRedirectMoreKeeper=true;DispatchPageName(′mmMoreGoalKeeper′,Response,[]);exit;//将网页重导到提示页面报名人数已满!! end;RedirectMoreKeeper=false; end;//用户有以前已付费但被取消的比赛记录,<dp n="d8"/>//此过程利用以前的付费记录使用户正常付费。不多付也不少付。//不允许用户自己取消比赛,必须通过工作人员删除。//且用户必须自己来工作地点退钱。function CancelMatchUser(sTeamID,sLoginNamestring)boolean;const sSql=′select*from TeamMate where loginName=″%s″′+′and CancelMatch=″取消″and payed=1′;begin ADOQEveryOne.Close; ADOQEveryOne.SQL.Clear, ADOQEveryOne.SQL.Add(format(sSql,[sLoginName])); ADOQEveryOne.Open; if ADOQEveryOne.RecordCount=0 then beginCancelMatchUser=False;exit; end else beginCancelMatchUser=True;UpdateTeammate(′Payed′,′0′,IntToStr(ADOQEveryOne[′TeamID′].AsInteger),ADOQEveryOne[′LoginName′].asString);UpdateTeammate(′Payed′,′1′,sTeamID,sLoginName);exit; end;end;<dp n="d9"/>beginfor i=0 to params.Count-1 do Ts[i]=Params.Strings[i];ifRedirectMorePayUser(Params.Values[′_lTeamID′],Params.Values[′_lSignupTime′])then exit;if CancelMatchUser(Params.Values[′_lTeamID′],Params.Values[′_lLoginName′])then exit;//测试交费人数if Params.Values[′_lPosition1′]=′门将′then begin if RedirectMoreKeeper(Params.Values[′_lTeamID′])then exit else if Params.Values[′_l-DSALiSunMatch-KeeperBill′]=′0′ then beginUpdateTeammate(′Payed′,′1′,Params.Values[′_lTeamID′],Params.Values[′_lloginName′]);exit; end;end else begin if RedirectMoreTeammate(Params.Values[′_lTeamID′]) then exit;end;if Params.Values[′_l-DSALiSunMatch-SplitBill′]=′0′then<dp n="d10"/>beginUpdateTeammate(′Payed′,′1 ′,Params.Values[′_lTeamID′],Params.Values[′_lloginName′]);exit;end;//将网页定向到付费页面。Session.Values[′BillNo′]=Params.Values[′_lBillNO′];ifParams.Values[′_lPositionl′]=′门将′thenSession.Values[′Amount′]=Params.Values[′_l-DSALiSunMatch-KeeperBill′]elseSession.Values[′Amount′]=Params.Values[′_l-DSALiSunMatch-SplitBill′];Session.Values[′Date′]=FormatDateTime(′yyyymmdd′,StrToDateTime(Params.Values[′_lSignupTime′]));DispatchPageName(′Payment′,Response,[]);end;</pre>图4中,工作人员包括裁判员和比赛负责人,只有被授权的工作人员才能登录此系统。工作人员增加一条和自己管理的比赛相关联的记录(此记录包含工作人员的姓名),表示该场比赛由自己负责,工作人员发布的此记录可被参加该场比赛的所有队员看到。在比赛开始前,工作人员打印出队员的参赛名单,然后根据此名单,完成比赛的管理和执法工作。比赛结束后,工作人员再次登录工作人员服务程序,提交该场比赛的比赛情况报告单。系统在裁判员或比赛负责人提交比赛结果时根据比赛结果和比赛级别计算出每一个队员所增加的积分的程序段,其计算规则可根据实际情况作调整。
图5中,只有管理员能登录此系统。登录后,管理员可维护系统信息,如维护比赛场地信息、发布新比赛信息,管理用户权限等,并定期执行根据队员积分对队员进行升级和降级的处理过程。
为实施本发明,可以使用各种开发语言进行比赛登记服务程序的开发,并根据所采取技术的不同选择不同的主机服务。本发明目前使用了Borland公司的Delphi 6.0的Websnap技术进行上述比赛登记服务程序的开发,开发出的可执行程序是ISAPI DLLs。数据库使用了MySQL4.0。ISAPIDLLs使用ADO和MyODBC3.51与MySQL连接。
应用ISAPI DLLs和MySQL的Web服务只有国外的虚拟主机才支持,为实施本发明,首先需要使用中国银行的国际卡以网上支付的方式购买国外的虚拟主机服务和域名服务,发布比赛登记服务程序。其次,为了能够接受队员网上支付的款项,需要在支持网上支付的银行开一个对公帐号,与银行签订协议后根据银行提供的接口技术文档实现用户服务程序与银行主机的接口。最后,需达到1000人以上的注册用户规模方能较好的应用本发明。在人口较多、足球运动开展有一定基础的城市中,通过企业一定的广告宣传和推广,不难达到上述要求。
按有2000个注册用户,平均每人每月参加一次足球比赛,每场足球比赛有40人参加计算,每周可举行12场足球比赛。通过应用本发明,这些比赛只需少数几个工作人员即可组织完成。
应当指出,对于本领域的普通技术人员业说,在不脱离本发明原理的前提下,还可以对本发明作出若干种改进或变型,这些改进或变型都应视为属于本发明的保护范围。
权利要求
1.一种高效组织足球比赛的系统方法,所述的系统包括一个比赛登记服务程序、一个运行比赛登记服务程序的服务器设备、通信网络、多个通过通信网络与服务器设备相连的访问装置,其特征在于所述的方法包括下列步骤(a)比赛组织者使用访问装置通过通信网络登录到比赛登记服务程序,发布最近将举行的比赛的比赛记录,(b)参赛队员使用访问装置通过通信网络在比赛登记服务程序上注册,输入自己真实的个人信息作为会员信息,(c)参赛队员使用访问装置通过通信网络在比赛登记服务程序上登录,并选择适合自己的比赛记录报名,参赛队员在提交报名信息、支付报名费后即完成报名手续,(d)比赛结束后比赛登记服务程序根据比赛结果和比赛等级计算会员积分,(e)根据实际情况,每隔一定时期比赛登记服务程序把每个级别排名靠前的队员的级别提高一级,将每个级别排名靠后的队员的级别降低一级。(f)当消费者第一次完成上述(b)步骤后,再次报名参赛时不必再次完成上述(b)步骤。
2.如权利要求1所述的高效组织足球比赛的系统方法,其特征在于所述的比赛登记服务程序是一个使用Web技术和数据库技术开发并正常运行的网站程序,包括用来建立必须的原始数据和用来支持组织者的日常管理事务的管理服务程序、用来支持工作人员日常工作的工作人员服务程序、以及用来支持队员的参赛报名事务的用户服务程序。
3.如权利要求1所述的高效组织足球比赛的系统方法,其特征在于所述的通信网络是因特网。
4.如权利要求1所述的高效组织足球比赛的系统方法,其特征在于所述的访问装置通过符合超文本传输协议HTTP的请求来访问比赛登记服务程序。
5.如权利要求1所述的高效组织足球比赛的系统方法,其特征在于所述的会员支付报名费的形式是网上支付,会员使用比赛登记服务程序提供的网上支付方式,利用各种银行卡进行网上支付。
6.如权利要求1或2所述的高效组织足球比赛的系统方法,其特征在于比赛登记服务程序在会员报名时将执行以下规则会员不能报名参加已报名截止的比赛;会员不能报名参加高于自己级别的比赛;会员不能报名参加报名人数已满的比赛。
7.如权利要求1或2所述的高效组织足球比赛的系统方法,其特征在于某个级别的规定的会员人数根据实际情况可作调整。
8.如权利要求7所述的高效组织足球比赛的系统方法,其特征在于如果某个级别的会员人数少于预先规定的人数,则此级别的会员不进行升降级。
全文摘要
本发明涉及一种高效组织足球比赛的系统方法,所述的系统包括比赛登记服务程序、运行比赛登记服务程序的服务器设备、通信网络、多个通过通信网络与服务器设备相连的访问装置。比赛服务登记程序包括用来建立必须的原始数据和用来支持组织者的日常管理事务的管理服务程序、用来支持工作人员日常工作的工作人员服务程序、以及一个用来支持队员的参赛报名事务的用户服务程序。该方法使用电子商务,减少了组织大规模群众性足球比赛的组织成本,提高了效率,使企业能够容易地经营这种组织活动。
文档编号G06F9/46GK1567189SQ0314730
公开日2005年1月19日 申请日期2003年7月5日 优先权日2003年7月5日
发明者李成浩 申请人:李成浩