当前位置: 首页 > news >正文

最优惠的建设网站建设关键字搜索

最优惠的建设网站建设,关键字搜索,石家庄开发区网站建设,企业宣传片拍摄公司应用场景:存在银行卡和社保卡的支付、退货等接口,接口报文中使用transWay表示银行卡(0)和社保卡(1),transType表示支付(1)、退货(2)。那么由其组合…

应用场景:存在银行卡和社保卡的支付、退货等接口,接口报文中使用transWay表示银行卡(0)和社保卡(1),transType表示支付(1)、退货(2)。那么由其组合便能出现四个逻辑,所以要实现动态的逻辑分发。

domain

@Data
public class PosApiReq {/** 交易方式 **/private String transWay;/** 交易类型 **/private String transType;
}

service

  • 接口定义
public interface ICommonService {public Object handler(String json);
}
  • 银行卡消费
@Service
@CodeType("01")
public class BankConsumService implements ICommonService{@Overridepublic Object handler(String json) {System.out.println("银行卡消费开始:" + json);return "bank-consum";}
}
  • 银行卡退货
@Service
@CodeType("02")
public class BankRefundService implements ICommonService{@Overridepublic Object handler(String json) {System.out.println("银行卡退货开始:" + json);return "bank-refund";}
}
  • 社保卡消费
@Service
@CodeType("11")
public class SocConsumService implements ICommonService{@Overridepublic Object handler(String json) {System.out.println("社保卡消费开始:" + json);return "soc-consum";}
}
  • 社保卡退货
@Service
@CodeType("12")
public class SocRefundService implements ICommonService{@Overridepublic Object handler(String json) {System.out.println("社保卡退货开始:" + json);return "soc-refund";}
}

controller

@RestController
public class ServerController {private final Map<String, ICommonService> handlerMap = new HashMap<>();@Autowiredprivate void setHandler(List<ICommonService> commonServiceList) {for (ICommonService commonService : commonServiceList) {handlerMap.put(commonService.getClass().getAnnotation(CodeType.class).value(), commonService);}}@Anonymous@RequestMapping("/api")public Object api(@RequestBody PosApiReq posApiReq) {String transWay = posApiReq.getTransWay();String transType = posApiReq.getTransType();// 01 银行卡消费、02银行卡退货、11 社保卡消费、 12社保卡退货String value = transWay+transType;ICommonService commonService = handlerMap.get(value);Object object = commonService.handler(posApiReq.toString());return object;}
}

annotation

@Target(value={ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface CodeType {String value();
}

此方式完美的解决了根据不通交易调用不通逻辑的问题,如果新添加一类交易,只需要扩展实现ICommonService 接口的新类就可以。

http://www.fp688.cn/news/142591.html

相关文章:

  • 深圳网站设计公司费用大概多少湖南手机版建站系统开发
  • 企业公司网站建设济南头条新闻热点
  • 做电商的网站b站大全永不收费2023入口在哪
  • 新闻稿件网站优化资源
  • 建设网站目的及功能定位网站没有友情链接
  • 建大仁科公司网站百度信息流效果怎么样
  • 个人网站用什么建站程序百度关键词广告怎么收费
  • 浙江网站设计公司电话天津seo代理商
  • dwcs5做h5网站做营销策划的公司
  • 某公司网站策划建设谷歌sem推广
  • 做网站常用代码向右浮动怎么写抖音推广引流平台
  • 怎么把几个网站做互通自动点击器免费下载
  • 手游网站怎么做的无锡网络推广平台
  • 山西做网站哪个好网站制作多少钱一个
  • 旅游网站建设方案两百字昆明网络营销公司哪家比较好
  • 中国太空网站深圳网络营销网站设计
  • 广东网站备案查询系统找百度
  • 诸城市建设局网站开鲁网站seo
  • 武汉市二手房交易合同备案在那个网站上做呀百度竞价推广开户费用
  • php和python做网站seo整体优化
  • 东莞网站排名优化公司搜收录批量查询
  • 如何让搜索引擎不收录网站win7系统优化
  • seo短视频网页入口引流免费湖南网站优化
  • 常见网站攻击方式泰州百度seo公司
  • 柳州网站建设11优化设计电子版
  • 杭州网站建设nuoweb如何制作一个网页页面
  • 一起做网站欧洲站网页怎么做
  • 武汉网站制作开发百度公司怎么样
  • 微网站模板怎么做抖音关键词优化
  • 手机网站程序可以用.com作为域名吗免费b站推广网址有哪些