Api/src/main/java/com/java110/api/listener/complaint/ListComplaintsListener.java
@@ -5,6 +5,7 @@ import com.java110.core.annotation.Java110Listener; import com.java110.core.context.DataFlowContext; import com.java110.core.smo.complaint.IComplaintInnerServiceSMO; import com.java110.core.smo.room.IRoomInnerServiceSMO; import com.java110.dto.complaint.ComplaintDto; import com.java110.event.service.api.ServiceDataFlowEvent; import com.java110.utils.constant.ServiceCodeComplaintConstant; @@ -29,6 +30,9 @@ @Autowired private IComplaintInnerServiceSMO complaintInnerServiceSMOImpl; @Autowired private IRoomInnerServiceSMO roomInnerServiceSMOImpl; @Override public String getServiceCode() { @@ -87,4 +91,5 @@ context.setResponseEntity(responseEntity); } } AppFrontService/src/main/java/com/java110/app/controller/PropertyAppLoginController.java
New file @@ -0,0 +1,59 @@ package com.java110.app.controller; import com.alibaba.fastjson.JSONObject; import com.java110.app.smo.propertyLogin.impl.wxLogin.IPropertyAppLoginSMO; import com.java110.app.smo.wxLogin.IWxLoginSMO; import com.java110.core.base.controller.BaseController; import com.java110.core.context.IPageData; import com.java110.core.context.PageData; 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 PropertyAppLoginController extends BaseController { private final static Logger logger = LoggerFactory.getLogger(PropertyAppLoginController.class); @Autowired private IPropertyAppLoginSMO propertyAppLoginSMOImpl; /** * 微信登录接口 * * @param postInfo * @param request */ @RequestMapping(path = "/loginProperty", method = RequestMethod.POST) public ResponseEntity<String> loginProperty(@RequestBody String postInfo, HttpServletRequest request) { ResponseEntity<String> responseEntity = null; JSONObject postObj = JSONObject.parseObject(postInfo); String code = JSONObject.parseObject(postInfo).getString("code"); JSONObject userInfo = postObj.getJSONObject("userInfo"); if (code == null || userInfo == null) { logger.error("code is null"); responseEntity = new ResponseEntity<>("code is null", HttpStatus.BAD_REQUEST); return responseEntity; } /*IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);*/ IPageData pd = PageData.newInstance().builder("", "","", postInfo, "", "", "", "", request.getHeader("APP_ID")); return propertyAppLoginSMOImpl.doLogin(pd); } } AppFrontService/src/main/java/com/java110/app/smo/propertyLogin/impl/wxLogin/IPropertyAppLoginSMO.java
New file @@ -0,0 +1,22 @@ package com.java110.app.smo.propertyLogin.impl.wxLogin; 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 IPropertyAppLoginSMO { /** * 获取微信回话信息 * * @param pd 页面数据封装 * @return ResponseEntity 对象数据 * @throws SMOException 业务代码层 */ ResponseEntity<String> doLogin(IPageData pd) throws SMOException; } AppFrontService/src/main/java/com/java110/app/smo/propertyLogin/impl/wxLogin/impl/PropertyAppLoginSMOImpl.java
New file @@ -0,0 +1,112 @@ package com.java110.app.smo.propertyLogin.impl.wxLogin.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.java110.app.properties.WechatAuthProperties; import com.java110.app.smo.AppAbstractComponentSMO; import com.java110.app.smo.propertyLogin.impl.wxLogin.IPropertyAppLoginSMO; import com.java110.core.context.IPageData; import com.java110.core.context.PageData; import com.java110.core.factory.AuthenticationFactory; import com.java110.utils.cache.MappingCache; import com.java110.utils.constant.CommonConstant; import com.java110.utils.constant.MappingConstant; 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; import java.util.HashMap; import java.util.Map; /** * wx登录 */ @Service("propertyAppLoginSMOImpl") public class PropertyAppLoginSMOImpl extends AppAbstractComponentSMO implements IPropertyAppLoginSMO { private final static Logger logger = LoggerFactory.getLogger(PropertyAppLoginSMOImpl.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, "code", "请求报文中未包含code信息"); //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.LIST_ORG); } @Override protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) { logger.debug("doLogin入参:" + paramIn.toJSONString()); ResponseEntity<String> responseEntity; Assert.jsonObjectHaveKey(pd.getReqData(),"username","请求报文格式错误或未包含username信息"); JSONObject loginInfo = JSONObject.parseObject(pd.getReqData()); //调用 验证码组件验证码是否正确 responseEntity = this.invokeComponent("validate-code","validate",pd); if(responseEntity.getStatusCode() != HttpStatus.OK){ return responseEntity; } loginInfo.put("passwd", AuthenticationFactory.passwdMd5(loginInfo.getString("passwd"))); 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 = super.getStoreInfo(pd, restTemplate); if(responseEntity.getStatusCode() != HttpStatus.OK){ return responseEntity; } JSONObject storeInfo = JSONObject.parseObject(responseEntity.getBody().toString()); Assert.jsonObjectHaveKey(storeInfo, "storeId", "根据员工未查到商户信息"); Assert.jsonObjectHaveKey(storeInfo, "storeTypeCd", "根据员工未查到商户类型信息"); userInfo.put("storeId",storeInfo.getString("storeId")); userInfo.put("storeTypeCd",storeInfo.getString("storeTypeCd")); JSONObject paramOut = new JSONObject(); paramOut.put("result", 0); paramOut.put("userInfo", userInfo); paramOut.put("token", userInfo.getString("token")); pd.setToken(JSONObject.parseObject(responseEntity.getBody()).getString("token")); return responseEntity; } public RestTemplate getRestTemplate() { return restTemplate; } public void setRestTemplate(RestTemplate restTemplate) { this.restTemplate = restTemplate; } } java110-front/src/main/java/com/java110/front/configuration/ServiceConfiguration.java
@@ -24,7 +24,8 @@ exclusions.append("/callComponent/download/getFile/file,");//放开 下载图片也不需要登录 exclusions.append("/callComponent/download/getFile/fileByObjId,");//放开 下载图片也不需要登录 exclusions.append("/app/payment/notify,");//微信支付通知 exclusions.append("/app/loginWx");// 登录跳过 exclusions.append("/app/loginWx,");// 登录跳过 exclusions.append("/app/loginProperty");// 物业APP登录跳过 final FilterRegistrationBean registrationBean = new FilterRegistrationBean(); registrationBean.setFilter(new JwtFilter()); registrationBean.addUrlPatterns("/");