PtCpController.php 4.9 KB

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