修改活动结束时间判断,修改首单判断
This commit is contained in:
parent
6286f5607e
commit
7306f63ec1
@ -28,6 +28,10 @@ class StoreActivityUserDao extends BaseDao
|
||||
*/
|
||||
public function choose(int $userId, int $couponId, int $activityId)
|
||||
{
|
||||
$consumption = StoreConsumption::where('coupon_id', $couponId)->find();
|
||||
if ($consumption['status'] != 1 || $consumption['start_time'] > time() || $consumption['end_time'] <= time()) {
|
||||
throw new \Exception('当前活动已结束');
|
||||
}
|
||||
$model = StoreActivityUser::where('user_id', $userId)->where('value', $couponId)->where('activity_id', $activityId)->find();
|
||||
if (empty($model)) {
|
||||
$model = new StoreActivityUser();
|
||||
@ -79,6 +83,11 @@ class StoreActivityUserDao extends BaseDao
|
||||
return $data->value ?? 0;
|
||||
}
|
||||
|
||||
public function getOne(int $userId, int $activityId = 1)
|
||||
{
|
||||
return StoreActivityUser::where('user_id', $userId)->where('activity_id', $activityId)->where('status', 1)->find();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户参与活动的状态
|
||||
* @param int $userId 用户id
|
||||
|
@ -33,7 +33,6 @@ class StoreConsumptionDao extends BaseDao
|
||||
return StoreConsumption::where('coupon_id', $id)
|
||||
->where('status', StoreConsumption::STATUS_ENABLE)
|
||||
->whereTime('start_time', '<=', time())
|
||||
->whereTime('end_time', '>', time())
|
||||
->find();
|
||||
}
|
||||
|
||||
|
@ -52,12 +52,13 @@ class StoreConsumptionUserDao extends BaseDao
|
||||
*/
|
||||
public function promoter(int $userId, $groupOrder, int $spreadUserId)
|
||||
{
|
||||
$consumptionId = (new StoreActivityUserDao())->getValue($userId);
|
||||
$consumption = (new StoreConsumptionDao())->getOne($consumptionId);
|
||||
//用户没有参加 消费金活动
|
||||
if (empty($consumption['config'])) {
|
||||
$activityUser = (new StoreActivityUserDao())->getOne($userId);
|
||||
$consumption = (new StoreConsumptionDao())->getOne($activityUser['value'] ?? 0);
|
||||
//用户没有参加 消费金活动 或 已超过任务完成时间
|
||||
if (empty($consumption['config']) || strtotime('+1 year', $activityUser['create_time']) < time()) {
|
||||
return false;
|
||||
}
|
||||
$endTime = strtotime('+1 year', $activityUser['create_time']);
|
||||
$scope = $this->getScope($consumption, $groupOrder['pay_price']);
|
||||
//用户没有达到 消费金活动 任一档次
|
||||
if ($scope['rate'] <= 0) {
|
||||
@ -65,7 +66,7 @@ class StoreConsumptionUserDao extends BaseDao
|
||||
}
|
||||
Db::startTrans();
|
||||
try {
|
||||
$isFirstOrder = $this->isFirstOrder($userId, $consumption['start_time'], $consumption['end_time']);
|
||||
$isFirstOrder = $this->isFirstOrder($userId, $consumption['start_time'], $endTime);
|
||||
$storeActivityOrderDao = new StoreActivityOrderDao();
|
||||
$storeActivityOrderDao->save($groupOrder, $spreadUserId, $isFirstOrder);
|
||||
if ($consumption['type'] == StoreConsumption::TYPE_OWNER_CONSUMPTION) {
|
||||
@ -92,15 +93,16 @@ class StoreConsumptionUserDao extends BaseDao
|
||||
public function guest(int $userId, $groupOrder, int $spreadUserId)
|
||||
{
|
||||
// 查询推荐人的消费金类型
|
||||
$spreadConsumptionId = (new StoreActivityUserDao())->getValue($spreadUserId);
|
||||
$spreadConsumption = (new StoreConsumptionDao())->getOne($spreadConsumptionId);
|
||||
$spreadActivityUser = (new StoreActivityUserDao())->getOne($spreadUserId);
|
||||
$spreadConsumption = (new StoreConsumptionDao())->getOne($spreadActivityUser['value'] ?? 0);
|
||||
// 查询推荐人满足条件的有效订单
|
||||
$spreadGroupOrderId = StoreActivityOrder::where('user_id', $spreadUserId)->where('status', StoreActivityOrder::STATUS_VALID)->value('group_order_id');
|
||||
$spreadGroupOrder = StoreGroupOrder::where('group_order_id', $spreadGroupOrderId)->where('paid', 1)->find();
|
||||
if (empty($spreadGroupOrder) || empty($spreadConsumption['config'])) {
|
||||
// 推荐人消费金数据或推荐人的有效订单为空,作为发起人参加活动
|
||||
if (empty($spreadGroupOrder) || empty($spreadConsumption['config']) || empty($spreadActivityUser) || strtotime('+1 year', $spreadActivityUser['create_time']) < time()) {
|
||||
// 推荐人消费金数据为空 或 推荐人的有效订单为空 或推荐人已超过任务完成时间,作为发起人参加活动
|
||||
return $this->promoter($userId, $groupOrder, 0);
|
||||
}
|
||||
$endTime = strtotime('+1 year', $spreadActivityUser['create_time']);
|
||||
$spreadScope = $this->getScope($spreadConsumption, $spreadGroupOrder['pay_price']);
|
||||
if ($groupOrder['pay_price'] < $spreadScope['start']) {
|
||||
// 当前用户的订单不在推荐人的档位区间,作为发起人参加活动
|
||||
@ -108,7 +110,7 @@ class StoreConsumptionUserDao extends BaseDao
|
||||
}
|
||||
Db::startTrans();
|
||||
try {
|
||||
$isFirstOrder = $this->isFirstOrder($userId, $spreadConsumption['start_time'], $spreadConsumption['end_time']);
|
||||
$isFirstOrder = $this->isFirstOrder($userId, $spreadConsumption['start_time'], $endTime);
|
||||
$storeActivityOrderDao = new StoreActivityOrderDao();
|
||||
$storeActivityOrderDao->save($groupOrder, $spreadUserId, $isFirstOrder);
|
||||
if ($spreadConsumption['type'] == StoreConsumption::TYPE_PULL_CONSUMPTION && $isFirstOrder) {
|
||||
|
@ -500,11 +500,13 @@ class StoreOrderRepository extends BaseRepository
|
||||
], $order->mer_id);
|
||||
//自动打印订单
|
||||
$this->autoPrinter($order->order_id, $order->mer_id);
|
||||
// "惠农供销,谱写数字新篇章"活动首单分润,商户和村、小组合伙人
|
||||
$finance = (new CommissionDao())->firstOrderCommission($order, $finance, $financeSn . ($i++));
|
||||
$addressCode = explode(',', $order['user_address_code']);
|
||||
// "惠农供销,谱写数字新篇章"活动首单分润,镇合伙人
|
||||
(new CommissionDao())->sendCommission($order, $addressCode[3], 2);
|
||||
if ($order['pay_price'] > 0) {
|
||||
// "惠农供销,谱写数字新篇章"活动首单分润,商户和村、小组合伙人
|
||||
$finance = (new CommissionDao())->firstOrderCommission($order, $finance, $financeSn . ($i++));
|
||||
$addressCode = explode(',', $order['user_address_code']);
|
||||
// "惠农供销,谱写数字新篇章"活动首单分润,镇合伙人
|
||||
(new CommissionDao())->sendCommission($order, $addressCode[3], 2);
|
||||
}
|
||||
}
|
||||
//分销判断
|
||||
// if ($groupOrder->user->spread_uid) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user