Bitliker 9 years ago
parent
commit
fdd9fba9cc

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/BdLocationHelper.java

@@ -37,7 +37,7 @@ public class BdLocationHelper {
         mLocationClient = new LocationClient(MyApplication.getInstance().getApplicationContext()); // 声明LocationClient类
         mLocationClient.registerLocationListener(mLocationListener); // 注册监听函数
         mLocationClient.setLocOption(getOptionByGPS());
-        requestLocation();
+//        requestLocation();
     }
 
     /**

+ 2 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/MessageDao.java

@@ -53,7 +53,6 @@ public class MessageDao {
             db = helper.getWritableDatabase();
             db.beginTransaction();
             ContentValues values = null;
-            //对象为空或是拜访时间没有情况下不插入数据库
             for (MessageModel m : models) {
                 values = getValues(m, master, emcode);
                 i = db.insert(TABLE_NAME, null, values);
@@ -213,8 +212,8 @@ public class MessageDao {
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return messageModels;
             db = helper.getReadableDatabase();
             String[] columns = {"id", "count", "title", "subTitle", "time", "type", "isReaded"};
-            String selection = "hierarchy=?";
-            String[] selectArgs = {String.valueOf(0)};
+            String selection = "hierarchy=? and master=? and emcode=?";
+            String[] selectArgs = {String.valueOf(0),master,emcode};
             Cursor c = db.query(TABLE_NAME, columns, selection, selectArgs, null, null, null);
             messageModels = getMessage(c, 0);
             c.close();

+ 14 - 14
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -53,7 +53,7 @@ import com.xzjmyk.pm.activity.ui.find.MyFriendFragment;
 import com.xzjmyk.pm.activity.ui.groupchat.GroupChatFragment;
 import com.xzjmyk.pm.activity.ui.me.MeFragment;
 import com.xzjmyk.pm.activity.ui.me.ScreenListener;
-import com.xzjmyk.pm.activity.ui.message.MessageFragment;
+import com.xzjmyk.pm.activity.ui.message.NewMessageFragment;
 import com.xzjmyk.pm.activity.util.Constants;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.view.DivideRadioGroup;
@@ -111,7 +111,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
      * @注释:主界面Fragment
      */
     private Fragment mLastFragment;
-    private MessageFragment mMessageFragment;
+    private NewMessageFragment mMessageFragment;
     private MyFriendFragment mMyFriendFragment;//我的朋友---相互关注,单项关注,房间
     private WorksFragment mWorksFragment;//工作
     private GroupChatFragment mGroupChatFragment;//群聊
@@ -186,19 +186,19 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
         public void onCheckedChanged(DivideRadioGroup group, int checkedId) {
             if (checkedId == R.id.main_tab_one) {
                 if (mMessageFragment == null) {
-                    mMessageFragment = new MessageFragment();
+                    mMessageFragment = new NewMessageFragment();
                 }
                 //TODO 红点问题
-                mMessageFragment.setOnRefreshRedUI(new MessageFragment.OnRefreshUIListener() {
-                    @Override
-                    public void updata(int num) {
-                        //当首页有更新,mainactivity跟着更新页面
-                        mMsgUnReadNum = mMsgUnReadNum - oldERPNum > 0 ? (mMsgUnReadNum - oldERPNum) : 0;
-                        mMsgUnReadNum = mMsgUnReadNum + num;
-                        oldERPNum = num;
-                        updateMsgUnReadTv();
-                    }
-                });
+//                mMessageFragment.setOnRefreshRedUI(new MessageFragment.OnRefreshUIListener() {
+//                    @Override
+//                    public void updata(int num) {
+//                        //当首页有更新,mainactivity跟着更新页面
+//                        mMsgUnReadNum = mMsgUnReadNum - oldERPNum > 0 ? (mMsgUnReadNum - oldERPNum) : 0;
+//                        mMsgUnReadNum = mMsgUnReadNum + num;
+//                        oldERPNum = num;
+//                        updateMsgUnReadTv();
+//                    }
+//                });
                 changeFragment(mMessageFragment, TAG_MESSAGE);//消息
                 updateMessageTitle();
             } else if (checkedId == R.id.main_tab_two) {
@@ -657,7 +657,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
 
     private void restoreState(Bundle savedInstanceState) {
         mLastFragment = getSupportFragmentManager().findFragmentById(R.id.main_content);
-        mMessageFragment = (MessageFragment) getSupportFragmentManager().findFragmentByTag(TAG_MESSAGE);
+        mMessageFragment = (NewMessageFragment) getSupportFragmentManager().findFragmentByTag(TAG_MESSAGE);
         mMyFriendFragment = (MyFriendFragment) getSupportFragmentManager().findFragmentByTag(TAG_MY);
         mWorksFragment = (WorksFragment) getSupportFragmentManager().findFragmentByTag(TAG_NEARBY);
         mGroupChatFragment = (GroupChatFragment) getSupportFragmentManager().findFragmentByTag(TAG_GROUP_CHAT);

+ 9 - 18
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BusinessCircleActivity.java

@@ -50,8 +50,6 @@ import com.xzjmyk.pm.activity.db.dao.MyPhotoDao;
 import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.helper.FileDataHelper;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
-import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.util.CameraUtil;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
@@ -118,7 +116,6 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
         }
     };
     private TextView mQzonename;
-    private DBManager manager;
     private PopupWindow mMoreWindow;
     private View mMoreMenuView;
     private TextView sendqzonetext_tv;
@@ -169,7 +166,6 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
     }
 
 
-
     /**
      * 是否是商务圈类型
      *
@@ -243,7 +239,6 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
         });
 
 
-
         mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
         mPMsgBottomView = (PMsgBottomView) findViewById(R.id.bottom_view);
 
@@ -300,7 +295,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
                 PublicMessage message = mMessages.get((int) parent.getItemIdAtPosition(position));
                 Intent intent = new Intent(BusinessCircleActivity.this, PMsgDetailActivity.class);
                 intent.putExtra("public_message", message);
-                startActivityForResult(intent,REQUEST_CODE_GET_SHUOSHUODETAIL_BACK);
+                startActivityForResult(intent, REQUEST_CODE_GET_SHUOSHUODETAIL_BACK);
             }
         });
 
@@ -357,7 +352,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         int itemId = item.getItemId();
-        switch(itemId){
+        switch (itemId) {
             case R.id.send_qzone:
                 mMoreWindow.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM, 0, 0);
                 DisplayUtil.backgroundAlpha(mContext, 0.5f);
@@ -388,9 +383,6 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
         mInviteBtn = (Button) mMyCoverView.findViewById(R.id.invite_btn);
         mAvatarImg = (ImageView) mMyCoverView.findViewById(R.id.avatar_img);
         mQzonename = (TextView) mMyCoverView.findViewById(R.id.qzone_name);
-        String en_code = CommonUtil.getSharedPreferences(ct, "erp_username");
-        manager = new DBManager(this);
-
         // 邀请按钮
         mInviteBtn.setVisibility(View.GONE);// TODO 面试邀请按钮放这里太难看了,隐藏掉算求
         // 头像
@@ -404,7 +396,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
         mAvatarImg.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {// 进入个人资料页
-                if (isMyBusiness()){
+                if (isMyBusiness()) {
                     Intent intent = new Intent(activity, BusinessCircleActivity.class);
                     intent.putExtra(AppConstant.EXTRA_CIRCLE_TYPE, AppConstant.CIRCLE_TYPE_PERSONAL_SPACE);
                     intent.putExtra(AppConstant.EXTRA_USER_ID, mLoginUserId);
@@ -580,7 +572,6 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
     }
 
 
-
     @Override
     protected void onStop() {
 //        if (mCoverImg != null) {
@@ -645,17 +636,17 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
                 }
             }
 
-        }else if (requestCode == REQUEST_CODE_GET_SHUOSHUODETAIL_BACK){  // 从说说详情界面返回后处理是否当前条数据的赞、评论显示
-            if (resultCode == PMsgDetailActivity.SHUOSHUODETAIL_BACK){
-                bePraise = data.getIntExtra("bePraise",-1);
+        } else if (requestCode == REQUEST_CODE_GET_SHUOSHUODETAIL_BACK) {  // 从说说详情界面返回后处理是否当前条数据的赞、评论显示
+            if (resultCode == PMsgDetailActivity.SHUOSHUODETAIL_BACK) {
+                bePraise = data.getIntExtra("bePraise", -1);
                 Praise praise = new Praise();
                 praise.setNickName(MyApplication.getInstance().mLoginUser.getNickName());
                 praise.setUserId(MyApplication.getInstance().mLoginUser.getUserId());
-                if (bePraise != -1){
-                    if (bePraise == 1){
+                if (bePraise != -1) {
+                    if (bePraise == 1) {
                         mMessages.get(mClickPosition).getPraises().add(praise);
                         mAdapter.notifyDataSetChanged();
-                    }else if (bePraise == 0){
+                    } else if (bePraise == 0) {
                         mMessages.get(mClickPosition).getPraises().remove(praise);
                         mAdapter.notifyDataSetChanged();
                     }

+ 0 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/MessageAdapter.java

@@ -113,7 +113,6 @@ public class MessageAdapter extends BaseAdapter {
         } else {
             holder.num_tv.setVisibility(View.GONE);
         }
-
     }
 
     class ViewHolder {

+ 4 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/ContactFragment.java

@@ -51,6 +51,7 @@ import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
 import com.xzjmyk.pm.activity.ui.erp.entity.HrorgsEntity;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
+import com.xzjmyk.pm.activity.ui.erp.util.JsonValidator;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.CustomProgressDialog;
@@ -293,6 +294,9 @@ public class ContactFragment extends EasyFragment implements View.OnClickListene
     //将企业架构写入数据库
     public void writeData(Message msg) {
         String result = msg.getData().getString("result");
+        if (StringUtils.isEmpty(result)) return;
+        JsonValidator validator = new JsonValidator();
+        if (!validator.validate(result)) return;
         JSONObject jsonobject = JSON.parseObject(result);
         String server_time = jsonobject.getString("sysdate");//服务器系统时间
         //实体类

+ 51 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/MessageModel.java

@@ -3,6 +3,8 @@ package com.xzjmyk.pm.activity.ui.erp.model;
 import android.os.Parcel;
 import android.os.Parcelable;
 
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+
 /**
  * 消息数据库实体类
  * Created by Bitliker on 2017/3/2.
@@ -73,6 +75,9 @@ public class MessageModel implements Parcelable {
     };
 
     public int getId() {
+        if (id == 0) {
+            return getFirstFloorId();
+        }
         return id;
     }
 
@@ -135,4 +140,50 @@ public class MessageModel implements Parcelable {
     public void setReaded(boolean readed) {
         isReaded = readed;
     }
+
+
+    /**
+     * 1crm/CRM提醒
+     * 2note/通知公告
+     * 3kpi/考勤提醒
+     * 4meeting/会议提醒
+     * 5process/审批知会
+     * 6task/任务提醒
+     * 7job/稽核提醒
+     * 8b2b/b2b提醒
+     * 9system/知会消息
+     * 10common/普通知会
+     *
+     * @return
+     */
+
+    public int getFirstFloorId() {
+        if (StringUtils.isEmpty(type)) {
+            return (int) ((Math.random() * 10) * 30);
+        }
+        int firstFloorId = 0;
+        if (type.contentEquals("crm")) {
+            firstFloorId = 1;
+        } else if (type.contentEquals("note"))
+            firstFloorId = 2;
+        else if (type.contentEquals("kpi"))
+            firstFloorId = 3;
+        else if (type.contentEquals("meeting"))
+            firstFloorId = 4;
+        else if (type.contentEquals("process"))
+            firstFloorId = 5;
+        else if (type.contentEquals("task"))
+            firstFloorId = 6;
+        else if (type.contentEquals("job"))
+            firstFloorId = 7;
+        else if (type.contentEquals("b2b"))
+            firstFloorId = 8;
+        else if (type.contentEquals("system"))
+            firstFloorId = 9;
+        else if (type.contentEquals("common"))
+            firstFloorId = 10;
+        return firstFloorId;
+    }
+
+
 }

+ 124 - 44
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/MessagePresenter.java

@@ -14,10 +14,12 @@ import com.xzjmyk.pm.activity.bean.message.SubscriptionMessage;
 import com.xzjmyk.pm.activity.bean.message.XmppMessage;
 import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
 import com.xzjmyk.pm.activity.db.dao.FriendDao;
+import com.xzjmyk.pm.activity.db.dao.MessageDao;
 import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
 import com.xzjmyk.pm.activity.sortlist.PingYinUtil;
 import com.xzjmyk.pm.activity.ui.MainActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.MsgsSecondCommonActivity;
+import com.xzjmyk.pm.activity.ui.erp.model.MessageModel;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IMessageView;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -27,7 +29,6 @@ import com.xzjmyk.pm.activity.ui.message.MucChatActivity;
 import com.xzjmyk.pm.activity.ui.message.NewFriendActivity;
 import com.xzjmyk.pm.activity.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.util.WorkHandlerUtil;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -87,7 +88,7 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         param.put("count", 100);
         param.put("condition", "where to_char(createdate_,'yyyymmdd')='" + TimeUtils.int_long_2_str(System.currentTimeMillis()) + "'");
         param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
-        HttpHandler.getInstance().loadERPByNet(LOAD_SUBS, "common/desktop/subs/getSubs.action", param, null, this,"get");
+        HttpHandler.getInstance().loadERPByNet(LOAD_SUBS, "common/desktop/subs/getSubs.action", param, null, this, "get");
     }
 
     /**
@@ -98,7 +99,7 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         Map<String, Object> param = new HashMap<>();
         param.put("count", "1000");
         param.put("page", 1);//默认获取第一页
-        HttpHandler.getInstance().loadERPByNet(LOAD_PROCESS, "common/desktop/process/toDo.action", param, null, this,"get");
+        HttpHandler.getInstance().loadERPByNet(LOAD_PROCESS, "common/desktop/process/toDo.action", param, null, this, "get");
     }
 
 
@@ -111,7 +112,7 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         JSONObject object = JSON.parseObject(message);
         switch (what) {
             case LOAD_EMNEWS:
-                  emnewsNum = WorkHandlerUtil.getIntByJson(object, "allCount");
+//                emnewsNum = WorkHandlerUtil.getIntByJson(object, "allCount");
                 if (!object.containsKey("listdata")) return;
                 JSONArray array = object.getJSONArray("listdata");
                 handlerNewsFormErp(array);
@@ -146,6 +147,7 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
             processNum = 0;
         }
         iMessageView.updateHeaderView(0, processNum, subTitle);
+        updateForUnReader();
     }
 
     private void handlerSub(JSONObject object) {
@@ -170,51 +172,89 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
      * @param array
      */
     private void handlerNewsFormErp(JSONArray array) {
-        if (mFriendList == null)
-            mFriendList = new ArrayList<>();
-        else
-            mFriendList.clear();
         if (ListUtils.isEmpty(array)) {
             //TODO  为空数据情况下
             return;
         }
         JSONObject object = null;
-        Friend friend = null;
-        List<BaseSortModel<Friend>> erpFriend = new ArrayList<>();
+        List<MessageModel> models = new ArrayList<>();
+        MessageModel model = null;
         for (int i = 0; i < array.size(); i++) {
             object = array.getJSONObject(i);
-            friend = new Friend();
-            friend.setNickName(object.getString("title"));
+            model = new MessageModel();
+            model.setTitle(object.getString("title"));
+            model.setSubTitle(object.getString("lastMessage"));
+            model.setTime(object.getString("lastTime"));
+            model.setType(object.getString("type"));
             if (object.containsKey("count") && object.get("count") != null)
-                friend.setUnReadNum(object.getInteger("count"));
-            friend.setContent(object.getString("lastMessage"));
-            friend.setTimeSend(getErpTime(object, "lastTime"));
-            friend.setType(XmppMessage.TYPE_ERP);
-            friend.setDescription(object.getString("type"));
-            BaseSortModel<Friend> mode = new BaseSortModel<>();
-            mode.setBean(friend);
-            setSortCondition(mode);
-            erpFriend.add(mode);
-        }
-        if (erpComparator == null) {
-            erpComparator = new Comparator<BaseSortModel<Friend>>() {
-                public int compare(BaseSortModel<Friend> s1, BaseSortModel<Friend> s2) {
-                    return (s1.getBean().getTimeSend() - s2.getBean().getTimeSend());
-                }
-            };
+                model.setCount(object.getInteger("count"));
+            if (StringUtils.isEmpty(model.getTitle()) || StringUtils.isEmpty(model.getSubTitle()))
+                continue;
+            if (model.getSubTitle().length() > 100)
+                model.setSubTitle(model.getSubTitle().substring(0, 18));
+            models.add(model);
         }
-        Collections.sort(erpFriend, erpComparator);
+        saveErp2DB(models);
+    }
 
-        mFriendList.addAll(0, erpFriend);
-        iMessageView.showModel(erpFriend);
+    /**
+     * 保存erp数据到数据库
+     *
+     * @param models
+     */
+    private void saveErp2DB(List<MessageModel> models) {
+        boolean saveOk = MessageDao.getInstance().createOrinstart(models);
     }
 
-    private int getErpTime(JSONObject object, String lastTime) {
-        String time = object.getString(lastTime);
-        if (StringUtils.isEmpty(time)) {
+
+    /**
+     * 处理消息红点消息
+     */
+//    private void handlerNewsFormErp(JSONArray array) {
+//        if (mFriendList == null)
+//            mFriendList = new ArrayList<>();
+//        else
+//            mFriendList.clear();
+//        if (ListUtils.isEmpty(array)) {
+//            //TODO  为空数据情况下
+//            return;
+//        }
+//        JSONObject object = null;
+//        Friend friend = null;
+//        List<BaseSortModel<Friend>> erpFriend = new ArrayList<>();
+//        for (int i = 0; i < array.size(); i++) {
+//            object = array.getJSONObject(i);
+//            friend = new Friend();
+//            friend.setNickName(object.getString("title"));
+//            if (object.containsKey("count") && object.get("count") != null)
+//                friend.setUnReadNum(object.getInteger("count"));
+//            friend.setContent(object.getString("lastMessage"));
+//            friend.setTimeSend(getErpTime(object, "lastTime"));
+//            friend.setType(XmppMessage.TYPE_ERP);
+//            friend.setDescription(object.getString("type"));
+//            BaseSortModel<Friend> mode = new BaseSortModel<>();
+//
+//            mode.setBean(friend);
+//            setSortCondition(mode);
+//            erpFriend.add(mode);
+//        }
+//        if (erpComparator == null) {
+//            erpComparator = new Comparator<BaseSortModel<Friend>>() {
+//                public int compare(BaseSortModel<Friend> s1, BaseSortModel<Friend> s2) {
+//                    return (s1.getBean().getTimeSend() - s2.getBean().getTimeSend());
+//                }
+//            };
+//        }
+//        Collections.sort(erpFriend, erpComparator);
+//
+//        mFriendList.addAll(0, erpFriend);
+//        iMessageView.showModel(erpFriend);
+//    }
+    private int getErpTime(String lastTime) {
+        if (StringUtils.isEmpty(lastTime)) {
             return (int) (System.currentTimeMillis() / 1000);
         } else {
-            return (int) (TimeUtils.f_str_2_long(time) / 1000);
+            return (int) (TimeUtils.f_str_2_long(lastTime) / 1000);
         }
     }
 
@@ -248,32 +288,71 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         new Thread(new Runnable() {
             @Override
             public void run() {
+                if (mFriendList == null) mFriendList = new ArrayList<>();
+                mFriendList.clear();
                 String mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
                 long startTime = System.currentTimeMillis();
                 final List<Friend> friends = FriendDao.getInstance().getNearlyFriendMsg(mLoginUserId);
+                List<MessageModel> model = MessageDao.getInstance().queryFirstFloor();
                 setFriendName(friends, mLoginUserId);
                 long delayTime = 200 - (startTime - System.currentTimeMillis());// 保证至少200ms的刷新过程
                 if (delayTime < 0) {
                     delayTime = 0;
                 }
+                handlerErpAndIm(friends, model);
                 HttpHandler.getInstance().postDelayed(new Runnable() {
                     @Override
                     public void run() {
-                        if (friends != null && friends.size() > 0) {
-                            for (int i = 0; i < friends.size(); i++) {
-                                BaseSortModel<Friend> mode = new BaseSortModel<>();
-                                mode.setBean(friends.get(i));
-                                setSortCondition(mode);
-                                mFriendList.add(mode);
-                            }
-                        }
                         iMessageView.showModel(mFriendList);
+                        updateForUnReader();
                     }
                 }, delayTime);
             }
         }).start();
     }
 
+    /**
+     * 整合erp和im消息内容
+     *
+     * @param friends
+     * @param models
+     */
+    private void handlerErpAndIm(List<Friend> friends, List<MessageModel> models) {
+        if (friends == null) friends = new ArrayList<>();
+        emnewsNum = 0;
+        if (!ListUtils.isEmpty(models)) {
+            for (MessageModel m : models) {
+                Friend friend = new Friend();
+                friend.setNickName(m.getTitle());
+                friend.setContent(m.getSubTitle());
+                friend.setTimeSend(getErpTime(m.getTime()));
+                friend.setType(XmppMessage.TYPE_ERP);
+                friend.setDescription(m.getType());
+                friend.set_id(m.getId());
+                int count = m.isReaded() ? 0 : m.getCount();
+                emnewsNum += count;
+                friend.setUnReadNum(count);
+                friends.add(friend);
+            }
+        }
+        if (friends != null && friends.size() > 0) {
+            for (int i = 0; i < friends.size(); i++) {
+                BaseSortModel<Friend> mode = new BaseSortModel<>();
+                mode.setBean(friends.get(i));
+                setSortCondition(mode);
+                mFriendList.add(mode);
+            }
+        }
+        if (erpComparator == null) {
+            erpComparator = new Comparator<BaseSortModel<Friend>>() {
+                public int compare(BaseSortModel<Friend> s1, BaseSortModel<Friend> s2) {
+                    return (s1.getBean().getTimeSend() - s2.getBean().getTimeSend());
+                }
+            };
+        }
+        Collections.sort(mFriendList, erpComparator);
+    }
+
     private void setFriendName(List<Friend> friends, String id) {
         List<Friend> f = FriendDao.getInstance().getFriends(id);
         if (friends == null) return;
@@ -333,13 +412,14 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         intent.putExtra("title", friend.getNickName());
         intent.putExtra("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
         ct.startActivity(intent);
+        MessageDao.getInstance().upStatus(friend.get_id(), true);
     }
 
 
     /*跟新未读红点信息*/
     private void updateForUnReader() {
         int num = subsNum + processNum + emnewsNum;
-        if (ct!=null)
+        if (ct != null)
             ct.setUnReader(num);
     }
 }

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java

@@ -193,7 +193,7 @@ public class Constants {
 
     //消息红点数据表
     public static final String EM_ERPNEWS = "CREATE TABLE em_erpnews ("
-            + "id integer primary key ,"
+            + "id integer UNIQUE,"
             + "master  varchar(20)," //员工账套
             + "emcode  varchar(20)," //员工编号