diff --git a/backend/src/main/java/com/xly/erp/module/usr/mapper/UserPermissionMapper.java b/backend/src/main/java/com/xly/erp/module/usr/mapper/UserPermissionMapper.java index c1741ae..81f765e 100644 --- a/backend/src/main/java/com/xly/erp/module/usr/mapper/UserPermissionMapper.java +++ b/backend/src/main/java/com/xly/erp/module/usr/mapper/UserPermissionMapper.java @@ -2,6 +2,11 @@ package com.xly.erp.module.usr.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xly.erp.module.usr.entity.UserPermission; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Param; public interface UserPermissionMapper extends BaseMapper { + + @Delete("DELETE FROM tUserPermission WHERE iUserId = #{userId}") + int deleteByUserId(@Param("userId") Integer userId); } diff --git a/backend/src/test/java/com/xly/erp/module/usr/mapper/UserMapperIT.java b/backend/src/test/java/com/xly/erp/module/usr/mapper/UserMapperIT.java index 435ede2..b40b961 100644 --- a/backend/src/test/java/com/xly/erp/module/usr/mapper/UserMapperIT.java +++ b/backend/src/test/java/com/xly/erp/module/usr/mapper/UserMapperIT.java @@ -93,6 +93,49 @@ class UserMapperIT { assertThat(count).isEqualTo(1); } + @Test + void userPermissionMapper_deleteByUserId_removesAllRowsForGivenUser() { + User user1 = newUser("sp_test_del_u1", "用户1"); + userMapper.insert(user1); + User user2 = newUser("sp_test_del_u2", "用户2"); + userMapper.insert(user2); + + jdbcTemplate.update( + "INSERT INTO tPermissionCategory (sBrandsId, sSubsidiaryId, tCreateDate, sCategoryCode, sCategoryName, " + + "iSortOrder, sCreatedBy, bDeleted) VALUES " + + "('XLY','XLY', NOW(), 'sp_test_del_c1', '权限C1', 0, 'STUB', 0)," + + "('XLY','XLY', NOW(), 'sp_test_del_c2', '权限C2', 0, 'STUB', 0)"); + Integer cat1 = jdbcTemplate.queryForObject( + "SELECT iIncrement FROM tPermissionCategory WHERE sCategoryCode = 'sp_test_del_c1'", Integer.class); + Integer cat2 = jdbcTemplate.queryForObject( + "SELECT iIncrement FROM tPermissionCategory WHERE sCategoryCode = 'sp_test_del_c2'", Integer.class); + + insertUserPermission(user1.getIIncrement(), cat1); + insertUserPermission(user1.getIIncrement(), cat2); + insertUserPermission(user2.getIIncrement(), cat1); + + int affected = userPermissionMapper.deleteByUserId(user1.getIIncrement()); + assertThat(affected).isEqualTo(2); + + Integer u1Count = jdbcTemplate.queryForObject( + "SELECT COUNT(1) FROM tUserPermission WHERE iUserId = ?", Integer.class, user1.getIIncrement()); + Integer u2Count = jdbcTemplate.queryForObject( + "SELECT COUNT(1) FROM tUserPermission WHERE iUserId = ?", Integer.class, user2.getIIncrement()); + assertThat(u1Count).isZero(); + assertThat(u2Count).isEqualTo(1); + } + + private void insertUserPermission(Integer userId, Integer catId) { + UserPermission rel = new UserPermission(); + rel.setSBrandsId("XLY"); + rel.setSSubsidiaryId("XLY"); + rel.setTCreateDate(LocalDateTime.now()); + rel.setIUserId(userId); + rel.setICategoryId(catId); + rel.setSCreatedBy("STUB_ADMIN"); + userPermissionMapper.insert(rel); + } + private User newUser(String userNo, String userName) { User u = new User(); u.setSBrandsId("XLY");