围棋语言实践课程后台管理页面统计功能的开发(二)


浏览:782 次

上一节的内容介绍了后台管理页面(1)统计功能的开发,从功能介绍到界面请求的分析和分类,最后到代码设计。在上一节的介绍之后,业务逻辑和开发逻辑已经解释清楚了。本节重点介绍编程代码的特定功能。

当日数据增长函数,七天数据增长函数

通过浏览器工具调试发现,当天的增长函数与最近7天的增长数据所使用的请求界面相同,但价值转移是特殊的。以当日用户增长请求为例,当日用户增长数据请求界面如下:

/statis/user/NaN NaN NaN/count

可以看出,传递的值是NaN-NaN-NaN。

然后查看过去七天的增长数据请求。以用户增长请求为例,过去七天中一天的数据增长请求界面如下:

/statis/用户/2019-04-08/count

基于以上两种情况的分析,当天的请求url与最近七天的请求url相同,但值不同。因此,在程序开发和实施过程中,可以将当天的增长数据和7天的增长数据请求结合起来进行开发,并且只能单独处理当天的数据增长请求。

我们定义了StatisController结构来实现统计数据的功能请求,如下所示:

类型StatisController结构{

//上下文对象

Ctx虹膜上下文

//统计功能的服务实现接口

服务服务.站点服务

//会话

会话*会话。会话

}

路由组解析统计接口我们分析了该接口,可以发现管理员、用户和订单的请求形式是相同的,因此我们可以以路由组的方式解析统计接口。我们定义解析的路由组如下:

app.Party(“/statis/{model}/{date}/”)

定义统计接口根据我们分析的接口规则,我们可以在StatisController结构中定义GetCount方法进行处理。GetCount方法定义如下:

func(sc*StatisController)获取计数()mvc。结果{

///statis/user/2019-03-10/count

路径:=sc.Ctx.path()

var pathSlice[]字符串

如果路径!="" {

pathSlice=字符串。拆分(路径,“/”)

}

//不符合请求格式

如果len(pathSlice)!=5 {

return mvc.响应{

对象:map[string]接口{}{

“status”:utils。RECODE_ FAIL,

“计数”:0,

},

}

}

//移除第一个

pathSlice=路径切片[1:]

模型:=路径切片[1]

日期:=路径切片[2]

var结果int64

交换机模型{

案例“用户”:

iris.New().Logger()。错误(日期)//时间

结果=sc.Service.GetUserDailyCount(日期)

案例“订单”:

结果=sc.Service.GetOrderDailyCount(日期)

案例“admin”:

结果=sc.Service.GetAdminDailyCount(日期)

}

return mvc.响应{

对象:map[string]接口{}{

“status”:实用程序。RECODE_ OK,

“计数”:结果,

},

}

}

GetCount方法通过解析请求URL,为不同的请求类型调用不同的函数方法,这些URL是GetUserDailyCount、GetOrderDaylyCount和GetAdminDaily计数。这三种方法都由服务StatisService定义。在本节中,我们以用户数据增长界面请求为例。代码实现如下:

func(ss*statisService)GetUserDailyCount(日期字符串)int64{

如果date==“NaN-NaN-NaN”{//当天的增长数据请求

date=time.Now().格式(“2006-01-02”)

}

startDate,err:=时间。分析(“2006-01-02”,日期)

如果出错!=无{

返回0

}

结束日期:=开始日期。添加日期(0,0,1)

结果,错误:=ss.Engine。其中(“register_time between?and?and del_flag=0”,startDate.Format(“2006-01-02 15:04:05”),endDate。格式(“2006-01-02 15:04:05”)。计数(型号。用户{})

如果出错!=无{

返回0

}

返回结果

}

其他两个功能模块的实现相同,但查询数据表不同。课程的支持视频和源代码中提供了详细内容。

SQL语句查询

在此函数中,日期字段使用时间。数据结构定义中的时间类型,并将映射到数据库中的DateTime类型。

时间范围查询查询数据库时,用于时间查询的SQL语句介于…和之间。本节中的函数查询语句包括:

从用户中选择count(*),其中register_time介于开始和结束之间,del_flag=0

日期格式使用golang语言,日期格式使用时间。format方法定义时间的格式。但是,需要注意的是,当输入格式标准时间格式时

相关资讯:
APP项目开发流程

APP项目开发流程

查看
软件外包开发过程

软件外包开发过程

查看
软件外包项目开发过程

软件外包项目开发过程

查看
如何找到一家满意的软件项目外包公司

如何找到一家满意的软件项目外包公司

查看
寻找优质APP外包公司

寻找优质APP外包公司

查看