发表于: 2017-04-29 22:50:30
1 1302
今天完成的事情:
1.原型中和任务相关的数据,原本是由etl定时任务执行的,现在用脚本取数据,更新到数据库里面。
关于原型中的数据的sql:
每个职业下各个任务下每种类型学员的任务完成人数
SELECT utr.oid,utr.tid,u.type,COUNT(utr.id) AS '任务完成人数'
FROM user_task_relation utr
LEFT JOIN `user` u ON utr.uid = u.id
WHERE tid in(SELECT id FROM task WHERE task.oid in (SELECT id FROM occupation))
AND progress = 5
AND u.type IN (SELECT DISTINCT(type) FROM `user` WHERE type <> 'null' AND type <> 'none')
GROUP BY utr.oid,utr.tid,u.type;
#每个职业下各个任务下每种类型学员的每个评价下的日报数量
SELECT utr.oid AS '职业id',utr.tid AS '任务id',a.evaluation AS '日报评级',u.type AS '学员类型',COUNT(a.id) AS '日报等级数量'
FROM `user` u
LEFT JOIN user_task_relation utr ON u.id = utr.uid
LEFT JOIN article a ON a.uid = u.id
WHERE utr.tid in(SELECT id FROM task WHERE task.oid in (SELECT id FROM occupation))
AND u.type in (SELECT DISTINCT(type) FROM `user` WHERE type <> 'null')
AND a.evaluation IN (1,2,3)
GROUP BY utr.oid,utr.tid,u.type,a.evaluation;
每个职业下各个任务下内门、外门完成时间
SELECT u.type as '学员类型',ROUND(AVG(utr.judge_at - utr.receive_at)) as '任务完成平均时间',utr.tid as '任务id',utr.oid as '职业id'
FROM user_task_relation utr
LEFT JOIN `user` u ON utr.uid = u.id
WHERE u.type in (SELECT DISTINCT(type) FROM `user` WHERE type <> 'null')
AND utr.tid in(SELECT id FROM task WHERE task.oid in (SELECT id FROM occupation))
and utr.progress = 5
group by utr.oid,utr.tid,u.type;
2。没想到这么快就在自己的代码中发现了一个bug:
由于user_task_relation 表中的tids是“[1,2,3]”这种形式,所以动态查询需要用like,而且只匹配最后一个数字。bug出现的原因是,当tid为个位数,匹配的时候只要个位数为这个数字的都匹配到了。。。。
3.读了一些java核心技术基础,对反射、泛型和多线程这块了解的还是不够。
明天计划的事情:
1.改掉当前的这个bug
2.看12期的bug会不会改。修改别人的代码是相当难受的,我从看自己的代码就能感觉出来。
遇到的问题:
1.对DynamicUtil工具类查询的语句不熟悉
收获:
把学到的知识做一个记录,真怕自己不知道什么时候就忘了。
评论