Skip to content

赠送经验

liaofei edited this page Jan 20, 2021 · 1 revision

系统目前赠送经验有三个地方,分别是:1,用户下单赠送经验;2,签到赠送经验;3,邀请新用户赠送经验。

所有的赠送行为都必须建立在用户等级启用的前提下。

后台赠送经验规则设置,导航菜单【设置】【系统设置】【商城配置】【用户等级配置】

输入图片说明


下面我们从三个方面讲解一下逻辑,以便开发者二开。

第一,用户下单赠送经验

用户下单赠送经验是在用户确认收货后进行赠送,涉及数据表eb_user:用户表,eb_user_bill:赠送经验记录表,eb_system_user_level:用户等级配置表,eb_user_level:用户等级升级记录表。

确认收货接口控制器:app/api/controller/v1/order/StoreOrderController.php

方法: public function take(Request $request, StoreOrderTakeServices $services, StoreCouponIssueServices $issueServices)

赠送经验业务类:app/services/order/StoreOrderTakeServices.php

赠送经验方法: public function gainUserExp($order, $userInfo)

1,赠送时首先对用户进行校验

2,根据规则配置赠送规则,核算赠送经验数据。

3,根据赠送经验,核算用户等级。

核算用户等级业务类:app/services/user/UserLevelServices.php
核算用户等级方法:public function detection(int $uid)

第二,签到赠送经验

用户签到时会赠送积分和经验,此处一并讲解。涉及数据表eb_user:用户表,eb_user_bill:赠送经验记录表,eb_system_user_level:用户等级配置表,eb_user_level:用户等级升级记录表,eb_user_sign:用户签到记录表。

用户签到接口控制器:app/api/controller/v1/user/UserSignController.php
用户签到方法: public function sign_integral(Request $request)

1,接收用户信息

2,调用签到业务类方法

业务类:app/services/user/UserSignServices.php
方法:public function sign(int $uid)

3,判断用户签到天数配置

4,校验用户签到情况

5,核算用户签到积分数据

6,核算用户签到经验数据

7,修改用户主表积分数和经验值

8,增加赠送积分和经验记录

9,根据赠送经验,核算用户等级。

如果在签到中需要二开什么逻辑可以在此业务类中进行二开。


第三,邀请新用户赠送经验 涉及数据表eb_user:用户表,eb_user_bill:赠送经验记录表,eb_system_user_level:用户等级配置表,eb_user_level:用户等级升级记录。

邀请新用户业务类:app/services/user/UserBillServices.php
方法:public function inviteUserIncExp(int $spreadUid)
Clone this wiki locally