diff --git a/admin-core/src/main/java/com/ibeetl/admin/core/conf/BeetlConf.java b/admin-core/src/main/java/com/ibeetl/admin/core/conf/BeetlConf.java index 4594c5af..d617d81b 100644 --- a/admin-core/src/main/java/com/ibeetl/admin/core/conf/BeetlConf.java +++ b/admin-core/src/main/java/com/ibeetl/admin/core/conf/BeetlConf.java @@ -89,158 +89,156 @@ public class BeetlConf { @Bean public BeetlTemplateCustomize beetlTemplateCustomize() { - return new BeetlTemplateCustomize() { - public void customize(GroupTemplate groupTemplate) { - groupTemplate.registerFunctionPackage("platform", platFormService); - groupTemplate.registerFunctionPackage("queryCondition", new QueryParser()); - groupTemplate.registerFunctionPackage("dict", dictDownQueryFunction); - groupTemplate.registerFunctionPackage("user", coreUserFunction); - groupTemplate.registerFunctionPackage("isSignRole", isSignRoleFunction); - groupTemplate.registerFunction("core.orgName", orgFunction); - groupTemplate.registerFunction("core.functionName", funFunction); - groupTemplate.registerFunction("core.funAccessUrl", funAccessUrlFunction); - groupTemplate.registerFunction("core.menuName", menuFunction); - groupTemplate.registerFunction("core.searchCondition", searchConditionFunction); - groupTemplate.registerFunction("core.roles", roleFunction); - groupTemplate.registerFunction("core.file", fileFunction); - groupTemplate.registerFormat("xss", new XXSDefenderFormat()); - groupTemplate.registerFunction("uuid", new UUIDFunction()); - groupTemplate.registerFunction("session",sessionFunction); - groupTemplate.registerFunction("core.searchIsShow", searchIsShowFunction); - // 模板页面判断是否有按钮权限,比如canAccess - groupTemplate.registerFunction("canAccess", (paras, ctx) -> { - Long userId = platFormService.getCurrentUser().getId(); - Long orgId = platFormService.getCurrentOrgId(); - String functionCode = (String) paras[0]; - return platFormService.canAcessFunction(userId, orgId, functionCode); - }); - - groupTemplate.registerFunction("abcd", (paras, ctx) -> true); - - groupTemplate.registerFunction("env", new Function() { - - @Override - public String call(Object[] paras, Context ctx) { - String key = (String)paras[0]; - String value = env.getProperty(key); - if(value!=null) { - return getStr(value); - } - if(paras.length==2) { - return (String)paras[1]; - } - return null; + return groupTemplate -> { + groupTemplate.registerFunctionPackage("platform", platFormService); + groupTemplate.registerFunctionPackage("queryCondition", new QueryParser()); + groupTemplate.registerFunctionPackage("dict", dictDownQueryFunction); + groupTemplate.registerFunctionPackage("user", coreUserFunction); + groupTemplate.registerFunctionPackage("isSignRole", isSignRoleFunction); + groupTemplate.registerFunction("core.orgName", orgFunction); + groupTemplate.registerFunction("core.functionName", funFunction); + groupTemplate.registerFunction("core.funAccessUrl", funAccessUrlFunction); + groupTemplate.registerFunction("core.menuName", menuFunction); + groupTemplate.registerFunction("core.searchCondition", searchConditionFunction); + groupTemplate.registerFunction("core.roles", roleFunction); + groupTemplate.registerFunction("core.file", fileFunction); + groupTemplate.registerFormat("xss", new XXSDefenderFormat()); + groupTemplate.registerFunction("uuid", new UUIDFunction()); + groupTemplate.registerFunction("session",sessionFunction); + groupTemplate.registerFunction("core.searchIsShow", searchIsShowFunction); + // 模板页面判断是否有按钮权限,比如canAccess + groupTemplate.registerFunction("canAccess", (paras, ctx) -> { + Long userId = platFormService.getCurrentUser().getId(); + Long orgId = platFormService.getCurrentOrgId(); + String functionCode = (String) paras[0]; + return platFormService.canAcessFunction(userId, orgId, functionCode); + }); + + groupTemplate.registerFunction("abcd", (paras, ctx) -> true); + + groupTemplate.registerFunction("env", new Function() { + + @Override + public String call(Object[] paras, Context ctx) { + String key = (String)paras[0]; + String value = env.getProperty(key); + if(value!=null) { + return getStr(value); } - - private String getStr(String str) { - try { - return new String(str.getBytes("iso8859-1"), StandardCharsets.UTF_8); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException(e); - } + if(paras.length==2) { + return (String)paras[1]; } + return null; + } - }); + private String getStr(String str) { + try { + return new String(str.getBytes("iso8859-1"), StandardCharsets.UTF_8); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + } - groupTemplate.registerFunction("dataAccessList", (paras, ctx) -> dataAccessFactory.all()); + }); - //根据相应的字符分割字符串 - groupTemplate.registerFunction("splitString", (paras, ctx) -> { - String key = (String)paras[0]; - if(key!=null) { - if(paras.length >= 2){ - String key2 = (String)paras[1]; - return Arrays.asList(key.replace("\r","").split(key2)); - }else { - return Arrays.asList(key.replace("\r","").split("\n")); - } - } - return new ArrayList(); - }); + groupTemplate.registerFunction("dataAccessList", (paras, ctx) -> dataAccessFactory.all()); - //判断某个字符在相应字符串中的位置 - groupTemplate.registerFunction("indexOf", (paras, ctx) -> { - String key = (String)paras[0]; - String val = (String)paras[1]; - if(key!=null) { - return key.indexOf(val) >= 0; + //根据相应的字符分割字符串 + groupTemplate.registerFunction("splitString", (paras, ctx) -> { + String key = (String)paras[0]; + if(key!=null) { + if(paras.length >= 2){ + String key2 = (String)paras[1]; + return Arrays.asList(key.replace("\r","").split(key2)); + }else { + return Arrays.asList(key.replace("\r","").split("\n")); } - return false; - }); - //替换字符串中的所有相应字符 - groupTemplate.registerFunction("replaceAll", (paras, ctx) -> { - String key = (String)paras[0]; - if(key!=null) { - if(paras.length >= 2){ - String key2 = (String)paras[1]; - if(paras.length == 3){ - return key.replace(key2,(String)paras[2]); - }else { - return key.replace(key2,""); - } + } + return new ArrayList(); + }); + + //判断某个字符在相应字符串中的位置 + groupTemplate.registerFunction("indexOf", (paras, ctx) -> { + String key = (String)paras[0]; + String val = (String)paras[1]; + if(key!=null) { + return key.indexOf(val) >= 0; + } + return false; + }); + //替换字符串中的所有相应字符 + groupTemplate.registerFunction("replaceAll", (paras, ctx) -> { + String key = (String)paras[0]; + if(key!=null) { + if(paras.length >= 2){ + String key2 = (String)paras[1]; + if(paras.length == 3){ + return key.replace(key2,(String)paras[2]); }else { - return key; + return key.replace(key2,""); } + }else { + return key; } - return null; - }); - //替换字符串中的所有相应字符 - groupTemplate.registerFunction("replaceAll", (paras, ctx) -> { - String key = (String)paras[0]; - if(key!=null) { - if(paras.length >= 2){ - String key2 = (String)paras[1]; - if(paras.length == 3){ - return key.replace(key2,(String)paras[2]); - }else { - return key.replace(key2,""); - } + } + return null; + }); + //替换字符串中的所有相应字符 + groupTemplate.registerFunction("replaceAll", (paras, ctx) -> { + String key = (String)paras[0]; + if(key!=null) { + if(paras.length >= 2){ + String key2 = (String)paras[1]; + if(paras.length == 3){ + return key.replace(key2,(String)paras[2]); }else { - return key; + return key.replace(key2,""); } + }else { + return key; } - return null; - }); - //根据某个字符分割并且获取长度 - groupTemplate.registerFunction("splitLength", (paras, ctx) -> { - String key = (String)paras[0]; - if(key!=null) { - if(paras.length >= 2){ - String key2 = (String)paras[1]; - return key.replace("\r","").split(key2).length; - }else { - return key.replace("\r","").split(",").length; - } + } + return null; + }); + //根据某个字符分割并且获取长度 + groupTemplate.registerFunction("splitLength", (paras, ctx) -> { + String key = (String)paras[0]; + if(key!=null) { + if(paras.length >= 2){ + String key2 = (String)paras[1]; + return key.replace("\r","").split(key2).length; + }else { + return key.replace("\r","").split(",").length; } - return 0; - }); - - //时间格式转换 Mon Dec 31 00:00:00 CST 2012 - groupTemplate.registerFunction("simpleDateFormat", (paras, ctx) -> { - String key = null; - if(paras[0] != null){ - key = paras[0].toString(); + } + return 0; + }); + + //时间格式转换 Mon Dec 31 00:00:00 CST 2012 + groupTemplate.registerFunction("simpleDateFormat", (paras, ctx) -> { + String key = null; + if(paras[0] != null){ + key = paras[0].toString(); + } + if(key!=null) { + if(paras.length >= 2){ + String key2 = paras[1].toString(); + return TimeTool.getNowTime(TimeTool.getTime(key),key2); + }else { + return TimeTool.getNowTime(TimeTool.getTime(key)); } - if(key!=null) { - if(paras.length >= 2){ - String key2 = paras[1].toString(); - return TimeTool.getNowTime(TimeTool.getTime(key),key2); - }else { - return TimeTool.getNowTime(TimeTool.getTime(key)); - } - } - return null; - }); - - //json字符串转数组 - groupTemplate.registerFunction("JsonString", (paras, ctx) -> { - String key = (String)paras[0]; - if(key!=null) { - return JSONObject.parse(key); - } - return new ArrayList(); - }); - } + } + return null; + }); + + //json字符串转数组 + groupTemplate.registerFunction("JsonString", (paras, ctx) -> { + String key = (String)paras[0]; + if(key!=null) { + return JSONObject.parse(key); + } + return new ArrayList(); + }); }; } diff --git a/admin-core/src/main/java/com/ibeetl/admin/core/util/beetl/SessionFunction.java b/admin-core/src/main/java/com/ibeetl/admin/core/util/beetl/SessionFunction.java index b77004f6..7490bd54 100644 --- a/admin-core/src/main/java/com/ibeetl/admin/core/util/beetl/SessionFunction.java +++ b/admin-core/src/main/java/com/ibeetl/admin/core/util/beetl/SessionFunction.java @@ -9,6 +9,7 @@ import org.beetl.core.Function; import org.springframework.stereotype.Component; @Component +@Deprecated public class SessionFunction implements Function { CorePlatformService platFormService = SpringUtil.getBean(CorePlatformService.class); diff --git a/admin-core/src/main/java/com/ibeetl/admin/core/web/JsonReturnCode.java b/admin-core/src/main/java/com/ibeetl/admin/core/web/JsonReturnCode.java index f1095c71..5c7ff73c 100644 --- a/admin-core/src/main/java/com/ibeetl/admin/core/web/JsonReturnCode.java +++ b/admin-core/src/main/java/com/ibeetl/admin/core/web/JsonReturnCode.java @@ -10,6 +10,8 @@ public enum JsonReturnCode { FAIL ("500","内部失败"), ACCESS_ERROR ("403","禁止访问"), NOT_FOUND ("404","页面未发现"), + + // 目前用在导入excel的时候,异常的返回 DIY_ERROR ("5000","自定义异常"); private String code; private String desc; diff --git a/web/src/main/java/cn/jlw/util/excel/ExcelFailRecord.java b/web/src/main/java/cn/jlw/util/excel/ExcelFailRecord.java index d3487d07..342ebe94 100644 --- a/web/src/main/java/cn/jlw/util/excel/ExcelFailRecord.java +++ b/web/src/main/java/cn/jlw/util/excel/ExcelFailRecord.java @@ -1,6 +1,8 @@ package cn.jlw.util.excel; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** *

@@ -12,6 +14,8 @@ import lombok.Data; * @modified */ @Data +@AllArgsConstructor +@NoArgsConstructor public class ExcelFailRecord { private Integer row; diff --git a/web/src/main/java/com/ibeetl/jlw/entity/dto/StudentBatchImportDTO.java b/web/src/main/java/com/ibeetl/jlw/entity/dto/StudentBatchImportDTO.java index 97dc5784..868b6edd 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/dto/StudentBatchImportDTO.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/dto/StudentBatchImportDTO.java @@ -1,7 +1,6 @@ package com.ibeetl.jlw.entity.dto; import com.ibeetl.admin.core.util.excelGroupValidation.ExcelFile; -import com.ibeetl.admin.core.util.excelGroupValidation.ExcelValidation; import com.ibeetl.jlw.entity.Student; import com.ibeetl.jlw.enums.GenderEnum; import lombok.Data; @@ -11,7 +10,7 @@ import lombok.experimental.FieldNameConstants; import java.util.Date; import java.util.function.Function; -import static cn.jlw.util.excel.ExcelUtil.longValuesOf; +import static cn.hutool.core.util.ObjectUtil.defaultIfNull; /** * 功能描述:
@@ -31,7 +30,7 @@ public class StudentBatchImportDTO { /** * 班级名称 */ - @ExcelValidation(datasourceMethod = "com.ibeetl.jlw.service.SchoolClassService.getAllSchoolClassWithOrgId") +// @ExcelValidation(datasourceMethod = "com.ibeetl.jlw.service.SchoolClassService.getAllSchoolClassWithOrgId") private String classId ; /** * 学生姓名 @@ -59,9 +58,10 @@ public class StudentBatchImportDTO { * @param function 二次加工 * @return */ - public static Student pojo(StudentBatchImportDTO importPojo, Function function) { + public static Student pojo(StudentBatchImportDTO importPojo, Function classIdFunction, Function function) { Student build = Student.builder() - .classId(longValuesOf(importPojo.getClassId())) +// .classId(longValuesOf(importPojo.getClassId())) + .classId(classIdFunction.apply(importPojo.getClassId())) .studentName(importPojo.getStudentName()) .studentSn(importPojo.getStudentSn()) .studentMobile(importPojo.getStudentMobile()) @@ -83,7 +83,7 @@ public class StudentBatchImportDTO { * @return */ public static Student pojo(StudentBatchImportDTO importPojo) { - return pojo(importPojo, e -> e); + return pojo(importPojo, o -> Long.valueOf(defaultIfNull(o, "-1")), e -> e); } } diff --git a/web/src/main/java/com/ibeetl/jlw/service/StudentService.java b/web/src/main/java/com/ibeetl/jlw/service/StudentService.java index 5a1415a5..1b47c570 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/StudentService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/StudentService.java @@ -977,7 +977,7 @@ public class StudentService extends CoreBaseService{ // 这里固定列索引,省事 listener.putFailMessage( - errorRowIndex, 4, StrUtil.format("本次上传的文件中,存在重复的的学生编号:\"{}\"!", duplicateElement)); + errorRowIndex, 2, StrUtil.format("本次上传的文件中,存在重复的的学生编号:\"{}\"!", duplicateElement)); } // 查询库里已经存在的编号 diff --git a/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesJurisdictionCurriculumResourcesService.java b/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesJurisdictionCurriculumResourcesService.java index e7322f9c..fbbcd199 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesJurisdictionCurriculumResourcesService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesJurisdictionCurriculumResourcesService.java @@ -16,9 +16,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; - - - +import static com.ibeetl.admin.core.util.StreamUtils.listJoin; /** @@ -65,11 +63,39 @@ public class UniversitiesCollegesJurisdictionCurriculumResourcesService extends return sqlManager.select(SqlId.of("jlw.universitiesCollegesJurisdictionCurriculumResources.getUniversitiesCollegesJurisdictionCurriculumResourcesValues"),UniversitiesCollegesJurisdictionCurriculumResources.class,paras); } + /** + * 通过机构ID获取授权的课程信息 + * @param orgId + * @return + */ public List getAuthCourseInfoByOrgId(Long orgId){ return universitiesCollegesJurisdictionCurriculumResourcesDao.getAuthCourseInfoByOrgId(orgId); } + /** + * 通过机构ID获取授权的课程信息 + * @param orgId + * @return + */ + public String getAuthCourseInfoStrByOrgId(Long orgId){ + return listJoin(universitiesCollegesJurisdictionCurriculumResourcesDao.getAuthCourseInfoByOrgId(orgId), CourseInfo::getCourseInfoId); + } + + /** + * 通过传入的用户(机构ID),获取授权的课程信息 + * @param coreUser + * @return + */ public List getAuthCourseInfoByCoreUser(CoreUser coreUser){ return universitiesCollegesJurisdictionCurriculumResourcesDao.getAuthCourseInfoByOrgId(coreUser.getOrgId()); } + + /** + * 通过传入的用户(机构ID),获取授权的课程信息 + * @param coreUser + * @return + */ + public String getAuthCourseInfoStrByCoreUser(CoreUser coreUser){ + return listJoin(universitiesCollegesJurisdictionCurriculumResourcesDao.getAuthCourseInfoByOrgId(coreUser.getOrgId()), CourseInfo::getCourseInfoId); + } } \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java b/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java index 9b341393..dac12d47 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java @@ -1,5 +1,6 @@ package com.ibeetl.jlw.web; +import cn.hutool.core.util.StrUtil; import cn.jlw.Interceptor.GetFile; import cn.jlw.Interceptor.RFile; import cn.jlw.Interceptor.SCoreUser; @@ -20,6 +21,7 @@ import com.ibeetl.jlw.enums.MatchTypeEnum; import com.ibeetl.jlw.enums.QuestionBusinessTypeEnum; import com.ibeetl.jlw.service.CourseInfoService; import com.ibeetl.jlw.service.ResourcesQuestionService; +import com.ibeetl.jlw.service.UniversitiesCollegesJurisdictionCurriculumResourcesService; import com.ibeetl.jlw.web.query.CourseInfoQuery; import com.ibeetl.jlw.web.query.ResourcesQuestionQuery; import org.apache.commons.lang3.StringUtils; @@ -46,10 +48,12 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; +import java.io.Serializable; import java.math.BigDecimal; import java.util.*; import static cn.hutool.core.util.ArrayUtil.join; +import static cn.hutool.core.util.ObjectUtil.defaultIfNull; import static cn.jlw.util.excel.ExcelUtil.standardName; /** @@ -71,6 +75,7 @@ public class ResourcesQuestionController{ FileService fileService; @Autowired private CourseInfoService courseInfoService; + @Autowired private UniversitiesCollegesJurisdictionCurriculumResourcesService universitiesCollegesJurisdictionCurriculumResourcesService; /* 前端接口 */ @@ -155,6 +160,13 @@ public class ResourcesQuestionController{ if (coreUser.isUniAdmin()) { condition.setOrgIdPlural(join(Arrays.asList(coreUser.getOrgId(), 1L, null).toArray(), ",")); + // 查询已经授权的课程ID + Serializable courseInfoIds = defaultIfNull(condition.getCourseInfoId(), condition.getCourseInfoIds()); + Serializable ifNullCourseInfoIds = defaultIfNull(courseInfoIds, + universitiesCollegesJurisdictionCurriculumResourcesService.getAuthCourseInfoStrByOrgId(coreUser.getOrgId())); + + // 如果为空字符串,那么代表这个学校,还没有授权的课程,所以是不会显示任何东西的。 + condition.setCourseInfoIds(StrUtil.blankToDefault(String.valueOf(ifNullCourseInfoIds), "未授权应用")); } resourcesQuestionService.queryByCondition(page); return JsonResult.success(page); diff --git a/web/src/main/java/com/ibeetl/jlw/web/StudentController.java b/web/src/main/java/com/ibeetl/jlw/web/StudentController.java index ababd0c6..8345c202 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/StudentController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/StudentController.java @@ -56,6 +56,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.*; +import java.util.function.Consumer; import java.util.stream.Collectors; import static cn.jlw.token.TokenService.getMap; @@ -65,9 +66,11 @@ import static cn.jlw.util.excel.ExcelUtil.standardName; import static com.ibeetl.admin.console.service.OrgConsoleService.setObjectOrgId; import static com.ibeetl.admin.core.util.ExcelUtil.convertData; import static com.ibeetl.admin.core.util.ExcelUtil.write; +import static com.ibeetl.admin.core.util.StreamUtils.listJoin; import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser; import static com.ibeetl.admin.core.web.JsonReturnCode.DIY_ERROR; import static com.ibeetl.jlw.web.IpAddressController.ipAddressMap; +import static java.util.function.UnaryOperator.identity; /** @@ -2811,27 +2814,64 @@ public class StudentController extends BaseController{ try { Assert.isNull(getStudent(), "学生无法访问该接口"); - // 输出 Excel + // 输出 Excel, 有判断空值的操作 MyValidateExcelCellDataListener listener = new MyValidateExcelCellDataListener<>(); ExcelUtil.readExcelNotContainHeader(file, StudentBatchImportDTO.class, listener); // 判断错误的结果集 Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage())); // 类型转换 - List list = listener.getData().stream().map(StudentBatchImportDTO::pojo) + List list = listener.getData().stream().map(item -> { + // 存的是班级名称,只是叫做classId而已 + String classId = item.getClassId(); + + return StudentBatchImportDTO.pojo(item, importClassIdAsString -> { + SchoolClass params = new SchoolClass(); + params.setClassName(classId); + params.setClassStatus(1); + params.setOrgId(coreUser.getOrgId()); + List classList = schoolClassDao.createLambdaQuery() + .andEq(SchoolClass::getClassStatus, 1) + .andEq(SchoolClass::getOrgId, coreUser.getOrgId()) + .andLike(SchoolClass::getClassName, "%"+classId+"%") + .select(); + + + consumerPutErrorMessage(classList, (cl) -> { + List tempList = (List) cl; + Assert.isTrue(CollectionUtil.isNotEmpty(classList), + "班级名称:【{}】未模糊匹配到任何班级!", classId); + + // 模糊搜索到重复的班级名称 + String repetitiveClassNames = listJoin(classList, SchoolClass::getClassName); + Assert.isFalse(tempList.size() > 1, + "提交的班级名称{},查询到多个【{}】,请修改后再来尝试!", classId, repetitiveClassNames); + }, listener); + + if (classList.size() == 1) { + return classList.get(0).getClassId(); + } + + return null; + }, identity()); + }) .collect(Collectors.toList()); // 设置机构ID - setObjectOrgId(list, (e) -> { - SchoolClass params = new SchoolClass(); - params.setClassId(e.getClassId()); - params.setClassStatus(1); - SchoolClass sc = schoolClassDao.templateOne(params); - if (sc != null) { - return sc.getOrgId(); - } - return null; - }, true); + try { + setObjectOrgId(list, (e) -> { + SchoolClass params = new SchoolClass(); + params.setClassId(e.getClassId()); + params.setClassStatus(1); + SchoolClass sc = schoolClassDao.templateOne(params); + if (sc != null) { + return sc.getOrgId(); + } + return null; + }, true); + }catch (Exception e) { + log.error(e.getMessage()); + } studentService.validateStudentSnListIsExistsThrow(list, listener); // 再次判断错误的结果集 @@ -2843,6 +2883,21 @@ public class StudentController extends BaseController{ catch (IllegalArgumentException exception) { return JsonResult.failMessage(exception.getMessage()).setCode(DIY_ERROR.getCode()); } + return JsonResult.successMessage("导入成功!"); } + + /** + * 消费并记录错误信息 + * @param t + * @param tConsumer + * @param listener + */ + private void consumerPutErrorMessage(Object t, Consumer tConsumer, MyValidateExcelCellDataListener listener) { + try { + tConsumer.accept(t); + }catch (Exception e) { + listener.putFailMessage(e.getMessage()); + } + } } diff --git a/web/src/main/resources/beetl.properties b/web/src/main/resources/beetl.properties index f1843bcb..9a796559 100644 --- a/web/src/main/resources/beetl.properties +++ b/web/src/main/resources/beetl.properties @@ -14,4 +14,6 @@ FNP.reUtil = cn.hutool.core.util.ReUtil #\u65F6\u95F4\u5DE5\u5177\u7C7B FNP.dateUtil =cn.hutool.core.date.DateUtil # map\u5DE5\u5177\u7C7B -FNP.mapUtil =com.ibeetl.admin.core.util.map.MapUtil \ No newline at end of file +FNP.mapUtil =com.ibeetl.admin.core.util.map.MapUtil +# \u53EF\u4EE5\u67E5\u8BE2\u6388\u6743\u8BFE\u7A0B\u5217\u8868\u7684 +FNP.authCourseInfoUtil =com.ibeetl.jlw.service.UniversitiesCollegesJurisdictionCurriculumResourcesService \ No newline at end of file diff --git a/web/src/main/resources/sql/jlw/resourcesQuestion.md b/web/src/main/resources/sql/jlw/resourcesQuestion.md index fb8a3ae3..6c8f7c3c 100644 --- a/web/src/main/resources/sql/jlw/resourcesQuestion.md +++ b/web/src/main/resources/sql/jlw/resourcesQuestion.md @@ -41,6 +41,10 @@ queryByCondition @} @if(!isEmpty(courseInfoIds)){ and find_in_set(t.course_info_id,#courseInfoIds#) + @// 未授权任何应用的话,这里直接返回空数据 + @if(courseInfoIds == '未授权应用'){ + and false + @} @} @if(!isEmpty(courseInfoId)){ and t.course_info_id =#courseInfoId# diff --git a/web/src/main/resources/templates/jlw/universitiesCollegesJurisdictionExperimentalSystem/add.html b/web/src/main/resources/templates/jlw/universitiesCollegesJurisdictionExperimentalSystem/add.html index d1d29067..38398fa6 100644 --- a/web/src/main/resources/templates/jlw/universitiesCollegesJurisdictionExperimentalSystem/add.html +++ b/web/src/main/resources/templates/jlw/universitiesCollegesJurisdictionExperimentalSystem/add.html @@ -31,8 +31,10 @@

+ +