我在我的数据库中有以下架构:

关键是要为每个用户提供他每个线程的最后一次读取日期时间.
如果需要,我还可以通过论坛和Universe查看此日期并进行汇总.
一个论坛被认为是Read,如果所有线程都Read.
如果用户的数量大于或等于上次创建的发布日期(来自),则考虑使用线程.ReadLastviewPost.CreatedAt
我已经发出以下T-SQL请求来实现每个论坛的目标:
SELECT
F.Id,
CASE WHEN SUM(V.IsRead) = COUNT(V.IsRead) THEN 1 ELSE 0 END AS IsRead
FROM Forum F
LEFT JOIN Thread T ON T.Id_Forum = F.Id
LEFT JOIN
(
SELECT
P.Id_Thread,
CASE WHEN MAX(P.CreatedAt) < MAX(V.LastView) THEN 1 ELSE 0 END AS IsRead
FROM Post P
INNER JOIN Thread T …Run Code Online (Sandbox Code Playgroud) 我是React(和Redux)的新手,并试图创建一个简单的表单,该表单将创建和Item(name, type),并在创建后重定向到ListIems页面。
我正在使用react-thunk处理异步操作,并且所有内容都在打字稿中。
我的问题是如何处理创建结果和重定向?由于我的操作CreateItemRequest是异步的,因此如何通知我的容器已成功创建Item,因此它将重定向到ListIems页面。
我曾尝试在我的化简器中简单地使用布尔值CreateItemSuccess,但是随后,我无法进入创建表单本身,因为布尔值现在是模型,现在是正确的,然后立即重定向到ListIems页面。
我被困在这里,我确定我错过了一些愚蠢的事情,但是在任何地方都找不到。
import { Route, Redirect } from "react-router-dom";
import { connect, Dispatch } from 'react-redux';
import * as React from 'react';
import * as Types from '../../types';
import * as Actions from '../../actions';
interface ICreateModelDispatchProps {
LoadItems: () => void;
ChangeForm: (model: Actions.IItemCreateModel) => void;
CreateItem: (model: Actions.IItemCreateModel) => void;
}
interface ICreateItemStateProps {
Types: Types.ITypeEntity[];
ItemCreated: boolean;
Model: Actions.IItemCreateModel; …Run Code Online (Sandbox Code Playgroud) 我只想在画布上播放视频的一半,但在对角线上被截断。目前,我可以使用这个小 JavaScript 在画布 easyli 中播放完整视频:
var video = document.getElementById('video');
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var drawFrame = function drawFrame() {
context.drawImage(video, 0, 0, canvas.width, canvas.height);
requestAnimationFrame(drawFrame);
};
requestAnimationFrame(drawFrame);
Run Code Online (Sandbox Code Playgroud)
最后,我希望能够同时播放 2 个视频(我只需在每个视频上调用 drawImage ),但每个视频都会沿对角线剪切,以呈现如下所示的内容:
然后我想根据鼠标位置移动分隔符。
c# ×1
canvas ×1
html ×1
html5-video ×1
javascript ×1
linq ×1
react-redux ×1
reactjs ×1
sql-server ×1
typescript ×1