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