diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index c2fe868..236b4f2 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -1464,6 +1464,10 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true) public void updateStatus(String id, String status) { + if (!String.valueOf(CommonConstant.USER_UNFREEZE).equals(status) + && !String.valueOf(CommonConstant.USER_FREEZE).equals(status)) { + throw new JeecgBootException("账号状态仅支持冻结或解冻"); + } userMapper.update(new SysUser().setStatus(Integer.parseInt(status)), new UpdateWrapper().lambda().eq(SysUser::getId,id)); } diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/test/java/org/jeecg/modules/system/service/impl/SysUserServiceImplTest.java b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/test/java/org/jeecg/modules/system/service/impl/SysUserServiceImplTest.java new file mode 100644 index 0000000..082f21a --- /dev/null +++ b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/test/java/org/jeecg/modules/system/service/impl/SysUserServiceImplTest.java @@ -0,0 +1,16 @@ +package org.jeecg.modules.system.service.impl; + +import org.jeecg.common.exception.JeecgBootException; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +class SysUserServiceImplTest { + + @Test + void rejectsAStatusOutsideFreezeAndUnfreezeBeforeUpdatingUser() { + SysUserServiceImpl service = new SysUserServiceImpl(); + + assertThrows(JeecgBootException.class, () -> service.updateStatus("user-1", "3")); + } +}