Просмотр исходного кода

通讯录显示好友修改为显示企业全部联系人

gongpm 10 лет назад
Родитель
Сommit
27550c8dea
1 измененных файлов с 105 добавлено и 10 удалено
  1. 105 10
      WeiChat/src/main/java/com/sk/weichat/ui/erp/fragment/LinksManFragment.java

+ 105 - 10
WeiChat/src/main/java/com/sk/weichat/ui/erp/fragment/LinksManFragment.java

@@ -11,8 +11,8 @@ import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
+import android.os.Message;
+
 import android.text.InputFilter;
 import android.text.TextUtils;
 import android.util.Log;
@@ -29,6 +29,8 @@ import android.widget.ListView;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.android.volley.Response;
 import com.android.volley.VolleyError;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
@@ -57,12 +59,20 @@ import com.sk.weichat.ui.cardcast.FriendFragment;
 import com.sk.weichat.ui.circle.BasicInfoActivity;
 import com.sk.weichat.ui.erp.activity.CommonFragmentActivity;
 import com.sk.weichat.ui.erp.activity.CompanyContactsActivity;
+import com.sk.weichat.ui.erp.db.DBManager;
+import com.sk.weichat.ui.erp.entity.EmployeesEntity;
+import com.sk.weichat.ui.erp.entity.Hrorgs;
+import com.sk.weichat.ui.erp.entity.HrorgsEntity;
+import com.sk.weichat.ui.erp.util.CommonUtil;
+import com.sk.weichat.ui.erp.util.Constants;
+import com.sk.weichat.ui.erp.util.ViewUtil;
 import com.sk.weichat.ui.erp.view.ListViewInScroller;
 import com.sk.weichat.ui.message.ChatActivity;
 import com.sk.weichat.ui.message.NewFriendActivity;
 import com.sk.weichat.ui.nearby.UserSearchActivity;
 import com.sk.weichat.util.ProgressDialogUtil;
 import com.sk.weichat.util.StringUtils;
+import com.sk.weichat.util.TimeUtils;
 import com.sk.weichat.util.ToastUtil;
 import com.sk.weichat.volley.ArrayResult;
 import com.sk.weichat.volley.ObjectResult;
@@ -74,7 +84,9 @@ import com.sk.weichat.xmpp.CoreService;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @desc:联系人
@@ -83,6 +95,7 @@ import java.util.List;
 public class LinksManFragment extends XutilsFragment implements View.OnClickListener {
 
     //    private String TAG = "LinksManFragment";
+    private final int LOAD_SUCCESS_ALLDATA = 9;
     private Context ct;
     @ViewInject(R.id.my_data_rl)
     private RelativeLayout my_data_rl;
@@ -98,9 +111,48 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
     private BaseComparator<Friend> mBaseComparator;
     private FriendSortAdapter mAdapter;
     private String mLoginUserId;
-    private Handler mHandler = new Handler();
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            if (msg.what == LOAD_SUCCESS_ALLDATA) {
+
+                String result = msg.getData().getString("result");
+                JSONObject jsonobject = JSON.parseObject(result);
+
+                String server_time = jsonobject.getString("sysdate");
+                Log.i("gongpengming", result);
+//                    List<HrorgsEntity> hrorgsEntities = JSON.parseArray(jsonobject.getString("hrorgs"), HrorgsEntity.class);
+//                    List<EmployeesEntity> employeesEntities = JSON.parseArray(jsonobject.getString("employees"), EmployeesEntity.class);
+//                    Log.i(TAG, result);
+//                    master = CommonUtil.getSharedPreferences(ct, "erp_master");
+//                    HrorgsEntity hrEntity = manager.select_getRootData(new String[]{master}, "whichsys=?");
+//                    boolean isFristLoad = true;//是否第一次加载
+//                    if (hrEntity != null) {
+//                        isFristLoad = false;
+//                    }
+//                    reScrollView.getLoadingLayoutProxy().setRefreshingLabel("正在同步数据,请稍等...");
+//                    //空代表取缓存
+//                    if (!hrorgsEntities.isEmpty() || !employeesEntities.isEmpty()) {
+//                        Log.i(TAG, "是否是第一次加载数据:" + isFristLoad);
+//                        Log.i(TAG, "同步数据......");
+//                        insertDataSqlite(isFristLoad, hrorgsEntities, employeesEntities,
+//                                server_time);    //写入缓存
+//                        rl_empty.setVisibility(View.GONE);
+//                        ll_content.setVisibility(View.VISIBLE);
+//                        LoadRootHrorgFromServer();//取缓存
+//                    } else {
+//                        Log.i(TAG, "取缓存数据.....!");
+//                        LoadRootHrorgFromServer();//取缓存
+//                    }
+//                    reScrollView.onRefreshComplete();
+//                    progressDialog.dismiss();
+
+            }
+        }
+    };
     private boolean mNeedUpdate = true;
     private Activity mActivity;
+    private DBManager manager;
 
     @Override
     public void onClick(View v) {
@@ -113,8 +165,8 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 break;
             case R.id.local_video_rl:
                 //TODO 在通讯录页面点击商务伙伴时调转页面,待实现
-                Log.i("gongpengmimngIV","点击了商务圈");
-                ToastUtil.showToast(getActivity(),"抱歉,该功能还未开发");
+                Log.i("gongpengmimngIV", "点击了商务圈");
+                ToastUtil.showToast(getActivity(), "抱歉,该功能还未开发");
                 break;
         }
     }
@@ -139,10 +191,49 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
 
     @Override
     protected void onCreateView(Bundle savedInstanceState, boolean createView) {
+
         if (createView) {
             ct = getActivity();
             initView();
         }
+//        getDataByDB();
+    }
+
+    private void getDataByDB(List<Friend> friend) {
+        if (manager == null)
+            manager = new DBManager(ct);
+
+        String master = CommonUtil.getSharedPreferences(ct, "erp_master"); //待优化   每次都 读取文件耗性能
+
+        List<EmployeesEntity> emList = manager.select_getEmployee(
+                new String[]{master},
+                "whichsys=?");
+
+        List<Friend> friends = new ArrayList<>();
+        for (int i = 0; i < emList.size(); i++) {
+            String fId = String.valueOf(emList.get(i).getEm_IMID());
+            for (int j = 0; j < friend.size(); j++) {
+                if (fId.equals(friend.get(j).getUserId())){  //当有重复
+                    break;
+                } else if ((j == (friend.size() - 1))&&!(fId.equals(friend.get(j).getUserId()))) {
+                    friends.add(EnterChatAction(emList.get(i)));
+                }
+            }
+        }
+        friend.addAll(friends);
+    }
+
+    private Friend EnterChatAction(EmployeesEntity employee) {
+        Friend friend = new Friend();
+        friend.setUserId(String.valueOf(employee.getEm_IMID()));
+        friend.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
+        friend.setRemarkName(employee.getEM_NAME());//备注
+        friend.setNickName(employee.getEM_NAME());//昵称
+        friend.setDescription("企业通讯录人员");
+        // timeSend作为取群聊离线消息的标志,所以要在这里设置一个初始值
+        friend.setTimeSend(TimeUtils.sk_time_current_time());
+        friend.setStatus(Friend.STATUS_UNKNOW);
+        return friend;
     }
 
     private void upDataFriend() {
@@ -161,6 +252,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 boolean success = Result.defaultParser(mActivity, result, false);
                 if (success) {
                     FriendDao.getInstance().addAttentionUsers(mHandler, MyApplication.getInstance().mLoginUser.getUserId(), result.getData(),
+
                             new OnCompleteListener() {
                                 @Override
                                 public void onCompleted() {
@@ -196,7 +288,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
 
         my_friend_rl = (RelativeLayout) headview.findViewById(R.id.my_friend_rl);
         my_data_rl = (RelativeLayout) headview.findViewById(R.id.my_data_rl);
-        local_video_rl= (RelativeLayout) headview.findViewById(R.id.local_video_rl);
+        local_video_rl = (RelativeLayout) headview.findViewById(R.id.local_video_rl);
 
         local_video_rl.setOnClickListener(this);
         my_data_rl.setOnClickListener(this);
@@ -248,7 +340,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 try {
                     friend = mSortFriends.get((int) id).getBean();
                 } catch (ArrayIndexOutOfBoundsException e) {
-                   return;
+                    return;
                 }
 
                 Intent intent = null;
@@ -310,7 +402,10 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 final List<Friend> friends = FriendDao.getInstance().getFriends(mLoginUserId);
                 Log.i("wang", "friends =" + friends);
                 Log.i("wang", "friends mloginuserid=" + mLoginUserId);
-                if (friends != null) Log.i("wang", "friends size()=" + friends.size());
+                getDataByDB(friends);
+                if (friends != null)
+                    Log.i("wang", "friends size()=" + friends.size());
+
                 long delayTime = 200 - (startTime - System.currentTimeMillis());// 保证至少200ms的刷新过程
                 if (delayTime < 0) {
                     delayTime = 0;
@@ -597,8 +692,8 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
 
     /**
      * @param
-     * @param type   0 取消关注 <br/>
-     *               1、彻底删除<br/>
+     * @param type 0 取消关注 <br/>
+     *             1、彻底删除<br/>
      */
     private void deleteFriend(final BaseSortModel<Friend> sortFriend, final int type) {
         HashMap<String, String> params = new HashMap<String, String>();