⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messagehelper.java

📁 采用Eclispe开发平台
💻 JAVA
字号:
package com.whatratimes.webedu.message;

import com.whatratimes.dbms.UserSQLExecuter;
import com.whatratimes.tables.t_user;

import javax.servlet.http.HttpSession;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * User: Tao
 * Date: Jul 15, 2003
X-Virus: 6
 * Time: 7:05:09 AM
 */
public class MessageHelper
{
    public static final SimpleDateFormat SDF = new SimpleDateFormat("MM-dd HH:mm:ss");

    public static int getNumberOfNewMessage(HttpSession session) throws Exception
    {
        t_user user = (t_user) session.getAttribute("User");

        Object[] objs = UserSQLExecuter.executeQuery("Select MessageId from t_messages where MessageType =4 AND IsNew='Y' AND MessageTo = " + user.UserId);
        return objs.length;
    }

    public static void setMessages(HttpSession session)
    {
        t_user user = (t_user) session.getAttribute("User");


        Object[] objs1 = null;
        Object[] objs2 = null;
        Object[] objs3 = null;
        Object[] objs4 = null;

        objs4 = UserSQLExecuter.executeQuery(
                "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, b.MessageType MessageType, c.UserName MessageTo, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                "from t_user a, t_messages b, t_user c " +
                "where a.UserId = b.UserId AND b.MessageType = 4 AND c.UserId=b.MessageTo AND b.MessageTo = " + user.UserId
        );

        if (user.UserType == 5)
        {

            objs1 = UserSQLExecuter.executeQuery(
                    "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, c.SchoolName MessageTo, b.MessageType MessageType, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                    "from t_user a, t_messages b, t_school c " +
                    "where " +
                    "a.UserId = b.UserId AND " +
                    "b.SchoolId = c.SchoolId AND " +
                    "b.MessageType=1"
            );
            objs2 = UserSQLExecuter.executeQuery(
                    "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, c.CourseName MessageTo, b.MessageType MessageType, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                    "from t_user a, t_messages b, t_course c " +
                    "where " +
                    "a.UserId = b.UserId AND " +
                    "b.MessageTo = c.CourseId AND " +
                    "b.MessageType=2"
            );
            objs3 = UserSQLExecuter.executeQuery(
                    "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, c.ClassName MessageTo, b.MessageType MessageType, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                    "from t_user a, t_messages b, t_class c " +
                    "where " +
                    "a.UserId = b.UserId AND " +
                    "b.MessageTo = c.ClassId AND " +
                    "b.MessageType=3"
            );
        } else
        {

            objs1 = UserSQLExecuter.executeQuery(
                    "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, c.SchoolName MessageTo, b.MessageType MessageType, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                    "from t_user a, t_messages b, t_school c " +
                    "where " +
                    "a.UserId = b.UserId AND " +
                    "b.MessageType = 1 AND " +
                    "b.SchoolId = c.SchoolId AND " +
                    "b.SchoolId = '" + user.SchoolId + "'"
            );


            switch (user.UserType)
            {
                case 3:
                case 4:
                    objs2 = UserSQLExecuter.executeQuery(
                            "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, c.CourseName MessageTo, b.MessageType MessageType, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                            "from " +
                            "t_user a, " +
                            "t_messages b, " +
                            "t_course c " +
                            "where " +
                            "a.UserId = b.UserId AND " +
                            "b.MessageTo = c.CourseId AND " +
                            "b.MessageType = 2 AND " +
                            "c.CourseState = 2"
                    );
                    break;

                case 2:
                    objs2 = UserSQLExecuter.executeQuery(
                            "select distinct " +
                                "a.UserId SenderId, " +
                                "a.UserName Sender, " +
                                "b.MessageId MessageId, " +
                                "f.CourseName MessageTo, " +
                                "b.MessageType MessageType, " +
                                "b.MessageTime MessageTime, " +
                                "b.Topic Topic, " +
                                "b.IsNew IsNew " +
                            "from " +
                                "t_user a, " +
                                "t_messages b, " +
                                "t_class_course c, " +
                                "t_course f " +
                            "where " +
                                "a.UserId = b.UserId AND " +
                                "b.MessageType = 2 AND " +
                                "c.State = 1 AND f.CourseState=2 AND " +
                                "b.MessageTo = c.CourseId AND " +
                                "f.CourseId = c.CourseId AND " +
                                "c.TeacherId = " + user.UserId
                    );
                    break;

                default:
                    objs2 = UserSQLExecuter.executeQuery(
                            "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, f.CourseName MessageTo, b.MessageType MessageType, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                            "from " +
                            "t_user a, " +
                            "t_messages b, " +
                            "t_class_course c, " +
                            "t_class d, " +
                            "t_course f, " +
                            "t_student e " +
                            "where " +
                            "a.UserId = b.UserId AND " +
                            "b.MessageType = 2 AND " +
                            "c.State = 1 AND d.State=1 AND " +
                            "b.MessageTo = c.CourseId AND " +
                            "f.CourseId = c.CourseId AND " +
                            "d.ClassId = c.ClassId AND " +
                            "e.ClassId = d.ClassId AND " +
                            "e.UserId = " + user.UserId
                    );
            }

            switch (user.UserType)
            {
                case 2:
                    objs3 = UserSQLExecuter.executeQuery(
                            "select DISTINCT a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, d.ClassName MessageTo, b.MessageType MessageType, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                            "from " +
                            "t_user a, " +
                            "t_messages b, " +
                            "t_class d, " +
                            "t_class_course e " +
                            "where " +
                            "a.UserId = b.UserId AND " +
                            "b.MessageType = 3 AND " +
                            "d.State=1 AND " +
                            "e.State=1 AND " +
                            "b.MessageTo = d.ClassId AND " +
                            "e.ClassId = d.ClassId AND " +
                            "e.TeacherId = " + user.UserId
                    );
                    break;

                case 4:
                    objs3 = UserSQLExecuter.executeQuery(
                            "select " +
                                "a.UserId SenderId, " +
                                "a.UserName Sender, " +
                                "b.MessageId MessageId, " +
                                "d.ClassName MessageTo, " +
                                "b.MessageType MessageType, " +
                                "b.MessageTime MessageTime, " +
                                "b.Topic Topic, " +
                                "b.IsNew IsNew " +
                            "from " +
                                "t_user a, " +
                                "t_messages b, " +
                                "t_class d " +
                            "where " +
                                "a.UserId = b.UserId AND " +
                                "b.MessageType = 3 AND " +
                                "d.State=1 AND " +
                                "b.MessageTo = d.ClassId AND " +
                                "d.SchoolId = '" + user.SchoolId +"'"
                    );
                    break;

                default:
                    objs3 = UserSQLExecuter.executeQuery(
                            "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, d.ClassName MessageTo, b.MessageType MessageType, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                            "from " +
                            "t_user a, " +
                            "t_messages b, " +
                            "t_class d, " +
                            "t_student e " +
                            "where " +
                            "a.UserId = b.UserId AND " +
                            "b.MessageType = 3 AND " +
                            "d.State=1 AND " +
                            "b.MessageTo = d.ClassId AND " +
                            "e.ClassId = d.ClassId AND " +
                            "e.UserId = " + user.UserId
                    );
            }

        }
        Object[] objs = new Object[objs1.length + objs2.length + objs3.length + objs4.length];

        System.arraycopy(objs1, 0, objs, 0, objs1.length);
        System.arraycopy(objs2, 0, objs, objs1.length, objs2.length);
        System.arraycopy(objs3, 0, objs, objs1.length + objs2.length, objs3.length);
        System.arraycopy(objs4, 0, objs, objs1.length + objs2.length + objs3.length, objs4.length);

        Arrays.sort(objs, new CompareMessage());

        session.setAttribute("Messages", objs);
    }

    public static void setNotifications(HttpSession session)
    {
        t_user user = (t_user) session.getAttribute("User");

        Object[] objs1 = UserSQLExecuter.executeQuery(
                "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, b.MessageType MessageType, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                "from t_user a, t_messages b, t_school c " +
                "where " +
                "a.UserId = b.UserId AND " +
                "b.MessageType = 1 AND " +
                "b.SchoolId = c.SchoolId AND " +
                "b.SchoolId = '" + user.SchoolId + "' "
        );

        Object[] objs2 = UserSQLExecuter.executeQuery(
                "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, b.MessageType MessageType, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                "from " +
                "t_user a, " +
                "t_messages b, " +
                "t_class_course c, " +
                "t_class d, " +
                "t_student e " +
                "where " +
                "a.UserId = b.UserId AND " +
                "b.MessageType = 2 AND " +
                "c.State = 1 AND d.State=1 AND " +
                "b.MessageTo = c.CourseId AND " +
                "d.ClassId = c.ClassId AND " +
                "e.ClassId = d.ClassId AND " +
                "e.UserId = " + user.UserId + " "
        );

        Object[] objs3 = UserSQLExecuter.executeQuery(
                "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, b.MessageType MessageType, b.MessageTime MessageTime, b.Topic Topic, b.IsNew IsNew " +
                "from " +
                "t_user a, " +
                "t_messages b, " +
                "t_class d, " +
                "t_student e " +
                "where " +
                "a.UserId = b.UserId AND " +
                "b.MessageType = 3 AND " +
                "d.State=1 AND " +
                "b.MessageTo = d.ClassId AND " +
                "e.ClassId = d.ClassId AND " +
                "e.UserId = " + user.UserId + " "
        );

        Object[] objs = new Object[objs1.length + objs2.length + objs3.length];

        System.arraycopy(objs1, 0, objs, 0, objs1.length);
        System.arraycopy(objs2, 0, objs, objs1.length, objs2.length);
        System.arraycopy(objs3, 0, objs, objs1.length + objs2.length, objs3.length);

        Arrays.sort(objs, new CompareMessage());

        List  l = Arrays.asList(objs);

        Collections.reverse(l);

//        l.toArray();


        session.setAttribute("Notifications", l.toArray());
    }

    public static void setViewMessage(HttpSession session, Integer message_id)
    {

        Object[] objs = null;

        objs = UserSQLExecuter.executeQuery(
                "select a.UserId SenderId, a.UserName Sender, b.MessageId MessageId, b.MessageType, b.MessageTime MessageTime, b.Topic Topic, b.Content Content, b.IsNew IsNew " +
                "from t_user a, t_messages b " +
                "where a.UserId = b.UserId AND b.MessageId = " + message_id
        );

        if (objs.length > 0)
        {
            session.setAttribute("ViewMessage", objs[0]);
            if (((Hashtable) objs[0]).get("IsNew").equals("Y"))
            {
                UserSQLExecuter.executeUpdate("update t_messages set IsNew ='N' where MessageId = " + message_id);
            }
        }

    }
}

class CompareMessage implements Comparator
{
    public int compare(Object o1, Object o2)
    {
        int mid1 = ((Integer) ((Hashtable) o1).get("MessageId")).intValue();
        int mid2 = ((Integer) ((Hashtable) o2).get("MessageId")).intValue();

        return mid1 - mid2;

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -