首页 / 资讯中心 / 文章详情

打手接单价格自定义配置系统开发

打手接单价格自定义配置系统开发 ★ FEATURED ARTICLE
打手接单价格自定义配置系统开发电竞打手接单业务中不同打手、游戏品类、服务类型、时段的定价差异很大。很多早期方案写死单价或者只支持固定几种套餐打手无法自主调价平台也不能统一管控价格上限高峰期溢价、节假日调价、段位差异化加价都很难落地经常出现价格混乱、客诉和结算金额不一致。本文讲解一套可由平台管控、打手自定义、多维度叠加计价的价格配置系统开发方案。后端采用SpringBoot MyBatis-Plus开发Redis缓存价格配置减少下单时数据库查询压力MySQL存储价格模板、加价规则、价格修改记录前端分为打手端价格配置页、后台价格审核管控面板。计价逻辑独立封装为价格组件供下单接口统一调用和订单、结算模块解耦。系统支持双层定价管控平台统一设置基础价格区间、最高限价、最低限价打手在平台限定范围内自主配置自己的服务单价、规格价格、时段溢价。超出限价范围的价格配置提交后无法生效需要提交审核由平台管理员复核。同时支持按游戏、服务类型按小时、按局、包段分开配置。价格数据分为基础规格价、附加加价规则两块。基础规格绑定打手ID、游戏编码、服务类型加价规则支持时段加价、节假日加价、高段位溢价、指定需求附加费多条规则可以叠加计算。所有价格修改都会留存记录记录修改前后金额、操作人方便对账和纠纷溯源。下面是价格配置实体与计价类型枚举Java代码示例Data TableName(t_player_price_config) public class PlayerPriceConfig { private Long id; private Long playerId; private String gameCode; // 计价类型1按小时 2按局 3包段 private Integer priceType; private BigDecimal basePrice; // 平台设置最高限价 private BigDecimal maxLimitPrice; private BigDecimal minLimitPrice; // 0待审核 1生效 2驳回 private Integer configStatus; private LocalDateTime createTime; private LocalDateTime auditTime; } public enum PriceTypeEnum { BY_HOUR(1, 按小时计价), BY_ROUND(2, 按局计价), BY_PACKAGE(3, 包段计价); private Integer code; private String desc; PriceTypeEnum(Integer code, String desc){ this.code code; this.desc desc; } // getter省略 }加价规则表独立存储一条规则绑定价格配置ID支持设置生效时间段、上浮比例或者固定金额。例如晚上19点到23点上浮20%周末上浮15%。计算的时候先取出基础价再遍历所有命中条件的加价规则叠加最终算出订单展示价格。价格计算工具类核心逻辑如下Service public class PriceCalcService { /** * 价格叠加计算 * param basePrice 基础价 * param addRuleList 命中加价规则 * return 最终价格 */ public BigDecimal calcFinalPrice(BigDecimal basePrice, ListPriceAddRule addRuleList) { BigDecimal finalPrice basePrice; for (PriceAddRule rule : addRuleList) { if (rule.getAddType() 1) { // 比例加价 BigDecimal rate rule.getAddRate().divide(new BigDecimal(100), 4, RoundingMode.HALF_UP); finalPrice finalPrice.multiply(BigDecimal.ONE.add(rate)); } else { // 固定金额加价 finalPrice finalPrice.add(rule.getAddAmount()); } } // 保留两位小数 return finalPrice.setScale(2, RoundingMode.HALF_UP); } }价格生效管控流程打手提交价格配置 → 系统自动校验是否在平台限价区间内在区间内直接自动生效超出区间则进入待审核队列管理员审核通过之后才对外展示。审核驳回时填写驳回原因同步消息通知打手。生效的价格配置写入Redis缓存key为打手游戏服务类型下单读取价格优先读缓存价格变更时主动删除或者更新缓存保证价格及时刷新。权限上做隔离打手只能修改自己的价格配置不能修改平台限价管理员可以统一修改全局游戏限价、查看全部价格配置记录也可以直接强制停用某条价格配置该打手对应的服务立即恢复使用平台默认底价。下单环节增加价格快照机制。用户下单成功的时候把当时计算出来的价格、基础价、命中的加价规则全部存入订单快照表。后续打手修改价格、调整加价规则不会影响已经生成的旧订单避免结算时价格和下单展示不一致。这是减少价格纠纷最关键的设计。风控规则和价格模块联动系统监控异常调价行为短时间频繁大幅度涨价、大量打手同步调高价格后台触发预警。针对恶意哄抬价格的账号平台可以限制其自定义价格权限只能使用平台默认价格。落地优化方面缓存设置合理过期时间防止缓存和数据库长期不一致价格计算统一使用BigDecimal禁止double浮点运算避免金额精度丢失加价规则支持开关不需要溢价的时候直接关闭不用删除配置。这套价格配置系统的核心思路是平台限价兜底、打手自主配置、规则叠加计价、下单价格快照。既给到打手灵活定价的空间又不会失去平台管控能力。后续可以扩展促销折扣、会员价、阶梯优惠等能力在现有计价组件基础上新增计算分支即可。
阅读完成 · 觉得有帮助?
咨询建站