PtCpService.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. namespace biz\cp\services;
  3. use biz\base\services\BaseService;
  4. use biz\cp\classes\PtCpClass;
  5. use biz\cp\classes\PtCpClassClass;
  6. use biz\cp\classes\PtCpItemClass;
  7. use biz\item\classes\PtItemClass;
  8. use biz\product\classes\ProductClass;
  9. use bizGhs\cp\classes\CpClass;
  10. use bizGhs\cp\classes\CpClassClass;
  11. use bizGhs\cp\classes\CpItemClass;
  12. use bizGhs\item\classes\ItemClassClass;
  13. use common\components\noticeUtil;
  14. use common\components\stringUtil;
  15. use common\components\util;
  16. class PtCpService extends BaseService
  17. {
  18. public static $baseFile = '\biz\cp\classes\PtCpClass';
  19. //初始化商家的产品 ssh 20240216
  20. public static function initMainCp($main)
  21. {
  22. $mainId = $main->id ?? 0;
  23. $ptClassList = PtCpClassClass::getAllByCondition(['delStatus' => 0], null, '*');
  24. foreach ($ptClassList as $ptClass) {
  25. $ptClassId = $ptClass['id'] ?? 0;
  26. $ptClassName = $ptClass['name'] ?? '';
  27. $ptClassCover = $ptClass['cover'] ?? '';
  28. $ptClassInTurn = $ptClass['inTurn'] ?? 100;
  29. $ptClassIsDefault = $ptClass['isDefault'] ?? 0;
  30. $addClass = ['cover' => $ptClassCover, 'mainId' => $mainId, 'name' => $ptClassName, 'inTurn' => $ptClassInTurn, 'isDefault' => $ptClassIsDefault];
  31. $customClass = CpClassClass::add($addClass, true);
  32. $customClassId = $customClass->id ?? 0;
  33. $ptCpList = PtCpClass::getAllByCondition(['classId' => $ptClassId, 'delStatus' => 0], null, '*');
  34. if (!empty($ptCpList)) {
  35. foreach ($ptCpList as $ptCp) {
  36. $ptCpId = $ptCp['id'] ?? 0;
  37. $ptCpName = $ptCp['name'] ?? '';
  38. $ptCpPy = $ptCp['py'] ?? '';
  39. $ptCpCover = $ptCp['cover'] ?? '';
  40. $ptCpAuth = $ptCp['auth'] ?? 0;
  41. $ptCpInTurn = $ptCp['inTurn'] ?? 100;
  42. $addCp = [
  43. 'mainId' => $mainId,
  44. 'name' => $ptCpName,
  45. 'cover' => $ptCpCover,
  46. 'classId' => $customClassId,
  47. 'ptCpId' => $ptCpId,
  48. 'py' => $ptCpPy,
  49. 'auth' => $ptCpAuth,
  50. 'inTurn' => $ptCpInTurn,
  51. ];
  52. $customCp = CpClass::add($addCp, true);
  53. $customCpId = $customCp->id ?? 0;
  54. $customCpName = $customCp->name ?? '';
  55. $customCpPy = $customCp->py ?? '';
  56. $ptCpItemList = PtCpItemClass::getAllByCondition(['cpId' => $ptCpId], null, '*', 'itemId');
  57. if (!empty($ptCpItemList)) {
  58. $ids = array_keys($ptCpItemList);
  59. $ptProductList = PtItemClass::getAllByCondition(['id' => ['in', $ids]], null, '*', 'id');
  60. $productList = ProductClass::getAllByCondition(['mainId' => $mainId, 'itemId' => ['in', $ids]], null, '*', 'itemId', true);
  61. $customDefaultClass = ItemClassClass::getByCondition(['mainId' => $mainId, 'isDefault' => 1], true);
  62. if (empty($customDefaultClass)) {
  63. noticeUtil::push("mainId:{$mainId} 初始化产品和花材信息,没有找到默认分类", '15280215347');
  64. util::stop('没有找到默认分类哈');
  65. }
  66. $customDefaultClassId = $customDefaultClass->id ?? 0;
  67. foreach ($ptCpItemList as $ptCpItem) {
  68. $currentItemId = $ptCpItem['itemId'] ?? 0;
  69. $currentCpId = $ptCpItem['cpId'] ?? 0;
  70. $currentAuth = $ptCpItem['auth'] ?? 0;
  71. $currentInTurn = $ptCpItem['inTurn'] ?? 100;
  72. $currentPtProduct = $ptProductList[$currentItemId];
  73. if (isset($productList[$currentItemId])) {
  74. $currentProduct = $productList[$currentItemId];
  75. if ($currentProduct->delStatus == 1) {
  76. $currentProduct->delStatus = 0;
  77. }
  78. $currentProduct->auth = $currentPtProduct['auth'] ?? 0;
  79. $currentProduct->hasCpId = 1;
  80. $currentProduct->save();
  81. } else {
  82. if (empty($currentPtProduct)) {
  83. noticeUtil::push("mainId:{$mainId} 初始化产品和花材信息,没有找到平台花材 ptItemId:{$currentItemId}", '15280215347');
  84. util::stop('没有找到平台的花材信息哦');
  85. }
  86. $addItem = $currentPtProduct;
  87. unset($addItem['id']);
  88. $addItem['itemId'] = $currentItemId;
  89. $addItem['hasCpId'] = 1;
  90. $addItem['skPrice'] = 36;
  91. $addItem['price'] = 36;
  92. $addItem['hjPrice'] = 36;
  93. $addItem['mainId'] = $mainId;
  94. $addItem['py'] = stringUtil::py($addItem['name']);
  95. $addItem['classId'] = $customDefaultClassId;
  96. //有二个添加花材的地方,请搜索关键词add_item_place
  97. $currentProduct = ProductClass::add($addItem, true);
  98. }
  99. $productId = $currentProduct->id ?? 0;
  100. $productName = $currentProduct->name ?? '';
  101. $productPy = $currentProduct->py ?? '';
  102. $addCpItem = [
  103. 'cpId' => $customCpId,
  104. 'ptCpId' => $currentCpId,
  105. 'productId' => $productId,
  106. 'ptItemId' => $currentItemId,
  107. 'name' => $productName,
  108. 'py' => $productPy,
  109. 'cpName' => $customCpName,
  110. 'cpPy' => $customCpPy,
  111. 'mainId' => $mainId,
  112. 'auth' => $currentAuth,
  113. 'inTurn' => $currentInTurn,
  114. ];
  115. CpItemClass::add($addCpItem, true);
  116. }
  117. }
  118. }
  119. }
  120. }
  121. }
  122. }