www.gusucode.com > CC校友录贴吧 CCBar源码程序asp编程 > inc/logic/logic_sms.asp
<% ''=================================================================== '= ASP FILENAME : /inc/logic/logic_sms.asp '= CREATED TIME : 2006-5-7 '= LAST MODIFIED: 2006-5-7 '= VERSION INFO : CCASP Framework Ver 2.0.1 ALL RIGHTS RESERVED BY www.cclinux.com '= DESCRIPTION : 站内短信 '= Change Log: '===================================================================' %> <% '== Const define '== 短信阅读状态 Const CONST_SMS_VIEWED_FLAG = 1 '== 已阅读 Const CONST_SMS_VIEW_FLAG = 0 '== 未阅读 ''=================================================================== '= Function : GetSmsesLogic() '= Time : Created At 2006-5-7 '= Input : intUserId : 用户 ID '= Input : strFlag : InBox--收件箱;OutBox--发件箱;IsSend--已发送;RecycleBox--回收站; '= Return : boolean '= Description : 取得用户短信 '===================================================================' Function GetSmsesLogic(intUserId,strFlag) Dim strWhere Select Case strFlag Case "InBox" : strWhere = "SMS_INCEPTER_ID=" & intUserId & " AND SMS_SEND_FLAG=1 AND SMS_DEL_INCEPT=0" Case "OutBox" : strWhere = "SMS_SENDER_ID=" & intUserId & " AND SMS_SEND_FLAG=0 AND SMS_DEL_SEND=0" Case "IsSend" : strWhere = "SMS_SENDER_ID=" & intUserId & " AND SMS_SEND_FLAG=1 AND SMS_DEL_SEND=0" Case "RecycleBox" : strWhere = "((SMS_SENDER_ID=" & intUserId & " AND SMS_DEL_SEND=1) OR (SMS_INCEPTER_ID=" & intUserId & " AND SMS_DEL_INCEPT=1)) AND NOT SMS_DEL_SEND=2" Case Else strWhere = "SMS_INCEPTER_ID="& intUserId &" AND SMS_SEND_FLAG=1 AND SMS_DEL_INCEPT=0" End Select GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "*","" GBL_objPubDB.Order = "SMS_ID DESC" GBL_objPubDB.Where = strWhere If Not GBL_objPubDB.SQLRSExecute() Then GetSmsesLogic = False Exit Function End If GetSmsesLogic = True End Function ''=================================================================== '= Function : GetUserSmsInfoLogic() '= Time : Created At 2006-5-7 '= Input : intUserId : 用户 ID '= Output : strSmsInfo : 用户 sms 信息 '= Return : boolean '= Description : 取得用户短信信息 '===================================================================' Function GetUserSmsInfoLogic(intUserId,ByRef strSmsInfo) Dim strHtmlCode Dim intInNum,intNoViewNum,intOutNum,intRecycleNum,intSendNum '== Get inbox all information GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "SMS_ID","" GBL_objPubDB.Where = "SMS_INCEPTER_ID=" & intUserId & " AND SMS_DEL_SEND=0 AND SMS_SEND_FLAG=1" If Not GBL_objPubDB.SQLRSExecute() Then GetUserSmsInfoLogic = False Exit Function End If intInNum = GBL_objPubDB.intRSNum '== Get intbox all no view information GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "SMS_ID","" GBL_objPubDB.Where = "SMS_INCEPTER_ID=" & intUserId & " AND SMS_DEL_SEND=0 AND SMS_SEND_FLAG=1 AND SMS_VIEW_FLAG=0" If Not GBL_objPubDB.SQLRSExecute() Then GetUserSmsInfoLogic = False Exit Function End If intNoViewNum = GBL_objPubDB.intRSNum '== Get outbox all information GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "SMS_ID","" GBL_objPubDB.Where = "SMS_INCEPTER_ID=" & intUserId & " AND SMS_DEL_SEND=0 AND SMS_SEND_FLAG=0 AND SMS_VIEW_FLAG=0" If Not GBL_objPubDB.SQLRSExecute() Then GetUserSmsInfoLogic = False Exit Function End If intOutNum = GBL_objPubDB.intRSNum '== Get recycle all information GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "SMS_ID","" GBL_objPubDB.Where = "((SMS_SENDER_ID=" & intUserId & " AND SMS_DEL_SEND=1) OR (SMS_INCEPTER_ID=" & intUserId & " AND SMS_DEL_INCEPT=1)) AND NOT SMS_DEL_SEND=2" If Not GBL_objPubDB.SQLRSExecute() Then GetUserSmsInfoLogic = False Exit Function End If intRecycleNum = GBL_objPubDB.intRSNum '== Get send all information GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "SMS_ID","" GBL_objPubDB.Where = "SMS_SENDER_ID=" & intUserId & " AND SMS_SEND_FLAG=1 AND SMS_DEL_SEND=0" If Not GBL_objPubDB.SQLRSExecute() Then GetUserSmsInfoLogic = False Exit Function End If intSendNum = GBL_objPubDB.intRSNum strHtmlCode = "目前您收到" & intInNum & "条短信,其中" & intNoViewNum & "条未读,有" & intOutNum & "条未发送,已发送" & intSendNum & "条,垃圾箱里有" & intRecycleNum & "条" strSmsInfo = strHtmlCode GetUserSmsInfoLogic = True End Function ''=================================================================== '= Function : GetNowSmsSizeLogic() '= Time : Created At 2006-5-7 '= Input : intUserId : 用户 ID '= Output : strFlag : 返回用户 sms 信息 '= Return : boolean '= Description : 取得用户短信容量信息 '===================================================================' Function GetNowSmsSizeLogic(intUserId,strFlag,ByRef strSmsSizeInfo,ByRef intSmsSize) Dim strWhere Select Case strFlag Case "InBox" : strWhere = "SMS_INCEPTER_ID=" & intUserId & " AND SMS_SEND_FLAG=1 AND SMS_DEL_INCEPT=0" Case "OutBox" : strWhere = "SMS_SENDER_ID=" & intUserId & " AND SMS_SEND_FLAG=0 AND SMS_DEL_SEND=0" Case "IsSend" : strWhere = "SMS_SENDER_ID=" & intUserId & " AND SMS_SEND_FLAG=1 AND SMS_DEL_SEND=0" Case "RecycleBox" : strWhere = "((SMS_SENDER_ID=" & intUserId & " AND SMS_DEL_SEND=1) OR (SMS_INCEPTER_ID=" & intUserId & " AND SMS_DEL_INCEPT=1)) AND NOT SMS_DEL_SEND=2" Case Else strWhere = "SMS_INCEPTER_ID="& intUserId &" AND SMS_SEND_FLAG=1 AND SMS_DEL_INCEPT=0" End Select GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "SUM(SMS_SIZE)","" GBL_objPubDB.Where = strWhere If Not GBL_objPubDB.SQLRSExecute() Then GetNowSmsSizeLogic = False Exit Function End If If IsNumeric(GBL_intSmsMaxSize) Then If GBL_intSmsMaxSize > 0 Then intSmsSize = (GBL_objPubDB.objPubRS(0) / GBL_intSmsMaxSize) * 100 intSmsSize = strSmsSizeInfo & "%" ElseIf GBL_intSmsMaxSize = 0 Then intSmsSize = "的短信容量无限制" Else intSmsSize = "???" End If Else intSmsSize = "???" End If If GBL_intSmsMaxSize <= GBL_objPubDB.objPubRS(0) And GBL_intSmsMaxSize <> 0 Then strSmsSizeInfo = "Over" Else strSmsSizeInfo = "No" End If GetNowSmsSizeLogic = True End Function ''=================================================================== '= Function : GetSmsLogic '= Time : Created At 2006-5-7 '= Input : intSmsId : SMS ID '= Input : intUserId : 用户 ID '= Return : boolean '= Description : 取得用户短信 '===================================================================' Function GetSmsLogic(intUserId,intSmsId) Dim strSql '== 限定用户条件 strSql = " AND (SMS_INCEPTER_ID = " & intUserId & " OR SMS_SENDER_ID = " & intUserId & ")" '== 取记录 GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" GBL_objPubDB.Where = "SMS_ID=" & intSmsId & strSql GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "*","" If Not GBL_objPubDB.SQLRSExecute() Then GetSmsLogic = False Exit Function End If GetSmsLogic = True End Function ''=================================================================== '= Function : SaveSmsViewFlagLogic '= Time : Created At 2006-5-7 '= Input : intSmsId : SMS ID '= Input : intUserId : 用户 ID '= Return : boolean '= Description : 更新用户短信阅读状态 '===================================================================' Function SaveSmsViewFlagLogic(intUserId,intSmsId) GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" GBL_objPubDB.SQLType = "UPDATE" GBL_objPubDB.AddField "SMS_VIEW_FLAG",CONST_SMS_VIEWED_FLAG GBL_objPubDB.Where = "SMS_ID=" & intSmsId & " AND SMS_INCEPTER_ID=" & intUserId & " And SMS_SEND_FLAG=1 AND SMS_DEL_INCEPT=0 AND SMS_VIEW_FLAG=" & CONST_SMS_VIEW_FLAG If Not GBL_objPubDB.SQLRSExecute() Then SaveSmsViewFlagLogic = False Exit Function End If SaveSmsViewFlagLogic = True End Function ''=================================================================== '= Function : SaveSmsLogic '= Time : Created At 2006-5-8 '= Input : intUserId : 用户 ID '= Input : intIncepterId : 接受者 '= Input : objFormData : 表单数据 '= Return : boolean '= Description : 保存短信 '===================================================================' Function SaveSmsLogic(intUserId,intIncepterId,objFormData) Dim strIncepter '== 取得接收者name GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_USER" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "USER_REALNAME", now() GBL_objPubDB.Where = " USER_ID=" & intIncepterId If Not GBL_objPubDB.SQLRSExecute() Then SaveSmsLogic = False Exit Function End If strIncepter = GBL_objPubDB.objPubRS("USER_REALNAME") GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" GBL_objPubDB.SQLType = "INSERT" GBL_objPubDB.AddField "SMS_TIME", now() GBL_objPubDB.AddField "SMS_SENDER", GBL_strUserRealName GBL_objPubDB.AddField "SMS_SENDER_ID", intUserId GBL_objPubDB.AddField "SMS_INCEPTER", strIncepter GBL_objPubDB.AddField "SMS_INCEPTER_ID", intIncepterId GBL_objPubDB.AddField "SMS_TITLE", objFormData.Item("Title") GBL_objPubDB.AddField "SMS_CONTENT", HtmlenCode2(objFormData.Item("Content")) GBL_objPubDB.AddField "SMS_SIZE", Len(Trim(objFormData.Item("Content"))) GBL_objPubDB.AddField "SMS_VIEW_FLAG", "0" GBL_objPubDB.AddField "SMS_SEND_FLAG", "1" GBL_objPubDB.AddField "SMS_DEL_SEND", "0" GBL_objPubDB.AddField "SMS_DEL_INCEPT", "0" If Not GBL_objPubDB.SQLExecute() Then SaveSmsLogic = False Exit Function End If SaveSmsLogic = True End Function ''=================================================================== '= Function : RemoveSmsesLogic '= Time : Created At 2006-5-8 '= Input : intUserId '= Input : strIds : 记录ID集 '= Input : objFormData : 表单数据 '= Return : boolean '= Description : 删除短信 '===================================================================' Function RemoveSmsesLogic(intUserId,strIds,objFormData) Dim GetRSId,arrTmp,strDelWhere,strSetValue,strSQLType,strActType,strAddInfo,i,strDelClew,strAddWhere GetRSId = strIds arrTmp = Split(GetRSId,",") strAddInfo = "该短信记录" For i = LBound(arrTmp) To UBound(arrTmp) If DataCheck("DT_ID",Trim(arrTmp(i)),strAddInfo & GetRSId,"") Then Call GBL_objException.catchErr(E_USER_PUB,strAddInfo) RemoveSmsesLogic = False Exit Function End If Next strDelWhere = "" strSetValue = "" strSQLType = "" strActType = Request("hidBoxName") If Request("subSmsDel") = "" And Request("subSmsDelAll") <> "" Then strDelClew = "删除" & strActType & "中所有短信" strAddWhere = "" Else strDelClew = "删除" & strActType & "中选中短信" strAddWhere = " AND SMS_ID IN (" & Replace(GetRSId,"'","") & ")" End If If strActType <> "" And strActType <> "废件箱" Then '== Set parameters of db Select Case strActType Case "收件箱" : strDelWhere = "SMS_INCEPTER_ID=" & intUserId & " AND SMS_SEND_FLAG=1 AND SMS_DEL_INCEPT=0" strSetValue = "SMS_DEL_INCEPT" Case "已发送" : strDelWhere = "SMS_SENDER_ID=" & intUserId & " AND SMS_SEND_FLAG=1 AND SMS_DEL_SEND=0" strSetValue = "SMS_DEL_SEND" Case "发件箱" : strDelWhere = "SMS_SENDER_ID=" & intUserId & " AND SMS_SEND_FLAG=0 AND SMS_DEL_SEND=0" strSetValue = "SMS_DEL_SEND" End Select strSQLType = "UPDATE" GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" GBL_objPubDB.SQLType = strSQLType GBL_objPubDB.Where = strDelWhere & strAddWhere GBL_objPubDB.AddField strSetValue,"1" If Not GBL_objPubDB.SQLExecute() Then RemoveSmsesLogic = False Exit Function End If ElseIf strActType = "废件箱" Then GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_SMS" '== 完全删除收到的且放入垃圾箱(delr=1),被发送者(dels=2)从垃圾箱中删除的 strDelWhere = "SMS_INCEPTER_ID=" & intUserId & " AND SMS_DEL_INCEPT=1 AND SMS_DEL_SEND=2 " GBL_objPubDB.SQLType = "DELETE" GBL_objPubDB.Where = strDelWhere & strAddWhere If Not GBL_objPubDB.SQLExecute() Then RemoveSmsesLogic = False Exit Function End If '== 完全删除发送的且放入垃圾箱(dels=1),且被接收者(delr=2)从垃圾箱删除的 strDelWhere = "SMS_SENDER_ID=" & intUserId & " AND SMS_DEL_SEND=1 AND SMS_DEL_INCEPT=2 AND SMS_SEND_FLAG=1" GBL_objPubDB.SQLType = "DELETE" GBL_objPubDB.Where = strDelWhere & strAddWhere If Not GBL_objPubDB.SQLExecute() Then RemoveSmsesLogic = False Exit Function End If '== 完全删除未被发送(issend=0),且被发送者放入垃圾箱(dels=1)的 strDelWhere = "SMS_SENDER_ID=" & intUserId & " AND SMS_DEL_SEND=1 AND SMS_SEND_FLAG=0" GBL_objPubDB.SQLType = "DELETE" GBL_objPubDB.Where = strDelWhere & strAddWhere If Not GBL_objPubDB.SQLExecute() Then RemoveSmsesLogic = False Exit Function End If '== 逻辑删除收到的且放入垃圾箱(delr=1),未被发送者(dels<>2)从垃圾箱删除的 strDelWhere = "SMS_INCEPTER_ID=" & intUserId & " AND SMS_DEL_INCEPT=1 AND SMS_DEL_SEND<>2 " GBL_objPubDB.SQLType = "UPDATE" GBL_objPubDB.Where = strDelWhere & strAddWhere GBL_objPubDB.AddField "SMS_DEL_INCEPT",2 If Not GBL_objPubDB.SQLExecute() Then RemoveSmsesLogic = False Exit Function End If '== 逻辑删除用户发送的且放入垃圾箱(dels=1),未被接收者(delr<>2)从垃圾箱删除的 strDelWhere = "SMS_SENDER_ID=" & intUserId & " AND SMS_DEL_SEND=1 AND SMS_DEL_INCEPT<>2 AND SMS_SEND_FLAG=1" GBL_objPubDB.SQLType = "UPDATE" GBL_objPubDB.Where = strDelWhere & strAddWhere GBL_objPubDB.AddField "SMS_DEL_SEND",2 If Not GBL_objPubDB.SQLExecute() Then RemoveSmsesLogic = False Exit Function End If GBL_objPubDB.Clear() End If RemoveSmsesLogic = True End Function %>