feat(用户接口): 1.用户详情 2.用户评级列表
parent
79ca610e57
commit
1cf835c2d7
|
@ -716,7 +716,7 @@ class Manager extends Base
|
||||||
return $this->json(4001, '参数错误');
|
return $this->json(4001, '参数错误');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$account = Account::findById($accountId, ['id, role'])) {
|
if (!$account = Account::findById($accountId, ['id, role, worksite_id'])) {
|
||||||
return $this->json(6001, '请先登录');
|
return $this->json(6001, '请先登录');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -734,6 +734,7 @@ class Manager extends Base
|
||||||
'type' => AccountStar::TYPE_WORKER,
|
'type' => AccountStar::TYPE_WORKER,
|
||||||
'star' => $star,
|
'star' => $star,
|
||||||
'account_id' => $id,
|
'account_id' => $id,
|
||||||
|
'worksite_id' => $account['worksite_id'],
|
||||||
'year' => date('Y'),
|
'year' => date('Y'),
|
||||||
'month' => date('m'),
|
'month' => date('m'),
|
||||||
'ym' => $ym,
|
'ym' => $ym,
|
||||||
|
|
|
@ -7,6 +7,7 @@ use app\exception\ApiException;
|
||||||
use app\exception\RepositoryException;
|
use app\exception\RepositoryException;
|
||||||
use app\model\Account;
|
use app\model\Account;
|
||||||
use app\model\AccountRecord;
|
use app\model\AccountRecord;
|
||||||
|
use app\model\AccountStar;
|
||||||
use app\model\ClockLog;
|
use app\model\ClockLog;
|
||||||
use app\model\PayLog;
|
use app\model\PayLog;
|
||||||
use app\model\Worksite;
|
use app\model\Worksite;
|
||||||
|
@ -702,6 +703,80 @@ class User extends Base
|
||||||
return $this->json();
|
return $this->json();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评级列表
|
||||||
|
*
|
||||||
|
* @return \think\response\Json
|
||||||
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
|
* @throws \think\db\exception\DbException
|
||||||
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
|
*/
|
||||||
|
public function starList(): Json
|
||||||
|
{
|
||||||
|
$accountId = $this->request->user['user_id'] ?? 0;
|
||||||
|
$worksiteId = input('worksite_id/d', 0);
|
||||||
|
$worksiteId = $worksiteId ?: 0;
|
||||||
|
|
||||||
|
if (!$account = Account::findById($accountId)) {
|
||||||
|
return $this->json(6001, '请先登录');
|
||||||
|
}
|
||||||
|
|
||||||
|
$where = [];
|
||||||
|
|
||||||
|
$where[] = ['account_id', '=', $accountId];
|
||||||
|
$worksiteId = $worksiteId ?: $account['worksite_id'];
|
||||||
|
$where[] = ['worksite_id', '=', $worksiteId];
|
||||||
|
$where[] = ['type', '=', AccountStar::TYPE_WORKER];
|
||||||
|
|
||||||
|
$list = \app\model\AccountStar::where($where)
|
||||||
|
->order('ym', 'desc')
|
||||||
|
->select();
|
||||||
|
|
||||||
|
$yearArr = $list->column('year');
|
||||||
|
$yearArr = array_unique($yearArr);
|
||||||
|
|
||||||
|
$starList = [];
|
||||||
|
foreach ($yearArr as $year) {
|
||||||
|
$starList[$year.'年'] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($list as $val) {
|
||||||
|
$starList[$val['year'].'年'][] = [
|
||||||
|
'year' => $val['year'],
|
||||||
|
'month' => $val['month'],
|
||||||
|
'star' => $val['star'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$firstStar = $list->first()['star'] ?? 0;
|
||||||
|
|
||||||
|
$info = [
|
||||||
|
'real_name' => $account['real_name'] ?? '',
|
||||||
|
'worksite_name' => Worksite::where('id', $account['worksite_id'])->value('name'),
|
||||||
|
'star' => $firstStar,
|
||||||
|
];
|
||||||
|
|
||||||
|
return $this->json(0, 'success', ['info' => $info, 'list' => $starList]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户详情
|
||||||
|
*
|
||||||
|
* @return Json
|
||||||
|
*/
|
||||||
|
public function detail(): Json
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$accountId = input('id/d');
|
||||||
|
|
||||||
|
$user = Account::getUser($accountId);
|
||||||
|
|
||||||
|
return $this->json(0, 'success', $user);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
return $this->json(4000, '获取用户详情失败'.$e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 普通用户打卡
|
* 普通用户打卡
|
||||||
*
|
*
|
||||||
|
|
|
@ -217,10 +217,10 @@ class Pay extends Base
|
||||||
if ($total > 0) {
|
if ($total > 0) {
|
||||||
$res['list'] = $query->field('pml.id,sum(pml.amount) as amount,sum(pml.base_amount) as base_amount,pml.status,pml.year,pml.month,
|
$res['list'] = $query->field('pml.id,sum(pml.amount) as amount,sum(pml.base_amount) as base_amount,pml.status,pml.year,pml.month,
|
||||||
sum(pml.overtime_amount) as overtime_amount,pml.account_id,pml.time,a.nickname,a.real_name,a.mobile,w.name as worksite_name,
|
sum(pml.overtime_amount) as overtime_amount,pml.account_id,pml.time,a.nickname,a.real_name,a.mobile,w.name as worksite_name,
|
||||||
p.name as position_text')
|
p.name as position_text,pml.paid_amount')
|
||||||
->page($page, $size)->order('pml.id', 'desc')->select();
|
->page($page, $size)->order('pml.time', 'desc')->order('pml.id', 'desc')->select();
|
||||||
$res['list']->each(function ($item) {
|
$res['list']->each(function ($item) {
|
||||||
$item->status_text = $item->status == 1 ? '已发放' : '待发放';
|
$item->status_text = PayMonthLog::statusText()[$item->status] ?? '';
|
||||||
$item->time_text = $item->year.'年'.$item->month.'月';
|
$item->time_text = $item->year.'年'.$item->month.'月';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,19 @@ use think\model\relation\HasOne;
|
||||||
*/
|
*/
|
||||||
class PayMonthLog extends Base
|
class PayMonthLog extends Base
|
||||||
{
|
{
|
||||||
|
public const STATUS_YES = 1;
|
||||||
|
public const STATUS_NO = 0;
|
||||||
|
public const STATUS_PART = 2;
|
||||||
|
|
||||||
|
public static function statusText(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
self::STATUS_YES => '已发放',
|
||||||
|
self::STATUS_NO => '待发放',
|
||||||
|
self::STATUS_PART => '部分发放',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
public function account(): HasOne
|
public function account(): HasOne
|
||||||
{
|
{
|
||||||
return $this->hasOne(Account::class, 'id', 'account_id');
|
return $this->hasOne(Account::class, 'id', 'account_id');
|
||||||
|
|
|
@ -55,6 +55,7 @@ layui.use(['laytpl', 'table', 'jquery', 'form', 'miniTab', 'xmSelect', 'laydate'
|
||||||
{field: 'amount', minWidth: 100, title: '总计'},
|
{field: 'amount', minWidth: 100, title: '总计'},
|
||||||
{field: 'base_amount', minWidth: 100, title: '基本工资'},
|
{field: 'base_amount', minWidth: 100, title: '基本工资'},
|
||||||
{field: 'overtime_amount', minWidth: 100, title: '加班工资'},
|
{field: 'overtime_amount', minWidth: 100, title: '加班工资'},
|
||||||
|
{field: 'paid_amount', minWidth: 100, title: '已发工资'},
|
||||||
{field: 'status_text', minWidth: 100, title: '状态'},
|
{field: 'status_text', minWidth: 100, title: '状态'},
|
||||||
{templet: '#row-operate', fixed: "right", minWidth: 100, title: '操作'},
|
{templet: '#row-operate', fixed: "right", minWidth: 100, title: '操作'},
|
||||||
]],
|
]],
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
<select name="status">
|
<select name="status">
|
||||||
<option value=""></option>
|
<option value=""></option>
|
||||||
<option value="1">已发放</option>
|
<option value="1">已发放</option>
|
||||||
|
<option value="2">部分发放</option>
|
||||||
<option value="0">待发放</option>
|
<option value="0">待发放</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue