|
@@ -12,6 +12,7 @@ use app\model\RuleAdded;
|
|
|
use app\model\RuleAddedComponent;
|
|
|
use app\model\RulePricing;
|
|
|
use app\model\SysSerial;
|
|
|
+use app\model\SysUser;
|
|
|
use support\Db;
|
|
|
use support\Redis;
|
|
|
use support\exception\BusinessException;
|
|
@@ -50,8 +51,8 @@ class QuotaController extends Curd
|
|
|
$memberIds = $memberId;
|
|
|
}
|
|
|
|
|
|
- foreach ($memberIds as &$id){
|
|
|
- $id = "'".$id."'";
|
|
|
+ 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`'))
|
|
@@ -70,7 +71,7 @@ class QuotaController extends Curd
|
|
|
$total = MemberQuota::from(Db::raw("({$sql}) t"))->count();
|
|
|
|
|
|
$rows = MemberQuota::from(Db::raw("({$sql}) t"))
|
|
|
- ->orderBy('new_addtimes','desc')
|
|
|
+ ->orderBy('new_addtimes', 'desc')
|
|
|
// ->orderByDesc('new_addtimes')
|
|
|
->forPage($page, $pageSize)
|
|
|
->get()
|
|
@@ -205,8 +206,27 @@ class QuotaController extends Curd
|
|
|
])->where('join_quota_member_id', $memberId)
|
|
|
->where('join_member_rule_added_component_id', $componentId)
|
|
|
->where('member_quota_status', 'USED')
|
|
|
- ->orderBy('member_quota_used_json->charge->charge_write_off_time','desc')
|
|
|
- ->get();
|
|
|
+ ->orderBy('member_quota_used_json->charge->charge_write_off_time', 'desc')
|
|
|
+ ->get()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ foreach ($quotas as &$quota) {
|
|
|
+ $quota['premises'] = '';
|
|
|
+ $quota['username'] = '';
|
|
|
+ if (!empty($quota['member_quota_used_json'])) {
|
|
|
+ $usedJson = json_decode($quota['member_quota_used_json'], true);
|
|
|
+ $quota['premises'] = $usedJson['charge']['charge_premises'] ?? '';
|
|
|
+ if (isset($usedJson['charge']['charge_user_id'])) {
|
|
|
+ $user = SysUser::where('user_id', $usedJson['charge']['charge_user_id'])
|
|
|
+ ->select('user_id', 'user_name')
|
|
|
+ ->first();
|
|
|
+ if ($user) {
|
|
|
+
|
|
|
+ $quota['username'] = $user->user_name;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
return json_success('', $quotas);
|
|
|
}
|
|
@@ -225,7 +245,7 @@ class QuotaController extends Curd
|
|
|
$memberId = $params['member_id'] ?? [];
|
|
|
$componentId = $params['component_id'] ?? [];
|
|
|
$nbr = $params['nbr'];
|
|
|
- $times = $params['times'] ?? '';
|
|
|
+ $times = $params['times'] ?? '';
|
|
|
$code = $params['sms_code'] ?? '';
|
|
|
|
|
|
if (!$memberId || !$componentId) {
|
|
@@ -242,14 +262,14 @@ class QuotaController extends Curd
|
|
|
return json_fail("可核销数量不足");
|
|
|
}
|
|
|
|
|
|
- // $member = Member::find(current($memberId));
|
|
|
- // $mobile = $member->member_mobile;
|
|
|
- // $key = "SMS:CODE:QUOTA:" . $mobile;
|
|
|
- // $redisCode = Redis::get($key);
|
|
|
- // if ($redisCode != $code) {
|
|
|
- // return json_fail("验证码错误,请重新输入");
|
|
|
- // }
|
|
|
- // Redis::del($key);
|
|
|
+ $member = Member::find(current($memberId));
|
|
|
+ $mobile = $member->member_mobile;
|
|
|
+ $key = "SMS:CODE:QUOTA:" . $mobile;
|
|
|
+ $redisCode = Redis::get($key);
|
|
|
+ if ($redisCode != $code) {
|
|
|
+ return json_fail("验证码错误,请重新输入");
|
|
|
+ }
|
|
|
+ Redis::del($key);
|
|
|
|
|
|
if (!$times) {
|
|
|
$params['times'] = date('Y-m-d H:i:s');
|
|
@@ -264,7 +284,7 @@ class QuotaController extends Curd
|
|
|
$writeOffData['member_quota_id'] = $quota['member_quota_id'];
|
|
|
|
|
|
MemberQuota::where('member_quota_id', $quota['member_quota_id'])->update([
|
|
|
- 'member_quota_status' => 'USED',
|
|
|
+ 'member_quota_status' => 'USED',
|
|
|
'member_quota_used_json' => json_encode($writeOffData)
|
|
|
]);
|
|
|
}
|
|
@@ -276,4 +296,41 @@ class QuotaController extends Curd
|
|
|
return json_success("核销成功");
|
|
|
}
|
|
|
|
|
|
+ public static function doWriteOff($params){
|
|
|
+
|
|
|
+ $quotas = MemberQuota::where('join_quota_member_id', $params['member_id'])
|
|
|
+ ->where('join_member_rule_added_component_id', $params['component_id'])
|
|
|
+ ->where('member_quota_status', 'PENDING')
|
|
|
+ ->limit($params['nbr'])
|
|
|
+ ->get()
|
|
|
+ ->toArray();
|
|
|
+ if (count($quotas) < intval($params['nbr'])) {
|
|
|
+ throw new BusinessException('可核销数量不足');
|
|
|
+ }
|
|
|
+ if (!$params['times']) {
|
|
|
+ $params['times'] = date('Y-m-d H:i:s');
|
|
|
+ } else {
|
|
|
+ $params['times'] = date('Y-m-d H:i:s', strtotime($params['times']));
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 生成核销数据
|
|
|
+ $writeOffData = AddedService::generateWriteOffData($params);
|
|
|
+ foreach ($quotas as $quota) {
|
|
|
+ $writeOffData['member_quota_id'] = $quota['member_quota_id'];
|
|
|
+
|
|
|
+ MemberQuota::where('member_quota_id', $quota['member_quota_id'])->update([
|
|
|
+ 'member_quota_status' => 'USED',
|
|
|
+ 'member_quota_used_json' => json_encode($writeOffData)
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ throw new BusinessException('核销失败');
|
|
|
+ // return json_fail("核销失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ return json_success("核销成功");
|
|
|
+ }
|
|
|
+
|
|
|
}
|