基于模板的通用代码生成器LKGenerator(三)-模板示例

本代码生成工具提供的是一个生成代码的平台,各种不同形式的模板都可以在其上使用用于生成代码,模板的书写您需要遵循一定的规则(这些规则是velocity语法和本工具提供的变量,您可在上一篇中找到这些变量),只要您的模板符合这些规则就能用于生成代码.类比一下, 淘宝为商家提供的是一个买卖交易的平台,各种各样的产品都可以在上面交易,买家和买家在交易时需要遵循一定的交易规则,只要大家都遵从这些规则就能很好的进行交易. 当然把本工具比作淘宝显然不太恰当, 本代码生成器远远比不上淘宝带给社会的价值,但真心希望本工具能给程序员带来一点点方便,也算她的一点点价值体现吧.

    本代码生成工具之所以说具有通用性,在于它能生成各种语言的代码,模板是什么语言生成的代码就是什么语言.下面就举几个不同的模板示例分别生成代码.如果您看了上一篇文章您就应该知道,我们首先需要手写或用工具生成一个java文件,并将其编译为class.如下: 

import java.util.*;
import com.tgb.lk.annotation.*;

@AutoBean(alias = "Student",table="t_student")
public class Student {


  @AutoField(alias = "序号", column = "id", isKey = true , isRequired = true , type="String", length=36)
  @ExcelVOAttribute(name = "id", column = "A")
  private String id;

  @AutoField(alias = "姓名", column = "name", isRequired = true, length = 255)
  @ExcelVOAttribute(name = "name", column = "B")
  private String name;

  @AutoField(alias = "性别", column = "sex", combo = {"男","女"}, length = 255)
  @ExcelVOAttribute(name = "sex", column = "C")
  private String sex;

  @AutoField(alias = "年龄", column = "age", type = "Integer")
  @ExcelVOAttribute(name = "age", column = "D")
  private int age;

  @AutoField(alias = "生日", column = "birthday", type = "Date")
  @ExcelVOAttribute(name = "birthday", column = "E")
  private Date birthday;

  @AutoField(alias = "班级ID", column = "clazz_id", length = 36)
  @ExcelVOAttribute(name = "clazz_id", column = "F")
  private String clazzId;

  @AutoField(alias = "是否班长", column = "is_monitor")
  @ExcelVOAttribute(name = "is_monitor", column = "G")
  private Boolean isMonitor;

  @AutoField(alias = "创建", column = "create_time", isRequired = true, type = "Date")
  @ExcelVOAttribute(name = "create_time", column = "H")
  private Date createTime;

  @AutoField(alias = "修改时间", column = "update_time", isRequired = true, type = "Date")
  @ExcelVOAttribute(name = "update_time", column = "I")
  private Date updateTime;



  public String getId() {
    return id;
  }
  public void setId(String id){
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name){
    this.name = name;
  }
  public String getSex() {
    return sex;
  }
  public void setSex(String sex){
    this.sex = sex;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age){
    this.age = age;
  }
  public Date getBirthday() {
    return birthday;
  }
  public void setBirthday(Date birthday){
    this.birthday = birthday;
  }
  public String getClazzId() {
    return clazzId;
  }
  public void setClazzId(String clazzId){
    this.clazzId = clazzId;
  }
  public Boolean getIsMonitor() {
    return isMonitor;
  }
  public void setIsMonitor(Boolean isMonitor){
    this.isMonitor = isMonitor;
  }
  public Date getCreateTime() {
    return createTime;
  }
  public void setCreateTime(Date createTime){
    this.createTime = createTime;
  }
  public Date getUpdateTime() {
    return updateTime;
  }
  public void setUpdateTime(Date updateTime){
    this.updateTime = updateTime;
  }
}

(1) java的 模板(${bean.Uname}.java) :

package ${base-package}.model;

import java.util.*;
import javax.persistence.*;
import com.tgb.lk.util.base.model.BaseTimeModel;
import com.tgb.lk.util.excel.ExcelVOAttribute;

@Entity
@Table(name = "t_${bean}")
public class ${bean.Uname} extends BaseTimeModel{
  
#set ( $arr = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] )

#foreach ($field in ${bean.fields})
#if(${field.isRequired})
  @Column(name = "${field}", nullable = false)
#else
  @Column(name = "${field}")
#end
  @ExcelVOAttribute(name = "${field.alias}", column = "$arr[$velocityCount]")
  private ${field.type} ${field};

#end

  public ${bean.Uname}() {
  }
  
#foreach ($field in ${bean.fields})
  public ${field.type} get${field.Uname}() {
    return ${field};
  }

  public void set${field.Uname}(${field.type} ${field}) {
    this.${field} = ${field};
  }
#end

}

生成的代码(Student.java):

package com.tgb.lk.model;

import java.util.*;
import javax.persistence.*;
import com.tgb.lk.util.base.model.BaseTimeModel;
import com.tgb.lk.util.excel.ExcelVOAttribute;

@Entity
@Table(name = "t_student")
public class Student extends BaseTimeModel{
  

  @Column(name = "id", nullable = false)
  @ExcelVOAttribute(name = "序号", column = "B")
  private String id;

  @Column(name = "name", nullable = false)
  @ExcelVOAttribute(name = "姓名", column = "C")
  private String name;

  @Column(name = "sex")
  @ExcelVOAttribute(name = "性别", column = "D")
  private String sex;

  @Column(name = "age")
  @ExcelVOAttribute(name = "年龄", column = "E")
  private Integer age;

  @Column(name = "birthday")
  @ExcelVOAttribute(name = "生日", column = "F")
  private Date birthday;

  @Column(name = "isMonitor")
  @ExcelVOAttribute(name = "是否班长", column = "G")
  private Boolean isMonitor;

  @Column(name = "createTime", nullable = false)
  @ExcelVOAttribute(name = "创建时间", column = "H")
  private Date createTime;

  @Column(name = "updateTime", nullable = false)
  @ExcelVOAttribute(name = "修改时间", column = "I")
  private Date updateTime;


  public Student() {
  }
  
  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }
  public String getSex() {
    return sex;
  }

  public void setSex(String sex) {
    this.sex = sex;
  }
  public Integer getAge() {
    return age;
  }

  public void setAge(Integer age) {
    this.age = age;
  }
  public Date getBirthday() {
    return birthday;
  }

  public void setBirthday(Date birthday) {
    this.birthday = birthday;
  }
  public Boolean getIsMonitor() {
    return isMonitor;
  }

  public void setIsMonitor(Boolean isMonitor) {
    this.isMonitor = isMonitor;
  }
  public Date getCreateTime() {
    return createTime;
  }

  public void setCreateTime(Date createTime) {
    this.createTime = createTime;
  }
  public Date getUpdateTime() {
    return updateTime;
  }

  public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
  }

}

(2) C#模板(${bean}.cs)

using System;
namespace ${base-package}.Model
{
  /// <summary>
  /// ${bean}:实体类(属性说明自动提取数据库字段的描述信息)
  /// </summary>
  [Serializable]
  public partial class ${bean}
  {
    public ${bean}()
    {}
    #region Model
#foreach($field in ${bean.fields})
#if(${field.type}=="String")
    private string#if(${field.isRequired}==false)?#end _${field};
#end
#if(${field.type}=="Date")
    private DateTime#if(${field.isRequired}==false)?#end _${field};
#end
#if(${field.type}=="Integer")
    private int#if(${field.isRequired}==false)?#end _${field};
#end
#if(${field.type}=="Boolean")
    private bool#if(${field.isRequired}==false)?#end _${field};
#end
#end
#foreach($field in ${bean.fields})
#if(${field.type}=="String")
    /// <summary>
    /// ${field.alias}
    /// </summary>
    public string#if(${field.isRequired}==false)?#end ${field}
    {
      set{ _${field}=value;}
      get{return _${field};}
    }
#end
#if(${field.type}=="Date")
    /// <summary>
    /// ${field.alias}
    /// </summary>
    public DateTime#if(${field.isRequired}==false)?#end ${field}
    {
      set{ _${field}=value;}
      get{return _${field};}
    }
#end
#if(${field.type}=="Integer")
    /// <summary>
    /// ${field.alias}
    /// </summary>
    public int#if(${field.isRequired}==false)?#end ${field}
    {
      set{ _${field}=value;}
      get{return _${field};}
    }
#end
#if(${field.type}=="Boolean")
    /// <summary>
    /// ${field.alias}
    /// </summary>
    public bool ${field}
    {
      set{ _${field}=value;}
      get{return _${field};}
    }
#end
#end
    #endregion Model

  }
}
生成的C#文件(student.cs)

using System;
namespace com.tgb.lk.Model
{
  /// <summary>
  /// student:实体类(属性说明自动提取数据库字段的描述信息)
  /// </summary>
  [Serializable]
  public partial class student
  {
    public student()
    {}
    #region Model
    private string _id;
    private string _name;
    private string? _sex;
    private int? _age;
    private DateTime? _birthday;
    private string? _clazzId;
    private bool? _isMonitor;
    private DateTime _createTime;
    private DateTime _updateTime;
    /// <summary>
    /// 序号
    /// </summary>
    public string id
    {
      set{ _id=value;}
      get{return _id;}
    }
    /// <summary>
    /// 姓名
    /// </summary>
    public string name
    {
      set{ _name=value;}
      get{return _name;}
    }
    /// <summary>
    /// 性别
    /// </summary>
    public string? sex
    {
      set{ _sex=value;}
      get{return _sex;}
    }
    /// <summary>
    /// 年龄
    /// </summary>
    public int? age
    {
      set{ _age=value;}
      get{return _age;}
    }
    /// <summary>
    /// 生日
    /// </summary>
    public DateTime? birthday
    {
      set{ _birthday=value;}
      get{return _birthday;}
    }
    /// <summary>
    /// 班级ID
    /// </summary>
    public string? clazzId
    {
      set{ _clazzId=value;}
      get{return _clazzId;}
    }
    /// <summary>
    /// 是否班长
    /// </summary>
    public bool isMonitor
    {
      set{ _isMonitor=value;}
      get{return _isMonitor;}
    }
    /// <summary>
    /// 创建
    /// </summary>
    public DateTime createTime
    {
      set{ _createTime=value;}
      get{return _createTime;}
    }
    /// <summary>
    /// 修改时间
    /// </summary>
    public DateTime updateTime
    {
      set{ _updateTime=value;}
      get{return _updateTime;}
    }
    #endregion Model

  }
}
(3) xml模板(spring-service.xml):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

#foreach ($bean in $beans)
  <bean id="${bean}Service" class="${base-package}.service.impl.${bean.Uname}ServiceImpl"
    parent="baseHibernateService">
    <property name="${bean}Dao" ref="${bean}Dao" />
  </bean>

#end
</beans>

生成的文件(spring-service.xml):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

  <bean id="studentService" class="com.tgb.lk.service.impl.StudentServiceImpl"
    parent="baseHibernateService">
    <property name="studentDao" ref="studentDao" />
  </bean>

</beans>

(4) jsp模板:

<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/jsp/common/common.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>添加${bean.alias}</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

    <style type="text/css">

</style>
  </head>
  <body>
    <form id="form1" method="post" action="${bean}_add">
      <input name="id" class="mini-hidden" />
      <div class="divFormContent">
        <table style="table-layout: fixed;">
        #set($count=0) 
        #foreach ($field in ${bean.fields})
          #if($count%2==0)
          <tr>
          #end
            <td class="tdLabel">
              ${field.alias}:
            </td>
          #if(${field.type} == "Date")
            <td class="tdInput">
              <input id="${bean}.${field}" name="${bean}.${field}" 
                class="mini-datepicker" required="${field.isRequired}" />
            </td>
          #elseif(${field.type} == "Integer" || ${field.type} == "int")
              <td class="tdInput">
                <input id="${bean}.${field}" name="${bean}.${field}" class="mini-spinner" 
                  vtype="int" minValue="0" maxValue="200" required="${field.isRequired}" />
              </td>
          #elseif(${field.type} == "Boolean" || ${field.type} == "boolean")
              <td class="tdInput">
                <select id="${bean}.${field}" name="${bean}.${field}" 
                  class="mini-radiobuttonlist" value="false"/>
                  <option value="true">
                    是
                  </option>
                  <option value="false">
                    否
                  </option>
                </select>
              </td>	
          #else
            #if(${field.comboLength} >0 )
              <td class="tdInput">
                <select id="${bean}.${field}" name="${bean}.${field}" class="mini-combobox">
                #if(${field.isRequired} != true)
                  <option value="">
                    未知
                  </option>
                #end
                #foreach ($str in ${field.combo})
                  <option value="${str}">
                    ${str}
                  </option>
                #end
                </select>
              </td>
            #else
              <td class="tdInput">
                <input id="${bean}.${field}" name="${bean}.${field}" 
                  class="mini-textbox" required="${field.isRequired}" />
              </td>
            #end
          #end
          #if($count%2!=0)
            </tr>
          #end
        #set($count = $count + 1) 
        #end 
        
        #if($count%2!=0)
            <td class="tdLabel"></td>
            <td class="tdInput"></td>
          </tr>
        #end

        </table>
      </div>
      <div class="divBtn">
        <a class="mini-button btnOK" οnclick="onOk">确定</a>
        <a class="mini-button btnCancel" οnclick="onCancel">取消</a>
      </div>
    </form>
    <%@include file="/WEB-INF/jsp/common/pub_part_add.jsp"%>
  </body>
</html>

生成的jsp代码(student-add.jsp):

<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/jsp/common/common.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>添加Student</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

    <style type="text/css">

</style>
  </head>
  <body>
    <form id="form1" method="post" action="student_add">
      <input name="id" class="mini-hidden" />
      <div class="divFormContent">
        <table style="table-layout: fixed;">
                                    <tr>
                      <td class="tdLabel">
              序号:
            </td>
                                    <td class="tdInput">
                <input id="student.id" name="student.id" 
                  class="mini-textbox" required="true" />
              </td>
                                                              <td class="tdLabel">
              姓名:
            </td>
                                    <td class="tdInput">
                <input id="student.name" name="student.name" 
                  class="mini-textbox" required="true" />
              </td>
                                            </tr>
                                      <tr>
                      <td class="tdLabel">
              性别:
            </td>
                                    <td class="tdInput">
                <select id="student.sex" name="student.sex" class="mini-combobox">
                                  <option value="">
                    未知
                  </option>
                                                  <option value="男">
                    男
                  </option>
                                  <option value="女">
                    女
                  </option>
                                </select>
              </td>
                                                              <td class="tdLabel">
              年龄:
            </td>
                        <td class="tdInput">
                <input id="student.age" name="student.age" class="mini-spinner" 
                  vtype="int" minValue="0" maxValue="200" required="false" />
              </td>
                                </tr>
                                      <tr>
                      <td class="tdLabel">
              生日:
            </td>
                      <td class="tdInput">
              <input id="student.birthday" name="student.birthday" 
                class="mini-datepicker" required="false" />
            </td>
                                                  <td class="tdLabel">
              班级ID:
            </td>
                                    <td class="tdInput">
                <input id="student.clazzId" name="student.clazzId" 
                  class="mini-textbox" required="false" />
              </td>
                                            </tr>
                                      <tr>
                      <td class="tdLabel">
              是否班长:
            </td>
                        <td class="tdInput">
                <select id="student.isMonitor" name="student.isMonitor" 
                  class="mini-radiobuttonlist" value="false"/>
                  <option value="true">
                    是
                  </option>
                  <option value="false">
                    否
                  </option>
                </select>
              </td>	
                                                  <td class="tdLabel">
              创建:
            </td>
                      <td class="tdInput">
              <input id="student.createTime" name="student.createTime" 
                class="mini-datepicker" required="true" />
            </td>
                                </tr>
                                      <tr>
                      <td class="tdLabel">
              修改时间:
            </td>
                      <td class="tdInput">
              <input id="student.updateTime" name="student.updateTime" 
                class="mini-datepicker" required="true" />
            </td>
                                    
                    <td class="tdLabel"></td>
            <td class="tdInput"></td>
          </tr>
        
        </table>
      </div>
      <div class="divBtn">
        <a class="mini-button btnOK" οnclick="onOk">确定</a>
        <a class="mini-button btnCancel" οnclick="onCancel">取消</a>
      </div>
    </form>
    <%@include file="/WEB-INF/jsp/common/pub_part_add.jsp"%>
  </body>
</html>
(5) aspx模板(Add.aspx): 

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
    CodeBehind="Add.aspx.cs" Inherits="${base-package}.Web.${bean}.Add" Title="增加页" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">    
    <table style="width: 100%;" cellpadding="2" cellspacing="1" class="border">
        <tr>
            <td class="tdbg">
                
<table cellSpacing="0" cellPadding="0" width="100%" border="0">
#foreach ($field in ${bean.fields})
#if(${field.type} == "Date")
  <tr>
  <td height="25" width="30%" align="right">
    ${field.alias}
  :</td>
  <td height="25" width="*" align="left">
    <asp:TextBox ID="txt${field}" runat="server" Width="70px"  οnfοcus="setday(this)"></asp:TextBox>
  </td></tr>
#else
  <tr>
  <td height="25" width="30%" align="right">
    ${field.alias}
  :</td>
  <td height="25" width="*" align="left">
    <asp:TextBox id="txt${field}" runat="server" Width="200px"></asp:TextBox>
  </td></tr>
#end
#end
</table>
<script src="/js/calendar1.js" type="text/javascript"></script>

            </td>
        </tr>
        <tr>
            <td class="tdbg" align="center" valign="bottom">
                <asp:Button ID="btnSave" runat="server" Text="保存"
                    OnClick="btnSave_Click" class="inputbutton" οnmοuseοver="this.className='inputbutton_hover'"
                    οnmοuseοut="this.className='inputbutton'"></asp:Button>
                <asp:Button ID="btnCancle" runat="server" Text="取消"
                    OnClick="btnCancle_Click" class="inputbutton" οnmοuseοver="this.className='inputbutton_hover'"
                    οnmοuseοut="this.className='inputbutton'"></asp:Button>
            </td>
        </tr>
    </table>
    <br />
</asp:Content>
<%--<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceCheckright" runat="server">
</asp:Content>--%>
生成的文件:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
    CodeBehind="Add.aspx.cs" Inherits="com.tgb.lk.Web.student.Add" Title="增加页" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">    
    <table style="width: 100%;" cellpadding="2" cellspacing="1" class="border">
        <tr>
            <td class="tdbg">
                
<table cellSpacing="0" cellPadding="0" width="100%" border="0">
  <tr>
  <td height="25" width="30%" align="right">
    序号
  :</td>
  <td height="25" width="*" align="left">
    <asp:TextBox id="txtid" runat="server" Width="200px"></asp:TextBox>
  </td></tr>
  <tr>
  <td height="25" width="30%" align="right">
    姓名
  :</td>
  <td height="25" width="*" align="left">
    <asp:TextBox id="txtname" runat="server" Width="200px"></asp:TextBox>
  </td></tr>
  <tr>
  <td height="25" width="30%" align="right">
    性别
  :</td>
  <td height="25" width="*" align="left">
    <asp:TextBox id="txtsex" runat="server" Width="200px"></asp:TextBox>
  </td></tr>
  <tr>
  <td height="25" width="30%" align="right">
    年龄
  :</td>
  <td height="25" width="*" align="left">
    <asp:TextBox id="txtage" runat="server" Width="200px"></asp:TextBox>
  </td></tr>
  <tr>
  <td height="25" width="30%" align="right">
    生日
  :</td>
  <td height="25" width="*" align="left">
    <asp:TextBox ID="txtbirthday" runat="server" Width="70px"  οnfοcus="setday(this)"></asp:TextBox>
  </td></tr>
  <tr>
  <td height="25" width="30%" align="right">
    班级ID
  :</td>
  <td height="25" width="*" align="left">
    <asp:TextBox id="txtclazzId" runat="server" Width="200px"></asp:TextBox>
  </td></tr>
  <tr>
  <td height="25" width="30%" align="right">
    是否班长
  :</td>
  <td height="25" width="*" align="left">
    <asp:TextBox id="txtisMonitor" runat="server" Width="200px"></asp:TextBox>
  </td></tr>
  <tr>
  <td height="25" width="30%" align="right">
    创建
  :</td>
  <td height="25" width="*" align="left">
    <asp:TextBox ID="txtcreateTime" runat="server" Width="70px"  οnfοcus="setday(this)"></asp:TextBox>
  </td></tr>
  <tr>
  <td height="25" width="30%" align="right">
    修改时间
  :</td>
  <td height="25" width="*" align="left">
    <asp:TextBox ID="txtupdateTime" runat="server" Width="70px"  οnfοcus="setday(this)"></asp:TextBox>
  </td></tr>
</table>
<script src="/js/calendar1.js" type="text/javascript"></script>

            </td>
        </tr>
        <tr>
            <td class="tdbg" align="center" valign="bottom">
                <asp:Button ID="btnSave" runat="server" Text="保存"
                    OnClick="btnSave_Click" class="inputbutton" οnmοuseοver="this.className='inputbutton_hover'"
                    οnmοuseοut="this.className='inputbutton'"></asp:Button>
                <asp:Button ID="btnCancle" runat="server" Text="取消"
                    OnClick="btnCancle_Click" class="inputbutton" οnmοuseοver="this.className='inputbutton_hover'"
                    οnmοuseοut="this.className='inputbutton'"></asp:Button>
            </td>
        </tr>
    </table>
    <br />
</asp:Content>
<%--<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceCheckright" runat="server">
</asp:Content>--%>

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值