ADD file via upload

main
puem2gl9z 1 year ago
parent 1ce070d983
commit 05e0f5712c

@ -0,0 +1,378 @@
package com.example.drink_order_system;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.app.Fragment;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.gson.Gson;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class ShopFragment extends Fragment {
private RecyclerView bill_listView;
private LinearLayoutManager llM;
private LayoutInflater layoutInflater;
private Context mContext;
private TextView TV_cost;
private EditText ET_people;
private EditText ET_table;
private CheckBox CB_takeAway;
private ImageButton BT_delete;
private Button BT_buy;
private int drinkCost;
private float serviceCost;
private AlertDialog buyDialog = null;
private AlertDialog.Builder builder = null;
private View view_buy;
private View view;
private String userName;
private String restaurantName;
private static ArrayList<Ordered_drinks> ordered_array = new ArrayList<>();
public ShopFragment() {
// Required empty public constructor
}
public static ShopFragment newInstance(String userName,String restaurantName) {
ShopFragment myFragment = new ShopFragment();
Bundle args = new Bundle();
args.putString("userName", userName);
args.putString("restaurantName", restaurantName);
myFragment.setArguments(args);
return myFragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
userName = getArguments().getString("userName");
restaurantName = getArguments().getString("restaurantName");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ordered_array=get_ordered_array(Ordered_drinks.getOrdered_array(),restaurantName);
mContext = getActivity();
layoutInflater = inflater;
view = inflater.inflate(R.layout.fragment_shop, container, false);
bill_listView = (RecyclerView) view.findViewById(R.id.RV_bill);
llM = new LinearLayoutManager(this.getActivity());
bill_listView.setLayoutManager(llM);
OrderAdapter orderAdapter = new OrderAdapter(inflater, ordered_array);
orderAdapter.buttonSetOnClick((new OrderAdapter.MyClickListener() {
@Override
public void onAddClick(View v, int position) {
Ordered_drinks.addDrink(position);
ordered_array=get_ordered_array(Ordered_drinks.getOrdered_array(),restaurantName);
refresh();
}
public void onSubClick(View v, int position){
Ordered_drinks.subtractDrink(position);
ordered_array=get_ordered_array(Ordered_drinks.getOrdered_array(),restaurantName);
refresh();
}
}));
bill_listView.setAdapter(orderAdapter);
TV_cost = view.findViewById(R.id.textView_cost);
ET_people = view.findViewById(R.id.editText_people);
ET_table = view.findViewById(R.id.editText_table);
CB_takeAway = view.findViewById(R.id.checkBox);
BT_delete = view.findViewById(R.id.button_delete);
BT_buy = view.findViewById(R.id.button_buy);
drinkCost = getDrinkCost();
serviceCost = 0.2f;
if(!ET_people.getText().equals(""))
{
serviceCost = 0.2f*Integer.parseInt((String.valueOf(ET_people.getText())));
}
TV_cost.setText(String.format("饮料费:¥ %d \n服务费¥ %.1f", drinkCost, serviceCost));
ET_people.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(s.toString().equals(""))
{
s.append("1");
}
if(s.toString().equals("0"))
{
s.replace(0, 1, "1");
}
serviceCost = 0.2f;
if(!ET_people.getText().equals(""))
{
serviceCost = 0.2f*Integer.parseInt((String.valueOf(ET_people.getText())));
}
TV_cost.setText(String.format("饮料费:¥ %d \n服务费¥ %.1f", drinkCost, serviceCost));
}
});
ET_people.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(s.toString().equals(""))
{
s.append("1");
}
if(s.toString().equals("0"))
{
s.replace(0, 1, "1");
}
serviceCost = 0.2f;
if(!ET_people.getText().equals(""))
{
serviceCost = 0.2f*Integer.parseInt((String.valueOf(ET_people.getText())));
}
TV_cost.setText(String.format("饮料费:¥ %d \n服务费¥ %.1f", drinkCost, serviceCost));
}
});
ET_table.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(s.toString().equals(""))
{
s.append("1");
}
if(Integer.valueOf(s.toString())<=0)
{
s.replace(0, 1, "1");
}
if(Integer.valueOf(s.toString())>30)
{
s.replace(0, s.length(), "30");
}
}
});
BT_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "您已清空购物车!", Toast.LENGTH_SHORT).show();
Ordered_drinks.clearOrdered_array();
ordered_array=get_ordered_array(Ordered_drinks.getOrdered_array(),restaurantName);
refresh();
}
});
builder = new AlertDialog.Builder(this.getActivity());
view_buy = inflater.inflate(R.layout.dialogue_buy, null, false);
builder.setView(view_buy);
builder.setCancelable(false);
buyDialog = builder.create();
view_buy.findViewById(R.id.button_quit).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
buyDialog.dismiss();
}
}
);
view_buy.findViewById(R.id.button_bought).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Account temp = new Account(userName, mContext);
String takeAway = "0";
if (CB_takeAway.isChecked()) {
takeAway = "1";
}
String cost = String.format("%.1f", drinkCost + serviceCost);
Date date1 = temp.saveBill(takeAway, cost);
//上传订单信息
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyyMMddHHmmss");
String date = sdf3.format(date1);
drinkCost = getDrinkCost();
serviceCost = 0.2f;
float money=drinkCost+serviceCost;
ArrayList<String> food = new ArrayList<String>();
ArrayList<String> number = new ArrayList<String>();
for (Ordered_drinks s:ordered_array) {
food.add(s.get_drink().get_name());
number.add(String.valueOf(s.get_drink_number()));
}
Bill bill=new Bill(date,restaurantName,money,food,number);
Gson gson = new Gson();
String jsonOrder = gson.toJson(bill);
uploadBillInfo(jsonOrder);
Ordered_drinks.clearOrdered_array();
refresh();
buyDialog.dismiss();
}
}
);
BT_buy.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v){
if(drinkCost==0)
{
Toast.makeText(getContext(), "请先选购饮品再结账!", Toast.LENGTH_SHORT).show();
}
else if(MineFragment.add==null||MineFragment.tel==null)
{
Toast.makeText(getContext(), "请填写电话和地址!", Toast.LENGTH_SHORT).show();
}
else
{
buyDialog.show();
if(view_buy!=null) {
TextView TV_allCost = view_buy.findViewById(R.id.textView_allCost);
{
TV_allCost.setText(String.format("饮料费:¥ %d\n服务费¥ %.1f\n总价¥ %.1f\n请扫描以下二维码进行支付。"
,drinkCost, serviceCost, drinkCost+serviceCost));
}
}
}
}
});
return view;
}
private void refresh() {
ordered_array=get_ordered_array(Ordered_drinks.getOrdered_array(),restaurantName);
OrderAdapter orderAdapter = new OrderAdapter(layoutInflater, ordered_array);
orderAdapter.buttonSetOnClick((new OrderAdapter.MyClickListener() {
@Override
public void onAddClick(View v, int position) {
Ordered_drinks.addDrink(position);
ordered_array=get_ordered_array(Ordered_drinks.getOrdered_array(),restaurantName);
refresh();
}
public void onSubClick(View v, int position){
Ordered_drinks.subtractDrink(position);
ordered_array=get_ordered_array(Ordered_drinks.getOrdered_array(),restaurantName);
refresh();
}
}));
bill_listView.setAdapter(orderAdapter);
drinkCost = getDrinkCost();
serviceCost = 0.2f;
ET_people.setText("1");
if(!ET_people.getText().equals(""))
{
serviceCost = 0.2f*Integer.parseInt((String.valueOf(ET_people.getText())));
}
TV_cost.setText(String.format("饮料费:¥ %d \n服务费¥ %.1f", drinkCost, serviceCost));
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
refresh();
}
public ArrayList<Ordered_drinks> get_ordered_array(ArrayList<Ordered_drinks> ordered_array, String targetRestaurantName) {
ArrayList<Ordered_drinks> ordered_array1 = new ArrayList<>();
for (Ordered_drinks orderedDrink : ordered_array) {
if (orderedDrink.get_restaurant_name().equals(targetRestaurantName)) {
ordered_array1.add(orderedDrink);
}
}
return ordered_array1;
}
public int getDrinkCost()
{
int sum = 0;
for (Ordered_drinks od:ordered_array)
{
sum += od.get_drink().get_price()*od.get_drink_number();
}
return sum;
}
private void uploadBillInfo(final String jsonOrder) {
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), jsonOrder);
Request request = new Request.Builder()
.url("http://192.168.43.176:8080/warehouse_management_system_war_exploded/setPurchase")
.post(requestBody)
.build();
Log.e("uploadBillInfo", jsonOrder);
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(mContext.getApplicationContext(), "下单成功", Toast.LENGTH_SHORT).show();
}
});
}
}
});
}
}
Loading…
Cancel
Save