你应该有3种型号:
Shop
- 业务实体
Slot
- 含start_time
,end_time
,weekly_exception
属于shop
这里,weekly_exception
是range(0..127)
整数这需要请注意,此工作日该工作日有效
如:127 means (1111111) in base-2 representation => slot valid for all 7 weekdays
SlotException
- 包含blocked_start_time
,blocked_end_time
,exception_day
,is_on_leave
属于店铺
这里,exception_day
是被阻止只blocked_start_time
和blocked_end_time
定时之间用于哪个插槽日期。 和is_on_leave
是布尔型照顾插槽假期。
Ruby代码拿到平日出weekly_exception的:
def get_weekdays(weekly_exception)
i, count = 1, 0
map, weekdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], []
while count < 7
weekdays.push(map[count]) if (weekly_exception & i) > 0
i = i << 1
count += 1
end
return weekdays
end
不是一个确切的重复,而是讨论了类似的问题[这里](http://stackoverflow.com/q/1036603/5961578 )。 – moveson