发表于: 2017-11-07 23:10:15
1 723
今日完成
1、和杨舜一起修复了 积分新平台 的两个bug。
"time" 在这儿指根据不同的『积分类型』计算出的“推延时间”。
相关的业务模型还有:员工(Staff)、企业申请记录(EnterpriseApproval)。
相关的业务字段有:EnterpriseApproval 表中的 applyId(申请人)、approveId(审批人)。申请人和审批人都是Staff表中的Id。
由于项目中的任务有6种『申请方式』对申请时间内的次数做出了限制。分别是『每月一次』『每周一次』『每日一次』『每季度一次』『无限制』
『限制一次』。
也就是说,如果某员工对一个“每月一次”的任务发起了申请。那么我们会先去 EnterpriseApproval 查找该员工是否有申请记录、计算该申请记录的『创建时间』与『当前时间』是否已经相隔了一个月、根据比对结果决定是否通过申请。
下面的 if 条件中
staffs.contains(ea.getApplyId()) && (currentTime < (ea.getCreateAt() + time) || 6 == project)
存在就取出createAt字段的值,与 time 值相加(这里相当于往后推一个月)
可以看到这个条件是由 xxxx && ( xxxxx || xxxxx ) 这样的形式组成的。
for (EnterpriseApproval ea : enterpriseApprovalList) {
Long currentTime = System.currentTimeMillis();
if (staffs.contains(ea.getApplyId()) && (currentTime < (ea.getCreateAt() + time) || 6 == project)) {
model.addAttribute("code", -167);
return "common/fail";
}
}
2、
逗你学二期拆禅道的时候任务内容写得不对。已改正。
逗你学二期,新建了 相关内容推荐表。在 Task 类里增加了 相关内容推荐 (rcmd_contents)业务字段。
3、参加高高师兄主持的工作素养的会议。
明日计划
1、继续展开逗你学的任务。
2、积分平台再次发线上。
遇到的问题
1、我觉得项目的业务逻辑一旦复杂了,业务字段的命名规范就显得非常重要。
在这一点上『新积分平台』可以说是个大大的反例。
2、看了一下『路上餐厅』的一段代码,
//查订单
List<Long> oids = new ArrayList<>();
for (EvaluateOrderRelation evaluateOrderRelation : evaluateOrderRelationList) {
oids.add(evaluateOrderRelation.getOrderId());
}
List<UserOrder> orderList = userOrderService.getObjectsByIds(oids);
Map<Long, UserOrder> orderMap = new HashMap<>();
for (UserOrder userOrder : orderList) {
orderMap.put(userOrder.getId(), userOrder);
}
这里可以用公司框架里的 MyListUtil的 convert2ListMap 和 getFieldValueListFromModelList 方法代替。
收获:
1、早上看了老大在群里发的:
第一问自己,重写一遍需要多久,时间花费在哪里,可不可以再缩短。嗯,直接去做。就在每一个任务完成之后。
评论