123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- <?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;
- $result['mini_code'] = $this->mini_code();
- $result['share_code'] = $this->share_code();
- 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']];
- }
- private function mini_code()
- {
- $uid = session_helper::memberid();
- $passwd = util::passwd;
- $name = md5("{$uid}.{$passwd}") . ".png";
- $save_path = BASE_UPLOAD_PATH . DS . ATTACH_MINI_QRCODE . DS . $name;
- $url = UPLOAD_SITE_URL . DS . ATTACH_MINI_QRCODE . DS . $name;
- if(!file_exists($save_path)) {
- QueueClient::push('makeMemberMiniQrCode',['member_id' => $uid]);
- return '';
- }
- return $url;
- }
- private function share_code()
- {
- $uid = session_helper::memberid();
- $passwd = util::passwd;
- $name = md5("{$uid}.{$passwd}") . ".png";
- $name = "share-{$name}";
- $save_path = BASE_UPLOAD_PATH . DS . ATTACH_MINI_QRCODE . DS . $name;
- $url = UPLOAD_SITE_URL . DS . ATTACH_MINI_QRCODE . DS . $name;
- if(!file_exists($save_path)) {
- QueueClient::push('makeMemberMiniQrCode',['member_id' => $uid]);
- }
- return $url;
- }
- }
|