发表于: 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、早上看了老大在群里发的:

第一问自己,重写一遍需要多久,时间花费在哪里,可不可以再缩短。嗯,直接去做。就在每一个任务完成之后。

 第二问自己,自己的代码够不够简洁,够不够优雅,扩展性好不好,是否高内聚。如果不是,应该怎么优化。为什么自己之前没想到,再遇到这种情况应该怎么处理。
 第三问自己,哪些知识体系是自己理解了透彻了可以讲明白了,哪些是没弄懂的。没懂的原因是什么,卡在哪一点,哪里理解不了,需要再得到什么信息才能理清思路。



返回列表 返回列表
评论

    分享到