Merge remote-tracking branch 'origin/master'
# Conflicts: # src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectGroupController.javamaster
commit
f0ca1ce6d9
|
@ -1,7 +1,7 @@
|
|||
package cn.edu.hfut.rmdjzz.projectmanagement.controller;
|
||||
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.ResultProject;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.query.ResultProject;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectGroupService;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectService;
|
||||
|
@ -17,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package cn.edu.hfut.rmdjzz.projectmanagement.controller;
|
||||
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Task;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.query.ResultTask;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectGroupService;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.service.ITaskService;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseList;
|
||||
|
@ -26,13 +26,13 @@ public class TaskController {
|
|||
private IProjectGroupService projectGroupService;
|
||||
|
||||
@SneakyThrows
|
||||
@GetMapping("/subtask/{fatherId}")
|
||||
public ResponseList<Task> getSubTaskList(
|
||||
@GetMapping("/{fatherId}/subtask")
|
||||
public ResponseList<ResultTask> getSubTaskList(
|
||||
@RequestHeader("Token") String token,
|
||||
@PathVariable("projectId") Integer projectId,
|
||||
@PathVariable("fatherId") Long fatherId
|
||||
) {
|
||||
List<Task> result = taskService.getTaskList(token, projectId, fatherId);
|
||||
List<ResultTask> result = taskService.getSubTaskList(token, projectId, fatherId);
|
||||
return ResponseList.ofSuccess("查询成功", result);
|
||||
}
|
||||
|
||||
|
@ -55,7 +55,7 @@ public class TaskController {
|
|||
}
|
||||
|
||||
@SneakyThrows
|
||||
@PostMapping("/")
|
||||
@PostMapping
|
||||
public ResponseMap createTask(
|
||||
@RequestHeader("Token") String token,
|
||||
@PathVariable("projectId") Integer projectId,
|
||||
|
@ -67,7 +67,7 @@ public class TaskController {
|
|||
}
|
||||
|
||||
@SneakyThrows
|
||||
@PutMapping("/")
|
||||
@PutMapping
|
||||
public ResponseMap modifyTask(
|
||||
@RequestHeader("Token") String token,
|
||||
@PathVariable("projectId") Integer projectId,
|
||||
|
@ -77,4 +77,15 @@ public class TaskController {
|
|||
taskService.modifyTask(token,task);
|
||||
return ResponseMap.ofSuccess("操作成功");
|
||||
}
|
||||
@SneakyThrows
|
||||
@DeleteMapping
|
||||
public ResponseMap deleteTaskAndSubTask(
|
||||
@RequestHeader("Token") String token,
|
||||
@PathVariable("projectId") Integer projectId,
|
||||
@RequestParam("taskId") Long taskId
|
||||
) {
|
||||
taskService.deleteTaskAndSubTask(token, projectId, taskId);
|
||||
return ResponseMap.ofSuccess("删除成功");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -20,12 +20,11 @@ public class Project {
|
|||
private Integer projectId;
|
||||
private String projectName;
|
||||
//TODO: 时间线顺序判断
|
||||
private LocalDate projectStartTime;
|
||||
private LocalDate projectOnlineTime;
|
||||
private LocalDate projectFirstTestTime;
|
||||
private LocalDate projectFinalTestTime;
|
||||
private LocalDate projectEndTime;
|
||||
private LocalDate projectCloseTime;
|
||||
private LocalDate projectStartDate;
|
||||
private LocalDate projectOnlineDate;
|
||||
private LocalDate projectFirstTestDate;
|
||||
private LocalDate projectFinalTestDate;
|
||||
private LocalDate projectEndDate;
|
||||
private String projectAbbreviation;
|
||||
private Integer projectClassId;
|
||||
private Integer projectSubclassId;
|
||||
|
@ -44,5 +43,6 @@ public class Project {
|
|||
@TableLogic
|
||||
private Boolean deleted;
|
||||
private Integer projectCreator;
|
||||
private LocalDateTime projectCreateTime;
|
||||
private LocalDateTime projectCreatedTime;
|
||||
private LocalDate projectClosedDate;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package cn.edu.hfut.rmdjzz.projectmanagement.entity;
|
||||
package cn.edu.hfut.rmdjzz.projectmanagement.entity.query;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
||||
|
@ -11,7 +14,9 @@ import java.time.LocalDate;
|
|||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@TableName(autoResultMap = true)
|
||||
public class ResultProject {
|
||||
@TableId
|
||||
Integer projectId;
|
||||
String projectName;
|
||||
Integer projectCreator;
|
||||
|
@ -21,7 +26,7 @@ public class ResultProject {
|
|||
String projectSubclassName;
|
||||
Boolean deleted;
|
||||
Boolean completed;
|
||||
LocalDate projectCloseTime;
|
||||
LocalDate projectClosedDate;
|
||||
Integer completeNum;
|
||||
Integer totalNum;
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package cn.edu.hfut.rmdjzz.projectmanagement.entity.query;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author 佘语殊
|
||||
* @since 2022/7/6 10:25
|
||||
*/
|
||||
@Data
|
||||
public class ResultTask {
|
||||
private Long taskId;
|
||||
private String taskName;
|
||||
private Integer taskProjectId;
|
||||
private Integer taskHolderId;
|
||||
private String taskHolderName;
|
||||
private String taskStatus;
|
||||
private String taskType;
|
||||
private Long taskFatherId;
|
||||
private LocalDateTime taskCreatedTime;
|
||||
private LocalDateTime taskStartTime;
|
||||
private LocalDateTime taskEndTime;
|
||||
private LocalDateTime taskClosedTime;
|
||||
private Integer taskPriority;
|
||||
private String taskDescription;
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private Map<String, Object> attachedInfo;
|
||||
private Boolean hasChildren;
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
package cn.edu.hfut.rmdjzz.projectmanagement.mapper;
|
||||
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.ResultProject;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.query.ResultProject;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
|
@ -23,35 +23,5 @@ public interface ProjectMapper extends BaseMapper<Project> {
|
|||
""")
|
||||
Long findProjectCount(@Param("id") Integer staffId);
|
||||
|
||||
@Select("""
|
||||
SELECT * FROM
|
||||
(SELECT project_id,
|
||||
project_name,
|
||||
contract_amount,
|
||||
project_importance,
|
||||
project_creator,
|
||||
pt1.project_class_name as project_class_name,
|
||||
pt2.project_class_name as project_subclass_name,
|
||||
is_completed,
|
||||
is_deleted,
|
||||
project_close_time
|
||||
FROM project join project_type pt1 on project.project_class_id = pt1.project_class_id
|
||||
join project_type pt2 on project.project_subclass_id = pt2.project_class_id
|
||||
WHERE project_id IN (SELECT DISTINCT project_id FROM project_group WHERE staff_id = #{id})) AS T
|
||||
${ew.customSqlSegment}
|
||||
""")
|
||||
@Results({
|
||||
@Result(column = "project_id", property = "projectId", id = true),
|
||||
@Result(column = "project_name", property = "projectName"),
|
||||
@Result(column = "contract_amount", property = "contractAmount"),
|
||||
@Result(column = "project_importance", property = "projectImportance"),
|
||||
@Result(column = "project_class_name", property = "projectClassName"),
|
||||
@Result(column = "project_subclass_name", property = "projectSubclassName"),
|
||||
@Result(column = "project_class_name", property = "projectClassName"),
|
||||
@Result(column = "is_completed", property = "completed"),
|
||||
@Result(column = "is_deleted", property = "deleted"),
|
||||
@Result(column = "project_close_time", property = "projectCloseTime"),
|
||||
@Result(column = "project_creator", property = "projectCreator")
|
||||
})
|
||||
IPage<ResultProject> findMyProject(IPage<ResultProject> pg, @Param("id") Integer staff_id, @Param(Constants.WRAPPER) Wrapper<Project> wrapper);
|
||||
}
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
package cn.edu.hfut.rmdjzz.projectmanagement.mapper;
|
||||
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Task;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.query.ResultTask;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author 张韬
|
||||
* created at 2022/7/4 14:52
|
||||
*/
|
||||
public interface TaskMapper extends BaseMapper<Task> {
|
||||
List<ResultTask> selectSubTaskList(@Param("projectId") Integer projectId, @Param("fatherId") Long fatherId);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package cn.edu.hfut.rmdjzz.projectmanagement.service;
|
||||
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.ResultProject;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.query.ResultProject;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.exception.TokenException;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.RequestPage;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package cn.edu.hfut.rmdjzz.projectmanagement.service;
|
||||
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Staff;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Task;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.query.ResultTask;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
|
@ -12,14 +12,23 @@ import java.util.List;
|
|||
* created at 2022/7/4 14:49
|
||||
*/
|
||||
public interface ITaskService extends IService<Task> {
|
||||
List<Task> getTaskList(String token,Integer projectId,Long fatherId) throws BadRequestException;
|
||||
List<ResultTask> getSubTaskList(String token, Integer projectId, Long fatherId) throws BadRequestException;
|
||||
|
||||
Boolean existSubTask(String token, Integer projectId, Long taskId) throws BadRequestException;
|
||||
|
||||
Boolean deleteTaskAndSubTask(String token, Integer projectId, Long taskId) throws BadRequestException;
|
||||
|
||||
Boolean closeTaskAndSubTask(String token, Integer projectId, Long taskId) throws BadRequestException;
|
||||
Integer checkHolder(Integer staffId,Long taskId);
|
||||
Integer checkHolder(String token,Long taskId);
|
||||
List<Task> getMyTaskList(String token,Integer projectId) throws BadRequestException;
|
||||
|
||||
Integer checkHolder(Integer staffId, Long taskId);
|
||||
|
||||
Integer checkHolder(String token, Long taskId);
|
||||
|
||||
List<Task> getMyTaskList(String token, Integer projectId) throws BadRequestException;
|
||||
|
||||
Boolean canBeDone(Long taskId);
|
||||
Task insertTask(String token,Task task) throws BadRequestException;
|
||||
Task modifyTask(String token,Task task) throws BadRequestException;
|
||||
|
||||
Task insertTask(String token, Task task) throws BadRequestException;
|
||||
|
||||
Task modifyTask(String token, Task task) throws BadRequestException;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package cn.edu.hfut.rmdjzz.projectmanagement.service.impl;
|
||||
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.ResultProject;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.query.ResultProject;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.exception.TokenException;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.mapper.ProjectMapper;
|
||||
|
@ -60,7 +60,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|||
if (targetProject.getCompleted())
|
||||
throw new BadRequestException("该项目已结项");
|
||||
targetProject.setCompleted(true);
|
||||
targetProject.setProjectCloseTime(LocalDate.now());
|
||||
targetProject.setProjectClosedDate(LocalDate.now());
|
||||
if (baseMapper.updateById(targetProject) == 1)
|
||||
return true;
|
||||
throw new BadRequestException("操作失败");
|
||||
|
@ -70,14 +70,14 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|||
public Boolean createProject(String token, Project project) throws TokenException, BadRequestException {
|
||||
project.setProjectId(null);
|
||||
project.setCompleted(false);
|
||||
project.setProjectCreateTime(null);
|
||||
project.setProjectCreatedTime(null);
|
||||
project.setProjectCreator(TokenUtils.getStaffId(token));
|
||||
project.setProjectCloseTime(null);
|
||||
project.setProjectClosedDate(null);
|
||||
if (project.getExpectedCompletion() == null) {
|
||||
project.setExpectedCompletion((short) 100);
|
||||
} else if (project.getExpectedCompletion() < 0 || project.getExpectedCompletion() > 100 ||
|
||||
project.getProjectStartTime() == null || project.getProjectEndTime() == null ||
|
||||
project.getProjectStartTime().isAfter(project.getProjectEndTime())
|
||||
project.getProjectStartDate() == null || project.getProjectEndDate() == null ||
|
||||
project.getProjectStartDate().isAfter(project.getProjectEndDate())
|
||||
) {
|
||||
throw new BadRequestException("参数错误");
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package cn.edu.hfut.rmdjzz.projectmanagement.service.impl;
|
||||
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Task;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.query.ResultTask;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.exception.TokenException;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.mapper.TaskMapper;
|
||||
|
@ -30,11 +31,11 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements IT
|
|||
|
||||
//FIXME: 抛出未授权异常
|
||||
@Override
|
||||
public List<Task> getTaskList(String token, Integer projectId, Long fatherId) throws BadRequestException {
|
||||
public List<ResultTask> getSubTaskList(String token, Integer projectId, Long fatherId) throws BadRequestException {
|
||||
if (projectGroupService.getUserLevelInGroup(token, projectId) == 0 || fatherId == null) {
|
||||
throw new BadRequestException("错误的访问参数");
|
||||
}
|
||||
return baseMapper.selectList(Wrappers.<Task>lambdaQuery().eq(Task::getTaskProjectId, projectId).eq(Task::getTaskFatherId, fatherId));
|
||||
return baseMapper.selectSubTaskList(projectId, fatherId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -97,7 +98,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements IT
|
|||
Wrappers.<Task>lambdaUpdate()
|
||||
.in(Task::getTaskId, res)
|
||||
.set(Task::getTaskStatus, "关闭")
|
||||
.set(Task::getTaskClosedTime,LocalDateTime.now())
|
||||
.set(Task::getTaskClosedTime, LocalDateTime.now())
|
||||
);
|
||||
if (list == null || list.isEmpty()) break;
|
||||
res = list.stream().map(Task::getTaskId).collect(Collectors.toList());
|
||||
|
|
|
@ -20,6 +20,7 @@ spring:
|
|||
pathmatch:
|
||||
matching-strategy: ant_path_matcher
|
||||
mybatis-plus:
|
||||
mapper-locations: classpath:mapper/*.xml
|
||||
configuration:
|
||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
server:
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.edu.hfut.rmdjzz.projectmanagement.mapper.ProjectMapper">
|
||||
<resultMap id="resultProject" type="cn.edu.hfut.rmdjzz.projectmanagement.entity.query.ResultProject">
|
||||
<id property="projectId" column="project_id"/>
|
||||
<result property="completed" column="is_completed"/>
|
||||
<result property="deleted" column="is_deleted"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="findMyProject" resultMap="resultProject">
|
||||
SELECT *
|
||||
FROM (SELECT project_id,
|
||||
project_name,
|
||||
contract_amount,
|
||||
project_importance,
|
||||
project_creator,
|
||||
pt1.project_class_name AS project_class_name,
|
||||
pt2.project_class_name AS project_subclass_name,
|
||||
is_completed,
|
||||
is_deleted,
|
||||
project_closed_date
|
||||
FROM project
|
||||
JOIN project_type pt1 ON project.project_class_id = pt1.project_class_id
|
||||
JOIN project_type pt2 ON project.project_subclass_id = pt2.project_class_id
|
||||
WHERE project_id IN (SELECT DISTINCT project_id FROM project_group WHERE staff_id = #{id})) AS T
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.edu.hfut.rmdjzz.projectmanagement.mapper.TaskMapper">
|
||||
<select id="selectSubTaskList" resultType="cn.edu.hfut.rmdjzz.projectmanagement.entity.query.ResultTask">
|
||||
SELECT task_id,
|
||||
task_name,
|
||||
task_project_id,
|
||||
task_holder_id,
|
||||
s.staff_fullname AS task_holder_name,
|
||||
task_status,
|
||||
task_type,
|
||||
t.task_father_id,
|
||||
task_created_time,
|
||||
task_start_time,
|
||||
task_end_time,
|
||||
task_closed_time,
|
||||
task_priority,
|
||||
task_description,
|
||||
attached_info,
|
||||
judge.task_father_id IS NOT NULL AS has_children
|
||||
FROM task AS t
|
||||
JOIN (SELECT staff_id, staff_fullname FROM staff) AS s ON t.task_holder_id = s.staff_id
|
||||
LEFT JOIN (SELECT DISTINCT task_father_id FROM task WHERE is_deleted = 0) AS judge ON t.task_id = judge.task_father_id
|
||||
WHERE is_deleted = 0
|
||||
AND task_project_id = #{projectId}
|
||||
AND t.task_father_id = #{fatherId}
|
||||
</select>
|
||||
</mapper>
|
|
@ -1,11 +1,11 @@
|
|||
package cn.edu.hfut.rmdjzz.projectmanagement;
|
||||
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Staff;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectService;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.service.IStaffService;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.service.impl.ProjectServiceImpl;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.utils.WrapperUtils;
|
||||
import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.RequestPage;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
@ -73,4 +73,18 @@ public class MybatisPlusTests {
|
|||
System.out.println(objectMapper.writeValueAsString(((ProjectServiceImpl) projectService).getBaseMapper()
|
||||
.findMyProject(new Page<>(1, 5), 1, Wrappers.query())));
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
@Test
|
||||
public void findProjectTest() {
|
||||
RequestPage page = new RequestPage();
|
||||
page.setPageCurrent(1);
|
||||
page.setPageSize(5);
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("completed", true);
|
||||
System.out.println(objectMapper.writeValueAsString(projectService
|
||||
.getOnePageProject("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkdXJhdGlvbiI6MTgwMDAsInN0YWZmVXNlcm5hbWUiOiJtaWtlIiwiZXhwIjoxNjU3MDkzNTU1LCJpYXQiOjE2NTcwNzU1NTUsInN0YWZmSWQiOjF9.g8l01dnHglt223469Z03i9gqZL8P13Fo7KoaA1pf310",
|
||||
page, map)));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue