java接口对接——别人调用我们接口获取数据,我们需要在我们系统中开发几个接口,给对方接口规范文档,包括访问我们的接口地址,以及入参名称和格式,还有我们的返回的状态的情况,

接口代码:

package com.xx.xxx.yzyhentity.action;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;import org.atmosphere.plugin.redis.StringUtil;
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 com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xxx.basic.XXXproject.XXXprojectmaterial.domain.XXXProjectMaterial;
import com.xxx.common.util.JsonUtils;
import com.xxx.core.xxxFrameDsManager;
import com.xxx.core.dao.CommonDao;
import com.xxx.core.grammar.Record;
import com.xxx.database.jdbc.config.SplitTableConfig;
import com.xxx.frame.service.attach.entity.FrameAttachInfo;
import com.xxx.frame.service.metadata.code.api.ICodeItemsService;
import com.xxx.frame.service.metadata.code.entity.CodeItems;
import com.xxx.frame.service.metadata.sharding.util.ShardingUtil;
import com.xxx.ycsrh.api.XXXBkaccFeedback;@RestController
@RequestMapping("bkacc")
public class RestfulToSzzwzx
{@Autowiredprivate ICodeItemsService iCodeItemsService;/*** 对方获取股东信息接口* @param param* @return* @exception/throws [违例类型] [违例说明]* @see [类、类#方法、类#成员]*/@SuppressWarnings("unused")@RequestMapping(value = "/getSZzwzxOpenShareHolders", method = RequestMethod.POST)public String getSZzwzxOpenShareHolders(@RequestBody String param) {//返回JSON值JSONObject userareaJson = new JSONObject();String result = "";try {xxxFrameDsManager.begin(null);// 参数转化为json对象JSONObject jsonObject = (JSONObject) JSONObject.parse(param);// 时间格式化SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// token验证String token = jsonObject.getString("token");if (GXConstant.checkToken(token)) {JSONObject params = (JSONObject) jsonObject.get("params");// 业务标识(与开户申请时推送的ywguid一致)String ywguid = params.getString("ywguid");// 获取股东信息列表
//                List<Record> listGD = iShareform.getGDTableInfo(ywguid);List<Record> listGD = null;if (listGD != null && listGD.size() > 0) {JSONArray jsonArray = new JSONArray();for (Record rec : listGD) {JSONObject gdJson = new JSONObject();// 股东姓名gdJson.put("shareholdernmae", rec.get("Ctrl1"));// 证件类型String idtype = rec.get("Ctrl2"); if(StringUtil.isNotBlank(idtype)){CodeItems codeItems = iCodeItemsService.getCodeItemByCodeName("内资企业身份证件类型", idtype);if(codeItems!=null && StringUtil.isNotBlank(codeItems.getDmAbr1())){ gdJson.put("idtype", codeItems.getDmAbr1());}else{gdJson.put("idtype", idtype); } }// 证件号码 gdJson.put("idno", rec.get("Ctrl3"));// 出资时间gdJson.put("contributivedate", sdf2.format(rec.get("Ctrl4")));// 出资方式gdJson.put("contributivetype", rec.get("Ctrl9"));// 认缴出资额gdJson.put("contributivenum", rec.get("Ctrl5"));// 认缴出资比例gdJson.put("contributivepercent", rec.get("Ctrl7"));jsonArray.add(gdJson);userareaJson.put("userarea", jsonArray);}result = JsonUtils.zwdtRestReturn("1", "获取股东信息接口调用成功!", userareaJson);} else {result = JsonUtils.zwdtRestReturn("0", "接口调用成功,但未查到相关股东数据信息!", userareaJson);}} else {result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:token验证失败!", userareaJson);}}catch (Exception e) {e.printStackTrace();xxxFrameDsManager.rollback();result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:" + e.toString(), userareaJson);}finally {xxxFrameDsManager.close();}return result;}/***  对方获取开户申请材料接口*  @param param*  @return    * @exception/throws [违例类型] [违例说明]* @see [类、类#方法、类#成员]*/@RequestMapping(value = "/getSZzwzxOpenAcountMaterials", method = RequestMethod.POST)public String getSZzwzxOpenAcountMaterials(@RequestBody String param) {// 返回JSON值JSONObject userareaJson = new JSONObject();// 材料内sonJSONObject materialJson = new JSONObject();String result = "";try {xxxFrameDsManager.begin(null);// 参数转化为json对象JSONObject jsonObject = (JSONObject) JSONObject.parse(param);// token验证String token = jsonObject.getString("token");if (GXConstant.checkToken(token)) {boolean flag = false;JSONObject params = (JSONObject) jsonObject.get("params");JSONArray materialsArray = new JSONArray();// 业务标识(与开户申请时推送的ywguid一致)String ywguid = params.getString("ywguid");if (StringUtil.isNotBlank(ywguid)) {// 获取流程提交得材料SplitTableConfig conf = ShardingUtil.getSplitTableConfig("XXX_project_material");CommonDao fbMaterialDao = CommonDao.getInstance(conf);String sql = "SELECT * FROM XXX_project_material WHERE PROJECTGUID='"+ywguid+"' AND status >10 ";List<XXXProjectMaterial>  projectMaterialList = new ArrayList<XXXProjectMaterial>();projectMaterialList = fbMaterialDao.findList(sql, XXXProjectMaterial.class);if(projectMaterialList != null && projectMaterialList.size()>0){for(XXXProjectMaterial XXXProjectMaterial : projectMaterialList){// 获取流程提交得材料附件String sql2 = "SELECT * FROM frame_attachinfo WHERE CLIENGGUID = '"+XXXProjectMaterial.getCliengguid()+"';";List<FrameAttachInfo> attachInfoList = CommonDao.getInstance().findList(sql2, FrameAttachInfo.class);if (attachInfoList != null && attachInfoList.size() > 0) {// 材料内JsonJSONObject fileinfoJson = new JSONObject();fileinfoJson.put("materialname", XXXProjectMaterial.getTaskmaterial());fileinfoJson.put("filesource", "窗口上传");JSONArray jsonArray = new JSONArray();for (FrameAttachInfo attachinfo : attachInfoList) {JSONObject certJson = new JSONObject();// 附件下载地址String loadUrl = "http://xxx.xx.xx.cn/xxxx/xxxx/rest/pages/basic/attach/attachAction/getContent?attachGuid="+ attachinfo.getAttachGuid() + "&isCommondto=true";// 材料名称certJson.put("filename", attachinfo.getAttachFileName());// 材料内容certJson.put("filecontent", loadUrl);jsonArray.add(certJson);}fileinfoJson.put("fileinfos", jsonArray);materialsArray.add(fileinfoJson);flag = true;}}}materialJson.put("materials", materialsArray);userareaJson.put("userarea", materialJson);if (flag) {result = JsonUtils.zwdtRestReturn("1", "获取申报材料接口调用成功!", userareaJson);} else {result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:未查到相关申报材料数据信息!", userareaJson);}} else {result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:未查到相关办件数据信息!", userareaJson);}}else {result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:token验证失败!", userareaJson);}}catch (Exception e) {e.printStackTrace();xxxFrameDsManager.rollback();result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:" + e.toString(), userareaJson);}finally {xxxFrameDsManager.close();}return result;}/***  录入对方返回得银行开户反馈信息*  @param param*  @return    */@RequestMapping(value = "/pushSZzwzxOpenAcountResult", method = RequestMethod.POST)public String pushSZzwzxOpenAcountResult(@RequestBody String param) {String result = "";try {xxxFrameDsManager.begin(null);// 参数转化为json对象JSONObject jsonObject = (JSONObject) JSONObject.parse(param);//时间格式化//SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//token验证String token = jsonObject.getString("token");if (GXConstant.checkToken(token)) { JSONObject params = (JSONObject) jsonObject.get("params");// 业务标识(与开户申请时推送的ywguid一致)String ywguid = params.getString("ywguid");// 银行名称String bankname = params.getString("bankname");// 银行编号String bankno = params.getString("bankno");// 账户名称String accountname = params.getString("accountname");// 账号String accountnum = params.getString("accountnum");// 开户日期Date accountdate = params.getDate("accountdate");// 是否同意开户String isallow = params.getString("isallow");// 银行开户审核意见String bankopnion = params.getString("bankopnion");// 商业银行开户审核时间Date bankopniondate = params.getDate("bankopniondate");String sql = "SELECT * FROM XXX_BKACC_FEEDBACK WHERE YWGUID ='"+ywguid+"' ";XXXBkaccFeedback XXXBkaccFeedback = CommonDao.getInstance().find(sql, XXXBkaccFeedback.class);int flag = 1;if(XXXBkaccFeedback == null){XXXBkaccFeedback = new XXXBkaccFeedback();XXXBkaccFeedback.setRowguid(UUID.randomUUID().toString());XXXBkaccFeedback.setOperatedate(new Date());XXXBkaccFeedback.setYwguid(ywguid);flag = 0;}if(StringUtil.isNotBlank(bankno)){XXXBkaccFeedback.setBankno(bankno);}else{return result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:银行编号(bankno)为空!", ""); }if(StringUtil.isNotBlank(bankname)){XXXBkaccFeedback.setBankname(bankname);} if(StringUtil.isNotBlank(accountname)){XXXBkaccFeedback.setAccountname(accountname);} if(StringUtil.isNotBlank(accountnum)){XXXBkaccFeedback.setAccountnum(accountnum);}  if(StringUtil.isNotBlank(accountdate)){XXXBkaccFeedback.setAccountdate(accountdate);}/*else{return result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:开户日期(accountdate)为空!", ""); }*/if(StringUtil.isNotBlank(isallow)){XXXBkaccFeedback.setIsalllow(isallow);}else{return result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:是否同意开户(isallow)为空!", ""); }if(StringUtil.isNotBlank(bankopnion)){XXXBkaccFeedback.setBankopinion(bankopnion);}else{return result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:银行开户审核意见(bankopnion)为空!", ""); }if(StringUtil.isNotBlank(bankopniondate)){XXXBkaccFeedback.setBankopniondate(bankopniondate);}if(flag == 0){CommonDao.getInstance().insert(XXXBkaccFeedback);} else {CommonDao.getInstance().update(XXXBkaccFeedback);}result = JsonUtils.zwdtRestReturn("1", "接口调用成功,反馈信息已录入!", "");} else {return result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:token验证失败!", "");}}catch (Exception e) {e.printStackTrace();xxxFrameDsManager.rollback();result = JsonUtils.zwdtRestReturn("0", "接口调用失败,原因是:" + e.toString(), "");}finally {xxxFrameDsManager.close();} return result;}}

给对方的接口地址就是 域名+工程名+rest+类注解+方法注解,我们系统运行着就可以了,给对方调用,开发过程中需要两边联调,可以用postman等工具进行来回接口的调用和数据的互相推送调试完成即可;

转载于:https://www.cnblogs.com/wmqiang/p/10500769.html

java接口对接——别人调用我们接口获取数据相关推荐

  1. 前端js调用后端API获取数据的三种方法(2022.7.25)

    前端js调用后台API获取数据的三种方法(2022.7.25) 前言 需求分析 一个Get实例 浏览器请求 SoapUI软件请求 一个Post实例 浏览器请求 SoapUI软件请求 1.Http简介( ...

  2. 如何防止app接口被别人调用

    app开发的时候,如何保护app的接口呢? 用https是我想到的办法,但是不知道怎么实现,所以就考虑用token,虽然不是绝对有效,但是能防止一般的用户来攻击,高手非要攻击,只能报警了吧. toke ...

  3. java百度天气接口解析_Java调用天气接口(百度天气)解析返回的JSON数据

    简介:本文详细讲述了通过Java调用百度天气接口的方法,取得返回的JSON格式的数据,并且通过第三方包解析JSON格式的数据. 通过百度天气API调用网络编程接口接收返回的JSON格式的数据. 关于百 ...

  4. JAVA使用JCO实现调用SAP接口方法

    一.配置连接 (1)第一种连接配置 1.根据操作系统将sapjco3.dll文件放入C:\Windows\System32目录:  2.在项目中引入sapjco3.jar包:  3.创建Display ...

  5. java用axis方式调用webservice接口

    最近需要使用webservice接口,所以总结了一下全过程,希望能够对大家有所帮助. 开发使用的项目框架是ssm框架,tomcat服务器. 首先我们会拿到一个调用webservice接口的网址,类似这 ...

  6. ajax对接接口属性,ajax调用restful接口

    ajax调用restful接口 内容精选 换一换 ROMA API提供了API服务能力,通过API服务把后端服务封装成标准RESTful格式API,并开放给其他用户使用.目前支持三种创建服务方式:创建 ...

  7. Java,Axis方式调用WebService接口,支持多参数

    package com.demo.modules.si.util;import org.apache.axis.client.Call; import javax.xml.rpc.ParameterM ...

  8. 2022年新浪股票接口更新需要加Referer才能获取数据, java获取新浪股票数据 http://hq.sinajs.cn

    新浪股票 2022年更新后 java获取数据 引用 <dependency><groupId>cn.hutool</groupId><artifactId&g ...

  9. 使用cxf发布webservice接口,以及调用webservice接口

    一.cxf发布webservice接口 添加maven依赖 <dependency><groupId>org.apache.cxf</groupId><art ...

最新文章

  1. ArrayList使用方法
  2. 强力攻城狮的职位要求...
  3. CMS :内容管理系统
  4. 为什么用python画图_为什么使用Matplotlib绘图太慢?
  5. 5G 套餐最快本月开售;谷歌被指骗取人脸数据;Calibre 4.0 发布 | 极客头条
  6. 各种安装教程---(自用)
  7. d630 无线驱动 linux,DELL D630安装CentOS6的无线网卡驱动
  8. 云栖独栋别墅_绿野云溪花海独栋别墅
  9. 紫杉醇人血清白蛋白纳米粒PTX-HSA|阿霉素卵清白蛋白纳米粒DOX-OVA|顺铂小鼠血清白蛋白纳米粒CDDP-MSA(试剂)
  10. 【社区图书馆】一年一度世界读书日正当时!
  11. word 插入分隔符实现章节单独编页
  12. 报错 No module named 'email.utils'; 'email' is not a package解决方法
  13. java怎么编写嗖嗖手机_JAVA项目-嗖嗖移动
  14. 强大的图像查看器:EdgeView mac中文
  15. moon服务器 zerotier_如何建zerotier moon服务器
  16. MySQL:limit分页公式、总页数公式
  17. AUTOJS利用百度OCR识别找字点击 详细代码
  18. 微信小程序点击时如何获取当前id
  19. 数美科技CEO唐会军获聘中国演出行业协会第二届内容评议委员会专家
  20. 4G网关8305LN远程监控西门子触摸屏SMART 700IE ZLAN8305LN应用

热门文章

  1. JavaScript-参数
  2. 使用vue-cli来搭建vue项目
  3. 【计算机网络笔记】数据链路层:点对点协议PPP
  4. X264 输出的统计值的含义(X264 Stats Output)
  5. webSphere报错:Error 500: javax.servlet.ServletException: SRVE0207E: Uncaught initialization
  6. Maven打jar包的三种方式
  7. MyBatis动态SQL的List传值错误
  8. html5动画测试题,Html5+js测试题
  9. 【服务器】【阿里云】免费升级HTTP为HTTPS
  10. 安卓bmi项目_Android自定义View实现BMI指数条