|
@@ -16,6 +16,7 @@ use support\Redis;
|
|
|
use support\exception\BusinessException;
|
|
|
use support\Request;
|
|
|
use support\Response;
|
|
|
+use support\view\Raw;
|
|
|
|
|
|
class QuotaController extends Curd
|
|
|
{
|
|
@@ -30,8 +31,8 @@ class QuotaController extends Curd
|
|
|
{
|
|
|
$page = $request->get('page', 1);
|
|
|
$pageSize = $request->get('pageSize', 20);
|
|
|
-
|
|
|
$keywords = $request->get('keywords', '');
|
|
|
+ $memberId = $request->get('member_id', '');
|
|
|
$memberIds = [];
|
|
|
if (!empty($keywords)) {
|
|
|
$memberIds = Member::leftJoin('member_cert', 'member_cert.join_cert_member_id', '=', 'member.member_id')
|
|
@@ -44,16 +45,30 @@ class QuotaController extends Curd
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- $rows = MemberQuota::select('join_quota_member_id', 'join_member_rule_added_component_id', 'member_quota_addtimes')
|
|
|
+ if (!empty($memberId)) {
|
|
|
+ $memberIds = $memberId;
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach ($memberIds as &$id){
|
|
|
+ $id = "'".$id."'";
|
|
|
+ }
|
|
|
+
|
|
|
+ $rows = MemberQuota::select('join_quota_member_id', 'join_member_rule_added_component_id', Db::raw('MAX(member_quota_addtimes) as new_addtimes'))
|
|
|
+
|
|
|
+// ->when(!empty($memberIds), function ($query) use ($placeholders,$pars) {
|
|
|
+// $query->whereRaw("join_quota_member_id in ($placeholders))", $pars);
|
|
|
+// })
|
|
|
->when(!empty($memberIds), function ($query) use ($memberIds) {
|
|
|
$query->whereIn('join_quota_member_id', $memberIds);
|
|
|
})
|
|
|
- ->groupBy('join_quota_member_id', 'join_member_rule_added_component_id', 'member_quota_addtimes');
|
|
|
+ ->groupBy('join_member_rule_added_component_id', 'join_quota_member_id');
|
|
|
|
|
|
- $total = $rows->count();
|
|
|
+ $bindings = $rows->getBindings();
|
|
|
+ $sql = str_replace('?', '%s', $rows->toSql());
|
|
|
+ $sql = sprintf($sql, ...$bindings);
|
|
|
+ $total = MemberQuota::from(Db::raw("({$sql}) t"))->count();
|
|
|
|
|
|
- $rows = $rows->orderBy('member_quota_addtimes', 'DESC')
|
|
|
- ->forPage($page, $pageSize)
|
|
|
+ $rows = MemberQuota::from(Db::raw("({$sql}) t"))->orderByDesc('new_addtimes')->forPage($page, $pageSize)
|
|
|
->get()
|
|
|
->toArray();
|
|
|
foreach ($rows as &$row) {
|
|
@@ -88,6 +103,7 @@ class QuotaController extends Curd
|
|
|
|
|
|
$row = $quota;
|
|
|
}
|
|
|
+
|
|
|
return json_success('', compact('rows', 'page', 'pageSize', 'total'));
|
|
|
}
|
|
|
|