维护用户销售统计——脚本
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-16 14:44:02
|
||||
* @LastEditors: Please set LastEditors
|
||||
* @LastEditTime: 2020-11-25 09:46:23
|
||||
* @LastEditTime: 2020-11-25 13:10:11
|
||||
*/
|
||||
|
||||
namespace app\manager\model;
|
||||
@@ -217,4 +217,16 @@ class ProductOrder extends Model
|
||||
->order('Id desc')
|
||||
->fetchAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 获取用户最后消费时间
|
||||
* @param {*} //SELECT UserId,max(UpdateTime) from product_order group by UserId
|
||||
* @return {*}
|
||||
*/
|
||||
public function getUserCostTime()
|
||||
{
|
||||
return $this->field('UserId,max(UpdateTime) as last_time')
|
||||
->where(['OrderState' => ['in', ProductOrderEnum::$PayComplete]])
|
||||
->fetchAll();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ use app\manager\model\FollowRecord;
|
||||
use app\manager\model\ProductOrder;
|
||||
use app\manager\model\User;
|
||||
use enum\user\User as UserEnum;
|
||||
use enum\order\ProductOrder as ProductOrderEnum;
|
||||
|
||||
$user_model = new User;
|
||||
$product_order_model = new ProductOrder;
|
||||
@@ -95,14 +94,20 @@ $user_model->updateOne(['Id' => ['in', $uncost_user_id_list]], ['follow_status'
|
||||
$user_model->updateOne(['Id' => ['in', $uncost_overtime_user_id_list]], ['follow_status' => $user_enum::$FollowOverTimeNotBuy]);
|
||||
$user_model->updateOne(['Id' => ['in', $cost_overtime_user_id_list]], ['follow_status' => $user_enum::$FollowOverTimeBuyReduce]);
|
||||
|
||||
//更新用户最后的支付时间
|
||||
$all_user_list = $user_model->getList([], 'Id,pay_time');
|
||||
foreach ($all_user_list as $user) {
|
||||
$pay_time = $product_order_model->getNewOne('UpdateTime', ['UserId' => $user['Id'], 'OrderState' => ['in', ProductOrderEnum::$PayComplete]]);
|
||||
if(!empty($pay_time['UpdateTime'])){
|
||||
if($user['pay_time'] != $pay_time['UpdateTime']){
|
||||
$user_model->updateOne(['Id'=>$user['Id']],['pay_time'=>$pay_time['UpdateTime']]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//获取所有用户的最后支付时间
|
||||
$all_last_cost = $product_order_model->getUserCostTime();
|
||||
$user_last_cost_id = [];
|
||||
$all_last_cost_list = [];
|
||||
foreach ($all_last_costas as $info) {
|
||||
$all_last_cost_list[$info['UserId']] = $info;
|
||||
$user_last_cost_id[] = $info['UserId'];
|
||||
}
|
||||
//更新用户最后的支付时间
|
||||
$all_user_list = $user_model->getList(['Id'=>['in',$user_last_cost_id]], 'Id,pay_time');
|
||||
|
||||
foreach($all_user_list as $info){
|
||||
if($info['pay_time'] != $all_last_cost_list[$info['Id']]['last_time']){
|
||||
$user_model->updateOne(['Id'=>$info['Id']],['pay_time'=>$all_last_cost_list[$info['Id']]['last_time']]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user