发表于: 2018-01-16 22:40:18

2 587


一.今日完成

1.今天把后台注册统计的脚本写完了,可以统计出{日期,日注册人数,日累计注册人数}这样的字典数组,其中引入numpy 模块,调用numpy.array(list).cumsum()函数对数组进行累加计算,避免使用繁琐的迭代运算.其中把字典数字存入json文件时候,报错提示:'0.80454153 is not JSON serializable',检查发现是日期,日注册人数和累计注册人数这个三个数据的格包括有前缀u的字符串,浮点数,整数,难以实现JSON序列化,必须引入JSON函数进行转码,后来考虑直接在生成字典数组过程中,对三组数据直接进行强制类型转换,

_dataline["date"]=str(result[0])

_dataline["count"]=int(result[1])

_dataline["total"]=int(_sum_num[i])

如上,注册统计后端脚本全部搞完,接下来剩下最后在服务器上部署测试.


2.写后台资料管理的增删改查接口,由于之前未参与资料表设计,所以发现在列表查询页里使用模糊查询,有个条件缺少表里对应字段,后来与PM沟通,确认这个字段可以去掉,省去了重新生成资料表代码的问题.写列表模糊查询,参考真实项目代码和开荒组的成果,发现都有调用动态查询工具类,如下:

public static Map<String,Object> getPaperList(String periodName,Long subjectId,Long lessonId,Long periodId,Long bookId,Integer level,Integer type){
Map<String,Object> params=new HashedMap();
Set<String> tables = new HashSet();
tables.add("paper");
if (DataUtils.isNotNullOrEmpty(subjectId)) {
params.put("paper.subject_id", " '" + subjectId + "'");
}

if (DataUtils.isNotNullOrEmpty(lessonId)) {
params.put("paper.lesson_id", " '" + lessonId + "'");
}

if (DataUtils.isNotNullOrEmpty(bookId)) {
params.put("paper.book_id", " '" + bookId + "'");
}
if (DataUtils.isNotNullOrEmpty(type)) {
params.put("paper.type", " '" + type + "'");
}

if (DataUtils.isNotNullOrEmpty(periodId)) {
params.put("paper.period_id", " '" + periodId + "'");
}
if (DataUtils.isNotNullOrEmpty(level)) {
params.put("paper.level", " '" + level + "'");
}
if (DataUtils.isNotNullOrEmpty(periodName)) {
tables.add("period");
params.put("paper.period_id", "period.id");
params.put("period.name & like", "'%" + periodName + "%'");
}
params.put("@order", "  paper.create_at desc ");
params.put("@query", " paper.id");
String table = SQLUtil.convertTable(tables);
params.put("@table", table);

return params;
}

为什么不能在直接在controller里做条件判别却专门建了一个工具类,然后再调用其中方法不是很理解.


二.明日计划

把后台资料管理的增删改接口写完,本地测试跑通,前端明天请假,计划后天联调测试


三.遇到问题

以前做任务时候在controller里一个方法级的@RequestMapping对应一个JSP页面,误以为在前端一个页面里也是只能调用一个接口,经过前端大佬讲解发现,一页面可以同时调用多个接口,查询多张表的数据 整合在一起.


四.收获

以上.



返回列表 返回列表
评论

    分享到