good.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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\input\Argument;
  7. use think\console\input\Option;
  8. use think\console\Output;
  9. use think\facade\Cache;
  10. use think\facade\Db;
  11. class good extends Command
  12. {
  13. protected function configure()
  14. {
  15. // 指令配置
  16. $this->setName('good')
  17. ->setDescription('the good command');
  18. }
  19. protected function execute(Input $input, Output $output)
  20. {
  21. // 指令输出
  22. $this->date=date("Y-m-d H:i:s",time()-3600);
  23. $goodset =Cache::store("redis")->get("goodSet");
  24. if($goodset ==1) return;
  25. Cache::store("redis")->set("goodSet",1,1800);
  26. try{
  27. $this->goodBasic();
  28. $this->goodZx();
  29. // Cache::store("redis")->set("goodSet",0);
  30. }catch (\Exception $e){
  31. // Cache::store("redis")->set("goodSet",0);
  32. $output->writeln("【".date("Y-m-d H:i:s")."】".$e->getMessage());
  33. }
  34. }
  35. public function addGood($data){
  36. if(empty($data)) return;
  37. $saleAll=[];
  38. foreach ($data as $v){
  39. $is=\app\admin\model\Good::where("spuCode",$v['spuCode'])->findOrEmpty();
  40. if($is->isEmpty()){
  41. $array=[
  42. "spuCode"=>$v['spuCode'],
  43. "good_name"=>$v['good_name'],
  44. "companyNo"=>$v['companyNo'],
  45. "companyName"=>$v['companyName'],
  46. "supplierNo"=>$v['supplierNo'],
  47. "supplierName"=>$v['supplierName'],
  48. "is_stock"=>$v['is_stock'],
  49. "craft_desc"=>$v['craft_desc'],
  50. "after_sales"=>$v['after_sales'],
  51. "good_img"=>$v['good_img'],
  52. "good_thumb_img"=>$v['good_thumb_img'],
  53. "good_info_img"=>$v['good_info_img'],
  54. "creater"=>$v['creater'],
  55. "createrid"=>$v['createrid'],
  56. "cat_name"=>$v['cat_id'],
  57. "unit_name"=>$v['good_unit'],
  58. "isZx"=>$v['isZx'],
  59. "exam_info"=>"",
  60. "status"=>0,
  61. "addtime"=>date("Y-m-d H:i:s"),
  62. "updatetime"=>date("Y-m-d H:i:s")
  63. ];
  64. $saleAll[]=$array;
  65. echo "【".date("Y-m-d H:i:s")."】 添加商品{$v['spuCode']}进入类目表\r\n";
  66. }
  67. }
  68. if(empty($saleAll)==false)(new \app\admin\model\Good())->saveAll($saleAll);
  69. }
  70. /**
  71. * @throws \think\db\exception\DataNotFoundException
  72. * @throws \think\db\exception\DbException
  73. * @throws \think\db\exception\ModelNotFoundException
  74. */
  75. public function goodBasic(){
  76. $list =Db::connect('mysql_wsm')
  77. ->name('good_basic')
  78. ->withAttr("cat_id",function ($v){
  79. return Db::connect('mysql_wsm')->name('cat')->where("id",$v)->value("cat_name","");
  80. })
  81. ->withAttr("good_unit",function ($m){
  82. return Db::connect('mysql_wsm')->name('unit')->where("id",$m)->value("unit","");
  83. })->field("spuCode,good_name,cat_id,good_unit,craft_desc,after_sales,supplierNo,companyNo,supplierName,companyName,good_img,
  84. good_info_img,good_thumb_img,creater,createrid,is_stock,0 isZx")
  85. ->where("updatetime",">=", $this->date)
  86. ->where("status","=", 1)
  87. ->select()->toArray();
  88. return $this->addGood($list);
  89. }
  90. public function goodZx(){
  91. $list =Db::connect('mysql_wsm')
  92. ->name('good_zixun')
  93. ->withAttr("cat_id",function ($v){
  94. return Db::connect('mysql_wsm')->name('cat')->where("id",$v)->value("cat_name","");
  95. })
  96. ->withAttr("good_unit",function ($v){
  97. return Db::connect('mysql_wsm')->name('unit')->where("id",$v)->value("unit","");
  98. })
  99. ->field("spuCode,good_name,craft_desc,'' after_sales,cat_id,good_unit,supplierNo,companyNo,supplierName,companyName,good_img,
  100. good_info_img,good_thumb_img,creater,createrid,0 is_stock,1 isZx")
  101. ->where("addtime",">=", $this->date)
  102. ->select()->toArray();
  103. return $this->addGood($list);
  104. }
  105. }