Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xm-sportstest
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiamai-test
xm-sportstest
Commits
c55f154e
Commit
c55f154e
authored
Jul 15, 2024
by
yangfangfang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
补充会员相关校验
parent
150d7c46
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
166 additions
and
35 deletions
+166
-35
src/main/java/com/xiaomai/cases/polar/member/TestForceUpdate.java
+166
-35
No files found.
src/main/java/com/xiaomai/cases/polar/member/TestForceUpdate.java
View file @
c55f154e
...
...
@@ -23,13 +23,15 @@ import java.math.BigDecimal;
public
class
TestForceUpdate
extends
XMBaseTest
{
String
cardId
;
OrderTools
orderTools
=
new
OrderTools
()
;
String
getDetailId
;
RevenueAndExpenditureTools
revenueAndExpenditureTools
=
new
RevenueAndExpenditure
Tools
();
OrderTools
orderTools
=
new
Order
Tools
();
CardTools
cardTools
=
new
CardTools
();
Tools
tools
=
new
Tools
();
MemberTools
memberTools
=
new
MemberTools
();
@BeforeMethod
public
void
beforeTest
(){
...
...
@@ -43,26 +45,29 @@ public class TestForceUpdate extends XMBaseTest {
super
.
beforeTest
();
}
@Test
(
description
=
"编辑正式会员信息"
)
@Test
(
description
=
"编辑正式会员
/流失会员
信息"
)
public
void
testForceUpdate
()
{
JSONObject
create
=
tools
.
create
(
"编辑正式会员"
+
RandomStringUtil
.
randomString
(
3
),
RandomStringUtil
.
randomMobile
(
"88"
));
String
memberId
=
create
.
getString
(
"result"
);
//编辑正式会员信息
//创建订单转成正式会员
//创建潜在会员
JSONObject
create
=
tools
.
create
(
"潜在会员"
+
RandomStringUtil
.
randomString
(
3
),
RandomStringUtil
.
randomMobile
(
"88"
));
String
memberId
=
create
.
getString
(
"result"
);
//创建订单线索会员转正式会员(状态流转:线索转正式)
//获取会员卡信息
//获取会员卡列表,没有则新建一个
int
cardTotal
=
Integer
.
parseInt
(
orderTools
.
fetchPageOfMemberCard
(
"次卡"
).
getJSONObject
(
"result"
).
getString
(
"total"
));
if
(
cardTotal
==
0
)
{
cardId
=
cardTools
.
memberCardCreate
(
"创建订单会员卡"
+
TimeUtils
.
getCurrentTime
()).
getString
(
"result"
);
cardId
=
cardTools
.
memberCardCreate
(
"创建订单会员卡"
+
TimeUtils
.
getCurrentTime
()).
getString
(
"result"
);
}
JSONObject
memberCard
=
orderTools
.
fetchPageOfMemberCard
(
"次卡"
);
cardId
=
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
BigDecimal
quantity
=
new
BigDecimal
(
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"balance"
));
float
price
=
Float
.
parseFloat
(
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"price"
));
int
validPeriod
=
Integer
.
parseInt
(
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"validPeriod"
));
JSONObject
memberCard
=
orderTools
.
fetchPageOfMemberCard
(
"次卡"
);
cardId
=
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
BigDecimal
quantity
=
new
BigDecimal
(
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"balance"
));
float
price
=
Float
.
parseFloat
(
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"price"
));
int
validPeriod
=
Integer
.
parseInt
(
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"validPeriod"
));
try
{
Thread
.
sleep
(
1000
);
...
...
@@ -71,7 +76,7 @@ public class TestForceUpdate extends XMBaseTest {
}
//获取签单要用的卡快照id
String
latestSnapshotId
=
orderTools
.
fetchDetailById
(
cardId
,
xmAppApi
.
getLoginInfo
().
getBrandId
(),
xmAppApi
.
getLoginInfo
().
getStudioId
(),
xmAppApi
.
getLoginInfo
().
getAdminId
()).
getJSONObject
(
"result"
).
getString
(
"latestSnapshotId"
);
String
latestSnapshotId
=
orderTools
.
fetchDetailById
(
cardId
,
xmAppApi
.
getLoginInfo
().
getBrandId
(),
xmAppApi
.
getLoginInfo
().
getStudioId
(),
xmAppApi
.
getLoginInfo
().
getAdminId
()).
getJSONObject
(
"result"
).
getString
(
"latestSnapshotId"
);
try
{
Thread
.
sleep
(
1000
);
...
...
@@ -80,7 +85,7 @@ public class TestForceUpdate extends XMBaseTest {
}
//检查会员对该卡是否超出购买上限
boolean
limitResult
=
orderTools
.
checkAllowPurchase
(
"MEMBER_CARD"
,
cardId
,
memberId
,
"1"
,
xmAppApi
.
getLoginInfo
().
getBrandId
(),
xmAppApi
.
getLoginInfo
().
getStudioId
(),
xmAppApi
.
getLoginInfo
().
getAdminId
()).
getBoolean
(
"success"
);
boolean
limitResult
=
orderTools
.
checkAllowPurchase
(
"MEMBER_CARD"
,
cardId
,
memberId
,
"1"
,
xmAppApi
.
getLoginInfo
().
getBrandId
(),
xmAppApi
.
getLoginInfo
().
getStudioId
(),
xmAppApi
.
getLoginInfo
().
getAdminId
()).
getBoolean
(
"success"
);
try
{
Thread
.
sleep
(
1000
);
...
...
@@ -88,12 +93,12 @@ public class TestForceUpdate extends XMBaseTest {
throw
new
RuntimeException
(
e
);
}
if
(
limitResult
==
true
)
{
if
(
limitResult
==
true
)
{
//创建订单
JSONObject
orderResult
=
orderTools
.
signOrder
(
cardId
,
latestSnapshotId
,
quantity
,
price
,
validPeriod
,
latestSnapshotId
,
price
/
2
,
"PURCHASE"
,
"MEMBER_CARD"
,
memberId
,
price
-
price
/
2
,
price
-
price
/
2
,
"1"
);
String
getDetailId
=
orderResult
.
getString
(
"result"
);
getDetailId
=
orderResult
.
getString
(
"result"
);
try
{
Thread
.
sleep
(
3000
);
...
...
@@ -104,24 +109,24 @@ public class TestForceUpdate extends XMBaseTest {
}
//获取正式会员列表
JSONObject
memberResult
=
tools
.
search
(
"NORMAL"
,
"NORMAL"
);
JSONObject
memberResult
=
tools
.
search
(
"NORMAL"
,
"NORMAL"
);
int
memberResultPages
=
Integer
.
parseInt
(
memberResult
.
getJSONObject
(
"result"
).
getString
(
"pages"
));
int
memberResultTotal
=
Integer
.
parseInt
(
memberResult
.
getJSONObject
(
"result"
).
getString
(
"total"
));
int
memberResultPages
=
Integer
.
parseInt
(
memberResult
.
getJSONObject
(
"result"
).
getString
(
"pages"
));
int
memberResultTotal
=
Integer
.
parseInt
(
memberResult
.
getJSONObject
(
"result"
).
getString
(
"total"
));
for
(
int
k
=
0
;
k
==
memberResultPages
+
1
;
k
++)
{
int
n
=
k
==
memberResultPages
?
(
memberResultTotal
%
10
==
0
?
10
:
memberResultTotal
%
10
)
:
10
;
JSONArray
records
=
memberResult
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
);
boolean
flag
=
true
;
for
(
int
i
=
0
;
i
<
n
;
i
++)
{
String
memberResultId
=
records
.
getJSONObject
(
i
).
getString
(
"id"
);
if
(
memberResultId
.
equals
(
memberId
))
{
for
(
int
k
=
0
;
k
==
memberResultPages
+
1
;
k
++)
{
int
n
=
k
==
memberResultPages
?
(
memberResultTotal
%
10
==
0
?
10
:
memberResultTotal
%
10
)
:
10
;
JSONArray
records
=
memberResult
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
);
boolean
flag
=
true
;
for
(
int
i
=
0
;
i
<
n
;
i
++)
{
String
memberResultId
=
records
.
getJSONObject
(
i
).
getString
(
"id"
);
if
(
memberResultId
.
equals
(
memberId
))
{
flag
=
true
;
break
;
}
}
Assert
.
assertEquals
(
true
,
flag
,
"潜在会员购买订单已完成,但会员状态转成
正式会员失败"
);
Assert
.
assertEquals
(
true
,
flag
,
"潜在会员购买订单已完成,但潜在会员转
正式会员失败"
);
}
try
{
...
...
@@ -130,12 +135,13 @@ public class TestForceUpdate extends XMBaseTest {
throw
new
RuntimeException
(
e
);
}
//编辑
//编辑正式会员
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"status"
,
"
POTENTI
AL"
);
jsonObject
.
put
(
"status"
,
"
NORM
AL"
);
jsonObject
.
put
(
"name"
,
"自动化正式会员"
+
RandomStringUtil
.
randomString
(
2
));
jsonObject
.
put
(
"phone"
,
RandomStringUtil
.
randomMobile
(
"22"
));
jsonObject
.
put
(
"gender"
,
"WOMEN"
);
...
...
@@ -145,21 +151,146 @@ public class TestForceUpdate extends XMBaseTest {
jsonObject
.
put
(
"idCardCode"
,
"411421199808080225"
);
jsonObject
.
put
(
"height"
,
"186"
);
jsonObject
.
put
(
"weight"
,
"76"
);
jsonObject
.
put
(
"trainTarget"
,
"塑形"
+
RandomStringUtil
.
randomString
(
2
)
);
jsonObject
.
put
(
"profession"
,
"金融"
+
RandomStringUtil
.
randomString
(
2
)
);
jsonObject
.
put
(
"incomeLevel"
,
"亿万富翁"
+
RandomStringUtil
.
randomString
(
2
)
);
jsonObject
.
put
(
"address"
,
"地址"
+
RandomStringUtil
.
randomString
(
6
)
);
jsonObject
.
put
(
"trainTarget"
,
"塑形"
);
jsonObject
.
put
(
"profession"
,
"金融"
);
jsonObject
.
put
(
"incomeLevel"
,
"亿万富翁"
);
jsonObject
.
put
(
"address"
,
"地址"
);
jsonObject
.
put
(
"emergencyContactPerson"
,
RandomStringUtil
.
randomString
(
3
));
jsonObject
.
put
(
"emergencyContactPhone"
,
RandomStringUtil
.
randomMobile
(
"66"
));
jsonObject
.
put
(
"resourceId"
,
"1"
);
jsonObject
.
put
(
"intention"
,
"HIGH"
);
jsonObject
.
put
(
"creatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"remark"
,
"备注
"
+
RandomStringUtil
.
randomString
(
12
)
);
jsonObject
.
put
(
"remark"
,
"备注
备注备注备注备注备注备注备注"
);
jsonObject
.
put
(
"memberId"
,
memberId
);
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
jsonObject
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$success"
),
"true"
,
"编辑正式会员信息失败"
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$success"
),
"true"
,
"编辑正式会员信息失败"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验编辑正式会员信息
//获取正式会员详情
JSONObject
result
=
memberTools
.
findStudioMemberDetail
(
memberId
).
getJSONObject
(
"result"
);
Assert
.
assertEquals
(
result
.
getString
(
"status"
),
"NORMAL"
,
"订单购买成功后,潜在学员未转成正式会员"
);
Assert
.
assertEquals
(
result
.
getString
(
"gender"
),
"WOMEN"
,
"编辑之后,性别编辑失败"
);
Assert
.
assertEquals
(
result
.
getString
(
"idCardType"
),
"IDENTITY"
,
"编辑之后,证件类型编辑失败"
);
Assert
.
assertEquals
(
result
.
getString
(
"idCardCode"
),
"411421199808080225"
,
"编辑之后,身份证号编辑失败"
);
Assert
.
assertEquals
(
result
.
getString
(
"height"
),
"186"
,
"编辑之后,身高编辑失败"
);
Assert
.
assertEquals
(
result
.
getString
(
"weight"
),
"76"
,
"编辑之后,体重编辑失败"
);
Assert
.
assertEquals
(
result
.
getString
(
"trainTarget"
),
"塑形"
,
"编辑之后,训练目标编辑失败"
);
Assert
.
assertEquals
(
result
.
getString
(
"profession"
),
"金融"
,
"编辑之后,职业编辑失败"
);
Assert
.
assertEquals
(
result
.
getString
(
"incomeLevel"
),
"亿万富翁"
,
"编辑之后,收入水平编辑失败"
);
Assert
.
assertEquals
(
result
.
getString
(
"address"
),
"地址"
,
"编辑之后,地址编辑失败"
);
Assert
.
assertEquals
(
result
.
getString
(
"resourceId"
),
"1"
,
"编辑之后,来源编辑失败"
);
Assert
.
assertEquals
(
result
.
getString
(
"remark"
),
"备注备注备注备注备注备注备注备注"
,
"编辑之后,备注编辑失败"
);
//编辑流失会员信息
//退单正式会员转流失会员(状态流转:正式转流失)
//退单
//创建退单订单
//查询要退的卡id 从listUserRefundableCard-查询用户可退的会员卡列表中获取
JSONObject
listUserRefundableCardResult
=
orderTools
.
listUserRefundableCard
(
"MEMBER"
,
""
,
memberId
);
String
listUserRefundableId
=
listUserRefundableCardResult
.
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
//查询订单或者收支可退流水金额(包含乐动收银状态信息)
boolean
checkRefundableAmountResult
=
orderTools
.
checkRefundableAmount
(
getDetailId
,
price
-
price
/
2
).
getBoolean
(
"success"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
if
(
checkRefundableAmountResult
==
true
)
{
//退单-会员卡
JSONObject
refundOrderResult
=
orderTools
.
refundOrder
(
0
,
listUserRefundableId
,
quantity
,
price
-
price
/
2
,
"MEMBER_CARD"
,
memberId
,
price
-
price
/
2
,
price
-
price
/
2
,
"1"
);
try
{
Thread
.
sleep
(
3000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
//获取流失会员列表
JSONObject
historyResult
=
tools
.
search
(
"HISTORY"
,
"HISTORY"
).
getJSONObject
(
"result"
);
String
historyId
=
historyResult
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
String
historyStatus
=
historyResult
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"status"
);
Assert
.
assertEquals
(
historyId
,
memberId
,
"列表中的流失会员非上述正式转流失的会员"
);
Assert
.
assertEquals
(
historyStatus
,
"HISTORY"
,
"正式会员转流失会员失败"
);
//获取会员详情
JSONObject
historyDetailResult
=
memberTools
.
findStudioMemberDetail
(
memberId
).
getJSONObject
(
"result"
);
String
historyDetailStatus
=
historyDetailResult
.
getString
(
"status"
);
Assert
.
assertEquals
(
historyDetailStatus
,
"HISTORY"
,
"正式会员退单已完成,正式会员转流失会员失败"
);
try
{
Thread
.
sleep
(
3000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//编辑流失会员
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
object
.
put
(
"status"
,
"HISTORY"
);
object
.
put
(
"name"
,
"自动化流失会员"
+
RandomStringUtil
.
randomString
(
2
));
object
.
put
(
"phone"
,
RandomStringUtil
.
randomMobile
(
"22"
));
object
.
put
(
"gender"
,
"MAN"
);
object
.
put
(
"wechat"
,
RandomStringUtil
.
randomMobile
(
"66"
));
object
.
put
(
"birthday"
,
TimeUtils
.
getBeforeDayDate
(
10
));
object
.
put
(
"idCardType"
,
"IDENTITY"
);
object
.
put
(
"idCardCode"
,
"411421199808080888"
);
object
.
put
(
"height"
,
"196"
);
object
.
put
(
"weight"
,
"86"
);
object
.
put
(
"trainTarget"
,
"爵士"
);
object
.
put
(
"profession"
,
"公务员"
);
object
.
put
(
"incomeLevel"
,
"千万富翁"
);
object
.
put
(
"address"
,
"河南省郑州市"
);
object
.
put
(
"emergencyContactPerson"
,
RandomStringUtil
.
randomString
(
3
));
object
.
put
(
"emergencyContactPhone"
,
RandomStringUtil
.
randomMobile
(
"66"
));
object
.
put
(
"resourceId"
,
"2"
);
object
.
put
(
"intention"
,
"HIGH"
);
object
.
put
(
"creatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
object
.
put
(
"remark"
,
"备注"
);
object
.
put
(
"memberId"
,
memberId
);
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
object
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$success"
),
"true"
,
"编辑流失会员信息失败"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验编辑流失会员信息
//获取流失会员详情
JSONObject
historyDetailResult1
=
memberTools
.
findStudioMemberDetail
(
memberId
).
getJSONObject
(
"result"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"status"
),
"HISTORY"
,
"退单成功后,正式学员未转成流失会员"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"gender"
),
"MAN"
,
"编辑之后,性别编辑失败"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"idCardType"
),
"IDENTITY"
,
"编辑之后,证件类型编辑失败"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"idCardCode"
),
"411421199808080888"
,
"编辑之后,身份证号编辑失败"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"height"
),
"196"
,
"编辑之后,身高编辑失败"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"weight"
),
"86"
,
"编辑之后,体重编辑失败"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"trainTarget"
),
"爵士"
,
"编辑之后,训练目标编辑失败"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"profession"
),
"公务员"
,
"编辑之后,职业编辑失败"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"incomeLevel"
),
"千万富翁"
,
"编辑之后,收入水平编辑失败"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"address"
),
"河南省郑州市"
,
"编辑之后,地址编辑失败"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"resourceId"
),
"2"
,
"编辑之后,来源编辑失败"
);
Assert
.
assertEquals
(
historyDetailResult1
.
getString
(
"remark"
),
"备注"
,
"编辑之后,备注编辑失败"
);
}
...
...
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