📄 #service.mo
字号:
Option Explicit
TBBS.AddLang "common|head|foot|error|service"
TBBS.SetNodes "env|user|forums"
TBBS.Vars("skin") = "default"
Call main
TBBS.Page("name") = TBBS.GetNav()
TBBS.AddOnline 0, TBBS.Page("name")
Private Sub doGet()
Select Case TBBS.Vars("handle")
Case "fav"
Call doGetFav
Case "buy"
Call doGetBuy
Case Else
TBBS.AddError "invalid_handle", Array()
End Select
End Sub
Private Sub doPost()
Select Case TBBS.Vars("handle")
Case "fav"
Call doPostFav
Case Else
TBBS.AddError "invalid_handle", Array()
End Select
End Sub
Private Sub doGetFav()
If TBBS.Permit("fav") = 0 Then
TBBS.AddError "fav", Array()
Else
Select Case TBBS.Vars("action")
Case "add"
Call doGetFavAdd
Case Else
TBBS.AddError "invalid_handle", Array()
End Select
End If
End Sub
Private Sub doPostFav()
If TBBS.Permit("fav") = 0 Then
TBBS.AddError "fav", Array()
Else
Select Case TBBS.Vars("action")
Case "del"
Call doPostFavDel()
Case Else
TBBS.AddError "invalid_handle", Array()
End Select
End If
End Sub
Private Sub doGetFavAdd()
Dim strSQL, clsCmd
TBBS.AddNav "", TBBS.Lang("add_fav")
TBBS.Vars("action_name") = TBBS.Lang("add_fav")
If Not TBBS.CheckForum("crt", Request.QueryString("fid")) Then
TBBS.AddError "missing_forum", Array()
Exit Sub
End If
If Not TBBS.CheckTopic(Request.QueryString("id")) Then
TBBS.AddError "missing_topic", Array()
Exit Sub
End If
If atol(TBBS.Forum("crt.seqid")) <> TBBS.Topic("forumid") Then
TBBS.AddError "missing_topic", Array()
Exit Sub
End If
If TBBS.Topic("follow") > 0 Then
TBBS.AddError "invalid_fav", Array()
Exit Sub
End If
strSQL = MyKernel.DB.GetLimitSQL(1, "SEQID", T_FAV, "USERID=$(UserId) AND FORUMID=$(ForumId) AND TOPICID=$(TopicId)", "", "")
strSQL = Replace(strSQL, "$(UserId)", MyKernel.Memory("seqid"))
strSQL = Replace(strSQL, "$(ForumId)", TBBS.Forum("crt.seqid"))
strSQL = Replace(strSQL, "$(TopicId)", TBBS.Topic("seqid"))
If MyKernel.DB.HasRow(strSQL) Then
TBBS.AddHint "fav_exists", Array()
Else
TBBS.AddHint "add_fav_ok", Array()
Set clsCmd = MyKernel.Command(T_FAV)
clsCmd.CommandType = "INSERT"
clsCmd.Add "userid", MyKernel.Memory("seqid")
clsCmd.Add "username", MyKernel.Memory("username")
clsCmd.Add "forumid", TBBS.Forum("crt.seqid")
clsCmd.Add "topicid", TBBS.Topic("seqid")
clsCmd.Add "topictitle", TBBS.Topic("title")
clsCmd.Add "addtime", TBBS.Vars("time")
clsCmd.Exec
Set clsCmd = Nothing
MyKernel.Memory("favs") = atol(MyKernel.Memory("favs")) + 1
Set clsCmd = MyKernel.Command(T_USER)
clsCmd.CommandType = "UPDATE"
clsCmd.Where = "SEQID=" & MyKernel.Memory("seqid")
clsCmd.Add "favs", MyKernel.Memory("favs")
clsCmd.Exec
Set clsCmd = Nothing
End If
End Sub
Private Sub doPostFavDel()
Dim arrID, i
Dim strSQL
TBBS.AddNav "", TBBS.Lang("del_fav")
TBBS.Vars("action_name") = TBBS.Lang("del_fav")
arrID = MyIO.FormArray("id")
If Not IsArray(arrID) Then
TBBS.AddHint "missing_del_fav", Array()
ElseIf Not IsNumericArray(arrID) Then
TBBS.AddHint "missing_del_fav", Array()
Else
strSQL = "DELETE FROM $(Table) WHERE SEQID IN ($(SeqId)) AND USERID=$(UserId)"
strSQL = Replace(strSQL, "$(Table)", T_FAV)
strSQL = Replace(strSQL, "$(UserId)", MyKernel.Memory("seqid"))
strSQL = Replace(strSQL, "$(SeqId)", Join(arrID, ","))
TBBS.Vars("deletes") = MyKernel.DB.Exec(strSQL)
If TBBS.Vars("deletes") > 0 Then
MyKernel.Memory("favs") = atol(MyKernel.Memory("favs")) - TBBS.Vars("deletes")
strSQL = "UPDATE $(Table) SET FAVS=$(Favs) WHERE SEQID=$(SeqID)"
strSQL = Replace(strSQL, "$(Table)", T_USER)
strSQL = Replace(strSQL, "$(Favs)", MyKernel.Memory("favs"))
strSQL = Replace(strSQL, "$(SeqID)", MyKernel.Memory("seqid"))
MyKernel.DB.Exec strSQL
TBBS.AddHint "del_fav_ok", Array()
Else
TBBS.AddHint "missing_del_fav", Array()
End If
End If
End Sub
Private Sub doGetBuy()
Dim lngId
Dim clsFile, clsCmd
lngId = atol(Request.QueryString("id"))
Set clsFile = MyKernel.Command(T_UPLOAD)
Set clsCmd = MyKernel.Command(T_DOWNLOAD)
TBBS.AddNav "", TBBS.Lang("buy_file")
TBBS.Vars("action_name") = TBBS.Lang("buy_file")
clsCmd.CommandType = "SELECT"
clsCmd.Where = "FILEID=" & clsFile("seqid") & " AND USERID=" & atol(MyKernel.Memory("seqid"))
If lngId < 1 Then
TBBS.AddHint "missing_file", Array()
ElseIf Not clsFile.Exec("*", "SEQID=" & lngId) Then
TBBS.AddHint "missing_file", Array()
ElseIf clsFile("coin") < 1 Then
TBBS.AddHint "no_need_buy", Array()
ElseIf MyKernel.Memory("coin") < clsFile("coin") Then
TBBS.AddHint "no_enough_coin", Array()
ElseIf clsCmd.Exec Then
TBBS.Redirect "download.asp?id=" & clsFile("seqid")
TBBS.AddHint "had_buy", Array()
TBBS.AddHint "get_file", Array(TBBS.Vars("redirect"))
Else
Call BuyFile(clsFile)
TBBS.Redirect "download.asp?id=" & clsFile("seqid")
TBBS.AddHint "buy_ok", Array()
TBBS.AddHint "get_file", Array(TBBS.Vars("redirect"))
End If
Set clsCmd = Nothing
Set clsFile = Nothing
End Sub
Private Sub BuyFile(clsFile)
Dim clsCmd
Dim strSQL
Set clsCmd = MyKernel.Command(T_DOWNLOAD)
clsCmd.CommandType = "INSERT"
clsCmd.Add "fileid", clsFile("seqid")
clsCmd.Add "userid", MyKernel.Memory("seqid")
clsCmd.Add "buytime", TBBS.Vars("time")
clsCmd.Exec
Set clsCmd = Nothing
MyKernel.Memory("coin") = atol(MyKernel.Memory("coin")) - clsFile("coin")
Set clsCmd = MyKernel.Command(T_USER)
clsCmd.CommandType = "UPDATE"
clsCmd.Where = "SEQID=" & MyKernel.Memory("seqid")
clsCmd.Add "coin", MyKernel.Memory("coin")
clsCmd.Exec
Set clsCmd = Nothing
strSQL = "UPDATE $(Table) SET COIN=COIN+$(Coin) WHERE SEQID=$(SeqId)"
strSQL = Replace(strSQL, "$(Table)", T_USER)
strSQL = Replace(strSQL, "$(Coin)", clsFile("coin"))
strSQL = Replace(strSQL, "$(SeqId)", clsFile("userid"))
MyKernel.DB.Exec strSQL
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -