Commit ce9758c9 by Wyh

1、外送歷史訂單、新訂單權限控制 2、新訂單功能完善

Signed-off-by: Wyh <1239658231>
parent 5f1d9219
......@@ -22,7 +22,6 @@ public class FunctionManagerConstants {
//開錢箱
public static final String TAKEAWAY_OPEN_CASH_BOX = "takeaway/btn/openCashBox";
/** 外送/自取- 訂單詳情管理 */
public static final FModule[] orderDetails = {
new FModule(CONFIRM_BTN_KEY, 0, 0),
......
package com.gingersoft.gsa.delivery_pick_mode.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.bean.RiceponAddOrderBean;
import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.UpdateOrderStatusBean;
import com.gingersoft.gsa.delivery_pick_mode.mvp.model.MemberAddressInfoBean;
import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView;
......@@ -37,5 +39,9 @@ public interface SendOrderContract {
Observable<RiceponAddOrderBean> submitOrder(RequestBody requestBody);
Observable<MemberAddressInfoBean> getMemberAddressInfo(String phone);
Observable<UpdateOrderStatusBean> gsUpdateOrderStatus(RequestBody requestBody);
Observable<BaseResult> addPrj(RequestBody requestBody);
}
}
......@@ -2,7 +2,9 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.bean.RiceponAddOrderBean;
import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.UpdateOrderStatusBean;
import com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract;
import com.gingersoft.gsa.delivery_pick_mode.mvp.server.SendOrderServer;
import com.google.gson.Gson;
......@@ -64,4 +66,14 @@ public class SendOrderModel extends BaseModel implements SendOrderContract.Model
public Observable<MemberAddressInfoBean> getMemberAddressInfo(String phone) {
return mRepositoryManager.obtainRetrofitService(SendOrderServer.class).getMemberAddressInfo(phone);
}
@Override
public Observable<UpdateOrderStatusBean> gsUpdateOrderStatus(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(SendOrderServer.class).gsUpdateOrderStatus(requestBody);
}
@Override
public Observable<BaseResult> addPrj(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(SendOrderServer.class).addPrj(requestBody);
}
}
\ No newline at end of file
package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter;
import android.app.Activity;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.bean.RiceponAddOrderBean;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.UpdateOrderStatusBean;
import com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract;
import com.gingersoft.gsa.delivery_pick_mode.mvp.model.MemberAddressInfoBean;
import com.jess.arms.di.scope.ActivityScope;
......@@ -116,19 +119,104 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
@Override
public void onNext(@NonNull RiceponAddOrderBean info) {
if (info.getCode().equals("1")) {
mRootView.killMyself();
gsUpdateOrderStatus(info.getOrderId() + "");
} else if (TextUtil.isNotEmptyOrNullOrUndefined(info.getErrorMsg())) {
mRootView.showMessage(info.getErrorMsg());
} else {
mRootView.showMessage("創建訂單失敗");
}
}
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.showMessage("創建訂單失敗" + t.getMessage());
}
});
}
private void gsUpdateOrderStatus(String orderId) {
RequestBody requestBody = new FormBody.Builder()
.add("orderId", orderId)
.add("status", "2")
.add("orderType", "2")//訂單類型#1:餐廳訂單;2:線上外賣訂單3:扫码点餐;4固定二维码订单;5:预点餐;6:積分訂單;7:自取订单'
.add("type", "2")//通知類型:1.未定,2:外賣
.add("confirmationType", "1")//接單類型,1 手動接單 2,自動接單
.add("orderFrom", "2")//订单来源#1:ios;2:安卓;3:gspos;4:web;5:第三方POS A;6:第三方POS B;
.build();
mModel.gsUpdateOrderStatus(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("確認訂單中..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> {})
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<UpdateOrderStatusBean>(mErrorHandler) {
@Override
public void onNext(@NonNull UpdateOrderStatusBean info) {
//添加PRJ
addPrj(orderId);
}
@Override
public void onError(Throwable t) {
super.onError(t);
kill();
mRootView.showMessage("修改訂單狀態失敗" + t.getMessage());
}
});
}
public void addPrj(String orderId) {
StringBuilder ids = new StringBuilder();
for (OrderDetails.DataBean.PRODUCTNAMEBean productnameBean : productnameBeans) {
if (productnameBean.getChild() != null) {
for (OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX childBeanX : productnameBean.getChild()) {
if (childBeanX != null) {
for (OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX.ChildBean childBean : childBeanX.getChild()) {
ids.append(childBean.getOdsId());
ids.append(",");
}
}
ids.append(childBeanX.getOdsId());
ids.append(",");
}
}
ids.append(productnameBean.getOdsId());
ids.append(",");
}
RequestBody requestBody = new FormBody.Builder()
.add("orderId", orderId)
.add("restaurantId", GsaCloudApplication.getRestaurantId() + "")
.add("orderDetailsIds", ids.toString())
.build();
mModel.addPrj(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("添加廚房打印數據..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> {})
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(BaseResult s) {
kill();
}
});
}
private void kill() {
List<Activity> activities = mAppManager.getActivityList();
for (Activity activity : activities) {
Class<? extends Activity> aClass = activity.getClass();
if (aClass.getName().equals("com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity") || aClass.getName().equals("com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity")) {
activity.finish();
}
}
MyOrderManage.getInstance().clear();
mRootView.killMyself();
}
/**
* 订单提交
*/
......@@ -138,11 +226,12 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
try {
json.put("shopId", GsaCloudApplication.getRestaurantId());
json.put("phone", phone);
json.put("appointmentType", 0);
json.put("transportationType", "0");//0 本店配送 ,是,1,Zeek,2,Lalamove
json.put("memberId", GsaCloudApplication.getMemberId());
json.put("addressDetail", address);
json.put("orderRemark", "");
json.put("payType", 5);
json.put("payType", 1);
//原价
json.put("originalAmount", MyOrderManage.getInstance().getWholeAmount());
json.put("orderType", 2);//訂單類型#1:餐廳訂單;2:線上外賣訂單3:扫码点餐;4固定二维码订单;5:预点餐;6:積分訂單;7:自取订单
......@@ -155,6 +244,8 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
JSONArray foodArray = new JSONArray();
for (OrderDetails.DataBean.PRODUCTNAMEBean productnameBean : productnameBeans) {
JSONObject food = getFoodJson(productnameBean);
JSONArray itemArray = new JSONArray();
if (productnameBean.getChild() != null) {
JSONArray secondJsonArray = new JSONArray();
for (OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX childBeanX : productnameBean.getChild()) {
......@@ -167,7 +258,8 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
secondJsonObj.put("itemDetail", thirdJsonArray);
}
secondJsonArray.put(secondJsonObj);
food.put("itemDetail", secondJsonArray);
itemArray.put(secondJsonArray);
food.put("itemDetail", itemArray);
}
}
foodArray.put(food);
......
package com.gingersoft.gsa.delivery_pick_mode.mvp.server;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.bean.RiceponAddOrderBean;
import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.UpdateOrderStatusBean;
import com.gingersoft.gsa.delivery_pick_mode.mvp.model.MemberAddressInfoBean;
import java.util.Map;
......@@ -29,4 +31,10 @@ public interface SendOrderServer {
@GET("member/getMemberAddressInfo" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<MemberAddressInfoBean> getMemberAddressInfo(@Query("phone") String phone);
@Headers({"Domain-Name: member-web"})
@POST("order/updateOrderStatus" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<UpdateOrderStatusBean> gsUpdateOrderStatus(@Body RequestBody requestBody);
@POST("printerRecording/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addPrj(@Body RequestBody requestBody);
}
......@@ -141,9 +141,9 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
if (i + 1 < orderDetails.size() && orderDetails.get(i + 1).getItemType() != 1
&& orderDetails.get(i + 1).getParentId() == orderDetail.getProductId()) {
List<OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX> childBeanXList = new ArrayList<>();
OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX childBeanX = new OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX();
//如果下一個食品的父級id是當前食品的id
for (int j = i + 1; j < orderDetails.size(); j++) {
OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX childBeanX = new OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX();
OrderDetail secondOrderDetail = orderDetails.get(j);
if (secondOrderDetail.getParentId() == foodId) {
long secondFoodId = secondOrderDetail.getProductId();
......@@ -213,6 +213,9 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
productnameBean.setPRODUCT_NAME(orderDetail.getProductName());
productnameBean.setNum(orderDetail.getNumber() + "");
productnameBean.setPRICE(orderDetail.getPrice() + "");
productnameBean.setOdsId(orderDetail.getProductId() + "");
productnameBean.setPid(orderDetail.getParentId() + "");
productnameBean.setLunchboxPrice(orderDetail.getLunchboxPrice());
return productnameBean;
}
......@@ -290,6 +293,9 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
if (TextUtil.isNotEmptyOrNullOrUndefined(edSendOrderName)) {
if (TextUtil.isNotEmptyOrNullOrUndefined(edSendOrderPhone)) {
if (TextUtil.isNotEmptyOrNullOrUndefined(edSendOrderAddress)) {
if (deliveryTimes.contains(sendTime)) {
sendTime = TimeUtils.getCurrentDate(TimeUtils.DEFAULT_DATE_FORMAT_YMDHM);
}
mPresenter.submitOrder(edSendOrderName.getText().toString(),
edSendOrderPhone.getText().toString(),
edSendOrderAddress.getText().toString(), sendTime);
......
......@@ -15,6 +15,7 @@ import android.view.View
import android.widget.TextView
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.ContextCompat
import androidx.core.view.isGone
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
......@@ -41,6 +42,7 @@ import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.SectionsPagerAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.base.BaseActivity
import com.gingersoft.gsa.delivery_pick_mode.util.InjectorUtil
import com.gingersoft.gsa.delivery_pick_mode.util.getmColor
import com.gingersoft.gsa.delivery_pick_mode.util.setState
import com.jess.arms.mvp.IPresenter
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView
......@@ -50,7 +52,7 @@ import com.qmuiteam.qmui.widget.popup.QMUIPopups
import kotlinx.android.synthetic.main.activity_other_order.*
class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListener{
class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListener {
private val pageViewModel by lazy { ViewModelProvider(this, InjectorUtil.getWeatherModelFactory())[PageViewModel::class.java] }
private val instance by lazy { this }
......@@ -525,31 +527,20 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
.offsetYIfTop(0)
.animStyle(QMUIPopup.ANIM_AUTO)
.show(it)
val deliverySetting = view.findViewById<QMUIAlphaTextView>(R.id.tv_delivery_setting)
deliverySetting.setOnClickListener(this)
view.findViewById<QMUIAlphaTextView>(R.id.tv_history_order).setOnClickListener {
//歷史訂單
startActivity(Intent(this, HistoryOrderActivity::class.java))
pop!!.dismiss()
}
view.findViewById<QMUIAlphaTextView>(R.id.tv_open_cash_box).setOnClickListener {
//開錢箱
pageViewModel.openCashBox()
pop!!.dismiss()
}
view.findViewById<QMUIAlphaTextView>(R.id.tv_check_log).setOnClickListener {
//查看日誌
startActivity(Intent(this, LogActivity::class.java))
pop!!.dismiss()
}
view.findViewById<QMUIAlphaTextView>(R.id.tv_new_order).setOnClickListener {
MyOrderManage.getInstance().orderType = MyOrderManage.order_type_1
CC.obtainBuilder("Component.Table")
.setActionName("showMealStandActivity")
.build()
.call()
pop!!.dismiss()
}
view.findViewById<QMUIAlphaTextView>(R.id.tv_delivery_setting).setOnClickListener(this)
val mTvHistoryOrder = view.findViewById<QMUIAlphaTextView>(R.id.tv_history_order)
mTvHistoryOrder.setState(historyOrderFunction != null)
mTvHistoryOrder.setOnClickListener(this)
val mTvOpenCashBox = view.findViewById<QMUIAlphaTextView>(R.id.tv_open_cash_box);
mTvOpenCashBox.setOnClickListener(this)
mTvOpenCashBox.setState(openCashBoxFunction != null)
view.findViewById<QMUIAlphaTextView>(R.id.tv_check_log).setOnClickListener(this)
val tvNewOrder = view.findViewById<QMUIAlphaTextView>(R.id.tv_new_order);
tvNewOrder.setState(newOrderFunction != null)
tvNewOrder.setOnClickListener(this)
} else {
pop!!.show(it)
}
......@@ -580,12 +571,36 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
override fun onClick(v: View?) {
v?.let {
when(v.id){
R.id.tv_delivery_setting ->{
when (v.id) {
R.id.tv_delivery_setting -> {
//備送設置
startActivity(Intent(this, DeliverySettingActivity::class.java))
pop!!.dismiss()
}
R.id.tv_history_order -> {
//歷史訂單
startActivity(Intent(this, HistoryOrderActivity::class.java))
pop!!.dismiss()
}
R.id.tv_open_cash_box -> {
//開錢箱
pageViewModel.openCashBox()
pop!!.dismiss()
}
R.id.tv_check_log -> {
//查看日誌
startActivity(Intent(this, LogActivity::class.java))
pop!!.dismiss()
}
R.id.tv_new_order -> {
//新訂單
MyOrderManage.getInstance().orderType = MyOrderManage.order_type_1
CC.obtainBuilder("Component.Table")
.setActionName("showMealStandActivity")
.build()
.call()
pop!!.dismiss()
}
}
}
}
......
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