Shiro_项目_采购报表功能

Open3D (C++) 点云边界提取【2025最新版】 Compute the boundary points of a point cloud.The implementation is inspired by the PCL implementation. Reference:https://pointclouds.org/documentation/classpcl_1_1_boundary_estimation.html 阅读详情

1 报表的使用及理解

1.1 什么是报表

[forms for reporting to the higher organizations] 向上级报告情况的表格。简单的说:报表就是用表格、图表等格式来动态显示数据,可以用公式表示为:“报表 = 多样的格式 + 动态的数据”。

1.2 报表的作用

直观 好看 体验性好
统计数据,供用户分析,作出决策

1.3 使用报表

1.3.1 引入js文件

datagrid-groupview.js

1.3.2 定义一个普通表格
<table id="purchaseBillItemGrid"></table>
1.3.3 创建表格
$(function(){
    $('#purchaseBillItemGrid').datagrid({
        nowrap:false,
        fitColumns:true,
        fit:true,
        fixed:true,
        fitColumns:true,
        toolbar:'#tb',
        url:'/purchasebillitem/findPurchaseBillItemVo',
        columns:[[
            {field:'id',title:'编号',width:50},
            {field:'supplier',title:'供应商名称',width:100,sortable:true},
            {field:'buyer',title:'采购员名称',width:80,sortable:true},
            {field:'product',title:'产品名称',width:80,sortable:true},
            {field:'productType',title:'产品分类',width:80,sortable:true},
            {field:'vdate',title:'交易时间',width:150,align:'center',sortable:true},
            {field:'num',title:'采购数量',width:60,align:'center'},
            {field:'price',title:'价格',width:60,align:'center'},
            {field:'amount',title:'小计',width:60,align:'center'},
            {field:'status',title:'状态',width:60,align:'center',formatter:statusFormatter}
        ]],
        groupField:'groupField',
        view: groupview,
        groupFormatter:function(value, rows){
            var totalNum = 0;
            //总金额
            var totalAmount = 0;
            //rows表示当前分组下面的所有行
            for (var i = 0; i < rows.length; i++) {
                var row = rows[i];//循环每一行
                totalNum += row.num;
                totalAmount += row.amount;
            }
            return value + ' - ' + rows.length + ' 条数据' +"  <span style='color:green;'>共"+totalNum+"件商品</span>" +"<span style='color:#5d2f80;'>总金额:"+totalAmount+"</span>";
        }
    });
});
1.3.4 后台查询相应的数据

构造对象 PurchasebillitemVo这个对象 — 封装数据

public class PurchaseBillItemVo {
    private Long id; //编号
    private String supplier; //供应商名称
    private String buyer; //采购员名称
    private String product; //产品名称
    private String productType; //产品分类
    private Date vdate; //交易时间
    private BigDecimal num; //采购数量
    private BigDecimal price; //价格
    private BigDecimal amount; //小计 = 价格*数量
    private Integer status;
    private String groupField = ""; //分组字段

    private String groupBy;
    //构造方法 创建对象
    public PurchaseBillItemVo(Purchasebillitem item,String groupBy){
        this.id = item.getId();
        this.supplier = item.getBill().getSupplier().getName();
        this.buyer = item.getBill().getBuyer().getUsername();
        this.product = item.getProduct().getName();
        this.productType = item.getProduct().getTypes().getName();
        this.vdate = item.getBill().getVdate();
        this.num = item.getNum();
        this.price = item.getPrice();
        this.amount = item.getAmount();
        this.status = item.getBill().getStatus();

        if ("o.bill.supplier.name".equals(groupBy)){
            this.groupField = this.supplier;
        }
        else if ("o.bill.buyer.username".equals(groupBy)){
            this.groupField = this.buyer;
        }
        else if("MONTH(o.bill.vdate)".equals(groupBy)){
            this.groupField = (DateUtils.toCalendar(vdate).get(Calendar.MONTH)+1) + "月";
        }else {
            this.groupField = this.supplier;
        }
    }

    public PurchaseBillItemVo() {
    }
    get()/set()方法

核心构造方法:封装前台需要的数据

if ("o.bill.supplier.name".equals(groupBy)){
    this.groupField = this.supplier;
}
else if ("o.bill.buyer.username".equals(groupBy)){
    this.groupField = this.buyer;
}
else if("MONTH(o.bill.vdate)".equals(groupBy)){
    this.groupField = (DateUtils.toCalendar(vdate).get(Calendar.MONTH)+1) + "月";
}else {
    this.groupField = this.supplier;
}
1.3.5 后台service层

IPurchasebillitemService层

//数据表格报表
List<PurchaseBillItemVo> findItems(PurchasebillitemQuery itemQuery);

PurchasebillitemServiceImpl层

@Override
public List<PurchaseBillItemVo> findItems(PurchasebillitemQuery itemQuery) {
    System.out.println(itemQuery);
    //查询所有采购明细
    List<Purchasebillitem> query = purchasebillitemRepository.findByQuery(itemQuery);
    List<PurchaseBillItemVo> itemVoList = new ArrayList<>();
    for (Purchasebillitem purchasebillitem : query) {
        PurchaseBillItemVo vo = new PurchaseBillItemVo(purchasebillitem,itemQuery.getGroupBy());
        itemVoList.add(vo);
    }
    return itemVoList;
}
1.3.6 高级查询PurchasebillitemQuery层
//接受时间和状态
private Date beginDate;
private Date endDate;
private Integer status;
private String groupBy = "o.bill.supplier.name";
@Override
public Specification createSpecification() {
    //如果日期不为空  将日期时间加一天
    Date tempDate = null;
    if(endDate != null){
        tempDate = DateUtils.addDays(endDate, 1);
    }
    //根据条件把数据返回即可
    return Specifications.<Purchasebillitem>and()
            .ge(this.beginDate !=null,"bill.vdate",this.beginDate )
            .lt(this.endDate != null,"bill.vdate",tempDate)
            .eq(this.status !=null ,"bill.status",this.status)
            .build();
}
1.3.7 最终效果图

在这里插入图片描述

2 图形报表

2.1 效果图

在这里插入图片描述在这里插入图片描述

2.2 怎么完成图形报表

已经有很多现成的框架 可以去完成图表
flash(Flex actionScript) —界面很好看 容易崩溃
HTML5 (Canvas画布) – 手动画图 很麻烦
现在已经有很多图形的报表的框架
echarts — https://echarts.baidu.com/ 百度开发–国内公司在使用
hightcharts – 全球在使用

2.3 使用报表

2.3.1 项目中引入HighChart

在这里插入图片描述

2.4 制作图形报表

2.4.1 引入js文件
<!-- 引入highchart的支持 -->
<script src="/easyui/plugin/highcharts/code/highcharts.js"></script>
<script src="/easyui/plugin/highcharts/code/highcharts-3d.js"></script>
<script src="/easyui/plugin/highcharts/code/modules/exporting.js"></script>
2.4.2 添加前台界面按钮&&添加一个弹出框
<a href="#" data-method="charts2D" class="easyui-linkbutton" iconCls="icon-search">2D图</a>
<a href="#" data-method="charts3D" class="easyui-linkbutton" iconCls="icon-search">3D图</a>
<div id="purchaseBillItemDialog" class="easyui-dialog" data-options="closed:true,modal:true" title="功能操作" style="width:600px;height:300px; ">
2.4.3 js代码
charts3D:function(){
  var param = searchForm.serializeObject();
    $.post("/purchasebillitem/findAllGraphic",param,function (result) {
        //发送ajax请求  到后台请求数据
        Highcharts.chart('purchaseBillItemDialog', {
            chart: {
                type: 'pie',
                options3d: {
                    enabled: true,
                    alpha: 45,
                    beta: 0
                }
            },
            title: {
                text: '消费图'
            },
            tooltip: {
                pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
            },
            plotOptions: {
                pie: {
                    allowPointSelect: true,
                    cursor: 'pointer',
                    depth: 35,
                    dataLabels: {
                        enabled: true,
                        format: '{point.name}'
                    }
                }
            },
            series: [{
                type: 'pie',
                name: "消费比例",
                data: result
            }]
        });
    })
    //3D图表 --打开对话框
    purchaseBillItemDialog.dialog('center').dialog('open');
}
2.4.4 后台PurchasebillitemQuery层拼接sql语句
public String getWhereSql(){
   String sql = "";
    if (beginDate != null && !"".equals(beginDate)){
        sql += " and b.vdate >= ?";
        params.add(beginDate);
    }
    if (endDate != null && !"".equals(endDate)){
        sql += " and b.vdate <= ?";
        params.add(endDate);
    }
    if (status != null && !"".equals(status)){
        sql += " and b.status = ?";
        params.add(status);
    }
    return sql.replace("and", "where");
}
2.4.5 PurchasebillitemServiceImpl层判断
//根据jpql语句 查询数据
@Override
public List findItemsBuJpql(PurchasebillitemQuery itemQuery) {
    List<Map> mapList = new ArrayList<>();
    String groupBy = itemQuery.getGroupBy();
    //根据jpql语句查询
    String jpql="select "+groupBy+",sum(b.totalAmount) from Purchasebillitem o join o.bill b "+itemQuery.getWhereSql()+" group by " + groupBy;
    List<Object[]> list = purchasebillitemRepository.findByJpql(jpql, itemQuery.getParams().toArray());
    for (Object[] objects : list) {
        Object name = objects[0];
        BigDecimal y = (BigDecimal) objects[1];
        Map map = new HashMap();
        map.put("name", name);
        map.put("y", y);
        mapList.add(map);
    }
    return mapList;
}
2.4.6 PurchasebillitemController层查询数据返回json数据到前台
//查询图形报表
@RequestMapping("/findAllGraphic")
@ResponseBody
public List findAllGraphic(PurchasebillitemQuery itemQuery){
    Map map = new HashMap();
    List list = purchasebillitemService.findItemsBuJpql(itemQuery);

    return list;
}
2.4.7 最终图形报表效果

在这里插入图片描述

YOLOv13改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性 Bw−wgt2h−hgt2weight2Bweight2w−wgt​2h−hgt​2​其中weight2weight = 2weight2。 阅读详情

相关推荐

将AD域服务从windows server 2008 R2 迁移到windows server 2019

添加一台windows 2019 的服务器并加入现有林的域中,并将角色升级为域控制器。然后迁移FSMO角色,使其成为PDC,然后降级旧DC,并提升域和林的功能级别。最后还要说下,Server 2008 R2我们还可以删除角色并退出当前域,这里就不做操作了。2)右键 mingling.com(我的域为mingling.com)--提升域级别功能。勾选 将域控制器添加到现有域,使用域管理员将DC2加入到现有的AD域。1)打开服务器管理器---工具---AD域和信任关系。2)运行域安装服务向导,选择下一步。

lionxam的博客 3659

highcharts配合layui弹出层实现图形数据列标记的增删改查

前言:公司项目最近因台风导致部分数据丢失,有了个新需求:在图形上添加标志提醒用户,数据丢失不是我的锅,是台风的锅. code: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="w...

anshuo8776的博客 1036

【SLAM论文笔记】SplaTAM论文小结

参考方法有ORB-SLAM3、Point-SLAM、NICE-SLAM、Kintinuous、ElasticFusion,测试数据集有ScanNet++、Replica、TUM-RGBD、Orig-ScanNet,SpaTAM并未在全部对比均为第一,表现最佳的是在ScanNet++、Replica,ScanNet++上SplaTAM方法位姿精度比第2名ORB-SLAM3高两个数量级,在TUM。上无稀疏SLAM结果,NICE-SLAM与Point-SLAM占优。SplaTAM基本做到了SOTA。

持之以恒 1008

SSJ项目总结

一、项目简介 设计并实现一个企业后台管理系统,包括员工管理、员工权限管理、产品采购管理以及报表展示等功能,同时不同的员工拥有不同的权限,可操作的功能受到权限的限制 二、项目框架 SSJ:Spring + SpringMVC + SpringDataJpa Spring 1、Spring是一个开源的轻量级的Java开发框架 2、简化应用程序的开发 3、IOC控制反转容器 4、aop面向切面编程 5、...

TheBestJeffrey的博客 683

ComfyUI 本地部署指南:概念、部署过程、生成图片、共享 WebUI 模型

ComfyUI 是一个基于节点的 Stable Diffusion 图形化用户界面。您可以通过将不同的节点连接在一起来构建生成图像的工作流程。一些常用的节点包括加载检查点模型(Load Checkpoint)、输入提示词(CLIP Text Encode)、指定采样器(KSampler)等。ComfyUI 将工作流程分解为可重新排列的元素,以便您可以轻松创建自己的元素。

水滴的博客 5032

把 MCP Server 直接装进 SAP ABAP:用 Unlimited Display Tools 打通 Agentic SDK 与 SAP ECC / S/4HANA 的最后一公里

摘要:AI与SAP集成的MCP解决方案 企业在AI集成中面临工具链复杂、数据对接繁琐的挑战。Model Context Protocol (MCP)通过标准化工具与数据暴露方式,将集成复杂度从N×M降至N+M。在SAP生态中,MCP Server for SAP直接部署于ABAP层,利用DDIC/CDS视图对接各类Agent SDK,避免中间件风险。 MCP核心包含三类对象: Tools:带元数据的可执行动作 Resources:结构化上下文数据 Prompts:可参数化提示模板 ABAP层实现MCP Se

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 679

java erp 视频_Java开发ERP项目视频教程

本套视频是传智播客推出的一套传统企业级项目开发课程,该视频专门针对有一定java基础(熟悉SSH集成框架)和前端基础(HTML JS JQuery.)。隐藏内容,您需要满足以下条件方可查看更新至第1章需求分析与系统设计 1课程介绍 2需求分析与设计 3系统架构 4开发工具 5数据库Oracle 6 SSH2框架搭建 7列表查询整理更新中,敬请期待下面章节第2章 增删改查功能的实现 1部门管理 2通...

weixin_36287955的博客 422

【网络与爬虫 62】小程序爬虫终极攻略:微信支付宝小程序数据采集完全指南

本文深入解析微信和支付宝小程序的爬虫技术,从基础架构分析到高级逆向工程,涵盖WXML/AXML模板解析、API接口拦截、网络流量分析等核心技术。通过实战案例和代码示例,帮助开发者掌握小程序数据采集的完整技术栈。

熵数实验室 3415

项目第一天 框架集成

一、使用到的技术 **spring SpringMVC SpringDateJpa shiro EasyUI POI EasyPOI** 二、整个项目完成的功能 ** 1. 导入导出功能 2. 产品模块 3. 采购订单 4. 报表 5. 销售模块 6. 邮件发送** 三、开始集成 3.1 整个项目结构 common 用来放常用的类 contoller 逻辑控...

不是程序员的程序员博客 200

【毕设实战】飞行器目标识别系统:基于YOLOv5的智能检测全流程教程,助你毕设脱颖而出

亲爱的同学,毕设是不是让你既期待创新又担心技术门槛?如果你的毕设方向是计算机视觉、智能检测,那这个绝对能成为你的“毕设王牌”。从数据准备到界面开发,我会把整个项目拆成“傻瓜式”步骤,让你能一步步做出属于自己的毕设成果。

know_F0727的博客 104

LoRa无线通信技术介绍(六)SX127X芯片收发程序讲解

接收LORA芯片SX127X的收发程序。

DT程序员的博客 1751

Shiro_项目_采购单

文章目录1 采购订单的模型分析2 代码实现2.1 一方(主表)2.2 多方(从表)2.3 Purchasebill 日期处理3 订单查询列表3.1 purchasebill.jsp3.2 purchasebill.js3.3 查询条件的添加4 添加修改 弹出对话框4.1 采购明细单4.2 明细单保存4.2.1 提交额外参数4.3 解决修改回显问题5 解决n-to-n问题 1 采购订单的模型分析 ...

Java_pipixia的博客 755

【一看就会】autoware universe项目结构解析——从一层一层直到control源码

下载安装autoware universe花了一天。下载好之后,按照网上说的跑了一下仿真是能跑的,证明下的代码没问题。然后就得看一下各模块实现的源码了。但是当我打开这些文件的时候。我勒个豆。这么多是个玩意儿。我连该启动哪个launch文件,哪个文件夹是干啥的都不知道。在我慢慢弄懂之后,我也记录这个庞大的项目的各个文件夹和里面的文件以及项目,以及自己使用时应该启动哪些launch文件。这篇文章目的就是通过找到control部分的源码,来帮助我们梳理这个庞大项目的各个文件的功能。

weixin_48386130的博客 2037

KIDS采购销售管理系统

{KIDS采购销售管理系统} 软件项目总结报告 编号:-{kpss}-CLOSUREREPORT 版本:1.0 变更记录 1 项目信息 2 项目说明 [本项目主要用于母婴店人事管理,采购管理,商品管理为一体的后台管理系统] 3 项目周期 1)项目进度总结: 项目共一个项目组(6人)总共耗时180天 本人主要负责产品模块和业务采购流程模块 3)改进措施: [项目为初级版本,后...

weixin_30823683的博客 177

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

基于SpringBoot+Shiro+MyBatis+EasyUI进销存管理

基于SpringBoot+Shiro+MyBatis+EasyUI进销存管理项目介绍????????进销存管理系统,采用SpringBoot+Shiro+MyBatis+EasyUI项目采用Maven构建,数据库文件存放在 sql/jxc.sql运行项目部分截图,登录界面,用户名admin,密码admin123进销存管理是企业管理中非常重要的一环,它涉及到企业的采购、销售、库存等方面的管理。随着互联网技术的发...

zgz102928的博客 380

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

昆山苏南交易批发市场_库存管理系统项目总结

开发环境:idea+Tomcat+MySQL 使用技术:SSSDJ(Spring+SpringMVC+SpringDateJpa)+EasyUI+H-ui.admin+layui+Maven 项目描述:为了解决以往传统表格记账方式导致的采购信息不明确,库存管理不到位的问题,该系统分为员工部门管理模块,权限管理模块,采购管理模块,入库管理模块,销售管理模块和报表模块等 框架搭建 一.基本配置 1.1...

Satan_xx的博客 557

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Aisell智能销售项目_总结

文章目录day1 集成SpringMVC&前端展示1 spring+springdatajpa搭建环境2 springmvc和spring集成3 创建repository-service-controller层day2 easyui结合项目完成CRUD1 新增2 修改3 新增和修改保存4 删除5 查询6 后台问题:day3 Shrio集成Spring&Authentication身...

Java_pipixia的博客 835

Aisell医疗器械智销存系统项目总结

主要功能:完成人员部门管理,产品管理,供应商管理,产品类型管理,产品出入库订单的生成和采购报表生成 主要使用的框架和插件 框架使用主要使用了Spring+Spring MVC+SpringDateJpa框架 前端使用的是easyui框架 权限过滤器使用的是shiro框架 数据库查询加入了jpa-spec插件(分页加排序查询更方便) 在添加数据框中使用了easyui中的validatebox 插件来...

weixin_43891663的博客 315

项目第十天 智慧能力系统项目总结

写在前面 智慧能力系统主要用来完成医疗器械进货、销售、存储等功能的一套系统,为你的进货销售库存等一系列的操作做到方便快捷,随时使用,只要的员工登录系统,就可以 查看你的一切相关信息,为你的相关业务提供准确的数据信息! 项目主要功能 *- 员工的管理,员工登录系统,赋予员工相应的权限,完成权限下相应的功能! 部门的管理,查看相关部门的功能 产品的管理,产品的明细,对相应的产品进行相应的操作! 产品...

不是程序员的程序员博客 167

生鲜宝智销存系统项目总结

系统简单概述 生鲜宝智销存系统 一套专门针对海鲜水产/蔬菜水果/肉制品干货等行业开发的一套进销存系统,特别适合于上述行业的档口、门店使用。 能快速处理上述行业的批发、零售业务,快速处理采购、销售、库存以及客户往来账款结算和查询。针对批发行业事务繁复的特点,系统化繁为简,能够以简易的方式处理复杂的批发业务,对操作员的要求极低。 系统实现目标 系统作为针对商业领域为客户提供完善的管理为目标,实现以...

a462772398的博客 490

SpringBoot+Spring Data Jpa++SpringMvc+Shiro安全认证+完整权限系统+easyui

技术:SpringBoot+Spring Data Jpa++SpringMvc+Shiro安全认证+完整权限系统+easyui SpringBoot架构,Shiro安全认证,完整权限系统

2012年开始工作,全栈开发老兵,目前已是一个老师,分享这么多年的心得体会 4449

云悦项目总结

本文是云悦智销进销存管理系统的项目总结报告,作为系列文章的完结篇。项目历时5个月,采用B/S架构和Spring全家桶技术栈,覆盖采购、销售、库存等核心业务模块。文章从项目背景、模块构成、个人负责内容(系统管理、采购模块及报表业务)、典型问题解决方案(懒加载、数据丢失等)以及技术栈复盘等维度进行全面总结。特别针对求职面试场景,提供了项目经验"话术"参考,帮助读者系统掌握ERP类项目的开发要点与难点。

qq_45619439的博客 456

基于SpringBoot的政府集中采购管理系统源码文档部署文档代码讲解等

本课题聚焦政府集中采购业务规范化、高效化需求,开展基于SpringBoot的政府集中采购管理系统的设计与实现,搭建合规、透明、可追溯的线上采购管理平台,解决传统政府采购流程分散、审批繁琐、信息公开不及时、全程监管难度大及数据统计滞后等问题。系统采用“SpringBoot后端+Vue前端”的成熟架构,后端以SpringBoot为核心框架,整合MyBatis-Plus优化数据库交互效率,搭配MySQL存储采购单位、供应商、采购项目、招标公告、中标结果、合同信息等核心数据,结合Shiro框架实现采购方、供应商、监

全网计算机/大数据辅导(自媒体)道祖第一人、全网粉丝100W+,专注于Java/python/大数据/微信小程序项目实战开发,以及产品测评宣传、工具推广等合作 851

shiro授权功能实例

shiro授权功能实例一、在配置文件中,配置需要权限信息&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem...

Bbb的博客 1477

项目业务总结

书山有路 销售商品主要以书籍为主 产品分类: 从小学、初中、高中等各个年龄阶段;从文学,哲学、政治等22个基大类;从考试实用性的书籍等。 本次开发人员为4人: 前端一人,后台三人 开发时长:3.5个月 项目技术点: idea(velocity,EasyCode) Spring+SpringMVC SpringDataJpa + jpa-spec 前端:jQuery,EasyUI,highchart...

qq_29563105的博客 299

java项目权限控制的理解和示例(基于shiro和传统拦截器filter两种方式)

shiro spring filter 权限控制 java项目 maven

小黄鸡kimhuhg 4506
上一篇: Shiro_项目_采购单
下一篇: Shiro_项目_审核入库订单&&库存预警&&发送邮件
虞铭轩、
博客等级 码龄7年 3粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值