调试红包活动

This commit is contained in:
luofei 2024-01-19 15:12:10 +08:00
parent afe7e89d02
commit 5aee04b943
3 changed files with 15 additions and 15 deletions

View File

@ -95,30 +95,30 @@ class StoreActivityUserDao extends BaseDao
$activityUser = StoreActivityUser::where('user_id', $userId) $activityUser = StoreActivityUser::where('user_id', $userId)
->where('activity_id', $activityId) ->where('activity_id', $activityId)
->where('status', 1) ->where('status', 1)
->find()->toArray(); ->find();
if (empty($activityUser)) { if (empty($activityUser)) {
return ['target' => $target, 'allow_receive' => false, 'user_info' => $userInfo]; return ['target' => $target, 'allow_receive' => false, 'user_info' => $userInfo];
} }
$consumption = StoreConsumption::where('coupon_id', $activityUser['value']) $consumption = StoreConsumption::where('coupon_id', $activityUser['value'])
->where('type', StoreConsumption::TYPE_PULL_CONSUMPTION) ->where('type', StoreConsumption::TYPE_PULL_CONSUMPTION)
->find()->toArray(); ->find();
$myOrder = StoreActivityOrder::where('user_id', $userId) $myOrder = StoreActivityOrder::where('user_id', $userId)
->where('activity_id', $activityId) ->where('activity_id', $activityId)
->where('status', StoreActivityOrder::STATUS_VALID) ->where('status', StoreActivityOrder::STATUS_VALID)
->find()->toArray(); ->find();
if (empty($myOrder)) { if (empty($myOrder)) {
return ['target' => $target, 'allow_receive' => false, 'user_info' => $userInfo]; return ['target' => $target, 'allow_receive' => false, 'user_info' => $userInfo];
} }
$storeConsumptionUserDao = new StoreConsumptionUserDao(); $storeConsumptionUserDao = new StoreConsumptionUserDao();
$scope = $storeConsumptionUserDao->getScope($consumption, $myOrder['total_amount']); $scope = $storeConsumptionUserDao->getScope($consumption, $myOrder['total_amount']);
$userInfo = User::where('spread_uid', $userId)->field('uid,nickname,avatar')->select()->toArray(); $userInfo = User::where('spread_uid', $userId)->field('uid,nickname,avatar')->select();
$orders = StoreActivityOrder::where('spread_id', $userId) $orders = StoreActivityOrder::where('spread_id', $userId)
->whereIn('user_id', array_column($userInfo, 'uid')) ->whereIn('user_id', array_column($userInfo, 'uid'))
->where('activity_id', $activityId) ->where('activity_id', $activityId)
->where('is_first_order', StoreActivityOrder::IS_FIRST_ORDER) ->where('is_first_order', StoreActivityOrder::IS_FIRST_ORDER)
->where('total_amount', '>=', $scope['start']) ->where('total_amount', '>=', $scope['start'])
->where('status', StoreActivityOrder::STATUS_VALID) ->where('status', StoreActivityOrder::STATUS_VALID)
->select()->toArray(); ->select();
$orders = reset_index($orders, 'user_id'); $orders = reset_index($orders, 'user_id');
foreach ($userInfo as &$user) { foreach ($userInfo as &$user) {
$user['target_amount'] = $scope['start']; $user['target_amount'] = $scope['start'];
@ -166,12 +166,12 @@ class StoreActivityUserDao extends BaseDao
*/ */
public function record(int $userId) public function record(int $userId)
{ {
$consumption = StoreConsumption::select()->toArray(); $consumption = StoreConsumption::whereIn('type', [StoreConsumption::TYPE_OWNER_CONSUMPTION, StoreConsumption::TYPE_PULL_CONSUMPTION])->select();
$record = StoreConsumptionUser::where('uid', $userId) $record = StoreConsumptionUser::where('uid', $userId)
->whereIn('coupon_id', array_column($consumption, 'coupon_id')) ->whereIn('coupon_id', array_column($consumption, 'coupon_id'))
->where('status', '>=', StoreConsumptionUser::STATUS_UNUSED) ->where('status', '>=', StoreConsumptionUser::STATUS_UNUSED)
->field('coupon_price,order_amount,create_time') ->field('coupon_price,order_amount,create_time')
->select()->toArray(); ->select();
$totalAmount = 0; $totalAmount = 0;
foreach ($record as $item) { foreach ($record as $item) {
$totalAmount = bcadd($totalAmount, $item['coupon_price'], 2); $totalAmount = bcadd($totalAmount, $item['coupon_price'], 2);

View File

@ -25,7 +25,7 @@ class StoreConsumptionDao extends BaseDao
*/ */
public function getValidList() public function getValidList()
{ {
return StoreConsumption::whereIn('type', [StoreConsumption::TYPE_OWNER_CONSUMPTION, StoreConsumption::TYPE_PULL_CONSUMPTION])->where('status', StoreConsumption::STATUS_ENABLE)->field('coupon_id,start_time,end_time,title')->select()->toArray(); return StoreConsumption::whereIn('type', [StoreConsumption::TYPE_OWNER_CONSUMPTION, StoreConsumption::TYPE_PULL_CONSUMPTION])->where('status', StoreConsumption::STATUS_ENABLE)->field('coupon_id,start_time,end_time,title')->select();
} }
public function getOne($id) public function getOne($id)

View File

@ -32,7 +32,7 @@ class StoreConsumptionUserDao extends BaseDao
public function check(int $userId, int $groupOrderId) public function check(int $userId, int $groupOrderId)
{ {
$spreadUserId = User::where('uid', $userId)->value('spread_uid'); $spreadUserId = User::where('uid', $userId)->value('spread_uid');
$groupOrder = StoreGroupOrder::where('group_order_id', $groupOrderId)->find()->toArray(); $groupOrder = StoreGroupOrder::where('group_order_id', $groupOrderId)->find();
if (empty($spreadUserId)) { if (empty($spreadUserId)) {
$this->promoter($userId, $groupOrder, $spreadUserId); $this->promoter($userId, $groupOrder, $spreadUserId);
} else { } else {
@ -53,7 +53,7 @@ class StoreConsumptionUserDao extends BaseDao
public function promoter(int $userId, array $groupOrder, int $spreadUserId) public function promoter(int $userId, array $groupOrder, int $spreadUserId)
{ {
$consumptionId = (new StoreActivityUserDao())->getValue($userId); $consumptionId = (new StoreActivityUserDao())->getValue($userId);
$consumption = StoreConsumption::where('coupon_id', $consumptionId)->where('status', 1)->find()->toArray(); $consumption = StoreConsumption::where('coupon_id', $consumptionId)->where('status', 1)->find();
//用户没有参加 消费金活动 //用户没有参加 消费金活动
if (!empty($consumption['config'])) { if (!empty($consumption['config'])) {
return false; return false;
@ -93,10 +93,10 @@ class StoreConsumptionUserDao extends BaseDao
{ {
// 查询推荐人的消费金类型 // 查询推荐人的消费金类型
$spreadConsumptionId = (new StoreActivityUserDao())->getValue($spreadUserId); $spreadConsumptionId = (new StoreActivityUserDao())->getValue($spreadUserId);
$spreadConsumption = StoreConsumption::where('coupon_id', $spreadConsumptionId)->where('status', 1)->find()->toArray(); $spreadConsumption = StoreConsumption::where('coupon_id', $spreadConsumptionId)->where('status', 1)->find();
// 查询推荐人满足条件的有效订单 // 查询推荐人满足条件的有效订单
$spreadGroupOrderId = StoreActivityOrder::where('user_id', $spreadUserId)->where('status', StoreActivityOrder::STATUS_VALID)->value('group_order_id'); $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()->toArray(); $spreadGroupOrder = StoreGroupOrder::where('group_order_id', $spreadGroupOrderId)->where('paid', 1)->find();
if (empty($spreadGroupOrder) || empty($spreadConsumption['config'])) { if (empty($spreadGroupOrder) || empty($spreadConsumption['config'])) {
// 推荐人消费金数据或推荐人的有效订单为空,作为发起人参加活动 // 推荐人消费金数据或推荐人的有效订单为空,作为发起人参加活动
return $this->promoter($userId, $groupOrder, 0); return $this->promoter($userId, $groupOrder, 0);
@ -128,11 +128,11 @@ class StoreConsumptionUserDao extends BaseDao
/** /**
* 获取消费档位区间 * 获取消费档位区间
* @param array $consumption * @param $consumption
* @param float $amount * @param float $amount
* @return array|mixed * @return array|mixed
*/ */
public function getScope(array $consumption, float $amount) public function getScope($consumption, float $amount)
{ {
$scope = []; $scope = [];
foreach ($consumption['config'] as $k => $item) { foreach ($consumption['config'] as $k => $item) {
@ -163,7 +163,7 @@ class StoreConsumptionUserDao extends BaseDao
->where('is_first_order', StoreActivityOrder::IS_FIRST_ORDER) ->where('is_first_order', StoreActivityOrder::IS_FIRST_ORDER)
->where('total_amount', '>=', $scope['start']) ->where('total_amount', '>=', $scope['start'])
->where('status', StoreActivityOrder::STATUS_VALID) ->where('status', StoreActivityOrder::STATUS_VALID)
->field('group_order_id,user_id,total_amount')->select()->toArray(); ->field('group_order_id,user_id,total_amount')->select();
$userOrders = []; $userOrders = [];
foreach ($groupOrders as $groupOrder) { foreach ($groupOrders as $groupOrder) {
if (!isset($userOrders[$groupOrder['user_id']])) { if (!isset($userOrders[$groupOrder['user_id']])) {