ソースを参照

加入登录用户判断,加入空数据时,admin用户初始化

shanmulinxi 2 年 前
コミット
cf95877ce6

+ 13 - 0
app/src/main/java/com/sunwin/visitorapp/BaseApplication.java

@@ -3,10 +3,14 @@ package com.sunwin.visitorapp;
 import android.app.Application;
 import android.content.Context;
 
+import com.sunwin.visitorapp.db.DatabaseManager;
+import com.sunwin.visitorapp.db.UserManagerModel;
 import com.sunwin.visitorapp.utils.CacheUtil;
 import com.sunwin.visitorapp.utils.SystemTTS;
 import com.sunwin.visitorapp.utils.UniversalImageLoaderConfiguration;
 
+import java.util.List;
+
 import timber.log.Timber;
 
 
@@ -31,6 +35,15 @@ public class BaseApplication extends Application {
         Timber.plant(new Timber.DebugTree());
 
         CacheUtil.init(this);
+
+        List<UserManagerModel> userManagerModelList = DatabaseManager.getInstance().getQueryAll(UserManagerModel.class);
+        if(userManagerModelList.isEmpty()){
+            UserManagerModel userManagerModel = new UserManagerModel();
+            userManagerModel.name = "admin";
+            userManagerModel.account = "admin";
+            userManagerModel.password = "123456";
+            DatabaseManager.getInstance().insertNew(userManagerModel);
+        }
 //        OrmDBHelper.init(this);
 //        PresentationManager.checkAndShow(this);
     }

+ 27 - 3
app/src/main/java/com/sunwin/visitorapp/LoginActivity.java

@@ -1,5 +1,6 @@
 package com.sunwin.visitorapp;
 
+import android.annotation.SuppressLint;
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.View;
@@ -8,8 +9,16 @@ import android.widget.EditText;
 
 import com.sunwin.visitorapp.activity.HomeAc;
 import com.sunwin.visitorapp.activity.VisitorRegActivity;
+import com.sunwin.visitorapp.db.DatabaseManager;
+import com.sunwin.visitorapp.db.LogModel;
+import com.sunwin.visitorapp.db.UserManagerModel;
+import com.sunwin.visitorapp.manage.RunDataManage;
+import com.sunwin.visitorapp.model.UserModel;
 import com.sunwin.visitorapp.utils.Constant;
 import com.sunwin.visitorapp.utils.SharePrefenceUtils;
+import com.sunwin.visitorapp.utils.ToastUtils;
+
+import java.util.List;
 
 public class LoginActivity extends BaseActivity implements View.OnClickListener {
     private EditText mEtUserName;
@@ -35,6 +44,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
 
     }
 
+    @SuppressLint("NonConstantResourceId")
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
@@ -44,10 +54,24 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
                 startActivity(intent);
                 break;
             case R.id.btn_login:
-                SharePrefenceUtils.putBoolean(Constant.ISharePrefence.LOGINTAG, true);
-                Intent intent2 = new Intent(this, HomeAc.class);
-                startActivity(intent2);
+                login();
                 break;
         }
     }
+
+    public void login(){
+        String account = mEtUserName.getText().toString().trim();
+        String password = mEtPwd.getText().toString().trim();
+        List<UserManagerModel> list = DatabaseManager.getInstance().getQueryByWhere(UserManagerModel.class,UserManagerModel.Key_account,account,UserManagerModel.Key_password,password);
+
+        if(!list.isEmpty()){
+            RunDataManage.SetLoginUser(list.get(0));
+            LogModel.AddLog(LogModel.Type.UserLoginIn);
+            SharePrefenceUtils.putBoolean(Constant.ISharePrefence.LOGINTAG, true);
+            Intent intent2 = new Intent(this, HomeAc.class);
+            startActivity(intent2);
+        }else{
+            ToastUtils.showToast("用户名或密码错误");
+        }
+    }
 }

+ 4 - 0
app/src/main/java/com/sunwin/visitorapp/activity/HomeAc.java

@@ -16,9 +16,11 @@ import androidx.fragment.app.FragmentTransaction;
 import com.sunwin.visitorapp.BaseActivity;
 import com.sunwin.visitorapp.LoginActivity;
 import com.sunwin.visitorapp.R;
+import com.sunwin.visitorapp.db.LogModel;
 import com.sunwin.visitorapp.fragment.HomeFr;
 import com.sunwin.visitorapp.fragment.RegTypeFragment;
 import com.sunwin.visitorapp.fragment.VisitSignFragment;
+import com.sunwin.visitorapp.manage.RunDataManage;
 import com.sunwin.visitorapp.utils.Constant;
 import com.sunwin.visitorapp.utils.NetUtils;
 import com.sunwin.visitorapp.utils.PopupWindowHelper;
@@ -105,6 +107,8 @@ public class HomeAc extends BaseActivity implements View.OnClickListener, RegTyp
                 break;
             case R.id.tv_loginOut:
                 SharePrefenceUtils.putBoolean(Constant.ISharePrefence.LOGINTAG, false);
+                LogModel.AddLog(LogModel.Type.UserLoginOut);
+                RunDataManage.SetLoginUser(null);
                 startActivity(new Intent(mContext, LoginActivity.class));
                 finish();
                 break;

+ 8 - 3
app/src/main/java/com/sunwin/visitorapp/db/DatabaseManager.java

@@ -37,6 +37,9 @@ public class DatabaseManager {
     public <T> long save(T t) {
         return liteOrm.save(t);
     }
+    public <T> long insertNew(T t) {
+        return liteOrm.insert(t);
+    }
     /**
      * 插入所有记录
      *
@@ -87,11 +90,13 @@ public class DatabaseManager {
      * @return
      */
     public <T> List<T> getQueryByWhere(Class<T> cla, String field, Object... value) {
-        return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value));
+        return liteOrm.<T>query(new QueryBuilder<T>(cla).where(field + "=?", value));
     }
-    public <T> List<T> getQueryByLike(Class<T> cla, String field, String[] value) {
-        return liteOrm.<T>query(new QueryBuilder(cla).where(field + " like ?", value));
+    public <T> List<T> getQueryByWhere(Class<T> cla, String field0, Object value0, String field1, Object value1) {
+        return liteOrm.<T>query(new QueryBuilder<T>(cla).whereEquals(field0 , value0).whereAppendAnd().whereEquals(field1 , value1));
     }
+
+
     /**
      * 查询  某字段 等于 Value的值  可以指定从1-20,就是分页
      * @param cla

+ 12 - 1
app/src/main/java/com/sunwin/visitorapp/db/LogModel.java

@@ -2,6 +2,9 @@ package com.sunwin.visitorapp.db;
 
 import com.litesuits.orm.db.annotation.PrimaryKey;
 import com.litesuits.orm.db.enums.AssignType;
+import com.sunwin.visitorapp.manage.RunDataManage;
+
+import java.util.Date;
 
 public class LogModel {
     public enum Type{
@@ -10,7 +13,7 @@ public class LogModel {
         UserSearch,UserEdit,UserDelete,
         BlackListSearch,BlackListEdit,BlackListDelete,
         RoleSearch,RoleEdit,RoleDelete,
-        
+
 
     }
     @PrimaryKey(AssignType.AUTO_INCREMENT)
@@ -22,4 +25,12 @@ public class LogModel {
     public long time;
 
     public Type type;
+
+    public static void AddLog(Type type){
+        LogModel model = new LogModel();
+        model.name = RunDataManage.GetLoginUser()!=null?RunDataManage.GetLoginUser().name:"位置";
+        model.time = new Date().getTime();
+        model.type = type;
+        DatabaseManager.getInstance().insertNew(model);
+    }
 }

+ 6 - 0
app/src/main/java/com/sunwin/visitorapp/db/UserManagerModel.java

@@ -1,5 +1,6 @@
 package com.sunwin.visitorapp.db;
 
+import com.litesuits.orm.db.annotation.Column;
 import com.litesuits.orm.db.annotation.PrimaryKey;
 import com.litesuits.orm.db.annotation.Table;
 import com.litesuits.orm.db.enums.AssignType;
@@ -7,12 +8,17 @@ import com.litesuits.orm.db.enums.AssignType;
 @Table("UserManager")
 public class UserManagerModel {
 
+    public static final String Key_account = "account";
+
+    public static final String Key_password = "password";
     // 指定自增,每个对象需要有一个主键
     @PrimaryKey(AssignType.AUTO_INCREMENT)
     private long id;
 
+    @Column(Key_account)
     public String account;
 
+    @Column(Key_password)
     public String password;
 
     public String name;

+ 1 - 1
app/src/main/java/com/sunwin/visitorapp/fragment/RoleManageFr.java

@@ -87,7 +87,7 @@ public class RoleManageFr extends Fragment {
         adapter.setList(DatabaseManager.getInstance().getQueryAll(RoleModel.class));
     }
     private void search(String key){
-        adapter.setList(DatabaseManager.getInstance().getQueryByLike(RoleModel.class,"name",new String[]{key}));
+        adapter.setList(DatabaseManager.getInstance().getQueryByWhere(RoleModel.class,"name",key));
     }
     private void createDialog(Context context, ViewGroup parent, RoleModel model){
         View dialog_root = LayoutInflater.from(context).inflate(R.layout.dialog_role_edit,parent,false);

+ 1 - 1
app/src/main/java/com/sunwin/visitorapp/fragment/UserManageFr.java

@@ -104,7 +104,7 @@ public class UserManageFr extends Fragment {
     }
 
     private void search(String key){
-        adapter.setList(DatabaseManager.getInstance().getQueryByLike(UserManagerModel.class,"name",new String[]{key}));
+        adapter.setList(DatabaseManager.getInstance().getQueryByWhere(UserManagerModel.class,"name",key));
     }
 
 

+ 19 - 0
app/src/main/java/com/sunwin/visitorapp/manage/RunDataManage.java

@@ -0,0 +1,19 @@
+package com.sunwin.visitorapp.manage;
+
+import com.sunwin.visitorapp.db.UserManagerModel;
+import com.sunwin.visitorapp.model.UserModel;
+
+public class RunDataManage {
+    private static UserManagerModel loginUser;
+
+
+
+    public static void SetLoginUser(UserManagerModel loginUser){
+
+    }
+
+    public static UserManagerModel GetLoginUser(){
+        return loginUser;
+    }
+
+}