代码示例
会员折扣价格
use app\common\service\MemberService;
// 根据会员等级折扣计算价格
$memberPrice = MemberService::getProMemberPrice(100.00);
// 普通会员: 原价100
// VIP1: 可能95折 = 95
// VIP2: 可能9折 = 90
// 返回格式化后的价格字符串
积分增加
// 积分增加(事务处理)
$result = MemberService::addPoints(
$memberId, // 会员ID
10, // 积分数量
'login', // 类型: login/article/order/exchange
'每日登录', // 来源描述
'每日登录奖励' // 备注
);
// 返回: bool 是否成功
积分扣减
// 积分扣减(事务+行锁防超扣)
$result = MemberService::deductPoints(
$memberId, // 会员ID
50, // 积分数量
'exchange', // 类型
'兑换商品', // 来源
'兑换商品ID:5' // 备注
);
// 返回: ['success' => bool, 'message' => string]
// 余额不足时: success=false, message='积分不足'
MemberService 说明
会员价格
• getProMemberPrice($price) 根据会员等级自动计算折扣价
• 未登录用户返回原价
• 不同等级享有不同折扣比例
积分系统
• addPoints() 积分增加,使用事务确保一致性
• deductPoints() 积分扣减,使用事务+行锁防止超扣
• 积分类型: login(登录) / article(文章) / order(订单) / exchange(兑换)
• 扣减时余额不足返回失败信息