From 7a4ccedfd6f8ed414453e1472d5e447ad2b2b013 Mon Sep 17 00:00:00 2001 From: AgAngle <1323481023@qq.com> Date: Tue, 18 Mar 2025 10:08:09 +0800 Subject: [PATCH] feat: customer contact list --- .../constants/CustomerCollaborationType.java | 4 +- .../controller/CustomerContactController.java | 43 +++++++++++++---- .../domain/CustomerCollaboration.java | 2 +- .../CustomerCollaborationAddRequest.java | 2 +- .../CustomerCollaborationUpdateRequest.java | 2 +- .../mapper/ExtCustomerContactMapper.java | 7 ++- .../mapper/ExtCustomerContactMapper.xml | 36 +++++++++++++- .../crm/customer/mapper/ExtCustomerMapper.xml | 2 +- .../service/CustomerCollaborationService.java | 7 +++ .../service/CustomerContactService.java | 48 ++++++++++++++++++- .../1.0.0/ddl/V1.0.0_4__customer.sql | 2 +- .../CustomerCollaborationControllerTests.java | 2 +- .../CustomerContactControllerTests.java | 39 ++++++++++++--- 13 files changed, 169 insertions(+), 27 deletions(-) diff --git a/backend/crm/src/main/java/io/cordys/crm/customer/constants/CustomerCollaborationType.java b/backend/crm/src/main/java/io/cordys/crm/customer/constants/CustomerCollaborationType.java index f9426d713..0a589e753 100644 --- a/backend/crm/src/main/java/io/cordys/crm/customer/constants/CustomerCollaborationType.java +++ b/backend/crm/src/main/java/io/cordys/crm/customer/constants/CustomerCollaborationType.java @@ -6,9 +6,9 @@ package io.cordys.crm.customer.constants; */ public enum CustomerCollaborationType { /** - * 共享 + * 只读 */ - SHARE, + READ_ONLY, /** * 协作 */ diff --git a/backend/crm/src/main/java/io/cordys/crm/customer/controller/CustomerContactController.java b/backend/crm/src/main/java/io/cordys/crm/customer/controller/CustomerContactController.java index 5864437b8..5b8b0fbda 100644 --- a/backend/crm/src/main/java/io/cordys/crm/customer/controller/CustomerContactController.java +++ b/backend/crm/src/main/java/io/cordys/crm/customer/controller/CustomerContactController.java @@ -3,11 +3,14 @@ package io.cordys.crm.customer.controller; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import io.cordys.common.constants.FormKey; +import io.cordys.common.dto.DeptDataPermissionDTO; +import io.cordys.common.service.DataScopeService; import io.cordys.crm.system.dto.response.ModuleFormConfigDTO; import io.cordys.crm.system.service.ModuleFormCacheService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -38,9 +41,12 @@ public class CustomerContactController { private CustomerContactService customerContactService; @Resource private ModuleFormCacheService moduleFormCacheService; + @Resource + private DataScopeService dataScopeService; @GetMapping("/module/form") - @RequiresPermissions(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_READ) + @RequiresPermissions(value = {PermissionConstants.CUSTOMER_MANAGEMENT_READ, + PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_READ}, logical = Logical.OR) @Operation(summary = "获取表单配置") public ModuleFormConfigDTO getModuleFormConfig() { return moduleFormCacheService.getBusinessFormConfig(FormKey.CONTACT.getKey(), OrganizationContext.getOrganizationId()); @@ -48,49 +54,68 @@ public class CustomerContactController { @PostMapping("/page") @RequiresPermissions(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_READ) - @Operation(summary = "客户联系人列表") + @Operation(summary = "联系人列表") public Pager> list(@Validated @RequestBody CustomerContactPageRequest request) { + DeptDataPermissionDTO deptDataPermission = + dataScopeService.getDeptDataPermission(SessionUtils.getUserId(), OrganizationContext.getOrganizationId()); + Page page = PageHelper.startPage(request.getCurrent(), request.getPageSize()); - return PageUtils.setPageInfo(page, customerContactService.list(request, OrganizationContext.getOrganizationId())); + return PageUtils.setPageInfo(page, customerContactService.list(request, OrganizationContext.getOrganizationId(), deptDataPermission)); + } + + @GetMapping("/list/{customerId}") + @Operation(summary = "客户下的联系人列表") + @RequiresPermissions(PermissionConstants.CUSTOMER_MANAGEMENT_READ) + public List list(@Validated @PathVariable String customerId) { + DeptDataPermissionDTO deptDataPermission = + dataScopeService.getDeptDataPermission(SessionUtils.getUserId(), OrganizationContext.getOrganizationId()); + return customerContactService.listByCustomerId(customerId, SessionUtils.getUserId(), + OrganizationContext.getOrganizationId(), deptDataPermission); } @GetMapping("/get/{id}") - @RequiresPermissions(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_READ) + @RequiresPermissions(value = {PermissionConstants.CUSTOMER_MANAGEMENT_READ, + PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_READ}, logical = Logical.OR) @Operation(summary = "客户联系人详情") public CustomerContactGetResponse get(@PathVariable String id){ return customerContactService.get(id, OrganizationContext.getOrganizationId()); } @PostMapping("/add") - @RequiresPermissions(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_ADD) + @RequiresPermissions(value = {PermissionConstants.CUSTOMER_MANAGEMENT_ADD, + PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_ADD}, logical = Logical.OR) @Operation(summary = "添加客户联系人") public CustomerContact add(@Validated @RequestBody CustomerContactAddRequest request) { return customerContactService.add(request, SessionUtils.getUserId(), OrganizationContext.getOrganizationId()); } @PostMapping("/update") - @RequiresPermissions(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE) + @RequiresPermissions(value = {PermissionConstants.CUSTOMER_MANAGEMENT_UPDATE, + PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE}, logical = Logical.OR) @Operation(summary = "更新客户联系人") public CustomerContact update(@Validated @RequestBody CustomerContactUpdateRequest request) { return customerContactService.update(request, SessionUtils.getUserId()); } @GetMapping("/enable/{id}") - @RequiresPermissions(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE) + @RequiresPermissions(value = {PermissionConstants.CUSTOMER_MANAGEMENT_UPDATE, + PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE}, logical = Logical.OR) @Operation(summary = "启用联系人") public void enable(@PathVariable String id){ customerContactService.enable(id); } @PostMapping("/disable/{id}") - @RequiresPermissions(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE) + @RequiresPermissions(value = {PermissionConstants.CUSTOMER_MANAGEMENT_UPDATE, + PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE}, logical = Logical.OR) @Operation(summary = "禁用联系人") public void disable(@PathVariable String id, @RequestBody CustomerContactDisableRequest request){ customerContactService.disable(id, request); } @GetMapping("/delete/{id}") - @RequiresPermissions(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_DELETE) + @RequiresPermissions(value = {PermissionConstants.CUSTOMER_MANAGEMENT_DELETE, + PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_DELETE}, logical = Logical.OR) @Operation(summary = "删除客户联系人") public void delete(@PathVariable String id) { customerContactService.delete(id); diff --git a/backend/crm/src/main/java/io/cordys/crm/customer/domain/CustomerCollaboration.java b/backend/crm/src/main/java/io/cordys/crm/customer/domain/CustomerCollaboration.java index cf2782f48..520611790 100644 --- a/backend/crm/src/main/java/io/cordys/crm/customer/domain/CustomerCollaboration.java +++ b/backend/crm/src/main/java/io/cordys/crm/customer/domain/CustomerCollaboration.java @@ -22,6 +22,6 @@ public class CustomerCollaboration extends BaseModel { @Schema(description = "客户id") private String customerId; - @Schema(description = "协作类型(共享/协作)") + @Schema(description = "协作类型(只读/协作)") private String collaborationType; } diff --git a/backend/crm/src/main/java/io/cordys/crm/customer/dto/request/CustomerCollaborationAddRequest.java b/backend/crm/src/main/java/io/cordys/crm/customer/dto/request/CustomerCollaborationAddRequest.java index 2952ecffd..054bb97c7 100644 --- a/backend/crm/src/main/java/io/cordys/crm/customer/dto/request/CustomerCollaborationAddRequest.java +++ b/backend/crm/src/main/java/io/cordys/crm/customer/dto/request/CustomerCollaborationAddRequest.java @@ -28,7 +28,7 @@ public class CustomerCollaborationAddRequest { private String userId; @NotNull - @Schema(description = "协作类型(共享 SHARE / 协作 COLLABORATION)", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "协作类型(只读 READ_ONLY / 协作 COLLABORATION)", requiredMode = Schema.RequiredMode.REQUIRED) @EnumValue(enumClass = CustomerCollaborationType.class) private String collaborationType; } \ No newline at end of file diff --git a/backend/crm/src/main/java/io/cordys/crm/customer/dto/request/CustomerCollaborationUpdateRequest.java b/backend/crm/src/main/java/io/cordys/crm/customer/dto/request/CustomerCollaborationUpdateRequest.java index 8203ab401..50bf70ad0 100644 --- a/backend/crm/src/main/java/io/cordys/crm/customer/dto/request/CustomerCollaborationUpdateRequest.java +++ b/backend/crm/src/main/java/io/cordys/crm/customer/dto/request/CustomerCollaborationUpdateRequest.java @@ -21,7 +21,7 @@ public class CustomerCollaborationUpdateRequest { private String id; @NotNull - @Schema(description = "协作类型(共享 SHARE / 协作 COLLABORATION)", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "协作类型(只读 READ_ONLY / 协作 COLLABORATION)", requiredMode = Schema.RequiredMode.REQUIRED) @EnumValue(enumClass = CustomerCollaborationType.class) private String collaborationType; } \ No newline at end of file diff --git a/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerContactMapper.java b/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerContactMapper.java index bdae3fc59..7a2c6ce43 100644 --- a/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerContactMapper.java +++ b/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerContactMapper.java @@ -1,5 +1,6 @@ package io.cordys.crm.customer.mapper; +import io.cordys.common.dto.DeptDataPermissionDTO; import io.cordys.common.dto.OptionDTO; import io.cordys.crm.customer.dto.request.*; import io.cordys.crm.customer.dto.response.*; @@ -15,11 +16,15 @@ import java.util.List; */ public interface ExtCustomerContactMapper { - List list(@Param("request") CustomerContactPageRequest request, @Param("orgId") String orgId); + List list(@Param("request") CustomerContactPageRequest request, @Param("orgId") String orgId, + @Param("dataPermission") DeptDataPermissionDTO dataPermission); boolean checkAddExist(@Param("customerContact") CustomerContact customerContact); boolean checkUpdateExist(@Param("customerContact") CustomerContact CustomerContact); List selectContactOptionByIds(List contactIds); + + List listByCustomerId(@Param("customerId") String customerId, @Param("userId") String userId, + @Param("dataPermission") DeptDataPermissionDTO dataPermission); } diff --git a/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerContactMapper.xml b/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerContactMapper.xml index 3da9c2345..bd4f53b1b 100644 --- a/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerContactMapper.xml +++ b/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerContactMapper.xml @@ -7,6 +7,8 @@ select cc.id, cc.customer_id, cc.name, cc.create_time, cc.update_time, cc.create_user, cc.update_user, cc.enable, cc.owner, cc.disable_reason, cc.phone + from customer_contact cc + @@ -19,13 +21,24 @@ - from customer_contact cc + + left join sys_organization_user sou on cc.owner = sou.user_id + and sou.dept_id in + + #{deptId} + + + where cc.organization_id = #{orgId} and cc.name like concat('%', #{request.keyword},'%') + + and c.owner = #{userId} + + @@ -161,4 +174,25 @@ #{id} + + \ No newline at end of file diff --git a/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerMapper.xml b/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerMapper.xml index 2237c4035..8dc768c4c 100644 --- a/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerMapper.xml +++ b/backend/crm/src/main/java/io/cordys/crm/customer/mapper/ExtCustomerMapper.xml @@ -107,7 +107,7 @@ - + left join customer_field sort_table on c.id = sort_table.resource_id and sort_table.field_id = #{sortName} diff --git a/backend/crm/src/main/java/io/cordys/crm/customer/service/CustomerCollaborationService.java b/backend/crm/src/main/java/io/cordys/crm/customer/service/CustomerCollaborationService.java index f033eadc8..4049e0e77 100644 --- a/backend/crm/src/main/java/io/cordys/crm/customer/service/CustomerCollaborationService.java +++ b/backend/crm/src/main/java/io/cordys/crm/customer/service/CustomerCollaborationService.java @@ -36,6 +36,13 @@ public class CustomerCollaborationService { return buildListData(orgId, collaborations); } + public List selectByCustomerIdAndUserId(String customerId, String userId) { + CustomerCollaboration example = new CustomerCollaboration(); + example.setCustomerId(customerId); + example.setUserId(userId); + return customerCollaborationMapper.select(example); + } + private List buildListData(String orgId, List collaborations) { if (CollectionUtils.isEmpty(collaborations)) { return List.of(); diff --git a/backend/crm/src/main/java/io/cordys/crm/customer/service/CustomerContactService.java b/backend/crm/src/main/java/io/cordys/crm/customer/service/CustomerContactService.java index 7bff660b7..cf4032586 100644 --- a/backend/crm/src/main/java/io/cordys/crm/customer/service/CustomerContactService.java +++ b/backend/crm/src/main/java/io/cordys/crm/customer/service/CustomerContactService.java @@ -1,12 +1,16 @@ package io.cordys.crm.customer.service; import io.cordys.common.domain.BaseModuleFieldValue; +import io.cordys.common.dto.DeptDataPermissionDTO; import io.cordys.common.dto.OptionDTO; import io.cordys.common.dto.UserDeptDTO; import io.cordys.common.exception.GenericException; import io.cordys.common.service.BaseService; import io.cordys.common.uid.IDGenerator; import io.cordys.common.util.BeanUtils; +import io.cordys.crm.customer.constants.CustomerCollaborationType; +import io.cordys.crm.customer.domain.Customer; +import io.cordys.crm.customer.domain.CustomerCollaboration; import io.cordys.crm.customer.domain.CustomerContact; import io.cordys.crm.customer.dto.request.CustomerContactAddRequest; import io.cordys.crm.customer.dto.request.CustomerContactDisableRequest; @@ -25,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import static io.cordys.crm.customer.constants.CustomerResultCode.CUSTOMER_CONTACT_EXIST; @@ -44,12 +49,16 @@ public class CustomerContactService { @Resource private ExtCustomerContactMapper extCustomerContactMapper; @Resource + private BaseMapper customerMapper; + @Resource private BaseService baseService; @Resource private CustomerContactFieldService customerContactFieldService; + @Resource + private CustomerCollaborationService customerCollaborationService; - public List list(CustomerContactPageRequest request, String orgId) { - List list = extCustomerContactMapper.list(request, orgId); + public List list(CustomerContactPageRequest request, String orgId, DeptDataPermissionDTO deptDataPermission) { + List list = extCustomerContactMapper.list(request, orgId, deptDataPermission); return buildListData(list, orgId); } @@ -184,4 +193,39 @@ public class CustomerContactService { customerContact.setDisableReason(request.getReason()); customerContactMapper.updateById(customerContact); } + + public List listByCustomerId(String customerId, String userId, String orgId, DeptDataPermissionDTO deptDataPermission) { + // 根据数据权限查询联系人 + List list = extCustomerContactMapper.listByCustomerId(customerId, userId, deptDataPermission); + // 查询协作人信息 + List collaborations = customerCollaborationService.selectByCustomerIdAndUserId(customerId, userId); + if (CollectionUtils.isNotEmpty(collaborations)) { + // 获取协作人相关的联系人 + String collaborationType = collaborations.getFirst().getCollaborationType(); + List collaborationContacts; + if (StringUtils.equals(collaborationType, CustomerCollaborationType.READ_ONLY.name())) { + // 只读,查询客户责任人的联系人 + Customer customer = customerMapper.selectByPrimaryKey(customerId); + CustomerContact example = new CustomerContact(); + example.setCustomerId(customerId); + example.setOwner(customer.getOwner()); + collaborationContacts = customerContactMapper.select(example); + } else { + // 协作,查询当前用户的联系人 + CustomerContact example = new CustomerContact(); + example.setCustomerId(customerId); + example.setOwner(userId); + collaborationContacts = customerContactMapper.select(example); + } + Set userIds = list.stream() + .map(CustomerContactListResponse::getOwner) + .collect(Collectors.toSet()); + + collaborationContacts.stream() + .filter(contact -> !userIds.contains(contact.getOwner())) // 去重 + .map(contact -> BeanUtils.copyBean(new CustomerContactListResponse(), contact)) + .forEach(list::add); + } + return buildListData(list, orgId); + } } \ No newline at end of file diff --git a/backend/crm/src/main/resources/migration/1.0.0/ddl/V1.0.0_4__customer.sql b/backend/crm/src/main/resources/migration/1.0.0/ddl/V1.0.0_4__customer.sql index 41403a661..22db7c310 100644 --- a/backend/crm/src/main/resources/migration/1.0.0/ddl/V1.0.0_4__customer.sql +++ b/backend/crm/src/main/resources/migration/1.0.0/ddl/V1.0.0_4__customer.sql @@ -193,7 +193,7 @@ CREATE TABLE customer_collaboration `update_user` VARCHAR(32) NOT NULL COMMENT '更新人', `user_id` VARCHAR(32) NOT NULL COMMENT '协作人id', `customer_id` VARCHAR(32) NOT NULL COMMENT '客户id', - `collaboration_type` VARCHAR(50) NOT NULL COMMENT '协作类型(共享/协作)', + `collaboration_type` VARCHAR(50) NOT NULL COMMENT '协作类型(只读/协作)', PRIMARY KEY (id) ) COMMENT = '客户协作人' ENGINE = InnoDB diff --git a/backend/crm/src/test/java/io/cordys/crm/customer/controller/CustomerCollaborationControllerTests.java b/backend/crm/src/test/java/io/cordys/crm/customer/controller/CustomerCollaborationControllerTests.java index 646c55602..5c7a7ef30 100644 --- a/backend/crm/src/test/java/io/cordys/crm/customer/controller/CustomerCollaborationControllerTests.java +++ b/backend/crm/src/test/java/io/cordys/crm/customer/controller/CustomerCollaborationControllerTests.java @@ -75,7 +75,7 @@ class CustomerCollaborationControllerTests extends BaseTest { // 请求成功 CustomerCollaborationUpdateRequest request = new CustomerCollaborationUpdateRequest(); request.setId(addCustomerCollaboration.getId()); - request.setCollaborationType(CustomerCollaborationType.SHARE.name()); + request.setCollaborationType(CustomerCollaborationType.READ_ONLY.name()); this.requestPostWithOk(DEFAULT_UPDATE, request); // 校验请求成功数据 diff --git a/backend/crm/src/test/java/io/cordys/crm/customer/controller/CustomerContactControllerTests.java b/backend/crm/src/test/java/io/cordys/crm/customer/controller/CustomerContactControllerTests.java index f6cfd6986..2bc791e50 100644 --- a/backend/crm/src/test/java/io/cordys/crm/customer/controller/CustomerContactControllerTests.java +++ b/backend/crm/src/test/java/io/cordys/crm/customer/controller/CustomerContactControllerTests.java @@ -30,6 +30,7 @@ import java.util.List; class CustomerContactControllerTests extends BaseTest { private static final String BASE_PATH = "/customer/contact/"; protected static final String MODULE_FORM = "module/form"; + protected static final String LIST = "list/{0}"; protected static final String DISABLE = "disable/{0}"; protected static final String ENABLE = "enable/{0}"; @@ -91,7 +92,8 @@ class CustomerContactControllerTests extends BaseTest { assertErrorCode(this.requestPost(DEFAULT_ADD, request), CustomerResultCode.CUSTOMER_CONTACT_EXIST); // 校验权限 - requestPostPermissionTest(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_ADD, DEFAULT_ADD, request); + requestPostPermissionsTest(List.of(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_ADD, PermissionConstants.CUSTOMER_MANAGEMENT_ADD), + DEFAULT_ADD, request); } @Test @@ -114,7 +116,8 @@ class CustomerContactControllerTests extends BaseTest { this.requestPostWithOk(DEFAULT_UPDATE, emptyRequest); // 校验权限 - requestPostPermissionTest(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE, DEFAULT_UPDATE, request); + requestPostPermissionsTest(List.of(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE, PermissionConstants.CUSTOMER_MANAGEMENT_UPDATE), + DEFAULT_UPDATE, request); } @Test @@ -135,7 +138,7 @@ class CustomerContactControllerTests extends BaseTest { Assertions.assertNotNull(getResponse.getDepartmentName()); // 校验权限 - requestGetPermissionTest(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_READ, DEFAULT_GET, addCustomerContact.getId()); + requestGetPermissionsTest(List.of(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_READ, PermissionConstants.CUSTOMER_MANAGEMENT_READ), DEFAULT_GET, addCustomerContact.getId()); } @Test @@ -164,6 +167,27 @@ class CustomerContactControllerTests extends BaseTest { requestPostPermissionTest(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_READ, DEFAULT_PAGE, request); } + @Test + @Order(4) + void testList() throws Exception { + MvcResult mvcResult = this.requestGetWithOkAndReturn(LIST, "customerId"); + List customerContactList = getResultDataArray(mvcResult, CustomerContactListResponse.class); + customerContactList.forEach(customerContactListResponse -> { + CustomerContact customerContact = customerContactMapper.selectByPrimaryKey(customerContactListResponse.getId()); + CustomerContact result = BeanUtils.copyBean(new CustomerContact(), customerContactListResponse); + result.setOrganizationId(customerContact.getOrganizationId()); + Assertions.assertEquals(customerContact, result); + Assertions.assertNotNull(customerContactListResponse.getUpdateUserName()); + Assertions.assertNotNull(customerContactListResponse.getDepartmentName()); + Assertions.assertNotNull(customerContactListResponse.getOwnerName()); + Assertions.assertNotNull(customerContactListResponse.getDepartmentId()); + Assertions.assertNotNull(customerContactListResponse.getDepartmentName()); + }); + + // 校验权限 + requestGetPermissionTest(PermissionConstants.CUSTOMER_MANAGEMENT_READ, LIST, "customerId"); + } + @Test @Order(5) void testDisable() throws Exception { @@ -182,7 +206,8 @@ class CustomerContactControllerTests extends BaseTest { this.requestPostWithOk(DISABLE, request, addCustomerContact.getId()); // 校验权限 - requestPostPermissionTest(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE, DISABLE, request, addCustomerContact.getId()); + requestPostPermissionsTest(List.of(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE, PermissionConstants.CUSTOMER_MANAGEMENT_UPDATE), + DISABLE, request, addCustomerContact.getId()); } @Test @@ -196,7 +221,8 @@ class CustomerContactControllerTests extends BaseTest { Assertions.assertTrue(customerContact.getEnable()); // 校验权限 - requestGetPermissionTest(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE, ENABLE, addCustomerContact.getId()); + requestGetPermissionsTest(List.of(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_UPDATE, PermissionConstants.CUSTOMER_MANAGEMENT_UPDATE), + ENABLE, addCustomerContact.getId()); } @Test @@ -206,6 +232,7 @@ class CustomerContactControllerTests extends BaseTest { CustomerContact customerContact = customerContactMapper.selectByPrimaryKey(addCustomerContact.getId()); Assertions.assertNull(customerContact); // 校验权限 - requestGetPermissionTest(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_DELETE, DEFAULT_DELETE, addCustomerContact.getId()); + requestGetPermissionsTest(List.of(PermissionConstants.CUSTOMER_MANAGEMENT_CONTACT_DELETE, PermissionConstants.CUSTOMER_MANAGEMENT_DELETE), + DEFAULT_DELETE, addCustomerContact.getId()); } } \ No newline at end of file