PtCpController.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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 `xhCpItem`;';
  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. $a = $newItem;
  67. $a['name'] = $a['name'] . ' A级';
  68. unset($a['id']);
  69. $b = $newItem;
  70. $b['name'] = $b['name'] . ' B级';
  71. unset($b['id']);
  72. $c = $newItem;
  73. $c['name'] = $c['name'] . ' C级';
  74. unset($c['id']);
  75. $d = $newItem;
  76. $d['name'] = $d['name'] . ' D级';
  77. unset($d['id']);
  78. $e = $newItem;
  79. $e['name'] = $e['name'] . ' E级';
  80. unset($e['id']);
  81. $arr = [$a, $b, $c, $d, $e];
  82. foreach ($arr as $levelKey => $levelItem) {
  83. $newItem = PtItemClass::add($levelItem, true);
  84. $newItemName = $newItem->name ?? '';
  85. $newItemPy = $newItem->py ?? '';
  86. $newItemId = $newItem->id ?? 0;
  87. $newAddCpItem = [
  88. 'cpId' => $newCpId,
  89. 'itemId' => $newItemId,
  90. 'auth' => $itemAuth,
  91. 'name' => $newItemName,
  92. 'py' => $newItemPy,
  93. 'cpName' => $itemName,
  94. 'cpPy' => $itemPy,
  95. ];
  96. PtCpItemClass::add($newAddCpItem, true);
  97. }
  98. }
  99. }
  100. //最后创建一个默认分类
  101. $addClass = ['cover' => 'item_class/mrfl.png', 'name' => '默认分类', 'inTurn' => 0, 'isDefault' => 1];
  102. PtCpClassClass::add($addClass, true);
  103. $transaction->commit();
  104. } catch (\Exception $e) {
  105. $transaction->rollBack();
  106. $msg = $e->getMessage();
  107. echo $msg;
  108. }
  109. }
  110. }