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
{ @Autowired
private 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();
// 材料内son
JSONObject 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) {
// 材料内Json
JSONObject 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等工具进行来回接口的调用和数据的互相推送调试完成即可;

java接口对接——别人调用我们接口获取数据的更多相关文章

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

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

  2. asp.net使用wsdl文件调用接口,以及调用SSL接口报错“根据验证过程 远程证书无效”的处理

    1.调用wsdl接口,首先需要将wsdl文件转换为cs文件: 进入VS 开发人员命令提示行,输入如下命令: c:/Program Files/Microsoft Visual Studio 8/VC& ...

  3. 【Django+Element UI】使用一个接口文件,搞定分页获取数据,模糊查询后分页获取数据

    1:序列化获取数据的接口设计 1:分页获取序列化数据 2:是个能传参数的接口 class Society(APIView): def post(self, request): keywords = s ...

  4. uni-app如何解决在for循环里调用异步请求获取数据顺序混乱问题?

    总结/朱季谦 先前有一次做uni-app的js接口对接时,遇到过这样的情况,在for循环里,调用一个异步请求时,返回来的值顺序是乱的,因此,在以下的代码里,push到数组里的值,每次的顺序可能都是不一 ...

  5. 【Java】模拟登录教务网并获取数据

    本文章仅做技术交流演示学习,请勿用于违法操作! 前期准备 首先我们需要到要模拟登录的网页,进行抓包操作. 使用Chrome浏览器打开系统的登录页面,按F12打开开发者工具 切换到Network选项卡 ...

  6. 页面单击按钮弹出modaldialog然后调用ajax处理程序获取数据,给父级页面控件赋值

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="RefTopicList.asp ...

  7. 根据URL获取参数值得出json结果集,对外给一个接口让别人调用

    背景:测试接口的时候,经常都是后端get\post请求直接返回json结果集,很想知道实现方式,虽然心中也大概了解如何实现,但还不如自己来一遍踏实! 先来看一下结果吧: 以下对一个web的get接口进 ...

  8. java如何写接口给别人调用

    参考:https://blog.csdn.net/greatkendy123/article/details/52818466 java web开发(二) 接口开发

  9. java微信小程序调用支付接口(转)

    简介:微信小程序支付这里的坑还是有的,所以提醒各位在编写的一定要注意!!! 1.首先呢,你需要准备openid,appid,还有申请微信支付后要设置一个32位的密钥,需要先生成一个sign,得到pre ...

随机推荐

  1. Spark2 SQL configuration参数配置

    查看当前环境SQL参数的配置 spark.sql("SET -v") key value spark.sql.hive.version 1.2.1 spark.sql.source ...

  2. 2018牛客网暑期ACM多校训练营(第一场) D - Two Graphs - [无向图同构]

    题目链接:https://www.nowcoder.com/acm/contest/139/D 题目描述 Two undirected simple graphs  and  where  are i ...

  3. codeforces 779D - String Game

    time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standa ...

  4. 采用jquery同django实现ajax通信

    在网页访问中通过HTTP协议中的get/post文件发送数据或请求.在浏览器中输入url后,浏览器就会帮助我们完成请求的发送和返回,并刷新更新界面.但是,如果我们不想更新界面,仅仅是发送一个get/p ...

  5. Reading table information for completion of table and column names

    mysql> use ad_detail_page;Reading table information for completion of table and column namesYou c ...

  6. Python面试基础篇

    1. 为什什么学习Python? Life is short, You need Python 2. 通过什什么途径学习的Python? pass 3. Python和Java.PHP.C.C#.C+ ...

  7. Windows下搭建Git服务器各种问题汇总(一)

    **************************************************************************************************** ...

  8. 借用HTML5 插入视频。音频

    HTML5 规定了一种通过 video 元素来包含视频的标准方法. 插入视频 <video width="320" height="240" contro ...

  9. Laravel初级教程浅显易懂适合入门

    整理了一些Laravel初级教程,浅显易懂,特适合入门,留给刚学习laravel想快速上手有需要的朋友 最适合入门的laravel初级教程(一)序言 最适合入门的laravel初级教程(二)安装使用 ...

  10. InnoSQL HA Suite的实现原理与配置说明 InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync replicaiton)的功能 MySQL 5.6支持了crash safe功能

    InnoSQL HA Suite的实现原理与配置说明  InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync repl ...