Commit 9029ddf2 by 宁斌

bbpos打印細節調整,新增擴展自動(點選支付方式是否彈出輸入框,餐檯模式開檯自動彈出輸入人數彈窗)

parent 70d85024
...@@ -103,6 +103,16 @@ public class FunctionExtendedConfiguration { ...@@ -103,6 +103,16 @@ public class FunctionExtendedConfiguration {
.remark("餐檯模式下單頁多少秒不操作返回餐檯頁面") .remark("餐檯模式下單頁多少秒不操作返回餐檯頁面")
.build(); .build();
private ExpandInfoSetting SelectPaymentAutoShowKeyboard = ExpandInfoSetting.builder()
.valueBoolean(false)
.remark("點選支付方式是否彈出輸入框")
.build();
private ExpandInfoSetting OpenTableAutoShowKeyboard = ExpandInfoSetting.builder()
.valueBoolean(true)
.remark("餐檯模式開檯自動彈出輸入人數彈窗")
.build();
/** /**
* skyorder相關 * skyorder相關
*/ */
...@@ -216,4 +226,13 @@ public class FunctionExtendedConfiguration { ...@@ -216,4 +226,13 @@ public class FunctionExtendedConfiguration {
public <T> T getSkyQRCodePrintBottomInfoVaule() { public <T> T getSkyQRCodePrintBottomInfoVaule() {
return SkyQRCodePrintBottomInfo.getValue(); return SkyQRCodePrintBottomInfo.getValue();
} }
public <T> T getSelectPaymentAutoShowKeyboardVaule() {
return SelectPaymentAutoShowKeyboard.getValue();
}
public <T> T getOpenTableAutoShowKeyboardVaule() {
return OpenTableAutoShowKeyboard.getValue();
}
} }
package com.gingersoft.gsa.cloud.common.core.print.bean; package com.gingersoft.gsa.cloud.common.core.print.bean;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.NonNull;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport; import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import java.util.List;
import lombok.Data;
/** /**
* @author : bin * @author : bin
...@@ -10,9 +18,56 @@ import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport; ...@@ -10,9 +18,56 @@ import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
* @update date: 2020-11-27 * @update date: 2020-11-27
* @description: * @description:
*/ */
public class PrintCleanMachineContent extends SettlementReport implements PrintContent { @Data
public class PrintCleanMachineContent implements PrintContent, Parcelable {
private String yesterdayTime;
private SettlementReport.VoBean vo;
private String restaurantOperationTime;
private List<SettlementReport.AnalysisBean> analysis;
private List<SettlementReport.CashBean> cash;
private String currentTime;
private String startTime;
public PrintCleanMachineContent() {
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.yesterdayTime);
dest.writeParcelable(this.vo, flags);
dest.writeString(this.restaurantOperationTime);
dest.writeTypedList(this.analysis);
dest.writeTypedList(this.cash);
dest.writeString(this.currentTime);
dest.writeString(this.startTime);
}
protected PrintCleanMachineContent(Parcel in) { protected PrintCleanMachineContent(Parcel in) {
super(in); this.yesterdayTime = in.readString();
this.vo = in.readParcelable(SettlementReport.VoBean.class.getClassLoader());
this.restaurantOperationTime = in.readString();
this.analysis = in.createTypedArrayList(SettlementReport.AnalysisBean.CREATOR);
this.cash = in.createTypedArrayList(SettlementReport.CashBean.CREATOR);
this.currentTime = in.readString();
this.startTime = in.readString();
}
public static final Creator<PrintCleanMachineContent> CREATOR = new Creator<PrintCleanMachineContent>() {
@Override
public PrintCleanMachineContent createFromParcel(Parcel source) {
return new PrintCleanMachineContent(source);
}
@Override
public PrintCleanMachineContent[] newArray(int size) {
return new PrintCleanMachineContent[size];
} }
};
} }
package com.gingersoft.gsa.cloud.common.core.print.bean;
import android.os.Parcel;
import android.os.Parcelable;
import com.gingersoft.gsa.cloud.common.core.order.commodity.OrderDetail;
import java.util.List;
import lombok.Data;
/**
* @author : bin
* @create date: 2020-12-03
* @update date: 2020-12-03
* @description:堂食上菜紙打印內容
*/
@Data
public class PrintServingPaperContent implements PrintContent {
private String brand;
private String resturantName;
private String orderNo;
private int person;
private String createTime;
private List<OrderDetail> foodList;
//禮貌用語
private String politeLanguage;
}
package com.gingersoft.gsa.cloud.common.core.print.bean;
import android.os.Parcelable;
import com.gingersoft.gsa.cloud.common.core.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.common.core.order.commodity.OrderDetail;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
/**
* @author : bin
* @create date: 2020-12-03
* @update date: 2020-12-03
* @description:堂食印單打印內容
* */
@Data
public class PrintSlipContent implements PrintContent {
private String brand;
private String resturantName;
private String tableName;
private String orderNo;
private int person;
private String createTime;
private List<OrderDetail> foodList;
private List<BillItem> billItemList;
private double wholeAmount;
private double totalAmount;
//禮貌用語
private String politeLanguage;
}
...@@ -20,16 +20,21 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable { ...@@ -20,16 +20,21 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
private String brand; private String brand;
private String resturantName; private String resturantName;
/** /**
* 2=外送
* 其他=自取
*/
private String orderType;
/**
* 支付類型:在線支付,貨到付款 * 支付類型:在線支付,貨到付款
*/ */
private String payType; private String payType;
//送達時間 //送達時間
private String deliveryTime; private String deliveryTime;
//單號 //單號
private String orderNumber; private String orderNo;
//訂單碼 //訂單碼
private String billNumber; private String billNo;
//取餐碼 //取餐碼/訂單碼
private String orderTakeFoodCode; private String orderTakeFoodCode;
//開單時間 //開單時間
private String billingTime; private String billingTime;
...@@ -40,7 +45,7 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable { ...@@ -40,7 +45,7 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
//訂單實體 //訂單實體
private List<PrintFoodItem> foodItemList; private List<PrintFoodItem> foodItemList;
private List<PrintBillItem> billItemList; private List<PrintBillItem> billItemList;
private List<PrintPayTypeItem> printPayTypeItemList; // private List<PrintPayTypeItem> printPayTypeItemList;
//總金額 //總金額
private String totalAmountText; private String totalAmountText;
private String totalAmount; private String totalAmount;
...@@ -66,6 +71,7 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable { ...@@ -66,6 +71,7 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
public PrintTakeawayFormContent() { public PrintTakeawayFormContent() {
} }
@Override @Override
public int describeContents() { public int describeContents() {
return 0; return 0;
...@@ -75,22 +81,23 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable { ...@@ -75,22 +81,23 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
public void writeToParcel(Parcel dest, int flags) { public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.brand); dest.writeString(this.brand);
dest.writeString(this.resturantName); dest.writeString(this.resturantName);
dest.writeString(this.orderType);
dest.writeString(this.payType); dest.writeString(this.payType);
dest.writeString(this.deliveryTime); dest.writeString(this.deliveryTime);
dest.writeString(this.orderNumber); dest.writeString(this.orderNo);
dest.writeString(this.billNumber); dest.writeString(this.billNo);
dest.writeString(this.orderTakeFoodCode); dest.writeString(this.orderTakeFoodCode);
dest.writeString(this.billingTime); dest.writeString(this.billingTime);
dest.writeString(this.payTime); dest.writeString(this.payTime);
dest.writeString(this.remark); dest.writeString(this.remark);
dest.writeTypedList(this.foodItemList); dest.writeTypedList(this.foodItemList);
dest.writeTypedList(this.billItemList); dest.writeTypedList(this.billItemList);
dest.writeTypedList(this.printPayTypeItemList);
dest.writeString(this.totalAmountText); dest.writeString(this.totalAmountText);
dest.writeString(this.totalAmount); dest.writeString(this.totalAmount);
dest.writeString(this.payAmountText);
dest.writeString(this.payAmount); dest.writeString(this.payAmount);
dest.writeString(this.memberNumber);
dest.writeString(this.memberName); dest.writeString(this.memberName);
dest.writeString(this.memberNumber);
dest.writeString(this.memberPhone); dest.writeString(this.memberPhone);
dest.writeString(this.memberOldPoints); dest.writeString(this.memberOldPoints);
dest.writeString(this.memberAddPoints); dest.writeString(this.memberAddPoints);
...@@ -105,22 +112,23 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable { ...@@ -105,22 +112,23 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
protected PrintTakeawayFormContent(Parcel in) { protected PrintTakeawayFormContent(Parcel in) {
this.brand = in.readString(); this.brand = in.readString();
this.resturantName = in.readString(); this.resturantName = in.readString();
this.orderType = in.readString();
this.payType = in.readString(); this.payType = in.readString();
this.deliveryTime = in.readString(); this.deliveryTime = in.readString();
this.orderNumber = in.readString(); this.orderNo = in.readString();
this.billNumber = in.readString(); this.billNo = in.readString();
this.orderTakeFoodCode = in.readString(); this.orderTakeFoodCode = in.readString();
this.billingTime = in.readString(); this.billingTime = in.readString();
this.payTime = in.readString(); this.payTime = in.readString();
this.remark = in.readString(); this.remark = in.readString();
this.foodItemList = in.createTypedArrayList(PrintFoodItem.CREATOR); this.foodItemList = in.createTypedArrayList(PrintFoodItem.CREATOR);
this.billItemList = in.createTypedArrayList(PrintBillItem.CREATOR); this.billItemList = in.createTypedArrayList(PrintBillItem.CREATOR);
this.printPayTypeItemList = in.createTypedArrayList(PrintPayTypeItem.CREATOR);
this.totalAmountText = in.readString(); this.totalAmountText = in.readString();
this.totalAmount = in.readString(); this.totalAmount = in.readString();
this.payAmountText = in.readString();
this.payAmount = in.readString(); this.payAmount = in.readString();
this.memberNumber = in.readString();
this.memberName = in.readString(); this.memberName = in.readString();
this.memberNumber = in.readString();
this.memberPhone = in.readString(); this.memberPhone = in.readString();
this.memberOldPoints = in.readString(); this.memberOldPoints = in.readString();
this.memberAddPoints = in.readString(); this.memberAddPoints = in.readString();
...@@ -143,6 +151,4 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable { ...@@ -143,6 +151,4 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
return new PrintTakeawayFormContent[size]; return new PrintTakeawayFormContent[size];
} }
}; };
} }
...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.common.core.print.bean.adapter; ...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.common.core.print.bean.adapter;
import com.gingersoft.gsa.cloud.common.core.print.bean.OrderDetails; import com.gingersoft.gsa.cloud.common.core.print.bean.OrderDetails;
import com.gingersoft.gsa.cloud.common.core.print.bean.PrintContent; import com.gingersoft.gsa.cloud.common.core.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
/** /**
* @author : bin * @author : bin
...@@ -17,6 +18,6 @@ public interface AdaptationContent { ...@@ -17,6 +18,6 @@ public interface AdaptationContent {
PrintContent adaptationPrintTakeawayFormContent(OrderDetails.DataBean data); PrintContent adaptationPrintTakeawayFormContent(OrderDetails.DataBean data);
PrintContent adaptationPrintCleanMachineContent(); PrintContent adaptationPrintCleanMachineContent(SettlementReport settlementReport);
} }
...@@ -274,6 +274,18 @@ public class SettlementReport implements Parcelable { ...@@ -274,6 +274,18 @@ public class SettlementReport implements Parcelable {
} }
public static final Creator<SettlementReport> CREATOR = new Creator<SettlementReport>() {
@Override
public SettlementReport createFromParcel(Parcel in) {
return new SettlementReport(in);
}
@Override
public SettlementReport[] newArray(int size) {
return new SettlementReport[size];
}
};
@Override @Override
public int describeContents() { public int describeContents() {
return 0; return 0;
...@@ -300,15 +312,4 @@ public class SettlementReport implements Parcelable { ...@@ -300,15 +312,4 @@ public class SettlementReport implements Parcelable {
this.startTime = in.readString(); this.startTime = in.readString();
} }
public static final Creator<SettlementReport> CREATOR = new Creator<SettlementReport>() {
@Override
public SettlementReport createFromParcel(Parcel source) {
return new SettlementReport(source);
}
@Override
public SettlementReport[] newArray(int size) {
return new SettlementReport[size];
}
};
} }
...@@ -195,6 +195,11 @@ public class OrderPayView extends LinearLayout { ...@@ -195,6 +195,11 @@ public class OrderPayView extends LinearLayout {
//設置差額狀態 //設置差額狀態
setDifferenceText(context); setDifferenceText(context);
boolean selectPaymentAutoShowKeyboard = GsaCloudApplication.functionConfiguration.getSelectPaymentAutoShowKeyboardVaule();
if (selectPaymentAutoShowKeyboard) {
//彈出支付金額鍵盤
view.findViewById(R.id.layout_keypad).performClick();
}
if (onSelectPayClickLisenter != null) { if (onSelectPayClickLisenter != null) {
onSelectPayClickLisenter.addClick(method); onSelectPayClickLisenter.addClick(method);
} }
......
...@@ -7,8 +7,8 @@ ext { ...@@ -7,8 +7,8 @@ ext {
targetSdkVersion : 29, targetSdkVersion : 29,
//正式版: 1.0.3 3 //正式版: 1.0.3 3
//內部測試版:1.2.0 20 //內部測試版:1.2.0 20
versionCode : 12, versionCode : 13,
versionName : "1.1.2" versionName : "1.1.3"
] ]
version = [ version = [
......
...@@ -13,6 +13,7 @@ import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils ...@@ -13,6 +13,7 @@ import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
import com.gingersoft.gsa.cloud.component.ComponentName import com.gingersoft.gsa.cloud.component.ComponentName
import com.gingersoft.gsa.cloud.common.constans.PrintConstans import com.gingersoft.gsa.cloud.common.constans.PrintConstans
import com.gingersoft.gsa.cloud.common.core.print.bean.OrderDetails import com.gingersoft.gsa.cloud.common.core.print.bean.OrderDetails
import com.gingersoft.gsa.cloud.common.core.print.bean.adapter.PrintContentAdapter
import com.gingersoft.gsa.delivery_pick_mode.data.HistoryOrderRepository import com.gingersoft.gsa.delivery_pick_mode.data.HistoryOrderRepository
import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.HistoryOrderBean import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.HistoryOrderBean
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
...@@ -89,8 +90,13 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo ...@@ -89,8 +90,13 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
orderDetails.data!![0].order_type = data.order_type orderDetails.data!![0].order_type = data.order_type
orderDetails.data!![0].orderPayType = data.orderPayType orderDetails.data!![0].orderPayType = data.orderPayType
TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData = orderDetails.data!![0] TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData = orderDetails.data!![0]
var contentAdapter = PrintContentAdapter()
var printContent = contentAdapter.adaptationPrintTakeawayFormContent(TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData)
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.setActionName("printActivity") .setActionName("printActivity")
.build() .build()
.callAsyncCallbackOnMainThread { _, result -> .callAsyncCallbackOnMainThread { _, result ->
......
...@@ -620,8 +620,13 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -620,8 +620,13 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
fun printOrder(code: Int, dataBean: OrderDetails.DataBean, listener: (MessageBean) -> Unit) { fun printOrder(code: Int, dataBean: OrderDetails.DataBean, listener: (MessageBean) -> Unit) {
//訂單信息和廚房單,打印前需要修改dataBean的order_type和orderPayType //訂單信息和廚房單,打印前需要修改dataBean的order_type和orderPayType
TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData = dataBean TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData = dataBean
var contentAdapter = PrintContentAdapter()
var printContent = contentAdapter.adaptationPrintTakeawayFormContent(dataBean)
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.setActionName("printActivity") .setActionName("printActivity")
.build() .build()
.callAsyncCallbackOnMainThread { _, result -> .callAsyncCallbackOnMainThread { _, result ->
......
...@@ -103,10 +103,12 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem ...@@ -103,10 +103,12 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem
boolean isLogin = (boolean) SPUtils.get(UserConstans.AUTO_LOGIN, false); boolean isLogin = (boolean) SPUtils.get(UserConstans.AUTO_LOGIN, false);
if (isLogin) { if (isLogin) {
if (!TextUtils.isEmpty(UserContext.newInstance().getLoginToken()) && ResturantInfoManager.newInstance(). getRestaurantId() != 0) { if (!TextUtils.isEmpty(UserContext.newInstance().getLoginToken()) && ResturantInfoManager.newInstance().getRestaurantId() != 0) {
//自動登陸 //自動登陸
String pwd = Aes.aesDecrypt((String) SPUtils.get(UserConstans.LOGIN_PASSWORD, "")); String pwd = Aes.aesDecrypt((String) SPUtils.get(UserConstans.LOGIN_PASSWORD, ""));
mPresenter.login(SPUtils.get(UserConstans.LOGIN_USERNAME, "") + "", pwd); mPresenter.login(SPUtils.get(UserConstans.LOGIN_USERNAME, "") + "", pwd);
} else {
startActivity(new Intent(mContext, LoginActivity.class));
} }
} else { } else {
startActivity(new Intent(mContext, LoginActivity.class)); startActivity(new Intent(mContext, LoginActivity.class));
......
...@@ -22,6 +22,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; ...@@ -22,6 +22,8 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.core.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.common.core.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager; import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager;
import com.gingersoft.gsa.cloud.common.core.user.UserContext; import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.core.pay.PayMethod; import com.gingersoft.gsa.cloud.common.core.pay.PayMethod;
...@@ -122,6 +124,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese ...@@ -122,6 +124,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
private int type; private int type;
private SettlementReport mSettlementReport;
/** /**
* 1#全部計入到10號清機數據 * 1#全部計入到10號清機數據
* 2#全部計入到12號清機數據 * 2#全部計入到12號清機數據
...@@ -296,6 +299,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese ...@@ -296,6 +299,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
@Override @Override
public void returnSettlementData(SettlementReport datasBean) { public void returnSettlementData(SettlementReport datasBean) {
this.mSettlementReport = datasBean;
if (datasBean.getVo() != null && datasBean.getVo().getPrices() > 0) { if (datasBean.getVo() != null && datasBean.getVo().getPrices() > 0) {
//保存下次重印數據 //保存下次重印數據
SPUtils.put(PrintConstans.SETTLEMENT_REPORT, JsonUtils.toJson(datasBean)); SPUtils.put(PrintConstans.SETTLEMENT_REPORT, JsonUtils.toJson(datasBean));
...@@ -575,11 +579,18 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese ...@@ -575,11 +579,18 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
@Override @Override
public void printRepore() { public void printRepore() {
if (mSettlementReport == null) {
return;
}
View view = initPrintView(); View view = initPrintView();
//清機成功,打印 //清機成功,打印
PrintTransitUtils.getInstance().setPrintView(view); PrintTransitUtils.getInstance().setPrintView(view);
PrintContent printContent = new PrintContentAdapter().adaptationPrintCleanMachineContent(mSettlementReport);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_CLEAN_MACHINE)//清機打印 .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_CLEAN_MACHINE)//清機打印
.addParam(PrintConstans.PRINT_CONTENT, printContent)//清機內容
.setActionName("printActivity") .setActionName("printActivity")
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
......
package com.joe.print.mvp.model.bean;
import lombok.Data;
/**
* @author : bin
* @create date: 2020-12-03
* @update date: 2020-12-03
* @description:
*/
@Data
public class FontStyle {
private int foodComplexion;//食品顔色 0 黑色 2 紅色
private int modifierComplexion;//細項顔色 0 黑色 2 紅色
private int foodIsBold;//食品是否加粗 0預設 1是 2否
private String foodFont;//食品字體大小 0預設
private int foodIsItalic;//食品是否斜體 0預設 1是 2否
private int modifierIsBold;//細項是否加粗 0預設 1是 2否
private String modifierFont;//細項字號 0預設
private int modifierIsItalic;//細項是否斜體 0預設 1是 2否
private int numberIsFlip;//數量大於1顔色是否翻轉 0預設 1是 2否
}
...@@ -63,13 +63,14 @@ public class PrintOtherOrder extends PrinterRoot<PrintTakeawayFormContent> { ...@@ -63,13 +63,14 @@ public class PrintOtherOrder extends PrinterRoot<PrintTakeawayFormContent> {
String stringBuilder = "<html><body>" + String stringBuilder = "<html><body>" +
getTakewayPrintContent(printTakeawayFormContent,deviceBean) + getTakewayPrintContent(printTakeawayFormContent,deviceBean) +
"</body></html>"; "</body></html>";
String[] pritContent = new String[1]; int printCount = getPrintCount(mContext);
pritContent[0] = stringBuilder; String[] pritContent = new String[printCount];
for (int i = 0; i < printCount; i++) {
pritContent[i] = stringBuilder;
}
return pritContent; return pritContent;
} }
@Override @Override
public int getPrintCount(Context context) { public int getPrintCount(Context context) {
return RestaurantExpandInfoUtils.getValue(ExpandConstant.DeliveryPrintCount,1); return RestaurantExpandInfoUtils.getValue(ExpandConstant.DeliveryPrintCount,1);
......
...@@ -65,8 +65,11 @@ public class PrintOtherOrderClosing extends PrinterRoot<PrintTakeawayCheckoutCon ...@@ -65,8 +65,11 @@ public class PrintOtherOrderClosing extends PrinterRoot<PrintTakeawayCheckoutCon
String stringBuilder = "<html><body>" + String stringBuilder = "<html><body>" +
getTakewayPrintContent(mTakeawayCheckoutContent, deviceBean) + getTakewayPrintContent(mTakeawayCheckoutContent, deviceBean) +
"</body></html>"; "</body></html>";
String[] pritContent = new String[1]; int printCount = getPrintCount(mContext);
pritContent[0] = stringBuilder; String[] pritContent = new String[printCount];
for (int i = 0; i < printCount; i++) {
pritContent[i] = stringBuilder;
}
return pritContent; return pritContent;
} }
......
...@@ -146,7 +146,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -146,7 +146,7 @@ public class PrintPrjKitchen extends PrinterRoot {
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintFirstOrder, false)) { if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintFirstOrder, false)) {
htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, getTableName(prjBean), htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, getTableName(prjBean),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_first_order), new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_first_order),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center))); new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center,HtmlContract.value_type_string)));
} }
//統計打印數 //統計打印數
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintStatisticsAmount, false)) { if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintStatisticsAmount, false)) {
...@@ -221,7 +221,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -221,7 +221,7 @@ public class PrintPrjKitchen extends PrinterRoot {
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintPage, false)) { if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintPage, false)) {
htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, prjBean.getCurrentIndex() + "/" + prjBean.getTotalPrj(), htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, prjBean.getCurrentIndex() + "/" + prjBean.getTotalPrj(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_prj_page_index), new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_prj_page_index),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center))); new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center,HtmlContract.value_type_string)));
} }
return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()])); return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()]));
} }
......
...@@ -53,8 +53,11 @@ public class PrintQRCode extends PrinterRoot<PrintQRCodeContent> { ...@@ -53,8 +53,11 @@ public class PrintQRCode extends PrinterRoot<PrintQRCodeContent> {
String stringBuilder = "<html><body>" + String stringBuilder = "<html><body>" +
getHtmlContent() + getHtmlContent() +
"</body></html>"; "</body></html>";
String[] pritContent = new String[1]; int printCount = getPrintCount(mContext);
pritContent[0] = stringBuilder; String[] pritContent = new String[printCount];
for (int i = 0; i < printCount; i++) {
pritContent[i] = stringBuilder;
}
return pritContent; return pritContent;
} }
...@@ -62,9 +65,9 @@ public class PrintQRCode extends PrinterRoot<PrintQRCodeContent> { ...@@ -62,9 +65,9 @@ public class PrintQRCode extends PrinterRoot<PrintQRCodeContent> {
List<HtmlLable> htmlLables = new ArrayList<>(); List<HtmlLable> htmlLables = new ArrayList<>();
//頭部 //頭部
htmlLables.add(new HtmlLable(HtmlContract.LABLE_H3,mQRCodeBean.getPrintTableName(), new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center))); htmlLables.add(new HtmlLable(HtmlContract.LABLE_H3,mQRCodeBean.getPrintTableName(), new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center,HtmlContract.value_type_string)));
htmlLables.add(new HtmlLable(HtmlContract.LABLE_P,mQRCodeBean.getPrintTopInfo(), htmlLables.add(new HtmlLable(HtmlContract.LABLE_P,mQRCodeBean.getPrintTopInfo(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center), new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center,HtmlContract.value_type_string),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE,"25"))); new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE,"25")));
//qrcode //qrcode
......
...@@ -5,23 +5,37 @@ import android.graphics.Bitmap; ...@@ -5,23 +5,37 @@ import android.graphics.Bitmap;
import android.view.Gravity; import android.view.Gravity;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.common.core.order.commodity.OrderDetail; import com.gingersoft.gsa.cloud.common.core.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.common.core.order.order.DoshokuOrder; import com.gingersoft.gsa.cloud.common.core.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.common.core.print.bean.PrintServingPaperContent;
import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.common.core.table.TableBean; import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.joe.print.R; import com.joe.print.R;
import com.joe.print.mvp.model.bean.HtmlLable;
import com.joe.print.mvp.print.common.HtmlContract;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.joe.print.mvp.print.common.HtmlContract.LABLE_DIV;
/** /**
* 上菜紙打印 已改新版 * 上菜紙打印 已改新版
*/ */
public class PrintServe extends PrinterRoot { public class PrintServe extends PrinterRoot<PrintServingPaperContent> {
private PrintServingPaperContent mPrintServingPaperContent;
@Override
protected void setPrintContent(PrintServingPaperContent printContent) {
this.mPrintServingPaperContent = printContent;
}
@Override @Override
public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) { public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) {
...@@ -35,6 +49,9 @@ public class PrintServe extends PrinterRoot { ...@@ -35,6 +49,9 @@ public class PrintServe extends PrinterRoot {
@Override @Override
public String[] getPrintDatas(Context mContext, PrinterDeviceBean deviceBean) { public String[] getPrintDatas(Context mContext, PrinterDeviceBean deviceBean) {
if(mPrintServingPaperContent == null){
return new String[]{"<html><body></body></html>"};
}
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList(); List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo(); TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
...@@ -48,11 +65,51 @@ public class PrintServe extends PrinterRoot { ...@@ -48,11 +65,51 @@ public class PrintServe extends PrinterRoot {
generateHtmlFoodInfoTwoColumns(foodList) + generateHtmlFoodInfoTwoColumns(foodList) +
getWholeLine() + getWholeLine() +
getHtmlFooter() + "</body></html>"; getHtmlFooter() + "</body></html>";
String[] pritContent = new String[1];
pritContent[0] = stringBuilder; int printCount = getPrintCount(mContext);
String[] pritContent = new String[printCount];
for (int i = 0; i < printCount; i++) {
pritContent[i] = stringBuilder;
}
return pritContent; return pritContent;
} }
private String getHtmlContent() {
List<HtmlLable> htmlLables = new ArrayList<>();
/**
* 頭部
*/
htmlLables.add(new HtmlLable(LABLE_DIV, mPrintServingPaperContent.getBrand(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center, HtmlContract.value_type_string),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, "28")));
htmlLables.add(new HtmlLable(LABLE_DIV, mPrintServingPaperContent.getResturantName(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center, HtmlContract.value_type_string),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, "28")));
/**
* 訂單
*/
/**
* 食品
*/
/**
* 賬單項
*/
/**
* 底部
*/
return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()]));
}
@Override @Override
public int getPrintCount(Context context) { public int getPrintCount(Context context) {
return 1; return 1;
......
...@@ -5,6 +5,8 @@ import android.graphics.Bitmap; ...@@ -5,6 +5,8 @@ import android.graphics.Bitmap;
import android.view.Gravity; import android.view.Gravity;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.common.core.print.bean.PrintSlipContent;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.joe.print.mvp.model.bean.BillingBean; import com.joe.print.mvp.model.bean.BillingBean;
import com.gingersoft.gsa.cloud.common.core.order.billItem.BillItem; import com.gingersoft.gsa.cloud.common.core.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.common.core.order.cart.ShoppingCart; import com.gingersoft.gsa.cloud.common.core.order.cart.ShoppingCart;
...@@ -16,16 +18,29 @@ import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; ...@@ -16,16 +18,29 @@ import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.common.constans.ExpandConstant; import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.joe.print.R; import com.joe.print.R;
import com.joe.print.mvp.model.bean.HtmlLable;
import com.joe.print.mvp.print.common.HtmlContract;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.joe.print.mvp.print.common.HtmlContract.LABLE_COLUMN;
import static com.joe.print.mvp.print.common.HtmlContract.LABLE_DIV;
import static com.joe.print.mvp.print.common.HtmlContract.LABLE_P;
/** /**
* 印單打印 已改新版 * 印單打印 已改新版
*/ */
public class PrintSlip extends PrinterRoot { public class PrintSlip extends PrinterRoot<PrintSlipContent> {
private PrintSlipContent mPrintSlipContent;
@Override
protected void setPrintContent(PrintSlipContent printContent) {
this.mPrintSlipContent = printContent;
}
@Override @Override
public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean deviceBean) { public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean deviceBean) {
...@@ -46,6 +61,11 @@ public class PrintSlip extends PrinterRoot { ...@@ -46,6 +61,11 @@ public class PrintSlip extends PrinterRoot {
@Override @Override
public String[] getPrintDatas(Context mContext, PrinterDeviceBean deviceBean) { public String[] getPrintDatas(Context mContext, PrinterDeviceBean deviceBean) {
if (mPrintSlipContent == null) {
return new String[]{"<html><body></body></html>"};
}
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList(); List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo(); TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
...@@ -61,11 +81,58 @@ public class PrintSlip extends PrinterRoot { ...@@ -61,11 +81,58 @@ public class PrintSlip extends PrinterRoot {
getWholeLine() + getWholeLine() +
getHtmlFooter() + "</body></html>"; getHtmlFooter() + "</body></html>";
String[] pritContent = new String[1]; int printCount = getPrintCount(mContext);
pritContent[0] = stringBuilder; String[] pritContent = new String[printCount];
for (int i = 0; i < printCount; i++) {
pritContent[i] = stringBuilder;
}
return pritContent; return pritContent;
} }
private String getHtmlContent() {
List<HtmlLable> htmlLables = new ArrayList<>();
/**
* 頭部
*/
htmlLables.add(new HtmlLable(LABLE_DIV, mPrintSlipContent.getBrand(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center, HtmlContract.value_type_string),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, "28")));
htmlLables.add(new HtmlLable(LABLE_DIV, mPrintSlipContent.getResturantName(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center, HtmlContract.value_type_string),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, "28")));
/**
* 訂單
*/
String orderNum = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(DoshokuOrder.getInstance().getOrderNo())) {
orderNum = "單號:" + DoshokuOrder.getInstance().getOrderNo();
}
htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, "餐檯:" + mPrintSlipContent.getTableName())}, 24));
htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, "人數:" + mPrintSlipContent.getPerson())}, 24));
htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, orderNum)}, 24));
htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, "日期:" + TimeUtils.parseTimeRepeat(mPrintSlipContent.getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT))}, 24));
htmlLables.add(new HtmlLable(LABLE_P, HtmlContract.dividing_line));
/**
* 食品
*/
/**
* 賬單項
*/
/**
* 底部
*/
return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()]));
}
private String getPLable(String content) { private String getPLable(String content) {
return "<p>" + content + "</p>"; return "<p>" + content + "</p>";
} }
...@@ -95,7 +162,7 @@ public class PrintSlip extends PrinterRoot { ...@@ -95,7 +162,7 @@ public class PrintSlip extends PrinterRoot {
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
//訂單信息 //訂單信息
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + tableBean.getTableName(), "人數:" + doshokuOrder.getOpenTableInfo().getPerson(), "單號:" +doshokuOrder.getOrderNo(), "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT))); layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + tableBean.getTableName(), "人數:" + doshokuOrder.getOpenTableInfo().getPerson(), "單號:" + doshokuOrder.getOrderNo(), "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
layout.addView(getDiningFoodList(mContext, foodList, printerDeviceBean, 0, true)); layout.addView(getDiningFoodList(mContext, foodList, printerDeviceBean, 0, true));
......
...@@ -23,11 +23,13 @@ public class HtmlContract { ...@@ -23,11 +23,13 @@ public class HtmlContract {
public static final String ATTRIBUTES_ALIGN = "align"; public static final String ATTRIBUTES_ALIGN = "align";
public static final String ATTRIBUTES_BOLD = "bold"; public static final String ATTRIBUTES_BOLD = "bold";
public static final String ATTRIBUTES_SCALE = "scale"; public static final String ATTRIBUTES_SCALE = "scale";
public static final String ATTRIBUTES_FONT_SIZE = "font-size"; public static final String ATTRIBUTES_FONT_SIZE = "size";
public static final String value_offset_last = "last"; public static final String value_offset_last = "last";
public static final String value_offset_percentage70 = "0.7"; public static final String value_offset_percentage70 = "0.7";
public static final String value_offset_percentage60 = "0.6"; public static final String value_offset_percentage60 = "0.6";
public static final String value_offset_percentage65 = "0.65";
public static final String value_offset_percentage50 = "0.5"; public static final String value_offset_percentage50 = "0.5";
public static final String value_offset_percentage40 = "0.4"; public static final String value_offset_percentage40 = "0.4";
public static final String value_offset_percentage30 = "0.3"; public static final String value_offset_percentage30 = "0.3";
...@@ -36,15 +38,14 @@ public class HtmlContract { ...@@ -36,15 +38,14 @@ public class HtmlContract {
public static final String value_offset_percentage_foodNum = "0.6"; public static final String value_offset_percentage_foodNum = "0.6";
public static final String value_bold_1 = "1";
public static final String value_scale_1 = "2"; public static final String value_scale_1 = "2";
public static final String value_align_center = "center"; public static final String value_align_center = "center";
public static final String value_align_right = "right"; public static final String value_align_right = "right";
public static final byte value_type_default = 0; public static final byte value_type_default = 0;
public static final byte value_type_string = 1; public static final byte value_type_string = 1;
public static final String dividing_line="-----------------------------------------------------------------"; public static final String dividing_line="-----------------------------------------------------------------";
public static final String dividing_line_half="---------------------------------"; public static final String dividing_line_half="------------------";
} }
...@@ -138,7 +138,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -138,7 +138,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
public TablePresenter(TableContract.Model model, TableContract.View rootView) { public TablePresenter(TableContract.Model model, TableContract.View rootView) {
super(model, rootView); super(model, rootView);
this.IActivity = (TableActivity) rootView; this.IActivity = (TableActivity) rootView;
XFunctionManager.newInstance().inJect(this, FunctionTable.class); XFunctionManager.inJect(this, FunctionTable.class);
startTablePolling(); startTablePolling();
} }
......
...@@ -344,7 +344,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -344,7 +344,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
DoshokuOrder.getInstance().setOpenTableInfo(tableBean); DoshokuOrder.getInstance().setOpenTableInfo(tableBean);
btn_send_order.setText("送單信息"); btn_send_order.setText("送單信息");
} else { } else {
if (DoshokuOrder.getInstance().getOpenTableInfo().getPerson() == 0) { boolean openTableAutoShowKeyboard = GsaCloudApplication.functionConfiguration.getOpenTableAutoShowKeyboardVaule();
if (openTableAutoShowKeyboard && DoshokuOrder.getInstance().getOpenTableInfo().getPerson() == 0) {
showChoosePeopleNumDialog(false); showChoosePeopleNumDialog(false);
} }
} }
......
...@@ -9,7 +9,9 @@ import android.text.TextUtils; ...@@ -9,7 +9,9 @@ import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.core.user.UserContext; import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo; import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
import com.gingersoft.gsa.cloud.common.core.pay.PayMethod; import com.gingersoft.gsa.cloud.common.core.pay.PayMethod;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment