fix: preserve school configuration metadata

main
chenyuan 1 month ago
parent 8e4e5b6ac7
commit 22bed6e1f5

@ -60,6 +60,7 @@ public class SchoolProductConfigServiceImpl implements SchoolProductConfigServic
&& hasAdministrativeOrganizationData(config.getSchoolId())) {
throw new ServiceException(HttpStatus.BAD_REQUEST, "学校已有组织数据,不能直接切换组织模式");
}
config.setCreateTime(current.getCreateTime());
config.setUpdateTime(new Date());
schoolProductConfigMapper.updateByPrimaryKey(config);
return getRequiredConfig(config.getSchoolId());

@ -7,6 +7,8 @@ import com.sztzjy.linkCommerce.mapper.SchoolProductConfigMapper;
import com.sztzjy.linkCommerce.mapper.UserinfoMapper;
import org.junit.jupiter.api.Test;
import java.util.Date;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
@ -83,6 +85,23 @@ class SchoolProductConfigServiceImplTest {
config("school-standard", "TEACHING_CLASS_ONLY", "TEACHER")));
}
@Test
void updateKeepsTheOriginalCreationTime() {
SchoolProductConfigServiceImpl service = new SchoolProductConfigServiceImpl();
service.schoolProductConfigMapper = mock(SchoolProductConfigMapper.class);
service.schoolClassMapper = mock(SchoolClassMapper.class);
service.userinfoMapper = mock(UserinfoMapper.class);
SchoolProductConfig current = config("school-standard", "ADMIN_CLASS_ENABLED", "SCHOOL_ADMIN");
Date createdAt = new Date(1000L);
current.setCreateTime(createdAt);
when(service.schoolProductConfigMapper.selectByPrimaryKey("school-standard")).thenReturn(current);
service.updateConfig(config("school-standard", "ADMIN_CLASS_ENABLED", "SCHOOL_ADMIN"));
verify(service.schoolProductConfigMapper).updateByPrimaryKey(org.mockito.ArgumentMatchers.argThat(updated ->
createdAt.equals(updated.getCreateTime())));
}
private SchoolProductConfig config(String schoolId, String organizationMode, String rosterOwner) {
SchoolProductConfig config = new SchoolProductConfig();
config.setSchoolId(schoolId);

Loading…
Cancel
Save