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

网站活动专题页面软文推广模板

网站活动专题页面,软文推广模板,深圳网站设计模板,mg线上注册前言 在我看来多写几个if-else没啥大不了的,但是就是看起来没啥逼格,领导嫌弃。我根据开发的经历写几个不同的替代方法 一、枚举法替代 我先前写了一篇文章,可以去看看。 通过枚举替换if-else语句的解决方案_枚举代替if else c语言-CSDN博…

前言 

在我看来多写几个if-else没啥大不了的,但是就是看起来没啥逼格,领导嫌弃。我根据开发的经历写几个不同的替代方法

一、枚举法替代 

我先前写了一篇文章,可以去看看。

通过枚举替换if-else语句的解决方案_枚举代替if else c语言-CSDN博客

二、定义接口,实现类

通过定义初始方法,通过添加多个实现类来选择

  • 接口

public interface ISoapServer {/*** 服务编码* @return*/String getCode();/*** 服务* @param xml* @return*/String server(String xml);}
  • 实现类

 其中一个实现类,其他的类似


import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import us.codecraft.webmagic.selector.Html;import java.util.List;/*** @author HuangZheng* @create 2023-05-05 9:49* @description 居民信息提交服务*/
@Service
public class Soap06IstPr1 implements ISoapServer {@Autowiredprivate WebClientServer webClientServer;@Overridepublic String getCode() {return "IST-PR1";}@Overridepublic String server(String xml) {try {if (StrUtil.isBlank(xml)) {throw new BaseException("参数不能为空!");}// 要插入的业务表Patient patient = new Patient();String pid = IdUtil.fastSimpleUUID();patient.setPid(pid);// 第一步 解析参数Html requestXml = Html.create(xml);// 获取身份证号// 1、从开头寻找List<String> idNoList = requestXml.xpath("//personInfo/identifier/value/@value").all();// 2、从assignedPerson节点寻找List<String> tempIdNoList = requestXml.xpath("//assignedPerson/identifier/value/@value").all();idNoList.addAll(tempIdNoList);for (String s : idNoList) {if (IdcardUtil.isValidCard(s)) {patient.setIdNo(s);patient.setIdTypeCode("01");patient.setIdTypeName("身份证");// 只要能取到一个就行break;}}// 姓名final String name = requestXml.xpath("//personInfo/assignedPerson/name/@value").get();patient.setName(name);// 性别final String sexCode = requestXml.xpath("//personInfo/assignedPerson/gender/@value").get();patient.setSexCode(sexCode);ExceptionUtil.soapExcpition("1",name);ExceptionUtil.soapExcpition("2",sexCode);final String sexName = XmlReadUtil.getRangeByKey("GB/T 2261.1-2003", sexCode).getValue();patient.setSexName(sexName);// 手机号码String telNo = requestXml.xpath("//personInfo/telecom/value/@value").get();patient.setTelNo(telNo);// 获取地址addressString presentAddress = requestXml.xpath("//personInfo/address/text/@value").get();String presentAddrProvi = requestXml.xpath("//personInfo/address/state/@value").get();String presentAddrCity = requestXml.xpath("//personInfo/address/city/@value").get();String presentAddrCounty = requestXml.xpath("//personInfo/address/district/@value").get();String presentAddrTown = requestXml.xpath("//personInfo/address/town/@value").get();String presentAddrVillage = requestXml.xpath("//personInfo/address/street/@value").get();String presentAddrHouNo = requestXml.xpath("//personInfo/address/houseNumber/@value").get();// 存值patient.setPresentAddress(TextUtil.getStr(presentAddress, "-"));patient.setPresentAddrProvi(TextUtil.getStr(presentAddrProvi, "-"));patient.setPresentAddrCity(TextUtil.getStr(presentAddrCity, "-"));patient.setPresentAddrCounty(TextUtil.getStr(presentAddrCounty, "-"));patient.setPresentAddrTown(TextUtil.getStr(presentAddrTown, "-"));patient.setPresentAddrVillage(TextUtil.getStr(presentAddrVillage, "-"));patient.setPresentAddrHouNo(TextUtil.getStr(presentAddrHouNo, "-"));// 出生日期final String birthday = requestXml.xpath("//personInfo/assignedPerson/birthTime/@value").get();patient.setBirthday(Convert.toDate(birthday));// 婚姻状况final String marCode = requestXml.xpath("//personInfo/assignedPerson/maritalStatusCode/@value").get();patient.setMarCode(marCode);final String marName = XmlReadUtil.getRangeByKey("GB/T 2261.2-2003", marCode).getValue();patient.setMarName(marName);// ORG_ID 通过最后的机构名称查询String orgName = requestXml.xpath("//personInfo/assignedOrganization/name/@value").get();OrgMapper orgMapper = SpringUtils.getBean(OrgMapper.class);Org org = orgMapper.selectOne(new LambdaQueryWrapper<Org>().eq(Org::getManagerorgname, orgName));if (org != null) {patient.setOrgId(org.getOrgid());}else{patient.setOrgId("1");}// 批次String batchId = UUID.randomUUID(false).toString(true);patient.setBatchId(batchId);PatientMapper patientMapper = SpringUtils.getBean(PatientMapper.class);patientMapper.insert(patient);//保存通知List<String> ids = webClientServer.saveNoice(new String[][]{{"rhin:personRecordRevise",name+"居民信息发生变更"},{"rhin:personIdentifierRevise",name+"居民信息索引变更"},{"rhin:personIdentifierMerge",name+"居民信息合并"}});//检查是否有主题订阅,如有发送通知webClientServer.checkAndNoice(ids);return "<PersonRecordFeedResponse>\n" +"         <masterIdentifer>" +TextUtil.format("<system value=\"{}\"/> \n", "") +TextUtil.format("<value value=\"{}\"/> \n", pid) +"         </masterIdentifer>\n" +"</PersonRecordFeedResponse>";} catch (Exception e) {// 对象转换为xmlreturn TextUtil.format("" +"<returnData>\n" +"\t<funCode>{}</funCode>\n" +"\t<errorCode>{}</errorCode>\n" +"\t<detail>{}</detail>\n" +"</returnData> \n", getCode(), "500", e.getCause() != null ? e.getCause() : e.getMessage());}}
}

 使用方法

 public String HIPMessageServer(String action, String message) {String result ="";log.info("\n 交互服务入参信息: \n action:{} \n message:{}",action,message);String[] beanNamesForType = applicationContext.getBeanNamesForType(ISoapServer.class);for (String beanName : beanNamesForType) {ISoapServer soapServer = applicationContext.getBean(beanName, ISoapServer.class);if (soapServer.getCode().equals(action)) {result = soapServer.server(message);log.info("\n 交互服务出参信息: \n message:{}",result);return result;}}return result;}

三、Map+函数式接口

@Service  
public class GrantTypeSerive {  public String redPaper(String resourceId){  //红包的发放方式  return "每周末9点发放";  }  public String shopping(String resourceId){  //购物券的发放方式  return "每周三9点发放";  }  public String QQVip(String resourceId){  //qq会员的发放方式  return "每周一0点开始秒杀";  }  
} 
@Service  
public class QueryGrantTypeService {  @Autowired  private GrantTypeSerive grantTypeSerive;  private Map<String, Function<String,String>> grantTypeMap=new HashMap<>();  /**  *  初始化业务分派逻辑,代替了if-else部分  *  key: 优惠券类型  *  value: lambda表达式,最终会获得该优惠券的发放方式  */  @PostConstruct  public void dispatcherInit(){  grantTypeMap.put("红包",resourceId->grantTypeSerive.redPaper(resourceId));  grantTypeMap.put("购物券",resourceId->grantTypeSerive.shopping(resourceId));  grantTypeMap.put("qq会员",resourceId->grantTypeSerive.QQVip(resourceId));  }  public String getResult(String resourceType){  //Controller根据 优惠券类型resourceType、编码resourceId 去查询 发放方式grantType  Function<String,String> result=getGrantTypeMap.get(resourceType);  if(result!=null){  //传入resourceId 执行这段表达式获得String型的grantType  return result.apply(resourceId);  }  return "查询不到该优惠券的发放方式";  }  
}

http://www.hengruixuexiao.com/news/21779.html

相关文章:

  • 普通展示型网站友链交换有什么作用
  • 可以自己买服务器做网站吗淘宝怎么设置关键词搜索
  • 建e网室内设计网手机版杭州优化公司哪家好
  • 仿商城版淘宝客网站源码模板式自助建站
  • 淄博哪家公司做网站最好免费b站推广网站有哪些
  • wordpress 移动 css安卓优化大师官方下载
  • 重新安wordpress网站12月30日疫情最新消息
  • 经典语录网站做合格党员百度指数的搜索指数
  • 哪公司建设网站天津seo标准
  • 网站流量建设免费网站java源码大全
  • 制作一个学校门户网站chatgpt 网站
  • 用mvc做网站的框架企业员工培训课程有哪些
  • 小说网站防盗做的好58同城关键词怎么优化
  • 建设公司网站新闻素材管理企业查询信息平台
  • 现在用什么做网站自己制作一个网页
  • 上海网站设计公司有哪些九江seo优化
  • wordpress中国seo百度关键词优化软件
  • 网站推广百度优化西安优化排名推广
  • 阿里云做网站怎么挣钱线上推广软件
  • 专业做pe的网站百度收录网站
  • 佛山手机网站建设公司360优化大师官方下载手机
  • 网站制作 北京谷歌广告上海有限公司
  • 东莞商贸公司寮步网站建设价格关键词列表
  • wordpress 集成支付宝2022最好的百度seo
  • 珠海市城乡规划建设局网站seo页面代码优化
  • 512内存 wordpress网站怎样优化文章关键词
  • 网站建设栏目市场调研报告ppt
  • 手机网站开发教程网络营销的公司有哪些
  • 关于做网站的前言搜索百度
  • app开发网站建设及开发谷歌推广怎么做最有效