diff --git a/pangu-system/pom.xml b/pangu-system/pom.xml
index f5b11fd..160d891 100644
--- a/pangu-system/pom.xml
+++ b/pangu-system/pom.xml
@@ -26,5 +26,10 @@
com.pangu
pangu-common
+
+
+ com.alibaba
+ easyexcel
+
diff --git a/pangu-system/src/main/java/com/pangu/application/config/OpenApiConfig.java b/pangu-system/src/main/java/com/pangu/application/config/OpenApiConfig.java
deleted file mode 100644
index 3afae87..0000000
--- a/pangu-system/src/main/java/com/pangu/application/config/OpenApiConfig.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.pangu.application.config;
-
-import com.pangu.application.interceptor.ApiAuthInterceptor;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-import javax.annotation.Resource;
-
-/**
- * 开放API配置:对 /open/** 请求做签名与权限校验
- * @author pangu
- */
-@Configuration
-public class OpenApiConfig implements WebMvcConfigurer {
-
- @Resource
- private ApiAuthInterceptor apiAuthInterceptor;
-
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(apiAuthInterceptor)
- .addPathPatterns("/open/**");
- }
-}
diff --git a/pangu-system/src/main/java/com/pangu/application/interceptor/ApiAuthInterceptor.java b/pangu-system/src/main/java/com/pangu/application/interceptor/ApiAuthInterceptor.java
deleted file mode 100644
index b8afc60..0000000
--- a/pangu-system/src/main/java/com/pangu/application/interceptor/ApiAuthInterceptor.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.pangu.application.interceptor;
-
-import cn.hutool.crypto.digest.DigestUtil;
-import com.pangu.application.domain.entity.Application;
-import com.pangu.application.service.IApplicationService;
-import com.pangu.common.core.exception.ServiceException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.HandlerInterceptor;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Map;
-import java.util.TreeMap;
-
-/**
- * 开放API认证拦截器
- * 校验 X-App-Id(应用编码)、X-Timestamp、X-Sign 及接口权限
- * @author pangu
- */
-@Component
-public class ApiAuthInterceptor implements HandlerInterceptor {
-
- private static final Logger log = LoggerFactory.getLogger(ApiAuthInterceptor.class);
-
- /** 时间戳有效期(5分钟) */
- private static final long TIMESTAMP_EXPIRE_MS = 5 * 60 * 1000;
-
- @Resource
- private IApplicationService applicationService;
-
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
- String appCode = request.getHeader("X-App-Id");
- String timestamp = request.getHeader("X-Timestamp");
- String sign = request.getHeader("X-Sign");
-
- if (appCode == null || appCode.isEmpty() || timestamp == null || timestamp.isEmpty() || sign == null || sign.isEmpty()) {
- throw new ServiceException("缺少认证参数");
- }
-
- long reqTime;
- try {
- reqTime = Long.parseLong(timestamp);
- } catch (NumberFormatException e) {
- throw new ServiceException("时间戳格式错误");
- }
- if (Math.abs(System.currentTimeMillis() - reqTime) > TIMESTAMP_EXPIRE_MS) {
- throw new ServiceException("请求已过期");
- }
-
- Application app = applicationService.selectByAppCode(appCode);
- if (app == null) {
- throw new ServiceException("应用不存在");
- }
- if ("1".equals(app.getStatus())) {
- throw new ServiceException("应用已停用");
- }
-
- String expectedSign = generateSign(request, app.getAppSecret());
- if (!expectedSign.equalsIgnoreCase(sign)) {
- log.warn("签名验证失败,appCode={}", appCode);
- throw new ServiceException("签名验证失败");
- }
-
- String apiPath = request.getRequestURI();
- if (!applicationService.checkApiPermission(appCode, apiPath)) {
- throw new ServiceException("无权访问该接口");
- }
-
- log.debug("开放API认证通过,appCode={}, path={}", appCode, apiPath);
- return true;
- }
-
- /**
- * 签名规则:请求参数按 ASCII 排序拼接,末尾 &appSecret=xxx,MD5 大写
- */
- private String generateSign(HttpServletRequest request, String appSecret) {
- Map params = new TreeMap<>();
- if (request.getParameterMap() != null) {
- request.getParameterMap().forEach((key, values) -> {
- if (values != null && values.length > 0) {
- params.put(key, values[0]);
- }
- });
- }
- StringBuilder sb = new StringBuilder();
- params.forEach((key, value) -> {
- if (sb.length() > 0) {
- sb.append("&");
- }
- sb.append(key).append("=").append(value);
- });
- sb.append("&appSecret=").append(appSecret);
- return DigestUtil.md5Hex(sb.toString()).toUpperCase();
- }
-}
diff --git a/pangu-system/src/main/java/com/pangu/member/service/impl/MemberServiceImpl.java b/pangu-system/src/main/java/com/pangu/member/service/impl/MemberServiceImpl.java
index ea6ceef..a1dc48c 100644
--- a/pangu-system/src/main/java/com/pangu/member/service/impl/MemberServiceImpl.java
+++ b/pangu-system/src/main/java/com/pangu/member/service/impl/MemberServiceImpl.java
@@ -70,7 +70,17 @@ public class MemberServiceImpl extends ServiceImpl impleme
fillMemberVONames(memberVO);
// 查询绑定的学生
- List students = studentService.selectStudentVOsByMemberId(memberId);
+ List studentVOList = studentService.selectStudentVOsByMemberId(memberId);
+ List students = studentVOList.stream().map(s -> {
+ MemberVO.StudentVO vo = new MemberVO.StudentVO();
+ vo.setStudentId(s.getStudentId());
+ vo.setStudentName(s.getStudentName());
+ vo.setStudentNo(s.getStudentNo());
+ vo.setSchoolName(s.getSchoolName());
+ vo.setGradeName(s.getGradeName());
+ vo.setClassName(s.getClassName());
+ return vo;
+ }).collect(java.util.stream.Collectors.toList());
memberVO.setStudents(students);
return memberVO;
@@ -334,7 +344,7 @@ public class MemberServiceImpl extends ServiceImpl impleme
newMember.setIdentityType(IdentityTypeEnum.PARENT.getCode());
newMember.setRegisterSource(RegisterSourceEnum.BACKEND.getCode());
newMember.setStatus("0");
- newMember.setCreateTime(LocalDateTime.now());
+ newMember.setRegisterTime(LocalDateTime.now());
memberMapper.insert(newMember);
log.info("批量导入自动创建会员, memberId={}, phone={}", newMember.getMemberId(), phone);
diff --git a/pangu-system/src/main/java/com/pangu/student/service/IStudentService.java b/pangu-system/src/main/java/com/pangu/student/service/IStudentService.java
index f6886f9..d737491 100644
--- a/pangu-system/src/main/java/com/pangu/student/service/IStudentService.java
+++ b/pangu-system/src/main/java/com/pangu/student/service/IStudentService.java
@@ -8,6 +8,8 @@ import com.pangu.student.domain.vo.ImportResultVO;
import com.pangu.student.domain.vo.StudentVO;
import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+
/**
* 学生服务接口
*
diff --git a/pom.xml b/pom.xml
index ba4b549..aff312c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,6 +40,7 @@
2.3.3
1.18.30
5.8.25
+ 3.3.4
@@ -137,6 +138,13 @@
${hutool.version}
+
+
+ com.alibaba
+ easyexcel
+ ${easyexcel.version}
+
+
com.pangu