mirror of
https://gitee.com/ShopeX/OMS
synced 2026-04-04 14:36:50 +08:00
153 lines
6.6 KiB
PHP
153 lines
6.6 KiB
PHP
<?php
|
|
/**
|
|
* Copyright 2026 ShopeX (https://www.shopex.cn)
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
class ome_member_func {
|
|
|
|
/**
|
|
* 更新订单会员信息
|
|
* @access public
|
|
* @param Array $member_info 会员信息
|
|
* @param String $shop_id 店铺ID
|
|
* @param Number $old_member_id 订单会员ID
|
|
* @param Array $old_member 更新前的会员信息
|
|
* @return int 会员ID
|
|
*/
|
|
public function save($member_info,$shop_id='',$old_member_id='',&$old_member=array()){
|
|
|
|
if (empty($member_info)) return null;
|
|
$membersObj = app::get('ome')->model('members');
|
|
|
|
$addressObj = app::get('ome')->model('member_address');
|
|
$oFunc = kernel::single('eccommon_regions');
|
|
|
|
if (!isset($member_info['area'])){
|
|
if($member_info['area_state']){
|
|
$area = $member_info['area_state'].'/'.$member_info['area_city'].'/'.$member_info['area_district'];
|
|
$oFunc->region_validate($area);
|
|
$member_info['area'] = $area;
|
|
}
|
|
|
|
}
|
|
$shopex_shop_type = ome_shop_type::shopex_shop_type();
|
|
if ($old_member_id){
|
|
$md5_field = array('uname','name','area','addr','phone','mobile','telephone','email','zipcode');
|
|
$old_member_info = $membersObj->getRow($old_member_id);
|
|
$old_member = $old_member_info;
|
|
$update_flag = false;
|
|
foreach($md5_field as $sdf=>$field){
|
|
$compre_value = trim($member_info[$field]);
|
|
if (empty($compre_value)) continue;
|
|
if ($member_info[$field] != $old_member_info[$field]){
|
|
$update_flag = true;
|
|
}
|
|
}
|
|
if ($update_flag == false){
|
|
return $old_member_id;
|
|
}
|
|
}
|
|
|
|
if (empty($member_info['name'])) $member_info['name'] = $member_info['uname'];
|
|
$member_detail = array();
|
|
$member_id = null;
|
|
|
|
|
|
if($member_info['uname']){
|
|
$member_info['buyer_open_uid'] = $member_info['buyer_open_uid'] ? : '';
|
|
//判断是否存在该会员
|
|
if(!$member_info['member_id']){
|
|
if($member_info['shop_type']){
|
|
if(in_array($member_info['shop_type'],$shopex_shop_type)){
|
|
$member_detail = $membersObj->dump(array('uname'=>$member_info['uname'],'shop_id'=>$shop_id,'shop_type'=>$member_info['shop_type']), 'member_id');
|
|
}else{
|
|
$member_detail = $membersObj->dump(array('uname'=>$member_info['uname'],'shop_type'=>$member_info['shop_type'],'buyer_open_uid'=>$member_info['buyer_open_uid']), 'member_id');
|
|
}
|
|
}else{
|
|
$member_detail = $membersObj->dump(array('uname'=>$member_info['uname']), 'member_id');
|
|
}
|
|
|
|
|
|
}else{
|
|
$member_detail['member_id'] = $member_info['member_id'];
|
|
}
|
|
|
|
$area = $member_info['area'];
|
|
$area = str_replace('::','',$area);
|
|
$shop_area = '';
|
|
if($member_info['consignee']['area_state']){
|
|
$shop_area = $member_info['consignee']['area_state'].'/'.$member_info['consignee']['area_city'].'/'.$member_info['consignee']['area_district'];
|
|
$oFunc->region_validate($shop_area);
|
|
$shop_area = str_replace('::','',$shop_area);
|
|
}
|
|
|
|
|
|
$members_data = array(
|
|
'account' => array(
|
|
'uname' => $member_info['uname'],
|
|
),
|
|
'contact' => array(
|
|
'name' => $member_info['name'],
|
|
'area' => $area,
|
|
'addr' => $member_info['addr'],
|
|
'phone' => array(
|
|
'mobile' => $member_info['mobile'],
|
|
'telephone' => $member_info['tel'],
|
|
),
|
|
'email' => $member_info['email'],
|
|
'zipcode' => $member_info['zip'],
|
|
),
|
|
'buyer_open_uid' => $member_info['buyer_open_uid'],
|
|
'shop_type' => $member_info['shop_type'],
|
|
'uname_md5' => md5($member_info['uname']), //md5用户名
|
|
);
|
|
|
|
if(in_array($member_info['shop_type'],$shopex_shop_type)){
|
|
$members_data['shop_id'] = $shop_id;
|
|
}
|
|
$shop_members_data = array(
|
|
'ship_name' => $member_info['consignee']['name'] ? $member_info['consignee']['name'] : $member_info['name'],
|
|
'ship_area' => $shop_area ? $shop_area : $area,
|
|
'ship_addr' => $member_info['consignee']['addr'] ? $member_info['consignee']['addr'] : $member_info['addr'] ,
|
|
'ship_mobile' => $member_info['consignee']['mobile'] ? $member_info['consignee']['mobile'] : $member_info['mobile'],
|
|
'ship_tel' => $member_info['consignee']['telephone'] ? $member_info['consignee']['telephone'] : $member_info['tel'],
|
|
'ship_zip' => $member_info['consignee']['zip'] ? $member_info['consignee']['zip'] : $member_info['zip'],
|
|
'ship_email' => $member_info['consignee']['email'] ? $member_info['consignee']['email'] : $member_info['email'],
|
|
|
|
);
|
|
if (empty($member_detail['member_id'])){
|
|
|
|
$membersObj->save($members_data);
|
|
$member_detail['member_id'] = $members_data['member_id'];
|
|
}else{
|
|
unset($members_data['shop_id'],$members_data['shop_type'],$members_data['account']['uname']);
|
|
|
|
$members_data = array_merge($members_data, array('member_id'=>$member_detail['member_id']));
|
|
$membersObj->save($members_data);
|
|
|
|
}
|
|
$member_id = $member_detail['member_id'];
|
|
if($member_id){
|
|
$shop_members_data['member_id'] = $member_id;
|
|
$addressObj->create_address($shop_members_data);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
return $member_id;
|
|
}
|
|
|
|
} |