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. 初始react

    很久就期待学习react了,惰性,一直都没有去翻阅react的资料,最近抽空,简单的了解了一下react,先记录一下,后续慢慢的学习. 一.ReactJS简介 React 起源于 Facebook 的 ...

  2. 利用bat批处理做启动mongodb脚本

    文章开始,我们先回顾一下,如何用cmd命令窗口开启mongodb数据库,命令如下: 开启mongodb数据库 cd D:\Program Files\MongoDB\bin mongod --depa ...

  3. 危险的浮点数float

    今天写程序又以为我见鬼了!最后查出来发现原来又是浮点数搞的鬼! 情况大致是这样的,我想要测试向量运算的速度,所以要对一个浮点数向量进行求和运算,代码如下: int vect_size=10000000 ...

  4. Windows Server 2008 R2之三管理活动目录数据库

    活动目录数据库包括数据库文件NTDS.dit和日志文件.考虑到最佳性能,在生产环境推荐将日志文件和数据库文件在单独的硬盘驱动器中或RAID中,同时要根据网络的规模,保证磁盘上有充足的剩余空间.由于活动 ...

  5. 百度地图InfoWindow弹窗圆角

    效果如下 使用CSS样式 /*地图标题*/ .BMap_pop div:nth-child(1) div { border-radius: 8px 0 0 0; } .BMap_pop div:nth ...

  6. 小程序中navigator和wx.navigateTo,wx.redirectTo,wx.reLaunch,wx.switchTab,wx.navigateBack的用法

    如果用一句话来表明navigator和API中wx.系列的跳转有什么区别,那就是navigator是在wxml中用标签添加open-type属性来达到和wx.系列一样的效果. navigator的属性 ...

  7. ABP之项目的搭建

    ABP是一个非常优秀的框架,使用模块化的管理方式,将当前比较优秀的技术集成到了这个框架中,方便开发者快速搭建自己的网站.作为ABP学习的第一篇,先将ABP框架跑起来看看再说. 1.首先需要去官网下载相 ...

  8. 存储opline的内存地址可以实时跟踪opcode的执行

    static intphp_handler(request_rec *r) { /* Initiliaze the context */ php_struct * volatile ctx; void ...

  9. 解决oracle12c安装报“[INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置)”方法

    安装过很多次oracle,顺顺利利的,今天在新机子上安装oracle12c client过程中竟然神奇的报出一个错误: 很明显的,已经很明确的给出了安装失败的原因:无法访问临时位置!实际上,在安装数据 ...

  10. tomcatserver解析(五)-- Poller

    在前面的分析中介绍过,Acceptor的作用是控制与tomcat建立连接的数量,但Acceptor仅仅负责建立连接.socket内容的读写是通过Poller来实现的.   Poller使用java n ...