吴学文 лет назад: 7
Родитель
Сommit
03427dbe34

+ 2 - 0
WebService/src/main/java/com/java110/web/components/RegisterComponent.java

@@ -17,6 +17,8 @@ public class RegisterComponent {
 
     @Autowired
     IRegisterServiceSMO registerServiceSMOImpl;
+
+
     /**
      * 用户注册
      * @param pd 页面封装数据

+ 16 - 0
WebService/src/main/java/com/java110/web/components/ValidateTelComponent.java

@@ -34,6 +34,22 @@ public class ValidateTelComponent {
         }
     }
 
+    /**
+     * 校验验证码
+     * @param pd
+     * @return
+     */
+    public ResponseEntity<String> validate(IPageData pd){
+        ResponseEntity<String> responseEntity = null;
+        try{
+            responseEntity =  registerServiceSMOImpl.validate(pd);
+        }catch (Exception e){
+            responseEntity = new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+        }finally {
+            return responseEntity;
+        }
+    }
+
 
     public IRegisterServiceSMO getRegisterServiceSMOImpl() {
         return registerServiceSMOImpl;

+ 53 - 0
WebService/src/main/java/com/java110/web/controller/FlowController.java

@@ -0,0 +1,53 @@
+package com.java110.web.controller;
+
+import com.java110.common.constant.CommonConstant;
+import com.java110.common.util.Assert;
+import com.java110.core.base.controller.BaseController;
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 流程控制类
+ */
+@Controller
+public class FlowController extends BaseController {
+
+    /**
+     * 流程处理方法
+     * @param flowCode 流程编码
+     * @param request 请求对象
+     * @return
+     */
+    @RequestMapping(path="/flow/{flowCode}")
+    public String flow(@PathVariable String flowCode,
+                                       HttpServletRequest request){
+
+        try {
+            IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
+            validateFlowData(flowCode,pd);
+
+        }catch (Throwable e){
+            flowCode = "error";
+        }
+
+
+        return flowCode;
+    }
+
+    /**
+     *
+     * 流程数据校验方法
+     *
+     * @throws RuntimeException
+     */
+    private void validateFlowData(String flowCode,IPageData pd) throws RuntimeException{
+
+        Assert.hasLength(flowCode, "参数错误,未传入流程编码");
+    }
+}

+ 0 - 28
WebService/src/main/java/com/java110/web/controller/LoginController.java

@@ -1,28 +0,0 @@
-package com.java110.web.controller;
-
-import com.java110.core.base.controller.BaseController;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * 登录 控制类
- * Created by wuxw on 2018/5/2.
- */
-@Controller
-public class LoginController extends BaseController {
-
-    private final static Logger logger = LoggerFactory.getLogger(LoginController.class);
-
-
-    @RequestMapping(path = "/login",method = RequestMethod.GET)
-    public String index(HttpServletRequest request){
-        return "login";
-    }
-
-
-}

+ 8 - 0
WebService/src/main/java/com/java110/web/smo/IRegisterServiceSMO.java

@@ -24,4 +24,12 @@ public interface IRegisterServiceSMO {
      * @return
      */
     public ResponseEntity<String> sendTelMessageCode(IPageData pd);
+
+
+    /**
+     * 验证码校验
+     * @param pd 页面请求对象
+     * @return
+     */
+    public ResponseEntity<String> validate(IPageData pd);
 }

+ 26 - 0
WebService/src/main/java/com/java110/web/smo/impl/RegisterServiceSMOImpl.java

@@ -89,4 +89,30 @@ public class RegisterServiceSMOImpl extends BaseComponentSMO implements IRegiste
         return sendMessageResult;
 
     }
+
+    /**
+     * 校验验证码
+     * @param pd 页面请求对象
+     * @return
+     */
+    public ResponseEntity<String> validate(IPageData pd){
+
+        logger.debug("校验验证码参数:{}",pd.toString());
+        ResponseEntity<String> verifyResult = null;
+        Assert.jsonObjectHaveKey(pd.getReqData(),"messageCode","请求报文中未包含 验证码"+pd.toString());
+        Assert.jsonObjectHaveKey(pd.getReqData(),"tel","请求报文中未包含 手机号"+pd.toString());
+        JSONObject telInfo = JSONObject.parseObject(pd.getReqData());
+
+        String code = CommonCache.getValue(telInfo.getString("tel")+"_validateTel");
+
+        if(telInfo.getString("messageCode").toLowerCase().equals(code)){
+            verifyResult = new ResponseEntity<>("成功", HttpStatus.OK);
+        }else{
+            pd.setToken("");
+            verifyResult = new ResponseEntity<>("验证码错误", HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+
+
+        return verifyResult;
+    }
 }

+ 1 - 1
WebService/src/main/resources/components/login/login.html

@@ -16,7 +16,7 @@
 
         <a href="#"><small>忘记密码?</small></a>
         <p class="text-muted text-center"><small>Do not have an account?</small></p>
-        <a class="btn btn-sm btn-white btn-block" href="/users/register">请注册</a>
+        <a class="btn btn-sm btn-white btn-block" href="/flow/register">请注册</a>
     </div>
 
 </div>

+ 1 - 1
WebService/src/main/resources/components/nav/nav.html

@@ -40,7 +40,7 @@
 
 
         <li>
-            <a href="login.html">
+            <a href="/flow/login">
                 <i class="fa fa-sign-out"></i> 退出
             </a>
         </li>

+ 3 - 3
WebService/src/main/resources/components/register/register.html

@@ -14,11 +14,11 @@
         <div class="form-group">
             <input  name="repasswd" v-model="registerInfo.repasswd" type="password" class="form-control" placeholder="确认密码" required="">
         </div>
-        <vc:create name="tel"></vc:create>
-        <button type="submit" v-on:click="onRegister()" class="btn btn-primary block full-width m-b">注册</button>
+        <vc:create name="validate-tel"></vc:create>
+        <button type="submit" v-on:click="doRegister()" class="btn btn-primary block full-width m-b">注册</button>
 
         <p class="text-muted text-center"><small>已有账户?</small></p>
-        <a class="btn btn-sm btn-white btn-block" href="/users/login">登录</a>
+        <a class="btn btn-sm btn-white btn-block" href="/flow/login">登录</a>
     </div>
 
 </div>

+ 4 - 4
WebService/src/main/resources/components/register/register.js

@@ -13,15 +13,15 @@
         },
         _initEvent:function(){
              vc.component.$on('errorInfoEvent',function(_errorInfo){
-                    vc.component.loginInfo.errorInfo = _errorInfo;
+                    vc.component.registerInfo.errorInfo = _errorInfo;
                     console.log('errorInfoEvent 事件被监听',_errorInfo)
                 });
 
-             vc.component.$on('validate_code_component_param_change_event',function(params){
+             vc.component.$on('validate_tel_change_event',function(params){
                          for(var tmpAttr in params){
-                             vc.component.loginInfo[tmpAttr] = params[tmpAttr];
+                             vc.component.registerInfo[tmpAttr] = params[tmpAttr];
                          }
-                         console.log('errorInfoEvent 事件被监听',params)
+                         console.log('validate_tel_component_param_change_event 事件被监听',params)
                      });
         },
         methods:{

+ 2 - 2
WebService/src/main/resources/components/validate-code/validate-code.js

@@ -38,8 +38,8 @@
                                     }
                                     vc.component.$emit('errorInfoEvent',json);
                                  },function(errInfo,error){
-                                    console.log('请求失败处理');
-                                    vc.component.errorInfo = errInfo;
+                                    console.log('请求失败处理',errInfo,error);
+                                    vc.component.$emit('errorInfoEvent',errInfo);
                                  });
 
                 }

+ 1 - 1
WebService/src/main/resources/components/validate-tel/validate-tel.html

@@ -1,6 +1,6 @@
 <div component="validate-tel">
     <div class="form-group">
-        <input  name="tel" v-model="validateParam.tel" type="tel" class="form-control" placeholder="请输入手机号码" required="">
+        <input  name="tel" v-model="validateParam.tel" type="text" class="form-control" placeholder="请输入手机号码" required="">
     </div>
     <div class="form-group row" >
         <div class="col-sm-8 ">

+ 19 - 14
WebService/src/main/resources/components/validate-tel/validate-tel.js

@@ -16,23 +16,28 @@
 
             },
             watch: {
-                tel:function(){
-                    vc.component.$emit('validate_tel_component_param_change_event',vc.component.validateParam);
-                },
-                messageCode:function(){
-                    vc.component.$emit('validate_tel_component_param_change_event',vc.component.validateParam);
-                }
+                validateParam:{
+                    deep: true,
+                    handler:function(){
+                        console.log('通知号码信息',vc.component.validateParam.tel);
+                        vc.component.$emit('validate_tel_change_event',vc.component.validateParam);
+                    }
+                 }
+//                messageCode:function(){
+//                    vc.component.$emit('validate_tel_change_event',vc.component.validateParam);
+//                }
             },
             methods:{
                 sendTelMessageCode(){
                     var param = {
-                        params:{
-                            _uId:'123'
-                        }
+                            tel:vc.component.validateParam.tel,
                     };
-                    console.log("validate-tel sendTelMessageCode",param);
-                    vc.http.get('validate-tel','sendTelMessageCode',
-                                 param,
+                    console.log("validate-tel sendTelMessageCode",JSON.stringify(param));
+                    vc.http.post('validate-tel','sendTelMessageCode',
+                                 JSON.stringify(param),
+                                 {
+                                     emulateJSON:true
+                                  },
                                  function(json,res){
                                     //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
                                     if(res.status == 200){
@@ -41,8 +46,8 @@
                                     }
                                     vc.component.$emit('errorInfoEvent',json);
                                  },function(errInfo,error){
-                                    console.log('请求失败处理');
-                                    vc.component.errorInfo = errInfo;
+                                    console.log('请求失败处理',errInfo,error);
+                                    vc.component.$emit('errorInfoEvent',errInfo);
                                  });
 
                 }

+ 1 - 1
WebService/src/main/resources/views/register.html

@@ -17,7 +17,7 @@
 
 <body class="gray-bg">
 <div id="component" class="middle-box text-center loginscreen animated fadeInDown">
-    <vc:create name="login"></vc:create>
+    <vc:create name="register"></vc:create>
 
 </div>
 

+ 5 - 0
java110-core/src/main/java/com/java110/core/base/smo/BaseServiceSMO.java

@@ -17,6 +17,8 @@ import com.java110.core.factory.AuthenticationFactory;
 import com.java110.core.factory.DataFlowFactory;
 import com.java110.feign.base.IPrimaryKeyService;
 import org.apache.commons.lang3.math.NumberUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.http.*;
 import org.springframework.web.client.HttpStatusCodeException;
 import org.springframework.web.client.RestTemplate;
@@ -32,6 +34,7 @@ import java.util.Map;
  */
 public class BaseServiceSMO extends AppBase {
 
+    private final static Logger logger = LoggerFactory.getLogger(BaseServiceSMO.class);
 
     /**
      * 主键生成
@@ -74,6 +77,7 @@ public class BaseServiceSMO extends AppBase {
         header.add(CommonConstant.HTTP_REQ_TIME.toLowerCase(), pd.getRequestTime());
         header.add(CommonConstant.HTTP_SIGN.toLowerCase(), "");
         HttpEntity<String> httpEntity = new HttpEntity<String>(param, header);
+        logger.debug("请求中心服务信息,{}",httpEntity);
         try{
             responseEntity = restTemplate.exchange(url, httpMethod, httpEntity, String.class);
         }catch (HttpStatusCodeException e){ //这里spring 框架 在4XX 或 5XX 时抛出 HttpServerErrorException 异常,需要重新封装一下
@@ -81,6 +85,7 @@ public class BaseServiceSMO extends AppBase {
         }catch (Exception e){
             responseEntity = new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
         }finally {
+            logger.debug("请求中心服务信息,{}",responseEntity);
             return responseEntity;
         }
 

+ 29 - 9
java110-service/src/main/java/com/java110/service/aop/PageProcessAspect.java

@@ -100,13 +100,19 @@ public class PageProcessAspect {
         String url = request.getRequestURL()!=null?request.getRequestURL().toString():"";
         String componentCode = "";
         String componentMethod = "";
-        if(url.contains("callComponent")){
+        if(url.contains("callComponent")){ //组件处理
             String []urls = url.split("/");
 
             if(urls.length == 6){
                 componentCode = urls[4];
                 componentMethod = urls[5];
             }
+        }else if(url.contains("flow")){ //流程处理
+            String []urls = url.split("/");
+
+            if(urls.length == 5){
+                componentCode = urls[4];
+            }
         }
 
          pd = PageData.newInstance().builder(userId,this.getToken(request),reqData,componentCode,componentMethod,url,sessionId);
@@ -137,14 +143,8 @@ public class PageProcessAspect {
             return ;
         }
 
-        if(!StringUtil.isNullOrNone(pd.getToken())) {
-            HttpServletResponse response = attributes.getResponse();
-            Cookie cookie = new Cookie(CommonConstant.COOKIE_AUTH_TOKEN, pd.getToken());
-            cookie.setHttpOnly(true);
-            cookie.setPath("/");
-            response.addCookie(cookie);
-            response.flushBuffer();
-        }
+        //写cookies信息
+        writeCookieInfo(pd,attributes);
 
     }
 
@@ -178,4 +178,24 @@ public class PageProcessAspect {
         }
         return token;
     }
+
+
+    /**
+     * 写cookie 信息
+     * @param pd 页面封装信息
+     * @param attributes
+     * @throws IOException
+     */
+    private void writeCookieInfo(IPageData pd,ServletRequestAttributes attributes) throws IOException {
+        // 这里目前只写到组件级别,如果需要 写成方法级别
+        if(!StringUtil.isNullOrNone(pd.getToken()) && "login".equals(pd.getComponentCode())) {
+            HttpServletResponse response = attributes.getResponse();
+            Cookie cookie = new Cookie(CommonConstant.COOKIE_AUTH_TOKEN, pd.getToken());
+            cookie.setHttpOnly(true);
+            cookie.setPath("/");
+            response.addCookie(cookie);
+            response.flushBuffer();
+        }
+
+    }
 }

+ 2 - 2
java110-service/src/main/java/com/java110/service/filter/JwtFilter.java

@@ -55,11 +55,11 @@ public class JwtFilter extends GenericFilterBean {
                         DataTransactionFactory.pageResponseJson(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR,e.getMessage(),null),
                         "UTF-8");
             }else{
-                response.sendRedirect("/login");
+                response.sendRedirect("/flow/login");
             }
 
         }catch (Exception e){
-            response.sendRedirect("/login");
+            response.sendRedirect("/flow/login");
         }
     }