调试红包活动

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

View File

@ -25,7 +25,7 @@ class StoreConsumptionDao extends BaseDao
*/
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)

View File

@ -32,7 +32,7 @@ class StoreConsumptionUserDao extends BaseDao
public function check(int $userId, int $groupOrderId)
{
$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)) {
$this->promoter($userId, $groupOrder, $spreadUserId);
} else {
@ -53,7 +53,7 @@ class StoreConsumptionUserDao extends BaseDao
public function promoter(int $userId, array $groupOrder, int $spreadUserId)
{
$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'])) {
return false;
@ -93,10 +93,10 @@ class StoreConsumptionUserDao extends BaseDao
{
// 查询推荐人的消费金类型
$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');
$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'])) {
// 推荐人消费金数据或推荐人的有效订单为空,作为发起人参加活动
return $this->promoter($userId, $groupOrder, 0);
@ -128,11 +128,11 @@ class StoreConsumptionUserDao extends BaseDao
/**
* 获取消费档位区间
* @param array $consumption
* @param $consumption
* @param float $amount
* @return array|mixed
*/
public function getScope(array $consumption, float $amount)
public function getScope($consumption, float $amount)
{
$scope = [];
foreach ($consumption['config'] as $k => $item) {
@ -163,7 +163,7 @@ class StoreConsumptionUserDao extends BaseDao
->where('is_first_order', StoreActivityOrder::IS_FIRST_ORDER)
->where('total_amount', '>=', $scope['start'])
->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 = [];
foreach ($groupOrders as $groupOrder) {
if (!isset($userOrders[$groupOrder['user_id']])) {