From c320b6e93869762eaf17781e52c25e1be28124df Mon Sep 17 00:00:00 2001 From: tianea Date: Sun, 20 Feb 2022 23:55:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E6=A0=87=E7=AD=BE=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E8=AF=BE=E7=A8=8B=E5=88=86=E7=B1=BB=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E4=B8=8A=E4=BC=A0=E5=8A=9F=E8=83=BD=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=20=E7=99=BB=E9=99=86=E6=97=A5=E5=BF=97=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tz/common/common-core/pom.xml | 7 +- .../common/core/config/SystemUtil.java | 2 + .../common/core/enmus/ClientTypeEnum.java | 14 +++ .../core/tools/VerificationCodeUtil.java | 83 ++++++++++++++++++ .../target/classes/system.properties | 3 +- .../META-INF/commonservice.kotlin_module | Bin 16 -> 0 bytes .../tz/platform/feign/exam/vo/QuestionVo.java | 5 +- .../java/com/tz/platform/ExamApplication.java | 2 +- .../java/com/tz/platform/entity/Course.java | 2 +- .../com/tz/platform/entity/CourseCat.java | 15 ++++ .../exam/pc/PCQuestionController.java | 27 ++++++ .../platform/exam/pc/biz/PCQuestionBiz.java | 43 +++++++++ .../tz/platform/exam/pc/dto/QuestionDTO.java | 14 +++ .../tz/platform/exam/pc/vo/QuestionVO.java | 25 ++++++ .../tz/platform/pc/CourseCateController.java | 35 ++++++++ .../tz/platform/pc/PCCourseTagController.java | 35 ++++++++ .../tz/platform/pc/biz/PCCourseCatBiz.java | 57 ++++++++++++ .../tz/platform/pc/biz/PCCourseTagBiz.java | 57 ++++++++++++ .../com/tz/platform/pc/dto/CourseCatDTO.java | 14 +++ .../com/tz/platform/pc/dto/CourseTagDTO.java | 12 +++ .../com/tz/platform/pc/vo/CourseCatVO.java | 11 +++ .../com/tz/platform/pc/vo/CourseTagVO.java | 9 ++ .../tz/platform/repository/CourseCatDao.java | 11 +++ .../tz/platform/repository/CourseTagDao.java | 1 + .../tz/platform/repository/QuestionDao.java | 4 + .../gateway/filter/TzGlobalFilter.java | 58 ++++++++++-- tz/pom.xml | 1 + .../tz/platform/feign/IFeignStudentLevel.java | 11 +++ .../tz/platform/feign/vo/StudentLevelVo.java | 11 +++ tz/system/system-service/pom.xml | 6 ++ .../java/com/tz/platform/entity/Region.java | 13 ++- .../com/tz/platform/entity/StudentLevel.java} | 9 +- .../platform/repository/StudentLevelDao.java | 9 ++ .../feign/FeignStudentLevelController.java | 16 ++++ .../feign/FeignSystemMenuController.java | 36 +++++++- .../feign/biz/FeignStudentLevelBiz.java | 24 +++++ .../platform/system/pc/PCMenuController.java | 21 +++++ .../system/pc/PcSystemController.java | 20 +++++ .../tz/platform/system/pc/biz/PCMenuBiz.java | 28 ++++++ .../platform/system/pc/biz/PCProvinceBiz.java | 22 +++++ .../tz/platform/system/pc/bo/ProvinceBO.java | 8 ++ .../tz/platform/system/pc/dto/MenuDTO.java | 14 +++ .../src/main/resources/bootstrap.yml | 4 +- .../repository/ProvinceRepositoryTest.java | 11 +++ .../repository/RegionRepositoryTest.java | 26 ++++++ .../target/classes/bootstrap.yml | 4 +- tz/upload/pom.xml | 20 +++++ tz/upload/upload-feign/pom.xml | 15 ++++ tz/upload/upload-service/pom.xml | 25 ++++++ .../tz/platform/UploadServiceApplication.java | 13 +++ .../java/com/tz/platform/entity/Image.java | 20 +++++ .../tz/platform/image/pc/biz/PCImageBiz.java | 40 +++++++++ .../tz/platform/image/pc/dto/ImageDTO.java | 13 +++ .../com/tz/platform/repository/ImageDao.java} | 4 +- .../src/main/resources/bootstrap.yml | 19 ++++ .../classes/META-INF/userfeign.kotlin_module | Bin 16 -> 0 bytes ...ation.java => UserServiceApplication.java} | 4 +- .../java/com/tz/platform/entity/LoginLog.java | 23 +++++ .../tz/platform/repository/LoginLogDao.java | 9 ++ .../com/tz/platform/repository/UserDao.java | 3 + .../platform/user/api/UserInfoController.java | 42 --------- .../user/api/UserLoginController.java | 25 ++++++ .../platform/user/api/biz/ApiUserInfoBiz.java | 41 --------- .../user/api/biz/ApiUserLoginBiz.java | 82 +++++++++++++++++ .../user/api/bo/UserLoginPasswordBO.java | 2 + .../user/auth/UserInfoController.java | 28 ++++++ .../user/auth/biz/AuthUserInfoBiz.java | 26 ++++++ .../user/auth/dto/AuthUserInfoDTO.java | 17 ++++ .../tz/platform/user/auth/vo/UserInfoVo.java | 10 +++ .../user/feign/FeignUserController.java | 7 ++ .../platform/user/pc/biz/PCUserLoginBiz.java | 4 + .../META-INF/userservice.kotlin_module | Bin 16 -> 0 bytes 72 files changed, 1224 insertions(+), 108 deletions(-) create mode 100644 tz/common/common-core/src/main/java/com/tz/platform/common/core/enmus/ClientTypeEnum.java create mode 100644 tz/common/common-core/src/main/java/com/tz/platform/common/core/tools/VerificationCodeUtil.java delete mode 100644 tz/common/common-service/target/classes/META-INF/commonservice.kotlin_module create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/entity/CourseCat.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/PCQuestionController.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/biz/PCQuestionBiz.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/dto/QuestionDTO.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/vo/QuestionVO.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/pc/CourseCateController.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/pc/PCCourseTagController.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCCourseCatBiz.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCCourseTagBiz.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/CourseCatDTO.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/CourseTagDTO.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/CourseCatVO.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/CourseTagVO.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/repository/CourseCatDao.java create mode 100644 tz/system/system-feign/src/main/java/com/tz/platform/feign/IFeignStudentLevel.java create mode 100644 tz/system/system-feign/src/main/java/com/tz/platform/feign/vo/StudentLevelVo.java rename tz/{exam/exam-service/src/main/java/com/tz/platform/entity/CouseCat.java => system/system-service/src/main/java/com/tz/platform/entity/StudentLevel.java} (69%) create mode 100644 tz/system/system-service/src/main/java/com/tz/platform/repository/StudentLevelDao.java create mode 100644 tz/system/system-service/src/main/java/com/tz/platform/system/feign/FeignStudentLevelController.java create mode 100644 tz/system/system-service/src/main/java/com/tz/platform/system/feign/biz/FeignStudentLevelBiz.java create mode 100644 tz/system/system-service/src/main/java/com/tz/platform/system/pc/PCMenuController.java create mode 100644 tz/system/system-service/src/main/java/com/tz/platform/system/pc/PcSystemController.java create mode 100644 tz/system/system-service/src/main/java/com/tz/platform/system/pc/biz/PCMenuBiz.java create mode 100644 tz/system/system-service/src/main/java/com/tz/platform/system/pc/biz/PCProvinceBiz.java create mode 100644 tz/system/system-service/src/main/java/com/tz/platform/system/pc/bo/ProvinceBO.java create mode 100644 tz/system/system-service/src/main/java/com/tz/platform/system/pc/dto/MenuDTO.java create mode 100644 tz/system/system-service/src/test/java/com/tz/platform/repository/ProvinceRepositoryTest.java create mode 100644 tz/system/system-service/src/test/java/com/tz/platform/repository/RegionRepositoryTest.java create mode 100644 tz/upload/pom.xml create mode 100644 tz/upload/upload-feign/pom.xml create mode 100644 tz/upload/upload-service/pom.xml create mode 100644 tz/upload/upload-service/src/main/java/com/tz/platform/UploadServiceApplication.java create mode 100644 tz/upload/upload-service/src/main/java/com/tz/platform/entity/Image.java create mode 100644 tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/biz/PCImageBiz.java create mode 100644 tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/dto/ImageDTO.java rename tz/{exam/exam-service/src/main/java/com/tz/platform/repository/CousreCatDao.java => upload/upload-service/src/main/java/com/tz/platform/repository/ImageDao.java} (59%) create mode 100644 tz/upload/upload-service/src/main/resources/bootstrap.yml delete mode 100644 tz/user/user-feign/target/classes/META-INF/userfeign.kotlin_module rename tz/user/user-service/src/main/java/com/tz/platform/{Application.java => UserServiceApplication.java} (79%) create mode 100644 tz/user/user-service/src/main/java/com/tz/platform/entity/LoginLog.java create mode 100644 tz/user/user-service/src/main/java/com/tz/platform/repository/LoginLogDao.java delete mode 100644 tz/user/user-service/src/main/java/com/tz/platform/user/api/UserInfoController.java create mode 100644 tz/user/user-service/src/main/java/com/tz/platform/user/api/UserLoginController.java create mode 100644 tz/user/user-service/src/main/java/com/tz/platform/user/api/biz/ApiUserLoginBiz.java create mode 100644 tz/user/user-service/src/main/java/com/tz/platform/user/auth/UserInfoController.java create mode 100644 tz/user/user-service/src/main/java/com/tz/platform/user/auth/biz/AuthUserInfoBiz.java create mode 100644 tz/user/user-service/src/main/java/com/tz/platform/user/auth/dto/AuthUserInfoDTO.java create mode 100644 tz/user/user-service/src/main/java/com/tz/platform/user/auth/vo/UserInfoVo.java create mode 100644 tz/user/user-service/src/main/java/com/tz/platform/user/pc/biz/PCUserLoginBiz.java delete mode 100644 tz/user/user-service/target/classes/META-INF/userservice.kotlin_module diff --git a/tz/common/common-core/pom.xml b/tz/common/common-core/pom.xml index 5dacce2..5eee738 100644 --- a/tz/common/common-core/pom.xml +++ b/tz/common/common-core/pom.xml @@ -33,7 +33,12 @@ 3.17 - + + + net.coobird + thumbnailator + 0.4.16 + com.spring4all diff --git a/tz/common/common-core/src/main/java/com/tz/platform/common/core/config/SystemUtil.java b/tz/common/common-core/src/main/java/com/tz/platform/common/core/config/SystemUtil.java index 22b9767..817b63d 100644 --- a/tz/common/common-core/src/main/java/com/tz/platform/common/core/config/SystemUtil.java +++ b/tz/common/common-core/src/main/java/com/tz/platform/common/core/config/SystemUtil.java @@ -22,4 +22,6 @@ public class SystemUtil { } public static final String PIC_PATH = getProperty("pic_path"); + + public static final String PIC_RESOURCE_URL= getProperty("pic_recourse_url"); } diff --git a/tz/common/common-core/src/main/java/com/tz/platform/common/core/enmus/ClientTypeEnum.java b/tz/common/common-core/src/main/java/com/tz/platform/common/core/enmus/ClientTypeEnum.java new file mode 100644 index 0000000..d2d0fac --- /dev/null +++ b/tz/common/common-core/src/main/java/com/tz/platform/common/core/enmus/ClientTypeEnum.java @@ -0,0 +1,14 @@ +package com.tz.platform.common.core.enmus; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum ClientTypeEnum { + MOBILE(0,"手机"), PC(1,"PC"); + + private Integer code; + + private String desc; +} diff --git a/tz/common/common-core/src/main/java/com/tz/platform/common/core/tools/VerificationCodeUtil.java b/tz/common/common-core/src/main/java/com/tz/platform/common/core/tools/VerificationCodeUtil.java new file mode 100644 index 0000000..952577c --- /dev/null +++ b/tz/common/common-core/src/main/java/com/tz/platform/common/core/tools/VerificationCodeUtil.java @@ -0,0 +1,83 @@ +package com.tz.platform.common.core.tools; + +import javax.imageio.ImageIO; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.util.Random; + +public class VerificationCodeUtil { + private VerificationCodeUtil() { + + } + + private static final int width = 57;// 图像宽度 + private static final int height = 21;// 图像高度 + + public static String create(HttpServletRequest request, HttpServletResponse response) throws IOException { + // 定义输出格式 + response.setContentType("image/jpeg"); + ServletOutputStream out = response.getOutputStream(); + // 准备缓冲图像,不支持表单 + BufferedImage bimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); + Random r = new Random(); + // 获取图形上下文环境 + Graphics gc = bimg.getGraphics(); + // 设定背景色并进行填充 + gc.setColor(getRandColor(200, 250)); + gc.fillRect(0, 0, width, height); + // 设置图形上下文环境字体 + gc.setFont(new Font("Times New Roman", Font.PLAIN, 18)); + // 随机产生200条干扰线条,使图像中的认证码不易被其他分析程序探测到 + gc.setColor(getRandColor(160, 200)); + for (int i = 0; i < 200; i++) { + int x1 = r.nextInt(width); + int y1 = r.nextInt(height); + int x2 = r.nextInt(15); + int y2 = r.nextInt(15); + gc.drawLine(x1, y1, x1 + x2, y1 + y2); + } + // 随机产生100个干扰点,使图像中的验证码不易被其他分析程序探测到 + gc.setColor(getRandColor(120, 240)); + for (int i = 0; i < 100; i++) { + int x = r.nextInt(width); + int y = r.nextInt(height); + gc.drawOval(x, y, 0, 0); + } + + // 随机产生4个数字的验证码 + String rs = ""; + String rn = ""; + for (int i = 0; i < 4; i++) { + rn = String.valueOf(r.nextInt(10)); + rs += rn; + gc.setColor(new Color(20 + r.nextInt(110), 20 + r.nextInt(110), 20 + r.nextInt(110))); + gc.drawString(rn, 13 * i + 1, 16); + } + + // 释放图形上下文环境 + gc.dispose(); + request.getSession().setAttribute("randomCode", rs); + ImageIO.write(bimg, "jpeg", out); + out.flush(); + out.close(); + return rs; + } + + private static Color getRandColor(int fc, int bc) { + Random r = new Random(); + if (fc > 255) { + fc = 255; + } + if (bc > 255) { + bc = 255; + } + int red = fc + r.nextInt(bc - fc);// 红 + int green = fc + r.nextInt(bc - fc);// 绿 + int blue = fc + r.nextInt(bc - fc);// 蓝 + return new Color(red, green, blue); + } +} diff --git a/tz/common/common-core/target/classes/system.properties b/tz/common/common-core/target/classes/system.properties index 1189973..ab627ab 100644 --- a/tz/common/common-core/target/classes/system.properties +++ b/tz/common/common-core/target/classes/system.properties @@ -1 +1,2 @@ -pic_path=/Volumes/Lexar/www/pic \ No newline at end of file +pic_path=/Volumes/Lexar/www/pic/ +pic_recourse_url=http://localhost:8899/pic/ \ No newline at end of file diff --git a/tz/common/common-service/target/classes/META-INF/commonservice.kotlin_module b/tz/common/common-service/target/classes/META-INF/commonservice.kotlin_module deleted file mode 100644 index 8fb60192d378759239a3ecbf60eac8c8de446e9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16 RcmZQzU|?ooU|@t|UH|}6022TJ diff --git a/tz/exam/exam-feign/src/main/java/com/tz/platform/feign/exam/vo/QuestionVo.java b/tz/exam/exam-feign/src/main/java/com/tz/platform/feign/exam/vo/QuestionVo.java index c474250..e05dbb8 100644 --- a/tz/exam/exam-feign/src/main/java/com/tz/platform/feign/exam/vo/QuestionVo.java +++ b/tz/exam/exam-feign/src/main/java/com/tz/platform/feign/exam/vo/QuestionVo.java @@ -1,9 +1,12 @@ package com.tz.platform.feign.exam.vo; import com.tz.platform.common.core.vo.Answer; +import lombok.Data; +import lombok.experimental.Accessors; import java.util.List; - +@Data +@Accessors(chain = true) public class QuestionVo { private Long id; private Long courseId; diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/ExamApplication.java b/tz/exam/exam-service/src/main/java/com/tz/platform/ExamApplication.java index dc82b9c..c94f6eb 100644 --- a/tz/exam/exam-service/src/main/java/com/tz/platform/ExamApplication.java +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/ExamApplication.java @@ -7,7 +7,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient -@EnableFeignClients +@EnableFeignClients(basePackages = "com.tz.platform.feign") public class ExamApplication { public static void main(String[] args) { SpringApplication.run(ExamApplication.class,args); diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/entity/Course.java b/tz/exam/exam-service/src/main/java/com/tz/platform/entity/Course.java index 4424d91..340d071 100644 --- a/tz/exam/exam-service/src/main/java/com/tz/platform/entity/Course.java +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/entity/Course.java @@ -31,5 +31,5 @@ public class Course implements Serializable { private List courseTag; @Type(type = "json") @Column(columnDefinition = "json" ) - private CouseCat couseCat; + private CourseCat couseCat; } diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/entity/CourseCat.java b/tz/exam/exam-service/src/main/java/com/tz/platform/entity/CourseCat.java new file mode 100644 index 0000000..433185b --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/entity/CourseCat.java @@ -0,0 +1,15 @@ +package com.tz.platform.entity; + +import lombok.Data; + +import javax.persistence.*; + +@Entity +@Data +@Table(indexes = {@Index(columnList = "name")}) +public class CourseCat { + @Id + @GeneratedValue(strategy= GenerationType.IDENTITY) + private Long id; + private String name; +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/PCQuestionController.java b/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/PCQuestionController.java new file mode 100644 index 0000000..01b937e --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/PCQuestionController.java @@ -0,0 +1,27 @@ +package com.tz.platform.exam.pc; + +import com.tz.platform.common.core.base.BaseController; +import com.tz.platform.common.core.base.Result; +import com.tz.platform.exam.pc.biz.PCQuestionBiz; +import com.tz.platform.exam.pc.dto.QuestionDTO; +import com.tz.platform.feign.exam.vo.QuestionVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping(value = "/pc/question") +public class PCQuestionController extends BaseController { + @Autowired + private PCQuestionBiz pcQuestionBiz; + + @GetMapping(value = "list/{pageNo}") + public Result listQuestion(@PathVariable("pageNo") Integer pageNO){ + return pcQuestionBiz.list(pageNO); + } + + @PostMapping(value = "add") + public Result addQuestion(@RequestBody QuestionVo questionVo){ + return pcQuestionBiz.add(questionVo); + } + +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/biz/PCQuestionBiz.java b/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/biz/PCQuestionBiz.java new file mode 100644 index 0000000..c5752d4 --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/biz/PCQuestionBiz.java @@ -0,0 +1,43 @@ +package com.tz.platform.exam.pc.biz; + +import com.tz.platform.common.core.base.Result; +import com.tz.platform.entity.Question; +import com.tz.platform.exam.pc.dto.QuestionDTO; +import com.tz.platform.feign.exam.vo.QuestionVo; +import com.tz.platform.repository.QuestionDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; + +import java.util.List; + + +@Component +public class PCQuestionBiz { + + @Autowired + private QuestionDao questionDao; + + public Result list(Integer pageNo){ + QuestionDTO questionDTO = new QuestionDTO(); + Pageable pageable = PageRequest.of(pageNo,20); + Page questions = questionDao.findAll(pageable); + return Result.success(questionDTO.setQuestions(questions)); + } + + public Result add(QuestionVo questionVo){ + if(!StringUtils.hasText(questionVo.getAnalysis())){ + return Result.error("解析不能为空"); + } + if(!StringUtils.hasText(questionVo.getCourseName())){ + return Result.error("标题不能为空"); + } + if(!StringUtils.hasText(questionVo.getStem())){ + return Result.error("题干不能为空"); + } + return Result.success("success"); + } +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/dto/QuestionDTO.java b/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/dto/QuestionDTO.java new file mode 100644 index 0000000..5bef351 --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/dto/QuestionDTO.java @@ -0,0 +1,14 @@ +package com.tz.platform.exam.pc.dto; + +import com.tz.platform.entity.Question; +import lombok.Data; +import lombok.experimental.Accessors; +import org.springframework.data.domain.Page; + +import java.io.Serializable; + +@Data +@Accessors(chain = true) +public class QuestionDTO implements Serializable { + Page questions; +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/vo/QuestionVO.java b/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/vo/QuestionVO.java new file mode 100644 index 0000000..0109d53 --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/exam/pc/vo/QuestionVO.java @@ -0,0 +1,25 @@ +package com.tz.platform.exam.pc.vo; + +import com.tz.platform.common.core.vo.Answer; +import lombok.Data; +import lombok.experimental.Accessors; +import java.util.List; +@Data +@Accessors(chain = true) +public class QuestionVO { + private Long id; + private Long courseId; + private String courseName; + private Long levelId; + private String levelName; + private Long questionType; + private String title; + private Long score; + private Integer type; + private String stem; + private String stemImg; + private Long creatorId; + List answerList; + private String analysis; + private List answerId; +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/CourseCateController.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/CourseCateController.java new file mode 100644 index 0000000..4b3f324 --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/CourseCateController.java @@ -0,0 +1,35 @@ +package com.tz.platform.pc; + +import com.tz.platform.common.core.base.Result; +import com.tz.platform.pc.biz.PCCourseCatBiz; +import com.tz.platform.pc.dto.CourseCatDTO; +import com.tz.platform.pc.vo.CourseCatVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping(value = "/pc/course/cat") +public class CourseCateController { + @Autowired + private PCCourseCatBiz pcCourseCatBiz; + + @GetMapping(value = "list") + public Result list(){ + return pcCourseCatBiz.list(); + } + + @PostMapping(value = "add") + public Result add(@RequestBody CourseCatVO courseCatVO){ + return pcCourseCatBiz.add(courseCatVO); + } + + @PostMapping(value = "update") + public Result update(@RequestBody CourseCatVO courseCatVO){ + return pcCourseCatBiz.update(courseCatVO); + } + + @PostMapping(value = "delete") + public Result delete(@RequestBody CourseCatVO courseCatVO){ + return pcCourseCatBiz.delete(courseCatVO); + } +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/PCCourseTagController.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/PCCourseTagController.java new file mode 100644 index 0000000..362dccd --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/PCCourseTagController.java @@ -0,0 +1,35 @@ +package com.tz.platform.pc; + +import com.tz.platform.common.core.base.Result; +import com.tz.platform.pc.biz.PCCourseTagBiz; +import com.tz.platform.pc.dto.CourseTagDTO; +import com.tz.platform.pc.vo.CourseTagVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping(value = "/pc/course/tag") +public class PCCourseTagController { + @Autowired + private PCCourseTagBiz pcCourseTagBiz; + + @GetMapping(value = "list") + public Result list(){ + return pcCourseTagBiz.list(); + } + + @PostMapping(value = "add") + public Result add(@RequestBody CourseTagVO courseCatVO){ + return pcCourseTagBiz.add(courseCatVO); + } + + @PostMapping(value = "update") + public Result update(@RequestBody CourseTagVO courseCatVO){ + return pcCourseTagBiz.update(courseCatVO); + } + + @PostMapping(value = "delete") + public Result delete(@RequestBody CourseTagVO courseCatVO){ + return pcCourseTagBiz.delete(courseCatVO); + } +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCCourseCatBiz.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCCourseCatBiz.java new file mode 100644 index 0000000..cadc52b --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCCourseCatBiz.java @@ -0,0 +1,57 @@ +package com.tz.platform.pc.biz; + +import com.tz.platform.common.core.base.Result; +import com.tz.platform.entity.CourseCat; +import com.tz.platform.pc.dto.CourseCatDTO; +import com.tz.platform.pc.vo.CourseCatVO; +import com.tz.platform.repository.CourseCatDao; +import org.checkerframework.checker.units.qual.C; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; + +@Component +public class PCCourseCatBiz { + @Autowired + private CourseCatDao courseCatDao; + + public Result list(){ + CourseCatDTO courseCatDTO = new CourseCatDTO(); + courseCatDTO.setList(courseCatDao.findAll()); + return Result.success(courseCatDTO); + } + + public Result add(CourseCatVO courseCatVO){ + if(StringUtils.isEmpty(courseCatVO.getName())){ + return Result.error("分类名不能为空"); + } + CourseCat courseCat = courseCatDao.getByName(courseCatVO.getName()); + if(courseCat!=null){ + return Result.error("分类已存在"); + } + courseCat = new CourseCat(); + courseCat.setName(courseCatVO.getName()); + courseCat = courseCatDao.save(courseCat); + return Result.success(courseCat.getId()); + } + + public Result update(CourseCatVO courseCatVO){ + if(courseCatVO.getId() == null){ + return Result.error("分类ID不能为空"); + } + if(StringUtils.isEmpty(courseCatVO.getName())){ + return Result.error("分类名不能为空"); + } + CourseCat courseCat = new CourseCat(); + BeanUtils.copyProperties(courseCatVO,courseCat); + courseCatDao.save(courseCat); + return Result.success("success"); + } + + + public Result delete(CourseCatVO courseCatVO){ + courseCatDao.deleteById(courseCatVO.getId()); + return Result.success("success"); + } +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCCourseTagBiz.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCCourseTagBiz.java new file mode 100644 index 0000000..0376950 --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCCourseTagBiz.java @@ -0,0 +1,57 @@ +package com.tz.platform.pc.biz; + +import com.tz.platform.common.core.base.Result; +import com.tz.platform.common.core.tools.BeanUtils; +import com.tz.platform.entity.CourseTag; +import com.tz.platform.pc.dto.CourseTagDTO; +import com.tz.platform.pc.vo.CourseTagVO; +import com.tz.platform.repository.CourseTagDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; + +@Component +public class PCCourseTagBiz { + @Autowired + public CourseTagDao courseTagDao; + + + + public Result list(){ + CourseTagDTO courseCatDTO = new CourseTagDTO(); + courseCatDTO.setList(courseTagDao.findAll()); + return Result.success(courseCatDTO); + } + + public Result add(CourseTagVO courseCatVO){ + if(StringUtils.isEmpty(courseCatVO.getName())){ + return Result.error("标签名不能为空"); + } + CourseTag courseCat = courseTagDao.getByName(courseCatVO.getName()); + if(courseCat!=null){ + return Result.error("分类已存在"); + } + courseCat = new CourseTag(); + courseCat.setName(courseCatVO.getName()); + courseCat = courseTagDao.save(courseCat); + return Result.success(courseCat.getId()); + } + + public Result update(CourseTagVO courseCatVO){ + if(courseCatVO.getId() == null){ + return Result.error("标签ID不能为空"); + } + if(StringUtils.isEmpty(courseCatVO.getName())){ + return Result.error("标签名不能为空"); + } + CourseTag courseCat = BeanUtils.copyProperties(courseCatVO,CourseTag.class); + courseTagDao.save(courseCat); + return Result.success("success"); + } + + + public Result delete(CourseTagVO courseCatVO){ + courseTagDao.deleteById(courseCatVO.getId()); + return Result.success("success"); + } +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/CourseCatDTO.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/CourseCatDTO.java new file mode 100644 index 0000000..47c5cff --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/CourseCatDTO.java @@ -0,0 +1,14 @@ +package com.tz.platform.pc.dto; + +import com.tz.platform.entity.CourseCat; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.List; + +@Data +@Accessors(chain = true) +public class CourseCatDTO implements Serializable { + List list; +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/CourseTagDTO.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/CourseTagDTO.java new file mode 100644 index 0000000..47f613a --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/CourseTagDTO.java @@ -0,0 +1,12 @@ +package com.tz.platform.pc.dto; + +import com.tz.platform.entity.CourseTag; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class CourseTagDTO implements Serializable { + List list; +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/CourseCatVO.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/CourseCatVO.java new file mode 100644 index 0000000..496abbd --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/CourseCatVO.java @@ -0,0 +1,11 @@ +package com.tz.platform.pc.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class CourseCatVO { + private Long id; + private String name; +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/CourseTagVO.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/CourseTagVO.java new file mode 100644 index 0000000..e9f1c0e --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/CourseTagVO.java @@ -0,0 +1,9 @@ +package com.tz.platform.pc.vo; + +import lombok.Data; + +@Data +public class CourseTagVO { + private Long id; + private String name; +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/repository/CourseCatDao.java b/tz/exam/exam-service/src/main/java/com/tz/platform/repository/CourseCatDao.java new file mode 100644 index 0000000..9f48629 --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/repository/CourseCatDao.java @@ -0,0 +1,11 @@ +package com.tz.platform.repository; + +import com.tz.platform.entity.CourseCat; +import com.tz.platform.entity.CourseTag; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface CourseCatDao extends JpaRepository { + CourseCat getByName(String name); +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/repository/CourseTagDao.java b/tz/exam/exam-service/src/main/java/com/tz/platform/repository/CourseTagDao.java index 7e829fe..02fb59d 100644 --- a/tz/exam/exam-service/src/main/java/com/tz/platform/repository/CourseTagDao.java +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/repository/CourseTagDao.java @@ -6,4 +6,5 @@ import org.springframework.stereotype.Repository; @Repository public interface CourseTagDao extends JpaRepository { + CourseTag getByName(String name); } diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/repository/QuestionDao.java b/tz/exam/exam-service/src/main/java/com/tz/platform/repository/QuestionDao.java index 7783199..e5b7965 100644 --- a/tz/exam/exam-service/src/main/java/com/tz/platform/repository/QuestionDao.java +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/repository/QuestionDao.java @@ -1,10 +1,14 @@ package com.tz.platform.repository; import com.tz.platform.entity.Question; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; + @Repository public interface QuestionDao extends JpaRepository { Question getById(Long id); + Page findAll(Pageable pageable); } diff --git a/tz/gateway/src/main/java/com/tz/platform/gateway/filter/TzGlobalFilter.java b/tz/gateway/src/main/java/com/tz/platform/gateway/filter/TzGlobalFilter.java index 3b0ae3e..8b14010 100644 --- a/tz/gateway/src/main/java/com/tz/platform/gateway/filter/TzGlobalFilter.java +++ b/tz/gateway/src/main/java/com/tz/platform/gateway/filter/TzGlobalFilter.java @@ -17,7 +17,6 @@ import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.cloud.gateway.filter.factory.rewrite.CachedBodyOutputMessage; import org.springframework.cloud.gateway.support.BodyInserterContext; import org.springframework.core.Ordered; -import org.springframework.core.annotation.Order; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.http.HttpHeaders; @@ -53,12 +52,17 @@ public class TzGlobalFilter implements GlobalFilter , Ordered { @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest request = exchange.getRequest(); - String ip = getRemoteIp(request); + String uri = request.getPath().value(); if (uri.contains("/callback")) { // 第三方回调接口,不鉴权 return chain.filter(exchange); } + + if(uri.contains("login")){ + return request(exchange, chain, modifiedBody(exchange)); + } + if (uri.contains("/api")) { // 路径存在关键词:/api,不鉴权 return chain.filter(exchange); @@ -79,7 +83,7 @@ public class TzGlobalFilter implements GlobalFilter , Ordered { // 更新时间,使用户菜单不过期 // stringRedisTemplate.opsForValue().set(RedisPreEnum.ADMINI_MENU.getCode().concat(userNo.toString()), tk, 1, TimeUnit.HOURS); } - return request(exchange, chain, modifiedBody(exchange, userNo)); + return request(exchange, chain, modifiedBody(exchange,USERNO, userNo)); } // 校验用户是否有权限 @@ -96,6 +100,26 @@ public class TzGlobalFilter implements GlobalFilter , Ordered { return false; } + /** + * 判断请求是PC 还是手机端 + * @param request + * @return + */ + public String getDevice(ServerHttpRequest request) { + String requestHeader = request.getHeaders().getFirst("user-agent"); + String[] deviceArray = new String[] {"android","mac os","windows phone"}; + if(requestHeader==null) { + return "PC"; + } + requestHeader = requestHeader.toLowerCase(); + for (String device:deviceArray) { + if(requestHeader.indexOf(device)!=-1) { + return "MOBILE"; + } + } + return "PC"; + } + private String getRemoteIp(ServerHttpRequest request){ HttpHeaders headers = request.getHeaders(); String ip = headers.getFirst("x-forwarded-for"); @@ -126,8 +150,30 @@ public class TzGlobalFilter implements GlobalFilter , Ordered { return ip; } + private Mono modifiedBody(ServerWebExchange serverWebExchange){ + String device = getDevice(serverWebExchange.getRequest()); + String ip = getRemoteIp(serverWebExchange.getRequest()); + MediaType mediaType = serverWebExchange.getRequest().getHeaders().getContentType(); + ServerRequest serverRequest = ServerRequest.create(serverWebExchange, HandlerStrategies.withDefaults().messageReaders()); + return serverRequest.bodyToMono(String.class).flatMap(body -> { + JSONObject bodyJson; + if (MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType)) { + Map bodyMap = decodeBody(body); + bodyJson = JSONUtil.parseObj(bodyMap); + } else { + bodyJson = JSONUtil.parseObj(body); + } + if (ObjectUtil.isNotNull(device)) { + bodyJson.set("client", device); + } + if(ObjectUtil.isNotEmpty(ip)){ + bodyJson.set("ip", ip); + } + return Mono.just(JSONUtil.toJsonStr(bodyJson)); + }); + } - private Mono modifiedBody(ServerWebExchange serverWebExchange, Long userNo) { + private Mono modifiedBody(ServerWebExchange serverWebExchange,String name, Object value) { MediaType mediaType = serverWebExchange.getRequest().getHeaders().getContentType(); ServerRequest serverRequest = ServerRequest.create(serverWebExchange, HandlerStrategies.withDefaults().messageReaders()); @@ -139,8 +185,8 @@ public class TzGlobalFilter implements GlobalFilter , Ordered { } else { bodyJson = JSONUtil.parseObj(body); } - if (ObjectUtil.isNotNull(userNo)) { - bodyJson.set(USERNO, userNo); + if (ObjectUtil.isNotNull(value)) { + bodyJson.set(name, value); } return Mono.just(JSONUtil.toJsonStr(bodyJson)); }); diff --git a/tz/pom.xml b/tz/pom.xml index ddbbb4a..995ee80 100644 --- a/tz/pom.xml +++ b/tz/pom.xml @@ -15,6 +15,7 @@ competition system exam + upload diff --git a/tz/system/system-feign/src/main/java/com/tz/platform/feign/IFeignStudentLevel.java b/tz/system/system-feign/src/main/java/com/tz/platform/feign/IFeignStudentLevel.java new file mode 100644 index 0000000..2c0adf7 --- /dev/null +++ b/tz/system/system-feign/src/main/java/com/tz/platform/feign/IFeignStudentLevel.java @@ -0,0 +1,11 @@ +package com.tz.platform.feign; + +import com.tz.platform.feign.vo.StudentLevelVo; +import org.springframework.cloud.openfeign.FeignClient; + +import java.util.List; + +@FeignClient(value = "tz-system-service") +public interface IFeignStudentLevel { + List list(); +} diff --git a/tz/system/system-feign/src/main/java/com/tz/platform/feign/vo/StudentLevelVo.java b/tz/system/system-feign/src/main/java/com/tz/platform/feign/vo/StudentLevelVo.java new file mode 100644 index 0000000..53f2ed1 --- /dev/null +++ b/tz/system/system-feign/src/main/java/com/tz/platform/feign/vo/StudentLevelVo.java @@ -0,0 +1,11 @@ +package com.tz.platform.feign.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class StudentLevelVo implements Serializable { + private Integer id; + private String name; +} diff --git a/tz/system/system-service/pom.xml b/tz/system/system-service/pom.xml index 9b87b74..3a48cca 100644 --- a/tz/system/system-service/pom.xml +++ b/tz/system/system-service/pom.xml @@ -32,5 +32,11 @@ com.tz system-feign + + + org.springframework.boot + spring-boot-starter-test + test + \ No newline at end of file diff --git a/tz/system/system-service/src/main/java/com/tz/platform/entity/Region.java b/tz/system/system-service/src/main/java/com/tz/platform/entity/Region.java index 95052ee..c60818b 100644 --- a/tz/system/system-service/src/main/java/com/tz/platform/entity/Region.java +++ b/tz/system/system-service/src/main/java/com/tz/platform/entity/Region.java @@ -1,18 +1,23 @@ package com.tz.platform.entity; +import com.vladmihalcea.hibernate.type.json.JsonStringType; import lombok.Data; +import org.hibernate.annotations.Type; +import org.hibernate.annotations.TypeDef; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; import java.io.Serializable; +import java.util.List; @Entity @Data +@TypeDef(name = "json", typeClass = JsonStringType.class) public class Region implements Serializable { @Id @GeneratedValue(strategy= GenerationType.IDENTITY) private Integer id; private String name; + @Type(type = "json") + @Column(columnDefinition = "json" ) + private List province; } diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/entity/CouseCat.java b/tz/system/system-service/src/main/java/com/tz/platform/entity/StudentLevel.java similarity index 69% rename from tz/exam/exam-service/src/main/java/com/tz/platform/entity/CouseCat.java rename to tz/system/system-service/src/main/java/com/tz/platform/entity/StudentLevel.java index 2c7e75d..5f17a87 100644 --- a/tz/exam/exam-service/src/main/java/com/tz/platform/entity/CouseCat.java +++ b/tz/system/system-service/src/main/java/com/tz/platform/entity/StudentLevel.java @@ -9,9 +9,12 @@ import javax.persistence.Id; @Entity @Data -public class CouseCat { +public class StudentLevel { + @Id - @GeneratedValue(strategy= GenerationType.IDENTITY) - private Long id; + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + private String name; + } diff --git a/tz/system/system-service/src/main/java/com/tz/platform/repository/StudentLevelDao.java b/tz/system/system-service/src/main/java/com/tz/platform/repository/StudentLevelDao.java new file mode 100644 index 0000000..e284569 --- /dev/null +++ b/tz/system/system-service/src/main/java/com/tz/platform/repository/StudentLevelDao.java @@ -0,0 +1,9 @@ +package com.tz.platform.repository; + +import com.tz.platform.entity.StudentLevel; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface StudentLevelDao extends JpaRepository { +} diff --git a/tz/system/system-service/src/main/java/com/tz/platform/system/feign/FeignStudentLevelController.java b/tz/system/system-service/src/main/java/com/tz/platform/system/feign/FeignStudentLevelController.java new file mode 100644 index 0000000..715c0b6 --- /dev/null +++ b/tz/system/system-service/src/main/java/com/tz/platform/system/feign/FeignStudentLevelController.java @@ -0,0 +1,16 @@ +package com.tz.platform.system.feign; + +import com.tz.platform.feign.IFeignStudentLevel; +import com.tz.platform.feign.vo.StudentLevelVo; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +public class FeignStudentLevelController implements IFeignStudentLevel { + + @Override + public List list() { + return null; + } +} diff --git a/tz/system/system-service/src/main/java/com/tz/platform/system/feign/FeignSystemMenuController.java b/tz/system/system-service/src/main/java/com/tz/platform/system/feign/FeignSystemMenuController.java index 35fc5ac..2b57e34 100644 --- a/tz/system/system-service/src/main/java/com/tz/platform/system/feign/FeignSystemMenuController.java +++ b/tz/system/system-service/src/main/java/com/tz/platform/system/feign/FeignSystemMenuController.java @@ -1,8 +1,42 @@ package com.tz.platform.system.feign; import com.tz.platform.common.core.base.BaseController; +import com.tz.platform.feign.IFeignSysMenu; +import com.tz.platform.feign.qo.SysMenuQO; +import com.tz.platform.feign.vo.SysMenuVO; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController -public class FeignSystemMenuController extends BaseController { +public class FeignSystemMenuController extends BaseController implements IFeignSysMenu { + @Override + public List list(SysMenuQO qo) { + return null; + } + + @Override + public int save(SysMenuQO qo) { + return 0; + } + + @Override + public int deleteById(Long id) { + return 0; + } + + @Override + public int updateById(SysMenuQO qo) { + return 0; + } + + @Override + public SysMenuVO getById(Long id) { + return null; + } + + @Override + public List listByUserAndMenu(Long userNo) { + return null; + } } diff --git a/tz/system/system-service/src/main/java/com/tz/platform/system/feign/biz/FeignStudentLevelBiz.java b/tz/system/system-service/src/main/java/com/tz/platform/system/feign/biz/FeignStudentLevelBiz.java new file mode 100644 index 0000000..8b724bd --- /dev/null +++ b/tz/system/system-service/src/main/java/com/tz/platform/system/feign/biz/FeignStudentLevelBiz.java @@ -0,0 +1,24 @@ +package com.tz.platform.system.feign.biz; + +import com.tz.platform.entity.StudentLevel; +import com.tz.platform.feign.vo.StudentLevelVo; +import com.tz.platform.repository.StudentLevelDao; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class FeignStudentLevelBiz { + @Autowired + private StudentLevelDao studentLevelDao; + + public List list(){ + List rs= new ArrayList<>(); + List studentLevels = studentLevelDao.findAll(); + BeanUtils.copyProperties(studentLevels,rs); + return rs; + } +} diff --git a/tz/system/system-service/src/main/java/com/tz/platform/system/pc/PCMenuController.java b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/PCMenuController.java new file mode 100644 index 0000000..c944485 --- /dev/null +++ b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/PCMenuController.java @@ -0,0 +1,21 @@ +package com.tz.platform.system.pc; + +import com.tz.platform.common.core.base.Result; +import com.tz.platform.system.pc.biz.PCMenuBiz; +import com.tz.platform.system.pc.dto.MenuDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping(value = "/pc/menu") +public class PCMenuController { + @Autowired + private PCMenuBiz pcMenuBiz; + + @GetMapping(value = "menu") + public Result listMenu(){ + return pcMenuBiz.listMenu(); + } +} diff --git a/tz/system/system-service/src/main/java/com/tz/platform/system/pc/PcSystemController.java b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/PcSystemController.java new file mode 100644 index 0000000..c035f7b --- /dev/null +++ b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/PcSystemController.java @@ -0,0 +1,20 @@ +package com.tz.platform.system.pc; + +import com.tz.platform.common.core.base.Result; +import com.tz.platform.system.pc.bo.ProvinceBO; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping(value = "/pc/system") +public class PcSystemController { + + + @PostMapping(value = "province/add") + public Result addProvice(@RequestBody ProvinceBO provinceBO){ + + return Result.success("success"); + } +} diff --git a/tz/system/system-service/src/main/java/com/tz/platform/system/pc/biz/PCMenuBiz.java b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/biz/PCMenuBiz.java new file mode 100644 index 0000000..1b703c2 --- /dev/null +++ b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/biz/PCMenuBiz.java @@ -0,0 +1,28 @@ +package com.tz.platform.system.pc.biz; + +import com.tz.platform.common.core.base.Result; +import com.tz.platform.entity.Menu; +import com.tz.platform.repository.MenuDao; +import com.tz.platform.system.pc.dto.MenuDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.stream.Collectors; + +@Component +public class PCMenuBiz { + + @Autowired + private MenuDao menuDao; + + public Result listMenu(){ + List menuList = menuDao.findAll(); + List parent = menuList.stream().filter(menu->menu.getParentId()==0).collect(Collectors.toList()); + MenuDTO menuDTO = new MenuDTO(); + parent.forEach(menu -> { + List child = menuList.stream().filter(menu1 -> menu1.getParentId() == menu.getId()).collect(Collectors.toList()); + }); + return Result.success(menuDTO); + } +} diff --git a/tz/system/system-service/src/main/java/com/tz/platform/system/pc/biz/PCProvinceBiz.java b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/biz/PCProvinceBiz.java new file mode 100644 index 0000000..1ece8f7 --- /dev/null +++ b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/biz/PCProvinceBiz.java @@ -0,0 +1,22 @@ +package com.tz.platform.system.pc.biz; + +import com.tz.platform.common.core.base.Result; +import com.tz.platform.entity.Province; +import com.tz.platform.repository.ProvinceDao; +import com.tz.platform.system.pc.bo.ProvinceBO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class PCProvinceBiz { + + @Autowired + private ProvinceDao provinceDao; + + public Result addProvince(ProvinceBO provinceBO){ + Province province = new Province(); + province.setName(provinceBO.getName()); + + return Result.success("success"); + } +} diff --git a/tz/system/system-service/src/main/java/com/tz/platform/system/pc/bo/ProvinceBO.java b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/bo/ProvinceBO.java new file mode 100644 index 0000000..9996343 --- /dev/null +++ b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/bo/ProvinceBO.java @@ -0,0 +1,8 @@ +package com.tz.platform.system.pc.bo; + +import lombok.Data; + +@Data +public class ProvinceBO { + private String name; +} diff --git a/tz/system/system-service/src/main/java/com/tz/platform/system/pc/dto/MenuDTO.java b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/dto/MenuDTO.java new file mode 100644 index 0000000..944c395 --- /dev/null +++ b/tz/system/system-service/src/main/java/com/tz/platform/system/pc/dto/MenuDTO.java @@ -0,0 +1,14 @@ +package com.tz.platform.system.pc.dto; + +import com.tz.platform.entity.Menu; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.List; + +@Data +@Accessors(chain = true) +public class MenuDTO implements Serializable { + List menuList; +} diff --git a/tz/system/system-service/src/main/resources/bootstrap.yml b/tz/system/system-service/src/main/resources/bootstrap.yml index 6cc39a9..ee896bf 100644 --- a/tz/system/system-service/src/main/resources/bootstrap.yml +++ b/tz/system/system-service/src/main/resources/bootstrap.yml @@ -1,5 +1,5 @@ server: - port: 50013 + port: 50014 spring: application: name: tz-system-service @@ -15,3 +15,5 @@ spring: file-extension: yaml discovery: namespace: ${spring.profiles.active} + main: + allow-bean-definition-overriding: true diff --git a/tz/system/system-service/src/test/java/com/tz/platform/repository/ProvinceRepositoryTest.java b/tz/system/system-service/src/test/java/com/tz/platform/repository/ProvinceRepositoryTest.java new file mode 100644 index 0000000..508bd2d --- /dev/null +++ b/tz/system/system-service/src/test/java/com/tz/platform/repository/ProvinceRepositoryTest.java @@ -0,0 +1,11 @@ +package com.tz.platform.repository; + +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +public class ProvinceRepositoryTest { + + public void addPronviceTest(){ + + } +} diff --git a/tz/system/system-service/src/test/java/com/tz/platform/repository/RegionRepositoryTest.java b/tz/system/system-service/src/test/java/com/tz/platform/repository/RegionRepositoryTest.java new file mode 100644 index 0000000..20290b5 --- /dev/null +++ b/tz/system/system-service/src/test/java/com/tz/platform/repository/RegionRepositoryTest.java @@ -0,0 +1,26 @@ +package com.tz.platform.repository; + +import com.tz.platform.entity.Region; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@SpringBootTest +public class RegionRepositoryTest { + @Autowired + private RegionDao regionDao; + + @Test + public void regionSaveTest(){ + Region region = new Region(); + region.setName("华中地区"); + List provinces = new ArrayList<>(); + provinces.addAll(Arrays.asList("湖北省","河南省","湖南省")); + region.setProvince(provinces); + regionDao.save(region); + } +} diff --git a/tz/system/system-service/target/classes/bootstrap.yml b/tz/system/system-service/target/classes/bootstrap.yml index 6cc39a9..ee896bf 100644 --- a/tz/system/system-service/target/classes/bootstrap.yml +++ b/tz/system/system-service/target/classes/bootstrap.yml @@ -1,5 +1,5 @@ server: - port: 50013 + port: 50014 spring: application: name: tz-system-service @@ -15,3 +15,5 @@ spring: file-extension: yaml discovery: namespace: ${spring.profiles.active} + main: + allow-bean-definition-overriding: true diff --git a/tz/upload/pom.xml b/tz/upload/pom.xml new file mode 100644 index 0000000..4fdd7e5 --- /dev/null +++ b/tz/upload/pom.xml @@ -0,0 +1,20 @@ + + + + platform + com.tz + 1.0-SNAPSHOT + + 4.0.0 + + upload + pom + + upload-feign + upload-service + + + + \ No newline at end of file diff --git a/tz/upload/upload-feign/pom.xml b/tz/upload/upload-feign/pom.xml new file mode 100644 index 0000000..7e66b9f --- /dev/null +++ b/tz/upload/upload-feign/pom.xml @@ -0,0 +1,15 @@ + + + + upload + com.tz + 1.0-SNAPSHOT + + 4.0.0 + + upload-feign + + + \ No newline at end of file diff --git a/tz/upload/upload-service/pom.xml b/tz/upload/upload-service/pom.xml new file mode 100644 index 0000000..188a631 --- /dev/null +++ b/tz/upload/upload-service/pom.xml @@ -0,0 +1,25 @@ + + + + upload + com.tz + 1.0-SNAPSHOT + + 4.0.0 + + upload-service + + + + com.tz + common-core + + + com.tz + common-service + + + + \ No newline at end of file diff --git a/tz/upload/upload-service/src/main/java/com/tz/platform/UploadServiceApplication.java b/tz/upload/upload-service/src/main/java/com/tz/platform/UploadServiceApplication.java new file mode 100644 index 0000000..dc28b2b --- /dev/null +++ b/tz/upload/upload-service/src/main/java/com/tz/platform/UploadServiceApplication.java @@ -0,0 +1,13 @@ +package com.tz.platform; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +public class UploadServiceApplication { + public static void main(String[] args) { + SpringApplication.run(UploadServiceApplication.class,args); + } +} diff --git a/tz/upload/upload-service/src/main/java/com/tz/platform/entity/Image.java b/tz/upload/upload-service/src/main/java/com/tz/platform/entity/Image.java new file mode 100644 index 0000000..54f450d --- /dev/null +++ b/tz/upload/upload-service/src/main/java/com/tz/platform/entity/Image.java @@ -0,0 +1,20 @@ +package com.tz.platform.entity; + +import lombok.Data; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import java.util.Date; + +@Entity +@Data +public class Image { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String path; + private String url; + private Date createTime; +} diff --git a/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/biz/PCImageBiz.java b/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/biz/PCImageBiz.java new file mode 100644 index 0000000..8afc637 --- /dev/null +++ b/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/biz/PCImageBiz.java @@ -0,0 +1,40 @@ +package com.tz.platform.image.pc.biz; + +import com.tz.platform.common.core.base.Result; +import com.tz.platform.common.core.config.SystemUtil; +import com.tz.platform.entity.Image; +import com.tz.platform.image.pc.dto.ImageDTO; +import com.tz.platform.repository.ImageDao; +import net.coobird.thumbnailator.Thumbnails; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.Date; + +@Component +public class PCImageBiz { + + @Autowired + private ImageDao imageDao; + + public Result uploadImg(MultipartFile multipartFile,int w,int h){ + ImageDTO imageDTO = new ImageDTO(); + Image image = new Image(); + String fileName = System.currentTimeMillis()+""; + try { + Thumbnails.of(multipartFile.getResource().getInputStream()).size(w,h).outputFormat("png").toFile(SystemUtil.PIC_PATH+fileName); + } catch (IOException e) { + e.printStackTrace(); + return Result.error("上传失败"); + } + image.setCreateTime(new Date()); + image.setPath(SystemUtil.PIC_PATH+fileName+".png"); + image.setUrl(SystemUtil.PIC_RESOURCE_URL+fileName+".png"); + imageDao.save(image); + BeanUtils.copyProperties(image,imageDTO); + return Result.success(imageDTO); + } +} diff --git a/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/dto/ImageDTO.java b/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/dto/ImageDTO.java new file mode 100644 index 0000000..ea3b58d --- /dev/null +++ b/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/dto/ImageDTO.java @@ -0,0 +1,13 @@ +package com.tz.platform.image.pc.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +@Data +@Accessors(chain = true) +public class ImageDTO implements Serializable { + private String url ; + private Long id; + private String path; +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/repository/CousreCatDao.java b/tz/upload/upload-service/src/main/java/com/tz/platform/repository/ImageDao.java similarity index 59% rename from tz/exam/exam-service/src/main/java/com/tz/platform/repository/CousreCatDao.java rename to tz/upload/upload-service/src/main/java/com/tz/platform/repository/ImageDao.java index 6910e1d..8e65ce5 100644 --- a/tz/exam/exam-service/src/main/java/com/tz/platform/repository/CousreCatDao.java +++ b/tz/upload/upload-service/src/main/java/com/tz/platform/repository/ImageDao.java @@ -1,9 +1,9 @@ package com.tz.platform.repository; -import com.tz.platform.entity.CourseTag; +import com.tz.platform.entity.Image; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository -public interface CousreCatDao extends JpaRepository { +public interface ImageDao extends JpaRepository { } diff --git a/tz/upload/upload-service/src/main/resources/bootstrap.yml b/tz/upload/upload-service/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..326e36c --- /dev/null +++ b/tz/upload/upload-service/src/main/resources/bootstrap.yml @@ -0,0 +1,19 @@ +server: + port: 50015 +spring: + application: + name: tz-upload-service + profiles: + active: dev + cloud: + nacos: + server-addr: 127.0.0.1:8848 + username: nacos + password: nacos + config: + namespace: ${spring.profiles.active} + file-extension: yaml + discovery: + namespace: ${spring.profiles.active} + main: + allow-bean-definition-overriding: true \ No newline at end of file diff --git a/tz/user/user-feign/target/classes/META-INF/userfeign.kotlin_module b/tz/user/user-feign/target/classes/META-INF/userfeign.kotlin_module deleted file mode 100644 index 8fb60192d378759239a3ecbf60eac8c8de446e9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16 RcmZQzU|?ooU|@t|UH|}6022TJ diff --git a/tz/user/user-service/src/main/java/com/tz/platform/Application.java b/tz/user/user-service/src/main/java/com/tz/platform/UserServiceApplication.java similarity index 79% rename from tz/user/user-service/src/main/java/com/tz/platform/Application.java rename to tz/user/user-service/src/main/java/com/tz/platform/UserServiceApplication.java index cfc68d4..f52ceb7 100644 --- a/tz/user/user-service/src/main/java/com/tz/platform/Application.java +++ b/tz/user/user-service/src/main/java/com/tz/platform/UserServiceApplication.java @@ -9,8 +9,8 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients -public class Application { +public class UserServiceApplication { public static void main(String[] args) { - SpringApplication.run(Application.class,args); + SpringApplication.run(UserServiceApplication.class,args); } } diff --git a/tz/user/user-service/src/main/java/com/tz/platform/entity/LoginLog.java b/tz/user/user-service/src/main/java/com/tz/platform/entity/LoginLog.java new file mode 100644 index 0000000..7f1c980 --- /dev/null +++ b/tz/user/user-service/src/main/java/com/tz/platform/entity/LoginLog.java @@ -0,0 +1,23 @@ +package com.tz.platform.entity; + +import lombok.Data; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import java.util.Date; + +@Data +@Entity +public class LoginLog { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String username; + private Date loginDate; + private String ip; + private String clientType; + private String location; + private Integer loginStatus; +} diff --git a/tz/user/user-service/src/main/java/com/tz/platform/repository/LoginLogDao.java b/tz/user/user-service/src/main/java/com/tz/platform/repository/LoginLogDao.java new file mode 100644 index 0000000..512ca63 --- /dev/null +++ b/tz/user/user-service/src/main/java/com/tz/platform/repository/LoginLogDao.java @@ -0,0 +1,9 @@ +package com.tz.platform.repository; + +import com.tz.platform.entity.LoginLog; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface LoginLogDao extends JpaRepository { +} diff --git a/tz/user/user-service/src/main/java/com/tz/platform/repository/UserDao.java b/tz/user/user-service/src/main/java/com/tz/platform/repository/UserDao.java index 0cfd771..dc067c7 100644 --- a/tz/user/user-service/src/main/java/com/tz/platform/repository/UserDao.java +++ b/tz/user/user-service/src/main/java/com/tz/platform/repository/UserDao.java @@ -15,6 +15,9 @@ public interface UserDao extends JpaRepository { */ User findByMobile(String mobile); + + User getById(Long id); + /** * 依据用户名获取用户 * @param username 用户名 diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/api/UserInfoController.java b/tz/user/user-service/src/main/java/com/tz/platform/user/api/UserInfoController.java deleted file mode 100644 index ad36de3..0000000 --- a/tz/user/user-service/src/main/java/com/tz/platform/user/api/UserInfoController.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.tz.platform.user.api; - -import com.tz.platform.common.core.base.BaseController; -import com.tz.platform.common.core.base.Result; -import com.tz.platform.entity.User; -import com.tz.platform.repository.UserDao; -import com.tz.platform.user.api.biz.ApiUserInfoBiz; -import com.tz.platform.user.api.bo.UserLoginPasswordBO; -import com.tz.platform.user.api.dto.UserInfoDTO; -import com.tz.platform.user.api.dto.UserLoginDTO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping(path = "/api/user") -public class UserInfoController extends BaseController { - - @Autowired - UserDao userDao; - - @Autowired - ApiUserInfoBiz apiUserInfoBiz; - - - @PostMapping(path = "login") - public Result loginPassword(@RequestBody UserLoginPasswordBO userLoginPasswordBO){ - log(userLoginPasswordBO); - return apiUserInfoBiz.loginPassword(userLoginPasswordBO); - } - - @GetMapping(path = "info") - public Result info(){ - - UserInfoDTO userInfoDTO = new UserInfoDTO(); - userInfoDTO.setAvatar("https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"); - userInfoDTO.setName("管理员"); - return Result.success(userInfoDTO); - } - -} diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/api/UserLoginController.java b/tz/user/user-service/src/main/java/com/tz/platform/user/api/UserLoginController.java new file mode 100644 index 0000000..c0f3fc2 --- /dev/null +++ b/tz/user/user-service/src/main/java/com/tz/platform/user/api/UserLoginController.java @@ -0,0 +1,25 @@ +package com.tz.platform.user.api; + +import com.tz.platform.common.core.base.BaseController; +import com.tz.platform.common.core.base.Result; +import com.tz.platform.user.api.biz.ApiUserLoginBiz; +import com.tz.platform.user.api.bo.UserLoginPasswordBO; +import com.tz.platform.user.api.dto.UserLoginDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/user/login") +public class UserLoginController extends BaseController { + + @Autowired + private ApiUserLoginBiz apiUserLoginBiz; + + @PostMapping(path = "password") + public Result loginPassword(@RequestBody UserLoginPasswordBO userLoginPasswordBO){ + return apiUserLoginBiz.loginPassword(userLoginPasswordBO); + } +} diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/api/biz/ApiUserInfoBiz.java b/tz/user/user-service/src/main/java/com/tz/platform/user/api/biz/ApiUserInfoBiz.java index d4f0f04..f62c4ce 100644 --- a/tz/user/user-service/src/main/java/com/tz/platform/user/api/biz/ApiUserInfoBiz.java +++ b/tz/user/user-service/src/main/java/com/tz/platform/user/api/biz/ApiUserInfoBiz.java @@ -89,46 +89,5 @@ public class ApiUserInfoBiz { - /** - * 账号密码登陆 - * @param userLoginPasswordBO - * @return - */ - public Result loginPassword(UserLoginPasswordBO userLoginPasswordBO){ - - if (StringUtils.isEmpty(userLoginPasswordBO.getUsername())) { - return Result.error("用户名不能为空"); - } - if (StringUtils.isEmpty(userLoginPasswordBO.getPassword())) { - return Result.error("密码不能为空"); - } - - // 密码错误次数校验 - - // 用户校验 - User user = userDao.getByUsername(userLoginPasswordBO.getUsername()); - if (null == user) { - return Result.error("账号或者密码不正确"); - } - // 密码校验 - if (!DigestUtil.sha1Hex(user.getMobileSalt() + userLoginPasswordBO.getPassword()).equals(user.getMobilePsw())) { - // 放入缓存,错误次数+1 - return Result.error("账号或者密码不正确"); - } - - // 登录日志 -// loginLog(user.getUserNo(), userLoginPasswordBO.getClientId(), LoginStatusEnum.SUCCESS, userLoginPasswordBO.getIp()); - - UserLoginDTO dto = new UserLoginDTO(); - dto.setUserNo(user.getId()); - dto.setUsername(user.getUsername()); - dto.setToken(JWTUtil.create(user.getId(), JWTUtil.DATE)); - - - // 登录成功,存入缓存,单点登录使用 -// redisTemplate.opsForValue().set(dto.getUserNo().toString(), dto.getToken(), 1, TimeUnit.DAYS); - - return Result.success(dto); - } } diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/api/biz/ApiUserLoginBiz.java b/tz/user/user-service/src/main/java/com/tz/platform/user/api/biz/ApiUserLoginBiz.java new file mode 100644 index 0000000..2b2be57 --- /dev/null +++ b/tz/user/user-service/src/main/java/com/tz/platform/user/api/biz/ApiUserLoginBiz.java @@ -0,0 +1,82 @@ +package com.tz.platform.user.api.biz; + +import cn.hutool.crypto.digest.DigestUtil; +import com.tz.platform.common.core.base.Result; +import com.tz.platform.common.core.enmus.LoginStatusEnum; +import com.tz.platform.common.core.tools.JWTUtil; +import com.tz.platform.entity.LoginLog; +import com.tz.platform.entity.User; +import com.tz.platform.repository.LoginLogDao; +import com.tz.platform.repository.UserDao; +import com.tz.platform.user.api.bo.UserLoginPasswordBO; +import com.tz.platform.user.api.dto.UserLoginDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; + +import java.util.Date; + +@Component +public class ApiUserLoginBiz { + @Autowired + private UserDao userDao; + + @Autowired + private LoginLogDao loginLogDao; + + @Autowired + private RedisTemplate redisTemplate; + /** + * 账号密码登陆 + * @param userLoginPasswordBO + * @return + */ + public Result loginPassword(UserLoginPasswordBO userLoginPasswordBO){ + + if (StringUtils.isEmpty(userLoginPasswordBO.getUsername())) { + return Result.error("用户名不能为空"); + } + if (StringUtils.isEmpty(userLoginPasswordBO.getPassword())) { + return Result.error("密码不能为空"); + } + + + // 密码错误次数校验 + + // 用户校验 + User user = userDao.getByUsername(userLoginPasswordBO.getUsername()); + if (null == user) { + return Result.error("账号或者密码不正确"); + } + // 密码校验 + if (!DigestUtil.sha1Hex(user.getMobileSalt() + userLoginPasswordBO.getPassword()).equals(user.getMobilePsw())) { + // 放入缓存,错误次数+1 + return Result.error("账号或者密码不正确"); + } + + // 登录日志 + loginLog(LoginStatusEnum.SUCCESS, userLoginPasswordBO.getIp(),user.getUsername(), userLoginPasswordBO.getClient()); + + UserLoginDTO dto = new UserLoginDTO(); + dto.setUserNo(user.getId()); + dto.setUsername(user.getUsername()); + dto.setToken(JWTUtil.create(user.getId(), JWTUtil.DATE)); + + + // 登录成功,存入缓存,单点登录使用 +// redisTemplate.opsForValue().set(dto.getUserNo().toString(), dto.getToken(), 1, TimeUnit.DAYS); + + return Result.success(dto); + } + + private void loginLog(LoginStatusEnum loginStatusEnum, String ip,String username,String clientType){ + LoginLog loginLog = new LoginLog(); + loginLog.setIp(ip); + loginLog.setUsername(username); + loginLog.setLoginDate(new Date()); + loginLog.setClientType(clientType); + loginLog.setLoginStatus(loginStatusEnum.getCode()); + loginLogDao.save(loginLog); + } +} diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/api/bo/UserLoginPasswordBO.java b/tz/user/user-service/src/main/java/com/tz/platform/user/api/bo/UserLoginPasswordBO.java index 3123ec0..b0ca375 100644 --- a/tz/user/user-service/src/main/java/com/tz/platform/user/api/bo/UserLoginPasswordBO.java +++ b/tz/user/user-service/src/main/java/com/tz/platform/user/api/bo/UserLoginPasswordBO.java @@ -24,4 +24,6 @@ public class UserLoginPasswordBO implements Serializable { private String password; private String ip; + + private String client; } diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/auth/UserInfoController.java b/tz/user/user-service/src/main/java/com/tz/platform/user/auth/UserInfoController.java new file mode 100644 index 0000000..7424b12 --- /dev/null +++ b/tz/user/user-service/src/main/java/com/tz/platform/user/auth/UserInfoController.java @@ -0,0 +1,28 @@ +package com.tz.platform.user.auth; + +import com.tz.platform.common.core.base.BaseController; +import com.tz.platform.common.core.base.Result; +import com.tz.platform.repository.UserDao; +import com.tz.platform.user.auth.biz.AuthUserInfoBiz; +import com.tz.platform.user.auth.dto.AuthUserInfoDTO; +import com.tz.platform.user.auth.vo.UserInfoVo; +import jdk.nashorn.internal.objects.annotations.Getter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping(path = "/auth/user") +public class UserInfoController extends BaseController { + + @Autowired + UserDao userDao; + + @Autowired + AuthUserInfoBiz authUserInfoBiz; + + + @PostMapping(path = "info") + public Result info(@RequestBody UserInfoVo userInfoVo){ + return authUserInfoBiz.info(userInfoVo.getUserNo()); + } +} diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/auth/biz/AuthUserInfoBiz.java b/tz/user/user-service/src/main/java/com/tz/platform/user/auth/biz/AuthUserInfoBiz.java new file mode 100644 index 0000000..1088f59 --- /dev/null +++ b/tz/user/user-service/src/main/java/com/tz/platform/user/auth/biz/AuthUserInfoBiz.java @@ -0,0 +1,26 @@ +package com.tz.platform.user.auth.biz; + +import com.tz.platform.common.core.base.Result; +import com.tz.platform.entity.User; +import com.tz.platform.repository.UserDao; +import com.tz.platform.user.auth.dto.AuthUserInfoDTO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class AuthUserInfoBiz { + + @Autowired + private UserDao userDao; + + public Result info(Long userNo){ + AuthUserInfoDTO authUserInfoDTO = new AuthUserInfoDTO(); + log.info(userNo+""); + User user =userDao.getById(userNo); + BeanUtils.copyProperties(user,authUserInfoDTO); + return Result.success(authUserInfoDTO); + } +} diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/auth/dto/AuthUserInfoDTO.java b/tz/user/user-service/src/main/java/com/tz/platform/user/auth/dto/AuthUserInfoDTO.java new file mode 100644 index 0000000..9df9462 --- /dev/null +++ b/tz/user/user-service/src/main/java/com/tz/platform/user/auth/dto/AuthUserInfoDTO.java @@ -0,0 +1,17 @@ +package com.tz.platform.user.auth.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +@Data +@Accessors(chain = true) +public class AuthUserInfoDTO implements Serializable { + @ApiModelProperty(value = "姓名") + private String name; + + @ApiModelProperty(value = "头像") + private String avatar; +} diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/auth/vo/UserInfoVo.java b/tz/user/user-service/src/main/java/com/tz/platform/user/auth/vo/UserInfoVo.java new file mode 100644 index 0000000..574473c --- /dev/null +++ b/tz/user/user-service/src/main/java/com/tz/platform/user/auth/vo/UserInfoVo.java @@ -0,0 +1,10 @@ +package com.tz.platform.user.auth.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class UserInfoVo { + private Long userNo; +} diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/feign/FeignUserController.java b/tz/user/user-service/src/main/java/com/tz/platform/user/feign/FeignUserController.java index c5ffacb..ff31a22 100644 --- a/tz/user/user-service/src/main/java/com/tz/platform/user/feign/FeignUserController.java +++ b/tz/user/user-service/src/main/java/com/tz/platform/user/feign/FeignUserController.java @@ -7,6 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController public class FeignUserController implements IFeignUser { @@ -22,4 +24,9 @@ public class FeignUserController implements IFeignUser { public UserVo getByMobile(@PathVariable(value = "mobile") String mobile){ return feignUserBiz.getByMobile(mobile); } + + @Override + public int batchInser(List userVoList) { + return 0; + } } diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/pc/biz/PCUserLoginBiz.java b/tz/user/user-service/src/main/java/com/tz/platform/user/pc/biz/PCUserLoginBiz.java new file mode 100644 index 0000000..5c8ffb8 --- /dev/null +++ b/tz/user/user-service/src/main/java/com/tz/platform/user/pc/biz/PCUserLoginBiz.java @@ -0,0 +1,4 @@ +package com.tz.platform.user.pc.biz; + +public class PCUserLoginBiz { +} diff --git a/tz/user/user-service/target/classes/META-INF/userservice.kotlin_module b/tz/user/user-service/target/classes/META-INF/userservice.kotlin_module deleted file mode 100644 index 8fb60192d378759239a3ecbf60eac8c8de446e9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16 RcmZQzU|?ooU|@t|UH|}6022TJ