| New file |
| | |
| | | package com.java110.acct.api; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.java110.core.base.controller.BaseController; |
| | | import com.java110.core.context.BusinessServiceDataFlow; |
| | | import com.java110.core.factory.DataTransactionFactory; |
| | | import com.java110.acct.smo.IAcctServiceSMO; |
| | | import com.java110.utils.constant.ResponseConstant; |
| | | import com.java110.utils.exception.InitConfigDataException; |
| | | import com.java110.utils.exception.InitDataFlowContextException; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | 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; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 用户服务类 |
| | | * Created by wuxw on 2018/5/14. |
| | | */ |
| | | @RestController |
| | | public class AcctApi extends BaseController { |
| | | |
| | | private static Logger logger = LoggerFactory.getLogger(AcctApi.class); |
| | | |
| | | @Autowired |
| | | IAcctServiceSMO acctServiceSMOImpl; |
| | | |
| | | /** |
| | | * |
| | | * @param request 页面信息封装 |
| | | * @return |
| | | */ |
| | | @RequestMapping(path = "/acctApi/service", method = RequestMethod.GET) |
| | | public String serviceGet(HttpServletRequest request) { |
| | | return DataTransactionFactory.createBusinessResponseJson(ResponseConstant.RESULT_CODE_ERROR, "不支持Get方法请求").toJSONString(); |
| | | } |
| | | |
| | | /** |
| | | * 用户服务统一处理接口 |
| | | * |
| | | * @param orderInfo |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @RequestMapping(path = "/acctApi/service", method = RequestMethod.POST) |
| | | public String servicePost(@RequestBody String orderInfo, HttpServletRequest request) { |
| | | BusinessServiceDataFlow businessServiceDataFlow = null; |
| | | JSONObject responseJson = null; |
| | | try { |
| | | Map<String, String> headers = new HashMap<String, String>(); |
| | | getRequestInfo(request, headers); |
| | | //预校验 |
| | | preValiateOrderInfo(orderInfo); |
| | | businessServiceDataFlow = this.writeDataToDataFlowContext(orderInfo, headers); |
| | | responseJson = acctServiceSMOImpl.service(businessServiceDataFlow); |
| | | } catch (InitDataFlowContextException e) { |
| | | logger.error("请求报文错误,初始化 BusinessServiceDataFlow失败" + orderInfo, e); |
| | | responseJson = DataTransactionFactory.createNoBusinessTypeBusinessResponseJson(orderInfo, ResponseConstant.RESULT_PARAM_ERROR, e.getMessage(), null); |
| | | } catch (InitConfigDataException e) { |
| | | logger.error("请求报文错误,加载配置信息失败" + orderInfo, e); |
| | | responseJson = DataTransactionFactory.createNoBusinessTypeBusinessResponseJson(orderInfo, ResponseConstant.RESULT_PARAM_ERROR, e.getMessage(), null); |
| | | } catch (Exception e) { |
| | | logger.error("请求订单异常", e); |
| | | responseJson = DataTransactionFactory.createBusinessResponseJson(businessServiceDataFlow, ResponseConstant.RESULT_CODE_ERROR, e.getMessage() + e, |
| | | null); |
| | | } finally { |
| | | return responseJson.toJSONString(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 这里预校验,请求报文中不能有 dataFlowId |
| | | * |
| | | * @param orderInfo |
| | | */ |
| | | private void preValiateOrderInfo(String orderInfo) { |
| | | /* if(JSONObject.parseObject(orderInfo).getJSONObject("orders").containsKey("dataFlowId")){ |
| | | throw new BusinessException(ResponseConstant.RESULT_CODE_ERROR,"报文中不能存在dataFlowId节点"); |
| | | }*/ |
| | | } |
| | | |
| | | /** |
| | | * 获取请求信息 |
| | | * |
| | | * @param request |
| | | * @param headers |
| | | * @throws RuntimeException |
| | | */ |
| | | private void getRequestInfo(HttpServletRequest request, Map headers) throws Exception { |
| | | try { |
| | | super.initHeadParam(request, headers); |
| | | super.initUrlParam(request, headers); |
| | | } catch (Exception e) { |
| | | logger.error("加载头信息失败", e); |
| | | throw new InitConfigDataException(ResponseConstant.RESULT_PARAM_ERROR, "加载头信息失败"); |
| | | } |
| | | } |
| | | |
| | | public IAcctServiceSMO getAcctServiceSMOImpl() { |
| | | return acctServiceSMOImpl; |
| | | } |
| | | |
| | | public void setAcctServiceSMOImpl(IAcctServiceSMO acctServiceSMOImpl) { |
| | | this.acctServiceSMOImpl = acctServiceSMOImpl; |
| | | } |
| | | } |