140 lines
5.0 KiB
PHP
140 lines
5.0 KiB
PHP
<?php
|
|
/**
|
|
* SaaSMall商城系统 - 团队十年电商经验汇集巨献!
|
|
* =========================================================
|
|
* Copy right 2019-2029 成都SAAS云科技有限公司, 保留所有权利。
|
|
* ----------------------------------------------
|
|
* 官方网址: https://www.gobuysaas.com
|
|
* =========================================================
|
|
*/
|
|
|
|
namespace addon\team\model;
|
|
|
|
use app\model\BaseModel;
|
|
use think\Exception;
|
|
use think\facade\Db;
|
|
|
|
class Team extends BaseModel{
|
|
/**
|
|
* Common: 获取团队成员列表
|
|
* Author: wu-hui
|
|
* Time: 2024/08/09 11:19
|
|
* @param $params
|
|
* @param $siteId
|
|
* @return array
|
|
*/
|
|
public function getPageList($params, $siteId){
|
|
$page = $params['page'] ?? 1;
|
|
$pageLimit = $params['limit'] ?? PAGE_LIST_ROWS;
|
|
// 生成查询条件
|
|
$where = [
|
|
'a.site_id' => $siteId
|
|
];
|
|
if(isset($params['member_id']) && $params['member_id'] !== '') $where[] = ['a.member_id', '=', $params['member_id']];
|
|
if(isset($params['level_id']) && $params['level_id'] !== '') $where[] = ['a.level_id','=',$params['level_id']];
|
|
$join = [
|
|
['team_level tl','tl.id = a.level_id','left'],
|
|
['member m', 'a.member_id = m.member_id', 'left'],
|
|
];
|
|
$field = 'a.*,tl.title,tl.weight,m.nickname,m.username,m.headimg';
|
|
$result = model('team')->pageList($where,$field,'a.id DESC',$page,$pageLimit,'a',$join);
|
|
// 获取部分统计信息
|
|
$memberModel = new \addon\team\model\Member();
|
|
foreach($result['list'] as &$item){
|
|
$item['one_people'] = $memberModel->getPeopleNum($item['member_id'],$item['site_id']);// 直推人数
|
|
$item['team_people'] = $memberModel->getPeopleNum($item['member_id'],$item['site_id'],'team');// 团队人数
|
|
$item['one_money'] = $memberModel->getMoneyNum($item['member_id'],$item['site_id']);// 直推业绩
|
|
$item['team_money'] = $memberModel->getMoneyNum($item['member_id'],$item['site_id'],'team');// 团队业绩
|
|
}
|
|
|
|
return $this->success($result);
|
|
}
|
|
/**
|
|
* Common: 获取等级变更记录
|
|
* Author: wu-hui
|
|
* Time: 2024/08/09 14:55
|
|
* @param $params
|
|
* @return array
|
|
*/
|
|
public function levelChangeLogRecord($params){
|
|
$page = $params['page'] ?? 1;
|
|
$pageLimit = $params['limit'] ?? PAGE_LIST_ROWS;
|
|
// 生成查询条件
|
|
$where = [
|
|
'team_id' => $params['team_id']
|
|
];
|
|
$result = model('team_log')->pageList($where,'*','id DESC',$page,$pageLimit);
|
|
|
|
return $this->success($result);
|
|
}
|
|
/**
|
|
* Common: 团队长等级改变
|
|
* Author: wu-hui
|
|
* Time: 2024/08/09 10:51
|
|
* @param $memberId
|
|
* @param $levelId
|
|
* @param $completeItems
|
|
* @return array
|
|
*/
|
|
public function TeamUpgrade($memberId, $levelId, $completeItems){
|
|
Db::startTrans();
|
|
try{
|
|
if($memberId <= 0 || $levelId <= 0) throw new Exception('必要参数不存在!');
|
|
// 获取已存在的团长信息
|
|
$where = [
|
|
[ 'a.member_id', '=', $memberId],
|
|
];
|
|
$join = [
|
|
[ 'team_level tl', 'tl.id = a.level_id', 'left' ]
|
|
];
|
|
$field = 'a.id,a.member_id,a.level_id,tl.title,tl.weight';
|
|
$teamInfo = model('team')->getInfo($where,$field,'a',$join);
|
|
// 获取等级信息
|
|
$levelInfo = model('team_level')->getInfo([
|
|
[ 'id', '=', $levelId]
|
|
],'id,site_id,title,weight');
|
|
$siteId = $levelInfo['site_id'] ?? 0;
|
|
// 判断:增加 or 修改信息
|
|
$log = [
|
|
'team_id' => $teamInfo['id'] ?? 0,
|
|
'site_id' => $siteId,
|
|
'member_id' => $memberId,
|
|
'front_level_id' => $teamInfo['level_id'] ?? 0,
|
|
'front_level_title' => $teamInfo['title'] ?? '',
|
|
'front_level_weight' => $teamInfo['weight'] ?? 0,
|
|
'after_level_id' => $levelInfo['id'],
|
|
'after_level_title' => $levelInfo['title'],
|
|
'after_level_weight' => $levelInfo['weight'],
|
|
'reason' => implode(',',$completeItems)
|
|
];
|
|
if(!$teamInfo){
|
|
// 不存在团队长信息 增加信息
|
|
$log['team_id'] = model('team')->add([
|
|
'site_id' => $siteId,
|
|
'member_id' => $memberId,
|
|
'level_id' => $levelId,
|
|
]);
|
|
}
|
|
else{
|
|
model('team')->update(['level_id' => $levelId],[
|
|
['member_id','=',$memberId],
|
|
]);
|
|
}
|
|
// 记录日志
|
|
model('team_log')->add($log);
|
|
|
|
Db::commit();
|
|
|
|
return $this->success('操作成功');
|
|
}
|
|
catch(\Exception $e){
|
|
Db::rollback();
|
|
|
|
return $this->error('', $e->getMessage());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|