Browse Source

Merge branch 'developer_master' of https://gitlab.com/Arisono/SkWeiChat-Baidu into developer_master

gongpm 10 years ago
parent
commit
b1003f092b

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/FriendDao.java

@@ -345,7 +345,7 @@ public class FriendDao {
 	 *
 	 * @return
 	 */
-	public void markUserMessageUnRead(String ownerId, String friendId,int num) {
+	public synchronized void   markUserMessageUnRead(String ownerId, String friendId,int num) {
 		try {
 			PreparedQuery<Friend> preparedQuery = friendDao.queryBuilder().where().eq("ownerId", ownerId).and().eq("userId", friendId).prepare();
 			List<Friend> friendsList = friendDao.query(preparedQuery);

+ 153 - 127
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -649,14 +649,14 @@ public class MessageFragment extends EasyFragment {
                 Log.i("MessageFragment", "知会:" + pagin_num);
                 FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_PROCESS, daiban_num);
                 FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_TASK, task_num);
-                if (daiban_num>0){
-                    updateProcessMsg("您有"+daiban_num+"条新的待审批流程");
-                }else{
+                if (daiban_num > 0) {
+                    updateProcessMsg("您有" + daiban_num + "条新的待审批流程");
+                } else {
                     updateProcessMsg("暂无待审批流程");
                 }
-                if (task_num>0){
-                    updateTaskMsg("您有"+task_num+"条新的任务");
-                }else{
+                if (task_num > 0) {
+                    updateTaskMsg("您有" + task_num + "条新的任务");
+                } else {
                     updateTaskMsg("暂无任务");
                 }
                 //FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, pagin_num);
@@ -736,151 +736,178 @@ public class MessageFragment extends EasyFragment {
     private final int load_success_erpMsgNum = 5;
     private Handler handler = new Handler() {
         @Override
-        public void handleMessage(Message msg) {
+        public void handleMessage(final Message msg) {
             switch (msg.what) {
                 case Constants.SUCCESS_LOGIN://公告
-                    String result = msg.getData().getString("result");
-                    NoticeEntity newsEntity =
-                    newsEntity  = JSON.parseObject(result, NoticeEntity.class);
-                    int size = 0;
-                    if (newsEntity!=null) {
-                        size = newsEntity.getData().size();
-                    }
-                    String em_id = CommonUtil.getSharedPreferences(getActivity(), "erp_emid");
-                    int count = 0;
-                    for (int i = 0; i < size; i++) {
-                        if (!ObjectUtils.isEquals(newsEntity.getData().get(i).getSTATUS(), null)) {
-                            if (((int) newsEntity.getData().get(i).getSTATUS()) != -1) {
-                                if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
-                                    if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
-                                        count++;
-                                    }
-                                }
-                            }
-                        } else {
-                            if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
-                                if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
-                                    count++;
-                                }
-                            } else {
-                                count++;
-                            }
-                        }
-                    }
-                    if (count != 0) {
-                        //标注红点
-                        Log.i("MessageFragment", "公告 标注红点" + count);
-                        String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-
-                        FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_GONGGAO);
 
-                        FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, count);
-                        FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_GONGGAO, count);
-                        updateZhihuMsg("您有新的消息");
-                        updateGonggaoMsg("收到" + count + "条公告");
-                    } else {
-                        updateZhihuMsg("暂无消息");
-                        updateGonggaoMsg("暂无未读公告");
-                        String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                        FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_GONGGAO);
-                    }
+                    updateGongGao(msg);
                     break;
                 case load_success_erpMsgNum://待办
                     getErpMsgNums(msg);
                     break;
                 case Constants.LOAD_SUCCESS://通知
-                    result = msg.getData().getString("result");
-                    newsEntity = JSON.parseObject(result, NoticeEntity.class);
-                    size=0;
-                    if (newsEntity!=null) {
-                        size = newsEntity.getData().size();
-                    }
-                    count = 0;
-                    em_id = CommonUtil.getSharedPreferences(getActivity(), "erp_emid");
-                    for (int i = 0; i < size; i++) {
-                        if (!ObjectUtils.isEquals(newsEntity.getData().get(i).getSTATUS(), null)) {
-                            if (((int) newsEntity.getData().get(i).getSTATUS()) != -1) {
-                                if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
-                                    if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
-                                        count++;
-                                    }
+
+                    updateNotice(msg);
+
+
+                    break;
+                case Constants.SUCCESS_INITDATA://新闻
+
+                    updateNews(msg);
+
+                    break;
+            }
+        }
+    };
+
+    private void updateGongGao(Message msg) {
+        final String result = msg.getData().getString("result");
+        new Handler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                NoticeEntity newsEntity =
+                        JSON.parseObject(result, NoticeEntity.class);
+                int size = 0;
+                if (newsEntity != null) {
+                    size = newsEntity.getData().size();
+                }
+                String em_id = CommonUtil.getSharedPreferences(getActivity(), "erp_emid");
+                int count = 0;
+                for (int i = 0; i < size; i++) {
+                    if (!ObjectUtils.isEquals(newsEntity.getData().get(i).getSTATUS(), null)) {
+                        if (((int) newsEntity.getData().get(i).getSTATUS()) != -1) {
+                            if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
+                                if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
+                                    count++;
                                 }
                             }
+                        }
+                    } else {
+                        if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
+                            if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
+                                count++;
+                            }
                         } else {
+                            count++;
+                        }
+                    }
+                }
+                if (count != 0) {
+                    Log.i("MessageFragment", "公告 标注红点" + count);
+                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
+                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_GONGGAO);
+                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, count);
+                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_GONGGAO, count);
+                    updateZhihuMsg("您有新的消息");
+                    updateGonggaoMsg("收到" + count + "条公告");
+                } else {
+                    updateZhihuMsg("暂无消息");
+                    updateGonggaoMsg("暂无未读公告");
+                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
+                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_GONGGAO);
+                }
+            }
+        }, 10);
+    }
+
+    private void updateNotice(Message msg) {
+        final String result = msg.getData().getString("result");
+        new Handler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                NoticeEntity newsEntity;
+                int size;
+                int count;
+                String em_id;
+                newsEntity = JSON.parseObject(result, NoticeEntity.class);
+                size = 0;
+                if (newsEntity != null) {
+                    size = newsEntity.getData().size();
+                }
+                count = 0;
+                em_id = CommonUtil.getSharedPreferences(getActivity(), "erp_emid");
+                for (int i = 0; i < size; i++) {
+                    if (!ObjectUtils.isEquals(newsEntity.getData().get(i).getSTATUS(), null)) {
+                        if (((int) newsEntity.getData().get(i).getSTATUS()) != -1) {
                             if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
                                 if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
                                     count++;
                                 }
-                            } else {
-                                count++;
                             }
                         }
-                    }
-                    if (count != 0) {
-                        //标注红点
-                        Log.i("MessageFragment", " 通知 标注红点" + count);
-                        String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                        FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NOTICE);
-
-                        FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, count);
-                        FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_NOTICE, count);
-                        updateZhihuMsg("您有新的消息");
-                        updateNoticeMsg("收到" + count + "条通知");
                     } else {
-                        updateZhihuMsg("暂无消息");
-                        updateNoticeMsg("暂无未读通知");
-                        String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                        FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NOTICE);
-                    }
-                    break;
-                case Constants.SUCCESS_INITDATA://新闻
-                    result = msg.getData().getString("result");
-                    NewsEntity news = JSON.parseObject(result, NewsEntity.class);
-                    size=0;
-                    if (news!=null) {
-                        size = news.getData().size();
-                    }
-                    count = 0;
-                    for (int i = 0; i < size; i++) {
-                        if (!ObjectUtils.isEquals(news.getData().get(i).getSTATUS(), null)) {
-                            if (((int) news.getData().get(i).getSTATUS()) != -1) {
+                        if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
+                            if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
                                 count++;
                             }
                         } else {
-                            count++;//数据为空,算是未读
+                            count++;
                         }
                     }
-                    if (count != 0) {
-                        //标注红点
-                        Log.i("MessageFragment", "新闻 标注红点" + count);
-                        String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-
-                        FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NEWS);
+                }
+                if (count != 0) {
+                    Log.i("MessageFragment", " 通知 标注红点" + count);
+                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
+                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NOTICE);
+                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, count);
+                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_NOTICE, count);
+                    updateZhihuMsg("您有新的消息");
+                    updateNoticeMsg("收到" + count + "条通知");
+                } else {
+                    updateZhihuMsg("暂无消息");
+                    updateNoticeMsg("暂无未读通知");
+                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
+                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NOTICE);
+                }
+            }
+        }, 50);
+    }
 
-                        FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, count);
-                        FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_NEWS, count);
-                        updateZhihuMsg("您有新的消息");
-                        updateNewsMsg("收到" + count + "条新闻");
+    private void updateNews(Message msg) {
+        final String result = msg.getData().getString("result");
+        new Handler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                int size;
+                int count;
+                NewsEntity news = JSON.parseObject(result, NewsEntity.class);
+                size = 0;
+                if (news != null) {
+                    size = news.getData().size();
+                }
+                count = 0;
+                for (int i = 0; i < size; i++) {
+                    if (!ObjectUtils.isEquals(news.getData().get(i).getSTATUS(), null)) {
+                        if (((int) news.getData().get(i).getSTATUS()) != -1) {
+                            count++;
+                        }
                     } else {
-                        updateZhihuMsg("暂无消息");
-                        updateNewsMsg("暂无未读新闻");
-                        String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                        FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NEWS);
+                        count++;//数据为空,算是未读
                     }
-
-                    MsgBroadcast.broadcastMsgNumReset(MyApplication.getInstance());//重置,从数据库查询
-                    loadData();
-                    break;
+                }
+                if (count != 0) {
+                    Log.i("MessageFragment", "新闻 标注红点" + count);
+                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
+                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NEWS);
+                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, count);
+                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_NEWS, count);
+                    updateZhihuMsg("您有新的消息");
+                    updateNewsMsg("收到" + count + "条新闻");
+                } else {
+                    updateZhihuMsg("暂无消息");
+                    updateNewsMsg("暂无未读新闻");
+                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
+                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NEWS);
+                }
+                MsgBroadcast.broadcastMsgNumReset(MyApplication.getInstance());//重置,从数据库查询
+                loadData();
             }
-        }
-    };
-    
-    
-    
+        }, 500);
+    }
 
 
     public void updateProcessMsg(String msg) {
-        String ownerId=MyApplication.getInstance().mLoginUser.getUserId();
+        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
         ChatMessage chatMessage = new ChatMessage();
         chatMessage.setType(XmppMessage.TYPE_TIP);
         chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
@@ -895,7 +922,7 @@ public class MessageFragment extends EasyFragment {
     }
 
     public void updateTaskMsg(String msg) {
-        String ownerId=MyApplication.getInstance().mLoginUser.getUserId();
+        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
         ChatMessage chatMessage = new ChatMessage();
         chatMessage.setType(XmppMessage.TYPE_TIP);
         chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
@@ -909,7 +936,7 @@ public class MessageFragment extends EasyFragment {
     }
 
     public void updateZhihuMsg(String msg) {
-        String ownerId=MyApplication.getInstance().mLoginUser.getUserId();
+        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
         ChatMessage chatMessage = new ChatMessage();
         chatMessage.setType(XmppMessage.TYPE_TIP);
         chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
@@ -924,9 +951,8 @@ public class MessageFragment extends EasyFragment {
     }
 
 
-
     public void updateNewsMsg(String msg) {
-        String ownerId=MyApplication.getInstance().mLoginUser.getUserId();
+        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
         ChatMessage chatMessage = new ChatMessage();
         chatMessage.setType(XmppMessage.TYPE_TIP);
         chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
@@ -941,7 +967,7 @@ public class MessageFragment extends EasyFragment {
 
 
     public void updateNoticeMsg(String msg) {
-        String ownerId=MyApplication.getInstance().mLoginUser.getUserId();
+        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
         ChatMessage chatMessage = new ChatMessage();
         chatMessage.setType(XmppMessage.TYPE_TIP);
         chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
@@ -955,7 +981,7 @@ public class MessageFragment extends EasyFragment {
     }
 
     public void updateGonggaoMsg(String msg) {
-        String ownerId=MyApplication.getInstance().mLoginUser.getUserId();
+        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
         ChatMessage chatMessage = new ChatMessage();
         chatMessage.setType(XmppMessage.TYPE_TIP);
         chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId