瀏覽代碼

订阅管理本地存储

RaoMeng 9 年之前
父節點
當前提交
b7c146d18d

+ 9 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/PersonalSubscriptionBean.java

@@ -10,6 +10,15 @@ public class PersonalSubscriptionBean {
     private String TYPE;
     private int ISAPPLED;
     private String MASTER;
+    private String USERNAME;
+
+    public String getUSERNAME() {
+        return USERNAME;
+    }
+
+    public void setUSERNAME(String USERNAME) {
+        this.USERNAME = USERNAME;
+    }
 
     public String getMASTER() {
         return MASTER;

+ 9 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/SubscriptionNumber.java

@@ -11,6 +11,15 @@ public class SubscriptionNumber {
     private int status;//订阅号状态(已订阅,已申请,未订阅)
     private String type;//订阅号类别
     private String master;//订阅号所属账套
+    private String username;//订阅号所属账号
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
 
     public String getMaster() {
         return master;

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

@@ -480,7 +480,7 @@ public class DBManager {
      ************** 未订阅表AllSubs操作  ***************************************
      *************************************************************************/
     public void saveToAllSubs(SubscriptionNumber subscriptionNumber) {
-        String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master) values (?,?,?,?,?,?)";
+        String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master,subs_username) values (?,?,?,?,?,?,?)";
         SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
         sqLiteStatement.bindLong(1,subscriptionNumber.getId());
         sqLiteStatement.bindString(2, subscriptionNumber.getTitle());
@@ -488,11 +488,12 @@ public class DBManager {
         sqLiteStatement.bindLong(4, subscriptionNumber.getStatus());
         sqLiteStatement.bindString(5, subscriptionNumber.getType());
         sqLiteStatement.bindString(6, subscriptionNumber.getMaster());
+        sqLiteStatement.bindString(7, subscriptionNumber.getUsername());
         sqLiteStatement.execute();
     }
 
     public void saveListToAllSubs(List<SubscriptionNumber> subscriptionNumbers){
-        String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master) values (?,?,?,?,?,?)";
+        String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master,subs_username) values (?,?,?,?,?,?,?)";
         SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
         for (int i = 0; i < subscriptionNumbers.size(); i++) {
             SubscriptionNumber subscriptionNumber = subscriptionNumbers.get(i);
@@ -502,6 +503,7 @@ public class DBManager {
             sqLiteStatement.bindLong(4, subscriptionNumber.getStatus());
             sqLiteStatement.bindString(5, subscriptionNumber.getType());
             sqLiteStatement.bindString(6, subscriptionNumber.getMaster());
+            sqLiteStatement.bindString(7, subscriptionNumber.getUsername());
             sqLiteStatement.execute();
         }
     }
@@ -521,6 +523,7 @@ public class DBManager {
             subscriptionNumber.setStatus(cursor.getInt(cursor.getColumnIndex("subs_status")));
             subscriptionNumber.setType(cursor.getString(cursor.getColumnIndex("subs_type")));
             subscriptionNumber.setMaster(cursor.getString(cursor.getColumnIndex("subs_master")));
+            subscriptionNumber.setUsername(cursor.getString(cursor.getColumnIndex("subs_username")));
             subscriptionNumbers.add(subscriptionNumber);
         }
         cursor.close();
@@ -532,18 +535,19 @@ public class DBManager {
     public void updateAllSubs(SubscriptionNumber subscriptionNumber) {
         String sql = "update AllSubs"
                 + " set subs_status=?"
-                + " where subs_id=? and subs_master=? ;";
+                + " where subs_id=? and subs_master=? and subs_username=? ;";
         SQLiteStatement sta = db.compileStatement(sql);
         sta.bindLong(1, subscriptionNumber.getStatus());
         sta.bindLong(2, subscriptionNumber.getId());
         sta.bindString(3, subscriptionNumber.getMaster());
+        sta.bindString(4, subscriptionNumber.getUsername());
         sta.executeInsert();
     }
 
     public void deleteFromAllSubs(SubscriptionNumber subscriptionNumber) {
         String table = "AllSubs";
-        String[] whereArgs = {String.valueOf(subscriptionNumber.getId()), subscriptionNumber.getMaster()};
-        String whereClause = "subs_id=? and subs_master=? ";
+        String[] whereArgs = {String.valueOf(subscriptionNumber.getId()), subscriptionNumber.getMaster(), subscriptionNumber.getUsername()};
+        String whereClause = "subs_id=? and subs_master=? and subs_username=? ";
         db.delete(table, whereClause, whereArgs);
     }
 
@@ -551,16 +555,16 @@ public class DBManager {
         for (int i = 0; i < subscriptionNumbers.size(); i++) {
             SubscriptionNumber subscriptionNumber = subscriptionNumbers.get(i);
             String table = "AllSubs";
-            String[] whereArgs = {String.valueOf(subscriptionNumber.getId()), subscriptionNumber.getMaster()};
-            String whereClause = "subs_id=? and subs_master=? ";
+            String[] whereArgs = {String.valueOf(subscriptionNumber.getId()), subscriptionNumber.getMaster(), subscriptionNumber.getUsername()};
+            String whereClause = "subs_id=? and subs_master=? and subs_username=? ";
             db.delete(table, whereClause, whereArgs);
         }
     }
 
-    public void deleteMasterAllSubs(String master){
+    public void deleteMasterAllSubs(String master, String username){
         String table = "AllSubs";
-        String[] whereArgs = {master};
-        String whereClause = "subs_master=? ";
+        String[] whereArgs = {master,username};
+        String whereClause = "subs_master=? and subs_username=? ";
         db.delete(table, whereClause, whereArgs);
     }
 
@@ -568,7 +572,7 @@ public class DBManager {
      ************** 已订阅表AllSubs操作  ***************************************
      *************************************************************************/
     public void saveToMySubs(PersonalSubscriptionBean personalSubscriptionBean) {
-        String saveSql = "replace into MySubs(subs_id,subs_title,subs_kind,subs_type,subs_applied,subs_master) values (?,?,?,?,?,?)";
+        String saveSql = "replace into MySubs(subs_id,subs_title,subs_kind,subs_type,subs_applied,subs_master,subs_username) values (?,?,?,?,?,?,?)";
         SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
         sqLiteStatement.bindLong(1, personalSubscriptionBean.getNUM_ID());
         sqLiteStatement.bindString(2, personalSubscriptionBean.getTITLE());
@@ -576,11 +580,12 @@ public class DBManager {
         sqLiteStatement.bindString(4, personalSubscriptionBean.getTYPE());
         sqLiteStatement.bindLong(5, personalSubscriptionBean.getISAPPLED());
         sqLiteStatement.bindString(6,personalSubscriptionBean.getMASTER());
+        sqLiteStatement.bindString(7,personalSubscriptionBean.getUSERNAME());
         sqLiteStatement.execute();
     }
 
     public void saveListToMySubs(List<PersonalSubscriptionBean> personalSubscriptionBeans){
-        String saveSql = "replace into MySubs(subs_id,subs_title,subs_kind,subs_type,subs_applied,subs_master) values (?,?,?,?,?,?)";
+        String saveSql = "replace into MySubs(subs_id,subs_title,subs_kind,subs_type,subs_applied,subs_master,subs_username) values (?,?,?,?,?,?,?)";
         SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
         for (int i = 0; i < personalSubscriptionBeans.size(); i++) {
             PersonalSubscriptionBean personalSubscriptionBean = personalSubscriptionBeans.get(i);
@@ -590,6 +595,7 @@ public class DBManager {
             sqLiteStatement.bindString(4, personalSubscriptionBean.getTYPE());
             sqLiteStatement.bindLong(5, personalSubscriptionBean.getISAPPLED());
             sqLiteStatement.bindString(6,personalSubscriptionBean.getMASTER());
+            sqLiteStatement.bindString(7,personalSubscriptionBean.getUSERNAME());
             sqLiteStatement.execute();
         }
     }
@@ -609,6 +615,7 @@ public class DBManager {
             personalSubscriptionBean.setTYPE(cursor.getString(cursor.getColumnIndex("subs_type")));
             personalSubscriptionBean.setISAPPLED(cursor.getInt(cursor.getColumnIndex("subs_applied")));
             personalSubscriptionBean.setMASTER(cursor.getString(cursor.getColumnIndex("subs_master")));
+            personalSubscriptionBean.setUSERNAME(cursor.getString(cursor.getColumnIndex("subs_username")));
             personalSubscriptionBeans.add(personalSubscriptionBean);
         }
         cursor.close();
@@ -620,18 +627,19 @@ public class DBManager {
     public void updateMySubs(PersonalSubscriptionBean personalSubscriptionBean) {
         String sql = "update MySubs"
                 + " set subs_applied=?"
-                + " where subs_id=? and subs_master=? ;";
+                + " where subs_id=? and subs_master=? and subs_username=? ;";
         SQLiteStatement sta = db.compileStatement(sql);
         sta.bindLong(1, personalSubscriptionBean.getISAPPLED());
         sta.bindLong(2, personalSubscriptionBean.getNUM_ID());
         sta.bindString(3, personalSubscriptionBean.getMASTER());
+        sta.bindString(4, personalSubscriptionBean.getUSERNAME());
         sta.executeInsert();
     }
 
     public void deleteFromMySubs(PersonalSubscriptionBean personalSubscriptionBean) {
         String table = "MySubs";
-        String[] whereArgs = {String.valueOf(personalSubscriptionBean.getNUM_ID()), personalSubscriptionBean.getMASTER()};
-        String whereClause = "subs_id=? and subs_master=? ";
+        String[] whereArgs = {String.valueOf(personalSubscriptionBean.getNUM_ID()), personalSubscriptionBean.getMASTER(), personalSubscriptionBean.getUSERNAME()};
+        String whereClause = "subs_id=? and subs_master=? and subs_username=? ";
         db.delete(table, whereClause, whereArgs);
     }
 
@@ -639,16 +647,16 @@ public class DBManager {
         for (int i = 0; i < personalSubscriptionBeans.size(); i++) {
             PersonalSubscriptionBean personalSubscriptionBean = personalSubscriptionBeans.get(i);
             String table = "MySubs";
-            String[] whereArgs = {String.valueOf(personalSubscriptionBean.getNUM_ID()), personalSubscriptionBean.getMASTER()};
-            String whereClause = "subs_id=? and subs_master=? ";
+            String[] whereArgs = {String.valueOf(personalSubscriptionBean.getNUM_ID()), personalSubscriptionBean.getMASTER(), personalSubscriptionBean.getUSERNAME()};
+            String whereClause = "subs_id=? and subs_master=? and subs_username=? ";
             db.delete(table, whereClause, whereArgs);
         }
     }
 
-    public void deleteMasterMySubs(String master){
+    public void deleteMasterMySubs(String master, String username){
         String table = "MySubs";
-        String[] whereArgs = {master};
-        String whereClause = "subs_master=? ";
+        String[] whereArgs = {master,username};
+        String whereClause = "subs_master=? and subs_username=? ";
         db.delete(table, whereClause, whereArgs);
     }
 

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBOpenHelper.java

@@ -13,7 +13,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.Constants;
  */
 public class DBOpenHelper extends SQLiteOpenHelper {
 
-    private static final int DATABASE_VERSION = 55;//数据库版本号(每添加一个表要增加版本号)
+    private static final int DATABASE_VERSION = 56;//数据库版本号(每添加一个表要增加版本号)
     public static String dataBaseName = "erp.db";//数据库名称
     public Context context;
 

+ 10 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionAllFragment.java

@@ -55,7 +55,8 @@ public class SubscriptionAllFragment extends BaseFragment{
     private List<String> keyStrings = new ArrayList<>();
     private final static int SUBSCRIBE_DETAIL_REQUEST = 33;
     private static int mClickedPos = -1;
-    String currentMaster;
+    private String currentMaster;//当前账套
+    private String currentUser;//当前账号
     private DBManager mDbManager;
     private PopupWindow mDeletePopupWindow;
 
@@ -70,6 +71,7 @@ public class SubscriptionAllFragment extends BaseFragment{
     protected void initViews() {
         mDbManager = new DBManager(getActivity());
         currentMaster = CommonUtil.getSharedPreferences(getActivity(), "erp_master");
+        currentUser = CommonUtil.getSharedPreferences(getActivity(), "erp_username");
         mPullToRefreshListView = (PullToRefreshListView) root.findViewById(R.id.subscription_all_ptlv);
         mSubscriptionNumbers = new ArrayList<>();
         mAllSubscriptionAdapter = new AllSubscriptionAdapter(getActivity(), mSubscriptionNumbers);
@@ -254,9 +256,9 @@ public class SubscriptionAllFragment extends BaseFragment{
             if (keyStringBuilder.length() > 2) {
                 keyStringBuilder.delete(0, 1);
             }
-            SharedUtil.putString(currentMaster + "subs", keyStringBuilder.toString());
+            SharedUtil.putString(currentMaster + currentUser + "subs", keyStringBuilder.toString());
         }else {
-            SharedUtil.putString(currentMaster + "subs", null);
+            SharedUtil.putString(currentMaster + currentUser + "subs", null);
         }
 
     }
@@ -274,7 +276,7 @@ public class SubscriptionAllFragment extends BaseFragment{
     @Override
     protected void initDatas() {
         Log.d("currentMaster: ", currentMaster);
-        String cacheKeys = SharedUtil.getString(currentMaster + "subs");
+        String cacheKeys = SharedUtil.getString(currentMaster + currentUser + "subs");
         if (cacheKeys != null) {
             String[] cacheKeysArray = cacheKeys.split(",");
             for (int i = 0; i < cacheKeysArray.length; i++) {
@@ -283,8 +285,8 @@ public class SubscriptionAllFragment extends BaseFragment{
         }
         try {
             List<SubscriptionNumber> dbSubscriptionNumbers
-                    = mDbManager.queryFromAllSubs(new String[]{currentMaster}, "subs_master=?");
-            if (dbSubscriptionNumbers == null) {
+                    = mDbManager.queryFromAllSubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
+            if (dbSubscriptionNumbers == null || dbSubscriptionNumbers.size() == 0) {
                 sendAllSubscriptionRequest();
 //                Toast.makeText(getActivity(), "网络加载", Toast.LENGTH_SHORT).show();
             } else {
@@ -347,7 +349,7 @@ public class SubscriptionAllFragment extends BaseFragment{
             switch (msg.what) {
                 case GET_ALL_SUBSCRIPTION:
                     progressDialog.dismiss();
-                    mDbManager.deleteMasterAllSubs(currentMaster);
+                    mDbManager.deleteMasterAllSubs(currentMaster,currentUser);
                     String resultJson = msg.getData().getString("result");
                     Log.d("allsubscriptionResult: ", resultJson);
                     try {
@@ -387,6 +389,7 @@ public class SubscriptionAllFragment extends BaseFragment{
                                 subscriptionNumber.setStatus(subsObject.getInt("status"));
                                 subscriptionNumber.setType(key);
                                 subscriptionNumber.setMaster(currentMaster);
+                                subscriptionNumber.setUsername(currentUser);
                                 if (subsObject.getInt("status") != 1) {
                                     subscriptionNumbers.add(subscriptionNumber);
                                 }

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

@@ -46,7 +46,8 @@ public class SubscriptionMyFragment extends BaseFragment {
     private static int SUBSCRIBE_MY_DETAIL_REQUEST = 45;
 
     private DBManager mDbManager;
-    String currentMaster;
+    private String currentMaster;
+    private String currentUser;
     @Override
     protected int getLayout() {
         return R.layout.fragment_my_subscription;
@@ -56,6 +57,7 @@ public class SubscriptionMyFragment extends BaseFragment {
     protected void initViews() {
         mDbManager = new DBManager(getActivity());
         currentMaster = CommonUtil.getSharedPreferences(getActivity(), "erp_master");
+        currentUser = CommonUtil.getSharedPreferences(getActivity(), "erp_username");
         mPersonalSubscriptionBeans = new ArrayList<>();
         mPullListView = (PullToRefreshListView) root.findViewById(R.id.my_subscripton_smlv);
         mMySubscriptionAdapter = new MySubscriptionAdapter(getActivity(),mPersonalSubscriptionBeans);
@@ -103,8 +105,8 @@ public class SubscriptionMyFragment extends BaseFragment {
 
     @Override
     protected void initDatas() {
-        List<PersonalSubscriptionBean> dbPersonalSubscriptionBeans = mDbManager.queryFromMySubs(new String[]{currentMaster}, "subs_master=?");
-        if (dbPersonalSubscriptionBeans == null){
+        List<PersonalSubscriptionBean> dbPersonalSubscriptionBeans = mDbManager.queryFromMySubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
+        if (dbPersonalSubscriptionBeans == null || dbPersonalSubscriptionBeans.size() == 0){
             Toast.makeText(getActivity(), "网络加载", Toast.LENGTH_SHORT).show();
             sendSubscriptionRequest();
         }else {
@@ -112,6 +114,9 @@ public class SubscriptionMyFragment extends BaseFragment {
             mPersonalSubscriptionBeans.clear();
             mPersonalSubscriptionBeans.addAll(dbPersonalSubscriptionBeans);
             mMySubscriptionAdapter.notifyDataSetChanged();
+            if (mPersonalSubscriptionBeans.size() == 0){
+                mEmptyLayout.showEmpty();
+            }
         }
     }
 
@@ -144,7 +149,7 @@ public class SubscriptionMyFragment extends BaseFragment {
             switch (msg.what){
                 case GET_MY_SUBSCRIPTION:
                     progressDialog.dismiss();
-                    mDbManager.deleteMasterMySubs(currentMaster);
+                    mDbManager.deleteMasterMySubs(currentMaster,currentUser);
                     String resultJson = msg.getData().getString("result");
                     Log.d("subscriptionResult",resultJson);
                     try {
@@ -167,6 +172,7 @@ public class SubscriptionMyFragment extends BaseFragment {
                                     personalSubscriptionBean.setTYPE(currentObject.getString("TYPE_"));
                                     personalSubscriptionBean.setISAPPLED(currentObject.getInt("ISAPPLIED_"));
                                     personalSubscriptionBean.setMASTER(currentMaster);
+                                    personalSubscriptionBean.setUSERNAME(currentUser);
                                     mPersonalSubscriptionBeans.add(personalSubscriptionBean);
                                 }
                                 mMySubscriptionAdapter.notifyDataSetChanged();

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

@@ -92,8 +92,9 @@ public class Constants {
             + "subs_kind varchar(50),"
             + "subs_status integer,"
             + "subs_type varchar(50),"
-            + "subs_master varchar(50)"+
-            ")";
+            + "subs_master varchar(50),"
+            + "subs_username varchar(50)"
+            +")";
 
     //已订阅号表
     public static final String TABLE_MY_SUBSCRIPTION = "CREATE TABLE MySubs "
@@ -103,7 +104,8 @@ public class Constants {
             + "subs_kind varchar(50),"
             + "subs_type varchar(50),"
             + "subs_applied integer,"
-            + "subs_master varchar(50)"
+            + "subs_master varchar(50),"
+            + "subs_username varchar(50)"
             + ")";