Java项目:JSP二手自行车在线销售商城平台系统

作者主页:夜未央5788

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

本系统分为前后台,分为普通用户和管理员两种角色;

管理员角色包含以下功能:

管理员登录,用户管理,自行车分类管理,商品管理,订单管理,留言和公告管理等功能。

用户角色包含以下功能:
浏览自行车,查看自行车,结算订单,用户登录注册,查看订单,在线留言等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 

5.数据库:MySql 5.7版本;

6.是否Maven项目:否;

技术栈

JSP+CSS+JavaScript+java+servlet+mysql

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中src/com/hr/dao/Basedao.java配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入http://localhost:8080/ 登录
管理员账号/密码:admin/admin 

用户账号/密码:user/123456

运行截图

前台界面-用户角色

 

 

 

 

 

 

后台界面

 

 

 

 

 

相关代码 

gmServlet

package com.web.shopservlet;


import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.hr.dao.ESDao;
import com.hr.entity.EASYBUY_ORDER_DETAIL;
import com.hr.entity.EASYBUY_USER;
import com.hr.util.EncodeUtil;


public class gmServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
		throws ServletException, IOException {
	arg1.setContentType("text/html;charset=utf-8");
	PrintWriter out=arg1.getWriter();
	EncodeUtil.encode(arg0);
	HttpSession session=arg0.getSession();
	EASYBUY_USER list=(EASYBUY_USER)session.getAttribute("name");
	//用户id
	String id=list.getEU_USER_ID();
	//用户姓名
	String name=list.getEU_USER_NAME();
	//用户地址
	String address=list.getEU_ADDRESS();
	//总价钱
	String price=arg0.getParameter("jstext");
	
	//商品id
	String [] EP_ID=arg0.getParameterValues("spID");
	//购买数量
	String [] quantity=arg0.getParameterValues("number");
	//商品单价
	String [] sPPrice=arg0.getParameterValues("sPPrice");
	
	//购买后对商品表的库存进行修改
	for(int i=0;i<EP_ID.length;i++){
		int count5=ESDao.updateStock(Integer.parseInt(quantity[i]),Integer.parseInt(EP_ID[i]));
	}
	//商品单个总价
	int [] pprice=new int[EP_ID.length];
	for(int i=0;i<EP_ID.length;i++){
		pprice[i]=Integer.parseInt(quantity[i])*Integer.parseInt(sPPrice[i]);
	} 
	/得到序列
	//往订单表里添加数据
	int count=ESDao.insertDD(id, name, address,Integer.parseInt(price));
	int getSequenceId=ESDao.getSequenceId();
	//循环往订单详情添加
	for(int i=0;i<EP_ID.length;i++){
		EASYBUY_ORDER_DETAIL eod=new EASYBUY_ORDER_DETAIL(1,getSequenceId,Integer.parseInt(EP_ID[i]),Integer.parseInt(quantity[i]),pprice[i]);
		int count2=ESDao.eodInsert(eod);
	}
	
	
	
	// 开单后,修改购物车
	String [] esID=arg0.getParameterValues("esID");
	for(int i=0;i<esID.length;i++){
		int count3 =ESDao.esdelete(Integer.parseInt(esID[i]));
	}
	/
	if(count>0){
			
		out.print("<script>");
		out.print("alert('购物成功');");
		out.print("location.href='shopping-result.jsp';");
		out.print("</script>");
		out.close();
	}else{
		out.print("<script>");
		out.print("alert('购物失败,请重新选择商品');");
		out.print("location.href='ShopSelect';");
		out.print("</script>");
		out.close();
	}
}
}

ShopSelect

package com.web.shopservlet;


//订单表数据的查询

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.hr.dao.ESDao;
import com.hr.entity.EASYBUY_USER;
import com.hr.entity.eb_shop;
import com.hr.util.EncodeUtil;

public class ShopSelect extends HttpServlet {
	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
			throws ServletException, IOException {
		EncodeUtil.encode(arg0);
		arg1.setContentType("text/html;charset=utf-8");
		PrintWriter out = arg1.getWriter();
		HttpSession session=arg0.getSession();
		EASYBUY_USER userCZ=(EASYBUY_USER)session.getAttribute("name");
		if(userCZ!=null){
//			System.out.println("登录好了");
			EASYBUY_USER eu=(EASYBUY_USER)session.getAttribute("name");
			String id=(String)eu.getEU_USER_ID();
			ArrayList<eb_shop> list=ESDao.getShop(id);
			arg0.setAttribute("shoplist",list);
			arg0.getRequestDispatcher("shopping.jsp").forward(arg0, arg1);
		}else{
			out.print("<script>");
			out.print("alert('请先登录');");
			out.print("location.href='login.jsp';");
			out.print("</script>");
			out.close();
			
		}
	}
}

ESDao

package com.hr.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.hr.entity.EASYBUY_ORDER_DETAIL;
import com.hr.entity.EASYBUY_PRODUCT_CATEGORY;
import com.hr.entity.EASYBUY_USER;
import com.hr.entity.eb_shop;

public class ESDao {
	/**
	 * 两张表联查做购物车
	 */
	public static ArrayList<eb_shop> getShop(String id){
		ArrayList<eb_shop> list=new ArrayList<eb_shop>();
		Connection conn=Basedao.getconn();
		PreparedStatement ps=null;
		ResultSet rs=null;
			try {
				ps=conn.prepareStatement("select * from EASYBUY_SHOP where es_EU_USER_ID=? and ES_VALID=1 order by es_id desc");
				ps.setString(1,id);
				rs=ps.executeQuery();
				while(rs.next()){
					eb_shop es=new eb_shop(
							rs.getInt("es_id"),
							rs.getString("es_ep_file_name"),
							rs.getString("es_ep_name"),
							rs.getInt("es_ep_price"),
							rs.getInt("es_eod_quantity"),
							rs.getInt("es_ep_stock"),
							rs.getInt("es_ep_id"),
							rs.getString("es_EU_USER_ID"),
							rs.getInt("es_valid")
								);
					list.add(es);
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				Basedao.closeall(rs, ps, conn);
				
			}
			return list;
	}
	/*
	 * 
	 *修改订单数量 加
	 */
	public static int updateJia(int id){
		String sql="update EASYBUY_SHOP set es_eod_quantity=es_eod_quantity+1 where es_id=?";
		Object [] params={id};
		return Basedao.exectuIUD(sql, params);
	}
	
	/*
	 * 
	 *修改订单数量 减
	 */
	public static int updateJian(int id){
		String sql="update EASYBUY_SHOP set es_eod_quantity=es_eod_quantity-1 where es_id=?";
		Object [] params={id};
		return Basedao.exectuIUD(sql, params);
	}
	/*
	 * 
	 * 修改订单数量,自己输入
	 */
	public static int updateClose(eb_shop es){
		String sql="update EASYBUY_SHOP set es_eod_quantity=? where es_id=?";
		Object [] params={es.es_eod_quantity,es.es_id};
		return Basedao.exectuIUD(sql, params);
	}
	/**
	 * 修改订单为2
	 * @param id
	 * @return
	 */
	public static int getDelete(int id){
		String sql="update EASYBUY_SHOP set es_vaild=2 where es_id=?";
		Object[] params={id};
		return Basedao.exectuIUD(sql, params);
	}
	/*
	 * 
	 * 订单表的添加
	 * 
	 */
	public static int insertDD(String id,String name,String address,int price){
		String sql="insert into EASYBUY_ORDER values(null,?,?,?,now(),?,1,1)";
		Object [] params={id,name,address,price};
		return Basedao.exectuIUD(sql, params);
	}
	/*
	 * 得到序列
	 */
	public static int getSequenceId(){
		int id = 0;
		Connection conn = Basedao.getconn();
		PreparedStatement ps = null; 
		ResultSet rs = null;
		try {
			ps = conn.prepareStatement("select EO_ID from easybuy_order order by EO_ID desc limit 0,1");
			rs = ps.executeQuery();
			if(rs.next()){
				id = rs.getInt(1);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			Basedao.closeall(rs, ps, conn);
		}
		return id;
	}
	/*
	 * 
	 * 订单详细表的添加
	 */
	public static int eodInsert(EASYBUY_ORDER_DETAIL eod){
		String sql="insert into EASYBUY_ORDER_DETAIL values(null,?,?,?,?)";
		Object [] params={eod.getEO_ID(),eod.getEP_ID(),eod.getEOD_QUANTITY(),eod.getEOD_COST()};
		return Basedao.exectuIUD(sql, params);
	}
	/*
	 * 
	 * 购物单的修改
	 */
	public static int esdelete(int id){
		String sql="update  EASYBUY_SHOP set es_valid=2 where es_id=?";
		Object [] params={id};
		return Basedao.exectuIUD(sql, params);
	}
	//kucun
	public static int updateStock(int stock,int id){
		String sql="update EASYBUY_PRODUCT set ep_stock=ep_stock-? where ep_id=?";
		Object [] params={stock,id};
		return Basedao.exectuIUD(sql, params);
	}
	
	public static int insert(eb_shop sp){
		String sql = "insert into easybuy_shop values(null,?,?,?,?,?,?,?,1)";
		Object[] params = {sp.getEs_ep_file_name(),
							sp.getEs_ep_name(),
							sp.getEs_ep_price(),
							sp.getEs_eod_quantity(),
							sp.getEs_ep_stock(),
							sp.getEs_ep_id(),
							sp.getEs_EU_USER_ID()};
		return Basedao.exectuIUD(sql, params);
	}
	
	public static  int getDeleteDD(int id){
		String sql="delete from easybuy_shop where es_id=?";
		Object [] params={id};
		return Basedao.exectuIUD(sql, params);
	}
}

EASYBUY_USERDao

package com.hr.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.hr.entity.EASYBUY_USER;

public class EASYBUY_USERDao {
	/**
	 * 分页查询
	 */
	public static ArrayList<EASYBUY_USER> selectAll(int cpage,int count){
		ArrayList<EASYBUY_USER> list = new ArrayList<EASYBUY_USER>();
		ResultSet rs = null;
		Connection conn = Basedao.getconn();
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement("select * from EASYBUY_USER order by EU_BIRTHDAY desc"+
					" limit ?, ?");
			ps.setInt(1, count*(cpage-1));
			ps.setInt(2, count);
			rs = ps.executeQuery();
			while(rs.next()){
				EASYBUY_USER u = new EASYBUY_USER(rs.getString("EU_USER_ID"),
										rs.getString("EU_USER_NAME"), 
										rs.getString("EU_PASSWORD"),
										rs.getString("EU_SEX"),
										rs.getString("EU_BIRTHDAY"),
										rs.getString("EU_IDENTITY_CODE"),
										rs.getString("EU_EMAIL"),
										rs.getString("EU_MOBILE"),
										rs.getString("EU_ADDRESS"),
										rs.getInt("EU_STATUS"));
				list.add(u);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			Basedao.closeall(rs, ps, conn);
		}
		return list;
	}
	/**
	 * 查询所有
	 * @return
	 */
	public static ArrayList<EASYBUY_USER> selectAll(){
		ArrayList<EASYBUY_USER> list = new ArrayList<EASYBUY_USER>();
		ResultSet rs = null;
		Connection conn = Basedao.getconn();
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement("select * from EASYBUY_USER");
			rs = ps.executeQuery();
			while(rs.next()){
				EASYBUY_USER u = new EASYBUY_USER(rs.getString("EU_USER_ID"),
										rs.getString("EU_USER_NAME"), 
										rs.getString("EU_PASSWORD"),
										rs.getString("EU_SEX"),
										rs.getString("EU_BIRTHDAY"),
										rs.getString("EU_IDENTITY_CODE"),
										rs.getString("EU_EMAIL"),
										rs.getString("EU_MOBILE"),
										rs.getString("EU_ADDRESS"),
										rs.getInt("EU_STATUS"));
				list.add(u);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			Basedao.closeall(rs, ps, conn);
		}
		return list;
	}
	
	/**
	 * 根据id查询单个
	 * @param id
	 * @return
	 */
	public static EASYBUY_USER selectById(String id){
		EASYBUY_USER u = null;
		ResultSet rs = null;
		Connection conn = Basedao.getconn();
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement("select m.*,DATE_FORMAT(m.eu_birthday,'%Y-%m-%d')birthday from EASYBUY_USER m where EU_USER_ID=?");
			ps.setString(1, id);
			rs = ps.executeQuery();
			while(rs.next()){
				u = new EASYBUY_USER(rs.getString("EU_USER_ID"),
						rs.getString("EU_USER_NAME"), 
						rs.getString("EU_PASSWORD"),
						rs.getString("EU_SEX"),
						rs.getString("birthday"),
						rs.getString("EU_IDENTITY_CODE"),
						rs.getString("EU_EMAIL"),
						rs.getString("EU_MOBILE"),
						rs.getString("EU_ADDRESS"),
						rs.getInt("EU_STATUS"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			Basedao.closeall(rs, ps, conn);
		}
		return u;
	}
	/**
	 * 查看是否有此人
	 * @param id
	 * @return
	 */
	public static int selectByName(String id){
		int count=0;
		ResultSet rs = null;
		Connection conn = Basedao.getconn();
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement("select count(*) from EASYBUY_USER where EU_USER_ID=?");
			ps.setString(1, id);
			rs = ps.executeQuery();
			while(rs.next()){
				count=rs.getInt(1);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			Basedao.closeall(rs, ps, conn);
		}
		return count;
	}
	/**
	 * 看用户名和密码对不对
	 */
	public static int selectByNM(String name,String pwd){
		int count=0;
		ResultSet rs = null;
		Connection conn = Basedao.getconn();
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement("select count(*) from EASYBUY_USER where EU_USER_ID=? and EU_PASSWORD=?");
			ps.setString(1, name);
			ps.setString(2, pwd);
			rs = ps.executeQuery();
			while(rs.next()){
				count=rs.getInt(1);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			Basedao.closeall(rs, ps, conn);
		}
		return count;
	}
	/**
	 * 判断是普通用户还是管理员
	 * @param name
	 * @param pwd
	 * @return
	 */
	public static EASYBUY_USER selectAdmin(String name,String pwd){
		EASYBUY_USER user=null;
		ResultSet rs = null;
		Connection conn = Basedao.getconn();
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement("select * from EASYBUY_USER where EU_USER_ID=? and EU_PASSWORD=?");
			ps.setString(1, name);
			ps.setString(2, pwd);
			rs = ps.executeQuery();
			while(rs.next()){
				user = new EASYBUY_USER(rs.getString("EU_USER_ID"),
						rs.getString("EU_USER_NAME"), 
						rs.getString("EU_PASSWORD"),
						rs.getString("EU_SEX"),
						rs.getString("EU_BIRTHDAY"),
						rs.getString("EU_IDENTITY_CODE"),
						rs.getString("EU_EMAIL"),
						rs.getString("EU_MOBILE"),
						rs.getString("EU_ADDRESS"),
						rs.getInt("EU_STATUS"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			Basedao.closeall(rs, ps, conn);
		}
		return user;
	}
	/**
	 * 分页管理
	 * @param u
	 * @return
	 */
	public static int totalPage(int count){
		int tpage=1;
		Connection conn=Basedao.getconn();
		PreparedStatement ps=null;
		ResultSet rs=null;
		try {
			ps=conn.prepareStatement("select count(*) from EASYBUY_USER");
			rs=ps.executeQuery();
			while(rs.next()){
				int sum=rs.getInt(1);
				if(sum%count==0){
					tpage=sum/count;
				}else{
					tpage=sum/count+1;
				}
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			Basedao.closeall(rs, ps, conn);
		}
		return tpage;
	}
	public static int insert(EASYBUY_USER u){
		String sql = "insert into EASYBUY_USER values(?,?,?,?,DATE_FORMAT(?,'%Y-%m-%d'),?,?,?,?,?)";
		Object[] params = {u.getEU_USER_ID(),
							u.getEU_USER_NAME(),
							u.getEU_PASSWORD(),
							u.getEU_SEX(),
							u.getEU_BIRTHDAY(),
							u.getEU_IDENTITY_CODE(),
							u.getEU_EMAIL(),
							u.getEU_MOBILE(),
							u.getEU_ADDRESS(),
							u.getEU_STATUS()};
		return Basedao.exectuIUD(sql, params);
	}
	
	public static int update(EASYBUY_USER u){
		String sql = "update EASYBUY_USER set EU_USER_NAME=?," +
											"EU_PASSWORD=?," +
											"EU_SEX=?," +
											"EU_BIRTHDAY=DATE_FORMAT(?,'%Y-%m-%d')," +
											"EU_IDENTITY_CODE=?," +
											"EU_EMAIL=?," +
											"EU_MOBILE=?," +
											"EU_ADDRESS=?," +
											"EU_STATUS=? " +
											"where EU_USER_ID=?";
		Object[] params = {u.getEU_USER_NAME(),
							u.getEU_PASSWORD(),
							u.getEU_SEX(),
							u.getEU_BIRTHDAY(),
							u.getEU_IDENTITY_CODE(),
							u.getEU_EMAIL(),
							u.getEU_MOBILE(),
							u.getEU_ADDRESS(),
							u.getEU_STATUS(),
							u.getEU_USER_ID()};
		return Basedao.exectuIUD(sql, params);
	}
	
	public static int del(String id){
		String sql = "delete from EASYBUY_USER where EU_USER_ID=? and EU_USER_ID!='admin'";
		Object[] params = {id};
		return Basedao.exectuIUD(sql, params);
	}
}

如果也想学习本系统,下面领取。关注并回复:093jsp

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 该项目是一个在线购物商城系统,采用Java作为后端语言,使用JSP进行Web前端开发,使用JDBC作为数据库访问层,MySQL作为数据库。它能够实现用户注册、登录、浏览商品、购物车、结算等基本功能。同时,该项目也可以扩展更多的功能,如订单管理、后台管理等。 ### 回答2: 在线蛋糕商城系统是一个基于java jsp技术实现的web应用程序,用于为用户提供在线购买蛋糕的服务。本系统采用了jdbc进行数据库操作和mysql进行数据存储,以保证了系统的性能和数据安全性。下面将对该系统进行详细的介绍: 一、系统功能 1. 注册会员:用户在系统中可以注册自己的账号,并进行登录,可以随时查询自己的订单情况。 2. 蛋糕分类浏览:用户可以选择浏览不同的蛋糕分类,了解每个蛋糕产品的详细信息,比如价格、成分等。 3. 购物车:用户选购蛋糕后可以将其放入购物车中,可以随时增加或减少数量或删除不需要的产品。 4. 订单结算:用户在购物车中选择好要购买的蛋糕数量时,可以进行结算和支付订单的操作。 5. 订单查询:用户可以随时登录自己的账号,查看自己已经提交的订单情况,了解订单状态和发货情况等。 二、系统架构 1. MVC架构:在该系统中采用了MVC的模式进行应用程序的开发,这样可以很好的实现各个部分的分层,将模型、视图和控制器进行分离,可以大大提高系统开发的效率和可维护性。 2. 技术选型:该系统采用了java jsp技术进行开发,jsp作为视图部分,可以很好的实现页面的动态跟新,提高了用户体验。使用jdbc可以方便地连接数据库进行增删改查的操作,而mysql则可以实现数据的安全和高效存储。 3. 安全性:为了保障系统的安全性,在系统的构建中使用了类似验证码等技术,防止恶意攻击者通过注入方式对系统造成损害。 总体来看,本系统旨在为现代人提供一种新型的购物方式,方便快捷,操作简单,使用者可以非常方便地购买到自己心仪的蛋糕产品,并了解到蛋糕的详细信息,是一款非常实用且值得推广的商品购买系统。 ### 回答3: 作为一种跨平台编程语言,Java在网站开发中的应用非常广泛,而在线蛋糕商城系统是一种常见的应用场景。Java JSP JDBC MySQL可以组成一个完整的系统,实现在线订购、支付、配送等功能。 首先,在线蛋糕商城系统需要具备用户注册、登录、浏览、搜索、下单、支付、订单查询、评价等基本功能。在Java中可以使用JSP作为网站的界面,使用JDBC实现与MySQL数据库的交互。 其次,蛋糕商城需要实现在线下单和支付功能。这就需要整合支付宝、微信等第三方支付平台的API接口,实现用户支付和订单状态的更新。同时还需要实现订单的发货和配送,可以使用快递公司的API接口实现自动化配送。 另外,在建立在线蛋糕商城系统时,还需要考虑到用户体验和安全性。可以通过用户反馈和网站分析工具实时监控用户对网站的评价和使用情况,提高用户体验。为确保用户数据的安全,需要加强网站的安全性和数据保护机制,避免各种黑客攻击和泄密事件的发生。 总之,Java JSP JDBC MySQL可以组成一个灵活、高效、安全的在线蛋糕商城系统,为用户提供便利的订购、支付、配送等服务,帮助商家提高销售额并建立良好的品牌形象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜未央5788

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

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

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

打赏作者

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

抵扣说明:

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

余额充值