|
@@ -6,6 +6,7 @@ use app\admin\validate\coupon\CouponValidate;
|
|
|
use app\admin\validate\device\DeviceValidate;
|
|
|
use app\controller\Curd;
|
|
|
use app\model\Coupon;
|
|
|
+use app\model\CouponDetail;
|
|
|
use app\model\CouponGoods;
|
|
|
use app\model\Device;
|
|
|
use app\model\Member;
|
|
@@ -37,10 +38,10 @@ class CouponController extends Curd
|
|
|
*/
|
|
|
public function select(Request $request): Response
|
|
|
{
|
|
|
- $joinCouponCategoryId = $request->get('join_coupon_category_id',[]);
|
|
|
+ $joinCouponCategoryId = $request->get('join_coupon_category_id', []);
|
|
|
[$where, $format, $limit, $field, $order] = $this->selectInput($request);
|
|
|
- if (!empty($joinCouponCategoryId)){
|
|
|
- $where['join_coupon_category_id'] = ['in',implode(',',$joinCouponCategoryId)];
|
|
|
+ if (!empty($joinCouponCategoryId)) {
|
|
|
+ $where['join_coupon_category_id'] = ['in', implode(',', $joinCouponCategoryId)];
|
|
|
}
|
|
|
$order = $request->get('order', 'desc');
|
|
|
$field = $field ?? 'coupon_addtimes';
|
|
@@ -126,9 +127,9 @@ class CouponController extends Curd
|
|
|
$item['premises_range'] = 'all';
|
|
|
}
|
|
|
}
|
|
|
- if (!empty($item['coupon_validdate_begin']) && !empty($item['coupon_validdate_end'])){
|
|
|
+ if (!empty($item['coupon_validdate_begin']) && !empty($item['coupon_validdate_end'])) {
|
|
|
$item['coupon_use_time'] = 'date';
|
|
|
- }elseif ($item['coupon_validdate_day']){
|
|
|
+ } elseif ($item['coupon_validdate_day']) {
|
|
|
$item['coupon_use_time'] = 'day';
|
|
|
}
|
|
|
}
|
|
@@ -181,6 +182,9 @@ class CouponController extends Curd
|
|
|
$this->doInsert($data);
|
|
|
// 关联优惠券和商品、规格
|
|
|
$this->insertCouponGoods($goods, $data['coupon_id']);
|
|
|
+ if ($data['coupon_number'] > 0) {
|
|
|
+ $this->generateCouponDetail($data['coupon_id'], $data['coupon_number']);
|
|
|
+ }
|
|
|
Db::commit();
|
|
|
|
|
|
return json_success('success');
|
|
@@ -228,18 +232,21 @@ class CouponController extends Curd
|
|
|
$params = $request->post();
|
|
|
$data = $this->inputFilter($params);
|
|
|
$data['coupon_id'] = "CU" . str_pad(SysSerial::getSerial(), 6, '0') . random_string(6, 'up');
|
|
|
- if (!empty($params['coupon_use_time']) && $params['coupon_use_time'] == 'date'){
|
|
|
+ if (!empty($params['coupon_use_time']) && $params['coupon_use_time'] == 'date') {
|
|
|
$data['coupon_validdate_day'] = null;
|
|
|
$data['coupon_validdate_begin'] = date("Y-m-d H:i:s", strtotime($data['coupon_validdate_begin']));
|
|
|
$data['coupon_validdate_end'] = date("Y-m-d H:i:s", strtotime($data['coupon_validdate_end']));
|
|
|
- }elseif (!empty($params['coupon_use_time']) && $params['coupon_use_time'] == 'day'){
|
|
|
+ } elseif (!empty($params['coupon_use_time']) && $params['coupon_use_time'] == 'day') {
|
|
|
$data['coupon_validdate_begin'] = null;
|
|
|
$data['coupon_validdate_end'] = null;
|
|
|
}
|
|
|
$couponJson = [];
|
|
|
if ($params['coupon_use_member'] == 'member' && isset($params['member_list'])) {
|
|
|
$couponJson['member']['list'] = $params['member_list'];
|
|
|
+ $couponJson['member']['range'] = '';
|
|
|
+ $couponJson['member']['where'] = '';
|
|
|
} else if ($params['coupon_use_member'] == 'condition') {
|
|
|
+ $couponJson['member']['list'] = [];
|
|
|
if (isset($params['condition']) && $params['condition'] == 'is_vip') {
|
|
|
$couponJson['member']['range'] = 'VIP会员';
|
|
|
$couponJson['member']['where'] = urlencode(" `member_is_vip` = 'Y'");
|
|
@@ -251,8 +258,9 @@ class CouponController extends Curd
|
|
|
$couponJson['member']['where'] = urlencode(" `member_classify` = 'MEMBER'");
|
|
|
}
|
|
|
} else if ($params['coupon_use_member'] == 'all') {
|
|
|
- $couponJson['member']['range'] = '不限';
|
|
|
- $couponJson['member']['where'] = urlencode(" 1");
|
|
|
+ $couponJson['member']['list'] = [];
|
|
|
+ $couponJson['member']['range'] = '全部员工';
|
|
|
+ $couponJson['member']['where'] = '';
|
|
|
}
|
|
|
|
|
|
if (!empty($params['premises_range']) && $params['premises_range'] == 'all') {
|
|
@@ -284,8 +292,24 @@ class CouponController extends Curd
|
|
|
Db::beginTransaction();
|
|
|
try {
|
|
|
[$id, $data] = $this->updateInput($request);
|
|
|
+ $originCouponNumber = $data['origin_coupon_number'];
|
|
|
+ unset($data['origin_coupon_number']);
|
|
|
$this->updateCouponGoods($request->post('goodsContentList'), $id);
|
|
|
$this->doUpdate($id, $data);
|
|
|
+ if ($originCouponNumber == 0 && $data['coupon_number'] != 0) {
|
|
|
+ // 查已领取多少了
|
|
|
+ $detailCount = CouponDetail::where('join_detail_coupon_id', $id)->count();
|
|
|
+ if ($detailCount < $data['coupon_number']) {
|
|
|
+ $this->generateCouponDetail($id, $data['coupon_number'] - $detailCount);
|
|
|
+ }
|
|
|
+ }else if($originCouponNumber < $data['coupon_number']){
|
|
|
+ $this->generateCouponDetail($id, $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();
|
|
|
+ }
|
|
|
Db::commit();
|
|
|
|
|
|
return json_success('success');
|
|
@@ -340,15 +364,17 @@ class CouponController extends Curd
|
|
|
$primary_key = $this->model->getKeyName();
|
|
|
$id = $request->post($primary_key);
|
|
|
$data = $this->inputFilter($params);
|
|
|
- if (!empty($params['coupon_use_time']) && $params['coupon_use_time'] == 'date'){
|
|
|
+ if (!empty($params['coupon_use_time']) && $params['coupon_use_time'] == 'date') {
|
|
|
$data['coupon_validdate_day'] = null;
|
|
|
$data['coupon_validdate_begin'] = date("Y-m-d H:i:s", strtotime($data['coupon_validdate_begin']));
|
|
|
$data['coupon_validdate_end'] = date("Y-m-d H:i:s", strtotime($data['coupon_validdate_end']));
|
|
|
- }elseif (!empty($params['coupon_use_time']) && $params['coupon_use_time'] == 'day'){
|
|
|
+ } elseif (!empty($params['coupon_use_time']) && $params['coupon_use_time'] == 'day') {
|
|
|
$data['coupon_validdate_begin'] = null;
|
|
|
$data['coupon_validdate_end'] = null;
|
|
|
}
|
|
|
$model = $this->model->find($id);
|
|
|
+ // 原数量
|
|
|
+ $data['origin_coupon_number'] = $model->coupon_number;
|
|
|
if (!$model) {
|
|
|
throw new BusinessException('记录不存在', 2);
|
|
|
}
|
|
@@ -358,12 +384,12 @@ class CouponController extends Curd
|
|
|
}
|
|
|
if ($params['coupon_use_member'] == 'member' && isset($params['member_list'])) {
|
|
|
$couponJson['member']['list'] = $params['member_list'];
|
|
|
- if (isset($couponJson['member']['range'])) {
|
|
|
- $couponJson['member']['range'] = '';
|
|
|
- }
|
|
|
- if (isset($couponJson['member']['where'])) {
|
|
|
- $couponJson['member']['where'] = '';
|
|
|
- }
|
|
|
+// if (isset($couponJson['member']['range'])) {
|
|
|
+ $couponJson['member']['range'] = '';
|
|
|
+// }
|
|
|
+// if (isset($couponJson['member']['where'])) {
|
|
|
+ $couponJson['member']['where'] = '';
|
|
|
+// }
|
|
|
} else if ($params['coupon_use_member'] == 'condition') {
|
|
|
if (isset($params['condition']) && $params['condition'] == 'is_vip') {
|
|
|
$couponJson['member']['range'] = 'VIP会员';
|
|
@@ -375,12 +401,13 @@ class CouponController extends Curd
|
|
|
$couponJson['member']['range'] = '会员';
|
|
|
$couponJson['member']['where'] = urlencode(" `member_classify` = 'MEMBER'");
|
|
|
}
|
|
|
- if (isset($couponJson['member']['list'])) {
|
|
|
- $couponJson['member']['list'] = [];
|
|
|
- }
|
|
|
+// if (isset($couponJson['member']['list'])) {
|
|
|
+ $couponJson['member']['list'] = [];
|
|
|
+// }
|
|
|
} else if ($params['coupon_use_member'] == 'all') {
|
|
|
- $couponJson['member']['range'] = '不限';
|
|
|
- $couponJson['member']['where'] = urlencode(" 1");
|
|
|
+ $couponJson['member']['list'] = [];
|
|
|
+ $couponJson['member']['range'] = '全部员工';
|
|
|
+ $couponJson['member']['where'] = '';
|
|
|
|
|
|
if (isset($couponJson['member']['list'])) {
|
|
|
$couponJson['member']['list'] = [];
|
|
@@ -435,7 +462,7 @@ class CouponController extends Curd
|
|
|
if (isset($couponGood['goods'])) {
|
|
|
$content['goods_name'] = $couponGood['goods']['name'];
|
|
|
$content['goods_classify'] = $couponGood['goods']['goods_classify'];
|
|
|
- $content['goods_cover'] = getenv('STORAGE_DOMAIN').$couponGood['goods']['goods_cover'];
|
|
|
+ $content['goods_cover'] = getenv('STORAGE_DOMAIN') . $couponGood['goods']['goods_cover'];
|
|
|
}
|
|
|
if (isset($couponGood['sku']) && isset($couponGood['sku']['goods_sku_specs_json'])) {
|
|
|
// $skuSpecsJson = json_decode($couponGood['sku']['goods_sku_specs_json'], true);
|
|
@@ -544,4 +571,16 @@ class CouponController extends Curd
|
|
|
return json_fail('删除失败');
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private function generateCouponDetail($couponId, $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' => 'PENDING',
|
|
|
+ 'coupon_detail_addtimes' => time()
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|