diff --git a/app/src/main/java/com/bonus/canteen/activity/MainActivity.java b/app/src/main/java/com/bonus/canteen/activity/MainActivity.java index 448a69a..ae04ede 100644 --- a/app/src/main/java/com/bonus/canteen/activity/MainActivity.java +++ b/app/src/main/java/com/bonus/canteen/activity/MainActivity.java @@ -49,7 +49,6 @@ import com.bonus.canteen.receiver.ShutdownReceiver; import com.bonus.canteen.utils.SimplePopupWindow; import com.bonus.canteen.utils.ThreadPoolManager; import com.ccb.facedevice.sdk.utils.NetworkUtils; -import com.google.android.material.tabs.TabLayout; import com.xuexiang.xui.widget.dialog.DialogLoader; import com.xuexiang.xutil.common.ClickUtils; @@ -61,7 +60,6 @@ import java.util.Date; import java.util.Locale; public class MainActivity extends BaseActivity implements ClickUtils.OnClick2ExitListener{ - TabLayout mTabLayout; TextView titleView; private TextView timeShow; private static final String COLOR_SELECT = "#409eff"; diff --git a/app/src/main/java/com/bonus/canteen/activity/OffLineLoginActivity.java b/app/src/main/java/com/bonus/canteen/activity/OffLineLoginActivity.java new file mode 100644 index 0000000..711ccd8 --- /dev/null +++ b/app/src/main/java/com/bonus/canteen/activity/OffLineLoginActivity.java @@ -0,0 +1,138 @@ +package com.bonus.canteen.activity; + +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.text.InputType; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; + +import com.bonus.canteen.core.BaseActivity; +import com.bonus.canteen.db.AppDatabase; +import com.bonus.canteen.db.entity.base.LoginInfo; +import com.bonus.canteen.utils.OkHttpService; +import com.bonus.canteen.utils.ThreadPoolManager; +import com.xuexiang.xui.XUI; +import com.xuexiang.xui.utils.XToastUtils; + +import org.easydarwin.easypusher.R; +import org.easydarwin.easypusher.databinding.ActivityOfflineLoginBinding; + +public class OffLineLoginActivity extends BaseActivity { + public final OkHttpService service = new OkHttpService(); + private Boolean isChecked = false; + + @Override + protected ActivityOfflineLoginBinding viewBindingInflate(LayoutInflater inflater) { + return ActivityOfflineLoginBinding.inflate(inflater); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + XUI.initTheme(this); + super.onCreate(savedInstanceState); + setupImmersiveMode(); + initView(); + } + + private void setupImmersiveMode() { + View decorView = getWindow().getDecorView(); + int flags = View.SYSTEM_UI_FLAG_FULLSCREEN + | View.SYSTEM_UI_FLAG_LAYOUT_STABLE + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + flags |= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; + } + decorView.setSystemUiVisibility(flags); + } + + public void initView() { + initListener(); + } + + public void initListener() { + findViewById(R.id.btn_login).setOnClickListener(v -> { + String password = binding.etPassword.getText().toString(); + boolean tf = checkParameters(password); + if (!tf) { + return; + } + login(password); + }); + // 查看密码 + binding.checkPassword.setOnClickListener(view -> { + if (isChecked) { + isChecked = false; + binding.checkPassword.setImageResource(R.drawable.ic_eye_close); + binding.etPassword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); + } else { + isChecked = true; + binding.checkPassword.setImageResource(R.drawable.ic_eye_open); + binding.etPassword.setInputType(InputType.TYPE_CLASS_TEXT); + } + }); + } + + private void login(String password) { + if (!"2025".equals(password)){ + XToastUtils.error("登录密码错误,请重新输入"); + return; + } + XToastUtils.success("登录成功"); + ThreadPoolManager.getExecutor().execute(()->{ + AppDatabase.getDatabase(this).loginInfoDao().deleteAll(); + LoginInfo loginInfo = new LoginInfo(); + loginInfo.setUserName("离线操作员"); + loginInfo.setUserPwd(password); + loginInfo.setUserId("-1"); // 假设用户ID为1,实际应用中应从服务器获取 + loginInfo.setPhone("-1"); // 假设手机号为1234567890,实际应用中应从服务器获取 + loginInfo.setToken("-1"); // 假设令牌为sample_token,实际应用中应从服务器获取 + AppDatabase.getDatabase(this).loginInfoDao().insert(loginInfo); + startActivity(new Intent(this, MainActivity.class)); + finish(); + }); + } + + private boolean checkParameters(String password) { + if (password.isEmpty()) { + XToastUtils.warning("登录密码不能为空"); + return false; + } + return true; + } + + @Override + public void onDestroy() { + super.onDestroy(); + } + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + if (ev.getAction() == MotionEvent.ACTION_DOWN) { + View v = getCurrentFocus(); + if (v instanceof EditText) { + int[] location = new int[2]; + v.getLocationOnScreen(location); + float x = ev.getRawX() + v.getLeft() - location[0]; + float y = ev.getRawY() + v.getTop() - location[1]; + if (x < v.getLeft() || x > v.getRight() || y < v.getTop() || y > v.getBottom()) { + hideKeyboard(v); + } + } + } + return super.dispatchTouchEvent(ev); + } + + private void hideKeyboard(View view) { + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + if (imm != null) { + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + } +} diff --git a/app/src/main/java/com/bonus/canteen/activity/SplashActivity.java b/app/src/main/java/com/bonus/canteen/activity/SplashActivity.java index 23ffa53..45dd57c 100644 --- a/app/src/main/java/com/bonus/canteen/activity/SplashActivity.java +++ b/app/src/main/java/com/bonus/canteen/activity/SplashActivity.java @@ -22,7 +22,6 @@ import android.view.KeyEvent; import com.bonus.canteen.db.AppDatabase; import com.bonus.canteen.db.entity.base.ParamSettingInfo; import com.bonus.canteen.upgrade.UpdateDown; -import com.bonus.canteen.utils.TokenUtils; import com.bonus.canteen.utils.WorkConfig; import com.ccb.facedevice.sdk.utils.NetworkUtils; import com.xuexiang.xui.utils.KeyboardUtils; @@ -84,10 +83,10 @@ public class SplashActivity extends BaseSplashActivity implements CancelAdapt { } } private void navigateToNextPage() { - if (TokenUtils.hasToken()) { + if (NetworkUtils.isNetworkConnected(this)) { ActivityUtils.startActivity(LoginActivity.class); } else { - ActivityUtils.startActivity(LoginActivity.class); + ActivityUtils.startActivity(OffLineLoginActivity.class); } finish(); } diff --git a/app/src/main/java/com/bonus/canteen/adapter/menu/SalesMenuAdapter.java b/app/src/main/java/com/bonus/canteen/adapter/menu/SalesMenuAdapter.java index 578f9cb..34a717c 100644 --- a/app/src/main/java/com/bonus/canteen/adapter/menu/SalesMenuAdapter.java +++ b/app/src/main/java/com/bonus/canteen/adapter/menu/SalesMenuAdapter.java @@ -119,6 +119,10 @@ public class SalesMenuAdapter extends BaseAdapter { }); holder.tvAdd.setOnClickListener(view -> { //查询限购 + if (bean.getName().equals("按键金额")){ + XToastUtils.warning("该菜品不支持加购操作!"); + return; + } ThreadPoolManager.getExecutor().execute(() -> { CookMealTimesInfo cookMealTimesInfo = AppDatabase.getDatabase(context).cookMeetTimesDao().getDefaultCookMeetTime(); CookDetailInfo cookDetailInfo = AppDatabase.getDatabase(context).cookMeetDetailDao().getCookMeetDetailByIdAndTime(bean.getId(), cookMealTimesInfo.getIntervalId()); @@ -150,6 +154,10 @@ public class SalesMenuAdapter extends BaseAdapter { }); holder.tvFoodNum.setOnClickListener(view -> { //弹窗 + if (bean.getName().equals("按键金额")){ + XToastUtils.warning("该菜品不支持加购操作!"); + return; + } DialogShow(list.get(i)); }); return convertView; diff --git a/app/src/main/java/com/bonus/canteen/fragment/OfflineCheckoutFragment.java b/app/src/main/java/com/bonus/canteen/fragment/OfflineCheckoutFragment.java index ca77e57..e4c031a 100644 --- a/app/src/main/java/com/bonus/canteen/fragment/OfflineCheckoutFragment.java +++ b/app/src/main/java/com/bonus/canteen/fragment/OfflineCheckoutFragment.java @@ -149,7 +149,7 @@ public class OfflineCheckoutFragment extends BaseFragment { String moneyStr = binding.salesTotalMoney.getText().toString(); String money = moneyStr.replace("总金额:", "").replace("元", ""); - if (premiumAmount.toString().isEmpty() && salesMenuEntityList.isEmpty()) { + if (salesMenuEntityList.isEmpty()) { XToastUtils.warning("请先点餐!"); SoundManager.getInstance().play(Sound.createSimpleSound(R.raw.please_choose_food)); return; diff --git a/app/src/main/java/com/bonus/canteen/fragment/SupermarketCashierFragment.java b/app/src/main/java/com/bonus/canteen/fragment/SupermarketCashierFragment.java index d9f5299..b7c42ef 100644 --- a/app/src/main/java/com/bonus/canteen/fragment/SupermarketCashierFragment.java +++ b/app/src/main/java/com/bonus/canteen/fragment/SupermarketCashierFragment.java @@ -153,7 +153,7 @@ public class SupermarketCashierFragment extends BaseFragment { String moneyStr = binding.salesTotalMoney.getText().toString(); String money = moneyStr.replace("总金额:", "").replace("元", ""); - if (premiumAmount.toString().isEmpty() && salesMenuEntityList.isEmpty()) { + if (salesMenuEntityList.isEmpty()) { XToastUtils.warning("请先点餐!"); SoundManager.getInstance().play(Sound.createSimpleSound(R.raw.please_choose_food)); return; diff --git a/app/src/main/java/com/bonus/canteen/service/data/UpdateBasicData.java b/app/src/main/java/com/bonus/canteen/service/data/UpdateBasicData.java index ab9d0d8..aa38312 100644 --- a/app/src/main/java/com/bonus/canteen/service/data/UpdateBasicData.java +++ b/app/src/main/java/com/bonus/canteen/service/data/UpdateBasicData.java @@ -40,6 +40,7 @@ import com.bonus.canteen.db.entity.base.UserInfo; import com.bonus.canteen.service.data.entity.ResponseVo; import com.bonus.canteen.utils.DateTimeHelper; import com.bonus.canteen.utils.OkHttpService; +import com.bonus.canteen.utils.SM4EncryptUtils; import com.bonus.canteen.utils.UrlConfig; import com.bonus.canteen.utils.WorkConfig; import com.ccb.facedevice.sdk.utils.AppUtil; @@ -72,7 +73,7 @@ public class UpdateBasicData { private static final String MEAL_ERROR = "获取餐次信息失败!"; private static final String DEVICE_ERROR = "获取设备信息失败!"; private static final String PARAM_SETTING_ERROR = "获取参数设置信息失败!"; - + private static final int PHONE_LENGTH = 11; public UpdateBasicData(Context context) { this.context = context; } @@ -125,10 +126,13 @@ public class UpdateBasicData { JSONObject jsonObject = JSONObject.parseObject(result); if (jsonObject.containsKey("data")) { Log.d(TAG, "人员信息更新完成!更新list:" + jsonObject.getString("data")); - List list = new Gson().fromJson(jsonObject.getString("data"), new TypeToken>() { - }.getType()); + List list = new Gson().fromJson(jsonObject.getString("data"), new TypeToken>() { + }.getType()); Log.d(TAG, "人员信息更新完成!更新list:" + list.toString()); for (UserInfo userInfo : list) { + if (userInfo.getPhone().length() > PHONE_LENGTH) { + userInfo.setPhone(SM4EncryptUtils.sm4Decrypt(userInfo.getPhone())); + } AppDatabase.getDatabase(context).userDao().insert(userInfo); } DeviceInfoDao deviceInfoDao = AppDatabase.getDatabase(context).deviceInfoDao(); @@ -445,7 +449,7 @@ public class UpdateBasicData { .post(body).build(); try { String result = service.httpPost(url, body, context, request); - Log.i("getParamSettingInfo result", result); + Log.i("getParamSettingInfo result", result); JSONObject firstJson = JSONObject.parseObject(result); if (firstJson.containsKey("data")) { String data = firstJson.getString("data"); diff --git a/app/src/main/java/com/bonus/canteen/utils/WorkConfig.java b/app/src/main/java/com/bonus/canteen/utils/WorkConfig.java index 68860d2..ea5a8f0 100644 --- a/app/src/main/java/com/bonus/canteen/utils/WorkConfig.java +++ b/app/src/main/java/com/bonus/canteen/utils/WorkConfig.java @@ -27,8 +27,8 @@ public class WorkConfig { //本地 // protected static String baseUrl = "http://192.168.0.34:48380/smart-canteen"; // protected static String prefixesUrl = "http://192.168.0.34:48380"; - protected static String baseUrl = "http://192.168.0.34:48380/smart-canteen"; - protected static String prefixesUrl = "http://192.168.0.34:48380"; + protected static String baseUrl = "http://192.168.0.244:48380/smart-canteen"; + protected static String prefixesUrl = "http://192.168.0.244:48380"; protected static String fileUrl = "http://192.168.0.244:48380/lnyst/"; protected static String updateUrl = "https://www.baidu.com"; protected static String serverUri = "tcp://192.168.0.244:1883"; diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index c86cab3..10b52a4 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -13,7 +13,7 @@ android:orientation="horizontal"> diff --git a/app/src/main/res/layout/activity_offline_login.xml b/app/src/main/res/layout/activity_offline_login.xml new file mode 100644 index 0000000..5624493 --- /dev/null +++ b/app/src/main/res/layout/activity_offline_login.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/canteen_keybroad.xml b/app/src/main/res/layout/canteen_keybroad.xml index ae8153d..db7c770 100644 --- a/app/src/main/res/layout/canteen_keybroad.xml +++ b/app/src/main/res/layout/canteen_keybroad.xml @@ -39,6 +39,7 @@ android:layout_centerVertical="true" android:layout_gravity="center_vertical" android:layout_marginEnd="@dimen/config_margin_10dp" + android:visibility="gone" android:background="@drawable/ic_keybroad_del" android:textColor="#333" android:textFontWeight="1000" />