Browse Source

fix order_type 3 ui

dev
MTing 4 days ago
parent
commit
571ce4f84e
  1. 12
      app/src/main/java/com/ouxuan/oxface/orderOX/OrderSelectionActivity.java
  2. 95
      app/src/main/java/com/ouxuan/oxface/orderOX/adapter/OrderSelectionAdapter.java
  3. 36
      app/src/main/java/com/ouxuan/oxface/orderOX/model/OrderVerificationData.java

12
app/src/main/java/com/ouxuan/oxface/orderOX/OrderSelectionActivity.java

@ -291,10 +291,10 @@ public class OrderSelectionActivity extends AppCompatActivity {
int orderType = order.getOrder_type(); int orderType = order.getOrder_type();
// 获取卡号 // 获取卡号
String cardNo = order.getInfo() != null ? order.getInfo().getCard_no() : "";
String cardNo = order.getInfo() != null ? order.getCardNoFromInfo() : "";
// 获取用户人脸ID // 获取用户人脸ID
String userFaceId = order.getInfo() != null ? order.getInfo().getUser_face_id() : "";
String userFaceId = order.getInfo() != null ? order.getUserFaceIdFromInfo() : "";
LogManager.logInfo(TAG, "调用核销接口: orderId=" + orderId + ", verifyCode=" + verifyCode + LogManager.logInfo(TAG, "调用核销接口: orderId=" + orderId + ", verifyCode=" + verifyCode +
", hardwareId=" + hardwareId + ", orderType=" + orderType + ", cardNo=" + cardNo + ", hardwareId=" + hardwareId + ", orderType=" + orderType + ", cardNo=" + cardNo +
@ -351,7 +351,7 @@ public class OrderSelectionActivity extends AppCompatActivity {
intent.putExtra("order_no", order.getOrder_no()); intent.putExtra("order_no", order.getOrder_no());
intent.putExtra("verification_code", verifyCode); intent.putExtra("verification_code", verifyCode);
intent.putExtra("order_type", order.getOrder_type()); intent.putExtra("order_type", order.getOrder_type());
intent.putExtra("card_no", order.getInfo() != null ? order.getInfo().getCard_no() : "");
intent.putExtra("card_no", order.getInfo() != null ? order.getCardNoFromInfo() : "");
intent.putExtra("project", order.getProject()); intent.putExtra("project", order.getProject());
intent.putExtra("status", status); intent.putExtra("status", status);
intent.putExtra("message", message); intent.putExtra("message", message);
@ -373,7 +373,7 @@ public class OrderSelectionActivity extends AppCompatActivity {
resultIntent.putExtra("order_no", order.getOrder_no()); resultIntent.putExtra("order_no", order.getOrder_no());
resultIntent.putExtra("verification_code", verifyCode); resultIntent.putExtra("verification_code", verifyCode);
resultIntent.putExtra("order_type", order.getOrder_type()); resultIntent.putExtra("order_type", order.getOrder_type());
resultIntent.putExtra("card_no", order.getInfo() != null ? order.getInfo().getCard_no() : "");
resultIntent.putExtra("card_no", order.getInfo() != null ? order.getCardNoFromInfo() : "");
resultIntent.putExtra("project", order.getProject()); resultIntent.putExtra("project", order.getProject());
resultIntent.putExtra("verification_type", verificationType); resultIntent.putExtra("verification_type", verificationType);
resultIntent.putExtra("verify_status", status); resultIntent.putExtra("verify_status", status);
@ -403,7 +403,7 @@ public class OrderSelectionActivity extends AppCompatActivity {
intent.putExtra("order_no", order.getOrder_no()); intent.putExtra("order_no", order.getOrder_no());
intent.putExtra("verification_code", verifyCode); intent.putExtra("verification_code", verifyCode);
intent.putExtra("order_type", order.getOrder_type()); intent.putExtra("order_type", order.getOrder_type());
intent.putExtra("card_no", order.getInfo() != null ? order.getInfo().getCard_no() : "");
intent.putExtra("card_no", order.getInfo() != null ? order.getCardNoFromInfo() : "");
intent.putExtra("project", order.getProject()); intent.putExtra("project", order.getProject());
intent.putExtra("status", "核销失败"); intent.putExtra("status", "核销失败");
intent.putExtra("message", displayMessage); intent.putExtra("message", displayMessage);
@ -445,7 +445,7 @@ public class OrderSelectionActivity extends AppCompatActivity {
intent.putExtra("order_no", order.getOrder_no()); intent.putExtra("order_no", order.getOrder_no());
intent.putExtra("verification_code", verifyCode); intent.putExtra("verification_code", verifyCode);
intent.putExtra("order_type", order.getOrder_type()); intent.putExtra("order_type", order.getOrder_type());
intent.putExtra("card_no", order.getInfo() != null ? order.getInfo().getCard_no() : "");
intent.putExtra("card_no", order.getInfo() != null ? order.getCardNoFromInfo() : "");
intent.putExtra("project", order.getProject()); intent.putExtra("project", order.getProject());
intent.putExtra("status", "核销异常"); intent.putExtra("status", "核销异常");
intent.putExtra("message", displayMessage); intent.putExtra("message", displayMessage);

95
app/src/main/java/com/ouxuan/oxface/orderOX/adapter/OrderSelectionAdapter.java

@ -136,7 +136,7 @@ public class OrderSelectionAdapter extends RecyclerView.Adapter<OrderSelectionAd
case 3: case 3:
return "订单信息(年月卡,每天可使用" + order.getNumber() + "次,今天已使用" + order.getSuccess() + "次)"; return "订单信息(年月卡,每天可使用" + order.getNumber() + "次,今天已使用" + order.getSuccess() + "次)";
case 5: case 5:
String kind = order.getInfo() != null && order.getInfo().getKind() != null ? order.getInfo().getKind() : "";
String kind = order.getInfo() != null ? getKindFromInfo(order.getInfo()) : "";
return "订单信息(课程签到," + kind + ")"; return "订单信息(课程签到," + kind + ")";
default: default:
return "订单信息"; return "订单信息";
@ -192,20 +192,20 @@ public class OrderSelectionAdapter extends RecyclerView.Adapter<OrderSelectionAd
*/ */
private void setupCardInfo(OrderViewHolder holder, OrderVerificationData.OrderItem order) { private void setupCardInfo(OrderViewHolder holder, OrderVerificationData.OrderItem order) {
// 年月卡号 // 年月卡号
String cardNo = order.getInfo() != null && order.getInfo().getCard_no() != null ?
"NO." + order.getInfo().getCard_no() : "";
addInfoLine(holder, "年月卡号:", cardNo, false);
String cardNo = order.getInfo() != null ? order.getCardNoFromInfo() : "";
addInfoLine(holder, "年月卡号:", cardNo.isEmpty() ? "" : "NO." + cardNo, false);
// 年月卡名称 // 年月卡名称
addInfoLine(holder, "年月卡名称:", order.getProject() != null ? order.getProject() : "", false); addInfoLine(holder, "年月卡名称:", order.getProject() != null ? order.getProject() : "", false);
// 剩余可使用 // 剩余可使用
int restNumber = order.getInfo() != null ? order.getInfo().getRest_number() : 0;
int restNumber = order.getInfo() != null ? getRestNumberFromInfo(order.getInfo()) : 0;
addInfoLine(holder, "剩余可使用:", restNumber + "次", false); addInfoLine(holder, "剩余可使用:", restNumber + "次", false);
// 进场状态 // 进场状态
String status = order.getInfo() != null && order.getInfo().getStatus() == 1 ? "已进场" : "未进场";
addInfoLine(holder, "进场状态:", status, false);
int status = order.getInfo() != null ? getStatusFromInfo(order.getInfo()) : 0;
String statusText = status == 1 ? "已进场" : "未进场";
addInfoLine(holder, "进场状态:", statusText, false);
// 有效期 // 有效期
String validity = order.getEnd_time() != null ? (order.getEnd_time() + "到期") : "-到期"; String validity = order.getEnd_time() != null ? (order.getEnd_time() + "到期") : "-到期";
@ -223,18 +223,15 @@ public class OrderSelectionAdapter extends RecyclerView.Adapter<OrderSelectionAd
addInfoLine(holder, "课程名称:", order.getProject() != null ? order.getProject() : "-", false); addInfoLine(holder, "课程名称:", order.getProject() != null ? order.getProject() : "-", false);
// 上课时间 // 上课时间
String classTime = order.getInfo() != null && order.getInfo().getTime() != null ?
order.getInfo().getTime() : "-";
String classTime = order.getInfo() != null ? getTimeFromInfo(order.getInfo()) : "-";
addInfoLine(holder, "上课时间:", classTime, false); addInfoLine(holder, "上课时间:", classTime, false);
// 上课教练 // 上课教练
String coach = order.getInfo() != null && order.getInfo().getCoach() != null ?
order.getInfo().getCoach() : "-";
String coach = order.getInfo() != null ? getCoachFromInfo(order.getInfo()) : "-";
addInfoLine(holder, "上课教练:", coach, false); addInfoLine(holder, "上课教练:", coach, false);
// 上课地点 // 上课地点
String addr = order.getInfo() != null && order.getInfo().getAddr() != null ?
order.getInfo().getAddr() : "-";
String addr = order.getInfo() != null ? getAddrFromInfo(order.getInfo()) : "-";
addInfoLine(holder, "上课地点:", addr, false); addInfoLine(holder, "上课地点:", addr, false);
} }
@ -370,4 +367,76 @@ public class OrderSelectionAdapter extends RecyclerView.Adapter<OrderSelectionAd
layoutOrderDetails = itemView.findViewById(R.id.layout_order_details); layoutOrderDetails = itemView.findViewById(R.id.layout_order_details);
} }
} }
/**
* 从info JsonElement中提取kind字段
*/
private String getKindFromInfo(com.google.gson.JsonElement info) {
if (info != null && info.isJsonObject()) {
if (info.getAsJsonObject().has("kind")) {
return info.getAsJsonObject().get("kind").getAsString();
}
}
return "";
}
/**
* 从info JsonElement中提取time字段
*/
private String getTimeFromInfo(com.google.gson.JsonElement info) {
if (info != null && info.isJsonObject()) {
if (info.getAsJsonObject().has("time")) {
return info.getAsJsonObject().get("time").getAsString();
}
}
return "-";
}
/**
* 从info JsonElement中提取coach字段
*/
private String getCoachFromInfo(com.google.gson.JsonElement info) {
if (info != null && info.isJsonObject()) {
if (info.getAsJsonObject().has("coach")) {
return info.getAsJsonObject().get("coach").getAsString();
}
}
return "-";
}
/**
* 从info JsonElement中提取addr字段
*/
private String getAddrFromInfo(com.google.gson.JsonElement info) {
if (info != null && info.isJsonObject()) {
if (info.getAsJsonObject().has("addr")) {
return info.getAsJsonObject().get("addr").getAsString();
}
}
return "-";
}
/**
* 从info JsonElement中提取rest_number字段
*/
private int getRestNumberFromInfo(com.google.gson.JsonElement info) {
if (info != null && info.isJsonObject()) {
if (info.getAsJsonObject().has("rest_number")) {
return info.getAsJsonObject().get("rest_number").getAsInt();
}
}
return 0;
}
/**
* 从info JsonElement中提取status字段
*/
private int getStatusFromInfo(com.google.gson.JsonElement info) {
if (info != null && info.isJsonObject()) {
if (info.getAsJsonObject().has("status")) {
return info.getAsJsonObject().get("status").getAsInt();
}
}
return 0;
}
} }

36
app/src/main/java/com/ouxuan/oxface/orderOX/model/OrderVerificationData.java

@ -1,5 +1,8 @@
package com.ouxuan.oxface.orderOX.model; package com.ouxuan.oxface.orderOX.model;
import com.google.gson.JsonElement;
import com.google.gson.annotations.SerializedName;
import java.util.List; import java.util.List;
/** /**
@ -41,15 +44,20 @@ public class OrderVerificationData {
private String project; private String project;
private int number; private int number;
private List<String> v_code; private List<String> v_code;
private OrderInfo info;
private JsonElement info; // 使用JsonElement来支持多种类型字符串或对象
private int success; private int success;
private int pv_usage_duration; private int pv_usage_duration;
private boolean many_enter; private boolean many_enter;
// info字段的内部类用于表示对象类型的info
public static class OrderInfo { public static class OrderInfo {
@SerializedName("card_no")
private String card_no; private String card_no;
@SerializedName("rest_number")
private int rest_number; private int rest_number;
@SerializedName("status")
private int status; private int status;
@SerializedName("user_face_id")
private String user_face_id; private String user_face_id;
// 课程相关信息 // 课程相关信息
@ -198,14 +206,34 @@ public class OrderVerificationData {
this.v_code = v_code; this.v_code = v_code;
} }
public OrderInfo getInfo() {
public JsonElement getInfo() {
return info; return info;
} }
public void setInfo(OrderInfo info) {
public void setInfo(JsonElement info) {
this.info = info; this.info = info;
} }
// 辅助方法用于获取info中的card_no如果info是对象类型
public String getCardNoFromInfo() {
if (info != null && info.isJsonObject()) {
if (info.getAsJsonObject().has("card_no")) {
return info.getAsJsonObject().get("card_no").getAsString();
}
}
return "";
}
// 辅助方法用于获取info中的user_face_id如果info是对象类型
public String getUserFaceIdFromInfo() {
if (info != null && info.isJsonObject()) {
if (info.getAsJsonObject().has("user_face_id")) {
return info.getAsJsonObject().get("user_face_id").getAsString();
}
}
return "";
}
public int getSuccess() { public int getSuccess() {
return success; return success;
} }
@ -256,7 +284,7 @@ public class OrderVerificationData {
} }
/** /**
* 获取验证码字符串
* 获取验证码字符串取第一个验证码
*/ */
public String getVerificationCode() { public String getVerificationCode() {
if (v_code != null && !v_code.isEmpty()) { if (v_code != null && !v_code.isEmpty()) {

Loading…
Cancel
Save