123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809 |
- <?php
- namespace Home\Model;
- use Think\Model;
- /**
- * 邀新有礼模块
- * @author cy 2021-03-11
- *
- */
- class InvitegiftModel{
- public function getInvitegiftInfo($member_id){
- $need_data = [];
- //邀新有礼配置信息
- $config_data = $this->getInvitegiftConfig();
- if(isset($config_data['is_invite_open_status']) && $config_data['is_invite_open_status'] == 1){
- //邀新有礼活动顶部背景图
- $need_data['invite_activity_topback_img'] = $config_data['invite_activity_topback_img'];
- //分享标题
- $need_data['invite_share_title'] = $config_data['invite_share_title'];
- //分享图片
- $need_data['invite_share_img'] = $config_data['invite_share_img'];
- //邀请下单分享标题
- $need_data['invite_order_share_title'] = $config_data['invite_order_share_title'];
- //邀请下单分享图片
- $need_data['invite_order_share_img'] = $config_data['invite_order_share_img'];
- //活动规则
- $need_data['invite_activity_rules'] = $config_data['invite_activity_rules'];
- //邀新有礼海报配置
- //背景 0、纯色背景,1、背景图片
- $need_data['invite_poster_back_type'] = $config_data['invite_poster_back_type'];
- //背景颜色
- $need_data['invite_poster_back_color'] = $config_data['invite_poster_back_color'];
- //背景图片
- $need_data['invite_poster_back_img'] = $config_data['invite_poster_back_img'];
- //二维码图片
- $need_data['invite_poster_qrcode_img'] = $this->getInvitegiftWxQrcode($member_id, $config_data);
- //二维码背景色
- $need_data['invite_poster_qrcode_backcolor'] = $config_data['invite_poster_qrcode_backcolor'];
- //二维码线条色
- $need_data['invite_poster_qrcode_linecolor'] = $config_data['invite_poster_qrcode_linecolor'];
- //二维码边角类型:0、圆角,1、直角
- $need_data['invite_poster_qrcode_corner_type'] = $config_data['invite_poster_qrcode_corner_type'];
- //二维码大小
- $need_data['invite_poster_qrcode_size'] = $config_data['invite_poster_qrcode_size'];
- //二维码边框状态:1、开启,0、关闭
- $need_data['invite_poster_qrcode_border_status'] = $config_data['invite_poster_qrcode_border_status'];
- //二维码边框颜色
- $need_data['invite_poster_qrcode_bordercolor'] = $config_data['invite_poster_qrcode_bordercolor'];
- //二维码距画布顶部位置
- $need_data['invite_poster_qrcode_top'] = $config_data['invite_poster_qrcode_top'];
- //二维码距画布左侧位置
- $need_data['invite_poster_qrcode_left'] = $config_data['invite_poster_qrcode_left'];
- }
- //我的活动收益
- $invitegift_data = $this->getMyInvitegiftIncome($member_id);
- $need_data['income'] = $invitegift_data;
- $need_data['suid'] = $member_id;
- return $need_data;
- }
- /**
- * @author cy 2021-03-18
- * @desc 获取会员的邀请有礼小程序码
- * @param $member_id
- * @param $config_data
- */
- public function getInvitegiftWxQrcode($member_id, $config_data){
- $invite_poster_update_time = $config_data['invite_poster_update_time'];
- $member_invitegift = M('lionfish_comshop_member_invitegift')->where(array('member_id'=>$member_id))->find();
- $load_new = false;
- if( empty($member_invitegift) )
- {
- $load_new = true;
- }else {
- if( $member_invitegift['invite_addtime'] < $invite_poster_update_time )
- {
- $load_new = true;
- }
- }
- if( $load_new )
- {
- $qrcode_image = D('Home/Pingoods')->_get_invite_wxqrcode("lionfish_comshop/moduleB/invite/share", $member_id ,$config_data['invite_poster_qrcode_backcolor'],$config_data['invite_poster_qrcode_linecolor']);
- $data = array();
- $data['image_path'] = $qrcode_image;
- $ed_time = time() + 5;
- $js_arr = array('member_id' => $member_id,'invite_addtime' => $ed_time,'invite_image_path' => $data['image_path'] );
- M('lionfish_comshop_member_invitegift')->add($js_arr);
- }else{
- $data = array();
- $data['image_path'] = $member_invitegift['invite_image_path'];
- }
- return tomedia($data['image_path']);
- }
- /**
- * @author cy 2021-03-11
- * @desc 我的活动收益
- * @param int $user_id
- * @return array
- */
- public function getMyInvitegiftIncome($user_id){
- $income_data = [];
- //邀请成功人数(已领取的被邀请人数)
- $invitee_succ_count = $this->getInviteeSuccCout($user_id);
- //累计邀请人数(已邀请的被邀请人数)
- $invitee_count = $this->getInviteeCout($user_id);
- //累计奖励(邀请者已领取的奖励次数)
- $inviter_total_count = $this->getInviterTotalCout($user_id);
- $income_data['invitee_succ_count'] = $invitee_succ_count;
- $income_data['invitee_count'] = $invitee_count;
- $income_data['inviter_total_count'] = $inviter_total_count;
- return $income_data;
- }
- /**
- * @author cy 2021-02-18
- * @desc 邀请成功人数(已领取的被邀请人数)
- * @param unknown $user_id
- * @param unknown $city_id
- * @return number
- */
- public function getInviteeSuccCout($user_id){
- $condition['user_id'] = $user_id;
- $condition['invitee_status'] = 1;
- $count = $this->getInvitegiftRecordCount($condition);
- return $count;
- }
- /**
- * @author cy 2021-02-18
- * @desc 累计邀请人数(已邀请的被邀请人数)
- * @param unknown $user_id
- * @param unknown $city_id
- * @return number
- */
- public function getInviteeCout($user_id){
- $condition['user_id'] = $user_id;
- $count = $this->getInvitegiftRecordCount($condition);
- return $count;
- }
- /**
- * @author cy 2021-02-18
- * @desc 累计奖励(邀请者已领取的奖励次数)
- * @param unknown $user_id
- * @param unknown $city_id
- * @return number
- */
- public function getInviterTotalCout($user_id){
- $condition['user_id'] = $user_id;
- $condition['status'] = 1;
- $count = $this->getInvitegiftRecordCount($condition);
- return $count;
- }
- /**
- * @author cy 2021-03-11
- * @desc 根据条件获取邀新有礼记录数
- * @param unknown $condition
- * @return number
- */
- public function getInvitegiftRecordCount($condition){
- $count = M('lionfish_comshop_invitegift_record')->where($condition)->count();
- return !empty($count) ? $count : 0;
- }
- /**
- * @author cy 2021-03-11
- * @desc 邀新有礼配置信息
- * @return array
- */
- public function getInvitegiftConfig(){
- $invitegift_config = array();
- $city_config = D('Seller/Config')->get_all_config();
- if(!empty($city_config['is_invite_open_status'])){
- //邀新有礼开启状态
- $invitegift_config['is_invite_open_status'] = $city_config['is_invite_open_status'];
- //邀请者奖励类型
- $invitegift_config['inviter_reward_type'] = $city_config['inviter_reward_type'];
- //邀请者奖励优惠券id
- $invitegift_config['inviter_reward_couponid'] = $city_config['inviter_reward_couponid'];
- //邀请者奖励积分数
- $invitegift_config['inviter_reward_point'] = $city_config['inviter_reward_point'];
- //被邀请者奖励类型
- $invitegift_config['invitees_reward_type'] = $city_config['invitees_reward_type'];
- //被邀请者新人注册(授权登录)奖励类型
- $invitegift_config['invitees_register_reward_type'] = $city_config['invitees_register_reward_type'];
- //被邀请者新人注册(授权登录)奖励优惠券id
- $invitegift_config['invitees_register_reward_couponid'] = $city_config['invitees_register_reward_couponid'];
- //被邀请者新人注册(授权登录)奖励积分数
- $invitegift_config['invitees_register_reward_point'] = $city_config['invitees_register_reward_point'];
- //被邀请者下单完成奖励类型
- $invitegift_config['invitees_order_reward_type'] = $city_config['invitees_order_reward_type'];
- //被邀请者下单完成奖励优惠券id
- $invitegift_config['invitees_order_reward_couponid'] = $city_config['invitees_order_reward_couponid'];
- //被邀请者下单完成奖励积分数
- $invitegift_config['invitees_order_reward_point'] = $city_config['invitees_order_reward_point'];
- //被邀请者下单完成活动奖励时间:0、下单支付完成获得奖励,1、订单售后期结束获得奖励
- $invitegift_config['invite_activity_reward_type'] = $city_config['invite_activity_reward_type'];
- //是否开启邀请人数限制:1、开启,0、关闭
- $invitegift_config['is_open_invitation_limit'] = $city_config['is_open_invitation_limit'];
- //邀请人数限制人数
- $invitegift_config['invitation_limit_person'] = $city_config['invitation_limit_person'];
- //邀新有礼活动顶部背景图
- if(!empty($city_config['invite_activity_topback_img'])){
- $invitegift_config['invite_activity_topback_img'] = tomedia($city_config['invite_activity_topback_img']);
- }else{
- $invitegift_config['invite_activity_topback_img'] = "";
- }
- //活动打开页面顶部背景图
- if(!empty($city_config['invite_activity_open_topback_img'])){
- $invitegift_config['invite_activity_open_topback_img'] = tomedia($city_config['invite_activity_open_topback_img']);
- }else{
- $invitegift_config['invite_activity_open_topback_img'] = "";
- }
- //活动积分/优惠卷使用规则
- $invitegift_config['invite_activity_use_rules'] = htmlspecialchars_decode($city_config['invite_activity_use_rules']);
- //分享标题
- $invitegift_config['invite_share_title'] = $city_config['invite_share_title'];
- //分享图片
- if(!empty($city_config['invite_share_img'])){
- $invitegift_config['invite_share_img'] = tomedia($city_config['invite_share_img']);
- }else{
- $invitegift_config['invite_share_img'] = "";
- }
- //邀请下单分享标题
- $invitegift_config['invite_order_share_title'] = $city_config['invite_order_share_title'];
- //邀请下单分享图片
- if(!empty($city_config['invite_order_share_img'])){
- $invitegift_config['invite_order_share_img'] = tomedia($city_config['invite_order_share_img']);
- }else{
- $invitegift_config['invite_order_share_img'] = "";
- }
- //活动规则
- $invitegift_config['invite_activity_rules'] = htmlspecialchars_decode($city_config['invite_activity_rules']);
- //邀新有礼海报配置
- //背景 0、纯色背景,1、背景图片
- $invitegift_config['invite_poster_back_type'] = $city_config['invite_poster_back_type'];
- //背景颜色
- $invitegift_config['invite_poster_back_color'] = $city_config['invite_poster_back_color'];
- //背景图片
- if(!empty($city_config['invite_poster_back_img'])){
- $invitegift_config['invite_poster_back_img'] = tomedia($city_config['invite_poster_back_img']);
- }else{
- $invitegift_config['invite_poster_back_img'] = "";
- }
- //二维码
- if(!empty($city_config['invite_poster_qrcode_img'])){
- $invitegift_config['invite_poster_qrcode_img'] = tomedia($city_config['invite_poster_qrcode_img']);
- }else{
- $invitegift_config['invite_poster_qrcode_img'] = "";
- }
- //二维码背景颜色
- $invitegift_config['invite_poster_qrcode_backcolor'] = $city_config['invite_poster_qrcode_backcolor'];
- //二维码线条颜色
- $invitegift_config['invite_poster_qrcode_linecolor'] = $city_config['invite_poster_qrcode_linecolor'];
- //二维码边角类型:0、圆角,1、直角
- $invitegift_config['invite_poster_qrcode_corner_type'] = $city_config['invite_poster_qrcode_corner_type'];
- //二维码大小
- $invitegift_config['invite_poster_qrcode_size'] = $city_config['invite_poster_qrcode_size'];
- //二维码边框状态:1、开启,0、关闭
- $invitegift_config['invite_poster_qrcode_border_status'] = $city_config['invite_poster_qrcode_border_status'];
- //二维码边框颜色
- $invitegift_config['invite_poster_qrcode_bordercolor'] = $city_config['invite_poster_qrcode_bordercolor'];
- //二维码距画布顶部
- $invitegift_config['invite_poster_qrcode_top'] = $city_config['invite_poster_qrcode_top'];
- //二维码距画布左侧
- $invitegift_config['invite_poster_qrcode_left'] = $city_config['invite_poster_qrcode_left'];
- //二维码更新时间
- $invitegift_config['invite_poster_update_time'] = $city_config['invite_poster_update_time'];
- }
- return $invitegift_config;
- }
- /**
- * @author cy 2021-03-11
- * @desc 邀请好友列表
- * @param $member_id
- * @param string $type
- * @param int $page
- * @param int $perpage
- * @return array
- */
- public function getInvitegiftRecordList($member_id , $type = '', $page = 1, $perpage = 10){
- $condition = " a.user_id = {$member_id} ";
- if(!empty($type)){
- if($type == 'success'){
- $condition .= " and a.is_old = 0 and invitee_status = 1 ";
- }
- }
- $offset = ($page - 1) * $perpage;
- $sql = "select a.* from ".C('DB_PREFIX')."lionfish_comshop_invitegift_record as a where $condition order by a.addtime desc limit {$offset},{$perpage} ";
- $list = M()->query( $sql );
- $need_data = [];
- if( !empty($list) )
- {
- foreach( $list as &$v )
- {
- $tmp_arr = $this->getInvitegiftRecordDetail($v);
- $need_data[] = $tmp_arr;
- }
- }
- return $need_data;
- }
- /**
- * @author cy 2021-02-18
- * @desc 获取单条邀新有礼记录信息
- * @param array $collect
- */
- public function getInvitegiftRecordDetail($invitegift_record){
- $tmp_arr = [];
- $member_info = M('lionfish_comshop_member')->where(array('member_id'=>$invitegift_record['invitee_userid']))->field('avatar,username')->find();
- $tmp_arr['invitee_userid'] = $invitegift_record['invitee_userid'];
- $tmp_arr['avatar'] = isset($member_info['avatar']) ? $member_info['avatar'] : '';
- $tmp_arr['nickname'] = isset($member_info['username']) ? $member_info['username'] : '';
- if($invitegift_record['is_old'] == 1){
- $tmp_arr['user_type'] = 'old';
- $tmp_arr['invite_type'] = 'old';
- $tmp_arr['reward_content'] = '无奖励';
- $tmp_arr['receive_content'] = '暂不参与';
- }else{
- $tmp_arr['user_type'] = 'new';
- if($invitegift_record['invitee_status'] == 1){//已领取
- $tmp_arr['reward_content'] = '奖励已到账';
- $tmp_arr['receive_content'] = '邀请成功';
- $tmp_arr['invite_type'] = 'success';
- }else{//未领取
- $tmp_arr['invite_type'] = 'wait';
- if($invitegift_record['invitees_reward_type'] == 1){//新人注册(授权登录)即奖励
- $tmp_arr['reward_content'] = '奖励待到账';
- $tmp_arr['receive_content'] = '注册成功登录后即奖励';
- $tmp_arr['invite_order_btn'] = 0;
- }else{
- if($invitegift_record['invitees_reward_type'] == 2){//新人注册(授权登录)并且下单奖励
- $tmp_arr['reward_content'] = '邀请下单';
- $tmp_arr['receive_content'] = '注册成功,受邀人下单后即为邀请成功';
- $tmp_arr['invite_order_btn'] = 1;
- }else if($invitegift_record['invitees_reward_type'] == 0){//新人注册(授权登录)和下单分别奖励
- $tmp_arr['reward_content'] = '邀请下单';
- $tmp_arr['receive_content'] = '注册成功,下单后继续奖励';
- $tmp_arr['invite_order_btn'] = 1;
- }
- if($invitegift_record['invite_activity_reward_type'] == 1){//订单售后期结束获得奖励
- //会员已付款订单数
- $success_where = " and member_id = ".$invitegift_record['invitee_userid']." and order_status_id in (1,4,6,7,11,14) and type <> 'integral' ";
- $order_count = D('Seller/Order')->get_order_count($success_where);
- //会员退款订单数
- $refund_cancel_where = " and member_id = ".$invitegift_record['invitee_userid']." and order_status_id in (7) and type <> 'integral' ";
- $pay_refund_count = D('Seller/Order')->get_order_count($refund_cancel_where);
- if($order_count > 0){
- if($order_count > $pay_refund_count){
- $tmp_arr['invite_order_btn'] = 0;
- $tmp_arr['reward_content'] = '奖励待到账';
- $tmp_arr['reward_tip'] = '被邀请人的订单在售后期内,需要等待售后期结束才能获得活动奖励';
- }else{
- $tmp_arr['invite_type'] = 'invalid';
- $tmp_arr['reward_content'] = '奖励失效';
- $tmp_arr['invite_order_btn'] = 1;
- $tmp_arr['reward_tip'] = '被邀请人的订单在售后期内发生退款,需要被邀请人重新下单才可获得奖励';
- }
- }
- }
- }
- }
- }
- $tmp_arr['addtime'] = date('Y-m-d H:i',$invitegift_record['addtime']);
- return $tmp_arr;
- }
- /**
- * @author cy 2021-03-12
- * @desc 推荐有礼页面
- */
- public function getInvitegiftIndex($member_id){
- $need_data = [];
- $config_data = $this->getInvitegiftConfig();
- if(isset($config_data['is_invite_open_status']) && $config_data['is_invite_open_status'] == 1){
- //活动打开页面顶部背景图
- $need_data['invite_activity_open_topback_img'] = $config_data['invite_activity_open_topback_img'];
- //活动规则
- $need_data['invite_activity_rules'] = $config_data['invite_activity_rules'];
- //活动积分/优惠卷使用规则
- $need_data['invite_activity_use_rules'] = $config_data['invite_activity_use_rules'];
- }
- return $need_data;
- }
- /**
- * @author cy 2021-03-12
- * @desc 保存邀请记录并返回是否可以领取礼包
- * @param $share_id 邀请人
- * @param $member_id 被邀请人
- * @param $is_old 是否老用户:1、是,0、不是
- * @return int 1、可以领取,0、不能领取,2、老用户不能领取
- */
- public function insertInvitegiftRecord($share_id,$member_id, $is_old){
- $is_can_collect_gift = 0;
- $city_config = $this->getInvitegiftConfig();
- if(isset($city_config['is_invite_open_status']) && $city_config['is_invite_open_status'] == 1){
- $insert_data = [];
- $insert_data['user_id'] = $share_id;
- $insert_data['invitee_userid'] = $member_id;
- $insert_data['is_old'] = $is_old;
- $insert_data['inviter_reward_type'] = $city_config['inviter_reward_type'];
- $insert_data['inviter_reward_couponid'] = $city_config['inviter_reward_couponid'];
- $insert_data['inviter_reward_point'] = $city_config['inviter_reward_point'];
- $insert_data['invitees_reward_type'] = $city_config['invitees_reward_type'];
- $insert_data['invitees_register_reward_type'] = $city_config['invitees_register_reward_type'];
- $insert_data['invitees_register_reward_couponid'] = $city_config['invitees_register_reward_couponid'];
- $insert_data['invitees_register_reward_point'] = $city_config['invitees_register_reward_point'];
- $insert_data['invitees_order_reward_type'] = $city_config['invitees_order_reward_type'];
- $insert_data['invitees_order_reward_couponid'] = $city_config['invitees_order_reward_couponid'];
- $insert_data['invitees_order_reward_point'] = $city_config['invitees_order_reward_point'];
- $insert_data['invite_activity_reward_type'] = $city_config['invite_activity_reward_type'];
- $insert_data['addtime'] = time();
- if($is_old == 1){//老用户默认已领取
- $insert_data['invitee_status'] = 1;
- $insert_data['invitee_register_status'] = 1;
- $insert_data['status'] = 1;
- }
- $this->addInvitegiftRecord($insert_data);
- if($is_old == 1){
- $is_can_collect_gift = 2;
- }else{
- //1、新人注册(授权登录)即奖励 0、新人注册(授权登录)和下单分别奖励
- if($city_config['invitees_reward_type'] == 1 || $city_config['invitees_reward_type'] == 0){
- $is_can_collect_gift = 1;
- }else{
- $is_can_collect_gift = 0;
- }
- }
- }
- return $is_can_collect_gift;
- }
- /**
- * @author cy 2021-03-12
- * @desc 添加邀新有礼记录
- * @param $data
- * @return int
- */
- public function addInvitegiftRecord( $data )
- {
- $id = M('lionfish_comshop_invitegift_record')->add( $data );
- return $id;
- }
- /************************************领取邀新礼包 begin*********************************************/
- /**
- * @author cy 2021-03-12
- * @desc 新用户领取礼包
- * @param $user_id
- * @return array
- */
- public function collectInvitegift( $user_id ){
- $need_data = [];
- M()->startTrans();
- $invitegift_record = $this->getInvitegiftRecordCollect($user_id);
- if(!empty($invitegift_record)){
- //被邀请者未领取礼包
- if($invitegift_record['invitee_status'] == 0){
- if($invitegift_record['invitees_reward_type'] == 0 && $invitegift_record['invitee_register_status'] == 1){
- // 事务回滚
- M()->rollback();
- return ['code'=>4 ,'message'=>'已领取新人礼包,下单后继续领取'];
- //新人注册(授权登录)和下单分别奖励
- }else if($invitegift_record['invitees_reward_type'] == 0 && $invitegift_record['invitee_register_status'] == 0){
- //新人注册(授权登录)奖励
- $gift_data = $this->receiveRegisterInvitegift($invitegift_record);
- //更新被邀请者已领取
- $this->updateInvitegiftRecord($invitegift_record['id'], array('invitee_register_status'=>1));
- $need_data['coupon_info'] = $gift_data['coupon_info'];
- $need_data['point'] = $gift_data['point'];
- //新人注册(授权登录)即奖励
- }else if($invitegift_record['invitees_reward_type'] == 1){
- //新人注册(授权登录)奖励
- $gift_data = $this->receiveRegisterInvitegift($invitegift_record);
- //更新被邀请者已领取
- $this->updateInvitegiftRecord($invitegift_record['id'], array('invitee_status'=>1,'invitee_register_status'=>1));
- //邀请者领取礼包
- $this->inviterReceiveInvitegift($invitegift_record);
- $need_data['coupon_info'] = $gift_data['coupon_info'];
- $need_data['point'] = $gift_data['point'];
- //新人注册(授权登录)并且下单奖励 暂不领取
- }else if($invitegift_record['invitees_reward_type'] == 2){
- // 事务回滚
- M()->rollback();
- return ['code'=>3,'message'=>'下单后才能领取礼包'];
- }
- }else{
- // 事务回滚
- M()->rollback();
- return ['code'=>2,'message'=>'礼包已领取过'];
- }
- }else{
- // 事务回滚
- M()->rollback();
- return ['code'=>1,'message'=>'没有未领取礼包'];
- }
- M()->commit();
- $need_data['code'] = 0;
- return $need_data;
- }
- /**
- * @author cy 2021-03-12
- * @desc 新人注册即奖励
- * @param $invitegift_record
- */
- public function receiveRegisterInvitegift($invitegift_record){
- $need_data = [];
- //被邀请者新人注册(授权登录)奖励类型
- //赠送优惠券id
- $couponid = $invitegift_record['invitees_register_reward_couponid'];
- //赠送积分数
- $point = $invitegift_record['invitees_register_reward_point'];
- //0 送优惠券和积分
- if($invitegift_record['invitees_register_reward_type'] == 0){
- //新人送优惠券
- $need_data['coupon_info'] = $this->sendInvitegiftCoupon($couponid, $invitegift_record['invitee_userid'], $invitegift_record['id'], 'invitegift_new');
- //新人送积分
- $this->sendInvitegiftPoint($point, $invitegift_record['invitee_userid'], $invitegift_record['id'], 'invitegift_new');
- $need_data['point'] = $point;
- //1 送优惠券
- }else if($invitegift_record['invitees_register_reward_type'] == 1){
- //新人送优惠券
- $need_data['coupon_info'] = $this->sendInvitegiftCoupon($couponid, $invitegift_record['invitee_userid'], $invitegift_record['id'],'invitegift_new');
- $need_data['point'] = 0;
- //2 送积分
- }else if($invitegift_record['invitees_register_reward_type'] == 2){
- //新人送积分
- $this->sendInvitegiftPoint($point, $invitegift_record['invitee_userid'], $invitegift_record['id'], 'invitegift_new');
- $need_data['point'] = $point;
- $need_data['coupon_info'] = [];
- }
- return $need_data;
- }
- /**
- * @author cy 2021-02-20
- * @desc 邀请者领取礼包
- * @param $invitegift_record
- */
- public function inviterReceiveInvitegift($invitegift_record){
- //优惠券
- $couponid = $invitegift_record['inviter_reward_couponid'];
- //积分
- $point = $invitegift_record['inviter_reward_point'];
- //送优惠券和积分
- if($invitegift_record['inviter_reward_type'] == 0){
- $this->sendInvitegiftCoupon($couponid, $invitegift_record['user_id'], $invitegift_record['id'], 'invitegift');
- $this->sendInvitegiftPoint($point, $invitegift_record['user_id'], $invitegift_record['id'], 'invitegift');
- //送优惠券
- }else if($invitegift_record['inviter_reward_type'] == 1){
- $this->sendInvitegiftCoupon($couponid, $invitegift_record['user_id'], $invitegift_record['id'], 'invitegift');
- //送积分
- }else if($invitegift_record['inviter_reward_type'] == 2){
- $this->sendInvitegiftPoint($point, $invitegift_record['user_id'], $invitegift_record['id'], 'invitegift');
- }
- //更新邀请者已领取
- $this->updateInvitegiftRecord($invitegift_record['id'],array('status'=>1));
- }
- /**
- * @author cy 2021-03-12
- * @desc 邀新有礼送优惠券
- * @param $couponid
- * @param $user_id
- * @param $receive_type invitegift_new 被邀请者,invitegift 邀请者
- */
- public function sendInvitegiftCoupon($couponid, $user_id , $invite_id, $receive_type){
- //发放优惠券
- $result = D('Home/Voucher')->send_invitegift_coupon_byId($couponid ,$user_id, $invite_id ,$receive_type);
- if($result['code'] == 0){
- $coupons = M('lionfish_comshop_coupon_list')->where( array('id' => $result['id']) )->find();
- $coupons['begin_time'] = date('Y-m-d H:i:s',$coupons['begin_time']);
- $coupons['end_time'] = date('Y-m-d H:i:s',$coupons['end_time']);
- return $coupons;
- }else{
- return array();
- }
- }
- /**
- * @author cy 2021-02-20
- * @desc 邀新有礼送积分
- * @param $point
- * @param $user_id
- * @param $receive_type invitegift_new 被邀请者,invitegift 邀请者
- */
- public function sendInvitegiftPoint($point, $user_id , $invite_id,$receive_type){
- $order_model = D('Seller/Order');
- $order_model->charge_member_score( $user_id , $point,'in', $receive_type, $invite_id);
- }
- /**
- * @author cy 2021-03-12
- * @desc 更新邀新有礼记录表
- * @param $id
- * @param $data
- * @return mixed
- */
- public function updateInvitegiftRecord($id,$data){
- return M('lionfish_comshop_invitegift_record')->where(array('id'=>$id))->save($data);
- }
- /**
- * @author cy 2021-03-12
- * @desc 通过被邀请人获取邀新有礼记录
- * @param $user_id
- * @return mixed
- */
- public function getInvitegiftRecordCollect($user_id){
- $collect = M('lionfish_comshop_invitegift_record')->where(array('invitee_userid'=>$user_id))->find();
- return $collect;
- }
- /************************************领取邀新礼包 end*********************************************/
- /**
- * @author cy 2021-03-12
- * @desc 立即邀请判断
- * @param $user_id
- * @return array
- */
- public function checkInvitegift($member_id){
- $result = [];
- $result['code'] = 0;
- $member_info = M('lionfish_comshop_member')->where(array('member_id'=>$member_id))->field('share_status')->find();
- if($member_info['share_status'] == 0){
- $result['code'] = 1;
- $result['message'] = "邀请人数超过活动限制";
- }else{
- $config_data = $this->getInvitegiftConfig();
- //是否开启邀请人数限制:1、开启,0、关闭
- $is_open_invitation_limit = $config_data['is_open_invitation_limit'];
- //邀请人数限制人数
- $invitation_limit_person = $config_data['invitation_limit_person'];
- if($is_open_invitation_limit == 1){
- $count = $this->getInviteeCout($member_id);
- if($count >= $invitation_limit_person){
- $result['code'] = 1;
- $result['message'] = "邀请人数超过活动限制";
- }
- }
- }
- return $result;
- }
- /**
- * @author cy 2021-03-12
- * @desc 邀请优惠券列表
- * @param $member_id
- * @param int $page
- * @param int $perpage
- * @return array
- */
- public function getInvitegiftCouponList( $member_id , $page = 1, $perpage = 10 ){
- $offset = ($page - 1)*$perpage;
- $condition = " user_id=".$member_id." and receive_type in ('invitegift','invitegift_new') ";
- //未使用
- $condition .= " and consume= 'N' and end_time> ".time();
- $coupon_list = M('lionfish_comshop_coupon_list')->where($condition)->order('add_time desc')->limit($offset,$perpage)->select();
- foreach($coupon_list as $k=>&$v){
- $v['begin_time'] = date('Y-m-d H:i:s', $v['begin_time']);
- $v['end_time'] = date('Y-m-d H:i:s', $v['end_time']);
- }
- return $coupon_list;
- }
- /**
- * @author cy 2021-03-12
- * @desc 邀请积分明细列表
- * @param $user_id
- * @param int $page
- * @param int $perpage
- * @return array
- */
- public function getInvitegiftPointsList( $member_id , $page = 1, $perpage = 10 ){
- $offset = ($page - 1)*$perpage;
- $condition = " member_id=".$member_id." and type in ('invitegift_new','invitegift')";
- $point_list = M('lionfish_comshop_member_integral_flow')->where($condition)->order('addtime desc')->limit($offset,$perpage)->select();
- if( !empty($point_list) )
- {
- foreach($point_list as &$collect )
- {
- $collect['addtime'] = date('Y-m-d H:i:s', $collect['addtime']);
- }
- }
- return $point_list;
- }
- /**
- * @author cy 2021-03-12
- * @desc 邀请总积分
- * @param $member_id
- * @return int
- */
- public function getInvitegiftPointsTotal($member_id){
- $condition = " member_id=".$member_id." and type in ('invitegift_new','invitegift')";
- $total_point = M('lionfish_comshop_member_integral_flow')->where($condition)->sum('score');
- return empty($total_point) ? 0 : $total_point;
- }
- /**
- * @author cy 2021-03-18
- * @desc 新用户下单后领取礼包
- * @param $order_collect
- * @param $order_type
- * @return array
- */
- public function collectInvitegiftAfterOrder( $order_info, $order_type ){
- $need_data = [];
- $user_id = $order_info['member_id'];
- $invitegift_record = $this->getInvitegiftRecordCollect($user_id);
- if(!empty($invitegift_record)){
- //被邀请者未领取礼包
- if($invitegift_record['invitee_status'] == 0){
- //活动奖励:0、下单支付完成获得奖励,1、订单售后期结束获得奖励
- $invite_activity_reward_type = $invitegift_record['invite_activity_reward_type'];
- //0、新人注册(授权登录)和下单分别奖励 或者 2、新人注册(授权登录)并且下单奖励
- if($invitegift_record['invitees_reward_type'] == 0 || $invitegift_record['invitees_reward_type'] == 2){
- //0、下单支付完成获得奖励,1、订单售后期结束获得奖励
- if(($invite_activity_reward_type == 0 && $order_type == 'orderpay') || ($invite_activity_reward_type == 1 && $order_type == 'aftersaletime')){
- //下单完成奖励
- $gift_data = $this->receiveOrderInvitegift($invitegift_record);
- //更新被邀请者已领取
- $this->updateInvitegiftRecord($invitegift_record['id'],['invitee_status'=>1]);
- //邀请者领取礼包
- $this->inviterReceiveInvitegift($invitegift_record);
- $need_data['coupon_info'] = $gift_data['coupon_info'];
- $need_data['point'] = $gift_data['point'];
- }else{
- return ['code'=>3,'message'=>'礼包未达领取条件'];
- }
- }else{
- return ['code'=>3,'message'=>'礼包未达领取条件'];
- }
- }else{
- return ['code'=>2,'message'=>'礼包已领取过'];
- }
- }else{
- return ['code'=>1,'message'=>'没有未领取礼包'];
- }
- $need_data['code'] = 0;
- return $need_data;
- }
- /**
- * @author cy 2021-02-22
- * @desc 下单完成即奖励
- * @param $invitegift_record
- */
- public function receiveOrderInvitegift($invitegift_record){
- $need_data = [];
- //被邀请者下单完成奖励类型
- //赠送优惠券id
- $couponid = $invitegift_record['invitees_order_reward_couponid'];
- //赠送积分数
- $point = $invitegift_record['invitees_order_reward_point'];
- //0 送优惠券和积分
- if($invitegift_record['invitees_order_reward_type'] == 0){
- //新人送优惠券
- $need_data['coupon_info'] = $this->sendInvitegiftCoupon($couponid, $invitegift_record['invitee_userid'], $invitegift_record['id'], 'invitegift_new');
- //新人送积分
- $this->sendInvitegiftPoint($point, $invitegift_record['invitee_userid'], $invitegift_record['id'],'invitegift_new');
- $need_data['point'] = $point;
- //1 送优惠券
- }else if($invitegift_record['invitees_order_reward_type'] == 1){
- //新人送优惠券
- $need_data['coupon_info'] = $this->sendInvitegiftCoupon($couponid, $invitegift_record['invitee_userid'], $invitegift_record['id'], 'invitegift_new');
- $need_data['point'] = 0;
- //2 送积分
- }else if($invitegift_record['invitees_order_reward_type'] == 2){
- //新人送积分
- $this->sendInvitegiftPoint($point, $invitegift_record['invitee_userid'], $invitegift_record['id'],'invitegift_new');
- $need_data['point'] = $point;
- $need_data['coupon_info'] = [];
- }
- return $need_data;
- }
- }
|