EasyCode模板-mybatisPlus-swagger-lombok

image-20210811193541241

创建模板

image-20210811193618577

domain

##导入宏定义
$!define

##保存文件(宏定义)
#save("/domain", ".java")

##包路径(宏定义)
#setPackageSuffix("domain")

##自动导入包(全局变量)
$!autoImport
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

##表注释(宏定义)
#tableComment("表实体类")
@ApiModel(description = "${tableInfo.comment}")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class $!{tableInfo.name} implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
    
    @ApiModelProperty(name = "${column.name}", value = "${column.comment}")
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
}

效果

package com.companyname.modulename.domain;

import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * 通行记录(AccessRecords)表实体类
 *
 * @author hmxchen
 * @since 2021-08-11 19:38:22
 */
@ApiModel(description = "通行记录")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class AccessRecords implements Serializable {
private static final long serialVersionUID = -96145207466012299L;
    
    @ApiModelProperty(name = "id", value = "${column.comment}")
    private Long id;
    
    @ApiModelProperty(name = "equipmentId", value = "设备id")
    private Long equipmentId;
    
    @ApiModelProperty(name = "jobId", value = "职位id")
    private Long jobId;
    
    @ApiModelProperty(name = "userId", value = "用户id")
    private Long userId;
    
    @ApiModelProperty(name = "recorType", value = "通行记录类型")
    private String recorType;
    
    @ApiModelProperty(name = "deviceUserId", value = "设备用户标识(蓝牙设备:用户id,人脸设备:设备的用户id:用户id_职位id_是否跨日)")
    private String deviceUserId;
    
    @ApiModelProperty(name = "userName", value = "用户名")
    private String userName;
    
    @ApiModelProperty(name = "time", value = "打卡记录时间")
    private Date time;
    
    @ApiModelProperty(name = "isCross", value = "是否跨日")
    private Boolean isCross;
    
    @ApiModelProperty(name = "checkInfoId", value = "打卡任务id")
    private Long checkInfoId;
    
    @ApiModelProperty(name = "clockType", value = "打卡类型(1:上班,2:下班)")
    private Boolean clockType;
    
    @ApiModelProperty(name = "faceUrl", value = "人脸图片路径")
    private String faceUrl;
    
    @ApiModelProperty(name = "createTime", value = "创建时间")
    private Date createTime;
    
    @ApiModelProperty(name = "updateTime", value = "更新时间")
    private Date updateTime;
}

service

##导入宏定义
$!define

##设置表后缀(宏定义)
#setTableSuffix("ServiceI")

##保存文件(宏定义)
#save("/service", "ServiceI.java")

##包路径(宏定义)
#setPackageSuffix("service")

import com.baomidou.mybatisplus.extension.service.IService;
import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;

##表注释(宏定义)
#tableComment("表服务接口")
public interface $!{tableName} extends IService<$!tableInfo.name> {

}

效果

package com.companyname.modulename.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.companyname.modulename.domain.AccessRecords;

/**
 * 通行记录(AccessRecords)表服务接口
 *
 * @author hmxchen
 * @since 2021-08-11 19:38:50
 */
public interface AccessRecordsServiceI extends IService<AccessRecords> {

}

serviceImpl

##导入宏定义
$!define

##设置表后缀(宏定义)
#setTableSuffix("ServiceImpl")

##保存文件(宏定义)
#save("/service/impl", "ServiceImpl.java")

##包路径(宏定义)
#setPackageSuffix("service.impl")

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import $!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Mapper;
import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

##表注释(宏定义)
#tableComment("表服务实现类")
@Service
@Slf4j
public class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> implements $!{tableInfo.name}ServiceI {

}

效果

package com.companyname.modulename.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.companyname.modulename.dao.AccessRecordsMapper;
import com.companyname.modulename.domain.AccessRecords;
import com.companyname.modulename.service.AccessRecordsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

/**
 * 通行记录(AccessRecords)表服务实现类
 *
 * @author hmxchen
 * @since 2021-08-11 19:39:12
 */
@Service
@Slf4j
public class AccessRecordsServiceImpl extends ServiceImpl<AccessRecordsMapper, AccessRecords> implements AccessRecordsServiceI {

}

controller

##导入宏定义
$!define

##设置表后缀(宏定义)
#setTableSuffix("Controller")

##保存文件(宏定义)
#save("/controller", "Controller.java")

##包路径(宏定义)
#setPackageSuffix("controller")

##定义服务名
#set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), "Service"))

##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))

$!autoImport

import com.tongdao.recruit.V202107.enums.result.ResultObject;
import com.tongdao.recruit.V202107.enums.result.ResultStatusEnum;
import org.springframework.web.bind.annotation.*;
import lombok.extern.slf4j.Slf4j;
import lombok.AllArgsConstructor;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;
import $!{tableInfo.savePackageName}.domain.$!{entityName}DTO.*;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}ServiceI;


##表注释(宏定义)
#tableComment("表控制层")
@RestController
@RequestMapping("/$!tool.firstLowerCase($!tableInfo.name)")
@AllArgsConstructor
@Slf4j
@Api(tags = "${tableInfo.comment}(${tableInfo.name})APi")
public class $!{tableName} {
    /**
     * 服务对象
     */
    private final $!{tableInfo.name}ServiceI $!{serviceName};
    
    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("/{id}")
    @ApiOperation(value = "获取单个${tableInfo.comment}")
    public ResultObject<$!{tableInfo.name}CO> selectOne(@PathVariable("id") Long id) {
        return ResultStatusEnum.SUCCESS.ok($!{tableInfo.name}CO.from($!{serviceName}.getById(id)));
    }

    /**
     * 新增数据
     *
     * @param $!entityName 实体对象
     * @return 新增结果
     */
    @PostMapping
    @ApiOperation(value = "新增${tableInfo.comment}")
    public ResultObject insert(@RequestBody $!{tableInfo.name}InsertCmd $!entityName) {
        $!{serviceName}.save($!{entityName}.toModel());
        return ResultStatusEnum.SUCCESS.ok();
    }

    /**
     * 修改数据
     *
     * @param $!entityName 实体对象
     * @return 修改结果
     */
    @PutMapping
    @ApiOperation(value = "修改${tableInfo.comment}")
    public ResultObject update(@RequestBody $!{tableInfo.name}UpdateCmd $!entityName) {
        $!{serviceName}.updateById($!{entityName}.toModel());
        return ResultStatusEnum.SUCCESS.ok();
    }

    /**
     * 删除数据
     *
     * @param id 主键结合
     * @return 删除结果
     */
    @DeleteMapping("/{id}")
    @ApiOperation(value = "删除${tableInfo.comment}")
    public ResultObject delete(@PathVariable("id") Long id) {
        return ResultStatusEnum.SUCCESS.ok();
    }
}

效果

package com.companyname.modulename.controller;



import java.util.Date;

import com.tongdao.recruit.V202107.enums.result.ResultObject;
import com.tongdao.recruit.V202107.enums.result.ResultStatusEnum;
import org.springframework.web.bind.annotation.*;
import lombok.extern.slf4j.Slf4j;
import lombok.AllArgsConstructor;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

import com.companyname.modulename.domain.AccessRecords;
import com.companyname.modulename.domain.accessRecordsDTO.*;
import com.companyname.modulename.service.AccessRecordsServiceI;


/**
 * 通行记录(AccessRecords)表控制层
 *
 * @author hmxchen
 * @since 2021-08-11 19:39:44
 */
@RestController
@RequestMapping("/accessRecords")
@AllArgsConstructor
@Slf4j
@Api(tags = "通行记录(AccessRecords)APi")
public class AccessRecordsController {
    /**
     * 服务对象
     */
    private final AccessRecordsServiceI accessRecordsService;
    
    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("/{id}")
    @ApiOperation(value = "获取单个通行记录")
    public ResultObject<AccessRecordsCO> selectOne(@PathVariable("id") Long id) {
        return ResultStatusEnum.SUCCESS.ok(AccessRecordsCO.from(accessRecordsService.getById(id)));
    }

    /**
     * 新增数据
     *
     * @param accessRecords 实体对象
     * @return 新增结果
     */
    @PostMapping
    @ApiOperation(value = "新增通行记录")
    public ResultObject insert(@RequestBody AccessRecordsInsertCmd accessRecords) {
        accessRecordsService.save(accessRecords.toModel());
        return ResultStatusEnum.SUCCESS.ok();
    }

    /**
     * 修改数据
     *
     * @param accessRecords 实体对象
     * @return 修改结果
     */
    @PutMapping
    @ApiOperation(value = "修改通行记录")
    public ResultObject update(@RequestBody AccessRecordsUpdateCmd accessRecords) {
        accessRecordsService.updateById(accessRecords.toModel());
        return ResultStatusEnum.SUCCESS.ok();
    }

    /**
     * 删除数据
     *
     * @param id 主键结合
     * @return 删除结果
     */
    @DeleteMapping("/{id}")
    @ApiOperation(value = "删除通行记录")
    public ResultObject delete(@PathVariable("id") Long id) {
        return ResultStatusEnum.SUCCESS.ok();
    }
}

mapper

##导入宏定义
$!define

##设置表后缀(宏定义)
#setTableSuffix("Mapper")

##保存文件(宏定义)
#save("/mapper", "Mapper.java")

##包路径(宏定义)
#setPackageSuffix("Mapper")

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;

##表注释(宏定义)
#tableComment("表数据库访问层")
@Repository
public interface $!{tableName} extends BaseMapper<$!tableInfo.name> {

}

效果

package com.companyname.modulename.Mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.companyname.modulename.domain.AccessRecords;

/**
 * 通行记录(AccessRecords)表数据库访问层
 *
 * @author hmxchen
 * @since 2021-08-11 19:40:03
 */
@Repository
public interface AccessRecordsMapper extends BaseMapper<AccessRecords> {

}

insertCmd

##导入宏定义
$!define
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))

##设置表后缀(宏定义)
#setTableSuffix("InsertCmd")

##保存文件(宏定义)
#save("/domain/${entityName}DTO", "InsertCmd.java")

##包路径(宏定义)
#setPackageSuffix("domain.${entityName}DTO")
##定义实体对象名

##自动导入包(全局变量)
$!autoImport
import cn.hutool.core.bean.BeanUtil;
import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

##表注释(宏定义)
#tableComment("表实体类")
@ApiModel(description = "${tableInfo.comment}新增")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class $!{tableInfo.name}InsertCmd implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
    
    @ApiModelProperty(name = "${column.name}", value = "${column.comment}")
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
    public static $!{tableInfo.name} toModel(){
        return BeanUtil.toBean(this,$!{tableInfo.name}.class);
    }
}

效果

package com.companyname.modulename.domain.accessRecordsDTO;

import java.util.Date;
import cn.hutool.core.bean.BeanUtil;
import com.companyname.modulename.domain.AccessRecords;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * 通行记录(AccessRecords)表实体类
 *
 * @author hmxchen
 * @since 2021-08-11 19:40:22
 */
@ApiModel(description = "通行记录新增")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class AccessRecordsInsertCmd implements Serializable {
private static final long serialVersionUID = 304250113438957906L;
    
    @ApiModelProperty(name = "id", value = "${column.comment}")
    private Long id;
    
    @ApiModelProperty(name = "equipmentId", value = "设备id")
    private Long equipmentId;
    
    @ApiModelProperty(name = "jobId", value = "职位id")
    private Long jobId;
    
    @ApiModelProperty(name = "userId", value = "用户id")
    private Long userId;
    
    @ApiModelProperty(name = "recorType", value = "通行记录类型")
    private String recorType;
    
    @ApiModelProperty(name = "deviceUserId", value = "设备用户标识(蓝牙设备:用户id,人脸设备:设备的用户id:用户id_职位id_是否跨日)")
    private String deviceUserId;
    
    @ApiModelProperty(name = "userName", value = "用户名")
    private String userName;
    
    @ApiModelProperty(name = "time", value = "打卡记录时间")
    private Date time;
    
    @ApiModelProperty(name = "isCross", value = "是否跨日")
    private Boolean isCross;
    
    @ApiModelProperty(name = "checkInfoId", value = "打卡任务id")
    private Long checkInfoId;
    
    @ApiModelProperty(name = "clockType", value = "打卡类型(1:上班,2:下班)")
    private Boolean clockType;
    
    @ApiModelProperty(name = "faceUrl", value = "人脸图片路径")
    private String faceUrl;
    
    @ApiModelProperty(name = "createTime", value = "创建时间")
    private Date createTime;
    
    @ApiModelProperty(name = "updateTime", value = "更新时间")
    private Date updateTime;
    public static AccessRecords toModel(){
        return BeanUtil.toBean(this,AccessRecords.class);
    }
}

updateCmd

##导入宏定义
$!define
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))

##设置表后缀(宏定义)
#setTableSuffix("UpdateCmd")

##保存文件(宏定义)
#save("/domain/${entityName}DTO", "UpdateCmd.java")

##包路径(宏定义)
#setPackageSuffix("domain.${entityName}DTO")
##定义实体对象名

##自动导入包(全局变量)
$!autoImport
import cn.hutool.core.bean.BeanUtil;
import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

##表注释(宏定义)
#tableComment("表实体类")
@ApiModel(description = "${tableInfo.comment}更新")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class $!{tableInfo.name}UpdateCmd implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
    
    @ApiModelProperty(name = "${column.name}", value = "${column.comment}")
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
    public static $!{tableInfo.name} toModel(){
        return BeanUtil.toBean(this,$!{tableInfo.name}.class);
    }
}

效果

package com.companyname.modulename.domain.accessRecordsDTO;

import java.util.Date;
import cn.hutool.core.bean.BeanUtil;
import com.companyname.modulename.domain.AccessRecords;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * 通行记录(AccessRecords)表实体类
 *
 * @author hmxchen
 * @since 2021-08-11 19:40:40
 */
@ApiModel(description = "通行记录更新")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class AccessRecordsUpdateCmd implements Serializable {
private static final long serialVersionUID = -84673493181239661L;
    
    @ApiModelProperty(name = "id", value = "${column.comment}")
    private Long id;
    
    @ApiModelProperty(name = "equipmentId", value = "设备id")
    private Long equipmentId;
    
    @ApiModelProperty(name = "jobId", value = "职位id")
    private Long jobId;
    
    @ApiModelProperty(name = "userId", value = "用户id")
    private Long userId;
    
    @ApiModelProperty(name = "recorType", value = "通行记录类型")
    private String recorType;
    
    @ApiModelProperty(name = "deviceUserId", value = "设备用户标识(蓝牙设备:用户id,人脸设备:设备的用户id:用户id_职位id_是否跨日)")
    private String deviceUserId;
    
    @ApiModelProperty(name = "userName", value = "用户名")
    private String userName;
    
    @ApiModelProperty(name = "time", value = "打卡记录时间")
    private Date time;
    
    @ApiModelProperty(name = "isCross", value = "是否跨日")
    private Boolean isCross;
    
    @ApiModelProperty(name = "checkInfoId", value = "打卡任务id")
    private Long checkInfoId;
    
    @ApiModelProperty(name = "clockType", value = "打卡类型(1:上班,2:下班)")
    private Boolean clockType;
    
    @ApiModelProperty(name = "faceUrl", value = "人脸图片路径")
    private String faceUrl;
    
    @ApiModelProperty(name = "createTime", value = "创建时间")
    private Date createTime;
    
    @ApiModelProperty(name = "updateTime", value = "更新时间")
    private Date updateTime;
    public static AccessRecords toModel(){
        return BeanUtil.toBean(this,AccessRecords.class);
    }
}

dataCO

##导入宏定义
$!define
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))

##设置表后缀(宏定义)
#setTableSuffix("CO")

##保存文件(宏定义)
#save("/domain/${entityName}DTO", "CO.java")

##包路径(宏定义)
#setPackageSuffix("domain.${entityName}DTO")
##定义实体对象名

##自动导入包(全局变量)
$!autoImport
import cn.hutool.core.convert.Convert;
import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

##表注释(宏定义)
#tableComment("表实体类")
@ApiModel(description = "${tableInfo.comment}更新")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class $!{tableInfo.name}CO implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
    
    @ApiModelProperty(name = "${column.name}", value = "${column.comment}")
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
    public static $!{tableInfo.name}CO from($!tableInfo.name $!entityName){
         return Convert.convert($!{tableInfo.name}CO.class,$!entityName);
    }
}

效果

package com.companyname.modulename.domain.accessRecordsDTO;

import java.util.Date;
import cn.hutool.core.convert.Convert;
import com.companyname.modulename.domain.AccessRecords;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * 通行记录(AccessRecords)表实体类
 *
 * @author hmxchen
 * @since 2021-08-11 19:41:01
 */
@ApiModel(description = "通行记录更新")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class AccessRecordsCO implements Serializable {
private static final long serialVersionUID = -94311291821611763L;
    
    @ApiModelProperty(name = "id", value = "${column.comment}")
    private Long id;
    
    @ApiModelProperty(name = "equipmentId", value = "设备id")
    private Long equipmentId;
    
    @ApiModelProperty(name = "jobId", value = "职位id")
    private Long jobId;
    
    @ApiModelProperty(name = "userId", value = "用户id")
    private Long userId;
    
    @ApiModelProperty(name = "recorType", value = "通行记录类型")
    private String recorType;
    
    @ApiModelProperty(name = "deviceUserId", value = "设备用户标识(蓝牙设备:用户id,人脸设备:设备的用户id:用户id_职位id_是否跨日)")
    private String deviceUserId;
    
    @ApiModelProperty(name = "userName", value = "用户名")
    private String userName;
    
    @ApiModelProperty(name = "time", value = "打卡记录时间")
    private Date time;
    
    @ApiModelProperty(name = "isCross", value = "是否跨日")
    private Boolean isCross;
    
    @ApiModelProperty(name = "checkInfoId", value = "打卡任务id")
    private Long checkInfoId;
    
    @ApiModelProperty(name = "clockType", value = "打卡类型(1:上班,2:下班)")
    private Boolean clockType;
    
    @ApiModelProperty(name = "faceUrl", value = "人脸图片路径")
    private String faceUrl;
    
    @ApiModelProperty(name = "createTime", value = "创建时间")
    private Date createTime;
    
    @ApiModelProperty(name = "updateTime", value = "更新时间")
    private Date updateTime;
    public static AccessRecordsCO from(AccessRecords accessRecords){
         return Convert.convert(AccessRecordsCO.class,accessRecords);
    }
}

mapperXML


##导入宏定义
$!define
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))
##保存文件(宏定义)
#save("/mapper/xml", "Mapper.xml")

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="$!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper">

</mapper>

效果

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.companyname.modulename.mapper.AccessRecordsMapper">

</mapper>

我写好的模板token

40d3b2bdcc799208ab120e586f320b5f

使用方法:

image-20210811195629032

image-20210811195637748

填入即可,保存时间7*24

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值