Commit b5908001 by xuyamei

新增员工接口

parent 8a5c270e
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.springframework.stereotype.Component;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-02-29 10:00
* @Description: 员工工具类
* @Version: 1.0
*/
@Component("adminTools")
public class AdminTools extends XMBaseTest {
/**
* @description:添加员工
* @author: xuyamei
* @date: 2024/2/29 13:59
* @param role:角色
* @param dataUserInfos
* @return: com.alibaba.fastjson.JSONObject 返回的是请求参数
**/
public JSONObject addStudioAdmin(String role, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_addStudioAdmin")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject body = new JSONObject();
body.put("phone", RandomStringUtil.randomMobile("100"));
String name = RandomStringUtil.random_name();
body.put("name", name);
body.put("nickName", name);
JSONObject avatar = new JSONObject();
avatar.put("content",name.charAt(name.length() - 1));
body.put("avatar",avatar); // 员工头像未设置取昵称最后一个字
body.put("gender","MAN");
JSONArray roles = new JSONArray(); // 角色
JSONObject teaching = new JSONObject();
JSONArray coachTeachingTypes = new JSONArray(); // LEAGUE_CLASS, PERSONAL_TRAINERS, TRAINING_CAMP "团课", "私教", "训练营"
switch(role){
case "教练":
roles.add("StudioCoach");
body.put("roles", roles);
teaching.put("teaching", true); // 是否授课,为true需要传授课的类型
coachTeachingTypes.add("LEAGUE_CLASS"); // 团课
coachTeachingTypes.add("PERSONAL_TRAINERS"); //私教
coachTeachingTypes.add("TRAINING_CAMP"); //训练营
teaching.put("coachTeachingTypes",coachTeachingTypes);
body.put("teaching",teaching);
break;
case "销售主管":
roles.add("StudioSaleManager");
teaching.put("teaching", false);
body.put("teaching",teaching); // 是否授课
body.put("roles", roles);
break;
case "财务":
roles.add("StudioFinance");
teaching.put("teaching", false);
body.put("teaching",teaching); // 是否授课
body.put("roles", roles);
break;
case "前台":
roles.add("StudioReception");
teaching.put("teaching", false);
body.put("teaching",teaching); // 是否授课
body.put("roles", roles);
break;
default: // 默认店长
roles.add("StudioOwner");
teaching.put("teaching", false);
body.put("teaching",teaching); // 是否授课
body.put("roles", roles);
}
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return body;
}
/**
* @description:检验员工手机号是否存在
* @author: xuyamei
* @date: 2024/2/29 14:04
* @param phone
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject checkExistInStudio(String phone){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_checkExistInStudio")
.setTerminal(Terminal.B);
super.beforeDataRequest();
String body = "{\"phone\": \""+phone+"\"}";
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @description:获取员工信息
* @author: xuyamei
* @date: 2024/2/29 16:47
* @param adminId:员工id
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getStudioAdmin(String adminId){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_getStudioAdmin")
.setTerminal(Terminal.B);
super.beforeDataRequest();
String body = "{\"id\":\""+adminId+"\"}";
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @description:查询员工列表数据
* @author: xuyamei
* @date: 2024/2/29 17:58
* @param body:请求参数
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject pageStudioAdmin(String body){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_pageStudioAdmin")
.setTerminal(Terminal.B);
super.beforeDataRequest();
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.studioConfig.ConfigTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import javax.swing.*;
import java.util.Random;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-02-29 11:48
* @Description: 新建角色
* @Version: 1.0
*/
public class TestAddStudioAdmin extends BaseTestImpl {
@Resource(name = "adminTools")
AdminTools adminTools;
@Resource(name = "configTools")
ConfigTools configTools;
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Polar_Admin,"API_addStudioAdmin", LoginAccount.XYM_DEV, Terminal.B,"xym");
super.beforeTest();
}
@Test(description = "添加员工,由于没有删除员工的操作,则每次随机取一个角色")
public void testAddStudioAdmin(){
String[] role = {"店长","教练","销售主管","财务","前台"};
Random rand = new Random();
JSONObject addRequest = adminTools.addStudioAdmin(role[rand.nextInt(5)]);
// 添加角色成功后
String result = dataApi.getBodyInJSON().getString("result");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 查询员工详情内容
JSONObject adminInfo = adminTools.getStudioAdmin(result);
String[] resultString = {"name","phone","roles","teaching"}; // 新建之后验证相应的值
for (int i = 0; i < resultString.length; i++){
// check 1:创建员工时的值与查询员工详情时的值是否一致
Assert.assertEquals(addRequest.getString(resultString[i]),adminInfo.getJSONObject("result").getString(resultString[i]),"添加员工失败,员工详情与创建员工时的信息不一致");
}
// check 2: 生成对应的操作日志
String body = "{\"current\":0,\"size\":10,\"domainId\":\""+xmAppApi.getLoginInfo().getStudioId()+"\",\"opEventKey\":\"ADD_ADMIN\"}";
JSONObject response = configTools.getOpauditPage(body);
Assert.assertEquals(response.getJSONObject("result").getJSONArray("records").getJSONObject(0).getJSONObject("target").getString("targetId"),result,"添加员工未生成操作日志");
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-02-29 14:04
* @Description: 检验员工是否存在
* @Version: 1.0
*/
public class TestCheckExistInStudio extends BaseTestImpl {
@Resource(name = "adminTools")
AdminTools adminTools;
@BeforeClass
@Override
public void beforeTest() {
setTestInfo(ApiModule.Polar_Admin,"API_checkExistInStudio", LoginAccount.XYM_DEV, Terminal.B,"xym");
super.beforeTest();
}
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{true,"","手机号存在但是返回的是false"},
{false,"99900900000","手机号不存在返回的true"},
};
}
@Test(dataProvider = "dataProvider")
public void testCheckExistInStudio(boolean flag,String phone, String message){
if (flag){
phone = xmAppApi.getLoginInfo().getAccountNo();
}
JSONObject response = adminTools.checkExistInStudio(phone);
boolean result = response.getBoolean("result");
Assert.assertEquals(result,flag,message);
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.studioConfig.ConfigTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-02-29 18:00
* @Description: 员工离职
* @Version: 1.0
*/
public class TestDepartStudioAdmin extends BaseTestImpl {
@Resource(name = "adminTools")
AdminTools adminTools;
@Resource(name = "configTools")
ConfigTools configTools;
@BeforeClass
@Override
public void beforeTest() {
setTestInfo(ApiModule.Polar_Admin,"API_departStudioAdmin", LoginAccount.XYM_DEV, Terminal.B,"xym");
super.beforeTest();
}
@Test
public void testDepartStudioAdmin() {
// 获取在职员工
String body = "{\"size\":10,\"current\":0,\"state\":\"DUTY\"}";
JSONObject adminPage = adminTools.pageStudioAdmin(body);
int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
if (total>1){
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("id");
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("phone");
body = "{\"id\":\""+adminId+"\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 用手机号查询离职员工是否有这个员工
body = "{\"size\":10,\"current\":0,\"state\":\"LEFT\",\"searchContext\":\""+phone+"\"}";
adminPage = adminTools.pageStudioAdmin(body);
total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
Assert.assertEquals(total,1,"员工离职失败,用手机号查询离职员工未返回数据");
// check 2: 生成对应的操作日志
body = "{\"current\":0,\"size\":10,\"domainId\":\""+xmAppApi.getLoginInfo().getStudioId()+"\",\"opEventKey\":\"LEFT_ADMIN\"}";
JSONObject response = configTools.getOpauditPage(body);
Assert.assertEquals(response.getJSONObject("result").getJSONArray("records").getJSONObject(0).getJSONObject("target").getString("targetId"),adminId,"员工离职未生成操作日志");
}
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.studioConfig.ConfigTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-03-01 10:45
* @Description: 编辑员工
* @Version: 1.0
*/
public class TestEditStudioAdmin extends BaseTestImpl {
@Resource(name = "configTools")
ConfigTools configTools;
@Resource(name = "adminTools")
AdminTools adminTools;
@BeforeClass
@Override
public void beforeTest() {
setTestInfo(ApiModule.Polar_Admin,"API_editStudioAdmin", LoginAccount.XYM_DEV, Terminal.B,"xym");
super.beforeTest();
}
@Test
public void testEditStudioAdmin() {
String body = "{\"size\":10,\"current\":0,\"state\":\"DUTY\"}";
JSONObject adminPage = adminTools.pageStudioAdmin(body);
int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
if (total>1){
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("id");
String name = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("name");
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("phone");
// 修改的请求参数
JSONObject requestBody = new JSONObject();
String entryType = "FULL_TIME"; // 全职
// entryType.add("PART_TIME"); // 兼职
// entryType.add("PRACTICE"); // 实习
requestBody.put("entryType",entryType);
requestBody.put("gender","MAN"); // 性别
Long birthDate = TimeUtils.getBeforeDayDate(7305); // 20年前 生日
requestBody.put("birthDate",birthDate);
Long entryTime = TimeUtils.getBeforeDayDate(7); // 入职日期
requestBody.put("entryDate",entryTime);
String memo = "修改员工备注信息"; // 备注
requestBody.put("memo",memo);
String editName = name + "修改";
requestBody.put("name",editName);
String editNickName = name + "修改";
requestBody.put("nickName",editNickName); // 昵称
JSONObject avatar = new JSONObject(); // 头像
avatar.put("content",editNickName.charAt(editNickName.length() - 1));
requestBody.put("avatar",avatar);
JSONArray roles = new JSONArray(); // 角色
roles.add("StudioCoach"); // 教练
roles.add("StudioSaleManager"); // 销售
requestBody.put("roles",roles);
JSONObject teaching = new JSONObject(); // 教练
teaching.put("teaching",true);
JSONArray coachTeachingTypes = new JSONArray(); // LEAGUE_CLASS, PERSONAL_TRAINERS, TRAINING_CAMP "团课", "私教", "训练营"
coachTeachingTypes.add("LEAGUE_CLASS"); // 团课
coachTeachingTypes.add("PERSONAL_TRAINERS"); //私教
coachTeachingTypes.add("TRAINING_CAMP"); //训练营
teaching.put("coachTeachingTypes",coachTeachingTypes);
requestBody.put("teaching",teaching);
requestBody.put("phone",phone);
requestBody.put("id",adminId); //员工id
xmAppApi.doRequest(RequestType.JSON,params,requestBody.toString(),headers).assetsSuccess(true);
JSONObject adminInfo = adminTools.getStudioAdmin(adminId);
String[] resultString = {"id","phone","name","nickName","gender","avatar","roles","teaching","birthDate","entryDate","memo"}; // 修改之后验证的值
for (int i = 0; i < resultString.length; i++){
String result = adminInfo.getJSONObject("result").getString(resultString[i]);
Assert.assertEquals(result, requestBody.getString(resultString[i]));
System.out.println(resultString[i] + " : " + result);
System.out.println(adminInfo.getJSONObject("result").getString(resultString[i]));
}
// check 2: 生成对应的操作日志
body = "{\"current\":0,\"size\":10,\"domainId\":\""+xmAppApi.getLoginInfo().getStudioId()+"\",\"opEventKey\":\"EDIT_ADMIN\"}";
JSONObject response = configTools.getOpauditPage(body);
Assert.assertEquals(response.getJSONObject("result").getJSONArray("records").getJSONObject(0).getJSONObject("target").getString("targetId"),adminId,"编辑员工未生成操作日志");
}
}
}
......@@ -6,6 +6,7 @@ import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
......@@ -31,9 +32,9 @@ public class TestGetAdmin extends XMBaseTest {
@Test
public void testGetAdmin(){
String body = "{\"id\":\"1760544702379651074\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers);
String body = "{\"id\":\""+xmAppApi.getLoginInfo().getAdminId()+"\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
JSONObject response = xmAppApi.getBodyInJSON();
System.out.println("-------:"+response);
Assert.assertEquals(response.getJSONObject("result").getString("id"),xmAppApi.getLoginInfo().getAdminId());
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.studioConfig.ConfigTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-02-29 18:55
* @Description: 员工复职
* @Version: 1.0
*/
public class TestReinStateStudioAdmin extends BaseTestImpl {
@Resource(name = "adminTools")
AdminTools adminTools;
@Resource(name = "configTools")
ConfigTools configTools;
@BeforeClass
@Override
public void beforeTest() {
setTestInfo(ApiModule.Polar_Admin,"API_reinStateStudioAdmin", LoginAccount.XYM_DEV, Terminal.B,"xym");
super.beforeTest();
}
@Test
public void testReinStateStudioAdmin() {
// 获取离职员工
String body = "{\"size\":10,\"current\":0,\"state\":\"LEFT\"}";
JSONObject adminPage = adminTools.pageStudioAdmin(body);
int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
if (total>1){
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("id");
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("phone");
body = "{\"id\":\""+adminId+"\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// check 1:用手机号查询离职员工是否有这个员工
body = "{\"size\":10,\"current\":0,\"state\":\"DUTY\",\"searchContext\":\""+phone+"\"}";
adminPage = adminTools.pageStudioAdmin(body);
total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
Assert.assertEquals(total,1,"员工离职失败,用手机号查询离职员工未返回数据");
// check 2: 生成对应的操作日志
body = "{\"current\":0,\"size\":10,\"domainId\":\""+xmAppApi.getLoginInfo().getStudioId()+"\",\"opEventKey\":\"RESTORE_ADMIN\"}";
JSONObject response = configTools.getOpauditPage(body);
Assert.assertEquals(response.getJSONObject("result").getJSONArray("records").getJSONObject(0).getJSONObject("target").getString("targetId"),adminId,"员工离职未生成操作日志");
}
}
}
package com.xiaomai.cases.polar.studioConfig;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.springframework.stereotype.Component;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.studioConfig
* @Author: xuyamei
* @CreateTime: 2024-03-01 10:52
* @Description: 通用配置
* @Version: 1.0
*/
@Component("configTools")
public class ConfigTools extends XMBaseTest {
/**
* @description:操作日志
* @author: xuyamei
* @date: 2024/3/1 11:00
* @param body 请求参数
* @param dataUserInfos
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getOpauditPage(String body, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_opaudit_getPage")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment