Browse Source

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

FANGLH 9 years ago
parent
commit
3c4148dcf7

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

@@ -3,6 +3,8 @@ package com.xzjmyk.pm.activity.db;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;
 import android.database.sqlite.SQLiteOpenHelper;
 
 
+import com.xzjmyk.pm.activity.ui.erp.db.DBOpenHelper;
+
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicInteger;
 
 
 public class DatabaseManager {
 public class DatabaseManager {
@@ -22,8 +24,7 @@ public class DatabaseManager {
 
 
     public static synchronized DatabaseManager getInstance() {
     public static synchronized DatabaseManager getInstance() {
         if (instance == null) {
         if (instance == null) {
-            throw new IllegalStateException(DatabaseManager.class.getSimpleName() +
-                    " is not initialized, call initializeInstance(..) method first.");
+            initializeInstance(DBOpenHelper.getInstance());
         }
         }
         return instance;
         return instance;
     }
     }

+ 4 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/WorkActivity.java

@@ -82,7 +82,6 @@ public class WorkActivity extends OABaseActivity implements View.OnClickListener
     private long selectTime;
     private long selectTime;
     private boolean isAdmin = false;
     private boolean isAdmin = false;
     private boolean isChangePoi = false;
     private boolean isChangePoi = false;
-
     private BroadcastReceiver receiver = new BroadcastReceiver() {
     private BroadcastReceiver receiver = new BroadcastReceiver() {
         @Override
         @Override
         public void onReceive(Context context, Intent intent) {
         public void onReceive(Context context, Intent intent) {
@@ -149,7 +148,7 @@ public class WorkActivity extends OABaseActivity implements View.OnClickListener
         listview.setLayoutManager(new LinearLayoutManager(ct));
         listview.setLayoutManager(new LinearLayoutManager(ct));
         listview.setAdapter(adapter);
         listview.setAdapter(adapter);
         presenter.start(true);
         presenter.start(true);
-        date_tv.setText(TimeUtils.long2str(System.currentTimeMillis(), "yyyy年MM月dd日") +" "+
+        date_tv.setText(TimeUtils.long2str(System.currentTimeMillis(), "yyyy年MM月dd日") + " " +
                 TimeUtils.getWeek(System.currentTimeMillis()));
                 TimeUtils.getWeek(System.currentTimeMillis()));
         findViewById(R.id.signin_btn).setOnClickListener(this);
         findViewById(R.id.signin_btn).setOnClickListener(this);
         findViewById(R.id.unoffice_).setOnClickListener(this);
         findViewById(R.id.unoffice_).setOnClickListener(this);
@@ -158,7 +157,9 @@ public class WorkActivity extends OABaseActivity implements View.OnClickListener
 
 
     @Override
     @Override
     public void showDistance(double distance) {
     public void showDistance(double distance) {
-        if (distance != 0)
+        if (distance == -1)
+            unoffice_mm.setText("");
+        else if (distance != 0)
             unoffice_mm.setText("约" + distance + "米");
             unoffice_mm.setText("约" + distance + "米");
         else unoffice_mm.setText("约0米");
         else unoffice_mm.setText("约0米");
     }
     }

+ 9 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBManager.java

@@ -9,6 +9,7 @@ import android.util.Log;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.bean.PersonalSubscriptionBean;
 import com.xzjmyk.pm.activity.bean.PersonalSubscriptionBean;
 import com.xzjmyk.pm.activity.bean.SubscriptionNumber;
 import com.xzjmyk.pm.activity.bean.SubscriptionNumber;
+import com.xzjmyk.pm.activity.db.DatabaseManager;
 import com.xzjmyk.pm.activity.ui.erp.entity.B2BMsg;
 import com.xzjmyk.pm.activity.ui.erp.entity.B2BMsg;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
 import com.xzjmyk.pm.activity.ui.erp.entity.Hrorgs;
 import com.xzjmyk.pm.activity.ui.erp.entity.Hrorgs;
@@ -26,7 +27,6 @@ import java.util.Map;
  * @注释:数据库管理类
  * @注释:数据库管理类
  */
  */
 public class DBManager {
 public class DBManager {
-    private DBOpenHelper helper;
 
 
     public SQLiteDatabase getDb() {
     public SQLiteDatabase getDb() {
         return db;
         return db;
@@ -38,10 +38,12 @@ public class DBManager {
 
 
     private SQLiteDatabase db;
     private SQLiteDatabase db;
 
 
-
+    public DBManager() {
+        db = DatabaseManager.getInstance().openDatabase();
+    }
+    @Deprecated
     public DBManager(Context ct) {
     public DBManager(Context ct) {
-        helper = DBOpenHelper.getInstance();
-        db = helper.getWritableDatabase();
+        this();
     }
     }
 
 
     public void saveB2bMsg(B2BMsg entity) {
     public void saveB2bMsg(B2BMsg entity) {
@@ -481,7 +483,7 @@ public class DBManager {
         Cursor cursor = null;
         Cursor cursor = null;
         try {
         try {
             if (!db.isOpen())
             if (!db.isOpen())
-                db = helper.getWritableDatabase();
+                db = DatabaseManager.getInstance().openDatabase();
             cursor = db.query(table, null, selection, selectionArgs, groupBy, having, orderBy);
             cursor = db.query(table, null, selection, selectionArgs, groupBy, having, orderBy);
             while (cursor.moveToNext()) {
             while (cursor.moveToNext()) {
                 EmployeesEntity model = new EmployeesEntity();
                 EmployeesEntity model = new EmployeesEntity();
@@ -524,7 +526,7 @@ public class DBManager {
         try {
         try {
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             if (!db.isOpen())
             if (!db.isOpen())
-                db = helper.getWritableDatabase();
+                db = DatabaseManager.getInstance().openDatabase();
             String sql = "SELECT * FROM EMPLOYEES WHERE WHICHSYS=\'" + master + "\' AND EM_DEFAULTORID IN(" + defaulid + ") ";
             String sql = "SELECT * FROM EMPLOYEES WHERE WHICHSYS=\'" + master + "\' AND EM_DEFAULTORID IN(" + defaulid + ") ";
             Cursor cursor = db.rawQuery(sql, null);
             Cursor cursor = db.rawQuery(sql, null);
             count = cursor.getCount();
             count = cursor.getCount();
@@ -798,6 +800,6 @@ public class DBManager {
      * close database
      * close database
      */
      */
     public void closeDB() {
     public void closeDB() {
-        db.close();
+        DatabaseManager.getInstance().closeDatabase();
     }
     }
 }
 }

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

@@ -32,6 +32,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.auto.HttpHandler;
 import com.xzjmyk.pm.activity.ui.message.ChatActivity;
 import com.xzjmyk.pm.activity.ui.message.ChatActivity;
 import com.xzjmyk.pm.activity.ui.message.MucChatActivity;
 import com.xzjmyk.pm.activity.ui.message.MucChatActivity;
 import com.xzjmyk.pm.activity.ui.message.NewFriendActivity;
 import com.xzjmyk.pm.activity.ui.message.NewFriendActivity;
+import com.xzjmyk.pm.activity.ui.tool.ThreadUtil;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.util.StringUtils;
 import com.xzjmyk.pm.activity.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
@@ -48,7 +49,8 @@ import java.util.Map;
  */
  */
 
 
 public class MessagePresenter implements HttpHandler.OnResultListener {
 public class MessagePresenter implements HttpHandler.OnResultListener {
-    private static final int LOAD_TASK = 0x14;
+    private final int LOAD_TASK = 0x14;
+    private final int LOAD_EMNEWS_DETAILS = 0x15;
     private final int LOAD_EMNEWS = 0x11;
     private final int LOAD_EMNEWS = 0x11;
     private final int LOAD_SUBS = 0x12;
     private final int LOAD_SUBS = 0x12;
     private final int LOAD_PROCESS = 0x13;
     private final int LOAD_PROCESS = 0x13;
@@ -160,6 +162,22 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         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");
     }
     }
 
 
+    /**
+     * 获取消息详细信息接口
+     *
+     * @param type     消息类型
+     * @param isReaded 是否是阅读全部,如果不是就是删除全部
+     */
+    private void loadEmNewsDetails(String type, boolean isReaded) {
+        Map<String, Object> param = new HashMap<>();
+        param.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+        param.put("type", type);
+        Bundle bundle = new Bundle();
+        bundle.putString("type", type);
+        bundle.putBoolean("isReaded", isReaded);
+        HttpHandler.getInstance().loadERPByNet(LOAD_EMNEWS_DETAILS, "mobile/queryEmNewsDetails.action", param, bundle, this, "get");
+
+    }
 
 
     @Override
     @Override
     public void result(int what, boolean isJSON, String message, Bundle bundle) {
     public void result(int what, boolean isJSON, String message, Bundle bundle) {
@@ -185,6 +203,15 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
             case LOAD_TASK://获取任务接口
             case LOAD_TASK://获取任务接口
                 handlerTask(object);
                 handlerTask(object);
                 break;
                 break;
+            case LOAD_EMNEWS_DETAILS:
+                String type = bundle.getString("type");
+                boolean isReaded = bundle.getBoolean("isReaded");
+                JSONArray msgsArray = object.getJSONArray("listdata");
+                if (!ListUtils.isEmpty(msgsArray)) {
+                    handleMsgsArray(type, msgsArray);
+                }
+                handlerEndOfReadOrDelete(type, isReaded);
+                break;
         }
         }
     }
     }
 
 
@@ -193,6 +220,40 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
     public void error(int what, int statuCode, String message, Bundle bundle) {
     public void error(int what, int statuCode, String message, Bundle bundle) {
     }
     }
 
 
+
+    /**
+     * 处理获取网络获取到的数据,先更新本地数据库,再加载本地数据库
+     *
+     * @param msgsArray
+     */
+    private void handleMsgsArray(String type, JSONArray msgsArray) {
+        JSONObject object = null;
+        final List<MessageModel> models = new ArrayList<>();
+        MessageModel model = null;
+        for (int i = 0; i < msgsArray.size(); i++) {
+            try {
+                object = msgsArray.getJSONObject(i);
+                model = new MessageModel();
+                model.setId(object.getInteger("id"));
+                model.setTitle(object.getString("title"));
+                model.setSubTitle(object.getString("subTitle"));
+                model.setTime(object.getString("createTime"));
+                model.setHierarchy(1);
+                model.setType(type);
+                model.setCount(1);
+                models.add(model);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        ThreadUtil.getInstance().addTask(new Runnable() {
+            @Override
+            public void run() {
+                MessageDao.getInstance().createOrinstart(models);
+            }
+        });
+    }
+
     /**
     /**
      * 处理任务相关数据
      * 处理任务相关数据
      *
      *
@@ -450,8 +511,9 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         if (ListUtils.isEmpty(mFriendList) || mFriendList.size() < position) return;
         if (ListUtils.isEmpty(mFriendList) || mFriendList.size() < position) return;
         Friend friend = mFriendList.get(position).getBean();
         Friend friend = mFriendList.get(position).getBean();
         if (friend.getType() == XmppMessage.TYPE_ERP) {
         if (friend.getType() == XmppMessage.TYPE_ERP) {
-            MessageDao.getInstance().deleteBytype(friend.getDescription());
-            loadData();
+            loadEmNewsDetails(friend.getDescription(), false);
+//            MessageDao.getInstance().deleteBytype(friend.getDescription());
+//            loadData();
         } else {
         } else {
             deleteByIm(friend, position);
             deleteByIm(friend, position);
         }
         }
@@ -466,8 +528,9 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         if (ListUtils.isEmpty(mFriendList) || mFriendList.size() < position) return;
         if (ListUtils.isEmpty(mFriendList) || mFriendList.size() < position) return;
         Friend friend = mFriendList.get(position).getBean();
         Friend friend = mFriendList.get(position).getBean();
         if (friend.getType() == XmppMessage.TYPE_ERP) {
         if (friend.getType() == XmppMessage.TYPE_ERP) {
-            MessageDao.getInstance().upStatusByType(friend.getDescription(), true);
-            loadData();
+            loadEmNewsDetails(friend.getDescription(), true);
+//            MessageDao.getInstance().upStatusByType(friend.getDescription(), true);
+//            loadData();
         } else {
         } else {
             if (friend.getUnReadNum() > 0) {
             if (friend.getUnReadNum() > 0) {
                 MsgBroadcast.broadcastMsgNumUpdate(ct, false, friend.getUnReadNum());
                 MsgBroadcast.broadcastMsgNumUpdate(ct, false, friend.getUnReadNum());
@@ -477,6 +540,15 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         }
         }
     }
     }
 
 
+    private void handlerEndOfReadOrDelete(String type, boolean isReaded) {
+        if (isReaded) {
+            MessageDao.getInstance().upStatusByType(type, true);
+        } else {
+            MessageDao.getInstance().deleteBytype(type);
+        }
+        loadData();
+    }
+
     /**
     /**
      * 计算搜索显示新的内容
      * 计算搜索显示新的内容
      *
      *

+ 2 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/WorkPresenter.java

@@ -48,7 +48,6 @@ import static com.xzjmyk.pm.activity.util.BaiduMapUtil.getInstence;
  * 班次的管理器,先不处理数据库数据
  * 班次的管理器,先不处理数据库数据
  * Created by Bitliker on 2016/12/12.
  * Created by Bitliker on 2016/12/12.
  */
  */
-
 public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresenter {
 public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresenter {
     private final int WORK_LOG = 0x12;
     private final int WORK_LOG = 0x12;
     private final int WORK_DATA = 0x11;
     private final int WORK_DATA = 0x11;
@@ -218,7 +217,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
     //获取与公司距离
     //获取与公司距离
     private double getDistance() {
     private double getDistance() {
         try {
         try {
-            if (ListUtils.isEmpty(locationList)) return 0;
+            if (ListUtils.isEmpty(locationList)) return -1;
             for (WorkLocationModel b : locationList) {
             for (WorkLocationModel b : locationList) {
                 String dis = getInstence().getDistance(
                 String dis = getInstence().getDistance(
                         new LatLng(b.getLocation().longitude, b.getLocation().latitude)
                         new LatLng(b.getLocation().longitude, b.getLocation().latitude)
@@ -231,7 +230,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
             }
             }
             return distance;
             return distance;
         } catch (Exception e) {
         } catch (Exception e) {
-            return 0;
+            return -1;
         }
         }
     }
     }
 
 

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IMessageView.java

@@ -9,7 +9,7 @@ import java.util.List;
  * Created by Bitliker on 2017/3/1.
  * Created by Bitliker on 2017/3/1.
  */
  */
 
 
-public interface IMessageView {
+public interface IMessageView  {
 
 
     void showModel(List<BaseSortModel<Friend>> models);
     void showModel(List<BaseSortModel<Friend>> models);
 
 

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/tree/TreeHelper.java

@@ -152,7 +152,7 @@ public class TreeHelper {
          */
          */
         setChildrenNodeChecked(node, isChecked);
         setChildrenNodeChecked(node, isChecked);
         /** 父节点处理 */
         /** 父节点处理 */
-        setParentNodeChecked(node);
+//        setParentNodeChecked(node);
 
 
     }
     }
 
 

BIN
WeiChat/src/main/res/drawable-xhdpi/setting.png


+ 1 - 0
WeiChat/src/main/res/layout/fragment_me.xml

@@ -485,6 +485,7 @@
             android:id="@+id/test_rl"
             android:id="@+id/test_rl"
             style="@style/IMTbleLine_UP_Me"
             style="@style/IMTbleLine_UP_Me"
             android:layout_marginTop="7dp"
             android:layout_marginTop="7dp"
+            android:visibility="gone"
             android:background="@drawable/selector_me_menu_item_bg"
             android:background="@drawable/selector_me_menu_item_bg"
            >
            >