自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(560)
  • 收藏
  • 关注

转载 稳妥构造函数模式

稳妥构造函数模式​ 道格拉斯·克罗克福德(Douglas Crockford)发明了 JavaScript 中的稳妥对象(durable object)这个概念,所谓稳妥对象,指的是没有公共属性,而且其他方法也不引用 this 的对象。稳妥对象最适合在一些安全的环境中(这些环境中会禁止使用 this 和 new ),或者在防止数据被其他应用程序(如 Mashup 程序)改动时使用。稳妥构造函数遵循与寄生构造函数类似的模式,但有两点不同:新创建对象实例方法不引用 this不适用 new 操作符.

2021-08-25 15:21:11 249

转载 CSS奇思妙想 -- 使用 background 创造各种美妙的背景

本文属于 CSS 绘图技巧其中一篇,系列文章:在 CSS 中使用三角函数绘制曲线图形及展示动画CSS奇思妙想 -- 使用 CSS 创造艺术将介绍一些利用 CSS 中的 background、mix-blend-mode、mask 及一些相关属性,制作一些稍微复杂、酷炫的背景。通过本文,你将会了解到 CSS background 中更为强大的一些用法,并且学会利用 background 相关的一些属性,采用不同的方式,去创造更复杂的背景图案。在这个过程中,你会更好的掌握不同的渐变技巧,更深层次的理解.

2021-08-24 15:21:07 420

转载 React Context 理解和使用

写在前面​ 鉴于笔者学习此内容章节 React官方文档 时感到阅读理解抽象困难,所以决定根据文档理解写一篇自己对Context的理解,文章附带示例,以为更易于理解学习。更多内容请参考 React官方文档​ 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是笔者创作的最大动力!​ 如果发现文章有问题也可以在文章下方及时联系笔者哦,相互探讨一起进步~基本概念Context是 React中为了避免在不同层级组件中逐层传递props的产物,在没有Context的时候父组件向子组件传递.

2021-08-22 08:20:07 469

转载 webuploader批量导入文件

第一步:引入文件<!--引入CSS--><link href="~/Content/JS/webuploader.css" rel="stylesheet" /><!--引入JS--><script src="~/Content/JS/webuploader.js"></script>第二步: //文本多个上传function UploadMultiFile() {var uploader = WebUploader.create.

2021-08-21 20:21:18 165

转载 关于HTTP的一些概念

各种概念HTTPHTTP(HyperText Transfer Protocol) —— 超文本传输协议它可以拆成三个部分:“超文本”、“传输”、“协议”协议必须要有两个或多个参与者,也就是“协”HTTP是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流 通信的规范,以及相关的各种控制和错误处理方式。HTTP是一个“传输协议”,所谓“传输(Transfer)”,就是把一堆东西从A点搬到B点,或者从B点搬到A点,即“A<===>B”。其中间...

2021-08-21 15:21:04 290

转载 OO第一单元总结

OO第一次单元总结​ 前三次的OO作业的内容总的来说都是围绕着多项式求导,从最简单的x的幂函数的求导逐渐增加难度,最后完成含有三角函数和嵌套因子的多项式求导。但是在这三次的程序编写和debug中,我也出现了大大小小的问题,所以在此,我对于OO前三次作业的完成做一个总结,使自己对于存在的问题能够认识得更加清晰。第一次作业(1)总体概括题目要求简单多项式求导,多项式的每一项中只含常数和x的幂函数。思路在第一次作业中,多项式的构造比较简单,所以在这个时候为了更加直观、方便,我选择.

2021-08-20 15:21:13 76

转载 对于微服务的一点思考

公司说我们的开发方式是敏捷开发,实际上只是使用了一些敏捷开发的方法,只有遵守敏捷开发的价值观和原则,才能算是敏捷开发。微服务也是一样,不是说拆分成多个服务去部署,就叫做微服务。也不是采用市面上常用的微服务框架,就是微服务了。上面这段话是我对微服务的简单理解。随着公司业务的发展,部门领导要求其中一个业务量比较大的要做负载。只给了一周的时间,包括开发和自测。因为时间比较紧,采用了最简单快捷的处理方式:缓存统一放Redis,起了一个辅助项目来做公共和定时器等方面的处理。此种方式基本把压力推到了Redis中.

2021-08-18 20:21:13 118

转载 结构型模式:适配器模式

文章首发:结构型模式:适配器模式七大结构型模式之一:适配器模式。简介姓名 :适配器模式英文名 :Adapter Pattern价值观 :老媒人,牵线搭桥个人介绍 :Convert the interface of a class into another interface clients expect.Adapter lets classes work together that couldn't otherwise because of incompatible interface.

2021-08-18 15:21:04 78

转载 分布式文件系统 - fastDFS

fastDSF介绍FastDFS是用c语言编写的一款开源的分布式文件系统,它是由淘宝资深架构师余庆编写并开源。FastDFS专为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。fastDSF架构FastDFS架构包括 Tracker server和Storageserver。客户端请求Tracker server进行文件上传、下载,通过Trackerserver调度最终由St...

2021-08-17 08:20:05 198

转载 心知天气数据API 产品的高并发实践

心知天气数据API产品的高并发实践心知天气作为国内领先的商业气象服务提供商,天气数据API产品从公司创立以来就一直扮演着很重要的角色。2009年API产品初次上线,历经十年,我们不断用心迭代,已经为数百家企业客户提供了超过540亿次稳定可靠的数据服务。在心知天气官网首页一直跳动的调用量数字就实时展示了整个天气API产品的服务状态。目前,心知天气数据API的QPS在高峰时期已经达到数千的量级,如何承载这样海量的并发请求,使客户能稳定及时的获取到所需数据自然也是心知技术团队一路以来不断探索的主...

2021-08-16 15:21:05 251

转载 单例模式

单例模式有饿汉模式和懒汉模式两种实现。1.饿汉模式饿汉模式下,在类加载的时候,就创建了实例。特点是加载类时比较慢,但运行获取对象的速度比较快。并且是线性安全的。class Singleton{ //1.将构造方法私有化,不允许外部直接创建对象 private Singleton(){ } //2.创建类的唯一实例 private static Singleton instance = new Singleton(); //3.提供一个用于获取实例的方法 .

2021-08-14 15:21:08 213

转载 (入门SpringBoot)SpringBoot加接口操作日志好方法(九)

用Spring的切面去做,慕课网上的大神的小妙招,被我拷贝下来了。import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.*;import org.springframework.stereotype.Component;import org.springframework.util.StringUtils;import org.springframework.web.context.request.Request..

2021-08-13 20:21:17 137

转载 分布式架构演进过程

分布式架构演进过程1.基本概念1 :分布式2 :高可用3 :集群4 :负载均衡5 :正向代理和反向代理2.架构演进2.1 单机架构2.2 第一次演进 :Tomcat与数据库分开部署2.3 第二次演进 :引入本地缓存和分布式缓存2.4 第三次演进 :引入反向代理实现负载均衡2.5 第四次演进 :数据库读写分离2.6 第五次演进 :数据库按业务分库2.7 第六次演进 :把大表拆分为小表2.8 第七次演进 :使用LVS或F5来使多个Nginx负载均衡2.9 第八次演进 :通过D...

2021-08-13 15:21:15 297 1

转载 Matlab备忘录模式

备忘录模式(Memento)用于保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式,主要包括源发器,备忘录以及负责人。源发器:普通类,可以创建备忘录,也可以使用备忘录恢复状态。备忘录:储存原发器内部状态,处理原发器和负责人类,备忘录不直接和其他类交互。负责人:保存备忘录,但是不对备忘录操作或检查存档、undo、数据库的事务管理用到了备忘录模式。本文参考以下类图,用matlab语言实现备忘录模式。Originator.mclassdef Originator < h..

2021-08-13 08:20:06 143

转载 设计模式-模板方法

模板方法关注公众号 JavaStorm 获取更多精彩。模板方法模式在一个方法中定义了一个算法骨架,并且 final 修饰防止子类重写。方法中包含一些抽象方法,也就是一些步骤延迟到字类实现。模板方法使得在不改变算法结构的情况下,重新定义算法中的某些步骤。完整代码可以查看GitHub:https://github.com/UniqueDong/zero-design-stu类图模式实现在实现模板方法模式时,开发抽象类的软件设计师和开发具体子类的软件设计师之间可以进行协作。一个设计师负责给出一个.

2021-08-11 15:21:11 90

转载 技术境界的二三四

两种能力境界1.解决问题在工程师中有一种人被称为”救火队长“。哪里出了问题,哪里就有他的身影,他的出现,燃眉之急就有救了。他们是解决问题的高人。但是“救火队长”在晋升上往往会遇到瓶颈。对标人物:漫威-美国队长每天严阵以待,随时准备拯救世界。无法接受钢铁侠防患于未然用机器来解决问题解放自己的方式。2.发现问题更高的高人会问一个问题:“为什么每天会任务追着你跑?你为什么没从根源上解决所有的问题?”一个在办公室里和下面人一起研究茶道的领导要比和大家一起加班到半夜的领导受欢迎。因为他们从更大的层..

2021-08-11 08:20:08 103

转载 状态模式重构条件语句

状态模式重构条件语句直接上代码:/// <summary>/// 状态模式的环境类/// </summary>public class CalculateContext{ private IShippingAmount _Calculate; public CalculateContext() => _Calculate = new GetAlaskaShippingAmount(); public void SetAddress(ISh.

2021-08-10 08:20:05 113

转载 单例模式

应用场景windows的任务管理器网站的计数器应用程序的日志数据库连接池,因为数据库连接是一种数据库资源。数据库软件系统中使用数据库连接池,主要是节省打开或者关闭数据库连接所引起的效率损耗,这种效率上的损耗还是非常昂贵的,因为何用单例模式来维护,就可以大大降低这种损耗。多线程的线程池的设计一般也是采用单例模式,这是由于线程池要方便对池中的线程进行控制。操作系统的文件系统,也是大的单例模式实现的具体例子,一个操作系统只能有一个文件系统。优缺点优点:在单例模式中,活动的单例只有一个实例,对单.

2021-08-08 08:20:05 115

转载 做一个不复制粘贴的程序员[1]: 使用模板方法模式(2)- 对象更新比较器实例

在进入正题之前,说一些废话,谈谈对于我的前一篇文章被移出博客园首页的想法。不谈我对于其他首页文章的看法,光从我自身找找原因。下面分析下可能的原因:篇幅太短:我觉得篇幅不能决定文章的质量,要说清楚一个问题,肯定字数越少越好代码过多,文字太少:Talk is cheap. Show me the code. 我觉得code比talk更有说服力,而且大多数程序员相对更喜欢看代码。我觉得我的代码说的比我文字说的好(相对而言,我没说我代码写的好 : ) )质量不行:只有我觉得能给大家启发的我才会选择发布到首页.

2021-08-07 20:21:10 114

转载 DesignPattern系列__10单例模式

单例模式介绍单例模式,是为了确保在整个软件体统中,某个类对象只有一个实例,并且该类通常会提供一个对外获取该实例的public方法(静态方法)。比如日志、数据库连接池等对象,通常需要且只需要一个实例对象,这就会使用单例模式。单例模式的7种模式饿汉式静态常量静态代码块懒汉式线程不安全同步方法同步代码块双重检查静态内部类枚举容器实现单例模式线程池实现单例模式下面依次来说明一下:饿汉式(静态常量)通常,我们创建一个对象的方式就是new,但是,当我们考虑只创建一个实例的时候,.

2021-08-06 20:21:13 158

转载 设计模式总结

2021-08-06 08:20:14 56

转载 设计模式-结构型-组合模式

组合模式(Composite):定义:  组合模式又叫部分整体模式,它是一种将对象组合成树状的层次结构模式,用来表示"部分-整体"的关系,使用户对单个对象和组合对象具有一致的访问性。组合模式的角色:  1)抽象构建(Component):它的主要作用是为树叶构件和树枝构件声明公共接口,并实现它们的默认行为。在透明式的组合模式中抽象构件还声明访问和管理子类的接口;在安全式的组合模式中不声明访问和管理子类的接口,管理工作由树枝构件完成。  2)树叶构件(Leaf):是组合中的叶节点对象,它没有子节点.

2021-08-02 08:20:05 59

转载 简单的学习,实现,领域事件,事件存储,事件溯源

为什么写这篇文章自己以前都走了弯路,以为学习战术设计就会DDD了,其实DDD的精华在战略设计,但是对于我们菜鸟来说,学习一些技术概念也是挺好的经常看到这些术语,概念太多,也想简单学习一下,记忆力比较差记录一下实现的细节领域事件1.领域事件是过去发生的与业务有关的事实,一但发生就不可更改,所以存储事件时只能追加3.领域事件具有时间点的特征,所有事件连接起来会形成明显的时间轴4.领域事件会导致目标对象状态的变化,聚合根的行为会产生领域事件,所以会改变聚合的状态在聚合根里面维护一个领域事件的聚合,.

2021-07-28 20:21:10 243

转载 大话设计模式笔记(二十二)の中介者模式

中介者模式定义用一个中介对象来封装一系列的对象交互。中介使各对象之间不需要显示的相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互。UML图举个栗子“联合国”就是世界上各个国家的一个“中介”,许多事情都不是国家之间直接交互,而是通过“安理会”等组织进行协商、投票等过程。Talk is cheap, show me the code(屁话少说,放码过来)/** * 联合国机构 * Created by callmeDevil on 2019/12/15. */public.

2021-07-27 20:21:19 61

转载 NServiceBus 入门到精通(一)

什么是NServiceBus?NServiceBus 是一个用于构建企业级 .NET系统的开源通讯框架。它在消息发布/订阅支持、工作流集成和高度可扩展性等方面表现优异,因此是很多分布式系统基础平台的理想选择。它能够帮助开发人员在搭建企业.NET系统时避免很多典型的常见问题。同时,该框架也提供了一些可伸缩的关键特征,比如对发布/订阅的支持、集成的长时间工作流及深入的扩展能力等。NServiceBus 框架组件介绍...

2021-07-27 08:20:05 684

转载 qt 实现MVC Api控制器开发 web api接口-连载【5】-企业级系统开发实战连载系列 -技术栈(vue、element-ui、qt、c++、sqlite)

作者背景描述:本人就职于外资IT企业,担任电商订单处理产品开发经理一职,领导过非常多次大小项目的开发工作,对电商平台订单处理流程非常熟悉。公司专注鞋服行业相关软件开发和服务,公司规模100多人以上,在台北,广州,成都,上海,北京,国外等均有分公司。为什么写此系列文章?本人在学校至工作到现在十余年时间,使用.netC#开发语言,结合在公司实际开发,和市场的需求中,NET.开发的商业企业级系统遇到的缺点有如下:1.程序首次加载慢,因为虚拟机编译的原因。2.WINFORM界面开发不够炫丽,精美...

2021-07-13 20:21:13 763

转载 Django——有名分组 无名分组,反向解析,名称空间

一、有名分组 无名分组#1 无名分组的使用 ### 无名分组,把分组分出来的值,当作位置参数传递给视图函数 url(r'^login/([0-9]{4})/([0-9]{2})', views.login),#2 有名分组的使用 ### 有名分组,把分组出来的值,当作关键字参数传递给视图函数 url(r'^login/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})', views.login), #3 .

2021-07-11 08:20:05 197

转载 JAVA笔记整理-Java设计模式

一、设计模式概念1、定义​ Java包含23种设计模式,是一套对代码设计经验的总结,被人们反复利用,多人熟知的代码设计方式。2、目的:​ 为了提高代码的可读性,可扩展性以及代码的复用性 ,为了解决在写代码过程中遇到的代码设计问题。3、设计模式的六大原则​ 3.1 开闭原则: 对扩展开发,对修改关闭(尽可能对代码少修改)​ 3.2 里式替换原则: 它是面向对象基本原则之一,任何父类(基类)出现的地方,子类都可以出现,也就是子类可以替换父类的任何功能(体现了父类.

2021-07-10 20:21:16 66

转载 CI持续集成理论知识

(1)什么是CIWhat is CI?CI就是持续集成,持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。...

2021-07-08 08:20:08 116

转载 设计模式-工厂方法模式 实战演习 代码实现

设计模式-工厂方法模式一、工厂方法模式介绍工厂模式,是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。工厂模式是 Java 开发中最常见的一种模式,其主要意图是定义一个创建对象的接口,让其子类决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。简单说就是为了提供代码的可扩展性,屏蔽每一个功能类中的具体实现逻辑。让外部可以更加简单的调用。同时,可以去掉众多 ifelse 。优点: 1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果.

2021-07-06 20:21:10 114

转载 Java基础之:类与对象

Java基础之:类与对象Java是面向对象的编程语言。那么什么是对象呢? 什么又是类呢? 现实案例理解:人类 与 小范 : 人类就是一个类,而小范就是这个类中的一个对象狗 与 小白 : 狗就是一个类,而小白 就是这个类中的一个对象那么,不管是小范 还是 小白 ,都会有一些特定的属性。比如小范的年龄,小白的体重...为什么使用类与对象?当基本数据类型不够用的时候,我们就自己声明一些类,来使用。代码实现类的声明: class 类名 { }对象的声明 : 类名 对象名 = new 类...

2021-07-04 08:20:05 82

转载 如何实现对ELK各组件的监控?试试Metricbeat

一、前言开发排查系统问题用得最多的手段就是查看系统日志,ELK 是 Elastic 公司开源的实时日志处理与分析解决方案,已经为日志处理方案的主流选择。而在生产环境中,如何针对 ELK 进行监控,保证各个组件正常运行?如何知道目前的资源是否能承受线上的压力呢?本文主要是以 Elastic Stack 7.x 版本为例,介绍如何监控 ELK 自身的各个组件。二、总体架构常见的 Elastic Stack 日志系统架构如下其中可使用 Metricbeat 组件作为轻量级监视代理,通过HTTP...

2021-06-30 08:20:05 249

转载 Java异常机制

引入说到异常先写一个demopublic class Introduce { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入被除数:"); int divisor = scanner.nextInt(); System.out.print("请输入除数:"); .

2021-06-28 15:21:05 83

转载 是兄弟!就来看这篇多线程!叁

开篇闲扯打工人,打工魂,我们生而人上人。当“资本主义”逐渐禁锢我们人(大)上(韭)人(菜)肉体的时候,那一刻我才明白那个日不落帝国·资本主义收割机·瑞民族之光幸·瑞幸咖啡是多么的了不起,尽管我不懂咖啡,但还是要说一声谢谢!说到咖啡,喝完就想上厕所,对写bug的我来说太不友好了,毕竟我不(很)喜欢带薪上厕所。回归本次的不正经Java文章,本次新闻主要内容有...tui~~嘴瓢了。上篇文章末尾处已经提到了,主要会把我对Synchronized的理解进行一次全方位的梳理,如果能帮助到大家吊打面试官,万分荣幸.

2021-06-27 15:21:05 71

转载 Nginx 转发时的一个坑,运维居然让我背锅!!

最近遇到一个 Nginx 转发的坑,一个请求转发到 Tomcat 时发现有几个 http header 始终获取不到,导致线上出现 bug,运维说不是他的问题,这个锅我背了。新增的几个 header 是这样的:accept_signaccept_token...反复检查代码,确定这些 header 是传了的,而且本地测试单独在 tomcat 中是可以接受到这些参数的,所以 tomcat 和命名本身是没问题的,初步断定是 Nginx 的问题。经过一翻搜索,终于找到了一个 Nginx 的配置参数:.

2021-06-21 20:21:09 166

转载 今年的奥运会延期至2021年夏季举行,盘点一下历届奥运会数据

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。以下文章来源于CDA数据分析师 ,作者:CDA数据分析师前言2020年年初,突然袭来的新冠疫情给我们的生活带来了巨大的改变,与此同时也让许多国际体育赛事停摆。3月24日,东京奥组委宣告,2020东京夏季奥运会延期至2021年夏季举行。随着国内疫情逐渐得到有效控制,我们的生活已步入正轨,但全球的疫情形势还很严峻。8月份以来,日本的第二波疫情来势汹汹,单日新增确诊人数不断刷新历史新高,11月...

2021-06-19 08:20:08 2581

转载 【C++学习笔记】一分钟带你了解C++中new和delete的使用方法!

我们在学习C++的过程中,通常会遇到指针和new和delete的,这充分说明了它的重要性,今天小编就为大家带来C++中new和delete的用法,希望对你学习有帮助!一、new用法1. 开辟单变量地址空间使用new运算符时必须已知数据类型,new运算符会向系统堆区申请足够的存储空间,如果申请成功,就返回该内存块的首地址,如果申请不成功,则返回零值。new运算符返回的是一个指向所分配类型变量(对象)的指针。对所创建的变量或对象,都是通过该指针来间接操作的,而动态创建的对象本身没有标识符名...

2021-06-15 15:21:08 187

转载 真实业务 | 高并发场景下锁的使用技巧

高并发场景下锁的使用技巧如何确保一个方法,或者一块代码在高并发情况下,同一时间只能被一个线程执行,单体应用可以使用并发处理相关的 API 进行控制,但单体应用架构演变为分布式微服务架构后,跨进程的实例部署,显然就没办法通过应用层锁的机制来控制并发了。那么锁都有哪些类型,为什么要使用锁,锁的使用场景有哪些?今天我们来聊一聊高并发场景下锁的使用技巧。锁类别  不同的应用场景对锁的要求各不相同,我们先来看下锁都有哪些类别,这些锁之间有什么区别。悲观锁(synchronize)Java 中的重量级锁.

2021-06-13 15:21:04 107

转载 Redis的持久化

为了防止数据丢失以及服务重启时能够恢复数据,Redis支持数据的持久化,主要分为两种方式,分别是RDB和AOF.RDBRDB持久化是把当前进程数据生成快照保存到磁盘上的过程,由于是某一时刻的快照,那么快照中的值要早于或者等于内存中的值。生成的rdb文件的名称以及存储位置由redis.conf中的dbfilename和dir两个参数控制,默认生成的rdb文件是dump.rdb。触发方式触发rdb持久化的方式有2种,分别是手动触发和自动触发。手动触发redis客户端执行save命令和bgsave.

2021-06-12 20:21:09 304

转载 java OA办公管理系统 Springboot vue.js 前后分离 跨域 工作流 集成代码生成器

1.模型管理 :web在线流程设计器、预览流程xml、导出xml、部署流程2.流程管理 :导入导出流程资源文件、查看流程图、根据流程实例反射出流程模型、激活挂起 、自由跳转3.运行中流程:查看流程信息、当前任务节点、当前流程图、作废暂停流程、指派待办人4.历史的流程:查看流程信息、流程用时、流程状态、查看任务发起人信息5.待办任务 :查看本人个人任务以及本角色下的任务、办理、驳回、作废、指派一下代理人6.已办任务 :查看自己办理过的任务以及流程信息、流程图、流程状态(作废 驳...

2021-06-10 20:21:09 271

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除