repairPvLog.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. declare (strict_types=1);
  3. namespace app\command;
  4. use think\console\Command;
  5. use think\console\Input;
  6. use think\console\Output;
  7. use think\facade\Db;
  8. class repairPvLog extends Command
  9. {
  10. protected function configure()
  11. {
  12. // 指令配置
  13. $this->setName('repair_pv_log')
  14. ->setDescription('修复老数据pv记录');
  15. }
  16. /**
  17. * @param Input $input
  18. * @param Output $output
  19. * @return void
  20. */
  21. protected function execute(Input $input, Output $output)
  22. {
  23. $user_id_list = Db::name('user')->where([['pv','=',0]])->column('uid');
  24. if($user_id_list){
  25. foreach ($user_id_list as $user_id) {
  26. $order_list = Db::name('store_order')->where(['uid' => $user_id,'paid' => 1])->where('mer_id',496)->select();
  27. if($order_list) {
  28. $pv = 0;
  29. foreach ($order_list as $order) {
  30. if($order['mer_id'] == 496){
  31. $pv_tmp = ($order['total_price']/1180) * 700;
  32. $pv_log_data = [
  33. 'uid' => $user_id,
  34. 'pv' => $pv_tmp,
  35. 'status' => 1,
  36. 'mark' => '会员专区消费获得PV(老数据)',
  37. 'order_id' => $order['order_sn'],
  38. 'settlement_time' => '2025-03-01 00:00:00',
  39. 'addtime' => 1740758400
  40. ];
  41. Db::name('user_pv_log')->insert($pv_log_data);
  42. $pv += $pv_tmp;
  43. }
  44. }
  45. if($pv){
  46. Db::name('user')->where(['uid' => $user_id])->update(['pv' => $pv]);
  47. $output->writeln('user_id = ' . $user_id . '添加成功 pv = ' . $pv);
  48. }
  49. }
  50. }
  51. }
  52. $output->writeln('执行结束');
  53. }
  54. }