发表于: 2017-04-29 22:50:30

1 1300


今天完成的事情:

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工具类查询的语句不熟悉

收获:

把学到的知识做一个记录,真怕自己不知道什么时候就忘了。



返回列表 返回列表
评论

    分享到