发表于: 2017-09-30 23:14:29

0 810


今天完成的事情:

1、

新增任务的接口出bug了。

是这样产生的。


根据原型和 story,学渣PC端的 “任务”(TASK)分为两种类型,一种是“视频”,另一种是“习题”。现在出问题的是“视频任务”。

他们的特点是大部分字段的数量是“固定不变”的,比如一个任务只能有一个名字(taskName),一种任务类型(taskType),一种“是否锁定”(isLock)和一个封面(frontCoverURL),


但个别字段,根据产品需求,是可以有任意个的。

比如视频任务的正文部分,是可以添加任意数量的文本(textContent)和图片(imageLink),正文部分(文本或图片)会被保存在一个名为Unit的对象中。


在相似的“回家学习”项目里,


表结构是这么设计的:可以看见一个task对多个unit,分别用来保存数量不变与数量任意的字段。

Task:

id

task_name

intro_text

front_cover_url

......


Unit:

id

text_content

media_type

task_id

......


接着,在保存一个“视频任务”时,通过一个封装了task和unit的TaskUnit类(数据库中并没有这张表)来接收前端传来的数据。

public class TaskUnit{

        private Task task;

        private List<Unit> unitList;

}

可以看到这个 TaskUnit 里有 task 和 unitList 两个内部类,

也就是说,用户对 视频任务 的新增或编辑的提交、所有字段数据都会被封装到 TaskUnit 中,传给后端的接口。


但“新增”、“编辑”后,我觉得会有一个比较麻烦的地方。

因为视频任务的 正文部分 是非必填的。

有下面这种可能:

当用户在新建任务时、在正文部分、存放了几张图片或文字、然后保存并提交了。

此时根据一个task 和 unitList 会被封装进taskUnit。

业务逻辑为 对task和unit的insert。


第二次,当用户在编辑那个任务时,删除了正文部分所有的图片和文字。

此时业务逻辑势必为 对task类的update和对unit类的delete。




通常,对一个类的“新增”和“编辑”分别是POST与PUT 两个不同的接口。




新增的前提是没有id,编辑的前提是有id。










明天计划的事情:

1、


遇到的问题:

1、


收获:




返回列表 返回列表
评论

    分享到