PtCpController.php 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace console\controllers;
  3. use biz\cp\classes\PtCpClass;
  4. use biz\cp\classes\PtCpClassClass;
  5. use biz\cp\classes\PtCpItemClass;
  6. use biz\item\classes\PtItemCatClass;
  7. use biz\item\classes\PtItemCatRelateClass;
  8. use biz\item\classes\PtItemClass;
  9. use common\components\util;
  10. use yii\console\Controller;
  11. use Yii;
  12. class PtCpController extends Controller
  13. {
  14. //生成平台需要的产品和产品的分类 ssh 20240215
  15. public function actionInitCp()
  16. {
  17. ini_set('memory_limit', '2045M');
  18. set_time_limit(0);
  19. $sql = 'TRUNCATE `xhPtCp`;TRUNCATE `xhPtCpItem`;TRUNCATE `xhPtCpClass`;TRUNCATE `xhCp`;TRUNCATE `xhCpClass`;TRUNCATE `xhCpI`;';
  20. Yii::$app->db->createCommand($sql)->execute();
  21. $connection = Yii::$app->db;
  22. $transaction = $connection->beginTransaction();
  23. try {
  24. $itemClassList = PtItemCatClass::getAllByCondition(['type' => 0], null, '*');
  25. if (empty($itemClassList)) {
  26. util::stop('没有花材的分类');
  27. }
  28. foreach ($itemClassList as $itemClass) {
  29. $classId = $itemClass['id'] ?? 0;
  30. $className = $itemClass['name'] ?? '';
  31. $classCover = $itemClass['cover'] ?? '';
  32. $classInTurn = $itemClass['inTurn'] ?? 100;
  33. $itemList = PtItemCatRelateClass::getAllByCondition(['catId' => $classId], null, '*', 'itemId');
  34. if (empty($itemList)) {
  35. continue;
  36. }
  37. $addClass = ['cover' => $classCover, 'name' => $className, 'inTurn' => $classInTurn];
  38. $newClass = PtCpClassClass::add($addClass, true);
  39. $newClassId = $newClass->id ?? 0;
  40. $ids = array_keys($itemList);
  41. $newItemList = PtItemClass::getAllByCondition(['id' => ['in', $ids]], null, '*');
  42. foreach ($newItemList as $newItem) {
  43. $itemId = $newItem['id'] ?? 0;
  44. $itemName = $newItem['name'] ?? '';
  45. $itemPy = $newItem['py'] ?? '';
  46. $itemCover = $newItem['cover'] ?? '';
  47. $itemAuth = $newItem['auth'] ?? 0;
  48. $addCp = [
  49. 'classId' => $newClassId,
  50. 'name' => $itemName,
  51. 'cover' => $itemCover,
  52. 'auth' => $itemAuth,
  53. ];
  54. $newCp = PtCpClass::addCp($addCp);
  55. $newCpId = $newCp->id ?? 0;
  56. $addCpItem = [
  57. 'cpId' => $newCpId,
  58. 'itemId' => $itemId,
  59. 'auth' => $itemAuth,
  60. 'name' => $itemName,
  61. 'py' => $itemPy,
  62. 'cpName' => $itemName,
  63. 'cpPy' => $itemPy,
  64. ];
  65. PtCpItemClass::add($addCpItem, true);
  66. }
  67. }
  68. //最后创建一个默认分类
  69. $addClass = ['cover' => '', 'name' => '默认分类', 'inTurn' => 0, 'isDefault' => 1];
  70. PtCpClassClass::add($addClass, true);
  71. $transaction->commit();
  72. } catch (\Exception $e) {
  73. $transaction->rollBack();
  74. $msg = $e->getMessage();
  75. echo $msg;
  76. }
  77. }
  78. }