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
a1cb1e67
Commit
a1cb1e67
authored
Sep 25, 2024
by
yangfangfang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
8c502b01
c6b75dfd
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1285 additions
and
21 deletions
+1285
-21
src/main/java/com/xiaomai/cases/lunar/reserve/TestAddMemberReserve.java
+1
-1
src/main/java/com/xiaomai/cases/lunar/reserve/TestAddToQueue.java
+7
-2
src/main/java/com/xiaomai/cases/polar/admin/TestEditStudioAdmin.java
+1
-1
src/main/java/com/xiaomai/cases/polar/coupon/CouponTools.java
+79
-2
src/main/java/com/xiaomai/cases/polar/eleContract/TestGetValidBalanceList.java
+28
-11
src/main/java/com/xiaomai/cases/polar/experienceCard/TestUpdateExperienceCard.java
+2
-0
src/main/java/com/xiaomai/cases/polar/experienceCard/Tools.java
+2
-0
src/main/java/com/xiaomai/cases/polar/luckyDraw/LuckyDrawTools.java
+553
-0
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestAbnormalLuckyDraw.java
+66
-0
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestAddCustomizePrize.java
+62
-0
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestGetShareDetail.java
+68
-0
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestGetStudioMemberPrizeByPage.java
+71
-0
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestLuckyDrawLottery.java
+190
-0
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestPrizeScanCode.java
+100
-0
src/main/java/com/xiaomai/cases/polar/memberCard/CardTools.java
+49
-0
src/main/java/com/xiaomai/cases/polar/schedule/camp/TestEditCampRuleSchedule.java
+1
-1
src/main/java/com/xiaomai/enums/ApiModule.java
+2
-0
src/main/resources/config.properties
+3
-3
No files found.
src/main/java/com/xiaomai/cases/lunar/reserve/TestAddMemberReserve.java
View file @
a1cb1e67
...
@@ -188,7 +188,7 @@ public class TestAddMemberReserve extends BaseTestImpl {
...
@@ -188,7 +188,7 @@ public class TestAddMemberReserve extends BaseTestImpl {
ruldId
=
XMJSONPath
.
readPath
(
getGroupRuleScheduleList
.
getJSONObject
(
0
),
"$.ruleId"
);
ruldId
=
XMJSONPath
.
readPath
(
getGroupRuleScheduleList
.
getJSONObject
(
0
),
"$.ruleId"
);
Long
scheduleEndTime
=
TimeUtils
.
getTodayEndTime
(
1
);
Long
scheduleEndTime
=
TimeUtils
.
getTodayEndTime
(
1
);
try
{
try
{
Thread
.
sleep
(
25
00
);
Thread
.
sleep
(
50
00
);
}
catch
(
InterruptedException
e
)
{
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
throw
new
RuntimeException
(
e
);
}
}
...
...
src/main/java/com/xiaomai/cases/lunar/reserve/TestAddToQueue.java
View file @
a1cb1e67
...
@@ -181,6 +181,11 @@ public class TestAddToQueue extends BaseTestImpl {
...
@@ -181,6 +181,11 @@ public class TestAddToQueue extends BaseTestImpl {
reserveCTools
.
cancelMemberReserve
(
memberInfo
.
getString
(
2
),
memberInfo
.
getString
(
0
),
true
);
reserveCTools
.
cancelMemberReserve
(
memberInfo
.
getString
(
2
),
memberInfo
.
getString
(
0
),
true
);
// 取消验证课次详情、预约记录、预约详情、B端预约详情内容
// 取消验证课次详情、预约记录、预约详情、B端预约详情内容
checkResult
(
"QUEUE_CANCEL"
,
"QUEUE_CANCEL"
,
"取消排队"
);
checkResult
(
"QUEUE_CANCEL"
,
"QUEUE_CANCEL"
,
"取消排队"
);
try
{
Thread
.
sleep
(
5000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
break
;
break
;
case
"notQueue"
:
case
"notQueue"
:
// 预约规则开启允许排队
// 预约规则开启允许排队
...
@@ -208,7 +213,7 @@ public class TestAddToQueue extends BaseTestImpl {
...
@@ -208,7 +213,7 @@ public class TestAddToQueue extends BaseTestImpl {
ruleTools
.
saveGroupBookingRules
(
id
,
true
,
bookingSeatCount
,
true
,
true
,
random
.
nextInt
(
30
)+
10
,
false
,
random
.
nextInt
(
100
)+
10
,
random
.
nextInt
(
5
)+
1
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
);
ruleTools
.
saveGroupBookingRules
(
id
,
true
,
bookingSeatCount
,
true
,
true
,
random
.
nextInt
(
30
)+
10
,
false
,
random
.
nextInt
(
100
)+
10
,
random
.
nextInt
(
5
)+
1
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
);
try
{
try
{
Thread
.
sleep
(
1
000
);
Thread
.
sleep
(
5
000
);
}
catch
(
InterruptedException
e
)
{
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
throw
new
RuntimeException
(
e
);
}
}
...
@@ -217,7 +222,7 @@ public class TestAddToQueue extends BaseTestImpl {
...
@@ -217,7 +222,7 @@ public class TestAddToQueue extends BaseTestImpl {
memberInfo
.
set
(
2
,
reserveId
);
//将原来的id替换成新的id
memberInfo
.
set
(
2
,
reserveId
);
//将原来的id替换成新的id
try
{
try
{
Thread
.
sleep
(
1
000
);
Thread
.
sleep
(
5
000
);
}
catch
(
InterruptedException
e
)
{
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
throw
new
RuntimeException
(
e
);
}
}
...
...
src/main/java/com/xiaomai/cases/polar/admin/TestEditStudioAdmin.java
View file @
a1cb1e67
...
@@ -39,7 +39,7 @@ public class TestEditStudioAdmin extends BaseTestImpl {
...
@@ -39,7 +39,7 @@ public class TestEditStudioAdmin extends BaseTestImpl {
@Test
@Test
public
void
testEditStudioAdmin
()
{
public
void
testEditStudioAdmin
()
{
String
body
=
"{\"size\":10,\"current\":0
,\"state\":\"DUTY\"
}"
;
String
body
=
"{\"size\":10,\"current\":0}"
;
JSONObject
adminPage
=
adminTools
.
pageStudioAdmin
(
body
);
JSONObject
adminPage
=
adminTools
.
pageStudioAdmin
(
body
);
int
total
=
Integer
.
parseInt
(
adminPage
.
getJSONObject
(
"result"
).
getString
(
"total"
));
int
total
=
Integer
.
parseInt
(
adminPage
.
getJSONObject
(
"result"
).
getString
(
"total"
));
if
(
total
>
1
){
if
(
total
>
1
){
...
...
src/main/java/com/xiaomai/cases/polar/coupon/CouponTools.java
View file @
a1cb1e67
...
@@ -105,6 +105,59 @@ public class CouponTools extends BaseTestImpl {
...
@@ -105,6 +105,59 @@ public class CouponTools extends BaseTestImpl {
}
}
/**
/**
* 创建用于营销活动的优惠券
* @param useThresholdType:"WITHOUT"无门槛,"THRESHOLD"达到条件可用
* @param couponName
* @param allScope 全部商品可用true,指定商品可用false
* @param userInfos
* @return
*/
public
String
createStudioCoupon
(
String
useThresholdType
,
String
couponName
,
Boolean
allScope
,
DataUserInfo
...
userInfos
)
{
setUP
(
"API_createCoupon"
,
userInfos
);
String
[]
memberStatusLimits
=
{
"POTENTIAL"
,
"NORMAL"
,
"HISTORY"
};
JSONObject
receiveCondition
=
new
JSONObject
();
receiveCondition
.
put
(
"receiveTimesUpperType"
,
"WITHOUT"
);
//每人领取次数不限制
receiveCondition
.
put
(
"memberStatusLimits"
,
memberStatusLimits
);
//可领取会员类型
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"useThresholdType"
,
useThresholdType
);
if
(
useThresholdType
.
equals
(
"THRESHOLD"
))
{
//使用门槛是达到条件可用
body
.
put
(
"useThreshold"
,
10
);
//目前没写成动态传参,固定为10元
}
body
.
put
(
"useForActivity"
,
true
);
//开启营销活动开关
body
.
put
(
"quantityLimit"
,
false
);
//若为true,则填写quantity
body
.
put
(
"receiveCondition"
,
receiveCondition
);
body
.
put
(
"name"
,
couponName
);
body
.
put
(
"validPeriodType"
,
"RELATIVE"
);
//有效期:领取后生效
body
.
put
(
"validPeriodStartTime"
,
null
);
body
.
put
(
"validPeriodEndTime"
,
null
);
body
.
put
(
"relativeDay"
,
"30"
);
//领取30天内有效
body
.
put
(
"memo"
,
"自动化脚本生成用于营销活动的优惠券"
);
body
.
put
(
"quantity"
,
"-1"
);
//发放数量不限制
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"allScope"
,
allScope
);
//全部可用
if
(
allScope
.
equals
(
false
)){
String
[]
scope
=
{
"MEMBER_CARD"
,
"TRAINING_CAMP"
,
"SINGLE_RESERVE"
,
"EXPERIENCE_CARD"
};
//指定会员卡、体验卡、训练营、单次约课
body
.
put
(
"scope"
,
scope
);
//指定商品范围
body
.
put
(
"preferentialType"
,
"DISCOUNT"
);
//打折
body
.
put
(
"preferential"
,
8.8
);
//打8.8折
}
else
{
body
.
put
(
"preferentialType"
,
"CERTAIN"
);
body
.
put
(
"preferential"
,
10
);
//直减10元
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
);
Assert
.
assertTrue
(
Boolean
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.success"
))==
true
,
"调用接口返回结果:"
+
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.message"
));
return
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result"
);
}
/**
* 查看优惠券列表
* 查看优惠券列表
* @param nameLike 全局搜索中 根据优惠券名称搜索
* @param nameLike 全局搜索中 根据优惠券名称搜索
* @param status 列表中根据优惠券状态搜索
* @param status 列表中根据优惠券状态搜索
...
@@ -236,8 +289,8 @@ public class CouponTools extends BaseTestImpl {
...
@@ -236,8 +289,8 @@ public class CouponTools extends BaseTestImpl {
* 作废会员已领取/已发放的优惠券
* 作废会员已领取/已发放的优惠券
* @param recordId 对应的记录ID
* @param recordId 对应的记录ID
*/
*/
public
void
abandonMembercouponReceiveRecord
(
String
recordId
){
public
void
abandonMembercouponReceiveRecord
(
String
recordId
,
DataUserInfo
...
userInfo
){
setUP
(
"API_abandonMembercouponReceiveRecord"
);
setUP
(
"API_abandonMembercouponReceiveRecord"
,
userInfo
);
JSONObject
body
=
new
JSONObject
();
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
...
@@ -248,6 +301,29 @@ public class CouponTools extends BaseTestImpl {
...
@@ -248,6 +301,29 @@ public class CouponTools extends BaseTestImpl {
}
}
/**
* 会员名下的优惠券
* @param receiverId
* @param status
* @param userInfo
* @return
*/
public
JSONObject
pageMemberReceivedCoupon
(
String
receiverId
,
String
status
,
DataUserInfo
...
userInfo
){
setUP
(
"API_pageMemberReceivedCoupon"
,
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"current"
,
0
);
body
.
put
(
"receiverId"
,
receiverId
);
body
.
put
(
"size"
,
20
);
body
.
put
(
"status"
,
status
);
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
);
Assert
.
assertTrue
(
Boolean
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.success"
))==
true
,
"调用接口返回结果:"
+
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.message"
));
return
dataApi
.
getBodyInJSON
();
}
}
}
\ No newline at end of file
src/main/java/com/xiaomai/cases/polar/eleContract/TestGetValidBalanceList.java
View file @
a1cb1e67
...
@@ -11,6 +11,8 @@ import org.testng.annotations.BeforeMethod;
...
@@ -11,6 +11,8 @@ import org.testng.annotations.BeforeMethod;
import
org.testng.annotations.Test
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
/**
* @BelongsProject: xm-sportstest
* @BelongsProject: xm-sportstest
...
@@ -32,21 +34,36 @@ public class TestGetValidBalanceList extends BaseTestImpl {
...
@@ -32,21 +34,36 @@ public class TestGetValidBalanceList extends BaseTestImpl {
}
}
@Test
@Test
public
void
testGetValidBalanceList
(){
public
void
testGetValidBalanceList
()
{
JSONObject
body
=
new
JSONObject
();
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"tenantId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"tenantId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
headers
).
assetsSuccess
(
true
);
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
headers
).
assetsSuccess
(
true
);
Assert
.
assertTrue
(
xmAppApi
.
getBodyInJSON
().
getJSONArray
(
"result"
).
size
()
>
0
,
"获取租户有效余额记录失败"
);
Assert
.
assertTrue
(
xmAppApi
.
getBodyInJSON
().
getJSONArray
(
"result"
).
size
()
>
0
,
"获取租户有效余额记录失败"
);
// 和充值记录的数据对比
// 和充值记录的数据对比
String
[]
keys
=
{
"id"
,
"tenantId"
,
"productCode"
,
"purchaseAmount"
,
"startTime"
,
"endTime"
,
"payChannel"
};
String
[]
keys
=
{
"id"
,
"tenantId"
,
"productCode"
,
"purchaseAmount"
,
"startTime"
,
"endTime"
,
"payChannel"
};
for
(
int
i
=
0
;
i
<
keys
.
length
;
i
++){
Assert
.
assertEquals
(
xmAppApi
.
getBodyInJSON
().
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
keys
[
i
]),
eleContractTools
.
getBalanceList
().
getJSONObject
(
0
).
getString
(
keys
[
i
]),
"获取租户有效余额记录与充值记录列表内容对比"
);
int
total
=
xmAppApi
.
getBodyInJSON
().
getJSONArray
(
"result"
).
size
();
List
<
JSONObject
>
list1
=
new
ArrayList
<>();
List
<
JSONObject
>
list2
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
total
;
i
++)
{
list1
.
add
(
eleContractTools
.
getBalanceList
().
getJSONObject
(
i
));
list2
.
add
(
xmAppApi
.
getBodyInJSON
().
getJSONArray
(
"result"
).
getJSONObject
(
i
));
}
}
}
int
flag
=
1
;
for
(
int
i
=
0
;
i
<
total
;
i
++)
{
for
(
int
j
=
0
;
j
<
keys
.
length
;
j
++)
{
String
expected
=
list1
.
get
(
i
).
getString
(
keys
[
j
]);
String
actual
=
list2
.
get
(
total
-
flag
).
getString
(
keys
[
j
]);
Assert
.
assertEquals
(
actual
,
expected
,
"获取租户有效余额记录与充值记录列表内容对比"
);
}
flag
++;
}
}
}
}
src/main/java/com/xiaomai/cases/polar/experienceCard/TestUpdateExperienceCard.java
View file @
a1cb1e67
...
@@ -81,6 +81,8 @@ public class TestUpdateExperienceCard extends XMBaseTest {
...
@@ -81,6 +81,8 @@ public class TestUpdateExperienceCard extends XMBaseTest {
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
object
.
put
(
"creatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
object
.
put
(
"creatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
object
.
put
(
"maxIdlePeriod"
,
"7"
);
//首次使用生效方式的最晚生效天数
object
.
put
(
"maxIdlePeriod"
,
"7"
);
//首次使用生效方式的最晚生效天数
object
.
put
(
"useForActivity"
,
"false"
);
//不开启用于营销活动
object
.
put
(
"surfaceCornerMark"
,
"自动化测试"
);
//封面标签
object
.
put
(
"surfaceCornerMark"
,
"自动化测试"
);
//封面标签
object
.
put
(
"title"
,
title
);
object
.
put
(
"title"
,
title
);
object
.
put
(
"validPeriod"
,
"10"
);
//有效期
object
.
put
(
"validPeriod"
,
"10"
);
//有效期
...
...
src/main/java/com/xiaomai/cases/polar/experienceCard/Tools.java
View file @
a1cb1e67
...
@@ -173,6 +173,8 @@ public class Tools extends XMBaseTest {
...
@@ -173,6 +173,8 @@ public class Tools extends XMBaseTest {
object
.
put
(
"maxIdlePeriod"
,
"7"
);
//首次使用生效方式的最晚生效天数
object
.
put
(
"maxIdlePeriod"
,
"7"
);
//首次使用生效方式的最晚生效天数
object
.
put
(
"surfaceCornerMark"
,
"自动化测试"
);
//封面标签
object
.
put
(
"surfaceCornerMark"
,
"自动化测试"
);
//封面标签
object
.
put
(
"title"
,
title
);
object
.
put
(
"title"
,
title
);
object
.
put
(
"useForActivity"
,
false
);
//不开启用于营销活动
object
.
put
(
"validPeriod"
,
"30"
);
//有效期
object
.
put
(
"validPeriod"
,
"30"
);
//有效期
object
.
put
(
"activatePatternList"
,
activatePatternList
);
//生效方式
object
.
put
(
"activatePatternList"
,
activatePatternList
);
//生效方式
object
.
put
(
"price"
,
price
);
//售价
object
.
put
(
"price"
,
price
);
//售价
...
...
src/main/java/com/xiaomai/cases/polar/luckyDraw/LuckyDrawTools.java
0 → 100644
View file @
a1cb1e67
package
com
.
xiaomai
.
cases
.
polar
.
luckyDraw
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.TimeUtils
;
import
org.springframework.stereotype.Component
;
@Component
(
"luckyDrawTools"
)
public
class
LuckyDrawTools
extends
BaseTestImpl
{
/**
* 查看幸运抽奖列表
* @param name 全局搜索中 根据活动名称搜索
*/
public
JSONObject
getLuckyDrawByPage
(
String
name
,
DataUserInfo
...
userInfo
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_getLuckyDrawByPage"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"current"
,
0
);
body
.
put
(
"size"
,
10
);
if
(
null
!=
name
||
!
name
.
isEmpty
())
{
body
.
put
(
"name"
,
name
);
}
// if (null != status || !status.isEmpty()) {
// body.put("status", status);
// }
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 查看优惠券列表
* @param nameLike 全局搜索中 根据优惠券名称搜索
*/
public
JSONObject
getStudioCouponList
(
String
nameLike
,
DataUserInfo
...
userInfo
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Coupon
)
.
setApiName
(
"API_getStudioCouponList"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"status"
,
"CLAIMABLE"
);
//可领取的优惠券
body
.
put
(
"useForActivity"
,
true
);
//是否开启用于营销活动
body
.
put
(
"current"
,
0
);
body
.
put
(
"size"
,
20
);
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
if
(
null
!=
nameLike
||
!
nameLike
.
isEmpty
())
{
body
.
put
(
"nameLike"
,
nameLike
);
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 查询用于营销活动的体验卡
* @param title
* @param userInfo
* @return
*/
public
JSONObject
getPageOfMemberCard
(
String
title
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
.
setApiName
(
"API_fetchPageOfMemberCard"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"shelfState"
,
"YES"
);
//启用状态
body
.
put
(
"current"
,
0
);
body
.
put
(
"size"
,
20
);
body
.
put
(
"useForActivity"
,
true
);
//是否开启营销活动
body
.
put
(
"commodityCardType"
,
"EXPERIENCE_CARD"
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
if
(
null
!=
title
||
!
title
.
isEmpty
())
{
body
.
put
(
"title"
,
title
);
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 自定义奖品列表
* @param prizeName
* @param userInfo
* @return
*/
public
JSONObject
getCustomizePrizeByPage
(
String
prizeName
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_getCustomizePrizeByPage"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"current"
,
0
);
body
.
put
(
"size"
,
20
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
if
(
null
!=
prizeName
||
!
prizeName
.
isEmpty
())
{
body
.
put
(
"prizeName"
,
prizeName
);
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 创建自定义奖品
* @param prizeName
* @param userInfo
* @return
*/
public
String
addCustomizePrize
(
String
prizeName
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_addCustomizePrize"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"prizeName"
,
prizeName
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getString
(
"result"
);
}
/**
* 删除自定义奖品
* @param prizeId
* @param userInfo
* @return
*/
public
JSONObject
delCustomizePrize
(
String
prizeId
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_delCustomizePrize"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
prizeId
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 创建幸运抽奖:主要创建活动是未开始的活动,可以通过编辑改活动为进行中
*/
public
String
addLuckyDraw
(
String
prizeType
,
String
prizeName
,
String
prizeId
,
boolean
publish
,
String
activityName
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_addLuckyDraw"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
String
[]
applyMemberStates
=
{
"POTENTIAL"
,
"NORMAL"
,
"HISTORY"
};
JSONArray
prizeList
=
new
JSONArray
();
JSONObject
prize
=
new
JSONObject
();
switch
(
prizeType
){
case
"COUPON"
:
prize
.
put
(
"prizeType"
,
prizeType
);
//优惠券
prize
.
put
(
"stock"
,
"100"
);
//奖品数量
prize
.
put
(
"probability"
,
"100"
);
//中奖概率
prize
.
put
(
"prizeImgId"
,
"1"
);
prize
.
put
(
"prizeName"
,
prizeName
);
prize
.
put
(
"prizeId"
,
prizeId
);
break
;
case
"EXPERIENCE_CARD"
:
prize
.
put
(
"prizeType"
,
prizeType
);
//体验卡
prize
.
put
(
"stock"
,
"100"
);
prize
.
put
(
"probability"
,
"100"
);
prize
.
put
(
"prizeImgId"
,
"2"
);
prize
.
put
(
"prizeName"
,
prizeName
);
prize
.
put
(
"prizeId"
,
prizeId
);
break
;
case
"CUSTOMIZE_GIFT"
:
prize
.
put
(
"prizeType"
,
prizeType
);
//自定义奖品
prize
.
put
(
"stock"
,
"100"
);
prize
.
put
(
"probability"
,
"100"
);
prize
.
put
(
"prizeImgId"
,
"3"
);
prize
.
put
(
"period"
,
"100"
);
//兑奖时效
prize
.
put
(
"prizeName"
,
prizeName
);
prize
.
put
(
"prizeId"
,
prizeId
);
}
prizeList
.
add
(
prize
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"actWay"
,
"SUDOKU"
);
body
.
put
(
"applyMemberStates"
,
applyMemberStates
);
body
.
put
(
"name"
,
activityName
);
body
.
put
(
"endTime"
,
TimeUtils
.
getAfterDayDate
(
30
));
//活动结束时间:当前时间往后30天
body
.
put
(
"maxWinNumber"
,
"100"
);
//最多可中奖次数
body
.
put
(
"noWinImgId"
,
"0"
);
//未中奖图
body
.
put
(
"noWinName"
,
"谢谢惠顾"
);
body
.
put
(
"publish"
,
publish
);
//是否发布
body
.
put
(
"actDescribe"
,
"自动化脚本创建幸运抽奖"
);
body
.
put
(
"startTime"
,
TimeUtils
.
getAfterDayDate
(
1
));
//活动开始时间:当前时间往后1天
body
.
put
(
"prizeList"
,
prizeList
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
if
(
publish
==
false
){
body
.
put
(
"totalLimit"
,
100
);
//每人总共抽100次
}
else
{
body
.
put
(
"dailyLimit"
,
100
);
//每人每日抽100次
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getString
(
"result"
);
}
/**
* 发布幸运抽奖
* @param activityId
* @param userInfo
*/
public
void
publishLuckyDraw
(
String
activityId
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_publishLuckyDraw"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
activityId
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
}
/**
* 编辑幸运抽奖,主要改活动为进行中
* @param prizeType
* @param prizeId
* @param prizeName
* @param userInfo
*/
public
void
editLuckyDraw
(
String
prizeType
,
String
prizeNo
,
String
prizeName
,
String
prizeId
,
boolean
publish
,
String
activityId
,
String
activityName
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_editLuckyDraw"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
String
[]
applyMemberStates
=
{
"POTENTIAL"
,
"NORMAL"
,
"HISTORY"
};
JSONArray
prizeList
=
new
JSONArray
();
JSONObject
prize
=
new
JSONObject
();
switch
(
prizeType
){
case
"COUPON"
:
prize
.
put
(
"id"
,
prizeNo
);
prize
.
put
(
"activityId"
,
activityId
);
prize
.
put
(
"prizeType"
,
prizeType
);
//优惠券
prize
.
put
(
"stock"
,
"100"
);
//奖品数量
prize
.
put
(
"probability"
,
"100"
);
//中奖概率
prize
.
put
(
"prizeImgId"
,
"1"
);
prize
.
put
(
"prizeName"
,
prizeName
);
prize
.
put
(
"prizeId"
,
prizeId
);
break
;
case
"EXPERIENCE_CARD"
:
prize
.
put
(
"id"
,
prizeNo
);
prize
.
put
(
"activityId"
,
activityId
);
prize
.
put
(
"prizeType"
,
prizeType
);
//体验卡
prize
.
put
(
"stock"
,
"100"
);
prize
.
put
(
"probability"
,
"100"
);
prize
.
put
(
"prizeImgId"
,
"2"
);
prize
.
put
(
"prizeName"
,
prizeName
);
prize
.
put
(
"prizeId"
,
prizeId
);
break
;
case
"CUSTOMIZE_GIFT"
:
prize
.
put
(
"id"
,
prizeNo
);
prize
.
put
(
"activityId"
,
activityId
);
prize
.
put
(
"prizeType"
,
prizeType
);
//自定义奖品
prize
.
put
(
"stock"
,
"100"
);
prize
.
put
(
"probability"
,
"100"
);
prize
.
put
(
"prizeImgId"
,
"3"
);
prize
.
put
(
"period"
,
"100"
);
//兑奖时效
prize
.
put
(
"prizeName"
,
prizeName
);
prize
.
put
(
"prizeId"
,
prizeId
);
}
prizeList
.
add
(
prize
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"actWay"
,
"SUDOKU"
);
body
.
put
(
"applyMemberStates"
,
applyMemberStates
);
body
.
put
(
"name"
,
activityName
);
body
.
put
(
"endTime"
,
TimeUtils
.
getAfterDayDate
(
30
));
//活动结束时间:当前时间往后30天
body
.
put
(
"maxWinNumber"
,
"100"
);
//最多可中奖次数
body
.
put
(
"noWinImgId"
,
0
);
//未中奖图
body
.
put
(
"noWinName"
,
"谢谢惠顾"
);
body
.
put
(
"publish"
,
publish
);
//是否发布
body
.
put
(
"actDescribe"
,
"自动化脚本edit幸运抽奖"
);
body
.
put
(
"startTime"
,
System
.
currentTimeMillis
());
//活动开始时间:当前时间
body
.
put
(
"prizeList"
,
prizeList
);
body
.
put
(
"id"
,
activityId
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
if
(
publish
==
true
){
body
.
put
(
"dailyLimit"
,
100
);
//每人每日抽100次
}
else
{
body
.
put
(
"totalLimit"
,
100
);
//每人总共抽100次
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
}
/**
* 删除幸运抽奖
* @param activityId
* @param userInfo
*/
public
void
deleteLuckyDraw
(
String
activityId
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_deleteLuckyDraw"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
activityId
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
}
/**
* 查看幸运抽奖活动详情
* @param activityId
* @param userInfo
* @return
*/
public
JSONObject
getLuckyDrawDetail
(
String
activityId
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_getLuckyDrawDetail"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
activityId
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 查看活动数据-奖品消耗
* @param activityId
* @param userInfo
* @return
*/
public
JSONObject
getLuckyPrizeCount
(
String
activityId
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_getLuckyPrizeCount"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
activityId
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 查看活动数据-参与记录
* @param activityId
* @param userInfo
* @return
*/
public
JSONObject
getLuckyAttendByPage
(
String
activityId
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_getLuckyAttendByPage"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"startCreated"
,
null
);
body
.
put
(
"endCreated"
,
null
);
body
.
put
(
"memberId"
,
null
);
body
.
put
(
"current"
,
0
);
body
.
put
(
"size"
,
10
);
body
.
put
(
"actId"
,
activityId
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序获取抽奖次数
* @param activityId
* @return
*/
public
int
getDrawNum
(
String
activityId
,
String
memberId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_LuckyDraw
)
.
setApiName
(
"API_getDrawNum"
)
.
setTerminal
(
Terminal
.
C
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
activityId
);
body
.
put
(
"memberId"
,
memberId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
Integer
.
parseInt
(
dataApi
.
getBodyInJSON
().
getString
(
"result"
));
}
/**
* 小程序查看我的奖品
* @param activityId
* @param memberId
* @return
*/
public
JSONObject
getMyActPrizeByPage
(
String
activityId
,
String
memberId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_LuckyDraw
)
.
setApiName
(
"API_getMyActPrizeByPage"
)
.
setTerminal
(
Terminal
.
C
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"current"
,
0
);
body
.
put
(
"size"
,
20
);
body
.
put
(
"activityType"
,
"LUCKY_DRAW"
);
body
.
put
(
"activityId"
,
activityId
);
body
.
put
(
"memberId"
,
memberId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序我的活动
* @param memberId
* @return
*/
public
JSONObject
getMyActivityByPage
(
String
memberId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_LuckyDraw
)
.
setApiName
(
"API_getMyActivityByPage"
)
.
setTerminal
(
Terminal
.
C
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"current"
,
0
);
body
.
put
(
"size"
,
20
);
body
.
put
(
"activityType"
,
"LUCKY_DRAW"
);
body
.
put
(
"memberId"
,
memberId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 查看小程序我的优惠券
* @param memberId
* @return
*/
public
int
countMemberReceivedCoupon
(
String
memberId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_Coupon
)
.
setApiName
(
"API_countMemberReceivedCoupon"
)
.
setTerminal
(
Terminal
.
C
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"receiverId"
,
memberId
);
body
.
put
(
"status"
,
"AVAILABLE"
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
Integer
.
parseInt
(
dataApi
.
getBodyInJSON
().
getString
(
"result"
));
}
/**
* 小程序幸运抽奖活动进行抽奖
* @param activityId
* @param memberId
* @param userInfos
* @return
*/
public
JSONObject
luckyDrawLottery
(
String
activityId
,
String
memberId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_LuckyDraw
)
.
setApiName
(
"API_luckyDrawLottery"
)
.
setTerminal
(
Terminal
.
C
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
activityId
);
body
.
put
(
"memberId"
,
memberId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 兑换自定义奖品
* @param sendRecordId
* @param userInfos
*/
public
JSONObject
exchangePrize
(
String
sendRecordId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_exchangePrize"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
sendRecordId
);
body
.
put
(
"manual"
,
true
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 核对中奖信息
* @param sendRecordId
* @param userInfos
* @return
*/
public
JSONObject
getRewardSendDetail
(
String
sendRecordId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_getRewardSendDetail"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
sendRecordId
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
}
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestAbnormalLuckyDraw.java
0 → 100644
View file @
a1cb1e67
package
com
.
xiaomai
.
cases
.
polar
.
luckyDraw
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
public
class
TestAbnormalLuckyDraw
extends
XMBaseTest
{
@Resource
(
name
=
"luckyDrawTools"
)
LuckyDrawTools
luckyDrawTools
;
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_abnormalLuckyDraw"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"xyy"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Test
(
description
=
"创建未发布活动->发布活动->失效活动->删除活动"
)
public
void
testAbnormalLuckyDraw
()
throws
InterruptedException
{
//获取活动列表数据
int
total
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyDrawByPage
(
""
),
"$.result.total"
));
//创建自定义奖品
String
prizeName
=
"奖品"
+
RandomStringUtil
.
randomString
(
5
);
String
prizeId
=
luckyDrawTools
.
addCustomizePrize
(
prizeName
);
//创建活动名称
String
activityName
=
"每人总共抽100次"
+
RandomStringUtil
.
randomString
(
5
);
//创建未发布的活动
String
activityId
=
luckyDrawTools
.
addLuckyDraw
(
"CUSTOMIZE_GIFT"
,
prizeName
,
prizeId
,
false
,
activityName
);
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyDrawByPage
(
""
),
"$.result.total"
))==
total
+
1
);
Thread
.
sleep
(
1000
);
//检验活动状态=未发布
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyDrawDetail
(
activityId
),
"$.result.status"
),
"UNPUBLISHED"
);
//此时删除自定义奖品,会报错,因为奖品关联着活动
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
delCustomizePrize
(
prizeId
),
"$.message"
),
"该奖品已被"
+
activityName
+
"活动引用,暂不支持删除。"
);
//发布活动,并且校验活动状态=未开始
luckyDrawTools
.
publishLuckyDraw
(
activityId
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyDrawDetail
(
activityId
),
"$.result.status"
),
"WAITING"
);
//失效活动
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
activityId
);
body
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.message"
),
"操作成功!"
);
//检验活动状态=已失效
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyDrawDetail
(
activityId
),
"$.result.status"
),
"ABNORMAL"
);
//删除活动
luckyDrawTools
.
deleteLuckyDraw
(
activityId
);
//删除自定义奖品
luckyDrawTools
.
delCustomizePrize
(
prizeId
);
}
}
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestAddCustomizePrize.java
0 → 100644
View file @
a1cb1e67
package
com
.
xiaomai
.
cases
.
polar
.
luckyDraw
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
public
class
TestAddCustomizePrize
extends
XMBaseTest
{
@Resource
(
name
=
"luckyDrawTools"
)
LuckyDrawTools
luckyDrawTools
;
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_addCustomizePrize"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"xyy"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@DataProvider
public
Object
[][]
dataProvider
(){
return
new
Object
[][]{
{
"自定义奖品"
,
false
},
{
"奖品"
+
RandomStringUtil
.
randomString
(
5
),
true
}
};
}
@Test
(
description
=
"创建自定义奖品"
,
dataProvider
=
"dataProvider"
)
public
void
testAddCustomizePrize
(
String
prizeName
,
boolean
success
){
//获取当前自定义奖品列表数量
int
total
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getCustomizePrizeByPage
(
""
),
"$.result.total"
));
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"prizeName"
,
prizeName
);
body
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toJSONString
(),
headers
);
if
(
success
==
false
){
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.message"
),
"自定义奖品名称重复,请修改"
);
}
else
{
String
prizeId
=
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result"
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.message"
),
"操作成功!"
);
//检查自定奖品列表数据+1
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getCustomizePrizeByPage
(
""
),
"$.result.total"
))==
total
+
1
);
//清理数据
luckyDrawTools
.
delCustomizePrize
(
prizeId
);
}
}
}
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestGetShareDetail.java
0 → 100644
View file @
a1cb1e67
package
com
.
xiaomai
.
cases
.
polar
.
luckyDraw
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
public
class
TestGetShareDetail
extends
XMBaseTest
{
@Resource
(
name
=
"luckyDrawTools"
)
LuckyDrawTools
luckyDrawTools
;
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_getShareDetail"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"xyy"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Test
(
description
=
"分享幸运抽奖海报"
)
public
void
testGetShareDetail
()
throws
InterruptedException
{
//创建自定义奖品
String
prizeName
=
"奖品"
+
RandomStringUtil
.
randomString
(
5
);
String
prizeId
=
luckyDrawTools
.
addCustomizePrize
(
prizeName
);
//创建活动名称
String
activityName
=
"每人每日抽100次"
+
RandomStringUtil
.
randomString
(
5
);
//创建已发布的活动
Thread
.
sleep
(
5000
);
String
activityId
=
luckyDrawTools
.
addLuckyDraw
(
"CUSTOMIZE_GIFT"
,
prizeName
,
prizeId
,
true
,
activityName
);
//构建参数
JSONObject
body
=
new
JSONObject
();
JSONObject
extJson
=
new
JSONObject
();
extJson
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
extJson
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"bizId"
,
activityId
);
body
.
put
(
"shareType"
,
"LUCKY_DRAW"
);
body
.
put
(
"extJson"
,
extJson
);
body
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
//调用请求
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.message"
),
"操作成功!"
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result.studioId"
),
xmAppApi
.
getLoginInfo
().
getStudioId
());
//清理数据
//删除活动
luckyDrawTools
.
deleteLuckyDraw
(
activityId
);
Thread
.
sleep
(
2000
);
//删除自定义奖品
luckyDrawTools
.
delCustomizePrize
(
prizeId
);
}
}
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestGetStudioMemberPrizeByPage.java
0 → 100644
View file @
a1cb1e67
package
com
.
xiaomai
.
cases
.
polar
.
luckyDraw
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.polar.training.TrainingTools
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
public
class
TestGetStudioMemberPrizeByPage
extends
XMBaseTest
{
@Resource
(
name
=
"luckyDrawTools"
)
LuckyDrawTools
luckyDrawTools
;
@Resource
(
name
=
"trainingTools"
)
TrainingTools
trainingTools
;
DataUserInfo
info
=
new
DataUserInfo
();
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_getStudioMemberPrizeByPage"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"xyy"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Test
(
description
=
"幸运抽奖-会员中奖列表"
)
public
void
testGetStudioMemberPrizeByPage
(){
//获取会员信息
String
memberId
=
trainingTools
.
searchTargerMember
(
"自动化会员"
);;
//调用请求
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"current"
,
0
);
body
.
put
(
"size"
,
10
);
body
.
put
(
"memberId"
,
memberId
);
body
.
put
(
"prizeType"
,
"CUSTOMIZE_GIFT"
);
body
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.message"
),
"操作成功!"
);
//若该会员名下有抽奖记录,则进入手动兑奖流程:
int
total
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result.total"
));
if
(
total
>
0
){
for
(
int
i
=
0
;
i
<
total
-
1
;
i
++)
{
String
sendState
=
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result.records["
+
i
+
"].sendState"
);
String
sendRecordId
=
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result.records["
+
i
+
"].id"
);
String
activityId
=
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result.records["
+
i
+
"].activityId"
);
//获取到的兑奖记录,暂未兑奖,可进行兑奖:
if
(
sendState
==
"NOT_SENT"
){
Assert
.
assertEquals
(
luckyDrawTools
.
exchangePrize
(
sendRecordId
),
"$.message"
,
"操作成功!"
);
//兑奖状态=已兑换
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyAttendByPage
(
activityId
),
"$.result.records[0].sendState"
),
"SENT"
);
//已兑奖状态
break
;
}
else
{
//该兑奖记录若已兑奖,则提示兑奖码已兑换!
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
exchangePrize
(
sendRecordId
),
"$.message"
),
"该奖品码已兑换"
);
}
}
}
}
}
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestLuckyDrawLottery.java
0 → 100644
View file @
a1cb1e67
package
com
.
xiaomai
.
cases
.
polar
.
luckyDraw
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.lunar.minMemberCard.MinCardTools
;
import
com.xiaomai.cases.lunar.order.OrderCTools
;
import
com.xiaomai.cases.lunar.user.UserTools
;
import
com.xiaomai.cases.polar.coupon.CouponTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.memberCard.CardTools
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
public
class
TestLuckyDrawLottery
extends
XMBaseTest
{
@Resource
(
name
=
"luckyDrawTools"
)
LuckyDrawTools
luckyDrawTools
;
@Resource
(
name
=
"userTools"
)
UserTools
userTools
;
@Resource
(
name
=
"couponTools"
)
CouponTools
couponTools
;
@Resource
(
name
=
"cardTools"
)
CardTools
cardTools
;
@Resource
(
name
=
"minCardTools"
)
MinCardTools
minCardTools
;
@Resource
(
name
=
"orderCTools"
)
OrderCTools
orderCTools
;
@Resource
(
name
=
"orderTools"
)
OrderTools
orderTools
;
DataUserInfo
info
=
new
DataUserInfo
();
public
String
prizeId
;
public
String
prizeName
;
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Lunar_LuckyDraw
)
.
setApiName
(
"API_luckyDrawLottery"
)
.
setLoginUser
(
LoginAccount
.
GYM_MINIAPPC
)
.
setTerminal
(
Terminal
.
minApp
);
dal
.
setCase_owner
(
"xyy"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Test
(
description
=
"参与抽奖-抽中优惠券"
)
public
void
testLuckyDrawLottery_coupon
()
throws
InterruptedException
{
info
.
setTerminal
(
Terminal
.
B
);
info
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
//查询用于营销的优惠券数量
int
total
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getStudioCouponList
(
"yx优惠券"
,
info
),
"$.result.total"
));
if
(
total
==
0
){
//创建1张优惠券
prizeName
=
"yx优惠券"
+
RandomStringUtil
.
randomString
(
5
);
prizeId
=
couponTools
.
createStudioCoupon
(
"WITHOUT"
,
prizeName
,
true
,
info
);
}
prizeId
=
XMJSONPath
.
readPath
(
luckyDrawTools
.
getStudioCouponList
(
"yx优惠券"
,
info
),
"$.result.records[0].id"
);
prizeName
=
XMJSONPath
.
readPath
(
luckyDrawTools
.
getStudioCouponList
(
"yx优惠券"
,
info
),
"$.result.records[0].name"
);
//创建活动名称
String
activityName
=
"每人每天抽优惠券"
+
RandomStringUtil
.
randomString
(
5
);
//创建活动=未开始
Thread
.
sleep
(
5000
);
String
activityId
=
luckyDrawTools
.
addLuckyDraw
(
"COUPON"
,
prizeName
,
prizeId
,
true
,
activityName
,
info
);
Thread
.
sleep
(
1000
);
String
prizeNo
=
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyDrawDetail
(
activityId
,
info
),
"$.result.prizeList[0].id"
);
//编辑活动=进行中(主要是改活动开始时间)
luckyDrawTools
.
editLuckyDraw
(
"COUPON"
,
prizeNo
,
prizeName
,
prizeId
,
true
,
activityId
,
activityName
,
info
);
//获取会员信息
String
memberId
=
userTools
.
getMemberInfo
().
getString
(
"memberId"
);
//当前我的抽奖次数
int
drawNum
=
luckyDrawTools
.
getDrawNum
(
activityId
,
memberId
);
//当前我的活动数量
int
activityNum
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getMyActivityByPage
(
memberId
),
"$.result.total"
));
//当前我的优惠券数量
int
couponNum
=
luckyDrawTools
.
countMemberReceivedCoupon
(
memberId
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
activityId
);
body
.
put
(
"memberId"
,
memberId
);
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.message"
),
"操作成功!"
);
//100%中奖
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result.winPrize"
),
"true"
);
//抽奖次数-1
Assert
.
assertTrue
(
luckyDrawTools
.
getDrawNum
(
activityId
,
memberId
)==
drawNum
-
1
);
//我的奖品+1
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getMyActPrizeByPage
(
activityId
,
memberId
),
"$.result.total"
))==
1
);
//我的活动+1
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getMyActivityByPage
(
memberId
),
"$.result.total"
))==
activityNum
+
1
);
//我的优惠券+1
Assert
.
assertTrue
(
luckyDrawTools
.
countMemberReceivedCoupon
(
memberId
)==
couponNum
+
1
);
//app奖品消耗
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyPrizeCount
(
activityId
,
info
),
"$.result[0].winCount"
))==
1
);
//已抽中1个
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyPrizeCount
(
activityId
,
info
),
"$.result[0].stock"
))==
99
);
//剩余99个
//app参与记录
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyAttendByPage
(
activityId
,
info
),
"$.result.total"
))==
1
);
//参与人员1个
//清理数据
//会员详情-优惠券-作废优惠券
String
goalRecordId
=
XMJSONPath
.
readPath
(
couponTools
.
pageMemberReceivedCoupon
(
memberId
,
"AVAILABLE"
,
info
),
"$.result.records[0].id"
);
Thread
.
sleep
(
1000
);
couponTools
.
abandonMembercouponReceiveRecord
(
goalRecordId
,
info
);
}
@Test
(
description
=
"参与抽奖-抽奖体验卡"
)
public
void
testLuckyDrawLottery_experienceCard
()
throws
InterruptedException
{
info
.
setTerminal
(
Terminal
.
B
);
info
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
//查询用于营销的体验卡数量
int
total
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getPageOfMemberCard
(
"yx体验卡"
,
info
),
"$.result.total"
));
if
(
total
==
0
){
//创建1张体验卡
prizeName
=
"yx体验卡"
+
RandomStringUtil
.
randomString
(
5
);
JSONObject
benefit
=
new
JSONObject
();
benefit
.
put
(
"identifier"
,
RandomStringUtil
.
randomString
(
20
));
benefit
.
put
(
"benefitType"
,
"BALANCE"
);
benefit
.
put
(
"targetScope"
,
"GROUP_CLASS_AND_PERSONAL_COURSE"
);
benefit
.
put
(
"balance"
,
"3"
);
//使用次数
benefit
.
put
(
"reserveLimitType"
,
"UN_LIMIT"
);
//预约次数限制:不限制
benefit
.
put
(
"reserveLimitNumber"
,
0
);
benefit
.
put
(
"defaultConsumeBalance"
,
1
);
//扣除次数
benefit
.
put
(
"itemList"
,
new
JSONArray
());
benefit
.
put
(
"targetType"
,
"COURSE"
);
benefit
.
put
(
"price"
,
"10"
);
prizeId
=
cardTools
.
experienceCardCreate
(
prizeName
,
"10"
,
benefit
,
info
);
}
prizeId
=
XMJSONPath
.
readPath
(
luckyDrawTools
.
getPageOfMemberCard
(
"yx体验卡"
,
info
),
"$.result.records[0].id"
);
prizeName
=
XMJSONPath
.
readPath
(
luckyDrawTools
.
getPageOfMemberCard
(
"yx体验卡"
,
info
),
"$.result.records[0].name"
);
//创建活动名称
String
activityName
=
"每人每天抽体验卡"
+
RandomStringUtil
.
randomString
(
5
);
//创建活动=未开始
Thread
.
sleep
(
5000
);
String
activityId
=
luckyDrawTools
.
addLuckyDraw
(
"EXPERIENCE_CARD"
,
prizeName
,
prizeId
,
true
,
activityName
,
info
);
Thread
.
sleep
(
1000
);
String
prizeNo
=
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyDrawDetail
(
activityId
,
info
),
"$.result.prizeList[0].id"
);
//编辑活动=进行中(主要是改活动开始时间)
luckyDrawTools
.
editLuckyDraw
(
"EXPERIENCE_CARD"
,
prizeNo
,
prizeName
,
prizeId
,
true
,
activityId
,
activityName
,
info
);
//获取会员信息
String
memberId
=
userTools
.
getMemberInfo
().
getString
(
"memberId"
);
//当前我的抽奖次数
int
drawNum
=
luckyDrawTools
.
getDrawNum
(
activityId
,
memberId
);
//当前我的活动数量
int
activityNum
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getMyActivityByPage
(
memberId
),
"$.result.total"
));
//当前我的卡包数量
int
cardNum
=
minCardTools
.
countMyUsableCard
(
memberId
);
//当前我的订单
int
orderNum
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
orderCTools
.
pageOrder
(
memberId
),
"$.result.total"
));
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
activityId
);
body
.
put
(
"memberId"
,
memberId
);
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.message"
),
"操作成功!"
);
//100%中奖
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result.winPrize"
),
"true"
);
//抽奖次数-1
Assert
.
assertTrue
(
luckyDrawTools
.
getDrawNum
(
activityId
,
memberId
)==
drawNum
-
1
);
//我的奖品+1
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getMyActPrizeByPage
(
activityId
,
memberId
),
"$.result.total"
))==
1
);
//我的活动+1
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getMyActivityByPage
(
memberId
),
"$.result.total"
))==
activityNum
+
1
);
//我的卡包+1
Assert
.
assertTrue
(
minCardTools
.
countMyUsableCard
(
memberId
)==
cardNum
+
1
);
//我的订单+1
String
voucherId
=
XMJSONPath
.
readPath
(
orderCTools
.
pageOrder
(
memberId
),
"$.result.records[0].id"
);
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
orderCTools
.
pageOrder
(
memberId
),
"$.result.total"
))==
orderNum
+
1
);
//app奖品消耗,参与记录
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyPrizeCount
(
activityId
,
info
),
"$.result[0].winCount"
))==
1
);
//已抽中1个
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyPrizeCount
(
activityId
,
info
),
"$.result[0].stock"
))==
99
);
//剩余99个
//app参与记录
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyAttendByPage
(
activityId
,
info
),
"$.result.total"
))==
1
);
//参与人员1个
//清理数据
//作废体验卡订单
orderTools
.
discard
(
voucherId
,
"其他"
,
"自动化作废订单"
,
info
);
}
}
src/main/java/com/xiaomai/cases/polar/luckyDraw/TestPrizeScanCode.java
0 → 100644
View file @
a1cb1e67
package
com
.
xiaomai
.
cases
.
polar
.
luckyDraw
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.lunar.user.UserTools
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
public
class
TestPrizeScanCode
extends
XMBaseTest
{
@Resource
(
name
=
"luckyDrawTools"
)
LuckyDrawTools
luckyDrawTools
;
@Resource
(
name
=
"userTools"
)
UserTools
userTools
;
DataUserInfo
info
=
new
DataUserInfo
();
public
String
prizeId
;
public
String
prizeName
=
"自定义奖品"
;;
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_LuckyDraw
)
.
setApiName
(
"API_prizeScanCode"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"xyy"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Test
(
description
=
"扫幸运抽奖活动的兑奖二维码进行兑奖"
)
public
void
testPrizeScanCod
()
throws
InterruptedException
{
info
.
setTerminal
(
Terminal
.
minApp
);
info
.
setLoginUser
(
LoginAccount
.
GYM_MINIAPPC
);
//查询自定义奖品数量
int
total
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getCustomizePrizeByPage
(
"自定义奖品"
),
"$.result.total"
));
if
(
total
==
0
){
//创建1个自定义奖品
prizeId
=
luckyDrawTools
.
addCustomizePrize
(
prizeName
);
}
prizeId
=
XMJSONPath
.
readPath
(
luckyDrawTools
.
getCustomizePrizeByPage
(
"自定义奖品"
),
"$.result.records[0].id"
);
//创建活动名称
String
activityName
=
"每人每天抽自定义奖品"
+
RandomStringUtil
.
randomString
(
5
);
//创建活动=未开始
Thread
.
sleep
(
5000
);
String
activityId
=
luckyDrawTools
.
addLuckyDraw
(
"CUSTOMIZE_GIFT"
,
prizeName
,
prizeId
,
true
,
activityName
);
Thread
.
sleep
(
1000
);
String
prizeNo
=
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyDrawDetail
(
activityId
),
"$.result.prizeList[0].id"
);
//编辑活动=进行中(主要是改活动开始时间)
luckyDrawTools
.
editLuckyDraw
(
"CUSTOMIZE_GIFT"
,
prizeNo
,
prizeName
,
prizeId
,
true
,
activityId
,
activityName
);
//获取会员信息
String
memberId
=
userTools
.
getMemberInfo
(
info
).
getString
(
"memberId"
);
int
drawNum
=
luckyDrawTools
.
getDrawNum
(
activityId
,
memberId
,
info
);
//抽奖次数
//开始抽奖, 总共抽2次,获奖2次:一次手动兑换,一次扫码兑换
for
(
int
i
=
0
;
i
<
2
;
i
++)
{
//100%中奖
Thread
.
sleep
(
5000
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
luckyDrawLottery
(
activityId
,
memberId
,
info
),
"$.result.winPrize"
),
"true"
);
}
//抽奖次数-2
Assert
.
assertTrue
(
luckyDrawTools
.
getDrawNum
(
activityId
,
memberId
,
info
)==
drawNum
-
2
);
//我的奖品+2
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getMyActPrizeByPage
(
activityId
,
memberId
,
info
),
"$.result.total"
))==
2
);
//app奖品消耗,参与记录
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyPrizeCount
(
activityId
),
"$.result[0].winCount"
))==
2
);
//已抽中2个
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyPrizeCount
(
activityId
),
"$.result[0].stock"
))==
98
);
//剩余98个
//app参与记录
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyAttendByPage
(
activityId
),
"$.result.total"
))==
2
);
//参与记录2条
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyAttendByPage
(
activityId
),
"$.result.records[0].sendState"
),
"NOT_SENT"
);
//待兑奖状态
String
sendRecordId
=
XMJSONPath
.
readPath
(
luckyDrawTools
.
getLuckyAttendByPage
(
activityId
),
"$.result.records[0].sendRecordId"
);
//扫兑奖码
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"id"
,
sendRecordId
);
body
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
//调用请求
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
//检验扫码兑换时的状态及兑奖信息准确性
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.message"
),
"操作成功!"
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result.prizeId"
),
prizeId
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result.receivedMemberId"
),
memberId
);
//进行兑奖,并且成功
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
exchangePrize
(
sendRecordId
),
"$.message"
),
"操作成功!"
);
//校验兑奖信息状态=已兑奖
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getRewardSendDetail
(
sendRecordId
),
"$.result.sendState"
),
"SENT"
);
//已兑奖状态
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
luckyDrawTools
.
getRewardSendDetail
(
sendRecordId
),
"$.result.prizeType"
),
"CUSTOMIZE_GIFT"
);
//自定义奖品
}
}
src/main/java/com/xiaomai/cases/polar/memberCard/CardTools.java
View file @
a1cb1e67
...
@@ -132,6 +132,55 @@ public class CardTools extends XMBaseTest {
...
@@ -132,6 +132,55 @@ public class CardTools extends XMBaseTest {
}
}
/**
/**
* 创建用于营销活动的体验卡
* @param title
* @param price
* @param benefit:自由组合想要的权益
* @param dataUserInfos
* @return
*/
public
String
experienceCardCreate
(
String
title
,
String
price
,
JSONObject
benefit
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
.
setApiName
(
"API_tenantMemberCard_create"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
String
[]
activatePatternList
=
{
"PURCHASE"
};
//即时生效
String
[]
purchaseMemberStateList
=
{
"POTENTIAL"
,
"NORMAL"
,
"HISTORY"
};
//构建体验卡权益object
JSONArray
benefitList
=
new
JSONArray
();
benefitList
.
add
(
benefit
);
//构建请求
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"surfaceUrl"
,
"https://image.xiaomaiketang.com/xm/internal/EKDt4bPDBQ.png"
);
//体验卡封面图片
jsonObject
.
put
(
"surfaceCornerMark"
,
"自动化标签"
);
jsonObject
.
put
(
"title"
,
title
);
//卡名称
jsonObject
.
put
(
"useForActivity"
,
true
);
//用于营销活动
jsonObject
.
put
(
"validPeriod"
,
"10"
);
//有效期-10天
jsonObject
.
put
(
"activatePatternList"
,
activatePatternList
);
//生效方式
jsonObject
.
put
(
"stock"
,
-
1
);
//库存不限
jsonObject
.
put
(
"price"
,
price
);
//体验卡售价
jsonObject
.
put
(
"purchaseNumberLimit"
,
"-1"
);
//购买数量不限
jsonObject
.
put
(
"purchaseMemberStateList"
,
purchaseMemberStateList
);
//可购买会员类型
jsonObject
.
put
(
"purchaseRestriction"
,
"NO"
);
jsonObject
.
put
(
"xcxSaleStatus"
,
"YES"
);
jsonObject
.
put
(
"creatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"shelfState"
,
"YES"
);
//卡启用状态
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"description"
,
"{\"items\":[{\"content\":\"自动化创建用于营销活动的体验卡\",\"aspect\":\"\",\"type\":\"TEXT\"}]}"
);
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"benefitList"
,
benefitList
);
//使用权益
jsonObject
.
put
(
"commodityCardType"
,
"EXPERIENCE_CARD"
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getString
(
"result"
);
}
/**
* b端购买储值卡
* b端购买储值卡
* @param dataUserInfos
* @param dataUserInfos
* @return 订单id
* @return 订单id
...
...
src/main/java/com/xiaomai/cases/polar/schedule/camp/TestEditCampRuleSchedule.java
View file @
a1cb1e67
...
@@ -90,7 +90,7 @@ public class TestEditCampRuleSchedule extends SelectTargetTrainingCampAndGetInfo
...
@@ -90,7 +90,7 @@ public class TestEditCampRuleSchedule extends SelectTargetTrainingCampAndGetInfo
//给会员报名
//给会员报名
trainingTools
.
doSignCampOrder
(
memberId
,
this
.
price
,
this
.
campId
,
""
);
trainingTools
.
doSignCampOrder
(
memberId
,
this
.
price
,
this
.
campId
,
""
);
orderId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result"
);
orderId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result"
);
Thread
.
sleep
(
2
000
);
Thread
.
sleep
(
5
000
);
//check 预约记录(训练营预约记录,根据训练营活动筛选)
//check 预约记录(训练营预约记录,根据训练营活动筛选)
JSONArray
reserverList
=
reserveTools
.
getPageByStudio
(
""
,
""
,
""
,
""
,
null
,
JSONArray
reserverList
=
reserveTools
.
getPageByStudio
(
""
,
""
,
""
,
""
,
null
,
...
...
src/main/java/com/xiaomai/enums/ApiModule.java
View file @
a1cb1e67
...
@@ -26,6 +26,8 @@ public class ApiModule {
...
@@ -26,6 +26,8 @@ public class ApiModule {
public
static
String
Polar_EleContract
=
"polar_eleContract"
;
//训练营活动
public
static
String
Polar_EleContract
=
"polar_eleContract"
;
//训练营活动
public
static
String
Polar_Coupon
=
"polar_coupon"
;
//优惠券
public
static
String
Polar_Coupon
=
"polar_coupon"
;
//优惠券
public
static
String
Polar_LuckyDraw
=
"polar_luckyDraw"
;
//幸运抽奖
public
static
String
Lunar_LuckyDraw
=
"lunar_luckyDraw"
;
//小程序幸运抽奖
public
static
String
Lunar_Coupon
=
"lunar_coupon"
;
//小程序优惠券
public
static
String
Lunar_Coupon
=
"lunar_coupon"
;
//小程序优惠券
public
static
String
Polar_Reserve
=
"polar_reserve"
;
//预约
public
static
String
Polar_Reserve
=
"polar_reserve"
;
//预约
...
...
src/main/resources/config.properties
View file @
a1cb1e67
...
@@ -2,11 +2,11 @@
...
@@ -2,11 +2,11 @@
env
=
prod
env
=
prod
# Dev
# Dev
dev
=
https://dev-fit.xiaomai5.com
dev
=
https://dev-fit.xiaomai5.com
#rc
#
rc
#rc=https://rc-heimdall.xiaomai5.com
#rc=https://rc-heimdall.xiaomai5.com
# gray
# gray
#gray=https://gray-heimdall
.xiaomai5.com
gray
=
https://canary-fit
.xiaomai5.com
#prod
#
prod
prod
=
https://prod-fit.xiaomai5.com
prod
=
https://prod-fit.xiaomai5.com
# 测试运行环境 本地调试时,可指定调试环境。完成本地调试后,请注释此变量
# 测试运行环境 本地调试时,可指定调试环境。完成本地调试后,请注释此变量
#runningEnv = gray
#runningEnv = gray
...
...
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