Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
TopPay
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qyw
TopPay
Commits
44a32eb0
Commit
44a32eb0
authored
Oct 26, 2018
by
qyw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
微信支付成功
parent
1d9d8e7c
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
706 additions
and
110 deletions
+706
-110
SpinnerAdapter.java
TOP_Pay/app/src/main/java/com/ifavine/pay/adapter/SpinnerAdapter.java
+14
-5
APIService.java
TOP_Pay/app/src/main/java/com/ifavine/pay/api/APIService.java
+17
-19
APIWrapper.java
TOP_Pay/app/src/main/java/com/ifavine/pay/api/APIWrapper.java
+11
-3
JsonResponseBodyConverter.java
TOP_Pay/app/src/main/java/com/ifavine/pay/api/JsonResponseBodyConverter.java
+1
-1
Constants.java
TOP_Pay/app/src/main/java/com/ifavine/pay/common/Constants.java
+1
-1
MainActivity.java
TOP_Pay/app/src/main/java/com/ifavine/pay/ui/activity/MainActivity.java
+246
-26
WelcomeActivity.java
TOP_Pay/app/src/main/java/com/ifavine/pay/ui/activity/WelcomeActivity.java
+1
-0
BaseUtil.java
TOP_Pay/app/src/main/java/com/ifavine/pay/utils/BaseUtil.java
+11
-0
DialogMainSetUtils.java
TOP_Pay/app/src/main/java/com/ifavine/pay/utils/DialogMainSetUtils.java
+333
-33
AmountView.java
TOP_Pay/app/src/main/java/com/ifavine/pay/view/AmountView.java
+8
-4
CommonResponse.java
TOP_Pay/app/src/main/java/com/ifavine/pay/vo/CommonResponse.java
+9
-0
WindowCostAmount.java
TOP_Pay/app/src/main/java/com/ifavine/pay/vo/WindowCostAmount.java
+29
-0
activity_main.xml
TOP_Pay/app/src/main/res/layout/activity_main.xml
+6
-11
dialog_amt_set.xml
TOP_Pay/app/src/main/res/layout/dialog_amt_set.xml
+13
-3
view_progressbar.xml
TOP_Pay/app/src/main/res/layout/view_progressbar.xml
+5
-3
view_toast.xml
TOP_Pay/app/src/main/res/layout/view_toast.xml
+1
-1
No files found.
TOP_Pay/app/src/main/java/com/ifavine/pay/adapter/SpinnerAdapter.java
View file @
44a32eb0
...
...
@@ -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
));
...
...
TOP_Pay/app/src/main/java/com/ifavine/pay/api/APIService.java
View file @
44a32eb0
...
...
@@ -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
);
}
TOP_Pay/app/src/main/java/com/ifavine/pay/api/APIWrapper.java
View file @
44a32eb0
...
...
@@ -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
);
...
...
TOP_Pay/app/src/main/java/com/ifavine/pay/api/JsonResponseBodyConverter.java
View file @
44a32eb0
...
...
@@ -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 data
2
:"
+
data
);
Log
.
i
(
"aaaaa"
,
"response data:"
+
data
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
...
...
TOP_Pay/app/src/main/java/com/ifavine/pay/common/Constants.java
View file @
44a32eb0
...
...
@@ -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"
;
...
...
TOP_Pay/app/src/main/java/com/ifavine/pay/ui/activity/MainActivity.java
View file @
44a32eb0
...
...
@@ -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
date
Time
;
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
;
date
Time
+=
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
;
}
}
TOP_Pay/app/src/main/java/com/ifavine/pay/ui/activity/WelcomeActivity.java
View file @
44a32eb0
...
...
@@ -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
);
...
...
TOP_Pay/app/src/main/java/com/ifavine/pay/utils/BaseUtil.java
View file @
44a32eb0
...
...
@@ -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
();
...
...
TOP_Pay/app/src/main/java/com/ifavine/pay/utils/DialogMainSetUtils.java
View file @
44a32eb0
...
...
@@ -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
;
...
...
TOP_Pay/app/src/main/java/com/ifavine/pay/view/AmountView.java
View file @
44a32eb0
...
...
@@ -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
=
100
0
;
//商品库存
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
+
""
);
}
}
...
...
TOP_Pay/app/src/main/java/com/ifavine/pay/vo/CommonResponse.java
View file @
44a32eb0
...
...
@@ -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
);
...
...
TOP_Pay/app/src/main/java/com/ifavine/pay/vo/WindowCostAmount.java
0 → 100644
View file @
44a32eb0
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
;
}
TOP_Pay/app/src/main/res/layout/activity_main.xml
View file @
44a32eb0
...
...
@@ -217,12 +217,11 @@
android:textSize=
"28dp"
/>
<TextView
android:id=
"@+id/t
v_t
ype"
android:id=
"@+id/t
_DinnerT
ype"
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/t
v_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/t
v_
"
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>
...
...
TOP_Pay/app/src/main/res/layout/dialog_amt_set.xml
View file @
44a32eb0
...
...
@@ -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"
...
...
TOP_Pay/app/src/main/res/layout/view_progressbar.xml
View file @
44a32eb0
...
...
@@ -13,13 +13,14 @@
<ProgressBar
android:id=
"@+id/animProgress"
style=
"@style/loading"
android:layout_width=
"
5
0dip"
android:layout_height=
"
5
0dip"
/>
android:layout_width=
"
10
0dip"
android:layout_height=
"
10
0dip"
/>
<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
TOP_Pay/app/src/main/res/layout/view_toast.xml
View file @
44a32eb0
...
...
@@ -36,7 +36,7 @@
android:layout_toRightOf=
"@id/icon_iv"
android:gravity=
"center_vertical"
android:textColor=
"@color/white"
android:textSize=
"3
0
.0dip"
/>
android:textSize=
"3
5
.0dip"
/>
</RelativeLayout>
</FrameLayout>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment