CREATE TRIGGER [AllotPoint] ON [dbo].[admindetail]
AFTER INSERT
ASDECLARE @ID nvarchar(15) -- 记录代码
DECLARE @CommendStaffID nvarchar(15) -- 推荐人代码
DECLARE @CommendStaffName nvarchar(15) -- 推荐人
DECLARE @Name nvarchar(15) -- 教师代码
DECLARE @i int
DECLARE @StartTime bigint -- 开始时间
DECLARE @EndTime datetime -- 结束时间
DECLARE @AdminTime bigint -- 上课持续时间
DECLARE @Point int -- 点数
DECLARE @StudentCount int -- 学生数量
DECLARE @FlatPoint int -- 平台使用费
DECLARE @FlatIncomePoint int -- 平台使用费收入点数
DECLARE @IncomePoint int -- 收入点数
DECLARE @TruePoint int -- 实际收入点数
DECLARE @TeacherID nvarchar(15) -- 教师代码
DECLARE @CourseID nvarchar(15) -- 课程代码
DECLARE @RoofRate float -- 平台汇率
DECLARE @PointRate float -- 上课汇率SET @ID = (SELECT TOP 1 no FROM admindetail ORDER BY no DESC)
SET @Name = (SELECT name FROM admindetail WHERE no = @ID)
SET @StartTime = (SELECT logtime FROM admindetail WHERE no = @ID)
SET @AdminTime = (SELECT admintime FROM admindetail WHERE no = @ID)
SET @RoofRate = (SELECT ItemValue FROM Class_Parameter WHERE Category = 'RoofRate')
SET @PointRate = (SELECT ItemValue FROM Class_Parameter WHERE Category = 'PointRate')
SET @Point = (SELECT userpoint FROM [user] WHERE name = @Name)
SET @IncomePoint = (SELECT SUM(points) FROM userdetail WHERE logtime > @AdminTime AND logtime < @StartTime + @AdminTime)
SET @StudentCount = (SELECT Count(points) FROM userdetail WHERE logtime > @AdminTime AND logtime < @StartTime + @AdminTime)
SET @FlatPoint = (SELECT ItemValue FROM Class_Parameter WHERE Category = 'Charge')
SET @FlatIncomePoint = @StudentCount * @FlatPoint * @RoofRate
SET @TruePoint = (@IncomePoint - @StudentCount * @FlatPoint) * @PointRate
SET @TeacherID = (SELECT ID FROM admindetail LEFT JOIN T_Staff ON T_Staff.UserName = admindetail.name WHERE no=@ID)
PRINT @TeacherID
SET @CourseID = (SELECT ID FROM Class_Course
WHERE StartTime < Convert(DateTime, (DateAdd(s, @StartTime, '01/01/1970 08:00:00')), 120)
AND EndTime > Convert(DateTime, (DateAdd(s, @StartTime, '01/01/1970 08:00:00')), 120)
AND CreateStaffID = @TeacherID)
SET @CommendStaffName = @Name
IF(@StudentCount > 0)
BEGIN
SET @i = 1
WHILE @i < 9
BEGIN
SET @CommendStaffID = (SELECT CommendStaffID FROM T_Staff WHERE UserName=@CommendStaffName)
SET @CommendStaffName = (SELECT CommendStaffName FROM T_Staff WHERE UserName=@CommendStaffName)
IF @CommendStaffName IS NULL
BREAK
ELSE
UPDATE [user] SET userpoint = userpoint + @TruePoint * 0.02 + @FlatIncomePoint * 0.02 WHERE name = @CommendStaffName
INSERT
INTO Class_Reckoning (ID, StaffID, TeacherID, CourseID, StartTime, EndTime, Style, Point, Message)
VALUES (newid(), @CommendStaffID, @TeacherID, @CourseID, Convert(DateTime, (DateAdd(s, @StartTime, '01/01/1970 08:00:00')), 120) , Convert(DateTime, (DateAdd(s, @StartTime + @AdminTime, '01/01/1970 08:00:00')), 120), '0', @TruePoint * 0.02, '1')
INSERT
INTO Class_Reckoning (ID, StaffID, TeacherID, CourseID, StartTime, EndTime, Style, Point, Message)
VALUES (newid(), @CommendStaffID, @TeacherID, @CourseID, Convert(DateTime, (DateAdd(s, @StartTime, '01/01/1970 08:00:00')), 120) , Convert(DateTime, (DateAdd(s, @StartTime + @AdminTime, '01/01/1970 08:00:00')), 120), '0', @FlatIncomePoint * 0.02, '1') SET @i = @i+1
END
SET @TruePoint = @TruePoint - @TruePoint * 0.02 * (@i -1)
UPDATE [user] SET userpoint = userpoint - @IncomePoint + @TruePoint + (@FlatIncomePoint - @FlatIncomePoint * 0.02 * (@i - 1)) WHERE name = @Name
INSERT
INTO Class_Reckoning (ID, StaffID, TeacherID, CourseID, StartTime, EndTime, Style, Point, Message)
VALUES (newid(), @TeacherID, @TeacherID, @CourseID, Convert(DateTime, (DateAdd(s, @StartTime, '01/01/1970 08:00:00')), 120) , Convert(DateTime, (DateAdd(s, @StartTime + @AdminTime, '01/01/1970 08:00:00')), 120), '0', @TruePoint + @FlatIncomePoint, '2')
END
AFTER INSERT
ASDECLARE @ID nvarchar(15) -- 记录代码
DECLARE @CommendStaffID nvarchar(15) -- 推荐人代码
DECLARE @CommendStaffName nvarchar(15) -- 推荐人
DECLARE @Name nvarchar(15) -- 教师代码
DECLARE @i int
DECLARE @StartTime bigint -- 开始时间
DECLARE @EndTime datetime -- 结束时间
DECLARE @AdminTime bigint -- 上课持续时间
DECLARE @Point int -- 点数
DECLARE @StudentCount int -- 学生数量
DECLARE @FlatPoint int -- 平台使用费
DECLARE @FlatIncomePoint int -- 平台使用费收入点数
DECLARE @IncomePoint int -- 收入点数
DECLARE @TruePoint int -- 实际收入点数
DECLARE @TeacherID nvarchar(15) -- 教师代码
DECLARE @CourseID nvarchar(15) -- 课程代码
DECLARE @RoofRate float -- 平台汇率
DECLARE @PointRate float -- 上课汇率SET @ID = (SELECT TOP 1 no FROM admindetail ORDER BY no DESC)
SET @Name = (SELECT name FROM admindetail WHERE no = @ID)
SET @StartTime = (SELECT logtime FROM admindetail WHERE no = @ID)
SET @AdminTime = (SELECT admintime FROM admindetail WHERE no = @ID)
SET @RoofRate = (SELECT ItemValue FROM Class_Parameter WHERE Category = 'RoofRate')
SET @PointRate = (SELECT ItemValue FROM Class_Parameter WHERE Category = 'PointRate')
SET @Point = (SELECT userpoint FROM [user] WHERE name = @Name)
SET @IncomePoint = (SELECT SUM(points) FROM userdetail WHERE logtime > @AdminTime AND logtime < @StartTime + @AdminTime)
SET @StudentCount = (SELECT Count(points) FROM userdetail WHERE logtime > @AdminTime AND logtime < @StartTime + @AdminTime)
SET @FlatPoint = (SELECT ItemValue FROM Class_Parameter WHERE Category = 'Charge')
SET @FlatIncomePoint = @StudentCount * @FlatPoint * @RoofRate
SET @TruePoint = (@IncomePoint - @StudentCount * @FlatPoint) * @PointRate
SET @TeacherID = (SELECT ID FROM admindetail LEFT JOIN T_Staff ON T_Staff.UserName = admindetail.name WHERE no=@ID)
PRINT @TeacherID
SET @CourseID = (SELECT ID FROM Class_Course
WHERE StartTime < Convert(DateTime, (DateAdd(s, @StartTime, '01/01/1970 08:00:00')), 120)
AND EndTime > Convert(DateTime, (DateAdd(s, @StartTime, '01/01/1970 08:00:00')), 120)
AND CreateStaffID = @TeacherID)
SET @CommendStaffName = @Name
IF(@StudentCount > 0)
BEGIN
SET @i = 1
WHILE @i < 9
BEGIN
SET @CommendStaffID = (SELECT CommendStaffID FROM T_Staff WHERE UserName=@CommendStaffName)
SET @CommendStaffName = (SELECT CommendStaffName FROM T_Staff WHERE UserName=@CommendStaffName)
IF @CommendStaffName IS NULL
BREAK
ELSE
UPDATE [user] SET userpoint = userpoint + @TruePoint * 0.02 + @FlatIncomePoint * 0.02 WHERE name = @CommendStaffName
INSERT
INTO Class_Reckoning (ID, StaffID, TeacherID, CourseID, StartTime, EndTime, Style, Point, Message)
VALUES (newid(), @CommendStaffID, @TeacherID, @CourseID, Convert(DateTime, (DateAdd(s, @StartTime, '01/01/1970 08:00:00')), 120) , Convert(DateTime, (DateAdd(s, @StartTime + @AdminTime, '01/01/1970 08:00:00')), 120), '0', @TruePoint * 0.02, '1')
INSERT
INTO Class_Reckoning (ID, StaffID, TeacherID, CourseID, StartTime, EndTime, Style, Point, Message)
VALUES (newid(), @CommendStaffID, @TeacherID, @CourseID, Convert(DateTime, (DateAdd(s, @StartTime, '01/01/1970 08:00:00')), 120) , Convert(DateTime, (DateAdd(s, @StartTime + @AdminTime, '01/01/1970 08:00:00')), 120), '0', @FlatIncomePoint * 0.02, '1') SET @i = @i+1
END
SET @TruePoint = @TruePoint - @TruePoint * 0.02 * (@i -1)
UPDATE [user] SET userpoint = userpoint - @IncomePoint + @TruePoint + (@FlatIncomePoint - @FlatIncomePoint * 0.02 * (@i - 1)) WHERE name = @Name
INSERT
INTO Class_Reckoning (ID, StaffID, TeacherID, CourseID, StartTime, EndTime, Style, Point, Message)
VALUES (newid(), @TeacherID, @TeacherID, @CourseID, Convert(DateTime, (DateAdd(s, @StartTime, '01/01/1970 08:00:00')), 120) , Convert(DateTime, (DateAdd(s, @StartTime + @AdminTime, '01/01/1970 08:00:00')), 120), '0', @TruePoint + @FlatIncomePoint, '2')
END
AFTER INSERT
ASDECLARE @ID nvarchar(15) -- 记录代码
DECLARE @StaffID nvarchar(15) -- 学生代码
DECLARE @TeacherID nvarchar(15) -- 教师代码
DECLARE @CourseID nvarchar(15) -- 课程代码
DECLARE @LogTime int -- 开始时间
DECLARE @StartTime datetime -- 开始时间
DECLARE @EndTime datetime -- 结束时间
DECLARE @Point int -- 点数--赋值
SET @ID = (SELECT TOP 1 no FROM userdetail ORDER BY no DESC)
SET @StaffID = (SELECT ID FROM t_Staff WHERE UserName = (SELECT name FROM userdetail WHERE no = @ID))
SET @TeacherID = (SELECT ID FROM userdetail left join T_Staff ON userdetail.roomname = T_Staff.RoomPort WHERE no= @ID)
SET @LogTime = (SELECT logtime FROM userdetail WHERE no = @ID)
SET @StartTime = (Convert(DateTime, (DateADD(s, @LogTime, '01/01/1970 08:00:00')), 101))
SET @EndTime = (Convert(DateTime, (DateADD(s, (SELECT lasttime FROM [user] WHERE name = (SELECT name FROM userdetail WHERE no = @ID)), '01/01/1970 08:00:00')), 101))
SET @CourseID = (SELECT ID FROM Class_Course
WHERE StartTime < Convert(DateTime, (DateAdd(s, @LogTime, '01/01/1970 08:00:00')), 120)
AND EndTime > Convert(DateTime, (DateAdd(s, @LogTime, '01/01/1970 08:00:00')), 120)
AND CreateStaffID = @TeacherID)
SET @Point = (SELECT points FROM userdetail WHERE no = @ID)
-- 插入数据
INSERT
INTO Class_Reckoning (ID, StaffID, TeacherID, CourseID, StartTime, EndTime, Style, Point, Message)
VALUES(newid(), @StaffID, @TeacherID, @CourseID, @StartTime, @EndTime, '1', @Point, '0')
[ID] [uniqueidentifier] NOT NULL ,
[StaffID] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[TeacherID] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[CourseID] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[StartTime] [datetime] NULL ,
[EndTime] [datetime] NULL ,
[Style] [bit] NULL ,
[Message] [int] NULL ,
[Point] [int] NULL
) ON [PRIMARY]
GOCREATE TABLE [dbo].[admindetail] (
[no] [bigint] IDENTITY (1, 1) NOT NULL ,
[logtime] [bigint] NULL ,
[name] [nvarchar] (63) COLLATE Chinese_PRC_CI_AS NULL ,
[admintime] [bigint] NULL ,
[roomname] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GOCREATE TABLE [dbo].[userdetail] (
[no] [bigint] IDENTITY (1, 1) NOT NULL ,
[logtime] [bigint] NULL ,
[name] [nvarchar] (63) COLLATE Chinese_PRC_CI_AS NULL ,
[points] [int] NULL ,
[roomname] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GOClass_Reckoning表就是上面说的detail表
眼晕