Commit 44a32eb0 by qyw

微信支付成功

parent 1d9d8e7c
......@@ -15,17 +15,26 @@ import com.ifavine.pay.utils.BaseUtil;
* Created by Administrator on 2018/10/18.
*/
public class SpinnerAdapter extends ArrayAdapter<String> {
public class SpinnerAdapter extends ArrayAdapter<Object> {
Context context;
String[] items = new String[]{};
Object[] items = new Object[]{};
public SpinnerAdapter(final Context context,
final int textViewResourceId, final String[] objects) {
final int textViewResourceId, final Object[] objects) {
super(context, textViewResourceId, objects);
this.items = objects;
this.context = context;
}
public void setData(final Object[] objects) {
this.items = objects;
}
@Override
public int getCount() {
return items.length;
}
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
......@@ -39,7 +48,7 @@ public class SpinnerAdapter extends ArrayAdapter<String> {
TextView tv = (TextView) convertView
.findViewById(android.R.id.text1);
tv.setPadding(10, 10, 10, 10);
tv.setText(items[position]);
tv.setText((String) items[position]);
tv.setGravity(Gravity.CENTER);
tv.setTextColor(Color.BLACK);
tv.setTextSize(BaseUtil.Dp2Px(context, 23));
......@@ -56,7 +65,7 @@ public class SpinnerAdapter extends ArrayAdapter<String> {
TextView tv = (TextView) convertView
.findViewById(android.R.id.text1);
tv.setPadding(10, 10, 10, 10);
tv.setText(items[position]);
tv.setText((String) items[position]);
tv.setGravity(Gravity.CENTER);
tv.setTextColor(Color.BLACK);
tv.setTextSize(BaseUtil.Dp2Px(context, 20));
......
......@@ -5,6 +5,7 @@ import com.ifavine.pay.vo.CanteenWindow;
import com.ifavine.pay.vo.CommonListResponse;
import com.ifavine.pay.vo.CommonResponse;
import com.ifavine.pay.vo.User;
import com.ifavine.pay.vo.WindowCostAmount;
import okhttp3.RequestBody;
import retrofit2.Call;
......@@ -17,49 +18,46 @@ import retrofit2.http.POST;
public abstract interface APIService {
@FormUrlEncoded
@POST("getMsgDaliyList")
@POST("WebChat/getMsgDaliyList")
Call<CommonResponse<User>> getMsgDaliyList(@Field("data") String data);
@FormUrlEncoded
@POST("getMeetingTaskReplyList")
@POST("WebChat/getMeetingTaskReplyList")
Call<CommonListResponse<User>> getMsgDaliyList2(@Field("data") String data);
@FormUrlEncoded
@POST("GetServerDate")
@POST("WebChat/GetServerDate")
Call<CommonResponse<String>> GetServerDate(@Body RequestBody info);
@FormUrlEncoded
@POST("GetLocalRecordReport")
@POST("WebChat/GetLocalRecordReport")
Call<CommonResponse<String>> GetLocalRecordReport(@Body RequestBody info);
@FormUrlEncoded
@POST("GetMonthRecordReport")
@POST("WebChat/GetMonthRecordReport")
Call<CommonResponse<String>> GetMonthRecordReport(@Body RequestBody info);
@FormUrlEncoded
@POST("GetConsumRecordReport")
@POST("WebChat/GetConsumRecordReport")
Call<CommonResponse<String>> GetConsumRecordReport(@Body RequestBody info);
@FormUrlEncoded
@POST("SubmitPaying")
@POST("WechatPay/SubmitPaying")
Call<CommonResponse<String>> SubmitPaying(@Body RequestBody body);
@POST("GetCanteenWindows")
@POST("WebChat/GetCanteenWindows")
Call<CommonListResponse<CanteenWindow>> GetCanteenWindows(@Body RequestBody body);
@POST("SaveCanteenWindows")
@POST("WebChat/SaveCanteenWindows")
Call<CommonResponse> SaveCanteenWindows(@Body RequestBody body);
@POST("GetWindowCostAmount")
Call<CommonListResponse<CanteenWindow>> GetWindowCostAmount(@Body RequestBody body);
@POST("WebChat/GetWindowCostAmount")
Call<CommonListResponse<WindowCostAmount>> GetWindowCostAmount(@Body RequestBody body);
@POST("SaveWindowCostAmount")
@POST("WebChat/SaveWindowCostAmount")
Call<CommonResponse> SaveWindowCostAmount(@Body RequestBody body);
}
......@@ -6,6 +6,7 @@ import com.ifavine.pay.vo.CommonListResponse;
import com.ifavine.pay.vo.CommonResponse;
import com.ifavine.pay.vo.User;
import com.ifavine.pay.vo.WindowCostAmount;
import org.json.JSONObject;
......@@ -92,8 +93,15 @@ public class APIWrapper extends RetrofitUtil {
}
public Call<CommonResponse<String>> SubmitPaying(String PayCode, String Mac, String DeviceNo) {
String obj = "";
RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), obj);
JSONObject data = new JSONObject();
try {
data.put("PayCode", PayCode);
data.put("Mac", Mac);
data.put("DeviceNo", DeviceNo);
} catch (Exception e) {
e.printStackTrace();
}
RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), data.toString());
return getAPIService().SubmitPaying(body);
}
......@@ -242,7 +250,7 @@ public class APIWrapper extends RetrofitUtil {
* @param Mac
* @return
*/
public Call<CommonListResponse<CanteenWindow>> GetWindowCostAmount(String Mac) {
public Call<CommonListResponse<WindowCostAmount>> GetWindowCostAmount(String Mac) {
JSONObject obj = new JSONObject();
try {
obj.put("MacAddress", Mac);
......
......@@ -48,7 +48,7 @@ public class JsonResponseBodyConverter<T> implements Converter<ResponseBody, T>
//数据解密
String d = responseBody.string().replaceAll("\\\\", "");
data = d.substring(1, d.length() - 1);
Log.i("aaaaa", "response data2:" + data);
Log.i("aaaaa", "response data:" + data);
} catch (Exception e) {
e.printStackTrace();
}
......
......@@ -6,7 +6,7 @@ package com.ifavine.pay.common;
public class Constants {
public static final String BASE_URL = "http://121.33.220.19:3080/api/WebChat/";
public static final String BASE_URL = "http://121.33.220.19:3080/api/";
public static final String IMAGE_URL = "http://sisource.topcreating.com";
public static String LANG = "zn-cn";
......
......@@ -19,6 +19,8 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.ifavine.pay.R;
import com.ifavine.pay.api.APIWrapper;
import com.ifavine.pay.ui.base.BaseActivity;
......@@ -29,12 +31,16 @@ import com.ifavine.pay.utils.SPUtil;
import com.ifavine.pay.utils.TLog;
import com.ifavine.pay.view.PopWindowMainReport;
import com.ifavine.pay.view.PopWindowMainSet;
import com.ifavine.pay.view.datepicker.DateUtil;
import com.ifavine.pay.vo.CanteenWindow;
import com.ifavine.pay.vo.CommonListResponse;
import com.ifavine.pay.vo.CommonResponse;
import com.ifavine.pay.vo.WindowCostAmount;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
......@@ -56,7 +62,8 @@ public class MainActivity extends BaseActivity {
@BindView(R.id.tv_set)
Button tv_set;
@BindView(R.id.tv_net)
TextView tv_net;
@BindView(R.id.tv_table)
Button tv_table;
@BindView(R.id.et_payCode)
......@@ -82,6 +89,26 @@ public class MainActivity extends BaseActivity {
@BindView(R.id.tv_TradeNo)
TextView tv_TradeNo;
@BindView(R.id.tv_WindowName)
TextView tv_WindowName;
@BindView(R.id.tv_CanteenName)
TextView tv_CanteenName;
@BindView(R.id.tv_pay_status)
TextView tv_pay_status;
@BindView(R.id.t_AllowanceAmount)
TextView t_AllowanceAmount;
@BindView(R.id.t_DinnerAmount)
TextView t_DinnerAmount;
@BindView(R.id.t_DinnerType)
TextView t_DinnerType;
@BindView(R.id.tv_self)
TextView tv_self;
@BindView(R.id.btn_pay)
Button btn_pay;
private int soundSucess;
private int soundFail;
......@@ -103,18 +130,22 @@ public class MainActivity extends BaseActivity {
soundPool = new SoundPool(3, AudioManager.STREAM_MUSIC, 100);
soundSucess = soundPool.load(mContext, R.raw.success, 1);//加载资源,得到soundId
soundFail = soundPool.load(mContext, R.raw.fail, 1);//加载资源,得到soundId
dateTime = 0;
//获取窗口信息
GetCanteenWindows();
//获取支付信息
GetWindowCostAmount();
}
boolean isSend = false;
@Override
public void initData() {
super.initData();
date = System.currentTimeMillis();
startTimer();
//检查网络
//pingNet("www.baidu.com");
handler.postDelayed(netRun, 1000);
handler.postDelayed(etRunnable, 250);
et_payCode.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
......@@ -128,15 +159,57 @@ public class MainActivity extends BaseActivity {
@Override
public void afterTextChanged(Editable editable) {
payCode = editable.toString().trim();
if (payCode != null && payCode.length() == 18 && BaseUtil.isNumeric(payCode)) {
doPay(payCode);
}
et_payCode.setText(null);
}
});
}
private Runnable netRun = new Runnable() {
@Override
public void run() {
new Thread(new Runnable() {
@Override
public void run() {
pingNet("121.33.220.19");
}
}).start();
et_payCode.requestFocus();
handler.postDelayed(this, 60 * 1000);
}
};
String lastCode;
String code;
private Runnable etRunnable = new Runnable() {
@Override
public void run() {
code = et_payCode.getText().toString();
if (!TextUtils.isEmpty(code) && code.equals(lastCode)) {
doPay(code);
}
if (!TextUtils.isEmpty(code)) {
lastCode = code;
}
handler.postDelayed(this, 300);
}
};
@Override
protected void onResume() {
super.onResume();
updateCanTeenName();
getServerDate();
initPayInfo();
}
@Override
protected void onDestroy() {
super.onDestroy();
stopTimer();
handler.removeCallbacks(netRun);
handler.removeCallbacks(etRunnable);
}
private boolean pingNet(String address) {
try {
Process process = Runtime.getRuntime().exec("ping -c 3 -w 100 " + address);
......@@ -150,14 +223,17 @@ public class MainActivity extends BaseActivity {
}
if (TextUtils.isEmpty(returnMsg)) {
System.out.println("与 " + address + " 连接不畅通.");
handler.sendEmptyMessage(2);
return false;
} else {
//0 received, 100% packet loss
if (returnMsg.indexOf("0 received") == 1 || returnMsg.indexOf("100% packet loss") == 1) {
System.out.println("与 " + address + " 连接不畅通.");
handler.sendEmptyMessage(2);
return false;
} else {
System.out.println("与 " + address + " 连接畅通.");
handler.sendEmptyMessage(3);
return true;
}
}
......@@ -173,7 +249,7 @@ public class MainActivity extends BaseActivity {
return R.layout.activity_main;
}
@OnClick({R.id.tv_set, R.id.tv_table, R.id.tv_close, R.id.tv_reflesh})
@OnClick({R.id.tv_set, R.id.tv_table, R.id.tv_close, R.id.tv_reflesh, R.id.btn_pay})
public void onClick(View view) {
switch (view.getId()) {
case R.id.tv_set:
......@@ -184,10 +260,17 @@ public class MainActivity extends BaseActivity {
DialogMainSetUtils.showRSTSetDialog(mContext, "饭堂窗口设置", new View.OnClickListener() {
@Override
public void onClick(View view) {
updateCanTeenName();
initPayInfo();
}
}, null, true);
} else if (i == 1) {
DialogMainSetUtils.showSetAmtDialog(mContext, "消费金额设置", null, null, true);
DialogMainSetUtils.showSetAmtDialog(mContext, "消费金额设置", new View.OnClickListener() {
@Override
public void onClick(View view) {
initPayInfo();
}
}, null, true);
} else if (i == 2) {
DialogMainSetUtils.showChangePwdDialog(mContext, "修改管理员密码", null, null, true);
}
......@@ -222,9 +305,13 @@ public class MainActivity extends BaseActivity {
}, null, true);
break;
case R.id.tv_reflesh:
Log.e("ggg", "onTouchEvent");
soundPool.play(soundSucess, 1, 1, 0, 0, 1);
// soundPool.play(soundFail, 1, 1, 0, 0, 1);
getServerDate();
break;
case R.id.btn_pay:
String code = et_payCode.getText().toString();
if (!TextUtils.isEmpty(code) && !payCode.equals(code)) {
doPay(code);
}
break;
}
}
......@@ -232,7 +319,7 @@ public class MainActivity extends BaseActivity {
Dialog dialog = null;
// 初始化定时器
private long date;
private long dateTime;
private Timer timer;
private void startTimer() {
......@@ -243,7 +330,7 @@ public class MainActivity extends BaseActivity {
timer.schedule(new TimerTask() {
@Override
public void run() {
date += 1000;
dateTime += 1000;
handler.sendEmptyMessage(1);
}
}, 1000, 1000);
......@@ -264,8 +351,18 @@ public class MainActivity extends BaseActivity {
super.handleMessage(msg);
switch (msg.what) {
case 1:
tv_date.setText(BaseUtil.getDateFormat(date, "yyyy-MM-dd HH:mm:ss"));
tv_date.setText(BaseUtil.getDateFormat(dateTime, "yyyy-MM-dd HH:mm:ss"));
break;
case 2:
tv_net.setText("网络错误!");
tv_net.setTextColor(getResources().getColor(R.color.red));
break;
case 3:
tv_net.setText("网络畅通");
tv_net.setTextColor(getResources().getColor(R.color.green));
break;
}
}
};
......@@ -288,6 +385,14 @@ public class MainActivity extends BaseActivity {
return super.onKeyUp(keyCode, event);
}
public void updateCanTeenName() {
String CanTeenCode = SPUtil.getInstance().readString("CanTeenCode");
String WindowName = SPUtil.getInstance().readString("WindowName");
String CanTeenName = SPUtil.getInstance().readString("CanTeenName");
tv_CanteenName.setText(CanTeenName);
tv_WindowName.setText(WindowName);
}
//线路处理
private void getServerDate() {
......@@ -298,10 +403,17 @@ public class MainActivity extends BaseActivity {
public void onResponse(Call<CommonResponse<String>> call,
Response<CommonResponse<String>> response) {
if (response.isSuccessful()) {
if (response.body() == null) {
return;
}
if (response.body().Status != 200) {
return;
}
String data = response.body().ModelJson;
TLog.log("aaa", data);
dateTime = BaseUtil.getDateFormat(data, "yyyy/MM/dd hh:mm:ss");
startTimer();
initPayInfo();
}
}
......@@ -321,6 +433,8 @@ public class MainActivity extends BaseActivity {
*/
//线路处理
private void doPay(String payCode) {
et_payCode.setText(null);
et_payCode.requestFocus();
String Mac = SPUtil.getInstance().readString("Mac");
String DeviceNo = SPUtil.getInstance().readString("DeviceNo");
Call<CommonResponse<String>> call =
......@@ -330,20 +444,40 @@ public class MainActivity extends BaseActivity {
public void onResponse(Call<CommonResponse<String>> call,
Response<CommonResponse<String>> response) {
if (response.isSuccessful()) {
if (response.body().Status != 200) {
if (response.body() == null) {
return;
}
if (response.body().Status == 200) {
soundPool.play(soundSucess, 1, 1, 0, 0, 1);
tv_pay_status.setText("支付成功!");
tv_pay_status.setTextColor(getResources().getColor(R.color.green));
tv_EmpNo.setText(response.body().EmpNo);
tv_EmpName.setText(response.body().EmpName);
tv_EmpDuty.setText(response.body().EmpDuty);
tv_EmpDept.setText(response.body().EmpDept);
tv_SubCost.setText(response.body().SubCost);
tv_Consumption.setText(response.body().Consumption);
tv_Cost.setText(response.body().Cost);
tv_IsConsumed.setText(response.body().IsConsumed);
tv_TradeNo.setText(response.body().TradeNo);
} else {
soundPool.play(soundFail, 1, 1, 0, 0, 1);
tv_pay_status.setText(response.body().Message);
tv_pay_status.setTextColor(getResources().getColor(R.color.red));
}
}
}
@Override
public void onFailure(Call<CommonResponse<String>> call, Throwable t) {
soundPool.play(soundFail, 1, 1, 0, 0, 1);
tv_pay_status.setText("支付失败");
tv_pay_status.setTextColor(getResources().getColor(R.color.red));
}
});
}
Gson gson = new Gson();
//线路处理
private void GetCanteenWindows() {
......@@ -354,13 +488,17 @@ public class MainActivity extends BaseActivity {
@Override
public void onResponse(Call<CommonListResponse<CanteenWindow>> call,
Response<CommonListResponse<CanteenWindow>> response) {
List<CanteenWindow> data = response.body().ModelJson;
TLog.log("aaa", "aa" + response.body().toString());
if (response.isSuccessful()) {
if (response.body() == null) {
return;
}
if (response.body().Status != 200) {
return;
}
List<CanteenWindow> data = response.body().ModelJson;
TLog.log("aaa", response.body().toString());
String jsonApp = gson.toJson(data);
SPUtil.getInstance().writeString("CanteenWindows", jsonApp);
}
}
......@@ -370,4 +508,86 @@ public class MainActivity extends BaseActivity {
}
});
}
private void GetWindowCostAmount() {
String Mac = SPUtil.getInstance().readString("Mac");
Call<CommonListResponse<WindowCostAmount>> call =
APIWrapper.getInstance().GetWindowCostAmount(Mac);
call.enqueue(new Callback<CommonListResponse<WindowCostAmount>>() {
@Override
public void onResponse(Call<CommonListResponse<WindowCostAmount>> call,
Response<CommonListResponse<WindowCostAmount>> response) {
if (response.isSuccessful()) {
if (response.body() == null) {
return;
}
if (response.body().Status != 200) {
return;
}
List<WindowCostAmount> data = response.body().ModelJson;
TLog.log("aaa", response.body().toString());
String jsonApp = gson.toJson(data);
SPUtil.getInstance().writeString("WindowCostAmounts", jsonApp);
initPayInfo();
}
}
@Override
public void onFailure(Call<CommonListResponse<WindowCostAmount>> call, Throwable t) {
}
});
}
private void initPayInfo() {
if (dateTime == 0) {
return;
}
String data = SPUtil.getInstance().readString("WindowCostAmounts");
final List<WindowCostAmount> DATA = gson.fromJson(data, new TypeToken<List<WindowCostAmount>>() {
}.getType());
for (int i = 0; i < 4; i++) {
if (getTimeCompare(DATA.get(i).StartTime, DATA.get(i).EndTime)) {
if ("1".equals(DATA.get(i).DinnerType)) {
t_DinnerType.setText("早餐");
} else if ("2".equals(DATA.get(i).DinnerType)) {
t_DinnerType.setText("午餐");
} else if ("3".equals(DATA.get(i).DinnerType)) {
t_DinnerType.setText("晚餐");
} else if ("4".equals(DATA.get(i).DinnerType)) {
t_DinnerType.setText("夜宵");
}
t_AllowanceAmount.setText(DATA.get(i).AllowanceAmount + "");
t_DinnerAmount.setText(DATA.get(i).DinnerAmount + "");
tv_self.setText((DATA.get(i).DinnerAmount - DATA.get(i).AllowanceAmount) + "");
return;
}
if (i == 3) {
t_DinnerType.setText("夜宵");
t_AllowanceAmount.setText(DATA.get(i).AllowanceAmount + "");
t_DinnerAmount.setText(DATA.get(i).DinnerAmount + "");
tv_self.setText((DATA.get(i).DinnerAmount - DATA.get(i).AllowanceAmount) + "");
}
}
}
private boolean getTimeCompare(String start, String end) {
String date = DateUtil.formatDate(dateTime, "yyyy-MM-dd");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String startDate = date + " " + start;
String endDate = date + " " + end;
try {
Date s = df.parse(startDate);
Date e = df.parse(endDate);
if (s.getTime() < dateTime && dateTime < e.getTime()) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}
......@@ -81,6 +81,7 @@ public class WelcomeActivity extends BaseActivity {
}
if (!TextUtils.isEmpty(Mac)) {
SPUtil.getInstance().writeString("Mac", Mac);
SPUtil.getInstance().writeString("DeviceNo", MD5Util.MD5(Mac));
}
Log.i("ggg", Mac);
gotoActivity(MainActivity.class);
......
......@@ -545,6 +545,17 @@ public class BaseUtil {
return null;
}
public static long getDateFormat(String date, String inFormat) {
try {
SimpleDateFormat in = new SimpleDateFormat(inFormat);
Date d = in.parse(date);
return d.getTime();
} catch (Exception e) {
}
return System.currentTimeMillis();
}
public static String getDateFormat(long date, String OutFormat) {
try {
Date d = new Date();
......
......@@ -12,6 +12,7 @@ import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
......@@ -26,15 +27,23 @@ import com.github.jdsjlzx.interfaces.OnLoadMoreListener;
import com.github.jdsjlzx.interfaces.OnRefreshListener;
import com.github.jdsjlzx.recyclerview.LRecyclerView;
import com.github.jdsjlzx.recyclerview.LRecyclerViewAdapter;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.ifavine.pay.R;
import com.ifavine.pay.adapter.MonthRecordReportAdapter;
import com.ifavine.pay.adapter.ReportMonthsAdapter;
import com.ifavine.pay.adapter.SpinnerAdapter;
import com.ifavine.pay.api.APIWrapper;
import com.ifavine.pay.common.AppContext;
import com.ifavine.pay.common.Constants;
import com.ifavine.pay.view.AmountView;
import com.ifavine.pay.view.datepicker.DateUtil;
import com.ifavine.pay.vo.CanteenWindow;
import com.ifavine.pay.vo.CommonListResponse;
import com.ifavine.pay.vo.CommonResponse;
import com.ifavine.pay.vo.MonthRecordReport;
import com.ifavine.pay.vo.VersionBean;
import com.ifavine.pay.vo.WindowCostAmount;
import java.util.ArrayList;
......@@ -42,6 +51,10 @@ import java.util.Calendar;
import java.util.Date;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class DialogMainSetUtils {
private static Dialog tipDialog;
private static TextView tipTextView;
......@@ -63,11 +76,12 @@ public class DialogMainSetUtils {
return tipDialog.isShowing();
}
private static Gson gson = new Gson();
/**
* showConfirmDialog
*/
public static Dialog showRSTSetDialog(Context mContext, String title, final View.OnClickListener okListener,
public static Dialog showRSTSetDialog(final Context mContext, String title, final View.OnClickListener okListener,
View.OnClickListener cancelListener, boolean cancelable) {
View view = View.inflate(mContext, R.layout.dialog_rst_num_set, null);
final Dialog dialog = new Dialog(mContext, R.style.dialog_common);// 创建自定义样式dialog
......@@ -81,8 +95,10 @@ public class DialogMainSetUtils {
Button btn_clear = (Button) view.findViewById(R.id.dialog_clear);
TextView tv_title = (TextView) view.findViewById(R.id.dialog_title);
ImageView iv_cancel = (ImageView) view.findViewById(R.id.iv_cancel);
Spinner spinner1 = (Spinner) view.findViewById(R.id.dialog_sp1);
Spinner spinner2 = (Spinner) view.findViewById(R.id.dialog_sp2);
final EditText dialog_msg = (EditText) view.findViewById(R.id.dialog_msg);
final Spinner spinner1 = (Spinner) view.findViewById(R.id.dialog_sp1);
final Spinner spinner2 = (Spinner) view.findViewById(R.id.dialog_sp2);
if (title != null) {
tv_title.setText(title);
tv_title.setVisibility(View.VISIBLE);
......@@ -100,17 +116,26 @@ public class DialogMainSetUtils {
});
}
//set confirm listener
if (okListener != null) {
btn_ok.setOnClickListener(okListener);
} else {
btn_ok.setOnClickListener(new View.OnClickListener() {
//spinner 数据来源
String data = SPUtil.getInstance().readString("CanteenWindows");
final List<CanteenWindow> datas = gson.fromJson(data, new TypeToken<List<CanteenWindow>>() {
}.getType());
btn_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
@Override
public void onClick(View v) {
if (!SPUtil.getInstance().readString("pwd").equals(MD5Util.MD5(dialog_msg.getText().toString().trim()))) {
AppContext.showToast("管理员密码不正确");
return;
}
});
}
DialogUtil.showLoadingDialog(mContext, true, "处理中");
String CanTeenName = datas.get(spinner1.getSelectedItemPosition()).CanteenName;
String CanTeenCode = datas.get(spinner1.getSelectedItemPosition()).CanteenCode;
String WindowName = spinner2.getSelectedItem().toString();
SaveCanteenWindows(dialog, CanTeenCode, WindowName, CanTeenName, okListener);
}
});
iv_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
......@@ -118,27 +143,96 @@ public class DialogMainSetUtils {
}
});
String options[] = mContext.getResources().getStringArray(R.array.main_rst_options);
btn_clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog_msg.setText(null);
}
});
final List<String> first = new ArrayList<>();
final List<String> second = new ArrayList<>();
for (CanteenWindow d : datas) {
first.add(d.CanteenName);
}
List<CanteenWindow.Window> windows = datas.get(0).Windows;
for (CanteenWindow.Window w : windows) {
second.add(w.WindowName);
}
Object options[] = first.toArray();
SpinnerAdapter adapter = new SpinnerAdapter(mContext,
android.R.layout.simple_spinner_item, options);
spinner1.setAdapter(adapter);
String options2[] = mContext.getResources().getStringArray(R.array.main_rst_num_options);
SpinnerAdapter adapter2 = new SpinnerAdapter(mContext,
Object options2[] = second.toArray();
final SpinnerAdapter adapter2 = new SpinnerAdapter(mContext,
android.R.layout.simple_spinner_item, options2);
spinner2.setAdapter(adapter2);
dialog.show();
view.setOnTouchListener(new View.OnTouchListener() {
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Log.e("ggg", "setOnTouchListener");
return false;
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
List<CanteenWindow.Window> windows = datas.get(i).Windows;
second.clear();
for (CanteenWindow.Window w : windows) {
second.add(w.WindowName);
}
adapter2.setData(second.toArray());
adapter2.notifyDataSetChanged();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
dialog.show();
return dialog;
}
//线路处理
private static void SaveCanteenWindows(final Dialog dialog, final String CanTeenCode, final String WindowName, final String CanTeenName, final View.OnClickListener l) {
String Mac = SPUtil.getInstance().readString("Mac");
Call<CommonResponse> call =
APIWrapper.getInstance().SaveCanteenWindows(Mac, CanTeenCode, WindowName);
call.enqueue(new Callback<CommonResponse>() {
@Override
public void onResponse(Call<CommonResponse> call,
Response<CommonResponse> response) {
DialogUtil.dismissTipDialog();
if (response.isSuccessful()) {
if (response.body().Status != 200) {
AppContext.showToast(response.body().Message);
return;
}
SPUtil.getInstance().writeString("CanTeenCode", CanTeenCode);
SPUtil.getInstance().writeString("WindowName", WindowName);
SPUtil.getInstance().writeString("CanTeenName", CanTeenName);
AppContext.showToast(response.body().Message);
l.onClick(null);
handler.postDelayed(new Runnable() {
@Override
public void run() {
dialog.dismiss();
}
}, 2000);
} else {
AppContext.showToast("请求失败,请重试");
}
}
@Override
public void onFailure(Call<CommonResponse> call, Throwable t) {
AppContext.showToast("请求失败,请重试");
DialogUtil.dismissTipDialog();
}
});
}
/**
* showConfirmDialog
*
......@@ -302,6 +396,11 @@ public class DialogMainSetUtils {
public static Dialog showSetAmtDialog(final Context mContext, final String title, final View.OnClickListener okListener,
View.OnClickListener cancelListener, boolean cancelable) {
// 数据来源
String data = SPUtil.getInstance().readString("WindowCostAmounts");
final List<WindowCostAmount> DATA = gson.fromJson(data, new TypeToken<List<WindowCostAmount>>() {
}.getType());
View view = View.inflate(mContext, R.layout.dialog_amt_set, null);
final Dialog dialog = new Dialog(mContext, R.style.dialog_common);// 创建自定义样式dialog
dialog.setCancelable(cancelable);// 不可以用“返回键”取消
......@@ -313,11 +412,30 @@ public class DialogMainSetUtils {
dialog.getWindow().setAttributes(params);
Button btn_ok = (Button) view.findViewById(R.id.dialog_ok);
Button btn_cancel = (Button) view.findViewById(R.id.dialog_cancel);
final TextView tv_CanTeenName = (TextView) view.findViewById(R.id.tv_CanTeenName);
final TextView tv_WindowName = (TextView) view.findViewById(R.id.tv_WindowName);
tv_CanTeenName.setText(SPUtil.getInstance().readString("CanTeenName"));
tv_WindowName.setText(SPUtil.getInstance().readString("WindowName"));
final TextView tv_date1 = (TextView) view.findViewById(R.id.tv_date1);
//final EditText et1 = (EditText) view.findViewById(R.id.dialog_et1);
//final EditText et2 = (EditText) view.findViewById(R.id.dialog_et2);
//final EditText et3 = (EditText) view.findViewById(R.id.dialog_et3);
final TextView tv_date2 = (TextView) view.findViewById(R.id.tv_date2);
final TextView tv_date3 = (TextView) view.findViewById(R.id.tv_date3);
final TextView tv_date4 = (TextView) view.findViewById(R.id.tv_date4);
final TextView tv_date5 = (TextView) view.findViewById(R.id.tv_date5);
final TextView tv_date6 = (TextView) view.findViewById(R.id.tv_date6);
final TextView tv_date7 = (TextView) view.findViewById(R.id.tv_date7);
final TextView tv_date8 = (TextView) view.findViewById(R.id.tv_date8);
AmountView amt1 = (AmountView) view.findViewById(R.id.amt1);
AmountView amt2 = (AmountView) view.findViewById(R.id.amt2);
AmountView amt3 = (AmountView) view.findViewById(R.id.amt3);
AmountView amt4 = (AmountView) view.findViewById(R.id.amt4);
AmountView amt5 = (AmountView) view.findViewById(R.id.amt5);
AmountView amt6 = (AmountView) view.findViewById(R.id.amt6);
AmountView amt7 = (AmountView) view.findViewById(R.id.amt7);
AmountView amt8 = (AmountView) view.findViewById(R.id.amt8);
final EditText et1 = (EditText) view.findViewById(R.id.et_amt1);
final EditText et2 = (EditText) view.findViewById(R.id.et_amt2);
final EditText et3 = (EditText) view.findViewById(R.id.et_amt3);
final EditText et4 = (EditText) view.findViewById(R.id.et_amt4);
TextView tv_title = (TextView) view.findViewById(R.id.dialog_title);
ImageView iv_cancel = (ImageView) view.findViewById(R.id.iv_cancel);
......@@ -341,17 +459,30 @@ public class DialogMainSetUtils {
});
}
//set confirm listener
if (okListener != null) {
} else {
btn_ok.setOnClickListener(new View.OnClickListener() {
btn_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DATA.get(0).StartTime = tv_date1.getText().toString();
DATA.get(0).EndTime = tv_date2.getText().toString();
DATA.get(1).StartTime = tv_date3.getText().toString();
DATA.get(1).EndTime = tv_date4.getText().toString();
DATA.get(2).StartTime = tv_date5.getText().toString();
DATA.get(2).EndTime = tv_date6.getText().toString();
DATA.get(3).StartTime = tv_date7.getText().toString();
DATA.get(3).EndTime = tv_date8.getText().toString();
DialogUtil.showInputDialog(mContext, null, "请输入管理员密码", "请输入管理员密码", "确定", "取消", new View.OnClickListener() {
@Override
public void onClick(View view) {
String DinnerCost = gson.toJson(DATA);
DialogUtil.showLoadingDialog(mContext, true, "处理中");
GetWindowCostAmount(dialog, DinnerCost, DATA, okListener);
}
}, null, true);
}
});
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
}
iv_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
......@@ -364,10 +495,179 @@ public class DialogMainSetUtils {
DialogUtil.showTimePickerDialog(mContext, R.style.dialog_style, tv_date1, Calendar.getInstance());
}
});
tv_date2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogUtil.showTimePickerDialog(mContext, R.style.dialog_style, tv_date2, Calendar.getInstance());
}
});
tv_date3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogUtil.showTimePickerDialog(mContext, R.style.dialog_style, tv_date3, Calendar.getInstance());
}
});
tv_date4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogUtil.showTimePickerDialog(mContext, R.style.dialog_style, tv_date4, Calendar.getInstance());
}
});
tv_date5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogUtil.showTimePickerDialog(mContext, R.style.dialog_style, tv_date5, Calendar.getInstance());
}
});
tv_date6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogUtil.showTimePickerDialog(mContext, R.style.dialog_style, tv_date6, Calendar.getInstance());
}
});
tv_date7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogUtil.showTimePickerDialog(mContext, R.style.dialog_style, tv_date7, Calendar.getInstance());
}
});
tv_date8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogUtil.showTimePickerDialog(mContext, R.style.dialog_style, tv_date8, Calendar.getInstance());
}
});
for (int i = 0; i < 4; i++) {
WindowCostAmount w = DATA.get(i);
if (i == 0) {
amt1.setAmount(w.DinnerAmount);
amt2.setAmount(w.AllowanceAmount);
et1.setText((w.DinnerAmount - w.AllowanceAmount) + "");
tv_date1.setText(w.StartTime);
tv_date2.setText(w.EndTime);
} else if (i == 1) {
amt3.setAmount(w.DinnerAmount);
amt4.setAmount(w.AllowanceAmount);
et2.setText((w.DinnerAmount - w.AllowanceAmount) + "");
tv_date3.setText(w.StartTime);
tv_date4.setText(w.EndTime);
} else if (i == 2) {
amt5.setAmount(w.DinnerAmount);
amt6.setAmount(w.AllowanceAmount);
et3.setText((w.DinnerAmount - w.AllowanceAmount) + "");
tv_date5.setText(w.StartTime);
tv_date6.setText(w.EndTime);
} else if (i == 3) {
amt7.setAmount(w.DinnerAmount);
amt8.setAmount(w.AllowanceAmount);
et4.setText((w.DinnerAmount - w.AllowanceAmount) + "");
tv_date7.setText(w.StartTime);
tv_date8.setText(w.EndTime);
}
}
//保存操作
amt1.setOnAmountChangeListener(new AmountView.OnAmountChangeListener() {
@Override
public void onAmountChange(View view, double amount) {
DATA.get(0).DinnerAmount = amount;
et1.setText((DATA.get(0).DinnerAmount - DATA.get(0).AllowanceAmount) + "");
}
});
amt2.setOnAmountChangeListener(new AmountView.OnAmountChangeListener() {
@Override
public void onAmountChange(View view, double amount) {
DATA.get(0).AllowanceAmount = amount;
et1.setText((DATA.get(0).DinnerAmount - DATA.get(0).AllowanceAmount) + "");
}
});
//保存操作
amt3.setOnAmountChangeListener(new AmountView.OnAmountChangeListener() {
@Override
public void onAmountChange(View view, double amount) {
DATA.get(1).DinnerAmount = amount;
et2.setText((DATA.get(1).DinnerAmount - DATA.get(1).AllowanceAmount) + "");
}
});
amt4.setOnAmountChangeListener(new AmountView.OnAmountChangeListener() {
@Override
public void onAmountChange(View view, double amount) {
DATA.get(1).AllowanceAmount = amount;
et2.setText((DATA.get(1).DinnerAmount - DATA.get(1).AllowanceAmount) + "");
}
});
//保存操作
amt5.setOnAmountChangeListener(new AmountView.OnAmountChangeListener() {
@Override
public void onAmountChange(View view, double amount) {
DATA.get(2).DinnerAmount = amount;
et3.setText((DATA.get(2).DinnerAmount - DATA.get(2).AllowanceAmount) + "");
}
});
amt6.setOnAmountChangeListener(new AmountView.OnAmountChangeListener() {
@Override
public void onAmountChange(View view, double amount) {
DATA.get(2).AllowanceAmount = amount;
et3.setText((DATA.get(2).DinnerAmount - DATA.get(2).AllowanceAmount) + "");
}
}); //保存操作
amt7.setOnAmountChangeListener(new AmountView.OnAmountChangeListener() {
@Override
public void onAmountChange(View view, double amount) {
DATA.get(3).DinnerAmount = amount;
et4.setText((DATA.get(3).DinnerAmount - DATA.get(3).AllowanceAmount) + "");
}
});
amt8.setOnAmountChangeListener(new AmountView.OnAmountChangeListener() {
@Override
public void onAmountChange(View view, double amount) {
DATA.get(3).AllowanceAmount = amount;
et4.setText((DATA.get(3).DinnerAmount - DATA.get(3).AllowanceAmount) + "");
}
});
dialog.show();
return dialog;
}
private static void GetWindowCostAmount(final Dialog dialog, String DinnerCost, final List<WindowCostAmount> DATA, final View.OnClickListener l) {
String Mac = SPUtil.getInstance().readString("Mac");
Call<CommonResponse> call =
APIWrapper.getInstance().SaveWindowCostAmount(Mac, DinnerCost);
call.enqueue(new Callback<CommonResponse>() {
@Override
public void onResponse(Call<CommonResponse> call,
Response<CommonResponse> response) {
if (response.isSuccessful()) {
if (response.body() == null) {
return;
}
if (response.body().Status != 200) {
return;
}
String data = gson.toJson(DATA);
SPUtil.getInstance().writeString("WindowCostAmounts", data);
DialogUtil.dismissTipDialog();
AppContext.showToast(response.body().Message);
l.onClick(null);
handler.postDelayed(new Runnable() {
@Override
public void run() {
dialog.dismiss();
}
}, 2000);
}
}
@Override
public void onFailure(Call<CommonResponse> call, Throwable t) {
DialogUtil.dismissTipDialog();
AppContext.showToast("请求失败,请重试");
}
});
}
static int mYear;
static int mMonth;
static int mDay;
......
......@@ -21,8 +21,8 @@ import com.ifavine.pay.R;
public class AmountView extends LinearLayout implements View.OnClickListener, TextWatcher {
private static final String TAG = "AmountView";
private double amount = 1; //购买数量
private int goods_storage = 100; //商品库存
private double amount = 1.0; //购买数量
private int goods_storage = 1000; //商品库存
private OnAmountChangeListener mListener;
......@@ -75,17 +75,21 @@ public class AmountView extends LinearLayout implements View.OnClickListener, Te
this.goods_storage = goods_storage;
}
public void setAmount(double amount) {
etAmount.setText("" + amount);
}
@Override
public void onClick(View v) {
int i = v.getId();
if (i == R.id.btnDecrease) {
if (amount > 0) {
amount--;
amount -= 0.5;
etAmount.setText(amount + "");
}
} else if (i == R.id.btnIncrease) {
if (amount < goods_storage) {
amount++;
amount += 0.5;
etAmount.setText(amount + "");
}
}
......
......@@ -12,6 +12,15 @@ public class CommonResponse<T> extends Entity {
public T ModelJson;
public int Status;
public String Message;
public String EmpNo;
public String EmpName;
public String EmpDept;
public String EmpDuty;
public String Cost;
public String SubCost;
public String Consumption;
public String IsConsumed;
public String TradeNo;
public boolean isSuccess() {
return (this.Status == 200) || (this.Status == 201);
......
package com.ifavine.pay.vo;
import java.io.Serializable;
import java.util.List;
/**
* Created by Administrator on 2018/10/25.
*/
public class WindowCostAmount extends Entity {
// "ID":1,
// "DinnerType":1,
// "DinnerAmount":3.00,
// "AllowanceAmount":2.00,
// "StartTime":"05:00",
// "EndTime":"09:59",
// "MacAddress":"90:2B:34:7D:47:56"
public String ID;
public String DinnerType;
public double DinnerAmount;
public double AllowanceAmount;
public String StartTime;
public String EndTime;
public String MacAddress;
}
......@@ -217,12 +217,11 @@
android:textSize="28dp" />
<TextView
android:id="@+id/tv_type"
android:id="@+id/t_DinnerType"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="20dp"
android:gravity="center"
android:text="类型1"
android:textColor="@color/black"
android:textSize="28dp" />
</LinearLayout>
......@@ -243,12 +242,11 @@
android:textSize="28dp" />
<TextView
android:id="@+id/tv_total"
android:id="@+id/t_DinnerAmount"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="20dp"
android:gravity="center"
android:text="10"
android:textColor="@color/black"
android:textSize="28dp" />
</LinearLayout>
......@@ -269,12 +267,11 @@
android:textSize="28dp" />
<TextView
android:id="@+id/tv_"
android:id="@+id/t_AllowanceAmount"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="20dp"
android:gravity="center"
android:text="6.5"
android:textColor="@color/black"
android:textSize="28dp" />
</LinearLayout>
......@@ -295,12 +292,11 @@
android:textSize="28dp" />
<TextView
android:id="@+id/tv"
android:id="@+id/tv_self"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="20dp"
android:gravity="center"
android:text="3.5"
android:textColor="@color/black"
android:textSize="28dp" />
</LinearLayout>
......@@ -639,11 +635,11 @@
android:paddingTop="10dp">
<TextView
android:layout_width="wrap_content"
android:id="@+id/tv_net"
android:layout_width="150dp"
android:layout_height="fill_parent"
android:layout_marginLeft="20dp"
android:gravity="center"
android:text="网络通畅"
android:textColor="@color/green"
android:textSize="30dp" />
......@@ -653,7 +649,6 @@
android:layout_height="fill_parent"
android:layout_marginRight="150dp"
android:gravity="center"
android:text="支付成功!"
android:textColor="@color/green"
android:textSize="80dp" />
</LinearLayout>
......
......@@ -62,13 +62,13 @@
android:textSize="28dp" />
<TextView
android:id="@+id/tv_CanTeenName"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:gravity="center_vertical"
android:text="第一饭堂"
android:textColor="@color/font_black_32"
android:textSize="28dp" />
......@@ -84,13 +84,13 @@
android:textSize="28dp" />
<TextView
android:id="@+id/tv_WindowName"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:gravity="center_vertical"
android:text="1号"
android:textColor="@color/font_black_32"
android:textSize="28dp" />
......@@ -196,7 +196,7 @@
app:tvWidth="120dp" />
<EditText
android:id="@+id/dialog_msg"
android:id="@+id/et_amt1"
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_marginLeft="70dp"
......@@ -233,6 +233,7 @@
android:textSize="28dp" />
<TextView
android:id="@+id/tv_date2"
android:layout_width="120dp"
android:layout_height="50dp"
android:layout_marginTop="10dp"
......@@ -287,6 +288,7 @@
app:tvWidth="120dp" />
<EditText
android:id="@+id/et_amt2"
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_marginLeft="70dp"
......@@ -300,6 +302,7 @@
android:textSize="16sp" />
<TextView
android:id="@+id/tv_date3"
android:layout_width="120dp"
android:layout_height="50dp"
android:layout_marginLeft="50dp"
......@@ -322,6 +325,7 @@
android:textSize="28dp" />
<TextView
android:id="@+id/tv_date4"
android:layout_width="120dp"
android:layout_height="50dp"
android:layout_marginTop="10dp"
......@@ -376,6 +380,7 @@
app:tvWidth="120dp" />
<EditText
android:id="@+id/et_amt3"
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_marginLeft="70dp"
......@@ -389,6 +394,7 @@
android:textSize="16sp" />
<TextView
android:id="@+id/tv_date5"
android:layout_width="120dp"
android:layout_height="50dp"
android:layout_marginLeft="50dp"
......@@ -411,6 +417,7 @@
android:textSize="28dp" />
<TextView
android:id="@+id/tv_date6"
android:layout_width="120dp"
android:layout_height="50dp"
android:layout_marginTop="10dp"
......@@ -465,6 +472,7 @@
app:tvWidth="120dp" />
<EditText
android:id="@+id/et_amt4"
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_marginLeft="70dp"
......@@ -478,6 +486,7 @@
android:textSize="16sp" />
<TextView
android:id="@+id/tv_date7"
android:layout_width="120dp"
android:layout_height="50dp"
android:layout_marginLeft="50dp"
......@@ -500,6 +509,7 @@
android:textSize="28dp" />
<TextView
android:id="@+id/tv_date8"
android:layout_width="120dp"
android:layout_height="50dp"
android:layout_marginTop="10dp"
......
......@@ -13,13 +13,14 @@
<ProgressBar
android:id="@+id/animProgress"
style="@style/loading"
android:layout_width="50dip"
android:layout_height="50dip" />
android:layout_width="100dip"
android:layout_height="100dip" />
<TextView
android:id="@+id/tipTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="加载中……" />
android:text="加载中……"
android:textSize="30dp" />
</LinearLayout>
\ No newline at end of file
......@@ -36,7 +36,7 @@
android:layout_toRightOf="@id/icon_iv"
android:gravity="center_vertical"
android:textColor="@color/white"
android:textSize="30.0dip" />
android:textSize="35.0dip" />
</RelativeLayout>
</FrameLayout>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment