Ver código fonte

业主登录服务端开发完成

wuxw 6 anos atrás
pai
commit
2fa1d8e232

+ 52 - 0
AppFrontService/src/main/java/com/java110/app/controller/OwnerAppLoginController.java

@@ -0,0 +1,52 @@
+package com.java110.app.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.app.smo.ownerLogin.IOwnerAppLoginSMO;
+import com.java110.app.smo.propertyLogin.impl.wxLogin.IPropertyAppLoginSMO;
+import com.java110.core.base.controller.BaseController;
+import com.java110.core.context.IPageData;
+import com.java110.core.context.PageData;
+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.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 OwnerAppLoginController extends BaseController {
+    private final static Logger logger = LoggerFactory.getLogger(OwnerAppLoginController.class);
+
+    @Autowired
+    private IOwnerAppLoginSMO ownerAppLoginSMOImpl;
+
+
+    /**
+     * 微信登录接口
+     *
+     * @param postInfo
+     * @param request
+     */
+    @RequestMapping(path = "/loginOwner", 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);
+        JSONObject outParam = JSONObject.parseObject(responseEntity.getBody());
+        pd.setToken(outParam.getString("token"));
+        request.setAttribute(CommonConstant.CONTEXT_PAGE_DATA,pd);
+        return responseEntity;
+    }
+
+}

+ 22 - 0
AppFrontService/src/main/java/com/java110/app/smo/ownerLogin/IOwnerAppLoginSMO.java

@@ -0,0 +1,22 @@
+package com.java110.app.smo.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 IOwnerAppLoginSMO {
+
+    /**
+     * 获取微信回话信息
+     *
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象数据
+     * @throws SMOException 业务代码层
+     */
+    ResponseEntity<String> doLogin(IPageData pd) throws SMOException;
+}

+ 102 - 0
AppFrontService/src/main/java/com/java110/app/smo/ownerLogin/impl/OwnerAppLoginSMOImpl.java

@@ -0,0 +1,102 @@
+package com.java110.app.smo.ownerLogin.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.app.smo.AppAbstractComponentSMO;
+import com.java110.app.smo.ownerLogin.IOwnerAppLoginSMO;
+import com.java110.core.context.IPageData;
+import com.java110.core.context.PageData;
+import com.java110.core.factory.AuthenticationFactory;
+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("ownerAppLoginSMOImpl")
+public class OwnerAppLoginSMOImpl extends AppAbstractComponentSMO implements IOwnerAppLoginSMO {
+
+    private final static Logger logger = LoggerFactory.getLogger(OwnerAppLoginSMOImpl.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);
+
+        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;
+    }
+
+}