stat.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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\Cache;
  8. use think\facade\Db;
  9. class stat extends Command
  10. {
  11. protected function configure()
  12. { $this->setName('stat')
  13. ->setDescription('the good command');
  14. }
  15. protected function execute(Input $input, Output $output)
  16. {
  17. // 指令输出
  18. $sttime = Cache::get("departTips");
  19. if($sttime==1) return '';
  20. Cache::set("departTips",1,1800);
  21. $daprtid = [52,53,56,57];
  22. $companyNo='GS2203161855277894' ;
  23. $date=date("Y-m-d");
  24. $depart= Db::connect("mysql_sys")->name("company_item")->where(["id"=>$daprtid])->column("name","id");
  25. $company= Db::connect("mysql_sys")->name("company_info")->where(["companyNo"=>$companyNo])->column("company_name","companyNo");
  26. foreach ($depart as $itmeid=>$depart_name){
  27. $ist=Db::name("depart_everyday")->where(["depart_id"=>$itmeid,'companyNo'=>$companyNo,"day_time"=>$date])->findOrEmpty();
  28. $uidArr =$this->getuid($itmeid);
  29. $sale=$this->GetData($uidArr,$companyNo);
  30. if($ist){
  31. $ist['sale_total']=$sale['sale_total']??0;
  32. $ist['th_total']=$sale['th_total']??0;
  33. }else{
  34. $ist=[
  35. "depart_id"=>$itmeid,
  36. "depart_name"=>$depart_name,
  37. "day_time"=>date("Y-m-d"),
  38. "sale_total"=>$sale['sale_total']??0,
  39. "th_total"=>$sale['th_total']??0,
  40. "companyNo"=>$companyNo,
  41. "companyName"=>$company[$companyNo],
  42. ];
  43. }
  44. Db::name("depart_everyday")->save($ist);
  45. }
  46. $date=date('Y-m-d H:i:s');
  47. $output->writeln("[{$date}] 更新数据成功");
  48. }
  49. //各部门统计数据
  50. public function GetData($uid,$companyNo){
  51. $day_total =Db::name("qrd_info")->where([["ownerid","in",$uid],["is_del","=",0],['companyNo',"=",$companyNo]])
  52. ->whereDay("createdTime","today")
  53. ->sum('totalPrice+th_fee');
  54. $day_thtotal=Db::name("th_source")->alias("a")
  55. ->leftJoin("qrd_info b","a.th_qrdNo=b.sequenceNo or a.th_qrdNo=b.cxCode")
  56. ->where([["b.ownerid","in",$uid],['a.th_companyNo',"=",$companyNo]])
  57. ->whereDay("a.createtime","today")->sum('a.th_qrd_fee');
  58. return ["sale_total"=>$day_total,"th_total"=>$day_thtotal];
  59. }
  60. public function getuid($depart_id){
  61. $uidArr=Cache::get("Depart_Uid_Arr_$depart_id");
  62. if($uidArr==false){
  63. $uidArr = Db::connect("mysql_sys")->name("account_item")->where(["itemid"=>$depart_id])->column("account_id");
  64. Cache::set("Depart_Uid_Arr_$depart_id",$uidArr);
  65. }
  66. return $uidArr;
  67. }
  68. }