重构:批量导入会员重构
This commit is contained in:
parent
336d439662
commit
cc870ef5de
|
|
@ -30,6 +30,7 @@ use app\common\services\finance\PointService;
|
||||||
use app\common\services\member\MemberMergeService;
|
use app\common\services\member\MemberMergeService;
|
||||||
use app\common\services\Session;
|
use app\common\services\Session;
|
||||||
use app\backend\modules\member\services\FansItemService;
|
use app\backend\modules\member\services\FansItemService;
|
||||||
|
use app\frontend\modules\member\models\SubMemberModel as SubMember_Model;
|
||||||
use app\frontend\modules\member\services\MemberService;
|
use app\frontend\modules\member\services\MemberService;
|
||||||
use app\common\components\BaseController;
|
use app\common\components\BaseController;
|
||||||
use app\common\events\member\MemberDelEvent;
|
use app\common\events\member\MemberDelEvent;
|
||||||
|
|
@ -52,11 +53,11 @@ use app\common\models\MemberWechatModel;
|
||||||
use app\common\services\ExportService;
|
use app\common\services\ExportService;
|
||||||
use app\frontend\modules\member\models\MemberModel;
|
use app\frontend\modules\member\models\MemberModel;
|
||||||
use app\frontend\modules\member\models\SubMemberModel;
|
use app\frontend\modules\member\models\SubMemberModel;
|
||||||
use app\frontend\modules\member\models\SubMemberModel as SubMember_Model;
|
|
||||||
use app\Jobs\ChangeMemberRelationJob;
|
use app\Jobs\ChangeMemberRelationJob;
|
||||||
use app\Jobs\ModifyRelationshipChainJob;
|
use app\Jobs\ModifyRelationshipChainJob;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
use Yunshop\Commission\models\Agents;
|
||||||
use Yunshop\Love\Common\Models\MemberLove;
|
use Yunshop\Love\Common\Models\MemberLove;
|
||||||
use Yunshop\Love\Common\Services\LoveChangeService;
|
use Yunshop\Love\Common\Services\LoveChangeService;
|
||||||
use Yunshop\MemberTags\Common\models\MemberTagsModel;
|
use Yunshop\MemberTags\Common\models\MemberTagsModel;
|
||||||
|
|
@ -390,109 +391,274 @@ class MemberController extends BaseController
|
||||||
|
|
||||||
public function memberExcelDemo()
|
public function memberExcelDemo()
|
||||||
{
|
{
|
||||||
$exportData['0'] = ['手机号', '密码'];
|
$exportData['0'] = ['真实姓名', '手机号', '密码', '分销商熊猫画等级ID', '分销商文创等级ID', '经销商熊猫画等级ID', '经销商文创等级ID'];
|
||||||
$file_name = '会员批量导入模板';
|
$file_name = '会员批量导入模板';
|
||||||
app('excel')->store(new \app\exports\FromArray($exportData), $file_name . '.xlsx', 'export');
|
app('excel')->store(new \app\exports\FromArray($exportData), $file_name . '.xlsx', 'export');
|
||||||
app('excel')->download(new \app\exports\FromArray($exportData), $file_name . '.xlsx')->send();
|
app('excel')->download(new \app\exports\FromArray($exportData), $file_name . '.xlsx')->send();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function memberExcel()
|
// 导入处理
|
||||||
{
|
public function memberExcel(){
|
||||||
$data = request()->input();
|
// 基本参数获取及处理
|
||||||
$uniacid = \YunShop::app()->uniacid;
|
$uniacid = \YunShop::app()->uniacid;
|
||||||
//excel 本身就重复的值
|
$data = request()->input();
|
||||||
if (!$data['data']['0']['手机号']) {
|
$data = (array)array_column($data['data'], null, '手机号');// 生成以手机号为键的新数组
|
||||||
$this->errorJson('第一项开头必须为手机号');
|
$phoneList = (array)array_column($data,'手机号');// 所有导入的手机号
|
||||||
}
|
if (count($data) <= 0) $this->errorJson('导入数据不能为空!');
|
||||||
if (!$data['data']['0']['密码']) {
|
// if (!$data['data']['0']['真实姓名']) $this->errorJson('第一项开头必须为真实姓名');
|
||||||
$this->errorJson('第二项开头必须为密码');
|
// if (!$data['data']['0']['手机号']) $this->errorJson('第二项开头必须为手机号');
|
||||||
}
|
// if (!$data['data']['0']['密码']) $this->errorJson('第三项开头必须为密码');
|
||||||
$data = array_column($data['data'], null, '手机号');
|
// if (!$data['data']['0']['分销商熊猫画等级ID']) $this->errorJson('第四项开头必须为分销商熊猫画等级ID');
|
||||||
foreach ($data['data'] as $key => $value) {
|
// if (!$data['data']['0']['分销商文创等级ID']) $this->errorJson('第五项开头必须为分销商文创等级ID');
|
||||||
if (!preg_match("/^1[3456789]{1}\d{9}$/", $value['手机号'])) {
|
// if (!$data['data']['0']['经销商熊猫画等级ID']) $this->errorJson('第六项开头必须为经销商熊猫画等级ID');
|
||||||
unset($data[$key]);
|
// if (!$data['data']['0']['经销商文创等级ID']) $this->errorJson('第七项开头必须为经销商文创等级ID');
|
||||||
}
|
// 根据手机号码 获取已经存在的数据信息
|
||||||
}
|
$hasData = MemberModel::uniacid()->select(['uid','mobile'])->whereIn('mobile', $phoneList)->get()->toArray();
|
||||||
$phone = array_keys($data);
|
$hasData = array_column($hasData,null,'mobile');
|
||||||
$phones = MemberModel::uniacid()->select('mobile')->whereIn('mobile', $phone)->pluck('mobile');
|
$hasPhoneList = array_column($hasData,'mobile');
|
||||||
if (!empty($phones)) {
|
|
||||||
// 存在重复值 取交集
|
$resultData['0'] = ['真实姓名', '手机号', '密码', '分销商熊猫画等级ID', '分销商文创等级ID', '经销商熊猫画等级ID', '经销商文创等级ID'];
|
||||||
$repeatPhone = array_intersect($phone, $phones->toArray());
|
$file_name = '会员批量导入结果';
|
||||||
//删除重复值
|
|
||||||
foreach ($repeatPhone as $value) {
|
$updateData = [];
|
||||||
if (isset($data[$value])) {
|
$insertData = [];
|
||||||
unset($data[$value]);
|
DB::beginTransaction();
|
||||||
|
try{
|
||||||
|
// 获取默认分组
|
||||||
|
$defaultGroupId = Member_Group::getDefaultGroupId()->first();
|
||||||
|
$defaultSubGroupId = $defaultGroupId->id ?: 0;
|
||||||
|
//获取默认头像
|
||||||
|
$memberSet = \Setting::get('shop.member');
|
||||||
|
if (isset($memberSet) && $memberSet['headimg']) $avatar = yz_tomedia($memberSet['headimg']);
|
||||||
|
else $avatar = Url::shopUrl('static/images/photo-mr.jpg');
|
||||||
|
// ------ 循环处理基本数据 ims_mc_members
|
||||||
|
foreach($data as $phone => $dataItem){
|
||||||
|
$salt = Str::random(8);
|
||||||
|
// 判断:添加 or 修改
|
||||||
|
if(in_array($phone,$hasPhoneList)){
|
||||||
|
// 修改
|
||||||
|
$updateData[] = [
|
||||||
|
'uid' => $hasData[$phone]['uid'],
|
||||||
|
'mobile' => $phone,
|
||||||
|
'nickname' => $dataItem['真实姓名'],
|
||||||
|
'realname' => $dataItem['真实姓名'],
|
||||||
|
'salt' => $salt,
|
||||||
|
'password' => md5($dataItem['密码'].$salt),
|
||||||
|
];
|
||||||
|
}else{
|
||||||
|
// 添加
|
||||||
|
$insertData[] = [
|
||||||
|
'uniacid' => $uniacid,
|
||||||
|
'mobile' => $phone,
|
||||||
|
'groupid' => $defaultSubGroupId,
|
||||||
|
'createtime' => $_SERVER['REQUEST_TIME'],
|
||||||
|
'nickname' => $dataItem['真实姓名'],
|
||||||
|
'realname' => $dataItem['真实姓名'],
|
||||||
|
'avatar' => $avatar,
|
||||||
|
'gender' => 0,
|
||||||
|
'residecity' => '',
|
||||||
|
'salt' => $salt,
|
||||||
|
'password' => md5($dataItem['密码'].$salt),
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (empty($data)) {
|
// 添加修改操作
|
||||||
return $this->errorJson('表格所有信息已存在,请勿重复导入!');
|
if (!MemberModel::insert($insertData)) throw new \Exception('批量添加失败');
|
||||||
|
if (count($updateData) > 0) $updateRes = (new MemberModel())->batchUpdate($updateData,'uid','uid');
|
||||||
|
$insertResultData = MemberModel::uniacid()->select(['uid','mobile'])->whereIn('mobile', $phoneList)->get()->toArray();
|
||||||
|
// ------ 循环处理用户相关数据
|
||||||
|
$memberIds = array_column($insertResultData,'uid');
|
||||||
|
$hasSubMemberList = SubMemberModel::uniacid()->select(['m_id','member_id','parent_id','relation'])->whereIn('member_id',$memberIds)->get()->toArray();
|
||||||
|
$parentIds = array_column($hasSubMemberList,null,'member_id');
|
||||||
|
$hasSubMemberUid = array_column($hasSubMemberList,'member_id');
|
||||||
|
$hasAgentList = Agents::uniacid()->select(['id','member_id'])->whereIn('member_id',$memberIds)->get()->toArray();
|
||||||
|
$hasAgentList = array_column($hasAgentList,null,'member_id');
|
||||||
|
$hasAgentUid = array_column($hasAgentList,'member_id');
|
||||||
|
$hasTeamDividendList = TeamDividendAgencyModel::uniacid()->select(['id','uid'])->whereIn('uid',$memberIds)->get()->toArray();
|
||||||
|
$hasTeamDividendList = array_column($hasTeamDividendList,null,'uid');
|
||||||
|
$hasTeamDividendUid = array_column($hasTeamDividendList,'uid');
|
||||||
|
$subInsertData = [];
|
||||||
|
$change_log = [];
|
||||||
|
$subUpdateData = [];
|
||||||
|
$insertAgentData = [];
|
||||||
|
$updateAgentData = [];
|
||||||
|
foreach($insertResultData as $key => $currentMemberInfo){
|
||||||
|
// 判断:是否已经存在
|
||||||
|
if(in_array($currentMemberInfo['uid'],$hasSubMemberUid)){
|
||||||
|
// 修改
|
||||||
|
$parentId = $parentIds[$currentMemberInfo['uid']]['parent_id'];
|
||||||
|
$relation = $parentIds[$currentMemberInfo['uid']]['relation'];
|
||||||
|
|
||||||
|
}else{
|
||||||
|
// 添加
|
||||||
|
$parentId = 0;
|
||||||
|
$relation = '';
|
||||||
|
$subInsertData[] = [
|
||||||
|
'member_id' => $currentMemberInfo['uid'],
|
||||||
|
'uniacid' => $uniacid,
|
||||||
|
'group_id' => $defaultSubGroupId,
|
||||||
|
'level_id' => 0,
|
||||||
|
'parent_id' => 0,
|
||||||
|
'inviter' => 1,
|
||||||
|
'invite_code' => \app\frontend\modules\member\models\MemberModel::generateInviteCode(),
|
||||||
|
'created_at' => $_SERVER['REQUEST_TIME'],
|
||||||
|
'updated_at' => $_SERVER['REQUEST_TIME']
|
||||||
|
];
|
||||||
|
$change_log[$key] = [
|
||||||
|
'uid' => $currentMemberInfo['uid'],
|
||||||
|
'parent_id' => 0,
|
||||||
|
'after_parent_id' => 0,
|
||||||
|
'status' => 1,
|
||||||
|
'uniacid' => \YunShop::app()->uniacid,
|
||||||
|
'created_at' => time(),
|
||||||
|
'updated_at' => time(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
// 处理分销商相关信息
|
||||||
|
$agentLevelId = $data[$currentMemberInfo['mobile']]['分销商熊猫画等级ID'] ?? 0;
|
||||||
|
$agentCulturalLevelId = $data[$currentMemberInfo['mobile']]['分销商文创等级ID'] ?? 0;
|
||||||
|
if(in_array($currentMemberInfo['uid'],$hasAgentUid)){
|
||||||
|
// 修改
|
||||||
|
$updateAgentData[] = [
|
||||||
|
'id' => $hasAgentList[$currentMemberInfo['uid']]['id'],
|
||||||
|
'agent_level_id' => $agentLevelId,
|
||||||
|
'cultural_level_id' => $agentCulturalLevelId,
|
||||||
|
];
|
||||||
|
}else{
|
||||||
|
// 添加
|
||||||
|
$insertAgentData[] = [
|
||||||
|
'uniacid' => $uniacid,
|
||||||
|
'member_id' => $currentMemberInfo['uid'],
|
||||||
|
'parent_id' => $parentId,
|
||||||
|
'parent' => $relation,
|
||||||
|
'agent_level_id' => $agentLevelId,
|
||||||
|
'cultural_level_id' => $agentCulturalLevelId,
|
||||||
|
'created_at' => time(),
|
||||||
|
'updated_at' => time(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
// 处理经销商信息
|
||||||
|
$teamDividendLevelId = $data[$currentMemberInfo['mobile']]['经销商熊猫画等级ID'] ?? 0;
|
||||||
|
$teamDividendCulturalLevelId = $data[$currentMemberInfo['mobile']]['经销商文创等级ID'] ?? 0;
|
||||||
|
if(in_array($currentMemberInfo['uid'],$hasTeamDividendUid)){
|
||||||
|
// 修改
|
||||||
|
TeamDividendAgencyModel::changeLevel($hasTeamDividendList[$currentMemberInfo['uid']]['id'],$teamDividendLevelId,'');
|
||||||
|
TeamDividendAgencyModel::changeLevel($hasTeamDividendList[$currentMemberInfo['uid']]['id'],$teamDividendCulturalLevelId,'cultural');
|
||||||
|
}else{
|
||||||
|
// 添加
|
||||||
|
TeamDividendAgencyModel::addTeamAgency([
|
||||||
|
'uniacid' => $uniacid,
|
||||||
|
'uid' => $currentMemberInfo['uid'],
|
||||||
|
'parent_id' => $parentId,
|
||||||
|
'relation' => $relation,
|
||||||
|
'level' => $teamDividendLevelId,
|
||||||
|
'cultural_level_id' => $teamDividendCulturalLevelId,
|
||||||
|
'upgrade_at' => time(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
$defaultGroupId = Member_Group::getDefaultGroupId()->first();
|
|
||||||
$defaultSubGroupId = $defaultGroupId->id ?: 0;
|
|
||||||
|
|
||||||
//整理数据入库
|
|
||||||
$i = 0;
|
|
||||||
$array = array();
|
|
||||||
//获取图片
|
|
||||||
$memberSet = \Setting::get('shop.member');
|
|
||||||
\Log::info('member_set', $memberSet);
|
|
||||||
if (isset($memberSet) && $memberSet['headimg']) {
|
|
||||||
$avatar = yz_tomedia($memberSet['headimg']);
|
|
||||||
} else {
|
|
||||||
$avatar = Url::shopUrl('static/images/photo-mr.jpg');
|
|
||||||
}
|
|
||||||
foreach ($data as $v) {
|
|
||||||
$salt = Str::random(8);
|
|
||||||
$array[$i] = [
|
|
||||||
'uniacid' => $uniacid,
|
|
||||||
'mobile' => $v['手机号'],
|
|
||||||
'groupid' => $defaultSubGroupId,
|
|
||||||
'createtime' => $_SERVER['REQUEST_TIME'],
|
|
||||||
'nickname' => $v['手机号'],
|
|
||||||
'avatar' => $avatar,
|
|
||||||
'gender' => 0,
|
|
||||||
'residecity' => '',
|
|
||||||
'salt' => $salt,
|
|
||||||
'password' => md5($v['密码'] . $salt),
|
|
||||||
];
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
if (!MemberModel::insert($array)) {
|
|
||||||
return $this->errorJson('批量添加失败');
|
|
||||||
}
|
|
||||||
//todo 批量插入同时无法返回主键ID故查询一次
|
|
||||||
$idArray = MemberModel::uniacid()->select('uid', 'mobile')->whereIn('mobile', array_keys($data))->get();
|
|
||||||
|
|
||||||
$subData = [];
|
if (Agents::insert($insertAgentData) && SubMember_Model::insert($subInsertData) && MemberRecord::insert($change_log)) {
|
||||||
$change_log = [];
|
if(count($updateAgentData)) $updateAgentRes = (new Agents())->batchUpdate($updateAgentData);
|
||||||
foreach ($idArray as $key => $value) {
|
|
||||||
$subData[$key] = array(
|
|
||||||
'member_id' => $value->uid,
|
DB::commit();
|
||||||
'uniacid' => $uniacid,
|
return $this->successJson('导入成功', ['data' => true]);
|
||||||
'group_id' => $defaultSubGroupId,
|
}
|
||||||
'level_id' => 0,
|
else throw new \Exception('导入数据失败!');
|
||||||
'parent_id' => 0,
|
}catch(\Exception $e){
|
||||||
'inviter' => 1,
|
DB::rollBack();
|
||||||
'invite_code' => \app\frontend\modules\member\models\MemberModel::generateInviteCode(),
|
$this->errorJson($e->getMessage());
|
||||||
'created_at' => $_SERVER['REQUEST_TIME'],
|
|
||||||
'updated_at' => $_SERVER['REQUEST_TIME']
|
|
||||||
);
|
|
||||||
$change_log[$key] = [
|
|
||||||
'uid' => $value->uid,
|
|
||||||
'parent_id' => 0,
|
|
||||||
'after_parent_id' => 0,
|
|
||||||
'status' => 1,
|
|
||||||
'uniacid' => \YunShop::app()->uniacid,
|
|
||||||
'created_at' => time(),
|
|
||||||
'updated_at' => time(),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
if (SubMember_Model::insert($subData) && MemberRecord::insert($change_log)) {
|
|
||||||
return $this->successJson('导入成功', ['data' => true]);
|
|
||||||
} else {
|
|
||||||
return $this->errorJson('导入失败');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// $data = array_column($data['data'], null, '手机号');
|
||||||
|
// foreach ($data['data'] as $key => $value) {
|
||||||
|
// if (!preg_match("/^1[3456789]{1}\d{9}$/", $value['手机号'])) {
|
||||||
|
// unset($data[$key]);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// $phone = array_keys($data);
|
||||||
|
// $phones = MemberModel::uniacid()->select('mobile')->whereIn('mobile', $phone)->pluck('mobile');
|
||||||
|
// if (!empty($phones)) {
|
||||||
|
// // 存在重复值 取交集
|
||||||
|
// $repeatPhone = array_intersect($phone, $phones->toArray());
|
||||||
|
// //删除重复值
|
||||||
|
// foreach ($repeatPhone as $value) {
|
||||||
|
// if (isset($data[$value])) {
|
||||||
|
// unset($data[$value]);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if (empty($data)) {
|
||||||
|
// return $this->errorJson('表格所有信息已存在,请勿重复导入!');
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// $defaultGroupId = Member_Group::getDefaultGroupId()->first();
|
||||||
|
// $defaultSubGroupId = $defaultGroupId->id ?: 0;
|
||||||
|
// // 整理数据入库
|
||||||
|
// $i = 0;
|
||||||
|
// $array = array();
|
||||||
|
// //获取图片
|
||||||
|
// $memberSet = \Setting::get('shop.member');
|
||||||
|
// \Log::info('member_set', $memberSet);
|
||||||
|
// if (isset($memberSet) && $memberSet['headimg']) {
|
||||||
|
// $avatar = yz_tomedia($memberSet['headimg']);
|
||||||
|
// } else {
|
||||||
|
// $avatar = Url::shopUrl('static/images/photo-mr.jpg');
|
||||||
|
// }
|
||||||
|
// foreach ($data as $v) {
|
||||||
|
// $salt = Str::random(8);
|
||||||
|
// $array[$i] = [
|
||||||
|
// 'uniacid' => $uniacid,
|
||||||
|
// 'mobile' => $v['手机号'],
|
||||||
|
// 'groupid' => $defaultSubGroupId,
|
||||||
|
// 'createtime' => $_SERVER['REQUEST_TIME'],
|
||||||
|
// 'nickname' => $v['手机号'],
|
||||||
|
// 'avatar' => $avatar,
|
||||||
|
// 'gender' => 0,
|
||||||
|
// 'residecity' => '',
|
||||||
|
// 'salt' => $salt,
|
||||||
|
// 'password' => md5($v['密码'] . $salt),
|
||||||
|
// ];
|
||||||
|
// $i++;
|
||||||
|
// }
|
||||||
|
// if (!MemberModel::insert($array)) {
|
||||||
|
// return $this->errorJson('批量添加失败');
|
||||||
|
// }
|
||||||
|
// //todo 批量插入同时无法返回主键ID故查询一次
|
||||||
|
// $idArray = MemberModel::uniacid()->select('uid', 'mobile')->whereIn('mobile', array_keys($data))->get();
|
||||||
|
|
||||||
|
// $subData = [];
|
||||||
|
// $change_log = [];
|
||||||
|
// foreach ($idArray as $key => $value) {
|
||||||
|
// $subData[$key] = array(
|
||||||
|
// 'member_id' => $value->uid,
|
||||||
|
// 'uniacid' => $uniacid,
|
||||||
|
// 'group_id' => $defaultSubGroupId,
|
||||||
|
// 'level_id' => 0,
|
||||||
|
// 'parent_id' => 0,
|
||||||
|
// 'inviter' => 1,
|
||||||
|
// 'invite_code' => \app\frontend\modules\member\models\MemberModel::generateInviteCode(),
|
||||||
|
// 'created_at' => $_SERVER['REQUEST_TIME'],
|
||||||
|
// 'updated_at' => $_SERVER['REQUEST_TIME']
|
||||||
|
// );
|
||||||
|
// $change_log[$key] = [
|
||||||
|
// 'uid' => $value->uid,
|
||||||
|
// 'parent_id' => 0,
|
||||||
|
// 'after_parent_id' => 0,
|
||||||
|
// 'status' => 1,
|
||||||
|
// 'uniacid' => \YunShop::app()->uniacid,
|
||||||
|
// 'created_at' => time(),
|
||||||
|
// 'updated_at' => time(),
|
||||||
|
// ];
|
||||||
|
// }
|
||||||
|
// if (SubMember_Model::insert($subData) && MemberRecord::insert($change_log)) {
|
||||||
|
// return $this->successJson('导入成功', ['data' => true]);
|
||||||
|
// } else {
|
||||||
|
// return $this->errorJson('导入失败');
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -909,7 +909,10 @@ class SurveyController extends BaseController{
|
||||||
'ims_yz_help_center_content',
|
'ims_yz_help_center_content',
|
||||||
'ims_yz_rich_text',
|
'ims_yz_rich_text',
|
||||||
'ims_yz_wechat_menu',
|
'ims_yz_wechat_menu',
|
||||||
|
'ims_yz_user_role',
|
||||||
|
'ims_yz_users_profile',
|
||||||
|
'ims_yz_role',
|
||||||
|
'ims_yz_permission',
|
||||||
|
|
||||||
// 经销商相关
|
// 经销商相关
|
||||||
'ims_yz_team_dividend_level',
|
'ims_yz_team_dividend_level',
|
||||||
|
|
|
||||||
|
|
@ -156,50 +156,16 @@ class TeamAgencyController extends BaseController
|
||||||
$agentData['uniacid'] = \YunShop::app()->uniacid;
|
$agentData['uniacid'] = \YunShop::app()->uniacid;
|
||||||
$agentData['upgrade_at'] = time();
|
$agentData['upgrade_at'] = time();
|
||||||
if((int)$agentData['level'] <= 0) return $this->message('添加失败,请选择代理等级!', '', 'error');
|
if((int)$agentData['level'] <= 0) return $this->message('添加失败,请选择代理等级!', '', 'error');
|
||||||
// 其他验证
|
|
||||||
$agency_model = new TeamDividendAgencyModel();
|
|
||||||
$agency_model->fill($agentData);
|
|
||||||
$validator = $agency_model->validator();
|
|
||||||
if ($validator->fails()) {
|
|
||||||
$this->error($validator->messages());
|
|
||||||
} else {
|
|
||||||
if ($agency_model->save()) {
|
|
||||||
// 升级后等级
|
|
||||||
$c_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find($agentData['level']);
|
|
||||||
// 升级前等级
|
|
||||||
$o_level = NULL;
|
|
||||||
// 升级日志
|
|
||||||
Uplog::addLog($agency_model, $o_level, $c_level);
|
|
||||||
//签合同
|
|
||||||
$data=[
|
|
||||||
'member_id'=>$agentData['uid'],
|
|
||||||
'created_at' => time(),
|
|
||||||
];
|
|
||||||
event(new \app\common\events\plugin\TeamDividendEvent($data));
|
|
||||||
//激活码
|
|
||||||
$upgrade_set = (new UpgradeService())->getUpgradeById($agentData['level']);
|
|
||||||
|
|
||||||
if ($upgrade_set) {
|
try{
|
||||||
$set = \Setting::get('plugin.team_dividend');
|
TeamDividendAgencyModel::addTeamAgency($agentData);
|
||||||
if ($set['is_activation_code'] && $upgrade_set[0]->code_num) {
|
|
||||||
$level_list = TeamDividendLevelModel::getList()->get();
|
|
||||||
$code_num = unserialize($upgrade_set[0]->code_num);
|
|
||||||
foreach($level_list as $key => $level) {
|
|
||||||
if($code_num['level_'.$level->id]) {
|
|
||||||
(new UpgradeService())->senCode($agentData['uid'], $code_num['level_'.$level->id], $level->id, $level->level_name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
\Log::debug('激活码');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
(new UpgradeService())->becomeAgencyNotify($agentData['uid']);
|
|
||||||
//直推奖 todo 直推奖不用了
|
|
||||||
// (new UpgradeService())->sendBonus($agentData['uid']);
|
|
||||||
// \Log::debug('直推奖');
|
|
||||||
|
|
||||||
return $this->message('经销商操作成功', yzWebUrl('plugin.team-dividend.admin.team-agency'));
|
|
||||||
}
|
return $this->message('经销商操作成功', yzWebUrl('plugin.team-dividend.admin.team-agency'));
|
||||||
|
}catch(\Exception $e){
|
||||||
|
return $this->message($e->getMessage(), '', 'error');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('Yunshop\TeamDividend::admin.team-agency-add', [
|
return view('Yunshop\TeamDividend::admin.team-agency-add', [
|
||||||
|
|
@ -344,50 +310,8 @@ class TeamAgencyController extends BaseController
|
||||||
$id = \YunShop::request()->id;
|
$id = \YunShop::request()->id;
|
||||||
$levelId = \YunShop::request()->value;
|
$levelId = \YunShop::request()->value;
|
||||||
$leveType = \YunShop::request()->leve_type;
|
$leveType = \YunShop::request()->leve_type;
|
||||||
$agency = TeamDividendAgencyModel::find($id);
|
|
||||||
// 等级类型:''=普通等级,cultural=文创等级
|
|
||||||
if((string)$leveType == 'cultural'){
|
|
||||||
$level = $agency->cultural_level_id;
|
|
||||||
$agency->cultural_level_id = $levelId;
|
|
||||||
$agency->cultural_upgrade_at = time();
|
|
||||||
}else{
|
|
||||||
$level = $agency->level;
|
|
||||||
$agency->level = $levelId;
|
|
||||||
$agency->upgrade_at = time();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
TeamDividendAgencyModel::changeLevel($id,$levelId,$leveType);
|
||||||
if ($agency->save()) {
|
|
||||||
// 升级后等级
|
|
||||||
$c_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find($agency->level);
|
|
||||||
// 升级前等级
|
|
||||||
$o_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find($level);
|
|
||||||
|
|
||||||
// 升级日志
|
|
||||||
Uplog::addLog($agency, $o_level, $c_level);
|
|
||||||
|
|
||||||
if ($c_level->level_weight > $o_level->level_weight) {
|
|
||||||
//激活码
|
|
||||||
$upgrade_set = (new UpgradeService())->getUpgradeById($agency->level);
|
|
||||||
|
|
||||||
if ($upgrade_set) {
|
|
||||||
$set = \Setting::get('plugin.team_dividend');
|
|
||||||
if ($set['is_activation_code'] && $upgrade_set[0]->code_num) {
|
|
||||||
$level_list = TeamDividendLevelModel::getList()->get();
|
|
||||||
$code_num = (is_array($upgrade_set[0]->code_num) ? $upgrade_set[0]->code_num : unserialize($upgrade_set[0]->code_num)) ?: [];
|
|
||||||
foreach($level_list as $key => $level) {
|
|
||||||
if($code_num['level_'.$level->id]) {
|
|
||||||
(new UpgradeService())->senCode($agency->uid, $code_num['level_'.$level->id], $level->id, $level->level_name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
\Log::debug('激活码');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//代理商升级通知
|
|
||||||
(new UpgradeService())->agencyUpgradeNotify($agency->uid, $o_level->level_name, $o_level->dividend_ratio_name, $agency->level);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
use Yunshop\TeamDividend\observers\DealerObserver;
|
use Yunshop\TeamDividend\observers\DealerObserver;
|
||||||
|
use Yunshop\TeamDividend\services\UpgradeService;
|
||||||
|
|
||||||
class TeamDividendAgencyModel extends BackendModel
|
class TeamDividendAgencyModel extends BackendModel
|
||||||
{
|
{
|
||||||
|
|
@ -341,4 +342,97 @@ class TeamDividendAgencyModel extends BackendModel
|
||||||
return (boolean)((int)$minWeight == (int)$weightList[$teamLevelId]);
|
return (boolean)((int)$minWeight == (int)$weightList[$teamLevelId]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function addTeamAgency($agentData){
|
||||||
|
// 其他验证
|
||||||
|
$agency_model = new \Yunshop\TeamDividend\admin\models\TeamDividendAgencyModel();
|
||||||
|
$agency_model->fill($agentData);
|
||||||
|
$validator = $agency_model->validator();
|
||||||
|
if ($validator->fails()) {
|
||||||
|
throw new \Exception($validator->messages()->first());
|
||||||
|
} else {
|
||||||
|
if ($agency_model->save()) {
|
||||||
|
// 升级后等级
|
||||||
|
$c_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find($agentData['level']);
|
||||||
|
// 升级前等级
|
||||||
|
$o_level = NULL;
|
||||||
|
// 升级日志
|
||||||
|
Uplog::addLog($agency_model, $o_level, $c_level);
|
||||||
|
//签合同
|
||||||
|
$data=[
|
||||||
|
'member_id'=>$agentData['uid'],
|
||||||
|
'created_at' => time(),
|
||||||
|
];
|
||||||
|
event(new \app\common\events\plugin\TeamDividendEvent($data));
|
||||||
|
//激活码
|
||||||
|
$upgrade_set = (new UpgradeService())->getUpgradeById($agentData['level']);
|
||||||
|
|
||||||
|
if ($upgrade_set) {
|
||||||
|
$set = \Setting::get('plugin.team_dividend');
|
||||||
|
if ($set['is_activation_code'] && $upgrade_set[0]->code_num) {
|
||||||
|
$level_list = TeamDividendLevelModel::getList()->get();
|
||||||
|
$code_num = unserialize($upgrade_set[0]->code_num);
|
||||||
|
foreach($level_list as $key => $level) {
|
||||||
|
if($code_num['level_'.$level->id]) {
|
||||||
|
(new UpgradeService())->senCode($agentData['uid'], $code_num['level_'.$level->id], $level->id, $level->level_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\Log::debug('激活码');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
(new UpgradeService())->becomeAgencyNotify($agentData['uid']);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
throw new \Exception('添加失败');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function changeLevel($id,$levelId,$leveType){
|
||||||
|
$agency = TeamDividendAgencyModel::find($id);
|
||||||
|
|
||||||
|
// 等级类型:''=普通等级,cultural=文创等级
|
||||||
|
if((string)$leveType == 'cultural'){
|
||||||
|
$level = $agency->cultural_level_id;
|
||||||
|
$agency->cultural_level_id = $levelId;
|
||||||
|
$agency->cultural_upgrade_at = time();
|
||||||
|
}else{
|
||||||
|
$level = $agency->level;
|
||||||
|
$agency->level = $levelId;
|
||||||
|
$agency->upgrade_at = time();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($agency->save()) {
|
||||||
|
// 升级后等级
|
||||||
|
$c_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find($agency->level);
|
||||||
|
// 升级前等级
|
||||||
|
$o_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find($level);
|
||||||
|
|
||||||
|
// 升级日志
|
||||||
|
Uplog::addLog($agency, $o_level, $c_level);
|
||||||
|
|
||||||
|
if ($c_level->level_weight > $o_level->level_weight) {
|
||||||
|
//激活码
|
||||||
|
$upgrade_set = (new UpgradeService())->getUpgradeById($agency->level);
|
||||||
|
|
||||||
|
if ($upgrade_set) {
|
||||||
|
$set = \Setting::get('plugin.team_dividend');
|
||||||
|
if ($set['is_activation_code'] && $upgrade_set[0]->code_num) {
|
||||||
|
$level_list = TeamDividendLevelModel::getList()->get();
|
||||||
|
$code_num = (is_array($upgrade_set[0]->code_num) ? $upgrade_set[0]->code_num : unserialize($upgrade_set[0]->code_num)) ?: [];
|
||||||
|
foreach($level_list as $key => $level) {
|
||||||
|
if($code_num['level_'.$level->id]) {
|
||||||
|
(new UpgradeService())->senCode($agency->uid, $code_num['level_'.$level->id], $level->id, $level->level_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\Log::debug('激活码');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//代理商升级通知
|
||||||
|
(new UpgradeService())->agencyUpgradeNotify($agency->uid, $o_level->level_name, $o_level->dividend_ratio_name, $agency->level);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -5,14 +5,13 @@
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.rightlists {
|
.rightlists {
|
||||||
width: 600px;
|
width: 100% !important;
|
||||||
height: 50px;
|
|
||||||
color: crimson;
|
color: crimson;
|
||||||
line-height: 48px;
|
text-align: left!important;
|
||||||
text-align: center;
|
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
border: 1px solid crimson;
|
border: 1px solid crimson;
|
||||||
background: rgb(250, 220, 225);
|
background: rgb(250, 220, 225);
|
||||||
|
padding: 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.usage {
|
.usage {
|
||||||
|
|
@ -69,7 +68,10 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div class="put_box">
|
<div class="put_box">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<div class="rightlists">尽量在服务器空闲时间来操作,会占用大量内存与带宽,在获取过程中,请不要进行任何操作!</div>
|
<div class="rightlists">
|
||||||
|
1、尽量在服务器空闲时间来操作,会占用大量内存与带宽,在获取过程中,请不要进行任何操作!<br />
|
||||||
|
2、每列的内容必须填写,如果无内容则忽略该列<br />
|
||||||
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<div class="usage">
|
<div class="usage">
|
||||||
|
|
@ -110,14 +112,14 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
importf(obj) { //导入
|
importf(obj) { //导入
|
||||||
console.log(obj, 456465465);
|
// console.log(obj, 456465465);
|
||||||
console.log(obj.target.files);
|
// console.log(obj.target.files);
|
||||||
if (!obj.target.files) {
|
if (!obj.target.files) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var f = obj.target.files[0];
|
var f = obj.target.files[0];
|
||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
console.log(reader);
|
// console.log(reader);
|
||||||
reader.onload = function(e) {
|
reader.onload = function(e) {
|
||||||
var data = e.target.result;
|
var data = e.target.result;
|
||||||
if (this.rABS) {
|
if (this.rABS) {
|
||||||
|
|
@ -132,7 +134,6 @@
|
||||||
//wb.SheetNames[0]是获取Sheets中第一个Sheet的名字
|
//wb.SheetNames[0]是获取Sheets中第一个Sheet的名字
|
||||||
//wb.Sheets[Sheet名]获取第一个Sheet的数据
|
//wb.Sheets[Sheet名]获取第一个Sheet的数据
|
||||||
var data = XLSX.utils.sheet_to_row_object_array(this.wb.Sheets[this.wb.SheetNames[0]]);
|
var data = XLSX.utils.sheet_to_row_object_array(this.wb.Sheets[this.wb.SheetNames[0]]);
|
||||||
console.log(data, 44564);
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "{!! yzWebUrl('member.member.member-excel') !!}",
|
url: "{!! yzWebUrl('member.member.member-excel') !!}",
|
||||||
type: "post",
|
type: "post",
|
||||||
|
|
@ -142,7 +143,7 @@
|
||||||
cache: false,
|
cache: false,
|
||||||
success: function(result) {
|
success: function(result) {
|
||||||
alert(result.msg);
|
alert(result.msg);
|
||||||
window.location.reload();
|
// window.location.reload();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue