123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- <?php
- declare(strict_types=0);
- require_once(BASE_HELPER_PATH . '/model_helper.php');
- require_once(BASE_HELPER_PATH . '/calc_helper.php');
- class member_inviteeControl extends mbMemberControl
- {
- public function listOp()
- {
- $mod_member = Model('member');
- $items = $mod_member->getMemberList(['inviter_id' => session_helper::memberid()],'*', 0, 'member_time desc');
- $result = [];
- foreach ($items as $item)
- {
- $user_info = new member_info($item);
- $result[] = $user_info->filter();
- }
- return self::outsuccess($result);
- }
- public static function comp_policy($left,$right)
- {
- $t_l = intval($left['num']);
- $t_r = intval($right['num']);
- if($t_l > $t_r) {
- return 1;
- }
- elseif($t_l == $t_r)
- {
- return 0;
- }
- else {
- return -1;
- }
- }
- public function goods_shareOp()
- {
- $goods_id = intval($_GET['goods_id']);
- if($goods_id <= 0) {
- return self::outerr(errcode::ErrParamter,'goods_id 不能小于0.');
- }
- else
- {
- $calctor = new CalcPrice(session_helper::memberid());
- $policy = $calctor->share_policy($goods_id);
- if(empty($policy)) {
- return self::outsuccess([]);
- }
- usort($policy,[__CLASS__,'comp_policy']);
- [$policy,$maxnum,$amount] = $this->fill_policy($policy);
- $result['policy'] = $policy;
- $left_invitees = $calctor->left_invitees();
- $invitees = [];
- if($maxnum > $left_invitees) {
- $result['tip_title'] = "邀请{$maxnum}好友,可以补贴{$amount}元";
- $result['tip_num'] = $maxnum-$left_invitees;
- $count = $left_invitees;
- }
- else {
- $result['tip_title'] = "您已成功邀请{$maxnum}好友,下单后补贴{$amount}元";
- $result['tip_num'] = 0;
- $count = $maxnum;
- }
- if($left_invitees > 0)
- {
- $mod_member = Model('member');
- $items = $mod_member->getMemberList(['inviter_id' => session_helper::memberid()],'*', 0, 'member_id desc',$left_invitees);
- $items = array_reverse($items);
- $index = 0;
- foreach ($items as $item)
- {
- try {
- if($index >= $count) break;
- $member = new member_info($item);
- $invitees[] = $member->filter();
- $index++;
- }
- catch (Exception $ex) {
- Log::record($ex->getMessage(),Log::ERR);
- }
- }
- }
- $result['invitess'] = $invitees;
- return self::outsuccess($result);
- }
- }
- private function fill_policy($policy)
- {
- $index = 1;
- foreach ($policy as $item)
- {
- for($end = $item['num']; $end > $index;$index++) {
- $result[] = ['num' => $index,'discount' => 0];
- }
- $result[] = $item;
- $index += 1;
- }
- return [$result,$item['num'],$item['discount']];
- }
- }
|