文接”oto餐饮app实时订单追踪系统架构设计”一文。
用户生成一个外卖订单后,可以以发短信的方式告知店家有一个订单,但是短信方式的缺点是非常明显的,如果想让用户和网站知道店家接受订单和其他的操作就需要网站人工干预,这在智能手机没有出来之前,那些外卖网站这样运营是可以理解的,但是智能手机都出来这么多年了,现在的有些外卖网站还是这么运营我是难以理解。上次我用“饿了么”下一个外卖订单,订单下了后,饿了么客服立马打电话过来确认订单,我不知道是否确认后他们客服再打电话给店家通知订单。我对这样的体验也是非常不满意的,不满意这样的流程而不是服务。
有点扯远了。
5.2.1 用户app提交订单业务逻辑层:
order.setHowmuch(total);
order.setMenu(menuList);
order.setOrderType(0x001); //代表的是外卖订单
order.setPayType(0x002); //支付宝网上支付
order.setUser_id(1/*Integer.parseInt(mApplication.getmUser().getId())*/);
//把订单发送出去
OrderServer orderServer = new OrderServer();
orderServer.dealOrder(order,new AsyncHttpResponseHandler(){
@Override
public void onSuccess(String response) {
if(!response.equals("0"))
{
Log.i("TakeawayCommitActivity","提交订单成功 " + response);
startActivity(new Intent(TakeawayCommitActivity.this,PaySuccessActivity.class));
finish();
}
}
@Override
public void onFailure(Throwable error, String content) {
}
});
网络通信层
package com.cmyy.httpServer;
import com.cmyy.model.Order;
import com.cmyy.util.HttpUtil;
import com.google.gson.Gson;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import com.loopj.android.http.ResponseHandlerInterface;
//订单表操作
public class OrderServer {
//生成订单
public void dealOrder(Order order,AsyncHttpResponseHandler responseHandler)
{
Gson gSon = new Gson();
String json = gSon.toJson(order);
String postUrl=HttpUtil.ORDER_ACTION;
AsyncHttpClient orderRequest = new AsyncHttpClient();
//orderRequest.post(postUrl,responseHandler);
RequestParams prarms = new RequestParams();
prarms.put(“req”, json);
orderRequest.post(postUrl, prarms, responseHandler);
}
}
通信协议模型
订单
package com.cmyy.model;
import java.util.ArrayList;
//订单列表
public class Order {
private double howmuch; //消费金额
private ArrayList<CommitMenu> menu; //消费的菜品
private Bussiness bussiness;//商家
private String checkCode; //验证码
private int orderType; //订单类型 订单分为3中类型:1.外卖 2.预订 3.团定
private int payType; //付款类型 付款类型分为:1.支付宝 2.网银 3.饭到付款
private int user_id; //用户id