From a4a5f33c968d791ede45aa4b21795f46392b7b1b Mon Sep 17 00:00:00 2001 From: MTing Date: Tue, 9 Sep 2025 19:32:35 +0800 Subject: [PATCH] fix 1 --- .../orderOX/OrderVerificationResultActivity.java | 495 +-------------------- 1 file changed, 19 insertions(+), 476 deletions(-) diff --git a/app/src/main/java/com/ouxuan/oxface/orderOX/OrderVerificationResultActivity.java b/app/src/main/java/com/ouxuan/oxface/orderOX/OrderVerificationResultActivity.java index 86ff2be..974815d 100644 --- a/app/src/main/java/com/ouxuan/oxface/orderOX/OrderVerificationResultActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/orderOX/OrderVerificationResultActivity.java @@ -10,8 +10,6 @@ import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.ImageButton; -import android.widget.ImageView; -import android.widget.ScrollView; import android.widget.TextView; import android.widget.Toast; @@ -19,18 +17,6 @@ import androidx.appcompat.app.AppCompatActivity; import com.ouxuan.oxface.R; import com.ouxuan.oxface.utils.LogManager; -import com.ouxuan.oxface.data.LoginDataManager; -import com.bumptech.glide.Glide; -import com.bumptech.glide.load.resource.bitmap.CircleCrop; -import com.bumptech.glide.request.RequestOptions; -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Locale; /** * 订单核销结果Activity @@ -40,26 +26,14 @@ public class OrderVerificationResultActivity extends AppCompatActivity { private static final String TAG = "OrderVerificationResultActivity"; - // UI组件 private ImageButton btnClose; private Button btnConfirm; - private TextView tvTitle, tvStoreName, tvWelcomeMessage; - private ImageView ivUserAvatar, ivStoreIcon; - private TextView tvUserName; - private ScrollView scrollViewDetails; - private TextView tvOrderDetails; - - // 数据字段 + private TextView tvTitle, tvOrderNo, tvVerificationCode, tvOrderType, tvCardNo, tvStatus; private String orderNo, verificationCode, orderType, cardNo, status; - private String userName, userAvatar; - private int verificationType; // 1-验证码验证, 2-人脸验证, 3-扫码验证, 4-扫码器验证 - private JsonObject orderResultData; // 完整的订单结果数据 + private int verificationType; // 1-验证码验证, 4-扫码器验证 // 强制关闭广播接收器 private BroadcastReceiver forceCloseReceiver; - - // 登录数据管理器 - private LoginDataManager loginDataManager; @Override protected void onCreate(Bundle savedInstanceState) { @@ -79,9 +53,7 @@ public class OrderVerificationResultActivity extends AppCompatActivity { window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); initViews(); - initLoginDataManager(); getIntentData(); - updateStoreInfo(); updateUI(); setupListeners(); @@ -101,24 +73,11 @@ public class OrderVerificationResultActivity extends AppCompatActivity { // 初始化文本视图 tvTitle = findViewById(R.id.tv_result_title); - tvStoreName = findViewById(R.id.tv_store_name); - tvWelcomeMessage = findViewById(R.id.tv_welcome_message); - tvUserName = findViewById(R.id.tv_user_name); - tvOrderDetails = findViewById(R.id.tv_order_details); - - // 初始化图片视图 - ivUserAvatar = findViewById(R.id.iv_user_avatar); - ivStoreIcon = findViewById(R.id.iv_store_icon); - - // 初始化滚动视图 - scrollViewDetails = findViewById(R.id.scroll_view_details); - } - - /** - * 初始化登录数据管理器 - */ - private void initLoginDataManager() { - loginDataManager = LoginDataManager.getInstance(this); + tvOrderNo = findViewById(R.id.tv_order_no); + tvVerificationCode = findViewById(R.id.tv_verification_code); + tvOrderType = findViewById(R.id.tv_order_type); + tvCardNo = findViewById(R.id.tv_card_no); + tvStatus = findViewById(R.id.tv_status); } private void getIntentData() { @@ -131,19 +90,6 @@ public class OrderVerificationResultActivity extends AppCompatActivity { orderType = String.valueOf(orderTypeInt); cardNo = intent.getStringExtra("card_no"); status = intent.getStringExtra("status"); - userName = intent.getStringExtra("user_name"); - userAvatar = intent.getStringExtra("user_avatar"); - - // 获取完整的订单结果数据(JSON字符串) - String orderResultJson = intent.getStringExtra("order_result_data"); - if (orderResultJson != null && !orderResultJson.isEmpty()) { - try { - orderResultData = JsonParser.parseString(orderResultJson).getAsJsonObject(); - LogManager.logInfo(TAG, "成功解析订单结果数据"); - } catch (Exception e) { - LogManager.logError(TAG, "解析订单结果数据失败", e); - } - } } // 设置默认值 @@ -152,428 +98,25 @@ public class OrderVerificationResultActivity extends AppCompatActivity { if (orderType == null) orderType = ""; if (cardNo == null) cardNo = ""; if (status == null) status = "核销成功"; - if (userName == null) userName = ""; - if (userAvatar == null) userAvatar = ""; - } - - /** - * 更新店铺信息(店铺名称和Logo) - */ - private void updateStoreInfo() { - try { - if (loginDataManager != null) { - String storeName = loginDataManager.getStoreName(); - String logoUrl = loginDataManager.getStoreLogo(); - - // 更新店铺名称和欢迎信息 - if (storeName != null && !storeName.isEmpty()) { - if (tvStoreName != null) { - tvStoreName.setText(storeName); - } - if (tvWelcomeMessage != null) { - tvWelcomeMessage.setText("您好,欢迎光临" + storeName + "!\n您的订单已验证成功!"); - } - LogManager.logInfo(TAG, "成功更新店铺名称: " + storeName); - } else { - if (tvStoreName != null) { - tvStoreName.setText("Test门店"); - } - if (tvWelcomeMessage != null) { - tvWelcomeMessage.setText("您好,欢迎光临Test门店!\n您的订单已验证成功!"); - } - LogManager.logWarning(TAG, "未获取到店铺名称,使用默认名称"); - } - - // 更新店铺 Logo - if (logoUrl != null && !logoUrl.isEmpty() && ivStoreIcon != null) { - LogManager.logInfo(TAG, "加载店铺 Logo: " + logoUrl); - - Glide.with(this) - .load(logoUrl) - .apply(RequestOptions.bitmapTransform(new CircleCrop())) - .placeholder(R.drawable.ic_warriors_logo) - .error(R.drawable.ic_warriors_logo) - .into(ivStoreIcon); - } else { - if (ivStoreIcon != null) { - ivStoreIcon.setImageResource(R.drawable.ic_warriors_logo); - } - } - } - } catch (Exception e) { - LogManager.logError(TAG, "更新店铺信息失败", e); - } } private void updateUI() { // 根据验证类型设置标题 - if (tvTitle != null) { - switch (verificationType) { - case 1: - tvTitle.setText("验证码核销结果"); - break; - case 2: - tvTitle.setText("人脸验证结果"); - break; - case 3: - tvTitle.setText("扫码验证结果"); - break; - case 4: - tvTitle.setText("扫码器核销结果"); - break; - case 5: - tvTitle.setText("课程签到结果"); - break; - default: - tvTitle.setText("订单核销结果"); - break; - } + if (verificationType == 1) { + tvTitle.setText("验证码核销结果"); + } else if (verificationType == 4) { + tvTitle.setText("扫码器核销结果"); + } else { + tvTitle.setText("订单核销结果"); } - // 更新用户信息 - updateUserInfo(); - - // 更新订单详情 - updateOrderDetails(); - - // 播放成功提示音(保留注释) - // playSuccessAudio(); - - // 执行开门操作(保留注释) - // executeOpenDoor(); - } - - /** - * 更新用户信息(头像和昵称) - */ - private void updateUserInfo() { - try { - // 更新用户昵称 - if (tvUserName != null) { - if (userName != null && !userName.isEmpty()) { - tvUserName.setText(userName); - } else { - tvUserName.setText("用户"); // 默认昵称 - } - } - - // 更新用户头像 - if (ivUserAvatar != null) { - if (userAvatar != null && !userAvatar.isEmpty()) { - Glide.with(this) - .load(userAvatar) - .apply(RequestOptions.bitmapTransform(new CircleCrop())) - .placeholder(R.drawable.ic_default_avatar) - .error(R.drawable.ic_default_avatar) - .into(ivUserAvatar); - } else { - ivUserAvatar.setImageResource(R.drawable.ic_default_avatar); - } - } - } catch (Exception e) { - LogManager.logError(TAG, "更新用户信息失败", e); - } - } - - /** - * 更新订单详情显示 - */ - private void updateOrderDetails() { - try { - if (tvOrderDetails == null) { - return; - } - - StringBuilder details = new StringBuilder(); - - if (orderResultData != null) { - // 根据订单类型显示不同内容 - int orderTypeInt = getOrderTypeFromData(); - String projectName = getStringFromData("project", "订单项目"); - - // 订单类型标签 - String typeLabel = getOrderTypeLabel(orderTypeInt); - details.append(typeLabel).append(" ").append(projectName).append("\n\n"); - - switch (orderTypeInt) { - case 0: // 场次核销 - appendFieldDetails(details); - break; - case 1: // 人次核销 - appendPersonTimesDetails(details); - break; - case 3: // 年月卡 - appendMembershipCardDetails(details); - break; - case 5: // 课程 - appendCourseDetails(details); - break; - default: - appendBasicDetails(details); - break; - } - } else { - // 基本信息显示 - appendBasicDetails(details); - } - - // 添加提示信息 - details.append("\n").append(getOrderTipMessage()); - - tvOrderDetails.setText(details.toString()); - - } catch (Exception e) { - LogManager.logError(TAG, "更新订单详情失败", e); - if (tvOrderDetails != null) { - tvOrderDetails.setText("订单信息加载失败"); - } - } - } - - /** - * 获取订单类型标签 - */ - private String getOrderTypeLabel(int orderType) { - switch (orderType) { - case 0: - return "场次"; - case 1: - return "人次"; - case 3: - return "年月卡"; - case 5: - return "课程"; - default: - return "订单"; - } - } - - /** - * 从数据中获取订单类型 - */ - private int getOrderTypeFromData() { - if (orderResultData != null && orderResultData.has("order_type")) { - return orderResultData.get("order_type").getAsInt(); - } - return Integer.parseInt(orderType != null && !orderType.isEmpty() ? orderType : "0"); - } - - /** - * 从数据中获取字符串值 - */ - private String getStringFromData(String key, String defaultValue) { - if (orderResultData != null && orderResultData.has(key)) { - JsonElement element = orderResultData.get(key); - if (!element.isJsonNull()) { - return element.getAsString(); - } - } - return defaultValue; - } - - /** - * 场次详情 - */ - private void appendFieldDetails(StringBuilder details) { - try { - if (orderResultData != null && orderResultData.has("info")) { - JsonElement infoElement = orderResultData.get("info"); - if (infoElement.isJsonArray()) { - for (JsonElement item : infoElement.getAsJsonArray()) { - if (item.isJsonObject()) { - JsonObject venue = item.getAsJsonObject(); - String venueName = venue.has("venue_name") ? venue.get("venue_name").getAsString() : "-"; - String startTime = venue.has("start") ? venue.get("start").getAsString() : "-"; - details.append(venueName).append(" ").append(startTime).append("\n"); - } - } - } - } - details.append("订单编号:").append(orderNo).append("\n"); - } catch (Exception e) { - LogManager.logError(TAG, "显示场次详情失败", e); - } - } - - /** - * 人次详情 - */ - private void appendPersonTimesDetails(StringBuilder details) { - details.append("验证码:").append(formatVerificationCode(verificationCode, 1)).append("\n"); - details.append("订单编号:").append(orderNo).append("\n"); - - if (orderResultData != null && orderResultData.has("pv_usage_duration")) { - int duration = orderResultData.get("pv_usage_duration").getAsInt(); - String expireTime = getExpireTime(duration); - details.append("有效时间:").append(expireTime).append("到期\n"); - } - - String info = getStringFromData("info", ""); - if (!info.isEmpty()) { - details.append("预订信息:").append(info).append("\n"); - } - } - - /** - * 年月卡详情 - */ - private void appendMembershipCardDetails(StringBuilder details) { - details.append("验证码:").append(formatVerificationCode(verificationCode, 3)).append("\n"); - details.append("名称:").append(getStringFromData("project", "")).append("\n"); - details.append("卡号:NO.").append(cardNo).append("\n"); - - if (orderResultData != null && orderResultData.has("info")) { - JsonObject info = orderResultData.getAsJsonObject("info"); - if (info.has("verify_desc")) { - details.append("核销方式:").append(info.get("verify_desc").getAsString()).append("\n"); - } - if (info.has("verify_time")) { - details.append("核销时间:").append(info.get("verify_time").getAsString()).append("\n"); - } - } - } - - /** - * 课程详情 - */ - private void appendCourseDetails(StringBuilder details) { - if (orderResultData != null && orderResultData.has("info")) { - JsonObject info = orderResultData.getAsJsonObject("info"); - if (info.has("time")) { - details.append("上课时间:").append(info.get("time").getAsString()).append("\n"); - } - if (info.has("coach")) { - details.append("上课教练:").append(info.get("coach").getAsString()).append("\n"); - } - if (info.has("addr")) { - details.append("上课地点:").append(info.get("addr").getAsString()).append("\n"); - } - } - - details.append("课程名称:").append(getStringFromData("project", "")).append("\n"); - details.append("订单编号:").append(orderNo).append("\n"); - - if (orderResultData != null && orderResultData.has("info")) { - JsonObject info = orderResultData.getAsJsonObject("info"); - if (info.has("verify_desc")) { - details.append("签到方式:").append(info.get("verify_desc").getAsString()).append("\n"); - } - if (info.has("verify_time")) { - details.append("签到时间:").append(info.get("verify_time").getAsString()).append("\n"); - } - } - } - - /** - * 基本详情 - */ - private void appendBasicDetails(StringBuilder details) { - details.append("订单编号:").append(orderNo).append("\n"); - if (!verificationCode.isEmpty()) { - details.append("验证码:").append(verificationCode).append("\n"); - } - if (!cardNo.isEmpty()) { - details.append("卡号:").append(cardNo).append("\n"); - } - details.append("状态:").append(status).append("\n"); - } - - /** - * 格式化验证码显示 - */ - private String formatVerificationCode(String code, int type) { - if (code == null || code.isEmpty()) { - return "-"; - } - - try { - if (type == 1) { // 人次类型,每4位分隔 - return code.replaceAll("(\\d)(?=(?:\\d{4})+$)", "$1 "); - } else if (type == 3) { // 年月卡类型,每5位分隔 - return code.replaceAll("(\\d)(?=(?:\\d{5})+$)", "$1 "); - } - } catch (Exception e) { - LogManager.logError(TAG, "格式化验证码失败", e); - } - - return code; - } - - /** - * 获取过期时间 - */ - private String getExpireTime(int hours) { - try { - long expireTimeMillis = System.currentTimeMillis() + (hours * 3600000L); - Date expireDate = new Date(expireTimeMillis); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault()); - return sdf.format(expireDate); - } catch (Exception e) { - LogManager.logError(TAG, "计算过期时间失败", e); - return "-"; - } - } - - /** - * 获取提示信息 - */ - private String getOrderTipMessage() { - int orderTypeInt = getOrderTypeFromData(); - if (orderTypeInt == 0) { - return "系统会根据场馆及订单情况自动为您开启及关闭灯光、空调,届时请留意!\n祝您有个愉快的体验!"; - } - return "祝您有个愉快的体验!"; - } - - /** - * 播放成功提示音(保留注释) - */ - /* - private void playSuccessAudio() { - try { - // 根据订单类型播放不同提示音 - int orderTypeInt = getOrderTypeFromData(); - if (orderTypeInt == 5) { - // 课程签到成功提示 - // plug_face.playAudio({'audio_type': '课程签到成功'}, ret -> {}); - } else { - // 订单核销成功提示 - // plug_face.playAudio({'audio_type': '订单核销成功'}, ret -> {}); - } - } catch (Exception e) { - LogManager.logError(TAG, "播放提示音失败", e); - } - } - */ - - /** - * 执行开门操作(保留注释) - */ - /* - private void executeOpenDoor() { - try { - // GPIO继电器开门 - // if (get_gate_ab_gpio()) { - // LogManager.logInfo(TAG, "执行继电器开门"); - // app.openDoorGpio(); - // } - - // UDP中控开门 - // if (get_gate_ab_udp()) { - // LogManager.logInfo(TAG, "执行UDP中控开门"); - // openDoorUdp(); - // } - - // AB门开门 - // if (get_gate_ab_enable()) { - // LogManager.logInfo(TAG, "执行AB门开门"); - // openGateAB(); - // } - } catch (Exception e) { - LogManager.logError(TAG, "执行开门操作失败", e); - } + // 更新UI内容 + tvOrderNo.setText(orderNo); + tvVerificationCode.setText(verificationCode); + tvOrderType.setText(orderType); + tvCardNo.setText(cardNo); + tvStatus.setText(status); } - */ private void setupListeners() { // 确认按钮