From a3bc6aa4fa3bad787c9fc366d6904f60265eec3b Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期三, 04 九月 2024 15:44:14 +0800 Subject: [PATCH] 登录、用户取餐 --- app/src/main/java/com/lotaai/canguiayw/TakeActivity.java | 235 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 187 insertions(+), 48 deletions(-) diff --git a/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java b/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java index 8dfae03..9d1c59d 100644 --- a/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java +++ b/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java @@ -2,39 +2,44 @@ import android.content.Context; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import android.os.Message; import android.text.Editable; import android.text.InputType; import android.view.View; import android.widget.Button; import android.widget.EditText; -import android.widget.Toast; + +import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import com.alibaba.fastjson.JSONObject; import com.blankj.utilcode.util.CacheDiskUtils; -import com.blankj.utilcode.util.DeviceUtils; +import com.blankj.utilcode.util.GsonUtils; import com.blankj.utilcode.util.LogUtils; import com.lotaai.canguiayw.common.HttpLoggerInterceptor; import com.lotaai.canguiayw.common.HttpUrlDefine; import com.lotaai.canguiayw.common.SettingConfig; +import com.lotaai.canguiayw.data.BaseDto; +import com.lotaai.canguiayw.data.BoxInfoDto; import com.lotaai.canguiayw.device.CanGuiCommand; import com.lotaai.canguiayw.device.DeviceMessage; import com.lotaai.canguiayw.device.DeviceType; import com.lotaai.canguiayw.device.MessageType; -import com.lotaai.canguiayw.mqtt.DeviceAction; -import com.lotaai.canguiayw.sqllitedb.Order; -import com.lotaai.canguiayw.sqllitedb.SqlliteDbManage; +import com.lotaai.canguiayw.device.service.CanGuiService; +import com.lotaai.canguiayw.view.AdBannerAdapter; +import com.lotaai.canguiayw.view.TipDialog; import com.pranavpandey.android.dynamic.toasts.DynamicToast; +import com.youth.banner.Banner; +import com.youth.banner.indicator.CircleIndicator; import org.greenrobot.eventbus.EventBus; import java.io.IOException; +import java.util.ArrayList; import java.util.concurrent.TimeUnit; -import java.util.logging.Logger; import okhttp3.Call; import okhttp3.Callback; @@ -47,12 +52,32 @@ public class TakeActivity extends AppCompatActivity { private Context context; private EditText editText; + private Banner banner; + private ArrayList<String> imgs = new ArrayList<String>(); + private AdBannerAdapter adapter; + private Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_take); + + + handler = new Handler(Looper.getMainLooper()){ + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + if (msg.what == 0){ + adver(); + } + } + }; + context = TakeActivity.this; + + Intent startIntent = new Intent(context, CanGuiService.class); + startService(startIntent); + editText = (EditText)findViewById(R.id.edt_borrow_case_number); editText.setInputType(InputType.TYPE_NULL); // 屏蔽软键盘 DynamicToast.Config.getInstance().setTextSize(30).apply(); @@ -60,6 +85,7 @@ View.OnClickListener clickListener = new View.OnClickListener() { @Override public void onClick(View v) { + int index = editText.getSelectionEnd(); Editable editable = editText.getText(); int key = v.getId(); @@ -71,24 +97,26 @@ // 调用后台 String gridNo = editable.toString(); if (null == gridNo || "".equals(gridNo.trim())) { - DynamicToast.makeError(context, "取餐码不能为空。", 3).show(); + showResult("Please enter pickup code."); return; } else { if (gridNo.length() !=6) { editText.setText(""); - DynamicToast.makeError(context, "取餐码输入错误,请重试。", 3).show(); + showResult("The pickup code input is incorrect,\nplease try again."); return; } //调用判断是否可以取餐 editText.setText(""); takeCheckCode(gridNo); } + } else { Button button = (Button) v; editable.insert(index, button.getText()); } } }; + banner = findViewById(R.id.banner); View view1 = findViewById(R.id.borrow_bt1); View view2 = findViewById(R.id.borrow_bt2); View view3 = findViewById(R.id.borrow_bt3); @@ -113,14 +141,12 @@ view0.setOnClickListener(clickListener); view11.setOnClickListener(clickListener); view12.setOnClickListener(clickListener); + adapter = new AdBannerAdapter(this,imgs); + banner.setAdapter(adapter); + banner.setIndicator(new CircleIndicator(this)); + handler.sendEmptyMessage(0); } - public void backMian(View view){ - DeviceMessage message = new DeviceMessage(); - message.setMessageType(MessageType.FANHUI.ordinal()); - EventBus.getDefault().post(message); - finish(); - } public void takeCheckCode(String code) { HttpLoggerInterceptor loggingInterceptor = new HttpLoggerInterceptor(true); @@ -131,52 +157,165 @@ .addInterceptor(loggingInterceptor)//添加日志拦截器 .build(); - LogUtils.i(CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code),code); + LogUtils.i(CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code), code); RequestBody body = new FormBody.Builder() - .add("equipmentCode", CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code)) - .add("takeCode", code).build(); + .build(); + final Request request = new Request.Builder() - .url(HttpUrlDefine.equipmentTakeOut) - .addHeader("language", "zh-CN") + .url(HttpUrlDefine.pickOrder+"?pickNum="+code) + /* .addHeader("language", "zh-CN")*/ .post(body) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { - DynamicToast.makeError(context, "取餐失败!", 3).show(); + runOnUiThread(new Runnable() { + @Override + public void run() { + DynamicToast.makeError(context, "请求失败!", 3).show(); + } + }); + } @Override public void onResponse(Call call, Response response) throws IOException { String result = response.body().string(); - LogUtils.i("获取到的数据:"+result); + + LogUtils.i("获取到的数据:" + result); + final BoxInfoDto baseDto = GsonUtils.fromJson(result, BoxInfoDto.class); + runOnUiThread(new Runnable() { + @Override + public void run() { + if (baseDto.getCode()==200) { + byte[] command = CanGuiCommand.getInstance().controlGridCommand(baseDto.getData().getBoxNum(), + baseDto.getData().getCartNum(), 1, 255, 0, 0, 0, 0); + DeviceMessage message = new DeviceMessage(); + message.setMessageType(MessageType.SENDMESSAGE.ordinal()); + message.setDeviceType(DeviceType.CANGUI.ordinal()); + message.setMessageByte(command); + EventBus.getDefault().post(message); + showResult("Door opened succcessfully! \n" + + "Please pickup your meal."); + }else{ + showResult(baseDto.getMsg()); + } + } + }); + } + }); + } + + public void showResult(String msg){ + TipDialog tipDialog = new TipDialog(); + Bundle bundle = new Bundle(); + bundle.putString("msg",msg); + tipDialog.setArguments(bundle); + tipDialog.show(getSupportFragmentManager(),"res"); + } + + + public void pickOrder(String code) { + HttpLoggerInterceptor loggingInterceptor = new HttpLoggerInterceptor(true); + OkHttpClient client = new OkHttpClient.Builder() + .connectTimeout(20, TimeUnit.SECONDS)//响应时间,读取时间 + .readTimeout(20, TimeUnit.SECONDS) + .callTimeout(20, TimeUnit.SECONDS) + .addInterceptor(loggingInterceptor)//添加日志拦截器 + .build(); + + LogUtils.i(CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code), code); + RequestBody body = new FormBody.Builder() + .build(); + + final Request request = new Request.Builder() + .url(HttpUrlDefine.pickOrder+"?pickNum="+code) + /* .addHeader("language", "zh-CN")*/ + .post(body) + .build(); + client.newCall(request).enqueue(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + runOnUiThread(new Runnable() { + @Override + public void run() { + DynamicToast.makeError(context, "请求失败!", 3).show(); + } + }); + + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + String result = response.body().string(); + LogUtils.i("获取到的数据:" + result); + final BaseDto baseDto = GsonUtils.fromJson(result, BaseDto.class); + runOnUiThread(new Runnable() { + @Override + public void run() { + if (baseDto.isData()) { + DynamicToast.makeSuccess(context, "验证成功!", 3).show(); + }else{ + DynamicToast.makeError(context, "验证失败!", 3).show(); + } + } + }); + + + } + }); + } + + + public void adver() { + HttpLoggerInterceptor loggingInterceptor = new HttpLoggerInterceptor(true); + OkHttpClient client = new OkHttpClient.Builder() + .connectTimeout(20, TimeUnit.SECONDS)//响应时间,读取时间 + .readTimeout(20, TimeUnit.SECONDS) + .callTimeout(20, TimeUnit.SECONDS) + .addInterceptor(loggingInterceptor)//添加日志拦截器 + .build(); + + String code = CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code); + RequestBody body = new FormBody.Builder() + .build(); + final Request request = new Request.Builder() + .url(HttpUrlDefine.adver+"?sn="+code) + /* .addHeader("language", "zh-CN")*/ + .post(body) + .build(); + client.newCall(request).enqueue(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + runOnUiThread(new Runnable() { + @Override + public void run() { + } + }); + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + String result = response.body().string(); + LogUtils.i("获取到的数据:" + result); JSONObject obj = JSONObject.parseObject(result); - if ("0".equals(obj.getString("code"))) { - String g = obj.getString("data"); - //发送mqtt 进行开门 - JSONObject json = new JSONObject(); - json.put("action", DeviceAction.CONTROLDEVICE.name()); - json.put(DeviceAction.doorIsOpen.name(), "1"); - json.put(DeviceAction.xiaoDuIsOpen.name(), "0"); - json.put(DeviceAction.jiareIsOpen.name(), "0"); - json.put(DeviceAction.dengGuangIsOpen.name(), "0"); - json.put("gridNo", g); - json.put("qucan","1"); - DeviceMessage deviceMessage = new DeviceMessage(); - deviceMessage.setMessageType(MessageType.MQTT.ordinal()); - deviceMessage.setMsgString(json.toJSONString()); - EventBus.getDefault().post(deviceMessage); - String string = obj.getString("msg"); - Message msg = new Message(); - msg.what = 1; - msg.obj = "取餐格口:" + g; - showHandler.sendMessage(msg); - } else { - String string = obj.getString("msg"); - Message msg = new Message(); - msg.what = 0; - msg.obj = "取餐失败:" + string; - showHandler.sendMessage(msg); + if ("200".equals(obj.getString("code"))) { + String imgs = obj.getString("data"); + TakeActivity.this.imgs.clear(); + String[] split = imgs.split(","); + for (int i = 0;i< split.length;i++){ + if (!split[i].isEmpty()){ + TakeActivity.this.imgs.add(split[i]); + } + } + runOnUiThread(new Runnable() { + @Override + public void run() { + adapter.notifyDataSetChanged(); + banner.setCurrentItem(1); + } + }); + handler.sendEmptyMessageDelayed(0,60000); } } }); -- Gitblit v1.7.1