【迭代式开发v1】Web后端类与方法设计(二)——大数据开发实战项目(七)

目录

一、大家一起完成的部分

1、讨论要把复杂度放到lamda表达式还是要新建个数据类​

2、sql语句要写成静态还是动态(加入变量)

二、分工部分

1. 类设计与方法设计:

1.1、赵磊模块一:概述模块:Overview(完成,但细节问题有待讨论、实践部分完成,完成部分细节问题有待讨论、实践)

1.2、赵磊模块二:用户分析模块:UserAnalysis(完成,但细节问题有待讨论、实践)

1.3、王阔模块一:存留分析模块:RetentionAnalysis (完成,但细节问题有待讨论、实践)

1.4、张志浩模块二:渠道分析模块:ChannelAnalysis(完成,但细节问题有待讨论、实践)

1.5、张志浩模块二:用户参与度模块:UserParticipation(完成,但细节问题有待讨论、实践)

扫描二维码关注公众号,回复: 11289931 查看本文章

1.6、王阔模块二:终端属性模块:TerminalAttributes(未完成,因为要写部分代码的demo)

2、王阔:实现存留分析部分demo,验证可行性作为web部分代码标准


一、大家一起完成的部分

讨论了很多问题(0613、0614、0615总结的)

1、讨论要把复杂度放到lamda表达式还是要新建个数据类

RetentionDataDay是个数据类

2、sql语句要写成静态还是动态(加入变量)

二、分工部分

1. 类设计与方法设计:


赵磊:概况(部分完成,完成部分细节问题有待讨论、实践)、用户分析(部分完成,完成部分细节问题有待讨论、实践)
王阔:存留分析(完成,但细节问题有待讨论、实践)、终端属性分析(未完成,因为要写部分代码的demo)
张志浩:渠道分析(完成,但细节问题有待讨论、实践)、用户参与度分析(完成,但细节问题有待讨论、实践)

1.1、赵磊模块一:概述模块:Overview(完成,但细节问题有待讨论、实践部分完成,完成部分细节问题有待讨论、实践)

类名

OverviewController

所属包

controller

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

overviewService

IOverviewService

Null

Prv

 

 

 

 

方法

名称

参数

返回值

异常

描述

getOverTrend

Condition

Map<String, Trend>

 

为整体趋势中的整体概况(近几日平均、总数、同比)准备数据

getLineTrend

Condition

Map<String, Object>

k 可以是 x 或者 tag

v 可以是 x 轴的数据或者 y 轴的数据

 

为整体趋势中的折线图准备数据

getTopVersion

Condition

Map<String,Distribution[]>

因为这里不同的 tag 不能共用 version,所以不能采取和上面一样的方式

 

为整体趋势中的Top10版本准备数据

getTopChannel

Condition

Map<String,Distribution[]>

 

为整体趋势中的 Top10 渠道准备数据

 

类名

IOverviewService(接口)

所属包

service

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

 

 

 

 

 

 

 

 

方法

名称

参数

返回值

异常

描述

overTrend

Condition

Map<String, Trend>

 

返回整体趋势的概述所需的数据,如新增用户(7 日平均、7 日总活跃数等)

lineTrend

Condition

Map<String,Object>

 

返回整体趋势中绘制各个折线图所需数据

topVersionTrend

Condition

Distribution[]

(版本号,用户数)

 

返回整体趋势中版本分布所需数据

TopChanne

lTrend

Object, Condition

Distribution[]

 

返回整体趋势中渠道分布所需数据

类名

OverviewServiceImpl

所属包

service

继承

 

实现

IOverviewService

属性

名称

类型

默认值

Pub/Prv/Pro

userAnalyseDao

IUserAnalysisDao

 

Prv

userParticipationDao

IUserParticipationDao

 

Prv

channelAnalyseDao

IChannelAnalyseDao

 

Prv

方法

名称

参数

返回值

异常

描述

overTrend

Condition

Map<String, Trend>

 

调用该类中计算 Avg 和 Sum 的方法,把整体趋势中所需的平均数和总数都准备好

installationAvg

Condition

Trend

 

获得新增用户的 7 日平均数和同比

activeUserAvg

Condition

Trend

 

获得活跃用户的 7 日平均数和同比

retentionAvg

Condition

Trend

 

获得新用户次日留存率的 7 日平均数和同比

useTimeAvg

Condition

Trend

 

获得使用时长的 7 日平均数和同比

activeUserSum

Condition

Trend

 

获得近 7 日/30 日总活跃用户数和同比

userSum

Condition

Trend

 

获得累计用户数

lineTrend

Condition

Map<String, Object>

 

调用该类中准备折线图数据的方法,把整体趋势中数所需的折线图数据准备好

installationLine

Condition

Object[]

 

为新增用户准备数据

activeUserLine

Condition

Object[]

 

为活跃用户准备数据

launchLine

Condition

Object[]

 

为启动次数准备数据

activeFormLine

Condition

Object[]

 

为活跃用户构成准备数据

topVersionTrend

Condition

Map<String, Distribution[]>

 

调用该类中准备 Top 版本数据的方法,把整体趋势种 Top 版本所需的数据准备好

installationTopVersion

Condition

Distribution[]

 

为Top 版本的新增用户准备数据

activeUserTopVersion

Condition

Distribution[]

 

为 Top 版本的活跃用户准备数据

calUserTopVer

Condition

Distribution[]

 

为 Top 版本的累计用户准备数据

topChannelTrend

Condition

Map<String, Distribution[]>

 

调用该类中准备 Top 渠道数据的方法,把整体趋势中 Top 渠道所需的数据准备好

installationTopChannel

Condition

Distribution[]

 

为Top 渠道的新增用户准备数据

activeUserTopChannel

Condition

Distribution[]

 

为Top 渠道的活跃用户准备数据

calUserTopChannel

Condition

Distribution[]

 

为Top 渠道的累计用户准备数据

1.2、赵磊模块二:用户分析模块:UserAnalysis(完成,但细节问题有待讨论、实践)

类名

UserAnalyseController

所属包

controller

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

userAnalyseService

IUserAnalyseService

 

Prv

 

 

 

 

方法

名称

参数

返回值

异常

描述

getInstallationData

Condition

 

Map<String,Object>

 

为新增趋势分析准备数据

getRetentionData

Condition

Map<String,Object>

 

为新增用户质量分析准备数据

getActiveData

Condition

Map<String,Object>

 

为活跃用户分析准备数据

getLaunchData

Condition

Map<String,Object>

 

为启动次数分析准备数据

getVersionData

Condition

Map<String,Object>

 

为版本分布分析准备数据

 

 

类名

IUserAnalyseService(接口)

所属包

service

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

userAnalyseService

IUserAnalyseService

 

Prv

 

 

 

 

方法

名称

参数

返回值

异常

描述

installationData

Condition

 

Map<String,Object>

 

获得新增用户数据

retentionData

Condition

 

Map<String,Object>

 

获得次日留存率数据

activeData

Condition

 

Map<String,Object>

 

获得活跃用户分析数据

launchData

Condition

Map<String,Object>

 

获得启动次数数据

versionData

Condition

 

Map<String,Object>

 

获得版本分布数据

 

类名

UserAnalyseServiceImpl

所属包

service.impl

继承

 

实现

IUserAnalyseService

属性

名称

类型

默认值

Pub/Prv/Pro

userAnalyseDao

UserAnalyseDao

 

prv

 

 

 

 

方法

名称

参数

返回值

异常

描述

installationData

Condition

 

Map<String,Object>

 

根据 Condition中的天、周、月调用下面的installation方法获得新增用户数据

getInstallationDataDay

Condition

 

Object[]

 

获得以天为间隔的新增用户数据

getInstallationDataWeek

Condition

 

Object[]

 

获得以周为间隔的新增用户数据

getInstallationDataMonth

Condition

 

Object[]

 

获得以月为间隔的新增用户数据

retentionData

Condition

 

Map<String,Object>

 

根据 Condition中的天、周、月调用下面的retention方法获得次日留存率数据

getRetentionDataDay

Condition

 

Object[]

 

获得以天为间隔的次日留存率数据

getRetentionDataWeek

Condition

 

Object[]

 

获得以周为间隔的次日留存率数据

getRetentionDataMonth

Condition

 

Object[]

 

获得以月为间隔的次日留存率数据

activeData

Condition

 

Map<String,Object>

 

根据Condition中的天、周、月调用下面所有关于获得活跃用户分析所需数据,注意:这里的 Condition 对于周活跃率和月活跃率需要改变成相应的

getActiveDataTrendDay

Condition

 

Object[]

 

获得以天为间隔的活跃用户趋势数据

getActiveDataTrendWeek

Condition

 

Object[]

 

获得以周为间隔的活跃用户趋势数据

getActiveDataTrendMonth

Condition

 

Object[]

 

获得以月为间隔的活跃用户趋势数据

getActiveDataFormDay

Condition

 

Object[]

 

获得以天为间隔的活跃用户构成数据

getActiveDataFormWeek

Condition

 

Object[]

 

获得以周为间隔的活跃用户构成数据

getActiveDataFormMonth

Condition

 

Object[]

 

获得以月为间隔的活跃用户构成数据

getActiveDataVicosityDay          

Condition

 

Object[]

 

获得以天为间隔的活跃粘度数据

getActiveDataViscosityWeek

Condition

 

Object[]

 

获得以周为间隔的活跃粘度数据

getActiveDataViscosityMonth

Condition

 

Object[]

 

获得以月为间隔的活跃粘度数据

getWeekActiveData

Condition

 

Object[]

 

获得周活跃率

getMonthActiveData

Condition

 

Object[]

 

获得月活跃

launchData

Condition

Map<String,Object>

 

根据Condition中的天、周、月调用下面的launch方法,为启动次数准备数据

getLaunchDataDay

Condition

 

Object[]

 

获得以天为间隔的启动次数数据

getLaunchDataWeek

Condition

 

Object[]

 

获得以周为间隔的启动次数数据

getLaunchDataMonth

Condition

 

Object[]

 

获得以月为间隔的启动次数数据

versionData

Condition

Map<String,Object>

 

调用下面的version方法,为版本分布准备数据

getVersionDataIncrease

Condition

 

Object[]

 

获得新增用户的版本分布数据

getVersionDataActive

Condition

 

Object[]

 

获得活跃用户的版本分布数据

getVersionDataLaunch

Condition

 

Object[]

 

获得启动次数的版本分布数据

 

类名

IUserAnalyseDao

所属包

dao

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

 

 

 

 

方法

 

 

 

名称

queryForInt

String sql

 

Int

 

queryForInt

queryForReportData

String sql

List<Integer>

 

queryForReportData

 

 

类名

UserAnalyseDaoImpl

所属包

dao.impl

继承

 

实现

IUserAnalyseDao

属性

名称

类型

默认值

Pub/Prv/Pro

userAnalyseService

 

 

Prv

方法

 

 

 

名称

queryForInt

String sql

 

Int

 

queryForInt

queryForReportData

String sql

List<Integer>

 

queryForReportData

 

1.3、王阔模块一:存留分析模块RetentionAnalysis (完成,但细节问题有待讨论、实践)

类名

RententionController

所属包

controller

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

retentionService

RetentionServiceImpl

 

Prv

方法

名称

参数

返回值

异常

描述

getRetentionData

Condition

Map<String,Object>

 

为存留用户图表展示准备数据

getFreshnessData

 

Map<String,Object>

 

为用户新鲜度图表展示准备数据

getActivityData

 

Map<String,Object>

 

为用户活跃度图表展示准备数据

 

类名

IRententionService(接口)

所属包

service

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

方法

名称

参数

返回值

异常

描述

getRetentionDataIncreaseDay

Condition

Object[][]

 

获得以天为间隔的新增用户存留数数组

getRetentionDataIncreaseWeek

Condition

Object[][]

 

获得以周为间隔的新增用户留存数数组

getRetentionDataIncreaseMonth

Condition

Object[][]

 

获得以月为间隔的新增用户留存数数组

getRetentionDataActiveDay

Condition

Object[][]

 

获得以天为间隔的活跃用户留存数数组

getRetentionDataActiveWeek

Condition

Object[][]

 

获得以周为间隔的活跃用户留存数数组

getRetentionDataActiveMonth

Condition

Object[][]

 

获得以月为间隔的活跃用户留存数数组

getFreshnessData

 

int[][]

 

为用户新鲜度图表展示

getActivityData

 

int[][]

 

为用户活跃度图表展示准备数据

 

 

类名

RententionServiceImpl

所属包

service.impl

继承

 

实现

RetentionService

属性

名称

类型

默认值

Pub/Prv/Pro

retentionDAO

RetentionDAO

 

Prv

userAnalysisDAO

UserAnalysisDAO

 

Prv

方法

名称

参数

返回值

异常

描述

getRetentionDataIncreaseDay

Condition

Object[][]

 

获得以天为间隔的新增用户留存数数组

getRetentionDataIncreaseWeek

Condition

Object[][]

 

获得以周为间隔的新增用户留存数数组

getRetentionDataIncreaseMonth

Condition

Object[][]

 

获得以月为间隔的新增用户留存数数组

getRetentionDataActiveDay

Condition

Object[][]

 

获得以天为间隔的活跃用户留存数数组

getRetentionDataActiveWeek

Condition

Object[][]

 

获得以周为间隔的活跃用户留存数数组

getRetentionDataActiveMonth

Condition

Object[][]

 

获得以月为间隔的活跃用户留存数数组

getFreshnessData

 

int[][]

 

为用户新鲜度图表展示

getActivityData

 

int[][]

 

为用户活跃度图表展示准备数据

 

类名

IRententionDAO(接口)

所属包

dao

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

 

 

 

 

方法

名称

参数

返回值

异常

描述

getRetentionDataIncreaseDay

Condition

List<RetentionDataDay>

 

获得以天为间隔的新增用户留存数数据列表

getRetentionDataIncreaseWeek

Condition

List<RetentionDataWeek>

 

获得以周为间隔的新增用户留存数数据列表

getRetentionDataIncreaseMonth

Condition

List<RetentionDataMonth>

 

获得以月为间隔的新增用户留存数数据列表

getRetentionDataActiveDay

Condition

List<RetentionDataDay>

 

获得以天为间隔的活跃用户留存数数据列表

getRetentionDataActiveWeek

Condition

List<RetentionDataWeek>

 

获得以周为间隔的活跃用户留存数数据列表

getRetentionDataActiveMonth

Condition

List<RetentionDataMonth>

 

获得以月为间隔的活跃用户留存数数据列表

getActivityData

 

List<RetentioActivitynData>

 

获得每天各活跃天数用户数数据列表

 

 

类名

RententionDAOImpl

所属包

dao.impl

继承

 

实现

IRententionDao

属性

名称

类型

默认值

Pub/Prv/Pro

template

NamedParameterJdbcTemplate

 

Prv

方法

名称

参数

返回值

异常

描述

getRetentionDataIncreaseDay

Condition

List<RetentionDataDay>

 

获得以天为间隔的新增用户留存数数据列表

getRetentionDataIncreaseWeek

Condition

List<RetentionDataWeek>

 

获得以周为间隔的新增用户留存数数据列表

getRetentionDataIncreaseMonth

Condition

List<RetentionDataMonth>

 

获得以月为间隔的新增用户留存数数据列表

getRetentionDataActiveDay

Condition

List<RetentionDataDay>

 

获得以天为间隔的活跃用户留存数数据列表

getRetentionDataActiveWeek

Condition

List<RetentionDataWeek>

 

获得以周为间隔的活跃用户留存数数据列表

getRetentionDataActiveMonth

Condition

List<RetentionDataMonth>

 

获得以月为间隔的活跃用户留存数数据列表

getActivityData

 

List<RetentioActivitynData>

 

获得每天各活跃天数用户数数据列表

 

1.4、张志浩模块一:渠道分析模块:ChannelAnalysis(完成,但细节问题有待讨论、实践)

类名

ChannelController

所属包

controller

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

描述

channelService

IChannelService

 

Prv

 

 

 

 

 

 

 

 

 

 

 

方法

名称

参数

返回值

异常

描述

getChannelListData

Condition

Map<String,Object>

 

渠道分析模块中的渠道列表子模块展示准备数据

 

 

 

 

 

 

类名

IChannelService(接口)

所属包

service

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

描述

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

方法

名称

参数

返回值

异常

描述

getInstallation

Condition

Integer[]

 

获取渠道分析模块下渠道列表子模块中的新增用户Tab)

getActiveUser

Condition

Integer[]

 

获取渠道分析模块下渠道列表子模块中的活跃用户Tab)

getLaunch

Condition

Integer[]

 

获取渠道分析模块下渠道列表子模块中的启动次数(Tab)

 

类名

ChannelServiceImpl

所属包

service.impl

继承

 

实现

IChannelService(接口)

属性

名称

类型

默认值

Pub/Prv/Pro

描述

channelDAO

IChannelDAO

 

Prv

 

 

 

 

 

 

 

 

 

 

 

方法

名称

参数

返回值

异常

描述

setChannelDAO

IChannelDAO

void

 

 

getInstallation

Condition

Integer[]

 

获取渠道分析模块下渠道列表子模块中的新增用户Tab)

getActiveUser

Condition

Integer[]

 

获取渠道分析模块下渠道列表子模块中的活跃用户Tab)

getLaunch

Condition

Integer[]

 

获取渠道分析模块下渠道列表子模块中的启动次数(Tab)

 

类名

IChannelDAO(接口)

所属包

dao

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

描述

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

方法

名称

参数

返回值

异常

描述

getInstallation

Condition

int[]

 

获取渠道分析模块下渠道列表子模块中的新增用户Tab)

getActiveUser

Condition

int[]

 

获取渠道分析模块下渠道列表子模块中的活跃用户Tab)

getLaunch

Condition

int[]

 

获取渠道分析模块下渠道列表子模块中的启动次数(Tab)

 

 

 

 

 

 

类名

IChannelDAOImpl

所属包

dao.impl

继承

 

实现

IChannelDAO(接口)

属性

名称

类型

默认值

Pub/Prv/Pro

描述

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

方法

名称

参数

返回值

异常

描述

getInstallation

Condition

int[]

 

获取渠道分析模块下渠道列表子模块中的新增用户Tab)

getActiveUser

Condition

int[]

 

获取渠道分析模块下渠道列表子模块中的活跃用户Tab)

getLaunch

Condition

int[]

 

获取渠道分析模块下渠道列表子模块中的启动次数(Tab)

 

 

 

 

 

 

1.5、张志浩模块二:用户参与度模块:Participation(完成,但细节问题有待讨论、实践)

类名

ParticipationController

所属包

controller

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

描述

ParticipationService

IParticipationService

 

Prv

 

 

 

 

 

 

 

 

 

 

 

方法

名称

参数

返回值

异常

描述

getDurationData

Condition

Map<String,Object>

 

用户参与度的使用时长子模块展示准备数据

getFrequencyData

Condition

Map<String,Object>

 

用户参与度的使用频率子模块展示准备数据

getPageData

Condition

Map<String,Object>

 

用户参与度的访问页面子模块展示准备数据

getIntervalData

Condition

Map<String,Object>

 

用户参与度的使用间隔子模块展示准备数据

 

类名

IParticipationService(接口)

所属包

service

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

描述

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

方法

名称

参数

返回值

异常

描述

getDurationDataSingle

Condition

Integer[]

 

获得用户参与度模块中使用时长子功能中的单次使用时长分布

getDurationDataDay

Condition

Integer[]

 

获得用户参与度模块中使用时长子功能中使用时长分布

getFrequencyDataDay

Condition

Integer[]

 

获得用户参与度模块中使用频率子功能中的日启动次数分布

getFrequencyDataWeek

Condition

Integer[]

 

获得用户参与度模块中使用时长子功能中周启动次数分布

getFrequencyDataMonth

Condition

Integer[]

 

获得用户参与度模块中使用时长子功能中月启动次数分布

getPageData

Condition

Integer[]

 

获得用户参与度模块中访问页面子功能中访问页面分布

getIntervalData

Condition

Integer[]

 

获得用户参与度模块中使用间隔子功能中使用间隔分布

 

 

 

 

 

 

 

类名

ParticipationServiceImpl

所属包

service.impl

继承

                                                                  

实现

IParticipationService(接口)

属性

名称

类型

默认值

Pub/Prv/Pro

描述

participationDAO IParticipationDAO

 

 

 

 

 

 

 

 

 

 

 

 

 

方法

名称

参数

返回值

异常

描述

setParticipationDAO

ParticipationDAO

void

 

 

getDurationDataSingle

Condition

Integer[]

 

获得用户参与度模块中使用时长子功能中的单次使用时长分布

getDurationDataDay

Condition

Integer[]

 

获得用户参与度模块中使用时长子功能中使用时长分布

getFrequencyDataDay

Condition

Integer[]

 

获得用户参与度模块中使用频率子功能中的日启动次数分布

getFrequencyDataWeek

Condition

Integer[]

 

获得用户参与度模块中使用时长子功能中周启动次数分布

getFrequencyDataMonth

Condition

Integer[]

 

获得用户参与度模块中使用时长子功能中月启动次数分布

getPageData

Condition

Integer[]

 

获得用户参与度模块中访问页面子功能中访问页面分布

getIntervalData

Condition

Integer[]

 

获得用户参与度模块中使用间隔子功能中使用间隔分布

 

 

 

 

 

 

类名

IParticipationDAO(接口)

所属包

dao

继承

 

实现

 

属性

名称

类型

默认值

Pub/Prv/Pro

描述

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

方法

名称

参数

返回值

异常

描述

getDurationDataSingle

Condition

int[]

 

获得用户参与度模块中使用时长子功能中的单次使用时长分布

getDurationDataDay

Condition

int[]

 

获得用户参与度模块中使用时长子功能中使用时长分布

getFrequencyDataDay

Condition

int[]

 

获得用户参与度模块中使用频率子功能中的日启动次数分布

getFrequencyDataWeek

Condition

int[]

 

获得用户参与度模块中使用时长子功能中周启动次数分布

getFrequencyDataMonth

Condition

int[]

 

获得用户参与度模块中使用时长子功能中月启动次数分布

getPageData

Condition

int[]

 

获得用户参与度模块中访问页面子功能中访问页面分布

getIntervalData

Condition

int[]

 

获得用户参与度模块中使用间隔子功能中使用间隔分布

 

 

 

 

 

 

类名

ParticipationDAOImpl

所属包

dao.impl

继承

 

实现

IParticipationDAO(接口)

属性

名称

类型

默认值

Pub/Prv/Pro

描述

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

方法

名称

参数

返回值

异常

描述

setUserParticipationDAO

UserParticipationDAO

void

 

 

getDurationDataSingle

Condition

int[]

 

获得用户参与度模块中使用时长子功能中的单次使用时长分布

getDurationDataDay

Condition

int[]

 

获得用户参与度模块中使用时长子功能中使用时长分布

getFrequencyDataDay

Condition

int[]

 

获得用户参与度模块中使用频率子功能中的日启动次数分布

getFrequencyDataWeek

Condition

int[]

 

获得用户参与度模块中使用时长子功能中周启动次数分布

getFrequencyDataMonth

Condition

int[]

 

获得用户参与度模块中使用时长子功能中月启动次数分布

getPageData

Condition

int[]

 

获得用户参与度模块中访问页面子功能中访问页面分布

getIntervalData

Condition

int[]

 

获得用户参与度模块中使用间隔子功能中使用间隔分布

 

 

 

 

1.6

1.6、王阔模块二:终端属性模块:TerminalAttributes(未完成,因为要写部分代码的demo)

2、王阔:实现存留分析部分demo,验证可行性作为web部分后端代码标准

猜你喜欢

转载自blog.csdn.net/weixin_43124279/article/details/106769270
今日推荐