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
bab6cbd4
Commit
bab6cbd4
authored
Jun 27, 2025
by
yangjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
积分相关小程序端相关业务
parent
e137c34c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
178 additions
and
8 deletions
+178
-8
src/main/java/com/xiaomai/cases/lunar/reserve/ReserveCTools.java
+42
-0
src/main/java/com/xiaomai/cases/polar/points/TestPointsMini.java
+87
-8
src/main/java/com/xiaomai/cases/polar/setting/venue/VenueAreaTools.java
+49
-0
No files found.
src/main/java/com/xiaomai/cases/lunar/reserve/ReserveCTools.java
View file @
bab6cbd4
...
...
@@ -500,4 +500,46 @@ public class ReserveCTools extends XMBaseTest {
return
dataApi
.
getBodyInJSON
();
}
/**
* @description:创建单次约课订单使用储值卡
* @author: xuyamei
* @date: 2024/7/30 11:48
* @param addToQueue 是否排队
* @param chiefCoachId 主教id
* @param memberId 会员id
* @param scheduleId 课次id
* @param scheduleStartTime 课次开始时间
* @param spanMinutes 上课时长
* @param receivableAmount 单次约课金额
* @return: java.lang.String
**/
public
String
createSingleReserve1
(
boolean
addToQueue
,
String
courseId
,
String
chiefCoachId
,
String
memberId
,
String
scheduleId
,
long
scheduleStartTime
,
int
spanMinutes
,
int
receivableAmount
,
String
depositCardId
,
String
depositAmount
){
setUP
(
"API_createSingleReserve"
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"addToQueue"
,
addToQueue
);
JSONArray
areaIds
=
new
JSONArray
();
body
.
put
(
"areaIds"
,
areaIds
);
// 场地
JSONArray
assistantCoachIds
=
new
JSONArray
();
body
.
put
(
"assistantCoachIds"
,
assistantCoachIds
);
// 助教
body
.
put
(
"chiefCoachId"
,
chiefCoachId
);
// 教练
body
.
put
(
"memberId"
,
memberId
);
// 会员id
body
.
put
(
"courseId"
,
courseId
);
// 课次id
body
.
put
(
"objectId"
,
RandomStringUtil
.
randomString
(
16
));
// 会员id
body
.
put
(
"receivableAmount"
,
receivableAmount
);
// 会员id
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"scheduleId"
,
scheduleId
);
body
.
put
(
"scheduleStartTime"
,
scheduleStartTime
);
body
.
put
(
"spanMinutes"
,
spanMinutes
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"depositCardId"
,
depositCardId
);
body
.
put
(
"depositAmount"
,
depositAmount
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getString
(
"result"
);
}
}
src/main/java/com/xiaomai/cases/polar/points/TestPointsMini.java
View file @
bab6cbd4
package
com
.
xiaomai
.
cases
.
polar
.
points
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.lunar.goods.GoodCTools
;
import
com.xiaomai.cases.lunar.reserve.ReserveCTools
;
import
com.xiaomai.cases.lunar.user.UserTools
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.eventRegistration.EventRegistrationTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.schedule.group.GroupScheduleTools
;
import
com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools
;
import
com.xiaomai.cases.polar.setting.venue.VenueAreaTools
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
com.xiaomai.utils.*
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.sql.Time
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Random
;
public
class
TestPointsMini
extends
XMBaseTest
{
@BeforeMethod
...
...
@@ -44,10 +52,25 @@ public class TestPointsMini extends XMBaseTest {
DataUserInfo
info
=
new
DataUserInfo
();
@Resource
(
name
=
"EventRegistrationTools"
)
com
.
xiaomai
.
cases
.
polar
.
eventRegistration
.
EventRegistrationTools
EventRegistrationTools
;
EventRegistrationTools
EventRegistrationTools
;
@Resource
(
name
=
"venueAreaTools"
)
VenueAreaTools
venueAreaTools
;
@Resource
(
name
=
"courseCategoryTools"
)
CourseCategoryTools
courseCategoryTools
;
@Resource
(
name
=
"courseTools"
)
CourseTools
courseTools
;
@Resource
(
name
=
"groupScheduleTools"
)
GroupScheduleTools
groupScheduleTools
;
@Resource
(
name
=
"reserveCTools"
)
ReserveCTools
reserveCTools
;
@Test
(
description
=
"小程序-积分"
)
public
void
testmemberPoint_getAccount
()
{
public
void
testmemberPoint_getAccount
()
throws
InterruptedException
{
String
memberId
=
userTools
.
getMemberInfo
().
getString
(
"memberId"
);
//pointsMinTools.memberPoint_getAccount(memberId);
...
...
@@ -60,7 +83,7 @@ public class TestPointsMini extends XMBaseTest {
info
.
setTerminal
(
Terminal
.
B
);
info
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
//切换B端
orderTools
.
pay
(
BigDecimal
.
valueOf
(
100
),
"1"
,
id
,
info
);
//B端支付
Thread
.
sleep
(
1000
);
int
AfleftBalance
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsMinTools
.
memberPoint_getAccount
(
memberId
),
"$.result.leftBalance"
));
//会员购买物品后,剩余积分数
Assert
.
assertEquals
(
AfleftBalance
,
BeleftBalance
+
10
);
//断言剩余积分数+10
...
...
@@ -70,6 +93,7 @@ public class TestPointsMini extends XMBaseTest {
//作废订单
orderTools
.
discard
(
id
,
"订单录错"
,
""
,
info
);
//B端
Thread
.
sleep
(
1000
);
int
AfleftBalance1
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsMinTools
.
memberPoint_getAccount
(
memberId
),
"$.result.leftBalance"
));
//会员购买物品后,剩余积分数
Assert
.
assertEquals
(
AfleftBalance1
,
AfleftBalance
-
10
);
//断言剩余积分数+10
...
...
@@ -83,20 +107,75 @@ public class TestPointsMini extends XMBaseTest {
String
activityId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result"
);
EventRegistrationTools
.
MinsellableActivity_getStudioActivityById
(
activityId
);
//查看活动详情
String
activitySkuId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.skuItems[1].id"
);
//获取活动购买项目id
EventRegistrationTools
.
purchaseSellableActivity
(
activityId
,
String
.
valueOf
(
100
),
activitySkuId
,
memberId
);
//报名
String
id1
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result"
);
//订单ID
System
.
out
.
println
(
"id1--------"
+
id1
);
orderTools
.
pay
(
BigDecimal
.
valueOf
(
100
),
"1"
,
id1
,
info
);
//B端支付
Thread
.
sleep
(
1000
);
int
AfleftBalance2
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsMinTools
.
memberPoint_getAccount
(
memberId
),
"$.result.leftBalance"
));
//会员购买物品后,剩余积分数
Assert
.
assertEquals
(
AfleftBalance2
,
AfleftBalance1
+
10
);
//断言剩余积分数+10
//作废订单
orderTools
.
discard
(
id1
,
"订单录错"
,
""
,
info
);
//B端
Thread
.
sleep
(
1000
);
int
AfleftBalance3
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsMinTools
.
memberPoint_getAccount
(
memberId
),
"$.result.leftBalance"
));
//会员退物品后,剩余积分数
Assert
.
assertEquals
(
AfleftBalance3
,
AfleftBalance2
-
10
);
//断言剩余积分数-10
//单次约课 白写
//String todayStartTimeTamp = CommUtil.oneKeyGetAddDay(1);
//String todayEndDateTimeTamp = CommUtil.getNDayEndTimeTamp(1);
//String categoryId = courseCategoryTools.getCourseCategoryPage("积分");
//String courseId = courseTools.getPersonalOrGroupCourseId("GROUP", "储值卡付费约课积分课程", categoryId, "STUDIO", "", 2, 1).getString(0);
//int[] minuteOffset = {60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660, 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260};
//Random random = new Random();
//1.1-创建排课日程(当前天的课程)
//groupScheduleTools.createGroupRuleSchedule(courseId, "1800447404349558786", todayStartTimeTamp, todayEndDateTimeTamp, new ArrayList(), new ArrayList(), true, 1,minuteOffset[random.nextInt(20)] ,info);
//List<String> chiefCoachId = new ArrayList<>();
//chiefCoachId.add("1800447404349558786");
//JSONArray result = groupScheduleTools.getGroupRuleScheduleList(courseId, "1800447404349558786");
//String ruldId = XMJSONPath.readPath(result.getJSONObject(0), "$.ruleId");
// 日程列表中新增一条刚创建的规则,匹配到对应的ruldId
//Long goalRuld = result.toJavaList(JSONObject.class).stream().filter(e -> e.getString("ruleId").equals(ruldId)).count();
//Assert.assertTrue(goalRuld == 1);
//查看今天的课表,获取刚创建的日程中对应的课次ID
//groupScheduleTools.getGroupScheduleTable(Long.valueOf(todayStartTimeTamp),Long.valueOf(todayEndDateTimeTamp),courseId,info);
//reserveCTools.memberTimetable(memberId,TimeUtils.getBeforeDayDate(-1), TimeUtils.getAfterDayDate(1));
//JSONArray array = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.timetableGroups");
//String scheduleId = array.toJavaList(JSONObject.class).stream()
//.flatMap(e -> e.getJSONArray("timetableList").toJavaList(JSONObject.class).stream())
//.filter(e -> null != e.getString("ruleId"))
//.filter(e ->e.getString("ruleId").equals(ruldId))
//.map(e -> e.getString("scheduleId"))//获取scheduleId
//.findFirst().orElse(null);
//JSONObject getScheduleItemDetail = groupScheduleTools.getScheduleItemDetail(scheduleId);
//long startTime1 = getScheduleItemDetail.getLongValue("startTime");
//System.out.println("scheduleId--------"+scheduleId);
//System.out.println("startTime1--------"+startTime1);
//String voucherId = reserveCTools.createSingleReserve1(false,courseId,"1800447404349558786",memberId,scheduleId,startTime1,10,0,"1938194478934331393","100.00");
//场地预约
//String startMinute = String.valueOf((TimeUtils.hourOfDay()+1)*60);
//String endMinute = String.valueOf((TimeUtils.hourOfDay()+1)*60+30);//结束时间与开始时间相差30分钟
//String reserveDay = String.valueOf(TimeUtils.getTodayTime());
//String groupId ="1938174465507115009";
//String areaId = String.valueOf(Long.valueOf(groupId)+1);//+1,不知道为啥
//String voucherId = venueAreaTools.purchaseAreaTimes1(startMinute,endMinute,BigDecimal.valueOf(100),"1929736213382733826",groupId,memberId,"0.00",reserveDay,areaId,"100.00","1938194478934331393");
//String venueBookingRecordId = XMJSONPath.readPath(venueAreaTools.getByVoucher(voucherId,info),"$.result.id");//场地预约的记录id
//Thread.sleep(1000);
//断言场地预约积分增加10分
//int AfleftBalance4 = Integer.parseInt(XMJSONPath.readPath(pointsMinTools.memberPoint_getAccount(memberId), "$.result.leftBalance"));//会员退物品后,剩余积分数
//Assert.assertEquals(AfleftBalance4,AfleftBalance3+10);//断言剩余积分数+10
//venueAreaTools.manualCheckIn(venueBookingRecordId);//场地签到
//Thread.sleep(1000);
//断言场地预约签到增加10分
//int AfleftBalance5 = Integer.parseInt(XMJSONPath.readPath(pointsMinTools.memberPoint_getAccount(memberId), "$.result.leftBalance"));//会员退物品后,剩余积分数
//Assert.assertEquals(AfleftBalance5,AfleftBalance4+10);//断言剩余积分数+10
...
...
src/main/java/com/xiaomai/cases/polar/setting/venue/VenueAreaTools.java
View file @
bab6cbd4
...
...
@@ -13,6 +13,8 @@ import com.xiaomai.utils.XMJSONPath;
import
org.springframework.stereotype.Component
;
import
org.testng.Assert
;
import
java.math.BigDecimal
;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.setting.venue
...
...
@@ -1030,4 +1032,51 @@ public class VenueAreaTools extends XMBaseTest {
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序场地预约非0元
* @param startMinute 开始时间
* @param endMinute 结束时间
* @param suiteId 场地组id
* @param groupId 场地id
* @param memberId 会员id
* @param reserveDay 预约日期
* @param userInfos
* @return
*/
public
String
purchaseAreaTimes1
(
String
startMinute
,
String
endMinute
,
BigDecimal
price
,
String
suiteId
,
String
groupId
,
String
memberId
,
String
receivableAmount
,
String
reserveDay
,
String
venueAreaId
,
String
depositAmount
,
String
depositCardId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_purchaseAreaTimes"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfos
);
JSONArray
areaTimeInfos
=
new
JSONArray
();
JSONObject
areaTime
=
new
JSONObject
();
areaTime
.
put
(
"startMinute"
,
startMinute
);
//预约开始时间
areaTime
.
put
(
"endMinute"
,
endMinute
);
//预约结束时间
areaTime
.
put
(
"price"
,
price
);
areaTimeInfos
.
add
(
areaTime
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"areaTimeInfos"
,
areaTimeInfos
);
object
.
put
(
"depositAmount"
,
depositAmount
);
object
.
put
(
"depositCardId"
,
depositCardId
);
object
.
put
(
"groupId"
,
groupId
);
//场地id
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"memo"
,
"自动化脚本创建的场地预约"
);
object
.
put
(
"objectId"
,
RandomStringUtil
.
randomString
(
16
));
object
.
put
(
"receivableAmount"
,
receivableAmount
);
object
.
put
(
"reserveDay"
,
reserveDay
);
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"suiteId"
,
suiteId
);
//场地组id
object
.
put
(
"venueAreaId"
,
venueAreaId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
);
Assert
.
assertTrue
(
Boolean
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.success"
))
==
true
,
"调用接口返回结果:"
+
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.message"
));
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"id"
);
}
}
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