xuexb 6 years ago
parent
commit
744b73dcfc

+ 0 - 0
.attach_pid31316


+ 0 - 0
.attach_pid31433


+ 0 - 0
.attach_pid31510


+ 0 - 0
.attach_pid3178


+ 0 - 0
.attach_pid31976


+ 16 - 7
mooctest-user-server/pom.xml

@@ -53,14 +53,23 @@
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-redis</artifactId>
-            <version>1.3.8.RELEASE</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.session</groupId>
-            <artifactId>spring-session-data-redis</artifactId>
-            <version>1.3.1.RELEASE</version>
+            <artifactId>spring-boot-starter-mail</artifactId>
+            <version>1.2.0.RELEASE</version>
         </dependency>
+
+
+
+        <!--<dependency>-->
+            <!--<groupId>org.springframework.boot</groupId>-->
+            <!--<artifactId>spring-boot-starter-redis</artifactId>-->
+            <!--<version>1.4.7.RELEASE</version>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+            <!--<groupId>org.springframework.session</groupId>-->
+            <!--<artifactId>spring-session-data-redis</artifactId>-->
+            <!--<version>1.3.2.RELEASE</version>-->
+        <!--</dependency>-->
+
         <dependency>
             <groupId>net.sourceforge.nekohtml</groupId>
             <artifactId>nekohtml</artifactId>

+ 1 - 1
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/constants/UrlConstants.java

@@ -16,5 +16,5 @@ public class UrlConstants {
 
     public static final String API="/api/";
 
-    public static final String DFAULT_GOTO="test_success";
+    public static final String DFAULT_GOTO="http://www.mooctest.net";
 }

+ 14 - 0
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/service/MailService.java

@@ -0,0 +1,14 @@
+package cn.iselab.mooctest.user.service;
+
+/**
+ * @Description: 发送邮件服务接口
+ * @Author: xuexb
+ * @CreateDate: 18-12-25$ 下午4:53$
+ */
+public interface MailService {
+
+    void sendNormalEmail(String sender, String receiver,
+                         String subject, String content);
+
+    void sendRegisterEmail(String sender, String receiver);
+}

+ 42 - 0
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/service/impl/MailServiceImpl.java

@@ -0,0 +1,42 @@
+package cn.iselab.mooctest.user.service.impl;
+
+import cn.iselab.mooctest.user.service.MailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.mail.MailMessage;
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.JavaMailSenderImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 作用描述
+ * @Author: xuexb
+ * @CreateDate: 18-12-25$ 下午5:01$
+ */
+@Service
+public class MailServiceImpl implements MailService {
+
+    @Value("${spring.mail.username}")
+    private String sender;
+
+    @Autowired
+    JavaMailSender mailSender;
+
+    @Override
+    public void sendNormalEmail(String sender, String receiver, String subject, String content) {
+        SimpleMailMessage message = new SimpleMailMessage();
+        message.setSubject(subject);
+        message.setText(content);
+        message.setTo(receiver);
+        message.setFrom(this.sender);
+
+        mailSender.send(message);
+    }
+
+    @Override
+    public void sendRegisterEmail(String sender, String receiver) {
+
+    }
+}

+ 19 - 6
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/ctrl/PageController.java

@@ -26,13 +26,17 @@ public class PageController {
     @Autowired
     UserLogic userLogic;
 
+    String afterLogin = UrlConstants.DFAULT_GOTO;
+
     @RequestMapping(value = UrlConstants.PAGE + "login", method = RequestMethod.GET)
-    public String login(HttpServletRequest request){
+    public String login(HttpServletRequest request, String afterLogin){
+        if(afterLogin!=null && afterLogin.trim().length()>0)
+            this.afterLogin = afterLogin;
         HttpSession session = request.getSession();
         if(session.getAttribute("userId")!=null){
-            return UrlConstants.DFAULT_GOTO;
+            return "redirect:"+this.afterLogin;
         }
-        return "index";
+        return "login";
     }
 
     @RequestMapping(value = UrlConstants.PAGE + "dologin", method = RequestMethod.POST)
@@ -41,19 +45,28 @@ public class PageController {
         String password = EncryptionUtil.encryptMD5(user.getPassword());
         user.setPassword(password);
         result = userLogic.checkPWD(user);
-
         if (result.getStatus() == ResponseStatus.SUCCESS) {
             HttpSession session = request.getSession();
             session.setAttribute("userId", ((UserDTO)result.getData()).getId());
             // return "redirect:http://www.mooctest.net/api/test/login";
-            return "test_success";
+            return this.afterLogin;
         }
         else{
             model.addAttribute("result", result);
-            return "index";
+            return "login";
         }
     }
 
+    @RequestMapping(value = UrlConstants.PAGE + "register", method = RequestMethod.GET)
+    public String register(){
+        return null;
+    }
+
+    @RequestMapping(value = UrlConstants.PAGE + "doregister", method = RequestMethod.POST)
+    public String doRegister(){
+        return null;
+    }
+
 
 
 

+ 33 - 0
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/ctrl/TestController.java

@@ -1,7 +1,16 @@
 package cn.iselab.mooctest.user.web.ctrl;
 
+import cn.iselab.mooctest.user.service.MailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * @Author: xuexb
  * @Date: 2018.12.24 19:11
@@ -9,4 +18,28 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 public class TestController {
 
+    @Autowired
+    MailService mailService;
+
+    @RequestMapping(value = "/test/first", method = RequestMethod.GET)
+    public Map<String, Object> firstResp(HttpServletRequest request){
+        Map<String, Object> map = new HashMap<>();
+        request.getSession().setAttribute("msg", "hello world");
+        map.put("requestURL", request.getRequestURL());
+        return map;
+    }
+
+    @RequestMapping(value = "/test/sessions", method = RequestMethod.GET)
+    public Object sessions(HttpServletRequest request){
+        Map<String, Object> map = new HashMap<>();
+        map.put("sessionsID", request.getSession().getId());
+        map.put("message", request.getSession().getAttribute("msg"));
+        return map;
+    }
+
+    @RequestMapping(value = "/test/mail", method = RequestMethod.GET)
+    public void sendMail(){
+        mailService.sendNormalEmail("", "171256175@qq.com",
+                "[TEST]测试邮件", "这是一封测试邮件<a href='https://www.baidu.com'/>");
+    }
 }

+ 15 - 5
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/ctrl/UserController.java

@@ -45,11 +45,6 @@ public class UserController extends BaseController {
         return userLogic.save(userDTO);
     }
 
-    @RequestMapping(value = UrlConstants.API + "test", method = RequestMethod.GET)
-    public ModelAndView test(){
-        System.out.println("surprise mf");
-        return new ModelAndView("index");
-    }
 
     @RequestMapping(value = UrlConstants.API + "dologin", method = RequestMethod.POST)
     public ResponseResult<UserDTO> checkLogin(@RequestBody UserDTO user, HttpServletRequest request, HttpServletResponse response){
@@ -65,4 +60,19 @@ public class UserController extends BaseController {
         return result;
     }
 
+    @RequestMapping(value = UrlConstants.API + "logout", method = RequestMethod.GET)
+    public ResponseResult<Object> logout(HttpServletRequest request){
+        ResponseResult<Object> result = new ResponseResult<Object>();
+        Object userId = request.getSession().getAttribute("userId");
+        if(userId!=null){
+            request.getSession().removeAttribute("userId");
+            result.init(ResponseStatus.SUCCESS, "用户成功退出", userId);
+            LOG.info("用户成功退出--userId--"+(Long)userId);
+        } else{
+            result.init(ResponseStatus.FAILED, "用户未登录", null);
+            LOG.info("用户未登录");
+        }
+        return result;
+    }
+
 }

+ 17 - 11
mooctest-user-server/src/main/resources/application.yaml

@@ -27,7 +27,18 @@ spring:
         prefix: classpath:/templates/
         encoding: UTF-8
         cache: false
-        enabled: true
+#        enabled: true
+#    redis:
+#        host: localhost
+#        port: 6379
+#        pool:
+#            max-idle: 20
+#            min-idle: 5
+#    session:
+#        stroe-type: redis
+
+
+
 
 
 
@@ -61,16 +72,11 @@ spring:
         provider.timeout: 120000
         provider.retries: 0
 
-    session:
-        redis:
-            flush-mode: on_save
-            namespace: session.userservice
-        store-type: redis
-        timeout: 1800
-    redis:
-        host: 114.55.91.27
-        password:
-        port: 6397
+    mail:
+        host: stmp.126.com
+        username: diors_po@126.com
+        password: xxb19970213
+        default-encoding: UTF-8
 
 
 

+ 8 - 3
mooctest-user-server/src/main/resources/templates/index.html

@@ -40,10 +40,15 @@
 						<input class="input100" type="password" name="password" placeholder="请输入密码" required="密码不可为空">
 						<span class="focus-input100" data-symbol="&#xf190;"></span>
 					</div>
-
-					<div class="text-right p-t-8 p-b-10">
-						<a href="javascript:">忘记密码?</a>
+					<div>
+						<div class="text-left p-t-8 p-b-10">
+							<a href="##">手机登录</a>
+						</div>
+						<div class="text-right p-t-8 p-b-10">
+							<a href="javascript:">忘记密码?</a>
+						</div>
 					</div>
+
 					<div class="text-center p-t-6 p-b-8">
 						<span style="color: red" th:unless="${result==null}" th:text="${result.msg}"></span>
 					</div>

+ 87 - 3
mooctest-user-server/src/main/resources/templates/login.html

@@ -1,10 +1,94 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN" xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:th="http://www.thymeleaf.org">
+
 <head>
     <meta charset="UTF-8">
-    <title>Login</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>慕测统一登录</title>
+    <meta name="keywords" content="" />
+    <meta name="description" content="" />
+
+    <link rel="stylesheet" type="text/css" th:href="@{/vendor/bootstrap/css/bootstrap.min.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/fonts/font-awesome-4.7.0/css/font-awesome.min.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/fonts/iconic/css/material-design-iconic-font.min.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/css/util.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/css/main.css}">
 </head>
+
 <body>
-this is a login page
+
+<div class="limiter">
+    <div class="container-login100" th:style="'background-image:url(/images/bg.jpg);'">
+        <div class="wrap-login100 p-l-40 p-r-40 p-t-30 p-b-25">
+            <form th:action="@{/page/dologin}" method="post" class="login100-form validate-form">
+                <div id="login-logo" style="text-align: center;">
+                    <img style="width: 80px;" th:src="@{/images/mooctest.png}" >
+                </div>
+
+                <span class="login100-form-title p-b-30">MOOCTEST</span>
+
+                <div class="wrap-input100 validate-input m-b-23" data-validate="请输入用户名">
+                    <span class="label-input100">邮箱</span>
+                    <input class="input100" type="text" name="email" placeholder="请输入用户名" required="邮箱账号不可为空">
+                    <span class="focus-input100" data-symbol="&#xf206;"></span>
+                </div>
+
+                <div class="wrap-input100 validate-input" data-validate="请输入密码">
+                    <span class="label-input100">密码</span>
+                    <input class="input100" type="password" name="password" placeholder="请输入密码" required="密码不可为空">
+                    <span class="focus-input100" data-symbol="&#xf190;"></span>
+                </div>
+
+                <div p-t-8 p-b-10>
+                    <div class="text-left" style="width: 50%; float: left;">
+                        <a href="##">手机登录</a>
+                    </div>
+                    <div class="text-right" style="width: 50%; float: right;">
+                        <a href="javascript:">忘记密码?</a>
+                    </div>
+
+
+                </div>
+                <div class="text-center p-t-6 p-b-8">
+                    <span style="color: red" th:unless="${result==null}" th:text="${result.msg}"></span>
+                </div>
+                <div class="container-login100-form-btn">
+                    <div class="wrap-login100-form-btn">
+                        <div class="login100-form-bgbtn"></div>
+                        <button class="login100-form-btn">登 录</button>
+                    </div>
+                </div>
+
+                <div class="txt1 text-center p-t-15 p-b-5">
+                    <span>第三方登录</span>
+                </div>
+
+                <div class="flex-c-m">
+                    <a href="#" class="login100-social-item bg1">
+                        <i class="fa fa-wechat"></i>
+                    </a>
+
+                    <a href="#" class="login100-social-item bg2">
+                        <i class="fa fa-qq"></i>
+                    </a>
+
+                    <a href="#" class="login100-social-item bg3">
+                        <i class="fa fa-weibo"></i>
+                    </a>
+                </div>
+
+                <div class="flex-col-c p-t-10">
+                    <a href="javascript:" class="txt2">立即注册</a>
+                </div>
+            </form>
+        </div>
+    </div>
+</div>
+
+<script th:src="@{/vendor/jquery/jquery-3.2.1.min.js}"></script>
+<script th:src="@{/js/main.js}"></script>
 </body>
+
 </html>

+ 103 - 0
mooctest-user-server/src/main/resources/templates/register.html

@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Title</title>
+</head>
+<body>
+<!DOCTYPE html>
+<html lang="zh-CN" xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:th="http://www.thymeleaf.org">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>慕测统一登录</title>
+    <meta name="keywords" content="" />
+    <meta name="description" content="" />
+
+    <link rel="stylesheet" type="text/css" th:href="@{/vendor/bootstrap/css/bootstrap.min.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/fonts/font-awesome-4.7.0/css/font-awesome.min.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/fonts/iconic/css/material-design-iconic-font.min.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/css/util.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/css/main.css}">
+</head>
+
+<body>
+
+<div class="limiter">
+    <div class="container-login100" th:style="'background-image:url(/images/bg.jpg);'">
+        <div class="wrap-login100 p-l-40 p-r-40 p-t-30 p-b-25">
+            <form th:action="@{/page/dologin}" method="post" class="login100-form validate-form">
+                <div id="login-logo" style="text-align: center;">
+                    <img style="width: 80px;" th:src="@{/images/mooctest.png}" >
+                </div>
+
+                <span class="login100-form-title p-b-30">MOOCTEST</span>
+
+                <div class="wrap-input100 validate-input m-b-23" data-validate="请输入用户名">
+                    <span class="label-input100">邮箱</span>
+                    <input class="input100" type="text" name="email" placeholder="请输入用户名" required="邮箱账号不可为空">
+                    <span class="focus-input100" data-symbol="&#xf206;"></span>
+                </div>
+
+                <div class="wrap-input100 validate-input" data-validate="请输入密码">
+                    <span class="label-input100">密码</span>
+                    <input class="input100" type="password" name="password" placeholder="请输入密码" required="密码不可为空">
+                    <span class="focus-input100" data-symbol="&#xf190;"></span>
+                </div>
+
+                <div p-t-8 p-b-10>
+                    <div class="text-left" style="width: 50%; float: left;">
+                        <a href="##">手机登录</a>
+                    </div>
+                    <div class="text-right" style="width: 50%; float: right;">
+                        <a href="javascript:">忘记密码?</a>
+                    </div>
+
+
+                </div>
+                <div class="text-center p-t-6 p-b-8">
+                    <span style="color: red" th:unless="${result==null}" th:text="${result.msg}"></span>
+                </div>
+                <div class="container-login100-form-btn">
+                    <div class="wrap-login100-form-btn">
+                        <div class="login100-form-bgbtn"></div>
+                        <button class="login100-form-btn">登 录</button>
+                    </div>
+                </div>
+
+                <div class="txt1 text-center p-t-15 p-b-5">
+                    <span>第三方登录</span>
+                </div>
+
+                <div class="flex-c-m">
+                    <a href="#" class="login100-social-item bg1">
+                        <i class="fa fa-wechat"></i>
+                    </a>
+
+                    <a href="#" class="login100-social-item bg2">
+                        <i class="fa fa-qq"></i>
+                    </a>
+
+                    <a href="#" class="login100-social-item bg3">
+                        <i class="fa fa-weibo"></i>
+                    </a>
+                </div>
+
+                <div class="flex-col-c p-t-10">
+                    <a href="javascript:" class="txt2">立即注册</a>
+                </div>
+            </form>
+        </div>
+    </div>
+</div>
+
+<script th:src="@{/vendor/jquery/jquery-3.2.1.min.js}"></script>
+<script th:src="@{/js/main.js}"></script>
+</body>
+
+</html>
+</body>
+</html>