构建高效医院固定资产管理系统:SpringBoot实战指南

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:在医疗信息化的背景下,一个高效、稳定的医院固定资产管理系统对于提高医疗运营效率和管理水平至关重要。本文详细介绍了采用Java技术栈和SpringBoot框架构建的医院固定资产平台。系统架构以SpringBoot为基础,结合SSM框架和微信小程序,提供了包括固定资产登记、分类管理、借用归还、报废维修和报表统计在内的核心功能。关键技术如MySQL数据库设计、JWT授权、Redis缓存、Docker容器化和微信小程序开发等的应用确保了系统的易用性、扩展性、敏捷性和移动互联特性。通过本系统,医疗机构能够有效地管理和跟踪其固定资产,为信息化建设提供支持。 基于springboot医院固定资产系统.zip

1. SpringBoot框架在医院固定资产管理系统的应用概述

1.1 SpringBoot框架简介

SpringBoot是一种广泛应用于企业级应用开发的开源框架,它的出现极大简化了基于Spring的应用开发过程。通过自动配置,SpringBoot能够帮助开发者快速启动和运行一个独立的Spring应用。它秉承"约定优于配置"的设计理念,大量减少了项目搭建时的配置工作,尤其在微服务架构中应用广泛。

1.2 医院固定资产管理系统的业务需求

医院固定资产管理是一个复杂的领域,涉及到资产的登记、分类、借用、归还、报废和维修等全生命周期管理。一个稳定且高效的资产管理系统的建立对于提高医院运营效率和资产管理准确性至关重要。

1.3 SpringBoot在本系统中的应用价值

在医院固定资产管理系统的开发中,SpringBoot提供了许多便捷功能,例如:快速搭建项目、简化依赖管理、内嵌的Web服务器等。这些功能极大地提高了开发效率和应用的可靠性。通过使用SpringBoot,本系统能够更加专注在业务逻辑上,而不必花费太多时间在配置和环境搭建上。

2. SSM框架与SpringBoot的深度集成

SSM框架是由Spring、SpringMVC和MyBatis三个开源框架整合而成的轻量级框架组合,广泛用于Java EE企业级应用开发。然而,随着技术的发展,SSM框架已逐渐暴露出一些局限性,如配置繁琐、开发效率低等问题。通过引入SpringBoot框架,可以有效解决这些问题,并进一步提升开发效率和应用性能。

2.1 SpringBoot与SSM框架的整合方案

2.1.1 传统SSM框架的局限性分析

在引入SpringBoot之前,传统的SSM框架配置繁琐,每个组件都需要进行大量的配置,这不仅增加了开发者的配置负担,还容易出错。例如,在Spring的配置文件中,我们需要声明大量的bean定义,而在SpringMVC的配置中,我们要配置视图解析器、静态资源处理等。MyBatis的配置同样需要指定映射文件和SQL会话工厂。整个过程繁琐且重复,维护成本高。

2.1.2 SpringBoot与SSM框架整合的优势

SpringBoot的自动配置功能能够简化SSM框架的应用,通过引入starter依赖,可以自动配置项目中所使用的各种组件,极大减少XML配置。SpringBoot还能提供默认的配置项,这使得快速启动一个项目变得非常容易。整合SSM和SpringBoot之后,我们能够享受到SpringBoot的更多特性,如内置的Web服务器支持、日志管理、度量指标等。

2.2 基于SpringBoot的SSM项目优化实践

2.2.1 项目结构的优化

在整合SpringBoot后,SSM项目的目录结构也应进行调整以适应SpringBoot项目的特点。传统SSM项目结构中,通常会有 controller service dao 等目录。而SpringBoot项目则鼓励使用 src/main/java 作为源代码目录,并通过组件扫描自动识别包中的组件。

下面是一个简化后的SpringBoot项目目录结构示例:

src/
|-- main/
|   |-- java/
|   |   |-- com.example.demo/
|   |       |-- DemoApplication.java
|   |       |-- controller/
|   |       |-- service/
|   |       |-- dao/
|   |       |-- entity/
|   |       |-- config/
|   |-- resources/
|       |-- application.properties

2.2.2 依赖管理和自动配置的应用

SpringBoot项目的 pom.xml 中会加入 spring-boot-starter-web 依赖来启动Web项目。SpringBoot会根据依赖关系自动配置相关的组件,如SpringMVC、Tomcat等。

一个基本的 pom.xml 依赖示例如下:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <!-- 其他依赖... -->
</dependencies>

2.2.3 性能优化策略

在整合SSM和SpringBoot后,性能优化可以包括减少HTTP请求、压缩静态资源、优化数据库访问等策略。SpringBoot提供了对静态资源的默认配置,如开启对静态资源的压缩,可以在 application.properties 中设置:

spring.resources.chain.gzipped=true

此外,可以使用SpringBoot内置的监控工具Actuator来监控应用的性能指标。

2.3 集成过程中的问题与解决方案

2.3.1 集成中的常见问题分析

在整合SSM与SpringBoot的过程中,常见的问题包括版本兼容性问题、依赖冲突以及项目结构迁移等。例如,SpringBoot对JPA的版本有特定要求,如果SSM项目中的MyBatis与之不兼容,需要进行升级或降级处理。

2.3.2 实际问题解决案例分享

假设在迁移过程中遇到SpringBoot与MyBatis版本不兼容的问题,可以通过升级MyBatis-Spring到兼容的版本来解决。具体操作如下:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.3</version>
</dependency>

然后在 application.properties 中对MyBatis进行配置:

mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.entity

通过这些步骤,可以有效地解决集成中遇到的版本兼容性问题。

3. 微信小程序在医院固定资产管理中的应用与开发

微信小程序作为近年来移动互联网领域的一个重大创新,为各行各业提供了便捷的轻应用解决方案,尤其在医院固定资产管理中发挥了重要作用。本章将深入探讨微信小程序在医院固定资产管理中的应用及开发细节。

3.1 微信小程序的移动管理应用

3.1.1 微信小程序与移动管理的结合优势

微信小程序为用户提供了一种便捷的无需下载安装的应用体验,其轻量级的特性非常契合医院固定资产管理的移动化需求。小程序具有以下优势:

  • 无需安装 : 小程序可以即点即用,用户无需下载安装,减少了设备的存储负担。
  • 快速访问 : 通过微信快速入口,用户可以快速打开小程序,提高管理效率。
  • 社交属性 : 微信的社交属性能够帮助医院固定资产管理信息在内部员工间快速传播和共享。
  • 平台支持 : 微信平台的稳定性和庞大的用户群体为小程序的推广提供了坚实基础。

3.1.2 小程序在医疗行业的应用场景

在医疗行业中,微信小程序可以用于以下几个典型场景:

  • 资产管理 : 实现对医院固定资产的实时查询、借用、归还和维护等操作。
  • 数据报表 : 生成并展示各类资产的使用情况和统计报表。
  • 消息通知 : 对资产状态变动进行即时通知,例如设备维修、保养提醒等。
  • 用户认证 : 实现用户登录和权限管理,保障信息的安全性。

3.2 微信小程序开发流程详解

3.2.1 开发前的准备工作

在开发小程序之前,需要完成以下准备工作:

  • 需求分析 : 明确小程序要实现的功能、目标用户群体、操作流程等。
  • 技术选型 : 确定技术框架和工具,比如使用微信官方提供的开发工具。
  • 界面设计 : 设计简洁直观的用户界面和交互流程,增强用户体验。
  • 权限设置 : 根据管理需求设置不同的用户权限,保障数据安全。

3.2.2 小程序前端界面的设计与实现

小程序的前端界面设计对于提供良好的用户体验至关重要。实现步骤如下:

  • 布局设计 : 使用 wxss 进行布局设计,构建响应式界面适应不同屏幕尺寸。
  • 组件应用 : 利用微信小程序提供的丰富组件,如 view button 等,快速构建界面。
  • 动态交互 : 结合 wxml javascript 实现动态数据渲染和用户交互逻辑。

3.2.3 后端接口的设计与对接

小程序前端与后端接口的高效对接是实现业务逻辑的关键。需要考虑以下因素:

  • 接口规范 : 设计RESTful API或GraphQL等接口,确保前后端分离,便于维护。
  • 数据格式 : 确定数据交换格式,通常使用JSON格式。
  • 性能优化 : 后端接口需要做好缓存和数据库查询优化,提升用户体验。

3.3 小程序与医院系统数据交互技术分析

3.3.1 数据交互的实现方式

微信小程序与医院后台系统数据交互通常通过HTTP请求实现,以下是技术实现细节:

  • 数据请求 : 使用 wx.request 发起网络请求,获取医院资产管理的数据。
  • 数据处理 : 对获取的数据进行解析、格式化,展示在小程序页面上。
  • 数据上传 : 用户操作后,通过 wx.uploadFile 等方法将数据发送到后台。

3.3.2 数据安全和隐私保护措施

在数据交互过程中,保护用户隐私和数据安全是重中之重,可采取以下措施:

  • 加密通信 : 使用HTTPS协议加密数据传输过程,防止中间人攻击。
  • 身份验证 : 实现OAuth等身份验证机制,确保操作的安全性。
  • 权限控制 : 在后端实现严格的权限控制,仅允许授权用户访问特定数据。

以上各章节详细介绍了微信小程序在医院固定资产管理中的应用开发过程,包括与移动管理的结合优势、小程序开发流程详解以及数据交互技术分析等内容。通过本章节的学习,开发者可以对微信小程序在医疗行业的应用有一个全面的了解,并能够根据实际需求设计、开发出满足医院管理需求的小程序应用。

4. 医院固定资产管理系统的核心功能实现

4.1 资产登记与分类管理功能

4.1.1 资产信息录入的流程与方法

在医院固定资产管理系统中,资产信息的准确录入是整个系统运行的基础。资产信息录入流程通常包括以下步骤:

  1. 资产信息采集 :首先,需要对医院中的固定资产进行详细的清查,包括资产的名称、型号、购买日期、使用部门、负责人等信息的收集。
  2. 资产分类 :根据资产的属性和用途,对资产进行分类管理,如医疗设备、家具、计算机设备等。
  3. 系统录入 :在系统中创建资产登记界面,输入资产信息,确保信息的准确性和完整性。
  4. 审核与确认 :录入完毕后,需要相关负责人进行审核和确认,确保资产信息的正确性。
  5. 数据存储 :经过审核确认无误后,将资产数据存储到数据库中,并生成对应的资产条目。
代码块实例
// 示例代码:资产信息实体类
public class Asset {
    private String assetId;
    private String name;
    private String model;
    private Date purchaseDate;
    private String department;
    private String personInCharge;
    // 省略getter和setter方法
}

// 资产信息录入服务类
@Service
public class AssetService {
    @Autowired
    private AssetRepository assetRepository;

    public void addAsset(Asset asset) {
        // 校验资产信息
        validateAsset(asset);
        // 将资产信息保存到数据库
        assetRepository.save(asset);
    }

    private void validateAsset(Asset asset) {
        // 这里添加校验逻辑
    }
}

// 资产信息录入控制器
@RestController
@RequestMapping("/api/assets")
public class AssetController {
    @Autowired
    private AssetService assetService;

    @PostMapping("/register")
    public ResponseEntity<?> registerAsset(@RequestBody Asset asset) {
        assetService.addAsset(asset);
        return new ResponseEntity<>("Asset registered successfully", HttpStatus.CREATED);
    }
}

在上述代码中, Asset 类代表资产实体,包含了资产的基本信息。 AssetService 类提供了一个 addAsset 方法用于添加资产,并包含了简单的校验逻辑。 AssetController 类的 registerAsset 方法接收前端传来的资产信息,并调用 AssetService 中的方法实现资产信息的录入。

4.1.2 分类管理的逻辑设计

分类管理是固定资产管理的重要组成部分,有助于提高资产的使用效率和管理水平。分类管理的逻辑设计应考虑以下几点:

  1. 分类依据 :制定明确的分类标准,如按照资产的使用部门、使用目的、价值等级等进行分类。
  2. 动态分类 :系统应支持动态分类,即资产可以根据其使用情况或状态改变而重新分类。
  3. 分类的查询与修改 :系统应该允许用户方便地查询和修改资产的分类信息。
代码块实例
// 示例代码:资产分类服务类
@Service
public class AssetCategoryService {
    @Autowired
    private AssetCategoryRepository categoryRepository;

    public List<AssetCategory> getAllCategories() {
        return categoryRepository.findAll();
    }

    public AssetCategory updateCategory(AssetCategory category) {
        return categoryRepository.save(category);
    }
}

// 资产分类控制器
@RestController
@RequestMapping("/api/categories")
public class AssetCategoryController {
    @Autowired
    private AssetCategoryService categoryService;

    @GetMapping
    public ResponseEntity<?> getAllCategories() {
        List<AssetCategory> categories = categoryService.getAllCategories();
        return new ResponseEntity<>(categories, HttpStatus.OK);
    }

    @PutMapping("/{id}")
    public ResponseEntity<?> updateCategory(@PathVariable String id, @RequestBody AssetCategory newCategory) {
        AssetCategory category = categoryService.updateCategory(newCategory);
        return new ResponseEntity<>(category, HttpStatus.OK);
    }
}

在此代码段中, AssetCategoryService 类提供了获取所有分类和更新分类的功能。 AssetCategoryController 类的两个方法分别用于获取分类列表和更新指定分类信息。这样设计可以保证分类管理的灵活性和动态性。

4.2 资产借用与归还流程管理

4.2.1 借用归还流程的业务规则

资产借用与归还是医院固定资产管理中的日常操作,涉及到的业务规则有:

  1. 用户身份验证 :只有经过授权的医院员工才能借出资产。
  2. 借用申请 :资产借用前需要提交申请,并等待审批。
  3. 借用审批 :系统应支持审批流程,审批通过后才能进行资产的借出。
  4. 归还流程 :资产归还时需要进行资产状态检查,并记录归还信息。
代码块实例
// 示例代码:资产借用审批服务类
@Service
public class AssetBorrowService {
    @Autowired
    private AssetBorrowRepository borrowRepository;

    public AssetBorrow审批AssetBorrow(AssetBorrow borrow) {
        // 审批逻辑
        return borrow;
    }

    public AssetBorrow记录归还(AssetBorrow borrow) {
        // 归还逻辑
        return borrow;
    }
}

// 资产借用审批控制器
@RestController
@RequestMapping("/api/borrow")
public class AssetBorrowController {
    @Autowired
    private AssetBorrowService borrowService;

    @PostMapping("/apply")
    public ResponseEntity<?> applyForBorrow(@RequestBody AssetBorrow borrow) {
        // 申请逻辑
        return new ResponseEntity<>("Application for borrow submitted", HttpStatus.OK);
    }

    @PostMapping("/approve/{id}")
    public ResponseEntity<?> approveBorrow(@PathVariable String id, @RequestBody ApprovalStatus status) {
        AssetBorrow borrow = borrowService.审批AssetBorrow(borrowRepository.findById(id).orElse(null));
        // 审批结果逻辑
        return new ResponseEntity<>("Borrow approved", HttpStatus.OK);
    }
}

上述代码提供了资产借用申请的提交、审批以及归还记录的处理逻辑。 AssetBorrowService 类负责借用审批和归还记录,而 AssetBorrowController 类则处理相关的HTTP请求。

4.2.2 流程自动化与状态监控

为了提升资产借用和归还流程的效率,采用流程自动化和状态监控是十分必要的。流程自动化可以减少手动操作,避免错误,而状态监控则能够实时了解资产的使用情况。

表格展示

| 功能点 | 描述 | |--------------------------|--------------------------------------------------------------| | 自动化审批流程 | 根据预设规则自动处理资产借用申请。 | | 实时状态更新 | 资产状态实时更新,包括借用、归还、维修等状态。 | | 资产逾期提醒 | 对即将或已经逾期的资产借用情况进行提醒。 | | 资产使用情况分析报告 | 生成资产使用情况的统计分析报告,帮助管理人员决策。 | | 异常情况报警 | 当资产出现异常情况时,系统能够及时发出报警并通知相关人员。 |

资产借用与归还流程的自动化和状态监控,使得资产管理变得更加智能和高效。通过以上表格展示的功能点,可以更直观地理解各功能在流程自动化中的作用。

4.3 报废与维修管理模块详解

4.3.1 报废流程的设计与实施

报废流程是指对于那些无法再继续使用的固定资产,进行合理处理的一系列步骤。报废流程设计的关键点如下:

  1. 报废申请 :资产达到报废条件时,由使用部门提交报废申请。
  2. 报废审批 :相关审批部门根据报废标准进行审批。
  3. 报废执行 :审批通过后,进行实物资产的报废处理,并在系统中更新资产状态。
  4. 报废记录 :对报废过程进行详细记录,以便于日后的审计和管理。
代码块实例
// 示例代码:资产报废服务类
@Service
public class AssetScrapService {
    @Autowired
    private AssetRepository assetRepository;

    public void submitScrapApplication(Asset asset) {
        // 提交报废申请逻辑
    }

    public boolean approveScrapApplication(Asset asset) {
        // 报废审批逻辑
        return true;
    }

    public void performScrap(Asset asset) {
        // 执行报废逻辑
        asset.setStatus("Scrapped");
        assetRepository.save(asset);
    }
}

// 资产报废控制器
@RestController
@RequestMapping("/api/assets/scrap")
public class AssetScrapController {
    @Autowired
    private AssetScrapService scrapService;

    @PostMapping("/apply")
    public ResponseEntity<?> applyForScrap(@RequestBody Asset asset) {
        scrapService.submitScrapApplication(asset);
        return new ResponseEntity<>("Scrap application submitted", HttpStatus.OK);
    }

    @PostMapping("/approve/{id}")
    public ResponseEntity<?> approveScrap(@PathVariable String id) {
        Asset asset = assetRepository.findById(id).orElse(null);
        if (scrapService.approveScrapApplication(asset)) {
            scrapService.performScrap(asset);
            return new ResponseEntity<>("Asset scrapped", HttpStatus.OK);
        }
        return new ResponseEntity<>("Scrap application failed", HttpStatus.BAD_REQUEST);
    }
}

在上述代码中, AssetScrapService 类提供了提交报废申请、执行报废审批以及执行报废的方法。而 AssetScrapController 类则处理报废流程相关的HTTP请求。

4.3.2 维修管理的流程优化

维修管理流程的优化可以显著提升医院固定资产管理的效率,包括:

  1. 维修申请 :对于需要维修的资产,通过系统提交维修申请。
  2. 维修审批 :维修部门根据申请和资产情况审批维修工作。
  3. 维修记录 :详细记录每次维修的内容、时间和维修人员,便于追踪和管理。
  4. 维修效果评估 :对维修后的资产进行评估,确保其能够正常投入使用。
mermaid流程图实例
graph LR
    A[开始] --> B[提交维修申请]
    B --> C{维修审批}
    C -->|通过| D[安排维修工作]
    C -->|未通过| E[拒绝维修申请]
    D --> F[执行维修]
    F --> G[维修效果评估]
    G -->|合格| H[维修完成]
    G -->|不合格| I[重新维修]
    E --> J[结束]
    H --> J
    I --> D

通过上述流程图,可以清晰地看到维修管理从开始到结束的整个过程,优化的目的是为了确保每一项维修工作都能被高效、准确地完成。

维修管理流程的优化还包括维修工作的及时性和维修效果的评估,这有助于提升整个医院固定资产管理的水平。通过维修管理模块的合理设计与实施,医院可以最大限度地延长资产的使用寿命,减少不必要的资产支出。

5. 系统优化与扩展应用

5.1 报表统计功能与决策支持

5.1.1 报表生成的技术实现

报表功能在医院固定资产管理中承担着数据汇总和决策支持的重要角色。技术实现方面,通常使用JasperReports库或Spring Boot集成的报表生成工具来实现。首先,定义报表的模板,然后在系统中将收集到的资产数据动态填充进模板中,生成所需的报表。

以下是一个简单的代码示例,展示如何使用JasperReports生成报表:

Map<String, Object> params = new HashMap<>();
// 填充报表所需的数据
params.put("datasource",资产管理数据集合);

// 加载报表模板文件
File file = new File("报表模板路径");
InputStream inputStream = new FileInputStream(file);
JasperReport JasperReport = ***pileReport(inputStream);

// 生成报表输出流
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
JasperPrint JasperPrint = JasperFillManager.fillReport(JasperReport, params, new JREmptyDataSource());

// 输出为PDF格式
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(new SimpleExporterInput(JasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(byteArrayOutputStream));
exporter.exportReport();

5.1.2 报表数据的分析与决策支持

报表数据不仅需要能够展示出来,还需要有深度的分析能力。系统中可以集成一些数据分析工具,如Apache Spark,对大量数据进行处理和分析。这些工具可以帮助挖掘数据背后的价值,为医院管理层提供更准确、及时的决策支持。

5.2 数据库与缓存技术的应用

5.2.1 MySQL数据库设计优化

数据库是系统的核心,优化设计包括索引优化、查询优化、存储引擎选择等方面。例如,对于经常查询的资产信息表,可以添加复合索引来加快查询速度;对于大容量数据的存储,可以使用InnoDB存储引擎。此外,定期进行数据库维护,如表的优化和修复,也是保证数据库性能的重要措施。

5.2.2 Redis缓存技术在系统中的应用

缓存是提升系统响应速度的重要手段。在医院固定资产管理中,Redis可以用来缓存那些频繁读取且不常修改的数据,如资产列表和统计信息。通过缓存,可以减少对数据库的访问次数,加快响应速度,减轻数据库的压力。

以下是一个简单的代码示例,展示如何使用Spring Boot集成Redis缓存:

@Component
public class RedisCache {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    public void set(String key, String value) {
        stringRedisTemplate.opsForValue().set(key, value);
    }

    public String get(String key) {
        return stringRedisTemplate.opsForValue().get(key);
    }
}

5.3 系统的安全性与稳定性

5.3.1 JWT授权机制的实现与应用

为了保障系统的安全性,可以采用JSON Web Token(JWT)作为授权机制。JWT是一种紧凑型、自包含的方式,用于在各方之间安全地传输信息。它由三部分组成:Header(头部)、Payload(有效载荷)和Signature(签名)。在用户登录后,系统会返回一个JWT,之后用户访问受保护的路由或资源时,需要携带JWT。

以下是一个简单的代码示例,展示如何使用JWT:

// 生成JWT的代码示例
public String generateJWT(Map<String, Object> claims) {
    return Jwts.builder()
            .setClaims(claims)
            .signWith(SignatureAlgorithm.HS512, secretKey)
            .compact();
}

5.3.2 Docker容器化部署与运维

Docker容器化技术可以有效地简化部署和运维流程。通过创建一个包含所有运行环境依赖的容器,可以确保应用在不同环境中都能以一致的方式运行。Docker还可以配合Kubernetes进行容器编排,提高系统的可扩展性和高可用性。

以上章节内容是系统优化与扩展应用的深入分析,通过报表统计、数据库优化、缓存技术以及安全性与稳定性方面的讨论,为读者提供了一整套解决方案和实践案例,帮助读者更全面地理解和应用这些技术。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:在医疗信息化的背景下,一个高效、稳定的医院固定资产管理系统对于提高医疗运营效率和管理水平至关重要。本文详细介绍了采用Java技术栈和SpringBoot框架构建的医院固定资产平台。系统架构以SpringBoot为基础,结合SSM框架和微信小程序,提供了包括固定资产登记、分类管理、借用归还、报废维修和报表统计在内的核心功能。关键技术如MySQL数据库设计、JWT授权、Redis缓存、Docker容器化和微信小程序开发等的应用确保了系统的易用性、扩展性、敏捷性和移动互联特性。通过本系统,医疗机构能够有效地管理和跟踪其固定资产,为信息化建设提供支持。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值