<?php
include_once(CORE_DIR.'/api/shop_api_object.php');
class api_b2b_2_0_member extends shop_api_object {
    var $max_number=100;
    var $app_error=array(
            'dealer_member_not_exists'=>array('no'=>'b_member_001','debug'=>'','level'=>'error','desc'=>'经销商所对应的会员记录无效','info'=>''),
            'dealer_member_lv_not_exists'=>array('no'=>'b_member_005','debug'=>'','level'=>'error','desc'=>'经销商所对应的会员级别不存在','info'=>'')
    );
    function getColumns(){
        $columns=array(
         
        );
        return $columns;
    }
   
    /**
     * 验证经销商记录是否存在
     *
     * @param int $dealer_id 
     * @param array $member 
     * @param string $colums 
     *
     * @return 验证经销商记录是否存在
     */
    function verify_member_valid($dealer_id,& $member,$colums='*'){
        $_member = $this->db->selectrow('select '.$colums.' from sdb_members where certificate_id='.$dealer_id);      
        if(!$_member){
           $this->add_application_error('dealer_member_not_exists');  
        }else{
            $member = $_member;
        }
    }
    
     /**
     * 验证经销商会员等级是否存在
     *
     * @param member_lv_id $dealer_id 
     * @param array $member 
     * @param string $colums 
     *
     * @return 验证经销商记录是否存在
     */
    function verify_member_lv_valid($member_lv_id,& $member_lv,$colums='*'){
	    if(empty($member_lv_id)){
			$member_lv = array('dis_count'=>1);
			return true;
		}
		
        $_member_lv = $this->db->selectrow('select '.$colums.' from sdb_member_lv where member_lv_id='.$member_lv_id);      
        if(!$_member_lv){
           $this->add_application_error('dealer_member_lv_not_exists');  
        }else{
            $member_lv = $_member_lv;
        }
    }


     
     /**
     * 获取经销商更改过的licence信息
     *
     * @param array $data 
     *
     * @return 经销商更改过的licence信息
     
    function search_licence_changed(){       
        $result['data_info'] = $this->db->selec('select member_id,curr_licence from sdb_members where curr_licence!=last_licence');
        $this->api_response('true',false,$result);
    }*/
	
	function getMemberPoint($userId) {
        $sSql = 'SELECT point FROM sdb_members WHERE member_id='.intval($userId);
        $aUserPoint = $this->db->selectrow($sSql);        
        return intval($aUserPoint['point']);
    }
	
	function chgPoint($userId, $nPoint, $sReason, $relatedId=null){
		    $aUserPoint['point'] = $this->getMemberPoint($userId);
            $aUserPoint['point'] += $nPoint;

            $rRs = $this->db->query('select * from sdb_members where member_id='.$userId);
            $sSql = $this->db->GetUpdateSQL($rRs, $aUserPoint);
            if($sSql)$this->db->exec($sSql);
            $aPointHistory = array(
                                'member_id' => $userId,
                                'point' => $nPoint,
                                'reason' => $sReason,
                                'related_id' => $relatedId);
            $this->addHistory($aPointHistory);
	}
	
	function addHistory($aData) {
        $aHistoryReason = $this->getHistoryReason();
        $aData['time'] = time();
        $aData['type'] = $aHistoryReason[$aData['reason']]['type'];
        $aData['describe'] = $aHistoryReason[$aData['reason']]['describe'];
        $aData['type'] = $aHistoryReason[$aData['reason']]['type'];
        $rRs = $this->db->query('SELECT * FROM sdb_point_history WHERE 0=1');
        $sSql = $this->db->GetInsertSQL($rRs, $aData);
        $this->db->query($sSql);
    }
	
	 function getHistoryReason() {

        $aHistoryReason = array(
                            'order_pay_use' => array(
                                                    'describe' => __('订单消费积分'),
                                                    'type' => 1,
                                                    'related_id' => 'sdb_mall_orders',
                                                ),
                            'order_pay_get' => array(
                                                    'describe' => __('订单获得积分.'),
                                                    'type' => 2,
                                                    'related_id' => 'sdb_mall_orders',
                                                ),
                            'order_refund_use' => array(
                                                    'describe' => __('退还订单消费积分'),
                                                    'type' => 1,
                                                    'related_id' => 'sdb_mall_orders',
                                                ),
                            'order_refund_get' => array(
                                                    'describe' => __('扣掉订单所得积分'),
                                                    'type' => 2,
                                                    'related_id' => 'sdb_mall_orders',
                                                ),
                            'order_cancel_refund_consume_gift' => array(
                                                    'describe' => __('Score deduction for gifts refunded for order cancelling.'),
                                                    'type' => 1,
                                                    'related_id' => 'sdb_mall_orders',
                                                ),
                            'exchange_coupon' => array(
                                                    'describe' => __('兑换优惠券'),
                                                    'type' => 3,
                                                    'related_id' => '',
                                                ),
                            'operator_adjust' => array(
                                                    'describe' => __('管理员改变积分.'),
                                                    'type' => 3,
                                                    'related_id' => '',
                                                ),
                            'consume_gift' => array(
                                                    'describe' => __('积分换赠品.'),
                                                    'type' => 3,
                                                    'related_id' => 'sdb_mall_orders',
                                                )
            );
                            
        return $aHistoryReason;
    }
}