基于JAVA+Servlet+JSP+MYSQL的汽车维修保养管理系统

该系统分为管理员、客户、保养人员和维修人员四种角色。管理员负责用户、配件、员工信息及财务管理;维修人员处理销售和预约;客户可管理个人资料、预约服务并进行评价。系统提供全面的角色定制化功能,确保高效运营。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目功能:
系统分为管理员、客户、保养人员、维修人员三种角色,角色功能如下
1.管理员端功能:系统用户管理、配件辅料管理、员工信息管理、采购入库管理、预约付款管理、销售收款管理、员工操作管理
2.维修人员端功能:个人资料管理、销售出库管理、客户预约管理
3.客户端功能:个人资料管理、预约登记、预约记录查询、服务评价管理
4.维修人员端功能:个人资料管理、销售出库管理、客户预约安排、预约安排记录查询

页面效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'My_vehicle') DROP DATABASE [My_vehicle] GO CREATE DATABASE [My_vehicle] ON (NAME = N'My_vehicle_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\My_vehicle_Data.MDF' , SIZE = 1, FILEGROWTH = 10%) LOG ON (NAME = N'My_vehicle_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\My_vehicle_Log.LDF' , SIZE = 1, FILEGROWTH = 10%) COLLATE Chinese_PRC_CI_AS GO exec sp_dboption N'My_vehicle', N'autoclose', N'true' GO exec sp_dboption N'My_vehicle', N'bulkcopy', N'false' GO exec sp_dboption N'My_vehicle', N'trunc. log', N'true' GO exec sp_dboption N'My_vehicle', N'torn page detection', N'true' GO exec sp_dboption N'My_vehicle', N'read only', N'false' GO exec sp_dboption N'My_vehicle', N'dbo use', N'false' GO exec sp_dboption N'My_vehicle', N'single', N'false' GO exec sp_dboption N'My_vehicle', N'autoshrink', N'true' GO exec sp_dboption N'My_vehicle', N'ANSI null default', N'false' GO exec sp_dboption N'My_vehicle', N'recursive triggers', N'false' GO exec sp_dboption N'My_vehicle', N'ANSI nulls', N'false' GO exec sp_dboption N'My_vehicle', N'concat null yields null', N'false' GO exec sp_dboption N'My_vehicle', N'cursor close on commit', N'false' GO exec sp_dboption N'My_vehicle', N'default to local cursor', N'false' GO exec sp_dboption N'My_vehicle', N'quoted identifier', N'false' GO exec sp_dboption N'My_vehicle', N'ANSI warnings', N'false' GO exec sp_dboption N'My_vehicle', N'auto create statistics', N'true' GO exec sp_dboption N'My_vehicle', N'auto update statistics', N'true' GO use [My_vehicle] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ck_setup]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[ck_setup] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[gf_setup]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[gf_setup] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[inh_setup]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[inh_setup] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[kh_setup]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[kh_setup] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[kucun_setup]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[kucun_setup] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[outh_setup]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[outh_setup] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[wz_setup]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[wz_setup] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ywy_setup]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[ywy_setup] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[dm_ck]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[dm_ck] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[dm_gf]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[dm_gf] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[dm_kh]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[dm_kh] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[dm_wz]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[dm_wz] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[dm_wzlb]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[dm_wzlb] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[dm_ywy]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[dm_ywy] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[dm_ywylb]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[dm_ywylb] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[inh]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[inh] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[kucun]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[kucun] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[outh]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[outh] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[zc]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[zc] GO CREATE TABLE [dbo].[dm_ck] ( [dm] [char] (6) COLLATE Chinese_PRC_CI_AS NOT NULL , [mc] [char] (40) COLLATE Chinese_PRC_CI_AS NULL , [bz] [char] (255) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[dm_gf] ( [dm] [char] (8) COLLATE Chinese_PRC_CI_AS NOT NULL , [mc] [char] (40) COLLATE Chinese_PRC_CI_AS NULL , [addr] [char] (40) COLLATE Chinese_PRC_CI_AS NULL , [yzbm] [char] (6) COLLATE Chinese_PRC_CI_AS NULL , [tel] [char] (40) COLLATE Chinese_PRC_CI_AS NULL , [itladd] [char] (50) COLLATE Chinese_PRC_CI_AS NULL , [email] [char] (50) COLLATE Chinese_PRC_CI_AS NULL , [sui_no] [char] (20) COLLATE Chinese_PRC_CI_AS NULL , [bank_no] [char] (20) COLLATE Chinese_PRC_CI_AS NULL , [bank] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [ywman] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [bz] [char] (255) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[dm_kh] ( [dm] [char] (8) COLLATE Chinese_PRC_CI_AS NOT NULL , [mc] [char] (40) COLLATE Chinese_PRC_CI_AS NULL , [lbdm] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [addr] [char] (40) COLLATE Chinese_PRC_CI_AS NULL , [yzbm] [char] (6) COLLATE Chinese_PRC_CI_AS NULL , [tel] [char] (40) COLLATE Chinese_PRC_CI_AS NULL , [itladd] [char] (50) COLLATE Chinese_PRC_CI_AS NULL , [ywman] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [email] [char] (50) COLLATE Chinese_PRC_CI_AS NULL , [sui_no] [char] (20) COLLATE Chinese_PRC_CI_AS NULL , [bank_no] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [bank] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [card_no] [char] (13) COLLATE Chinese_PRC_CI_AS NULL , [mb_reb] [numeric](12, 2) NULL , [bz] [char] (255) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[dm_wz] ( [dm] [char] (30) COLLATE Chinese_PRC_CI_AS NOT NULL , [mc] [char] (40) COLLATE Chinese_PRC_CI_AS NULL , [jldw] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [lbdm] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [rkj] [numeric](12, 2) NULL , [fxj] [numeric](12, 2) NULL , [lsj] [numeric](12, 2) NULL , [cj] [char] (20) COLLATE Chinese_PRC_CI_AS NULL , [yxrq] [datetime] NULL , [bz] [char] (255) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[dm_wzlb] ( [lbcode] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [lb] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [lbcode1] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [lb1] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [bz] [char] (255) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[dm_ywy] ( [dm] [char] (6) COLLATE Chinese_PRC_CI_AS NOT NULL , [mc] [char] (20) COLLATE Chinese_PRC_CI_AS NULL , [lb] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [tel] [char] (40) COLLATE Chinese_PRC_CI_AS NULL , [addr] [char] (40) COLLATE Chinese_PRC_CI_AS NULL , [sfz] [char] (18) COLLATE Chinese_PRC_CI_AS NULL , [lbcode] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [bz] [char] (255) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[dm_ywylb] ( [lbcode] [char] (30) COLLATE Chinese_PRC_CI_AS NOT NULL , [lb] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [bz] [char] (255) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[inh] ( [in_date] [datetime] NULL , [ywman] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [inh_no] [char] (14) COLLATE Chinese_PRC_CI_AS NOT NULL , [gfdm] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [ckdm] [char] (6) COLLATE Chinese_PRC_CI_AS NULL , [wzdm] [char] (30) COLLATE Chinese_PRC_CI_AS NOT NULL , [qihao] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [sl] [numeric](10, 0) NOT NULL , [in_danj] [numeric](12, 2) NULL , [i_zk] [numeric](5, 0) NULL , [i_zke] [numeric](12, 2) NULL , [jsfk] [char] (2) COLLATE Chinese_PRC_CI_AS NULL , [jz] [char] (2) COLLATE Chinese_PRC_CI_AS NULL , [yf] [numeric](5, 0) NULL , [bz] [char] (100) COLLATE Chinese_PRC_CI_AS NULL , [bz1] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[kucun] ( [update_date] [datetime] NULL , [kucun_no] [char] (14) COLLATE Chinese_PRC_CI_AS NOT NULL , [ckdm] [char] (6) COLLATE Chinese_PRC_CI_AS NULL , [wzdm] [char] (30) COLLATE Chinese_PRC_CI_AS NOT NULL , [qihao] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [sl] [numeric](10, 0) NOT NULL , [total_je] [numeric](12, 2) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[outh] ( [out_date] [datetime] NULL , [ywman] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [outh_no] [char] (14) COLLATE Chinese_PRC_CI_AS NOT NULL , [khdm] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [ckdm] [char] (6) COLLATE Chinese_PRC_CI_AS NULL , [wzdm] [char] (30) COLLATE Chinese_PRC_CI_AS NOT NULL , [qihao] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [sl] [numeric](10, 0) NOT NULL , [out_danj] [numeric](12, 2) NULL , [o_zk] [numeric](5, 0) NULL , [o_zke] [numeric](12, 2) NULL , [jsfk] [char] (2) COLLATE Chinese_PRC_CI_AS NULL , [jz] [char] (2) COLLATE Chinese_PRC_CI_AS NULL , [yf] [numeric](5, 0) NULL , [bz] [char] (100) COLLATE Chinese_PRC_CI_AS NULL , [bz1] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[zc] ( [zc_no] [char] (8) COLLATE Chinese_PRC_CI_AS NOT NULL , [zc_date] [datetime] NULL , [ywman] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [o_ckdm] [char] (6) COLLATE Chinese_PRC_CI_AS NULL , [i_ckdm] [char] (6) COLLATE Chinese_PRC_CI_AS NULL , [wzdm] [char] (30) COLLATE Chinese_PRC_CI_AS NOT NULL , [qihao] [char] (8) COLLATE Chinese_PRC_CI_AS NULL , [sl] [numeric](10, 0) NOT NULL , [total_je] [numeric](12, 2) NULL , [bz] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE ck_setup ( @dm char (6), @mc char (40), @bz char (255) ) AS insert dm_ck ( dm, mc, bz ) values ( @dm, @mc, @bz ) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE gf_setup ( @dm char (8), @mc char (40), @addr char (40), @yzbm char (6), @tel char (40), @itladd char (50), @email char (50), @sui_no char (20), @bank_no char (20), @bank char (30), @ywman char(8), @bz char (255) ) AS insert dm_gf ( dm,mc,addr,yzbm,tel,itladd,email,sui_no,bank_no,bank,ywman,bz ) values ( @dm, @mc, @addr, @yzbm, @tel, @itladd, @email, @sui_no, @bank_no, @bank, @ywman, @bz ) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE inh_setup ( @in_date datetime, @ywman char (20), @inh_no char (8), @gfdm char (8), @ckdm char (6), @wzdm char (30), @qihao char (8), @sl numeric (10), @in_danj numeric(12, 2), @i_zk numeric(5, 0), @i_zke numeric(12, 2), @jsfk char (2), @jz char (2) , @yf numeric (5,0), @bz char (100) ) AS insert inh ( in_date, ywman, inh_no, gfdm, ckdm, wzdm, qihao, sl, in_danj, i_zk, i_zke, jsfk, jz, yf, bz ) values ( @in_date, @ywman, @inh_no, @gfdm, @ckdm, @wzdm, @qihao, @sl, @in_danj, @i_zk, @i_zke, @jsfk, @jz, @yf, @bz ) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE kh_setup ( @dm char (8), @mc char (40), @lbdm char(30), @addr char (40), @yzbm char (6), @tel char (40), @itladd char (50), @ywman char (8), @email char (50), @sui_no char (20), @bank_no char (20), @bank char (30), @card_no char (13), @mb_reb numeric (12,2), @bz char (255) ) AS insert dm_kh ( dm,mc,lbdm,addr,yzbm,tel,itladd,ywman,email,sui_no,bank_no,bank,card_no,mb_reb,bz ) values ( @dm, @mc, @lbdm, @addr, @yzbm, @tel, @itladd, @ywman, @email, @sui_no, @bank_no, @bank, @card_no, @mb_reb, @bz ) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE kucun_setup ( @update_date datetime, @kucun_no char (14), @ckdm char (6), @wzdm char (30), @qihao char (8), @sl numeric (10), @total_je numeric(12, 2) ) AS insert kucun ( update_date, kucun_no, ckdm, wzdm, qihao, sl, total_je ) values ( @update_date, @kucun_no, @ckdm, @wzdm, @qihao, @sl, @total_je ) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE outh_setup ( @out_date datetime, @ywman char (20), @outh_no char (8), @khdm char (8), @ckdm char (6), @wzdm char (30), @qihao char (8), @sl numeric (10), @out_danj numeric(12, 2), @o_zk numeric(5, 0), @o_zke numeric(12, 2), @jsfk char (2), @jz char (2) , @yf numeric (5,0), @bz char (100) ) AS insert outh ( out_date, ywman, outh_no, khdm, ckdm, wzdm, qihao, sl, out_danj, o_zk, o_zke, jsfk, jz, yf, bz ) values ( @out_date, @ywman, @outh_no, @khdm, @ckdm, @wzdm, @qihao, @sl, @out_danj, @o_zk, @o_zke, @jsfk, @jz, @yf, @bz ) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE wz_setup ( @dm char(30), @mc char(40), @jldw char(8), @lbdm char(30), @rkj numeric(12,2), @fxj numeric(12,2), @lsj numeric(12,2), @cj char(20), @yxrq datetime, @bz char(255) ) AS insert dm_wz ( dm,mc,jldw,lbdm,rkj,fxj,lsj,cj,yxrq,bz ) values ( @dm,@mc,@jldw,@lbdm,@rkj,@fxj,@lsj,@cj,@yxrq,@bz ) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE ywy_setup ( @dm char (6), @mc char (20), @lb char (30), @tel char (40), @addr char (40), @sfz char (18), @lbcode char (30), @bz char (255) ) AS insert dm_ywy ( dm, mc, lb, tel, addr, sfz, lbcode, bz ) values ( @dm, @mc, @lb, @tel, @addr, @sfz, @lbcode, @bz ) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
创新汽车维修保养客户管理系统(专业版)是创新软件有限公司开发的一款汽车维修和保养企业用来管理客户及客户维修记录的软件。她具有界面友好、简单易用的特点。她最大的特色在于可以定时提醒客户保养和维修爱车。既可以使客户感受到企业的关心,又可以使企业不致于失去老客户。 一、软件主要功能: 1. 客户管理 主要有“添加客户”、“修改客户信息”、“删除客户”、“查找客户”四个功能。 其中“查找客户”功能中有“模糊查找”和“精确查找”两个选项。 “模糊查找”是指只要车牌号有输入的字符中即显示。 “精确查找”是指车牌号必须和输入字符完全一致才显示。 2. 维修管理 主要有“添加维修记录”、“添加保养记录”、“修改维修保养记录”、“删除维修保养记录”、“查找维修保养记录”四个功能。 注意:当需要提醒客户时,请用“添加保养记录”,不需要提醒客户时,请用“添加维修记录”。 其中“查找维修保养记录”功能中有“模糊查找”和“精确查找”两个选项。 “模糊查找”是指只要车牌号有输入的字符中即显示。 “精确查找”是指车牌号必须和输入字符完全一致才显示。 在添加维修保养记录后可以给客户打印票据。 3. 客户提醒 当客户做过一次维修保养后,系统会在设定的提醒时间(默认为90天)后提醒你给客户打电话。“客户提醒”中显示的是需要打电话的客户信息。当你打过电话后,可以选择“已打过电话删除”按钮删除。 4.基本信息设置 当你第一次使用本软件时,系统会提示您进行基本信息设置,请认真填写,打印票据时会用到这些信息。   二、专业版与普通版的区别 专业版添加了商品(服务项目)数据库,在“添加维修记录功能”中可以通过输入货号自动添加维修记录或通过查找商品(服务项目)库添加。其它与普通版相同。   三、软件使用小技巧 1.修改客户记录或维修记录时可以选择记录直接双击鼠标左键即可。 2.在客户记录栏目中鼠标右键双击选中记录即可针对该客户添加记录。 3.在维修记录栏目中鼠标右键双击选中记录可显示客户的详细信息。 4.添加维修记录时,如果记住了货号,直接输入货号即可自动添加维修记录,如果没有记住可通过查找自动输入。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_3306428634

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值