zoukankan      html  css  js  c++  java
  • java接口对接——别人调用我们接口获取数据

    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等工具进行来回接口的调用和数据的互相推送调试完成即可;

  • 相关阅读:
    enum:python实现枚举也很优雅
    jieba:我虽然结巴,但是我会分词啊
    pyquery:轻松、灵活的处理html
    lxml:底层C语言实现、高效地处理html
    shelve:极其强大的序列化模块
    Session管理之ThreadLocal
    Hibernate之Criteria
    Hibernate之list和iterator
    hibernate之createQuery与createSQLQuery
    C标签之forEach
  • 原文地址:https://www.cnblogs.com/wmqiang/p/10500769.html
Copyright © 2011-2022 走看看