|
|
|
@ -56,14 +56,16 @@ class CouponRebateService implements CouponRebateServiceInterface |
|
|
|
|
|
|
|
$ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); |
|
|
|
$activity = $ssdb->exec('hget', SsdbKeysPrefix::COUPON_REBATE_ACTIVITY ,'activity'); |
|
|
|
// ssdb 键值
|
|
|
|
$ssdbKey = 'activity_'.$activity.'_user_'.$userId; |
|
|
|
$receiveSsdb = []; |
|
|
|
|
|
|
|
// 判断是否已全部领取过
|
|
|
|
$userReceive = $ssdb->exec('hgetall', SsdbKeysPrefix::COUPON_REBATE_RECEIVE . $activity . $userId); |
|
|
|
$userReceive = $ssdb->exec('hget', SsdbKeysPrefix::COUPON_REBATE_RECEIVE,$ssdbKey); |
|
|
|
if($userReceive === false){ |
|
|
|
$ids = $idsData; |
|
|
|
}else{ |
|
|
|
$userReceiveCouponIds = empty($userReceive) ? [] : $userReceive ; |
|
|
|
$userReceiveCouponIds = empty($userReceive) ? [] : explode(',',$userReceive) ; |
|
|
|
$ids = array_diff($idsData, $userReceiveCouponIds); |
|
|
|
$receiveSsdb = $userReceiveCouponIds; |
|
|
|
} |
|
|
|
@ -148,13 +150,12 @@ class CouponRebateService implements CouponRebateServiceInterface |
|
|
|
} |
|
|
|
|
|
|
|
if(count($receiveSsdb) > 0){ |
|
|
|
$saveSsdb = []; |
|
|
|
foreach($receiveSsdb as $kssdb => $vssdb){ |
|
|
|
$saveSsdb[] = $kssdb; |
|
|
|
$saveSsdb[] = $vssdb; |
|
|
|
} |
|
|
|
// 记录到ssdb
|
|
|
|
if(false === $ssdb->exec('multi_hset',SsdbKeysPrefix::COUPON_REBATE_RECEIVE . $activity . $userId, $saveSsdb)){ |
|
|
|
; |
|
|
|
$saveSsdb = [ |
|
|
|
$ssdbKey, |
|
|
|
implode(',',$receiveSsdb) |
|
|
|
]; |
|
|
|
if(false === $ssdb->exec('hset',SsdbKeysPrefix::COUPON_REBATE_RECEIVE, $saveSsdb)){ |
|
|
|
$errorData['msg'] = '记录领取优惠券到ssdb失败'; |
|
|
|
$this->log->event( |
|
|
|
LogLabel::COUPON_LOG, |
|
|
|
@ -372,16 +373,24 @@ class CouponRebateService implements CouponRebateServiceInterface |
|
|
|
/** |
|
|
|
* 清优惠券领取记录(SSDB) |
|
|
|
*/ |
|
|
|
public function clearSsdbCouponReceiveByName($activity, $userId, $get = 0){ |
|
|
|
|
|
|
|
public function clearSsdbCouponReceiveByName($activity, $userId, $get = 0, $isAll = 0){ |
|
|
|
$key = 'activity_'.$activity.'_user_'.$userId; |
|
|
|
$ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); |
|
|
|
|
|
|
|
if($isAll > 0){ |
|
|
|
if($get > 0){ |
|
|
|
return [ |
|
|
|
$ssdb->exec('hgetAll', SsdbKeysPrefix::COUPON_REBATE_RECEIVE . $activity . $userId ) |
|
|
|
]; |
|
|
|
return $ssdb->exec('hgetAll', SsdbKeysPrefix::COUPON_REBATE_RECEIVE); |
|
|
|
}else{ |
|
|
|
return ( $ssdb->exec('hclear', SsdbKeysPrefix::COUPON_REBATE_RECEIVE) === false) ? false : true ; |
|
|
|
} |
|
|
|
}else { |
|
|
|
$ssdb->exec('hclear', SsdbKeysPrefix::COUPON_REBATE_RECEIVE . $activity . $userId ); |
|
|
|
|
|
|
|
return ( $ssdb->exec('hclear', SsdbKeysPrefix::COUPON_REBATE_RECEIVE . $activity . $userId ) === false) ? false : true; |
|
|
|
if($get > 0){ |
|
|
|
return $ssdb->exec('hget', SsdbKeysPrefix::COUPON_REBATE_RECEIVE, $key); |
|
|
|
}else{ |
|
|
|
return ( $ssdb->exec('hdel', SsdbKeysPrefix::COUPON_REBATE_RECEIVE, $key) === false) ? false : true ; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |