|
|
@ -10,6 +10,8 @@ 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; |
|
|
|
|
|
|
@ -17,6 +19,18 @@ 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 |
|
|
@ -26,14 +40,26 @@ public class OrderVerificationResultActivity extends AppCompatActivity { |
|
|
|
|
|
|
|
private static final String TAG = "OrderVerificationResultActivity"; |
|
|
|
|
|
|
|
// UI组件 |
|
|
|
private ImageButton btnClose; |
|
|
|
private Button btnConfirm; |
|
|
|
private TextView tvTitle, tvOrderNo, tvVerificationCode, tvOrderType, tvCardNo, tvStatus; |
|
|
|
private TextView tvTitle, tvStoreName, tvWelcomeMessage; |
|
|
|
private ImageView ivUserAvatar, ivStoreIcon; |
|
|
|
private TextView tvUserName; |
|
|
|
private ScrollView scrollViewDetails; |
|
|
|
private TextView tvOrderDetails; |
|
|
|
|
|
|
|
// 数据字段 |
|
|
|
private String orderNo, verificationCode, orderType, cardNo, status; |
|
|
|
private int verificationType; // 1-验证码验证, 4-扫码器验证 |
|
|
|
private String userName, userAvatar; |
|
|
|
private int verificationType; // 1-验证码验证, 2-人脸验证, 3-扫码验证, 4-扫码器验证 |
|
|
|
private JsonObject orderResultData; // 完整的订单结果数据 |
|
|
|
|
|
|
|
// 强制关闭广播接收器 |
|
|
|
private BroadcastReceiver forceCloseReceiver; |
|
|
|
|
|
|
|
// 登录数据管理器 |
|
|
|
private LoginDataManager loginDataManager; |
|
|
|
|
|
|
|
@Override |
|
|
|
protected void onCreate(Bundle savedInstanceState) { |
|
|
@ -53,7 +79,9 @@ 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(); |
|
|
|
|
|
|
@ -73,11 +101,24 @@ public class OrderVerificationResultActivity extends AppCompatActivity { |
|
|
|
|
|
|
|
// 初始化文本视图 |
|
|
|
tvTitle = findViewById(R.id.tv_result_title); |
|
|
|
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); |
|
|
|
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); |
|
|
|
} |
|
|
|
|
|
|
|
private void getIntentData() { |
|
|
@ -90,6 +131,19 @@ 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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 设置默认值 |
|
|
@ -98,25 +152,428 @@ 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 (verificationType == 1) { |
|
|
|
tvTitle.setText("验证码核销结果"); |
|
|
|
} else if (verificationType == 4) { |
|
|
|
tvTitle.setText("扫码器核销结果"); |
|
|
|
} else { |
|
|
|
tvTitle.setText("订单核销结果"); |
|
|
|
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; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 更新UI内容 |
|
|
|
tvOrderNo.setText(orderNo); |
|
|
|
tvVerificationCode.setText(verificationCode); |
|
|
|
tvOrderType.setText(orderType); |
|
|
|
tvCardNo.setText(cardNo); |
|
|
|
tvStatus.setText(status); |
|
|
|
// 更新用户信息 |
|
|
|
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); |
|
|
|
} |
|
|
|
} |
|
|
|
*/ |
|
|
|
|
|
|
|
private void setupListeners() { |
|
|
|
// 确认按钮 |
|
|
|