142 lines
4.5 KiB
PHP
142 lines
4.5 KiB
PHP
<?php
|
|
|
|
|
|
namespace app\admin\logic\distribution;
|
|
|
|
|
|
use app\common\basics\Logic;
|
|
use app\common\logic\DistributionLogic;
|
|
use app\common\model\distribution\Distribution;
|
|
use app\common\model\distribution\DistributionMemberApply;
|
|
use app\common\model\user\User;
|
|
use app\common\server\AreaServer;
|
|
use app\common\server\UrlServer;
|
|
use think\facade\Db;
|
|
|
|
class ApplyLogic extends Logic
|
|
{
|
|
/**
|
|
* @Notes: 分销申请列表
|
|
* @Author: 张无忌
|
|
* @param $get
|
|
* @return array
|
|
*/
|
|
public static function lists($get)
|
|
{
|
|
try {
|
|
$where[] = ['DMA.status', '=', $get['type'] ?? 0];
|
|
if (!empty($get['keyword']) and $get['keyword']) {
|
|
switch ($get['keyword_type']) {
|
|
case 'sn':
|
|
$where[] = ['U.sn', 'like', '%'.$get['keyword'].'%'];
|
|
break;
|
|
case 'nickname':
|
|
$where[] = ['U.nickname', 'like', '%'.$get['keyword'].'%'];
|
|
break;
|
|
case 'mobile':
|
|
$where[] = ['U.mobile', '=', $get['keyword']];
|
|
break;
|
|
}
|
|
}
|
|
|
|
$model = new DistributionMemberApply();
|
|
$lists = $model->field(['DMA.*'])->alias('DMA')
|
|
->where($where)
|
|
->with(['user.level'])
|
|
->join('user U', 'U.id = DMA.user_id')
|
|
->paginate([
|
|
'page' => $get['page'],
|
|
'list_rows' => $get['limit'],
|
|
'var_page' => 'page'
|
|
])->toArray();
|
|
|
|
foreach ($lists['data'] as &$item) {
|
|
if ($item['user']) {
|
|
$item['user']['avatar'] = UrlServer::getFileUrl($item['user']['avatar']);
|
|
}
|
|
$item['region'] = AreaServer::getAddress([
|
|
$item['province'],
|
|
$item['city'],
|
|
$item['district']]
|
|
);
|
|
}
|
|
|
|
return ['count'=>$lists['total'], 'lists'=>$lists['data']];
|
|
} catch (\Exception $e) {
|
|
return ['error'=>$e->getMessage()];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @Notes: 分销申请详细
|
|
* @Author: 张无忌
|
|
* @param $id
|
|
* @return array
|
|
*/
|
|
public static function detail($id)
|
|
{
|
|
$model = new DistributionMemberApply();
|
|
$detail = $model->field(true)
|
|
->with(['user.level'])
|
|
->findOrEmpty($id)
|
|
->toArray();
|
|
|
|
$detail['status_text'] = DistributionMemberApply::getApplyStatus($detail['status']);
|
|
$detail['region'] = AreaServer::getAddress([
|
|
$detail['province'],
|
|
$detail['city'],
|
|
$detail['district']]
|
|
);
|
|
|
|
return $detail;
|
|
}
|
|
|
|
/**
|
|
* @Notes: 审核分销申请
|
|
* @Author: 张无忌
|
|
* @param $post
|
|
* @return bool
|
|
*/
|
|
public static function audit($post)
|
|
{
|
|
Db::startTrans();
|
|
try {
|
|
if ($post['audit_status'] == 1) {
|
|
// 审核通过
|
|
$model = new DistributionMemberApply();
|
|
$apply = $model->field(true)->findOrEmpty((int)$post['id'])->toArray();
|
|
|
|
DistributionMemberApply::update([
|
|
'status' => $post['audit_status'],
|
|
'denial_reason' => $post['denial_reason'] ?? '',
|
|
'update_time' => time()
|
|
], ['id'=>(int)$post['id']]);
|
|
|
|
$distribution = Distribution::where('user_id', $apply['user_id'])->findOrEmpty()->toArray();
|
|
if (empty($distribution)) {
|
|
// 生成分销基础信息表
|
|
DistributionLogic::add($apply['user_id']);
|
|
}
|
|
// 更新分销基础信息表
|
|
Distribution::where('user_id', $apply['user_id'])->update([
|
|
'is_distribution' => 1,
|
|
'distribution_time' => time()
|
|
]);
|
|
} else {
|
|
// 审核拒绝
|
|
DistributionMemberApply::update([
|
|
'status' => $post['audit_status'],
|
|
'denial_reason' => $post['denial_reason'] ?? '',
|
|
'update_time' => time()
|
|
], ['id'=>(int)$post['id']]);
|
|
}
|
|
|
|
Db::commit();
|
|
return true;
|
|
} catch (\Exception $e) {
|
|
Db::rollback();
|
|
static::$error = $e->getMessage();
|
|
return false;
|
|
}
|
|
}
|
|
} |