一种考勤计算方法、系统以及设备与流程

专利2022-06-29  54


本发明涉及考勤统计技术领域,尤其涉及一种考勤计算方法、系统以及设备。



背景技术:

使用传统的考勤软件来计算员工的出勤情况时,都是根据设定好的考勤计算规则来进行计算,因此在每个步骤环境中,需要大量使用if-else的方式去判断各种的考勤计算规则。例如,获取设定的上班时间,结合员工的打卡时间,在两者进行相加减或者相加减之前,还需要判断下哪个时间数值的大或小,以免出现负数的情况等等。

在代码中的if-else过多的情况下,会大大的影响代码可读性和可维护性。

对于可读性,过多的if-else代码和嵌套,会使阅读代码的人很难理解代码的逻辑以及含义,特别是对于没有注释的代码,更容易使阅读的人难以理解其含义。

其次是可维护性,在if-else过多的情况下,难以代码的分支进行增加,大大增加了代码的维护难度。

综上,现有技术传统考勤软件的代码中大量使用if-else,使得代码的可读性以及可维护性很低。



技术实现要素:

本发明提供了一种考勤计算方法、系统以及设备,解决了现有技术传统考勤软件的代码中大量使用if-else,使得代码的可读性以及可维护性很低的不足。

本发明提供的一种考勤计算方法,包括以下步骤:

分别构建某一员工某一天的班次矩阵、打卡上班矩阵以及打卡下班矩阵;

基于打卡上班矩阵以及打卡下班矩阵得到打卡上下班实际矩阵,根据打卡上下班实际矩阵得到打卡上下班有效矩阵;

分别构建该员工该日的迟到矩阵、早退矩阵、旷工矩阵以及请假矩阵;

基于请假矩阵以及班次矩阵得到请假汇总矩阵,基于班次矩阵、请假汇总矩阵以及打卡上下班有效矩阵,获得最终的打卡上下班有效矩阵;

基于迟到矩阵以及请假汇总矩阵得到最终的迟到矩阵;基于早退矩阵以及请假汇总矩阵得到最终的早退矩阵;基于旷工矩阵以及请假汇总矩阵得到最终的旷工矩阵;

计算最终的打卡上下班有效矩阵、最终的迟到矩阵、最终的早退矩阵以及最终的旷工矩阵,根据计算的结果统计该员工的考勤情况。

优选的,打卡上班矩阵乘以打卡下班矩阵得到打卡上下班实际矩阵。

优选的,打卡上下班实际矩阵乘以班次矩阵获得打卡上下班有效矩阵。

优选的,请假矩阵乘以班次矩阵获得请假汇总矩阵。

优选的,班次矩阵减去请假汇总矩阵乘以打卡上下班有效矩阵,最终的获得打卡上下班有效矩阵。

优选的,迟到矩阵加上请假汇总矩阵乘以迟到矩阵,获得最终的迟到矩阵。

优选的,早退矩阵加上请假汇总矩阵乘以早退矩阵,获得最终的早退矩阵。

优选的,旷工矩阵加上请假汇总矩阵乘以旷工矩阵,获得最终的旷工矩阵。

一种考勤计算系统,包括矩阵构建模块、矩阵生成模块以及考勤统计模块;

所述矩阵构建模块用于构建班次矩阵、打卡上班矩阵、打卡下班矩阵、迟到矩阵、早退矩阵、旷工矩阵以及请假矩阵;

所述矩阵生成模块用于生成打卡上下班实际矩阵、打卡上下班有效矩阵、请假汇总矩阵、最终的打卡上下班有效矩阵、最终的迟到矩阵、最终的早退矩阵以及最终的旷工矩阵;

所述考勤统计模块用于计算最终的打卡上下班有效矩阵、最终的迟到矩阵、最终的早退矩阵以及最终的旷工矩阵,根据计算的结果统计该员工的考勤情况。

一种考勤计算设备,包括处理器以及存储器;

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行上述的一种考勤计算方法。

从以上技术方案可以看出,本发明具有以下优点:

本发明实施例通过构建矩阵并使用矩阵来对员工进行考勤的方式,有效的消减了传统考勤软件的代码中大量的if-else,使代码可读性和可维护性大大提升;并且本发明对业务逻辑进行矩阵模块化,通用性好,可维护性强,一旦考勤规则变动,无需修改模块化后的代码逻辑,便于运维人员对代码的维护。

本发明的另一个实施例还存在着另一个优点:

本发明实施例将业务逻辑代码层次化,方便运维人员排查代码bug,能快速定位是哪个环节的问题,从而快速解决问题,大大提高了工作效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种考勤计算方法、系统以及设备的方法流程图。

图2为本发明实施例提供的一种考勤计算方法、系统以及设备的系统框架图。

图3为本发明实施例提供的一种考勤计算方法、系统以及设备的设备结构图。

具体实施方式

本发明实施例提供了一种考勤计算方法、系统以及设备的方法,用于解决现有技术传统考勤软件的代码中大量使用if-else,使得代码的可读性以及可维护性很低的技术问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在数学的诸多数字中,-1、0、1是较为常见且也比较特殊的数字。

利用这三个特殊的数学运算,可以得到以下结果:

1.加法:

-1 0=-1;-1 1=0;

0 -1=-1;0 0=0;0 1=1;

1 -1=0;1 0=1;1 -1=0;

2.减法:

-1-(-1)=0;-1-0=-1;

0-(-1)=1;0-0=0;0-1=-1;

1-0=1;

3.乘法:

-1×-1=1;-1×0=0;-1×1=-1;

0×-1=0;0×0=0;0×1=0;

1×-1=0;1×0=0;1×-1=-1;

基于上述数学的运算,得到的结果为-1、0、1。

于是,在我们的考勤软件中,可以考勤结果分为以下三种:

1.迟到、早退、请假等需要扣薪(-1为负数,代表需要扣薪);

2.周六周日休息是不算薪资的(0,代表不需要算薪资);

3.工作日正常的出勤是需要计薪的(1为正数,代表需要计薪);

在数学中,矩阵是由m×n个数aij排成的m行n列的数表称为m行n列的矩阵,简称m×n矩阵,由于一天的小时数为24,一小时的分钟数为60,于是,就可以定义一个24×60矩阵。

其中,在矩阵里:-1代表异常分钟时长;0代表休息分钟时长;1代表正常分钟时长。

因此,通过定义班次矩阵、打卡上班矩阵、打卡下班矩阵、迟到矩阵、早退矩阵、旷工矩阵和请假矩阵等,可实现对员工的考勤统计。

请参阅图1,图1为本发明实施例提供的一种考勤计算方法、系统以及设备的方法流程图。

本发明提供的一种考勤计算方法,包括以下步骤:

分别构建某一员工某一天的班次矩阵、打卡上班矩阵以及打卡下班矩阵;

其中,构建班次矩阵的步骤如下:

确定上班时间分钟数、下班时间分钟数、开始午休时间分钟数以及结束午休时间分钟数;

定义一个24×60的矩阵matrixshiftmatrix=newmatrix(24,60,0),其中24代表一天的小时数,60代表一小时的分钟数;

遍历循环矩阵matrixshiftmatrix中的每一个单元,将上班时间分钟数和开始午休时间分钟数之间的矩阵单元值设置为1,将结束午休时间分钟数和下班时间分钟数之间的矩阵单元值设置为1,将剩余的矩阵单元值设置为0;

初始化得到班次矩阵shiftmatrix。

构建打卡上班矩阵的步骤如下:

确定上班打卡时间的分钟数;

定义一个24×60的矩阵matrixclockinmatrix=newmatrix(24,60,0),其中24代表一天的小时数,60代表一小时的分钟数;

循环遍历矩阵matrixclockinmatrix中的每一个单元,将上班打卡时间分钟数到1440之间的矩阵单元值设置为1,将剩余的矩阵单元值设置为0;

初始化获得一天的打卡上班矩阵clockinmatrix。

构建打卡下班矩阵的步骤如下:

确定下班打卡时间的分钟数;

定义一个24×60的矩阵matrixclockoutmatrix=newmatrix(24,60,0),其中24代表一天的小时数,60代表一小时的分钟数;

循环遍历矩阵matrixclockoutmatrix中的每一个单元,将0到下班打卡时间分钟数之间的矩阵单元值设置为1,将剩余的矩阵单元值设置为0;

初始化获得打卡下班矩阵clockoutmatrix。

基于打卡上班矩阵clockinmatrix以及打卡下班矩阵clockoutmatrix得到打卡上下班实际矩阵clockinoutactualmatri,根据打卡上下班实际矩阵clockinoutactualmatri得到打卡上下班有效矩阵clockinoutvalidmatrix;

分别构建该员工该日的迟到矩阵、早退矩阵、旷工矩阵以及请假矩阵;

构建迟到矩阵的具体步骤如下:

确定允许迟到的分钟数;

定义一个24×60的矩阵lateinmatrix=newmatrix(24,60,0),其中24代表一天的小时数,60代表一小时的分钟数;

若上班打卡时间的分钟数大于-1且上班打卡时间的分钟数减去上班时间分钟数大于允许迟到分钟数,则循环遍历矩阵lateinmatrix中的每一个单元,将上班时间分钟数到上班打卡时间的分钟数之间的矩阵单元值设置为-1;将剩余的矩阵单元值设置为0;

将矩阵lateinmatrix乘以班次矩阵,初始化得到迟到矩阵lateinmatrix,公式如下:

lateinmatrix=lateinmatrix×shiftmatrix。

构建早退矩阵的具体步骤如下:

确定允许早退的分钟数;

定义一个24×60的矩阵:earlyoutmatrix=newmatrix(24,60,0),其中24代表一天的小时数,60代表一小时的分钟数;

若下班打卡时间的分钟数大于-1且下班时间分钟数减去下班打卡时间的分钟数大于允许早退分钟数,则循环遍历矩阵earlyoutmatrix中的每一个单元,将下班打卡时间的分钟数到下班时间分钟数之间的矩阵单元值设置为-1,将剩余的矩阵单元值设置为0;

将矩阵earlyoutmatrix乘以班次矩阵,初始化获得的早退矩阵earlyoutmatrix,具体公式如下:

earlyoutmatrix=earlyoutmatrix×shiftmatrix。

构建旷工矩阵的具体步骤如下:

确定上班打卡时间的分钟数以及下班打卡时间的分钟数;

定义一个24×60的矩阵:absentmatrix=newmatrix(24,60,0),其中24代表一天的小时数,60代表一小时的分钟数;

若上班打卡时间分钟数和下班打卡时间分钟数都等于-1,则循环遍历矩阵absentmatrix中的每一个单元,将0到1440之间的矩阵单元值设置为-1,将剩余的单元值设置为0;

将矩阵absentmatrix乘以班次矩阵,初始化获得旷工矩阵absentmatrix,具体公式如下:

absentmatrix=absentmatrix×shiftmatrix。

构建请假矩阵的具体步骤如下:

确定开始请假的分钟数以及结束请假的分钟数;

定义一个24×60的矩阵:matrixleavematrix=newmatrix(24,60,0),其中24代表一天的小时数,60代表一小时的分钟数;

循环遍历矩阵:matrixleavematrix中的每一个单元,将开始请假时间分钟数到结束请假时间分钟数之间的矩阵单元值设置为1,将剩余的矩阵单元值设置为0;

初始化得到一天的请假矩阵leavematrix。

基于请假矩阵以及班次矩阵得到请假汇总矩阵,基于班次矩阵、请假汇总矩阵以及打卡上下班有效矩阵,获得最终的打卡上下班有效矩阵;

基于迟到矩阵以及请假汇总矩阵得到最终的迟到矩阵;基于早退矩阵以及请假汇总矩阵得到最终的早退矩阵;基于旷工矩阵以及请假汇总矩阵得到最终的旷工矩阵;

计算最终的打卡上下班有效矩阵、最终的迟到矩阵、最终的早退矩阵以及最终的旷工矩阵,根据计算的处各个矩阵的值,,若矩阵的计算值为-1,则需要扣薪,若矩阵的计算值为0,则不计算薪资,若矩阵的计算值为1,则需要计薪,最终整个各个矩阵的计算结果,得到该员工该日的考勤情况。

作为一个优选的实施例,打卡上班矩阵乘以打卡下班矩阵初始化获得一天的打卡上下班实际矩阵clockinoutactualmatrix,公式如下:

clockinoutactualmatrix=clockinmatrix×clockoutmatrix;

将打卡上下班实际矩阵clockinoutactualmatrix乘以班次矩阵shiftmatrix,初始化获得打卡上下班有效矩阵clockinoutvalidmatrix,公式如下:

clockinoutvalidmatrix=clockinoutactualmatrix×shiftmatrix。

作为一个优选的实施例,打卡上下班实际矩阵clockinoutactualmatrix乘以班次矩阵shiftmatrix获得打卡上下班有效矩阵,具体公式如下:

clockinoutvalidmatrix=clockinoutactualmatrix×shiftmatrix。

作为一个优选的实施例,请假矩阵leavematrix乘以班次矩阵shiftmatrix获得请假汇总矩阵leavesummarymatrix,具体的公式如下:

leavesummarymatrix=leavematrix×shiftmatrix。

作为一个优选的实施例,班次矩阵shiftmatrix减去请假汇总矩阵leavesummarymatri乘以打卡上下班有效矩阵clockinoutvalidmatrix,获得最终的打卡上下班有效矩阵lastclockinoutvalidmatrix,具体公式如下:

lastclockinoutvalidmatrix=shiftmatrix-leavesummarymatrix×clockinoutvalidmatrix;

作为一个优选的实施例,迟到矩阵lateinmatrix加上请假汇总矩阵leavesummarymatrix乘以迟到矩阵lateinmatrix,获得最终的迟到矩阵lastlateinmatrix,具体步骤如下:

lastlateinmatrix=lateinmatrix leavesummarymatrix×lateinmatrix。

作为一个优选的实施例,早退矩阵earlyoutmatrix加上请假汇总矩阵leavesummarymatrix乘以早退矩阵earlyoutmatrix,获得最终的早退矩阵lastearlyoutmatrix,具体公式如下:

lastearlyoutmatrix=earlyoutmatrix leavesummarymatrix×earlyoutmatrix

作为一个优选的实施例,旷工矩阵absentmatrix加上请假汇总矩阵leavesummarymatrix乘以旷工矩阵absentmatrix,获得最终的旷工矩阵lastabsentmatrix,具体公式如下:

lastabsentmatrix=absentmatrix leavesummarymatrix×absentmatrix。

请参阅图2,图2为本发明实施例提供的一种考勤计算方法、系统以及设备的系统框架图。

如图2所示,一种考勤计算系统,包括矩阵构建模块201、矩阵生成模块202以及考勤统计模块203;

所述矩阵构建模块201用于构建班次矩阵、打卡上班矩阵、打卡下班矩阵、迟到矩阵、早退矩阵、旷工矩阵以及请假矩阵;

所述矩阵生成模块202用于生成打卡上下班实际矩阵、打卡上下班有效矩阵、请假汇总矩阵、最终的打卡上下班有效矩阵、最终的迟到矩阵、最终的早退矩阵以及最终的旷工矩阵;

所述考勤统计模块203用于计算最终的打卡上下班有效矩阵、最终的迟到矩阵、最终的早退矩阵以及最终的旷工矩阵,根据计算的结果统计该员工的考勤情况。

请参阅图3,图3为本发明实施例提供的一种考勤计算方法、系统以及设备的设备结构图。

一种考勤计算设备30,所述设备包括处理器300以及存储器301;

所述存储器301用于存储程序代码302,并将所述程序代码302传输给所述处理器;

所述处理器300用于根据所述程序代码302中的指令执行上述的一种考勤计算方法实施例中的步骤。

示例性的,所述计算机程序302可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器301中,并由所述处理器300执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序302在所述终端设备30中的执行过程。

所述终端设备30可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器300、存储器301。本领域技术人员可以理解,图3仅仅是终端设备30的示例,并不构成对终端设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器300可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器301可以是所述终端设备30的内部存储单元,例如终端设备30的硬盘或内存。所述存储器301也可以是所述终端设备30的外部存储设备,例如所述终端设备30上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器301还可以既包括所述终端设备30的内部存储单元也包括外部存储设备。所述存储器301用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器301还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。


技术特征:

1.一种考勤计算方法,其特性在于,包括以下步骤:

分别构建某一员工某一天的班次矩阵、打卡上班矩阵以及打卡下班矩阵;

基于打卡上班矩阵以及打卡下班矩阵得到打卡上下班实际矩阵,根据打卡上下班实际矩阵得到打卡上下班有效矩阵;

分别构建该员工该日的迟到矩阵、早退矩阵、旷工矩阵以及请假矩阵;

基于请假矩阵以及班次矩阵得到请假汇总矩阵,基于班次矩阵、请假汇总矩阵以及打卡上下班有效矩阵,获得最终的打卡上下班有效矩阵;

基于迟到矩阵以及请假汇总矩阵得到最终的迟到矩阵;基于早退矩阵以及请假汇总矩阵得到最终的早退矩阵;基于旷工矩阵以及请假汇总矩阵得到最终的旷工矩阵;

计算最终的打卡上下班有效矩阵、最终的迟到矩阵、最终的早退矩阵以及最终的旷工矩阵,根据计算的结果统计该员工的考勤情况。

2.根据权利要求1所述的一种考勤计算方法,其特征在于,打卡上班矩阵乘以打卡下班矩阵得到打卡上下班实际矩阵。

3.根据权利要求1所述的一种考勤计算方法,其特征在于,打卡上下班实际矩阵乘以班次矩阵获得最终的打卡上下班有效矩阵。

4.根据权利要求1所述的一种考勤计算方法,其特征在于,请假矩阵乘以班次矩阵获得请假汇总矩阵。

5.根据权利要求1所述的一种考勤计算方法,其特征在于,班次矩阵减去请假汇总矩阵乘以打卡上下班有效矩阵,获得打卡上下班有效矩阵。

6.根据权利要求1所述的一种考勤计算方法,其特征在于,迟到矩阵加上请假汇总矩阵乘以迟到矩阵,获得最终的迟到矩阵。

7.根据权利要求1所述的一种考勤计算方法,其特征在于,早退矩阵加上请假汇总矩阵乘以早退矩阵,获得最终的早退矩阵。

8.根据权利要求1所述的一种考勤计算方法,其特征在于,旷工矩阵加上请假汇总矩阵乘以旷工矩阵,获得最终的旷工矩阵。

9.一种考勤计算系统,其特征在于,包括矩阵构建模块、矩阵生成模块以及考勤统计模块;

所述矩阵构建模块用于构建班次矩阵、打卡上班矩阵、打卡下班矩阵、迟到矩阵、早退矩阵、旷工矩阵以及请假矩阵;

所述矩阵生成模块用于生成打卡上下班实际矩阵、打卡上下班有效矩阵、请假汇总矩阵、最终的打卡上下班有效矩阵、最终的迟到矩阵、最终的早退矩阵以及最终的旷工矩阵;

所述考勤统计模块用于计算最终的打卡上下班有效矩阵、最终的迟到矩阵、最终的早退矩阵以及最终的旷工矩阵,根据计算的结果统计该员工的考勤情况。

10.一种考勤计算设备,其特征在于,包括处理器以及存储器;

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行权利要求1-8中任意一项所述的一种考勤计算方法。

技术总结
本发明公开了一种考勤计算方法、系统以及设备,包括以下步骤:分别构建某一员工某一天的班次矩阵、打卡上班矩阵以及打卡下班矩阵;得到打卡上下班实际矩阵,以及打卡上下班有效矩阵;构建该员工该日的迟到矩阵、早退矩阵、旷工矩阵以及请假矩阵;得到请假汇总矩阵、最终的打卡上下班有效矩阵、最终的迟到矩阵、最终的早退矩阵、最终的旷工矩阵;计算各个矩阵,根据计算的结果统计该员工的考勤情况。本发明实通过构建矩阵并使用矩阵来对员工进行考勤的方式,有效的消减了传统考勤软件的代码中大量的if‑else,使代码可读性和可维护性大大提升;并且本发明对业务逻辑进行矩阵模块化,通用性好,可维护性强。

技术研发人员:邹远君
受保护的技术使用者:厦门中控智慧信息技术有限公司
技术研发日:2020.01.07
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-29492.html

最新回复(0)