FlushBookCollectSum.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. * Created by: PhpStorm
  4. * User: lytian
  5. * Date: 2019/9/25
  6. * Time: 17:53
  7. */
  8. namespace app\admin\command;
  9. use think\console\Command;
  10. use think\console\Input;
  11. use think\console\Output;
  12. use think\Log;
  13. use think\Request;
  14. class FlushBookCollectSum extends Command
  15. {
  16. protected function configure()
  17. {
  18. $this->setName('FlushBookCollectSum')->setDescription('更正BookCollect数据汇总');
  19. }
  20. protected function execute(Input $input, Output $output)
  21. {
  22. Request::instance()->module('admin'); //cli模式下无法获取到当前的项目模块,手动指定一下
  23. model("AuthGroupAccess")->where('group_id', 'in', ['3', '4'])->chunk(100, function ($rows) use($output) {
  24. if (count($rows) > 0) {
  25. $time = strtotime(date("2019-09-25"));
  26. foreach ($rows as $row) {
  27. $admin_id = $row['uid'];
  28. $maps = [
  29. 'admin_id' => ['=', $admin_id],
  30. 'state' => ['=', '1'],
  31. 'deduct' => ['=', 0],
  32. 'book_id' => ['>', 0],
  33. 'finishtime' => ['<=', $time],
  34. ];
  35. $bookRechargeRows = model("Orders")->field("book_id, sum(money) as recharge_money, count(1) as recharge_num")->where($maps)->group('book_id')->select();
  36. if ($bookRechargeRows) {
  37. foreach ($bookRechargeRows as $bookRechargeRow) {
  38. //存在更新 不存在插入?
  39. $bookId = $bookRechargeRow['book_id'];
  40. $rechargeMoney = $bookRechargeRow['recharge_money'];
  41. $rechargeNum = $bookRechargeRow['recharge_num'];
  42. $collectRow = model("BookCollect")->where('admin_id', 'eq', $admin_id)->where('type', 'eq', '3')->where('book_id', 'eq', $bookId)->find();
  43. if ($collectRow) {
  44. //更新
  45. model('BookCollect')->update(['recharge_num' => $rechargeNum, 'recharge_money' => $rechargeMoney], ['id' => $collectRow['id']]);
  46. $output->info('BookCollect update sql success');
  47. } else {
  48. //插入
  49. $insert_data = [
  50. 'type' => '3',
  51. 'admin_id' => $admin_id,
  52. 'book_id' => $bookId,
  53. 'createdate' => '20180101',
  54. 'recharge_money' => $rechargeMoney,
  55. 'recharge_num' => $rechargeNum,
  56. 'createtime' => time(),
  57. 'updatetime' => time()
  58. ];
  59. if ($is_insert = model('BookCollect')->insert($insert_data)) {
  60. $output->info('BookCollect insert sql success');
  61. } else {
  62. $output->error('BookCollect insert sql failed');
  63. }
  64. }
  65. }
  66. }
  67. $output->write("admin_id:{$admin_id} 完事了");
  68. }
  69. } else {
  70. return false;
  71. }
  72. }, 'uid');
  73. $output->write("脚本执行结束");
  74. }
  75. }