Browse Source

修改

master
tangxinyuan 1 month ago
parent
commit
486762daea
  1. 1
      code/springboot/newBank/.idea/compiler.xml
  2. 1
      code/springboot/newBank/.idea/misc.xml
  3. 9
      code/springboot/newBank/src/main/java/demo/liaofeifei/ins.java
  4. 3
      code/springboot/newBank/src/main/java/demo/liaofeifei/login.java
  5. 4
      code/springboot/newBank/src/main/java/demo/liaofeifei/register.java
  6. 77
      code/springboot/newBank/src/main/java/demo/liaofeifei/staffController.java
  7. 404
      code/springboot/newBank/src/main/java/demo/weiyichi/controller/TransferAccount.java
  8. 1
      code/vue/chuxu/node_modules/.vite/vitest/results.json

1
code/springboot/newBank/.idea/compiler.xml

@ -11,6 +11,7 @@
</annotationProcessing> </annotationProcessing>
</component> </component>
<component name="JavacSettings"> <component name="JavacSettings">
<option name="PREFER_TARGET_JDK_COMPILER" value="false" />
<option name="ADDITIONAL_OPTIONS_OVERRIDE"> <option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="newBank" options="-parameters" /> <module name="newBank" options="-parameters" />
</option> </option>

1
code/springboot/newBank/.idea/misc.xml

@ -7,6 +7,7 @@
<option value="$PROJECT_DIR$/pom.xml" /> <option value="$PROJECT_DIR$/pom.xml" />
</list> </list>
</option> </option>
<option name="workspaceImportForciblyTurnedOn" value="true" />
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />

9
code/springboot/newBank/src/main/java/demo/liaofeifei/ins.java

@ -18,11 +18,14 @@ public class ins {
@RequestMapping("/ins") @RequestMapping("/ins")
public String getAllNewTableData_ins(HttpServletRequest request) { public Object getAllNewTableData_ins(HttpServletRequest request) {
String ins_id = request.getParameter("ins_id");//获取机构号 String ins_id = request.getParameter("ins_id");//获取机构号
if (ins_id == null) {
ins_id = ""; // 如果 ins_id 为 null,则使用空字符串
}
String sql = "select * from ins where ins_id like '%" + ins_id + "%'";// 编辑查询数据库语句
String sql = "select * from ins where ins_id ='" + ins_id + "'";//编辑查询数据库语句
String result=""; String result="";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);//数据库语句执行 List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);//数据库语句执行
@ -30,7 +33,7 @@ public class ins {
if(list.size() > 0)//判断上面sql语句的查询结果,是否存在(数据库是否存在有与浏览器输入的ID一样的结果,有则list1.size()大于0) if(list.size() > 0)//判断上面sql语句的查询结果,是否存在(数据库是否存在有与浏览器输入的ID一样的结果,有则list1.size()大于0)
{ {
result=list.toString();//结果存在返回查询结果 return list;//结果存在返回查询结果
} }
else { else {
result="0";//不存在输出0 result="0";//不存在输出0

3
code/springboot/newBank/src/main/java/demo/liaofeifei/login.java

@ -26,6 +26,9 @@ public class login {
List<Map<String,Object>> list=jdbcTemplate.queryForList(sql); List<Map<String,Object>> list=jdbcTemplate.queryForList(sql);
List<Map<String,Object>> list_zt=jdbcTemplate.queryForList(sql_zt); List<Map<String,Object>> list_zt=jdbcTemplate.queryForList(sql_zt);
if(list_zt.isEmpty()){
return "0";
}
String re= (String) list_zt.get(0).get("cancel"); String re= (String) list_zt.get(0).get("cancel");
String result=""; String result="";

4
code/springboot/newBank/src/main/java/demo/liaofeifei/register.java

@ -22,7 +22,7 @@ public class register {
private JdbcTemplate jdbcTemplate; private JdbcTemplate jdbcTemplate;
@RequestMapping("/staffregister") @RequestMapping("/staffregister")
public String getAllNewTableData1(HttpServletRequest request) { public Object getAllNewTableData1(HttpServletRequest request) {
// String staffNo=request.getParameter("staffNo"); // String staffNo=request.getParameter("staffNo");
// String password=request.getParameter("password");//前端送过来的密码 // String password=request.getParameter("password");//前端送过来的密码
@ -100,7 +100,7 @@ public class register {
{ {
//System.out.println("注册成功!");//数据插入成功! //System.out.println("注册成功!");//数据插入成功!
result = "1"; result = staffNo;
} else } else
{ {
//System.out.println("注册失败!");//数据插入失败! //System.out.println("注册失败!");//数据插入失败!

77
code/springboot/newBank/src/main/java/demo/liaofeifei/staffController.java

@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.text.DecimalFormat;
import java.util.List; import java.util.List;
//import java.util.list; //import java.util.list;
import java.util.Map; import java.util.Map;
@ -22,10 +23,12 @@ public class staffController{
String staffNo=request.getParameter("staffNo");//员工号 String staffNo=request.getParameter("staffNo");//员工号
if (staffNo == null) {
staffNo = ""; // 如果 ins_id 为 null,则使用空字符串
}
String sql = "select * from staff where staffNo like '%" + staffNo + "%'";// 编辑查询数据库语句
String sql="select * from staff s where staffNo ='"+staffNo+"'";
List<Map<String,Object>> list=jdbcTemplate.queryForList(sql); List<Map<String,Object>> list=jdbcTemplate.queryForList(sql);
System.out.println("测试:"+list.toString()); System.out.println("测试:"+list.toString());
@ -33,33 +36,71 @@ public class staffController{
return list; return list;
} }
@RequestMapping("/addStaffwww") @RequestMapping("/addStaff")
public int addStaff(HttpServletRequest request){ public int addStaff(HttpServletRequest request){
String staffNo=request.getParameter("staffNo"); String staffNo = request.getParameter("staffNo");
String staffName=request.getParameter("staffName"); String staffName = request.getParameter("staffName");
String gender=request.getParameter("gender"); String gender = request.getParameter("gender");
String birthday=request.getParameter("birthday"); String birthday = request.getParameter("birthday");
String department = request.getParameter("department");
String position = request.getParameter("position");
String company = request.getParameter("company");
String contractType = request.getParameter("contractType");
String phone = request.getParameter("phone");
String password = request.getParameter("password");
String address = request.getParameter("address");
int staffNo1 =1;//新工号的初始值默认为1,防止出现数据库没有员工数据的情况出现
String sql2 = "SELECT staffNo from staff ORDER BY staffNo DESC LIMIT 1";//查看最后一条工号
List<Map<String,Object>> list=jdbcTemplate.queryForList(sql2);
if(list.size()>0 && list.get(0).get("staffNo")!=null)//对获取到的数据库工号进行判断,list.size()>0,则说明数据库有工号数据,则将数据库最后一条记录的工号的值加1作为新工号的值,若数据库查询不到数据,则不执行下面if语句,默认使用上面int staffNo1 =1;的值
{
staffNo = (String) list.get(0).get("staffNo");//获取工号
staffNo1 = Integer.parseInt(staffNo) + 1;//将工号转化为int型,便于+
//定义一个规则用来规范工号的位数为三位
DecimalFormat df = new DecimalFormat("000"); // 创建一个DecimalFormat对象,模式为000
staffNo = df.format(staffNo1);//将整形型的staffN1,规范化并转化为String字符串型
}
String sql="INSERT INTO staff (staffNo,staffName,gender,birthday) VALUES"+ String sql = "INSERT INTO staff (staffNo, staffName, gender, birthday, department, job, company, contract, phone, password,address) " +
"('"+staffNo+"','"+staffName+"','"+gender+"','"+birthday+"')"; "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)";
int i=jdbcTemplate.update(sql); int i = jdbcTemplate.update(sql, staffNo, staffName, gender, birthday, department, position, company, contractType, phone, password,address);
return i; return i;
} }
@RequestMapping("/updateStaff") @RequestMapping("/updateStaff")
public int updateStaff(HttpServletRequest request){ public int updateStaff(HttpServletRequest request){
String staffNo=request.getParameter("staffNo"); String staffNo = request.getParameter("staffNo");
String staffName=request.getParameter("staffName"); String staffName = request.getParameter("staffName");
String gender=request.getParameter("gender"); String gender = request.getParameter("gender");
String birthday=request.getParameter("birthday"); String birthday = request.getParameter("birthday");
String department = request.getParameter("department");
String sql="UPDATE staff set staffName='"+staffName+"',gender='"+gender+"',"+ String position = request.getParameter("position");
"birthday='"+birthday+"'where staffNo='"+staffNo+"'"; String company = request.getParameter("company");
int i=jdbcTemplate.update(sql); String contractType = request.getParameter("contract");
String education = request.getParameter("education");
String major = request.getParameter("major");
String marriage = request.getParameter("marriage");
String place = request.getParameter("place");
String nation = request.getParameter("nation");
String politicalStatus = request.getParameter("politicalStatus");
String phone = request.getParameter("phone");
String address = request.getParameter("address");
String idCard = request.getParameter("ID");
String sql = "UPDATE staff SET staffName=?, gender=?, birthday=?, department=?, job=?, company=?, contract=?, education=?, major=?, marriage=?, place=?, nation=?, politicalStatus=?, phone=?, address=?, ID=? WHERE staffNo=?";
int i = jdbcTemplate.update(sql, staffName, gender, birthday, department, position, company, contractType, education, major, marriage, place, nation, politicalStatus, phone, address, idCard, staffNo);
return i; return i;
} }
@RequestMapping("/delStaff") @RequestMapping("/delStaff")
public int delStaff(HttpServletRequest request) { public int delStaff(HttpServletRequest request) {
String staffNo = request.getParameter("staffNo"); String staffNo = request.getParameter("staffNo");

404
code/springboot/newBank/src/main/java/demo/weiyichi/controller/TransferAccount.java

@ -1,202 +1,202 @@
package demo.weiyichi.controller; //package demo.weiyichi.controller;
//
//
import demo.weiyichi.model.AccountTab; //import demo.weiyichi.model.AccountTab;
import demo.weiyichi.model.ApiResponse; //import demo.weiyichi.model.ApiResponse;
import demo.weiyichi.model.RecordTable; //import demo.weiyichi.model.RecordTable;
import demo.weiyichi.model.WithdrawMoneyDTO; //import demo.weiyichi.model.WithdrawMoneyDTO;
import demo.weiyichi.model.TransferDTO; //import demo.weiyichi.model.TransferDTO;
import demo.weiyichi.model.QueryDTO; //import demo.weiyichi.model.QueryDTO;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate; //import org.springframework.jdbc.core.JdbcTemplate;
//
import org.springframework.util.CollectionUtils; //import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; //import org.springframework.web.bind.annotation.*;
//
import javax.transaction.Transactional; //import javax.transaction.Transactional;
import java.time.LocalDateTime; //import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; //import java.time.format.DateTimeFormatter;
import java.util.HashMap; //import java.util.HashMap;
import java.util.List; //import java.util.List;
import java.util.Map; //import java.util.Map;
//
@RestController //@RestController
@RequestMapping("/weiyichi") //@RequestMapping("/weiyichi")
public class TransferAccount { //public class TransferAccount {
//
// add 01 // // add 01
@Autowired // @Autowired
private JdbcTemplate jdbcTemplate; // private JdbcTemplate jdbcTemplate;
//
//转账 // //转账
@Transactional // @Transactional
@PostMapping("/transfer") // @PostMapping("/transfer")
public ApiResponse<?> transfer(@RequestBody TransferDTO transferDTO) { // public ApiResponse<?> transfer(@RequestBody TransferDTO transferDTO) {
try { // try {
// 参数校验 // // 参数校验
if (transferDTO.getOutCardNo() == null || transferDTO.getInCardNo() == null) { // if (transferDTO.getOutCardNo() == null || transferDTO.getInCardNo() == null) {
return ApiResponse.error("INVALID_CARDNO", "卡号不能为空"); // return ApiResponse.error("INVALID_CARDNO", "卡号不能为空");
} // }
if (transferDTO.getAmount() == null || transferDTO.getAmount() <= 0) { // if (transferDTO.getAmount() == null || transferDTO.getAmount() <= 0) {
return ApiResponse.error("INVALID_AMOUNT", "转账金额必须大于0"); // return ApiResponse.error("INVALID_AMOUNT", "转账金额必须大于0");
} // }
//
// 验证转出账户 // // 验证转出账户
String outSql = "SELECT * FROM account_tab WHERE cardNo = ?"; // String outSql = "SELECT * FROM account_tab WHERE cardNo = ?";
List<Map<String, Object>> outAccount = jdbcTemplate.queryForList(outSql, transferDTO.getOutCardNo()); // List<Map<String, Object>> outAccount = jdbcTemplate.queryForList(outSql, transferDTO.getOutCardNo());
if (CollectionUtils.isEmpty(outAccount)) { // if (CollectionUtils.isEmpty(outAccount)) {
return ApiResponse.error("ACCOUNT_NOT_FOUND", "转出账户不存在"); // return ApiResponse.error("ACCOUNT_NOT_FOUND", "转出账户不存在");
} // }
//
// 验证密码 //// // 验证密码
if (!verifyAccountPassword(transferDTO.getOutCardNo(), transferDTO.getPassword())) { //// if (!verifyAccountPassword(transferDTO.getOutCardNo(), transferDTO.getPassword())) {
return ApiResponse.error("PASSWORD_MISMATCH", "密码错误"); //// return ApiResponse.error("PASSWORD_MISMATCH", "密码错误");
} //// }
//
// 验证转入账户 // // 验证转入账户
String inSql = "SELECT * FROM account_tab WHERE cardNo = ?"; // String inSql = "SELECT * FROM account_tab WHERE cardNo = ?";
if (CollectionUtils.isEmpty(jdbcTemplate.queryForList(inSql, transferDTO.getInCardNo()))) { // if (CollectionUtils.isEmpty(jdbcTemplate.queryForList(inSql, transferDTO.getInCardNo()))) {
return ApiResponse.error("ACCOUNT_NOT_FOUND", "转入账户不存在"); // return ApiResponse.error("ACCOUNT_NOT_FOUND", "转入账户不存在");
} // }
//
// 检查余额 // // 检查余额
double outBalance = Double.parseDouble(outAccount.get(0).get("balance").toString()); // double outBalance = Double.parseDouble(outAccount.get(0).get("balance").toString());
if (outBalance < transferDTO.getAmount()) { // if (outBalance < transferDTO.getAmount()) {
return ApiResponse.error("INSUFFICIENT_BALANCE", "余额不足"); // return ApiResponse.error("INSUFFICIENT_BALANCE", "余额不足");
} // }
//
// 更新余额 // // 更新余额
jdbcTemplate.update("UPDATE account_tab SET balance = ? WHERE cardNo = ?", // jdbcTemplate.update("UPDATE account_tab SET balance = ? WHERE cardNo = ?",
outBalance - transferDTO.getAmount(), transferDTO.getOutCardNo()); // outBalance - transferDTO.getAmount(), transferDTO.getOutCardNo());
jdbcTemplate.update("UPDATE account_tab SET balance = balance + ? WHERE cardNo = ?", // jdbcTemplate.update("UPDATE account_tab SET balance = balance + ? WHERE cardNo = ?",
transferDTO.getAmount(), transferDTO.getInCardNo()); // transferDTO.getAmount(), transferDTO.getInCardNo());
//
// 生成流水记录 // // 生成流水记录
generateTransferRecords(transferDTO, outBalance); // generateTransferRecords(transferDTO, outBalance);
logger.info("转账成功:从 {} 到 {},金额 {}", // logger.info("转账成功:从 {} 到 {},金额 {}",
transferDTO.getOutCardNo(), transferDTO.getInCardNo(), transferDTO.getAmount()); // transferDTO.getOutCardNo(), transferDTO.getInCardNo(), transferDTO.getAmount());
return ApiResponse.success(null); // return ApiResponse.success(null);
} catch (Exception e) { // } catch (Exception e) {
logger.error("转账失败:{}", e.getMessage()); // logger.error("转账失败:{}", e.getMessage());
return ApiResponse.error("TRANSFER_FAILED", "转账失败"); // return ApiResponse.error("TRANSFER_FAILED", "转账失败");
} // }
} // }
//
//
//
// 账户查询 // // 账户查询
@GetMapping("/query") // @GetMapping("/query")
public ApiResponse<Map<String, Object>> query( // public ApiResponse<Map<String, Object>> query(
@RequestParam String cardNo, // @RequestParam String cardNo,
@RequestParam(required = false) String type, // @RequestParam(required = false) String type,
@RequestParam(required = false) String filter, // @RequestParam(required = false) String filter,
@RequestParam(required = false) String startDate, // @RequestParam(required = false) String startDate,
@RequestParam(required = false) String endDate) { // @RequestParam(required = false) String endDate) {
//
// 参数校验 // // 参数校验
if (cardNo == null || !cardNo.matches("\\d{16}")) { // if (cardNo == null || !cardNo.matches("\\d{16}")) {
return ApiResponse.error("INVALID_CARDNO", "卡号格式错误"); // return ApiResponse.error("INVALID_CARDNO", "卡号格式错误");
} // }
//
Map<String, Object> result = new HashMap<>(); // Map<String, Object> result = new HashMap<>();
//
// 余额查询 // // 余额查询
if (type == null || "balance".equals(type)) { // if (type == null || "balance".equals(type)) {
try { // try {
String balanceSql = "SELECT balance FROM account_tab WHERE cardNo = ?"; // String balanceSql = "SELECT balance FROM account_tab WHERE cardNo = ?";
Double balance = jdbcTemplate.queryForObject(balanceSql, Double.class, cardNo); // Double balance = jdbcTemplate.queryForObject(balanceSql, Double.class, cardNo);
result.put("balance", balance); // result.put("balance", balance);
} catch (Exception e) { // } catch (Exception e) {
return ApiResponse.error("BALANCE_QUERY_FAILED", "余额查询失败"); // return ApiResponse.error("BALANCE_QUERY_FAILED", "余额查询失败");
} // }
} // }
//
// 交易记录查询 // // 交易记录查询
if (type == null || "transactions".equals(type)) { // if (type == null || "transactions".equals(type)) {
try { // try {
String transSql = buildTransactionSql(filter, startDate, endDate); // String transSql = buildTransactionSql(filter, startDate, endDate);
List<Map<String, Object>> transactions = jdbcTemplate.queryForList(transSql, cardNo); // List<Map<String, Object>> transactions = jdbcTemplate.queryForList(transSql, cardNo);
result.put("transactions", transactions); // result.put("transactions", transactions);
} catch (Exception e) { // } catch (Exception e) {
return ApiResponse.error("TRANSACTION_QUERY_FAILED", "交易记录查询失败"); // return ApiResponse.error("TRANSACTION_QUERY_FAILED", "交易记录查询失败");
} // }
} // }
//
return ApiResponse.success(result); // return ApiResponse.success(result);
} // }
//
//构建交易记录查询 // //构建交易记录查询
private String buildTransactionSql(String filter, String startDate, String endDate) { // private String buildTransactionSql(String filter, String startDate, String endDate) {
String sql = "SELECT " + // String sql = "SELECT " +
"date, cardNo, money, " + // "date, cardNo, money, " +
"CASE serviceTy " + // "CASE serviceTy " +
"WHEN '1' THEN '存款' " + // "WHEN '1' THEN '存款' " +
"WHEN '2' THEN '取款' " + // "WHEN '2' THEN '取款' " +
"WHEN '3' THEN '转账' " + // "WHEN '3' THEN '转账' " +
"ELSE '未知' " + // "ELSE '未知' " +
"END AS serviceDesc, " + // "END AS serviceDesc, " +
"balance, recordNo " + // "balance, recordNo " +
"FROM recordtable " + // "FROM recordtable " +
"WHERE cardNo = ?"; // "WHERE cardNo = ?";
//
if ("income".equals(filter)) { // if ("income".equals(filter)) {
sql += " AND serviceTy = '1'"; // sql += " AND serviceTy = '1'";
} else if ("expense".equals(filter)) { // } else if ("expense".equals(filter)) {
sql += " AND serviceTy IN ('2', '3')"; // sql += " AND serviceTy IN ('2', '3')";
} // }
//
if (startDate != null && endDate != null) { // if (startDate != null && endDate != null) {
sql += " AND date BETWEEN ? AND ?"; // sql += " AND date BETWEEN ? AND ?";
} // }
//
return sql; // return sql;
} // }
//
//销户接口 // //销户接口
@PostMapping("/closeAccount") // @PostMapping("/closeAccount")
public ApiResponse<?> closeAccount( // public ApiResponse<?> closeAccount(
@RequestParam String cardNo, // @RequestParam String cardNo,
@RequestParam String password, // @RequestParam String password,
@RequestParam String staffNo, // @RequestParam String staffNo,
@RequestParam String organiNm) { // @RequestParam String organiNm) {
//
// 参数校验 // // 参数校验
if (cardNo == null || cardNo.trim().isEmpty()) { // if (cardNo == null || cardNo.trim().isEmpty()) {
return ApiResponse.error("INVALID_CARDNO", "卡号不能为空"); // return ApiResponse.error("INVALID_CARDNO", "卡号不能为空");
} // }
if (password == null || password.trim().isEmpty()) { // if (password == null || password.trim().isEmpty()) {
return ApiResponse.error("INVALID_PASSWORD", "密码不能为空"); // return ApiResponse.error("INVALID_PASSWORD", "密码不能为空");
} // }
//
// 验证密码 // // 验证密码
if (!verifyAccountPassword(cardNo, password)) { // if (!verifyAccountPassword(cardNo, password)) {
return ApiResponse.error("PASSWORD_MISMATCH", "密码错误"); // return ApiResponse.error("PASSWORD_MISMATCH", "密码错误");
} // }
//
// 检查余额 // // 检查余额
Double balance = getBalance(cardNo).getData(); // Double balance = getBalance(cardNo).getData();
if (balance == null || balance != 0) { // if (balance == null || balance != 0) {
return ApiResponse.error("BALANCE_NOT_ZERO", "账户余额不为0,无法销户"); // return ApiResponse.error("BALANCE_NOT_ZERO", "账户余额不为0,无法销户");
} // }
//
try { // try {
// 更新账户状态 // // 更新账户状态
String updateSql = "UPDATE account_tab SET status = '2' WHERE cardNo = ?"; // String updateSql = "UPDATE account_tab SET status = '2' WHERE cardNo = ?";
jdbcTemplate.update(updateSql, cardNo); // jdbcTemplate.update(updateSql, cardNo);
//
// 生成销户流水记录 // // 生成销户流水记录
RecordTable record = new RecordTable(); // RecordTable record = new RecordTable();
record.setCardNo(cardNo); // record.setCardNo(cardNo);
record.setServiceTy("4"); // 4-销户 // record.setServiceTy("4"); // 4-销户
record.setRecordNo(getRecordNo(staffNo, organiNm)); // record.setRecordNo(getRecordNo(staffNo, organiNm));
saveRecordTable(record); // saveRecordTable(record);
//
logger.info("账户 {} 已销户,操作员工:{}", cardNo, staffNo); // logger.info("账户 {} 已销户,操作员工:{}", cardNo, staffNo);
return ApiResponse.success(null); // return ApiResponse.success(null);
} catch (Exception e) { // } catch (Exception e) {
logger.error("销户失败:{}", e.getMessage()); // logger.error("销户失败:{}", e.getMessage());
return ApiResponse.error("CLOSE_FAILED", "销户失败"); // return ApiResponse.error("CLOSE_FAILED", "销户失败");
} // }
} // }
//
} //}

1
code/vue/chuxu/node_modules/.vite/vitest/results.json generated vendored

@ -0,0 +1 @@
{"version":"2.1.3","results":[[":src/components/__tests__/HelloWorld.spec.ts",{"duration":0,"failed":false}]]}
Loading…
Cancel
Save