From f4a6d4f0996238f9c85e4986deffe69a1c8256e6 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期三, 04 九月 2024 20:47:58 +0800 Subject: [PATCH] 员工流程 --- app/src/main/java/com/lotaai/canguiayw/TakeActivity.java | 214 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 202 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java b/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java index cda6985..c69f33a 100644 --- a/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java +++ b/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java @@ -2,36 +2,90 @@ 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.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.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 okhttp3.Call; +import okhttp3.Callback; +import okhttp3.FormBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; 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(); // 软键盘设置统一按钮监听方法,数字键直接将text内容填充到edittext中,删除和确认才设置事件 View.OnClickListener clickListener = new View.OnClickListener() { @Override public void onClick(View v) { + int index = editText.getSelectionEnd(); Editable editable = editText.getText(); int key = v.getId(); @@ -43,20 +97,26 @@ // 调用后台 String gridNo = editable.toString(); if (null == gridNo || "".equals(gridNo.trim())) { - Toast.makeText(context, "取餐码不能为空。", Toast.LENGTH_SHORT).show(); + showResult("Please enter pickup code.",false); return; } else { - if (gridNo.length() > 5) { - Toast.makeText(context, "取餐码输入错误,请重试。", Toast.LENGTH_SHORT).show(); - return; - } +// if (gridNo.length() !=6) { +// editText.setText(""); +// 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); @@ -81,14 +141,144 @@ 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); + OkHttpClient client = new OkHttpClient.Builder() + .connectTimeout(20, TimeUnit.SECONDS)//响应时间,读取时间 + .readTimeout(20, TimeUnit.SECONDS) + .callTimeout(20, TimeUnit.SECONDS) + .addInterceptor(loggingInterceptor)//添加日志拦截器 + .build(); + String sn = CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code); + RequestBody body = new FormBody.Builder() + .build(); + final Request request = new Request.Builder() + .url(HttpUrlDefine.pickOrder+"?pickNum="+code+"&sn="+sn) + /* .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 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.",true); + }else{ + showResult(baseDto.getMsg(),false); + } + } + }); + } + }); } + public void showResult(String msg,boolean isCountdown){ + TipDialog tipDialog = new TipDialog(); + Bundle bundle = new Bundle(); + bundle.putString("msg",msg); + bundle.putBoolean("isCountdown",isCountdown); + tipDialog.setArguments(bundle); + tipDialog.show(getSupportFragmentManager(),"res"); + } + + + 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 ("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); + } + } + }); + } + + private Handler showHandler = new Handler() { + @Override + public void handleMessage(Message msg) { + if (msg.what == 0) { + DynamicToast.makeError(context, msg.obj.toString(), 3).show(); + } else if (msg.what == 1) { + DynamicToast.makeSuccess(context, msg.obj.toString(), 3).show(); + } else { + DynamicToast.makeWarning(context, msg.obj.toString(), 3).show(); + } + } + }; } -- Gitblit v1.7.1