修改活动结束时间判断,修改首单判断

This commit is contained in:
luofei 2024-01-20 18:12:06 +08:00
parent 6286f5607e
commit 7306f63ec1
4 changed files with 28 additions and 16 deletions

View File

@ -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

View File

@ -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();
}

View File

@ -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) {

View File

@ -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) {