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

枚举是实现接口,匿名内部类扩展function实现

/** * 回传事件接口 * 用于构建参数 * * @Author */ public interface EventBase { /** * 构建参数 * @return */ Function<CallBackParamDataBO,Map<String, Object>> buildParam(); /** * 获取验重值 * @return */ Function<CallBackParamDataBO,String> getRepeatValue(); /** * 获取前置事件(每个事件自己定义依赖关系) */ EventBase getPreEvents(); String getCode(); String getName(); }
@Getter @AllArgsConstructor public enum AFS2SEventNewEnum implements EventBase { PURCHASE("af_purchase", "购买") { @Override public Function<CallBackParamDataBO, Map<String, Object>> buildParam() { return data -> { CallBackParamDataBO.OrderInfo orderBaseInfo = data.getOrderBaseInfo(); String afContentType = null; String afContent = null; if (Objects.nonNull(orderBaseInfo)) { //C币充值 if (Integer.valueOf(1).equals(orderBaseInfo.getOrderType())) { afContentType = "C币充值"; afContent = "C币充值:充值" + orderBaseInfo.getRealityNum() + "币"; } //会员充值 if (Integer.valueOf(2).equals(orderBaseInfo.getOrderType())) { afContentType = "会员充值"; afContent = switch (orderBaseInfo.getValidTimeType()) { case 1 -> "周会员"; case 2 -> "月会员"; case 3 -> "季会员"; case 4 -> "年会员"; case 5 -> "天会员"; default -> "会员充值"; }; if ("sign".equals(orderBaseInfo.getPayType())) { afContent += "(自动续期)"; } } //看点充值 if (Integer.valueOf(3).equals(orderBaseInfo.getOrderType())) { afContentType = "整剧购买"; afContent = "整剧购买:" + orderBaseInfo.getVideoName(); } //3日金币包 if (Integer.valueOf(4).equals(orderBaseInfo.getOrderType())) { afContentType = "3日金币包"; afContent = "3日金币包:充值" + orderBaseInfo.getRealityNum() + "币"; } } return MapUtil.<String, Object>builder() .put("af_revenue", Optional.ofNullable(data.getOrderBaseInfo()) .map(CallBackParamDataBO.OrderInfo::getOrderAmountYuan) .orElse("0"))//订单总额 // .put("af_price",Optional.ofNullable(data.getOrderBaseInfo()) // .map(CallBackParamDataBO.OrderInfo::getCurrencyAmount) // .orElse(BigDecimal.ZERO))//订单总额 .put("af_currency", "USD") .put("af_content_type", StringUtils.isNotBlank(afContentType)?afContentType:"整剧购买")//产品品类: 会员充值、看点充值、整剧购买 .put("af_content_id", String.valueOf(Optional.ofNullable(data.getOrderBaseInfo()) .map(CallBackParamDataBO.OrderInfo::getOrderId) .orElse(0L))) //订单号 .put("af_content", afContent)//内容标题 会员充值:周会员(自动续期)/月会员(自动续期)/季会员(自动续期)/年会员(自动续期); 看点充值:充值1000看点; 注:1000为充值C币额度,此额度为实际充值到账金额; 整剧购买:购买剧名; .build(); }; } @Override public Function<CallBackParamDataBO, String> getRepeatValue() { return data -> { long orderId = Optional.ofNullable(data.getOrderBaseInfo()) .map(CallBackParamDataBO.OrderInfo::getOrderId) .orElse(0L); return orderId + "_" + this.getCode(); }; } } }
http://www.jsqmd.com/news/420592/

相关文章:

  • 藏家必看!北京上门回收老书3家靠谱机构盘点 避坑科普一次说清 - 品牌排行榜单
  • java8 apply 方法与 Function 接口详解
  • Tcache
  • Qt 开发中复制一个已有的 UI 窗体及其对应的 C++ 类
  • 让机器“长眼睛”:产线视觉检测工程如何重塑质量控制逻辑?
  • 空间智能前向布控系统总体架构设计报告——人员多维感知 × 空间计算 × 融合识别 × 趋势预测 × 联动控制体系
  • 实测对比后,AI论文平台千笔AI VS Checkjie,专科生写作首选!
  • AI生成的学术文献是假的?留学生可用这4种方法识别!
  • 论文写不动?10个AI论文软件深度测评,继续教育毕业论文写作必备!
  • 2026年2月实木衣架供应厂家推荐,精选原料品质保障 - 品牌鉴赏师
  • 岳阳科技职院性价比高吗,湖南考生报考费用与价值盘点 - mypinpai
  • 聚焦国产精品:2026年小鼠检测试剂盒市场新选择,鸡试剂盒/小鼠的elisa试剂盒,小鼠检测试剂盒产品找哪家 - 品牌推荐师
  • 基于SSM+VUE的高校就业信息发布平台[SSM]-计算机毕业设计源码+LW文档
  • 基于SSM+VUE的高校快递代取系统[SSM]-计算机毕业设计源码+LW文档
  • 清单来了:10个降AIGC工具测评,本科生降AI率必备神器
  • 导师严选!千笔,倾心之选的AI论文软件
  • 构建AI智能盯盘助手:AKShare + DeepSeek + Server酱实战指南
  • 国产化编辑器怎样处理Excel数据导入?
  • 实测对比后!千笔·专业论文写作工具,专科生写作首选
  • 军工领域中,C#如何保障文件夹上传的安全性?
  • 并网光伏配电网电能质量监测系统设计及仿真验证
  • P6639 「JYLOI Round 1」让P6639 「JYLOI Round 1」让
  • 央企应用里,.NET Core如何处理文件夹上传的断点?
  • 2026年北美求职机构哪家靠谱? ——留学生求职辅导服务商TOP排行榜权威盘点 - Matthewmx
  • 摆脱论文困扰!千笔·降AIGC助手,自考降重首选
  • 机械行业ckeditor支持PDF粘贴吗?
  • 国防项目富文本工具支持截图转存吗?
  • 这次终于选对!9个AI论文写作软件测评:本科生毕业论文+开题报告高效工具推荐
  • 学工管理系统:让校园管理更智能高效
  • 直接上结论:更贴合本科生的降AI率工具,千笔·专业降AIGC智能体 VS 锐智 AI