发表于: 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、
收获:
评论