Преглед на файлове

加载地区和加载小区 跳过登录校验

吴学文 преди 6 години
родител
ревизия
1ad9c3bce5

BIN
.DS_Store


+ 17 - 0
FrontService/src/main/java/com/java110/front/components/RegisterComponent.java

@@ -40,6 +40,23 @@ public class RegisterComponent {
         }
     }
 
+    /**
+     * 用户注册
+     *
+     * @param pd 页面封装数据
+     * @return
+     */
+    public ResponseEntity<String> loadArea(IPageData pd) {
+        ResponseEntity<String> responseEntity = null;
+        try {
+            responseEntity = registerServiceSMOImpl.loadArea(pd);
+        } catch (Exception e) {
+            responseEntity = new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+        } finally {
+            return responseEntity;
+        }
+    }
+
     public ResponseEntity<String> getSysInfo(IPageData pd) {
         return sysServiceSMOImpl.getSysInfo(pd);
     }

+ 3 - 1
FrontService/src/main/java/com/java110/front/configuration/ServiceConfiguration.java

@@ -26,7 +26,9 @@ public class ServiceConfiguration {
         exclusions.append("/app/payment/notify,");//微信支付通知
         exclusions.append("/app/loginWx,");// 登录跳过
         exclusions.append("/app/loginProperty,");// 物业APP登录跳过
-        exclusions.append("/app/loginOwner");// 业主APP登录跳过
+        exclusions.append("/app/loginOwner,");// 业主APP登录跳过
+        exclusions.append("/app/area.listAreas,");// 加载地区
+        exclusions.append("/app/community.listCommunitys,");// 加载小区
         final FilterRegistrationBean registrationBean = new FilterRegistrationBean();
         registrationBean.setFilter(new JwtFilter());
         registrationBean.addUrlPatterns("/");

+ 58 - 0
FrontService/src/main/java/com/java110/front/controller/OwnerAppRegisterController.java

@@ -0,0 +1,58 @@
+package com.java110.front.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.base.controller.BaseController;
+import com.java110.core.context.IPageData;
+import com.java110.core.context.PageData;
+import com.java110.front.smo.common.ICommonGetSMO;
+import com.java110.front.smo.ownerLogin.IOwnerAppLoginSMO;
+import com.java110.front.smo.wxLogin.IWxLoginSMO;
+import com.java110.utils.constant.CommonConstant;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 微信小程序登录处理类
+ */
+@RestController
+@RequestMapping(path = "/app")
+public class OwnerAppRegisterController extends BaseController {
+    private final static Logger logger = LoggerFactory.getLogger(OwnerAppRegisterController.class);
+
+    @Autowired
+    private IOwnerAppLoginSMO ownerAppLoginSMOImpl;
+
+
+
+    /**
+     * 注册业主接口
+     *
+     * @param postInfo
+     * @param request
+     */
+    @RequestMapping(path = "/registerOwner", method = RequestMethod.POST)
+    public ResponseEntity<String> loginOwner(@RequestBody String postInfo, HttpServletRequest request) {
+        /*IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);*/
+        IPageData pd = PageData.newInstance().builder("", "", "", postInfo,
+                "login", "", "", "",
+                request.getHeader("APP_ID"));
+        ResponseEntity<String> responseEntity = ownerAppLoginSMOImpl.doLogin(pd);
+        if(responseEntity.getStatusCode() != HttpStatus.OK){
+            return responseEntity;
+        }
+        JSONObject outParam = JSONObject.parseObject(responseEntity.getBody());
+        pd.setToken(outParam.getString("token"));
+        request.setAttribute(CommonConstant.CONTEXT_PAGE_DATA,pd);
+        return responseEntity;
+    }
+
+}

+ 7 - 0
FrontService/src/main/java/com/java110/front/smo/IRegisterServiceSMO.java

@@ -32,4 +32,11 @@ public interface IRegisterServiceSMO {
      * @return
      */
     public ResponseEntity<String> validate(IPageData pd);
+
+    /**
+     * 加载地区
+     * @param pd 页面请求对象
+     * @return
+     */
+    public ResponseEntity<String> loadArea(IPageData pd);
 }

+ 61 - 44
FrontService/src/main/java/com/java110/front/smo/impl/RegisterServiceSMOImpl.java

@@ -21,9 +21,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
 /**
- *
  * 用户注册业务处理类
- *
+ * <p>
  * Created by wuxw on 2019/3/23.
  */
 @Service("registerServiceSMOImpl")
@@ -34,68 +33,69 @@ public class RegisterServiceSMOImpl extends BaseComponentSMO implements IRegiste
 
     @Autowired
     private RestTemplate restTemplate;
+
     @Override
     public ResponseEntity<String> doRegister(IPageData pd) {
         ResponseEntity<String> responseEntity = null;
 
-        Assert.jsonObjectHaveKey(pd.getReqData(),"username","请求报文格式错误或未包含用户名信息");
-        Assert.jsonObjectHaveKey(pd.getReqData(),"passwd","请求报文格式错误或未包含密码信息");
-        Assert.jsonObjectHaveKey(pd.getReqData(),"repasswd","请求报文格式错误或未包含确认密码信息");
-        Assert.jsonObjectHaveKey(pd.getReqData(),"tel","请求报文格式错误或未包含手机信息信息");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "username", "请求报文格式错误或未包含用户名信息");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "passwd", "请求报文格式错误或未包含密码信息");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "repasswd", "请求报文格式错误或未包含确认密码信息");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "tel", "请求报文格式错误或未包含手机信息信息");
         JSONObject registerInfo = JSONObject.parseObject(pd.getReqData());
 
         //校验密码
-        if(!registerInfo.getString("passwd").equals(registerInfo.getString("repasswd"))){
-            responseEntity = new ResponseEntity<String>("密码和确认密码不一致",HttpStatus.INTERNAL_SERVER_ERROR);
+        if (!registerInfo.getString("passwd").equals(registerInfo.getString("repasswd"))) {
+            responseEntity = new ResponseEntity<String>("密码和确认密码不一致", HttpStatus.INTERNAL_SERVER_ERROR);
             return responseEntity;
         }
 
         //调用 手机验证码
-        responseEntity = this.invokeComponent("validate-tel","validate",pd);
-        if(responseEntity.getStatusCode() != HttpStatus.OK){
+        responseEntity = this.invokeComponent("validate-tel", "validate", pd);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
             return responseEntity;
         }
 
-        responseEntity = this.checkNameAndTelExists(pd,registerInfo.getString("username"),"");
-        if(responseEntity.getStatusCode()!=HttpStatus.OK){
+        responseEntity = this.checkNameAndTelExists(pd, registerInfo.getString("username"), "");
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
             return responseEntity;
         }
 
-        responseEntity = this.checkNameAndTelExists(pd,"",registerInfo.getString("tel"));
-        if(responseEntity.getStatusCode()!=HttpStatus.OK){
+        responseEntity = this.checkNameAndTelExists(pd, "", registerInfo.getString("tel"));
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
             return responseEntity;
         }
 
 
         registerInfo.put("passwd", AuthenticationFactory.passwdMd5(registerInfo.getString("passwd")));
 
-        registerInfo.put("name",registerInfo.getString("username"));
-        registerInfo.put("password",registerInfo.getString("passwd"));
-        responseEntity = this.callCenterService(restTemplate,pd,registerInfo.toJSONString(), ServiceConstant.SERVICE_API_URL+"/api/user.service.register", HttpMethod.POST);
+        registerInfo.put("name", registerInfo.getString("username"));
+        registerInfo.put("password", registerInfo.getString("passwd"));
+        responseEntity = this.callCenterService(restTemplate, pd, registerInfo.toJSONString(), ServiceConstant.SERVICE_API_URL + "/api/user.service.register", HttpMethod.POST);
         return responseEntity;
     }
 
-    private ResponseEntity<String> checkNameAndTelExists(IPageData pd,String name,String tel){
+    private ResponseEntity<String> checkNameAndTelExists(IPageData pd, String name, String tel) {
         ResponseEntity<String> responseEntity = null;
         //校验用户名或手机是否存在
-        responseEntity = this.callCenterService(restTemplate,pd,"",
-                ServiceConstant.SERVICE_API_URL+"/api/check.hasUser.byNameOrTel?name="+name+"&tel="+tel,
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                ServiceConstant.SERVICE_API_URL + "/api/check.hasUser.byNameOrTel?name=" + name + "&tel=" + tel,
                 HttpMethod.GET);
 
-        if(responseEntity.getStatusCode()!=HttpStatus.OK){
-            logger.error("调用后端服务异常:{}",responseEntity);
-            return new ResponseEntity<String>("调用中心服务异常",HttpStatus.INTERNAL_SERVER_ERROR);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            logger.error("调用后端服务异常:{}", responseEntity);
+            return new ResponseEntity<String>("调用中心服务异常", HttpStatus.INTERNAL_SERVER_ERROR);
         }
 
-        Assert.jsonObjectHaveKey(responseEntity.getBody(),"userCount","调用中心服务异常,报文中未包含userCount节点");
+        Assert.jsonObjectHaveKey(responseEntity.getBody(), "userCount", "调用中心服务异常,报文中未包含userCount节点");
 
         JSONObject userInfo = JSONObject.parseObject(responseEntity.getBody());
 
-        if(userInfo.getIntValue("userCount") > 0){
-            return new ResponseEntity<String>(StringUtil.isNullOrNone(name)?"手机号已占用":"用户名已占用",HttpStatus.INTERNAL_SERVER_ERROR);
+        if (userInfo.getIntValue("userCount") > 0) {
+            return new ResponseEntity<String>(StringUtil.isNullOrNone(name) ? "手机号已占用" : "用户名已占用", HttpStatus.INTERNAL_SERVER_ERROR);
         }
 
-        responseEntity = new ResponseEntity<>("成功",HttpStatus.OK);
+        responseEntity = new ResponseEntity<>("成功", HttpStatus.OK);
 
         return responseEntity;
 
@@ -103,35 +103,35 @@ public class RegisterServiceSMOImpl extends BaseComponentSMO implements IRegiste
 
     /**
      * 发送验证码
+     *
      * @param pd
      * @return
      */
     @Override
     public ResponseEntity<String> sendTelMessageCode(IPageData pd) {
 
-        Assert.jsonObjectHaveKey(pd.getReqData(),"tel","请求报文格式错误或未包含手机号信息");
-
+        Assert.jsonObjectHaveKey(pd.getReqData(), "tel", "请求报文格式错误或未包含手机号信息");
 
 
         JSONObject telInfo = JSONObject.parseObject(pd.getReqData());
 
         String verifyCode = AliSendMessageFactory.generateMessageCode();
         ResponseEntity<String> sendMessageResult = null;
-        String verifyStr="演示环境验证码:"+verifyCode;
+        String verifyStr = "演示环境验证码:" + verifyCode;
         try {
-            if("ON".equals(MappingCache.getValue("SMS_SEND_SWITCH"))){
-            //开始发送验证码
-            AliSendMessageFactory.sendMessage(telInfo.getString("tel"),verifyCode);
+            if ("ON".equals(MappingCache.getValue("SMS_SEND_SWITCH"))) {
+                //开始发送验证码
+                AliSendMessageFactory.sendMessage(telInfo.getString("tel"), verifyCode);
 
-                verifyStr ="验证码已下发至您的手机!";
+                verifyStr = "验证码已下发至您的手机!";
             }
             //将验证码存入Redis中
-            CommonCache.setValue(telInfo.getString("tel")+"_validateTel",verifyCode.toLowerCase(),CommonCache.defaultExpireTime);
+            CommonCache.setValue(telInfo.getString("tel") + "_validateTel", verifyCode.toLowerCase(), CommonCache.defaultExpireTime);
 
             sendMessageResult = new ResponseEntity<>(verifyStr, HttpStatus.OK);
 
-        }catch (Exception e){
-            logger.error("生成验证码失败,",e);
+        } catch (Exception e) {
+            logger.error("生成验证码失败,", e);
             sendMessageResult = new ResponseEntity<>("", HttpStatus.INTERNAL_SERVER_ERROR);
         }
         return sendMessageResult;
@@ -140,22 +140,23 @@ public class RegisterServiceSMOImpl extends BaseComponentSMO implements IRegiste
 
     /**
      * 校验验证码
+     *
      * @param pd 页面请求对象
      * @return
      */
-    public ResponseEntity<String> validate(IPageData pd){
+    public ResponseEntity<String> validate(IPageData pd) {
 
-        logger.debug("校验验证码参数:{}",pd.toString());
+        logger.debug("校验验证码参数:{}", pd.toString());
         ResponseEntity<String> verifyResult = null;
-        Assert.jsonObjectHaveKey(pd.getReqData(),"messageCode","请求报文中未包含 验证码"+pd.toString());
-        Assert.jsonObjectHaveKey(pd.getReqData(),"tel","请求报文中未包含 手机号"+pd.toString());
+        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");
+        String code = CommonCache.getValue(telInfo.getString("tel") + "_validateTel");
 
-        if(telInfo.getString("messageCode").toLowerCase().equals(code)){
+        if (telInfo.getString("messageCode").toLowerCase().equals(code)) {
             verifyResult = new ResponseEntity<>("成功", HttpStatus.OK);
-        }else{
+        } else {
             pd.setToken("");
             verifyResult = new ResponseEntity<>("验证码错误", HttpStatus.INTERNAL_SERVER_ERROR);
         }
@@ -163,4 +164,20 @@ public class RegisterServiceSMOImpl extends BaseComponentSMO implements IRegiste
 
         return verifyResult;
     }
+
+    /**
+     * 加载地区
+     *
+     * @param pd 页面请求对象
+     * @return
+     */
+    public ResponseEntity<String> loadArea(IPageData pd) {
+        ResponseEntity responseEntity = null;
+        JSONObject paramObj = JSONObject.parseObject(pd.getReqData());
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                ServiceConstant.SERVICE_API_URL + "/api/area.listAreas?" + super.mapToUrlParam(paramObj),
+                HttpMethod.GET);
+
+        return responseEntity;
+    }
 }

+ 22 - 0
FrontService/src/main/java/com/java110/front/smo/ownerRegister/ownerLogin/IOwnerAppRegisterSMO.java

@@ -0,0 +1,22 @@
+package com.java110.front.smo.ownerRegister.ownerLogin;
+
+import com.java110.core.context.IPageData;
+import com.java110.utils.exception.SMOException;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 组织管理管理服务接口类
+ * <p>
+ * add by wuxw 2019-06-29
+ */
+public interface IOwnerAppRegisterSMO {
+
+    /**
+     * 获取微信回话信息
+     *
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象数据
+     * @throws SMOException 业务代码层
+     */
+    ResponseEntity<String> doLogin(IPageData pd) throws SMOException;
+}

+ 103 - 0
FrontService/src/main/java/com/java110/front/smo/ownerRegister/ownerLogin/impl/OwnerAppRegisterSMOImpl.java

@@ -0,0 +1,103 @@
+package com.java110.front.smo.ownerRegister.ownerLogin.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.context.IPageData;
+import com.java110.core.context.PageData;
+import com.java110.core.factory.AuthenticationFactory;
+import com.java110.front.smo.AppAbstractComponentSMO;
+import com.java110.front.smo.ownerRegister.ownerLogin.IOwnerAppRegisterSMO;
+import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.exception.SMOException;
+import com.java110.utils.util.Assert;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * wx登录
+ */
+@Service("ownerAppRegisterSMOImpl")
+public class OwnerAppRegisterSMOImpl extends AppAbstractComponentSMO implements IOwnerAppRegisterSMO {
+
+    private final static Logger logger = LoggerFactory.getLogger(OwnerAppRegisterSMOImpl.class);
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    public ResponseEntity<String>
+    doLogin(IPageData pd) throws SMOException {
+        return businessProcess(pd);
+    }
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+
+        //super.validatePageInfo(pd);
+
+        Assert.hasKeyAndValue(paramIn, "username", "请求报文中未包含用户名");
+        Assert.hasKeyAndValue(paramIn, "password", "请求报文中未包含密码");
+        //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.LIST_ORG);
+    }
+
+    @Override
+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
+
+        logger.debug("doLogin入参:" + paramIn.toJSONString());
+        ResponseEntity<String> responseEntity;
+
+        JSONObject loginInfo = JSONObject.parseObject(pd.getReqData());
+
+        loginInfo.put("passwd", AuthenticationFactory.passwdMd5(loginInfo.getString("password")));
+        responseEntity = this.callCenterService(restTemplate, pd, loginInfo.toJSONString(), "http://api.java110.com:8008/api/user.service.login", HttpMethod.POST);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+
+        JSONObject userInfo = JSONObject.parseObject(responseEntity.getBody());
+
+        //根据用户查询商户信息
+        String userId = userInfo.getString("userId");
+
+        pd = PageData.newInstance().builder(userId, "", "", pd.getReqData(),
+                "", "", "", "",
+                pd.getAppId());
+        responseEntity = this.callCenterService(restTemplate,pd,"", ServiceConstant.SERVICE_API_URL + "/api/owner.listAppUserBindingOwners?userid="+userId,HttpMethod.GET);
+
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+
+        JSONObject ownerInfo = JSONObject.parseObject(responseEntity.getBody().toString());
+
+        if(ownerInfo.getInteger("total") != 1){
+            responseEntity = new ResponseEntity<>("用户未绑定业主",HttpStatus.BAD_REQUEST);
+            return responseEntity;
+        }
+
+        JSONObject appUser = ownerInfo.getJSONArray("auditAppUserBindingOwners").getJSONObject(0);
+        appUser.put("userId",userId);
+        appUser.put("userName",paramIn.getString("username"));
+        JSONObject paramOut = new JSONObject();
+        paramOut.put("result", 0);
+        paramOut.put("owner", appUser);
+        paramOut.put("token", userInfo.getString("token"));
+        //pd.setToken(JSONObject.parseObject(responseEntity.getBody()).getString("token"));
+
+        return new ResponseEntity<>(paramOut.toJSONString(), HttpStatus.OK);
+    }
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+
+}