|
@@ -133,15 +133,17 @@ class CouponController extends Curd
|
|
|
} elseif ($item['coupon_validdate_day']) {
|
|
|
$item['coupon_use_time'] = 'day';
|
|
|
}
|
|
|
- $item['member_count'] = $item['pending_count'] = $item['used_count'] = 0;
|
|
|
+ $item['member_count'] = 0;
|
|
|
+ $item['pending_count'] = 0;
|
|
|
+ $item['used_count'] = 0;
|
|
|
if (!empty($item['detail'])) {
|
|
|
foreach ($item['detail'] as $detail) {
|
|
|
- if (!empty($detail['join_coupon_detail_member_id'])){
|
|
|
+ if (!empty($detail['join_coupon_detail_member_id'])) {
|
|
|
$item['member_count'] += 1;
|
|
|
}
|
|
|
- if ($detail['coupon_detail_status'] == 'PENDING'){
|
|
|
+ if ($detail['coupon_detail_status'] == 'PENDING') {
|
|
|
$item['pending_count'] += 1;
|
|
|
- }elseif ($detail['coupon_detail_status'] == 'USED'){
|
|
|
+ } elseif ($detail['coupon_detail_status'] == 'USED') {
|
|
|
$item['used_count'] += 1;
|
|
|
}
|
|
|
}
|
|
@@ -197,7 +199,7 @@ class CouponController extends Curd
|
|
|
// 关联优惠券和商品、规格
|
|
|
$this->insertCouponGoods($goods, $data['coupon_id']);
|
|
|
if ($data['coupon_number'] > 0) {
|
|
|
- $this->generateCouponDetail($data['coupon_id'], $data['coupon_number']);
|
|
|
+ $this->generateCouponDetail($data['coupon_id'], $data['coupon_status'], $data['coupon_number']);
|
|
|
}
|
|
|
Db::commit();
|
|
|
|
|
@@ -314,16 +316,22 @@ class CouponController extends Curd
|
|
|
// 查已领取多少了
|
|
|
$detailCount = CouponDetail::where('join_detail_coupon_id', $id)->count();
|
|
|
if ($detailCount < $data['coupon_number']) {
|
|
|
- $this->generateCouponDetail($id, $data['coupon_number'] - $detailCount);
|
|
|
+ $this->generateCouponDetail($id, $data['coupon_status'], $data['coupon_number'] - $detailCount);
|
|
|
}
|
|
|
} else if ($originCouponNumber < $data['coupon_number']) {
|
|
|
- $this->generateCouponDetail($id, $data['coupon_number'] - $originCouponNumber);
|
|
|
+ $this->generateCouponDetail($id, $data['coupon_status'], $data['coupon_number'] - $originCouponNumber);
|
|
|
} else if ($originCouponNumber > $data['coupon_number']) {
|
|
|
CouponDetail::where('join_detail_coupon_id', $id)
|
|
|
->where('join_coupon_detail_member_id', '')
|
|
|
->limit($originCouponNumber - $data['coupon_number'])
|
|
|
->delete();
|
|
|
}
|
|
|
+ // 激活状态,初始改为待领取
|
|
|
+ if ($data['coupon_status'] == 'ACTIVED') {
|
|
|
+ CouponDetail::where('join_detail_coupon_id', $id)->where('coupon_detail_status', 'INIT')->update(['coupon_detail_status' => 'PENDING']);
|
|
|
+ } elseif ($data['coupon_status'] == 'DISABLED') { // 禁用状态,未领取未使用的都是禁用
|
|
|
+ CouponDetail::where('join_detail_coupon_id', $id)->where('coupon_detail_status', '<>', 'USED')->update(['coupon_detail_status' => 'DISABLED']);
|
|
|
+ }
|
|
|
Db::commit();
|
|
|
|
|
|
return json_success('success');
|
|
@@ -575,24 +583,44 @@ class CouponController extends Curd
|
|
|
try {
|
|
|
// 删除优惠券关联的产品
|
|
|
foreach ($ids as $id) {
|
|
|
+ $couponDetail = CouponDetail::with([
|
|
|
+ 'coupon'=>function($query){
|
|
|
+ $query->select('coupon_id','coupon_name');
|
|
|
+ }
|
|
|
+ ])->where('join_detail_coupon_id',$id)
|
|
|
+ ->where('join_coupon_detail_member_id','<>','')
|
|
|
+ ->first();
|
|
|
+ if (!empty($couponDetail)){
|
|
|
+ Db::rollBack();
|
|
|
+
|
|
|
+ return json_fail($couponDetail->coupon && $couponDetail->coupon->coupon_name ? $couponDetail->coupon->coupon_name."已被领取,无法删除,请禁用" : "删除的优惠券中有已被领取的,无法删除,请禁用");
|
|
|
+ }
|
|
|
CouponGoods::where('join_goods_coupon_id', $id)->delete();
|
|
|
+
|
|
|
+// CouponDetail::where('join_detail_coupon_id', $id)
|
|
|
+// ->whereIn('coupon_detail_status',['INIT','PENDING','ACTIVED'])
|
|
|
+// ->delete();
|
|
|
+// CouponDetail::where('join_detail_coupon_id', $id)
|
|
|
+// ->where('coupon_detail_status','WAITING')
|
|
|
+// ->update(['coupon_detail_status'=>'DISABLED']);
|
|
|
}
|
|
|
$this->doDelete($ids);
|
|
|
Db::commit();
|
|
|
return json_success('success');
|
|
|
} catch (\Exception $e) {
|
|
|
+ dump($e->getMessage());
|
|
|
Db::rollBack();
|
|
|
return json_fail('删除失败');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private function generateCouponDetail($couponId, $nbr)
|
|
|
+ private function generateCouponDetail($couponId, $couponStatus, $nbr)
|
|
|
{
|
|
|
for ($i = 0; $i < intval($nbr); $i++) {
|
|
|
CouponDetail::insert([
|
|
|
'coupon_detail_id' => 'CUDT' . str_pad(SysSerial::getSerial(), 6, '0') . random_string(6, 'up'),
|
|
|
'join_detail_coupon_id' => $couponId,
|
|
|
- 'coupon_detail_status' => 'INIT',
|
|
|
+ 'coupon_detail_status' => $couponStatus == 'ACTIVED' ? 'PENDING' : 'INIT',
|
|
|
'coupon_detail_addtimes' => time()
|
|
|
]);
|
|
|
}
|