fix(用例评审): 修正评审后的功能用例的模块统计接口数量统计

This commit is contained in:
guoyuqi 2024-01-09 19:15:44 +08:00 committed by Craftsman
parent 40a4e3b72d
commit 9670672158
12 changed files with 80 additions and 67 deletions

View File

@ -39,7 +39,7 @@ public class CaseReviewFunctionalCaseController {
@GetMapping("/get-ids/{reviewId}")
@Operation(summary = "用例管理-功能用例-评审列表-评审详情-获取已关联用例id集合(关联用例弹窗前调用)")
@Operation(summary = "用例管理-用例评审-评审列表-评审详情-获取已关联用例id集合(关联用例弹窗前调用)")
@RequiresPermissions(PermissionConstants.CASE_REVIEW_RELEVANCE)
@CheckOwner(resourceId = "#reviewId", resourceType = "case_review")
public List<String> getCaseIds(@PathVariable String reviewId) {
@ -48,7 +48,7 @@ public class CaseReviewFunctionalCaseController {
@PostMapping("/page")
@Operation(summary = "用例管理-功能用例-评审列表-评审详情-已关联用例列表")
@Operation(summary = "用例管理-用例评审-评审列表-评审详情-已关联用例列表")
public Pager<List<ReviewFunctionalCaseDTO>> page(@Validated @RequestBody ReviewFunctionalCasePageRequest request) {
String userId = StringUtils.EMPTY;
if (request.getViewFlag()) {
@ -60,7 +60,7 @@ public class CaseReviewFunctionalCaseController {
@GetMapping("/tree/{projectId}/{reviewId}")
@Operation(summary = "用例管理-功能用例-评审列表-评审详情-已关联用例列表模块树")
@Operation(summary = "用例管理-用例评审-评审列表-评审详情-已关联用例列表模块树")
@RequiresPermissions(PermissionConstants.CASE_REVIEW_READ)
@CheckOwner(resourceId = "#projectId", resourceType = "project")
public List<BaseTreeNode> getTree(@PathVariable String projectId, @PathVariable String reviewId) {
@ -69,19 +69,20 @@ public class CaseReviewFunctionalCaseController {
@PostMapping("/module/count")
@Operation(summary = "用例管理-功能用例-评审列表-评审详情-已关联用例统计模块数量")
@Operation(summary = "用例管理-用例评审-评审列表-评审详情-已关联用例统计模块数量")
@RequiresPermissions(PermissionConstants.FUNCTIONAL_CASE_READ)
@CheckOwner(resourceId = "#request.getProjectId()", resourceType = "project")
public Map<String, Long> moduleCount(@Validated @RequestBody ReviewFunctionalCasePageRequest request) {
return caseReviewFunctionalCaseService.moduleCount(request, false);
String userId = StringUtils.EMPTY;
if (request.getViewFlag()) {
userId = SessionUtils.getUserId();
}
return caseReviewFunctionalCaseService.moduleCount(request, false, userId);
}
@PostMapping("/batch/disassociate")
@Operation(summary = "用例管理-功能用例-评审列表-评审详情-列表-批量取消关联用例")
@Operation(summary = "用例管理-用例评审-评审列表-评审详情-列表-批量取消关联用例")
@Log(type = OperationLogType.DISASSOCIATE, expression = "#msClass.batchDisassociateCaseLog(#request)", msClass = CaseReviewLogService.class)
@CheckOwner(resourceId = "#request.getReviewId()", resourceType = "case_review")
public void batchDisassociate(@Validated @RequestBody BaseReviewCaseBatchRequest request) {
@ -89,7 +90,7 @@ public class CaseReviewFunctionalCaseController {
}
@PostMapping("/edit/pos")
@Operation(summary = "用例管理-功能用例-评审列表-评审详情-列表-拖拽排序")
@Operation(summary = "用例管理-用例评审-评审列表-评审详情-列表-拖拽排序")
@RequiresPermissions(PermissionConstants.CASE_REVIEW_READ_UPDATE)
@CheckOwner(resourceId = "#request.getProjectId()", resourceType = "project")
public void editPos(@Validated @RequestBody CaseReviewFunctionalCasePosRequest request) {
@ -97,7 +98,7 @@ public class CaseReviewFunctionalCaseController {
}
@PostMapping("/batch/review")
@Operation(summary = "用例管理-功能用例-评审列表-评审详情-列表-批量评审")
@Operation(summary = "用例管理-用例评审-评审列表-评审详情-列表-批量评审")
@RequiresPermissions(PermissionConstants.CASE_REVIEW_REVIEW)
@CheckOwner(resourceId = "#request.getReviewId()", resourceType = "case_review")
public void batchReview(@Validated @RequestBody BatchReviewFunctionalCaseRequest request) {
@ -105,7 +106,7 @@ public class CaseReviewFunctionalCaseController {
}
@PostMapping("/batch/edit/reviewers")
@Operation(summary = "用例管理-功能用例-评审列表-评审详情-列表-批量修改评审人")
@Operation(summary = "用例管理-用例评审-评审列表-评审详情-列表-批量修改评审人")
@CheckOwner(resourceId = "#request.getReviewId()", resourceType = "case_review")
public void batchEditReviewUser(@Validated @RequestBody BatchEditReviewerRequest request) {
caseReviewFunctionalCaseService.batchEditReviewUser(request, SessionUtils.getUserId());

View File

@ -22,6 +22,6 @@ public class FunctionalCaseCommentDTO extends FunctionalCaseComment {
private String userLogo;
@Schema(description = "该条评论下的所有回复数据")
private List<FunctionalCaseCommentDTO> replies;
private List<FunctionalCaseCommentDTO> childComments;
}

View File

@ -38,11 +38,11 @@ public interface ExtCaseReviewFunctionalCaseMapper {
List<CaseReviewFunctionalCase> getListIncludes(@Param("reviewId") String reviewId, @Param("caseIds") List<String> caseIds, @Param("deleted") boolean deleted);
List<CaseReviewFunctionalCase> getListExcludes(@Param("reviewIds")List<String> reviewIds, @Param("caseIds") List<String> caseIds, @Param("deleted") boolean deleted);
List<CaseReviewFunctionalCase> getListExcludes(@Param("reviewIds") List<String> reviewIds, @Param("caseIds") List<String> caseIds, @Param("deleted") boolean deleted);
List<CaseReviewFunctionalCase> getCaseIdsByIds(@Param("ids") List<String> ids);
List<ModuleCountDTO> countModuleIdByRequest(ReviewFunctionalCasePageRequest request, boolean deleted);
List<ModuleCountDTO> countModuleIdByRequest(@Param("request") ReviewFunctionalCasePageRequest request, @Param("deleted") boolean deleted, @Param("userId") String userId);
long caseCount(ReviewFunctionalCasePageRequest request, boolean deleted);
long caseCount(@Param("request") ReviewFunctionalCasePageRequest request, @Param("deleted") boolean deleted, @Param("userId") String userId);
}

View File

@ -402,6 +402,9 @@
WHERE crfc.review_id = #{request.reviewId}
AND functional_case.deleted = #{deleted}
AND functional_case.project_id = #{request.projectId}
<if test="userId != null and userId != ''">
AND crfc.case_id in (select case_id from case_review_functional_case_user crfcu where crfcu.review_id = #{request.reviewId} and crfcu.user_id = #{userId})
</if>
<choose>
<when test='request.searchMode == "AND"'>
AND <include refid="queryWhereCondition"/>
@ -422,6 +425,9 @@
WHERE crfc.review_id = #{request.reviewId}
AND functional_case.deleted = #{deleted}
AND functional_case.project_id = #{request.projectId}
<if test="userId != null and userId != ''">
AND crfc.case_id in (select case_id from case_review_functional_case_user crfcu where crfcu.review_id = #{request.reviewId} and crfcu.user_id = #{userId})
</if>
<choose>
<when test='request.searchMode == "AND"'>
AND <include refid="queryWhereCondition"/>

View File

@ -13,6 +13,7 @@
<foreach collection="reviewIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
group by cu.user_id
</select>

View File

@ -111,9 +111,9 @@ public class CaseReviewCaseProvider implements BaseCaseProvider {
Object caseIds = paramMap.get(CaseEvent.Param.CASE_IDS);
List<String> caseIdList = JSON.parseArray(JSON.toJSONString(caseIds), String.class);
//获取与选中case无关的其他case
List<CaseReviewFunctionalCase> caseReviewFunctionalCases = extCaseReviewFunctionalCaseMapper.getListIncludes(reviewId, caseIdList, false);
List<CaseReviewFunctionalCase> caseReviewFunctionalCases = extCaseReviewFunctionalCaseMapper.getListExcludes(List.of(reviewId), caseIdList, false);
List<CaseReviewFunctionalCase> passList = caseReviewFunctionalCases.stream().filter(t -> StringUtils.equalsIgnoreCase(t.getStatus(), FunctionalCaseReviewStatus.PASS.toString())).toList();
int caseCount = caseReviewFunctionalCases.size() - caseIdList.size();
int caseCount = caseReviewFunctionalCases.size();
int passNumber = passList.size();
List<CaseReviewFunctionalCase> unCompletedCaseList = getUnCompletedCaseList(caseReviewFunctionalCases, new ArrayList<>());
updateCaseReview(reviewId, caseReview.getCaseCount() - caseCount, passNumber, unCompletedCaseList.size(), paramMap.get(CaseEvent.Param.USER_ID).toString());

View File

@ -536,13 +536,13 @@ public class CaseReviewFunctionalCaseService extends ModuleTreeService {
return super.buildTreeAndCountResource(functionalModuleList, true, Translator.get("default.module"));
}
public Map<String, Long> moduleCount(ReviewFunctionalCasePageRequest request, boolean deleted) {
public Map<String, Long> moduleCount(ReviewFunctionalCasePageRequest request, boolean deleted, String userId) {
//查出每个模块节点下的资源数量 不需要按照模块进行筛选
request.setModuleIds(null);
List<ModuleCountDTO> moduleCountDTOList = extCaseReviewFunctionalCaseMapper.countModuleIdByRequest(request, deleted);
List<ModuleCountDTO> moduleCountDTOList = extCaseReviewFunctionalCaseMapper.countModuleIdByRequest(request, deleted, userId);
Map<String, Long> moduleCountMap = getModuleCountMap(request.getProjectId(), request.getReviewId(), moduleCountDTOList);
//查出全部用例数量
long allCount = extCaseReviewFunctionalCaseMapper.caseCount(request, deleted);
long allCount = extCaseReviewFunctionalCaseMapper.caseCount(request, deleted, userId);
moduleCountMap.put(CASE_MODULE_COUNT_ALL, allCount);
return moduleCountMap;
}

View File

@ -13,7 +13,8 @@ import io.metersphere.sdk.exception.MSException;
import io.metersphere.sdk.util.BeanUtils;
import io.metersphere.sdk.util.Translator;
import io.metersphere.system.domain.User;
import io.metersphere.system.domain.UserExample;
import io.metersphere.system.dto.CommentUserInfo;
import io.metersphere.system.mapper.BaseUserMapper;
import io.metersphere.system.mapper.UserMapper;
import io.metersphere.system.notice.NoticeModel;
import io.metersphere.system.notice.constants.NoticeConstants;
@ -52,6 +53,9 @@ public class FunctionalCaseCommentService {
@Resource
private NoticeSendService noticeSendService;
@Resource
private BaseUserMapper baseUserMapper;
/**
* 新增评论
*
@ -225,7 +229,7 @@ public class FunctionalCaseCommentService {
if (CollectionUtils.isEmpty(userIds)) {
return new ArrayList<>();
}
Map<String, User> userMap = getUserMap(userIds);
Map<String, CommentUserInfo> userMap = getUserMap(userIds);
return buildData(functionalCaseComments, userMap);
}
@ -234,14 +238,16 @@ public class FunctionalCaseCommentService {
* @param functionalCaseComments 查出来的所有当前用例的评论信息
* @param userMap 用户信息
*/
private List<FunctionalCaseCommentDTO> buildData(List<FunctionalCaseComment> functionalCaseComments, Map<String, User> userMap) {
private List<FunctionalCaseCommentDTO> buildData(List<FunctionalCaseComment> functionalCaseComments, Map<String, CommentUserInfo> userMap) {
List<FunctionalCaseCommentDTO>list = new ArrayList<>();
for (FunctionalCaseComment functionalCaseComment : functionalCaseComments) {
FunctionalCaseCommentDTO functionalCaseCommentDTO = new FunctionalCaseCommentDTO();
BeanUtils.copyBean(functionalCaseCommentDTO,functionalCaseComment);
functionalCaseCommentDTO.setUserName(userMap.get(functionalCaseComment.getCreateUser()).getName());
functionalCaseCommentDTO.setUserLogo(userMap.get(functionalCaseComment.getCreateUser()).getAvatar());
if (StringUtils.isNotBlank(functionalCaseComment.getReplyUser())) {
functionalCaseCommentDTO.setReplyUserName(userMap.get(functionalCaseComment.getReplyUser()).getName());
functionalCaseCommentDTO.setReplyUserLogo(userMap.get(functionalCaseComment.getReplyUser()).getAvatar());
}
list.add(functionalCaseCommentDTO);
}
@ -251,7 +257,7 @@ public class FunctionalCaseCommentService {
Map<String, List<FunctionalCaseCommentDTO>> commentMap = replyList.stream().collect(Collectors.groupingBy(FunctionalCaseComment::getParentId));
for (FunctionalCaseCommentDTO functionalCaseComment : rootList) {
List<FunctionalCaseCommentDTO> replyComments = commentMap.get(functionalCaseComment.getId());
functionalCaseComment.setReplies(replyComments);
functionalCaseComment.setChildComments(replyComments);
}
return rootList;
}
@ -261,11 +267,9 @@ public class FunctionalCaseCommentService {
* @param userIds userIds
* @return Map<String, User>
*/
private Map<String, User> getUserMap(List<String> userIds) {
UserExample userExample = new UserExample();
userExample.createCriteria().andIdIn(userIds);
List<User> users = userMapper.selectByExample(userExample);
return users.stream().collect(Collectors.toMap(User::getId, item -> item));
private Map<String, CommentUserInfo> getUserMap(List<String> userIds) {
List<CommentUserInfo> commentUserInfos = baseUserMapper.getCommentUserInfoByIds(userIds);
return commentUserInfos.stream().collect(Collectors.toMap(User::getId, item -> item));
}
/**

View File

@ -135,9 +135,25 @@ public class CaseReviewFunctionalCaseControllerTests extends BaseTest {
Assertions.assertTrue(moduleCount.containsKey("all"));
}
@Test
@Order(4)
public void emptyDataTest() throws Exception {
//空数据下检查模块树
List<BaseTreeNode> treeNodes = this.getCaseReviewModuleTreeNode("wx_test_project","wx_review_id_1");
//检查有没有默认节点
boolean hasNode = false;
for (BaseTreeNode baseTreeNode : treeNodes) {
if (org.testcontainers.shaded.org.apache.commons.lang3.StringUtils.equals(baseTreeNode.getId(), ModuleConstants.DEFAULT_NODE_ID)) {
hasNode = true;
}
Assertions.assertNotNull(baseTreeNode.getParentId());
}
Assertions.assertTrue(hasNode);
}
@Test
@Order(5)
public void testBatchDisassociate() throws Exception {
BaseReviewCaseBatchRequest request = new BaseReviewCaseBatchRequest();
request.setReviewId("wx_review_id_1");
@ -164,7 +180,7 @@ public class CaseReviewFunctionalCaseControllerTests extends BaseTest {
@Test
@Order(5)
@Order(6)
public void testCaseReviewAddCase() throws Exception {
//新增
FunctionalCaseAddRequest request = creatFunctionalCase();
@ -181,7 +197,7 @@ public class CaseReviewFunctionalCaseControllerTests extends BaseTest {
}
@Test
@Order(6)
@Order(7)
public void testPos() throws Exception {
List<CaseReviewFunctionalCase> caseReviewList = getCaseReviewFunctionalCase("wx_review_id_1");
CaseReviewFunctionalCase caseReviews = caseReviewList.get(0);
@ -215,7 +231,7 @@ public class CaseReviewFunctionalCaseControllerTests extends BaseTest {
@Test
@Order(7)
@Order(8)
public void testBatchReview() throws Exception {
List<CaseReviewFunctionalCase> caseReviewList = getCaseReviewFunctionalCase("wx_review_id_1");
List<CaseReviewFunctionalCase> list = caseReviewList.stream().filter(t -> StringUtils.equalsIgnoreCase(t.getCreateUser(), "admin")).toList();
@ -269,7 +285,7 @@ public class CaseReviewFunctionalCaseControllerTests extends BaseTest {
}
@Test
@Order(8)
@Order(9)
public void testBatchReviewFalse() throws Exception {
BatchReviewFunctionalCaseRequest request = new BatchReviewFunctionalCaseRequest();
request.setReviewId("wx_review_id_1");
@ -301,7 +317,7 @@ public class CaseReviewFunctionalCaseControllerTests extends BaseTest {
@Test
@Order(9)
@Order(10)
public void testBatchEditReviewers() throws Exception {
BatchEditReviewerRequest request = new BatchEditReviewerRequest();
//更新评审人
@ -332,23 +348,6 @@ public class CaseReviewFunctionalCaseControllerTests extends BaseTest {
this.requestPostWithOkAndReturn(BATCH_EDIT_REVIEWERS, request);
}
@Test
@Order(10)
public void emptyDataTest() throws Exception {
//空数据下检查模块树
List<BaseTreeNode> treeNodes = this.getCaseReviewModuleTreeNode("wx_test_project","wx_review_id_1");
//检查有没有默认节点
boolean hasNode = false;
for (BaseTreeNode baseTreeNode : treeNodes) {
if (org.testcontainers.shaded.org.apache.commons.lang3.StringUtils.equals(baseTreeNode.getId(), ModuleConstants.DEFAULT_NODE_ID)) {
hasNode = true;
}
Assertions.assertNotNull(baseTreeNode.getParentId());
}
Assertions.assertTrue(hasNode);
}
private List<BaseTreeNode> getCaseReviewModuleTreeNode(String projectId, String reviewId) throws Exception {
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get(URL_MODULE_TREE+"/"+projectId+"/"+reviewId).header(SessionConstants.HEADER_TOKEN, sessionId)
.header(SessionConstants.CSRF_TOKEN, csrfToken)

View File

@ -5,28 +5,28 @@ INSERT INTO file_association(id, source_type, source_id, file_id, file_ref_id, f
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
VALUES ('TEST_FUNCTIONAL_CASE_ID', 1, 'TEST_MODULE_ID', '100001100001', '100001', '测试', 'UN_REVIEWED', NULL, 'STEP', 0, 'v1.0.0', 'v1.0.0', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
VALUES ('TEST_FUNCTIONAL_CASE_ID', 1, 'TEST_MODULE_ID_GYQ', '100001100001', '100001', '测试', 'UN_REVIEWED', NULL, 'STEP', 0, 'v1.0.0', 'v1.0.0', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
VALUES ('TEST_FUNCTIONAL_CASE_ID_1', 2, 'TEST_MODULE_ID', '100001100001', '100001', '测试多版本', 'UN_REVIEWED', '["测试标签_1"]', 'STEP', 5000, 'v1.0.0', 'TEST_REF_ID', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
VALUES ('TEST_FUNCTIONAL_CASE_ID_1', 2, 'TEST_MODULE_ID_GYQ', '100001100001', '100001', '测试多版本', 'UN_REVIEWED', '["测试标签_1"]', 'STEP', 5000, 'v1.0.0', 'TEST_REF_ID', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
VALUES ('TEST_FUNCTIONAL_CASE_ID_2', 3, 'TEST_MODULE_ID', '100001100001', '100001', 'copy_测试多版本', 'UN_REVIEWED', NULL, 'STEP', 15000, 'v2.0.0', 'TEST_REF_ID', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
VALUES ('TEST_FUNCTIONAL_CASE_ID_2', 3, 'TEST_MODULE_ID_GYQ', '100001100001', '100001', 'copy_测试多版本', 'UN_REVIEWED', NULL, 'STEP', 15000, 'v2.0.0', 'TEST_REF_ID', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
VALUES ('TEST_FUNCTIONAL_CASE_ID_3', 3, 'TEST_MODULE_ID', '100001100001', '100001', 'copy_测试多版本', 'UN_REVIEWED', NULL, 'STEP', 25000, 'v3.0.0', 'TEST_REF_ID', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
VALUES ('TEST_FUNCTIONAL_CASE_ID_3', 3, 'TEST_MODULE_ID_GYQ', '100001100001', '100001', 'copy_测试多版本', 'UN_REVIEWED', NULL, 'STEP', 25000, 'v3.0.0', 'TEST_REF_ID', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
VALUES ('TEST_FUNCTIONAL_CASE_ID_4', 4, 'TEST_MODULE_ID', '100001100001', '100001', 'copy_测试多版本', 'UN_REVIEWED', NULL, 'STEP', 40000, 'v3.0.0', 'TEST_REF_ID', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
VALUES ('TEST_FUNCTIONAL_CASE_ID_4', 4, 'TEST_MODULE_ID_GYQ', '100001100001', '100001', 'copy_测试多版本', 'UN_REVIEWED', NULL, 'STEP', 40000, 'v3.0.0', 'TEST_REF_ID', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
VALUES ('TEST_FUNCTIONAL_CASE_ID_5', 5, 'TEST_MODULE_ID', '100001100001', '100001', 'copy_测试多版本', 'UN_REVIEWED', NULL, 'STEP', 45000, 'v3.0.0', 'TEST_REF_ID_1', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
VALUES ('TEST_FUNCTIONAL_CASE_ID_5', 5, 'TEST_MODULE_ID_GYQ', '100001100001', '100001', 'copy_测试多版本', 'UN_REVIEWED', NULL, 'STEP', 45000, 'v3.0.0', 'TEST_REF_ID_1', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
VALUES ('TEST_FUNCTIONAL_CASE_ID_6', 6, 'TEST_MODULE_ID', '100001100001', '100001', 'copy_测试多版本', 'UN_REVIEWED', NULL, 'STEP', 55000, 'v3.0.0', 'TEST_REF_ID_1', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
VALUES ('TEST_FUNCTIONAL_CASE_ID_6', 6, 'TEST_MODULE_ID_GYQ', '100001100001', '100001', 'copy_测试多版本', 'UN_REVIEWED', NULL, 'STEP', 55000, 'v3.0.0', 'TEST_REF_ID_1', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
VALUES ('TEST_FUNCTIONAL_CASE_ID_7', 7, 'TEST_MODULE_ID', '100001100001', '100001', 'copy_long_name_11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111', 'UN_REVIEWED', NULL, 'STEP', 0, 'v3.0.0', 'TEST_REF_ID_2', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
VALUES ('TEST_FUNCTIONAL_CASE_ID_7', 7, 'TEST_MODULE_ID_GYQ', '100001100001', '100001', 'copy_long_name_11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111', 'UN_REVIEWED', NULL, 'STEP', 0, 'v3.0.0', 'TEST_REF_ID_2', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
INSERT INTO functional_case_blob(id, steps, text_description, expected_result, prerequisite, description) VALUES ('TEST_FUNCTIONAL_CASE_ID', 'STEP', '1111', '', '', 'TEST');
INSERT INTO functional_case_blob(id, steps, text_description, expected_result, prerequisite, description) VALUES ('TEST_FUNCTIONAL_CASE_ID_1', 'STEP', '1111', '', '', '1111');
@ -47,7 +47,8 @@ INSERT INTO functional_case_attachment(id, case_id, file_id, file_name, size, lo
INSERT INTO functional_case_attachment(id, case_id, file_id, file_name, size, local, create_user, create_time) VALUES ('TEST_CASE_ATTACHMENT_ID_1', 'TEST_FUNCTIONAL_CASE_ID', 'relate_file_meta_id_1', '测试1', 1, b'0', 'admin', 1698058347559);
INSERT INTO functional_case_attachment(id, case_id, file_id, file_name, size, local, create_user, create_time) VALUES ('TEST_CASE_ATTACHMENT_ID_2', 'TEST_FUNCTIONAL_CASE_ID', 'delete_file_meta_id_1', '测试删除', 1, b'1', 'admin', 1698058347559);
INSERT INTO functional_case_module(id, project_id, name, parent_id, pos, create_time, update_time, create_user, update_user) VALUES ('TEST_MODULE_ID', '100001100001', '测试所属模块', 'NONE', 0, 1669174143999, 1669174143999, 'admin', 'admin');
INSERT INTO functional_case_module(id, project_id, name, parent_id, pos, create_time, update_time, create_user, update_user) VALUES ('TEST_MODULE_ID_GYQ', '100001100001', '测试所属模块', 'NONE', 0, 1669174143999, 1669174143999, 'admin', 'admin');
INSERT INTO custom_field(id, name, scene, type, remark, internal, scope_type, create_time, update_time, create_user, ref_id, enable_option_key, scope_id) VALUES ('custom_field_id_1', 'functional_priority', 'FUNCTIONAL', 'SELECT', '', b'1', 'ORGANIZATION', 1698983187000, 1698983187000, 'admin', NULL, b'0', '100001');
INSERT INTO custom_field(id, name, scene, type, remark, internal, scope_type, create_time, update_time, create_user, ref_id, enable_option_key, scope_id) VALUES ('custom_field_id_2', '测试1', 'FUNCTIONAL', 'SELECT', '', b'0', 'ORGANIZATION', 1698983187000, 1698983187000, 'admin', NULL, b'0', '100001');
@ -57,7 +58,7 @@ INSERT INTO custom_field(id, name, scene, type, remark, internal, scope_type, cr
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
VALUES ('WX_TEST_FUNCTIONAL_CASE_ID', 6, 'TEST_MODULE_ID', 'WX_PROJECT_ID', '100001', '测试重新提审', 'UN_REVIEWED', NULL, 'STEP', 55000, 'v3.0.0', 'TEST_REF_ID_1', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
VALUES ('WX_TEST_FUNCTIONAL_CASE_ID', 6, 'TEST_MODULE_ID_GYQ', 'WX_PROJECT_ID', '100001', '测试重新提审', 'UN_REVIEWED', NULL, 'STEP', 55000, 'v3.0.0', 'TEST_REF_ID_1', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
INSERT INTO functional_case_blob(id, steps, text_description, expected_result, prerequisite, description) VALUES ('WX_TEST_FUNCTIONAL_CASE_ID', 'STEP', '1111', '', '', 'TEST');
@ -66,6 +67,6 @@ INSERT INTO project_application(project_id, type, type_value) VALUES ('WX_PROJEC
INSERT INTO case_review_functional_case(id, review_id, case_id, status, create_time, update_time, create_user, pos) VALUES ('wx_case_review_id', 'wx_review_id', 'WX_TEST_FUNCTIONAL_CASE_ID', 'PASS', 1700816738199, 1700816738199, 'admin', 0);
INSERT INTO case_review(id, num, name, module_id, project_id, status, review_pass_rule, pos, start_time, end_time, case_count, pass_rate, tags, description, create_time, create_user, update_time, update_user)
VALUES ('wx_review_id',10006,'测试重新提审', 'test_module_one', 'TEST_MODULE_ID', 'COMPLETED', 'SINGLE', 001, null, null, 1,100.00,null,null,1698058347559,'admin',1698058347559,'admin');
VALUES ('wx_review_id',10006,'测试重新提审', 'test_module_one', 'TEST_MODULE_ID_GYQ', 'COMPLETED', 'SINGLE', 001, null, null, 1,100.00,null,null,1698058347559,'admin',1698058347559,'admin');

View File

@ -67,7 +67,9 @@ VALUES ('wx_case_id_1', 'wx_review_id_1', 'admin'),
INSERT INTO functional_case_module(id, project_id, name, parent_id, pos, create_time, update_time, create_user, update_user) VALUES ('wx_module_1', 'wx_test_project', '测试所属模块', 'NONE', 0, 1669174143999, 1669174143999, 'admin', 'admin');
INSERT INTO case_review_module(id, project_id, name, parent_id, pos, create_time, update_time, create_user, update_user) VALUES ('wx_module_1', 'wx_test_project', '测试所属模块', 'NONE', 0, 1669174143999, 1669174143999, 'admin', 'admin');
INSERT INTO functional_case_module(id, project_id, name, parent_id, pos, create_time, update_time, create_user, update_user) VALUES ('TEST_MODULE_ID', 'wx_test_project', '测试所属模块', 'NONE', 0, 1669174143999, 1669174143999, 'admin', 'admin');
INSERT INTO case_review_history(id, review_id, case_id, content, status, deleted, notifier, create_user, create_time)

View File

@ -123,8 +123,7 @@
</select>
<select id="getCommentUserInfoByIds" resultType="io.metersphere.system.dto.CommentUserInfo">
<!-- avatar: 保留; 用户头像参数暂时为空, 后续调整为user_extend参数 -->
SELECT u.*, '' as avatar
SELECT u.*, ue.avatar as avatar
FROM user u left join user_extend ue on u.id = ue.id
WHERE u.id IN
<foreach collection="ids" item="id" index="index"