PtCpItemController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace pt\controllers;
  3. use biz\cp\classes\PtCpClass;
  4. use biz\cp\classes\PtCpItemClass;
  5. use biz\item\classes\PtItemClass;
  6. use Yii;
  7. use common\components\util;
  8. class PtCpItemController extends BaseController
  9. {
  10. //多个花材设置产品 ssh 20240120
  11. public function actionSetCp()
  12. {
  13. $post = Yii::$app->request->post();
  14. $str = $post['ids'] ?? '';
  15. $cpId = $post['cpId'] ?? 0;
  16. $currentAuth = $post['auth'] ?? 0;
  17. $ids = json_decode($str, true);
  18. if (empty($ids)) {
  19. util::fail('请选择花材23');
  20. }
  21. $cp = PtCpClass::getById($cpId, true);
  22. if (empty($cp)) {
  23. util::fail('没有找到产品');
  24. }
  25. if ($currentAuth == 1) {
  26. $cp->auth = 1;
  27. $cp->save();
  28. }
  29. $cpAuth = $cp->auth ?? 0;
  30. $cpPy = $cp->py ?? '';
  31. $cpName = $cp->name ?? '';
  32. $itemList = PtItemClass::getAllByCondition(['id' => ['in', $ids]], null, '*', null, true);
  33. if (empty($itemList)) {
  34. util::fail('没有花材');
  35. }
  36. foreach ($itemList as $item) {
  37. $itemId = $item->id ?? 0;
  38. $delStatus = $item->delStatus ?? 0;
  39. $name = $item->name ?? '';
  40. $py = $item->py ?? '';
  41. $itemAuth = $item->auth ?? 0;
  42. $item->hasCpId = 1;
  43. if ($currentAuth == 1) {
  44. $item->auth = 1;
  45. }
  46. $item->save();
  47. if ($delStatus == 1) {
  48. util::fail("【{$name}】已删除");
  49. }
  50. $has = PtCpItemClass::getByCondition(['cpId' => $cpId, 'itemId' => $itemId], true);
  51. if (empty($has)) {
  52. $auth = 0;
  53. if ($itemAuth == 1 && $cpAuth == 1) {
  54. $auth = 1;
  55. }
  56. if ($currentAuth == 1) {
  57. $auth = 1;
  58. }
  59. $relate = [
  60. 'itemId' => $itemId,
  61. 'cpId' => $cpId,
  62. 'name' => $name,
  63. 'py' => $py,
  64. 'auth' => $auth,
  65. 'cpName' => $cpName,
  66. 'cpPy' => $cpPy
  67. ];
  68. PtCpItemClass::add($relate);
  69. }
  70. }
  71. util::complete('设置成功');
  72. }
  73. //删除花材和产品的对应关系 ssh 20240120
  74. public function actionDelCp()
  75. {
  76. $post = Yii::$app->request->post();
  77. $str = $post['ids'] ?? '';
  78. $cpId = $post['cpId'] ?? 0;
  79. $ids = json_decode($str, true);
  80. if (empty($ids)) {
  81. util::fail('请选择花材22');
  82. }
  83. $cp = PtCpClass::getById($cpId, true);
  84. if (empty($cp)) {
  85. util::fail('没有找到产品');
  86. }
  87. $itemList = PtItemClass::getAllByCondition(['id' => ['in', $ids]], null, '*', null, true);
  88. if (empty($itemList)) {
  89. util::fail('没有花材');
  90. }
  91. foreach ($itemList as $item) {
  92. $itemId = $item->id ?? 0;
  93. $has = PtCpItemClass::getByCondition(['cpId' => $cpId, 'itemId' => $itemId], true);
  94. if (!empty($has)) {
  95. $has->delete();
  96. }
  97. $hasCp = PtCpItemClass::getByCondition(['itemId' => $itemId], true);
  98. if (empty($hasCp)) {
  99. $item->hasCpId = 0;
  100. $item->save();
  101. }
  102. }
  103. util::complete('删除成功');
  104. }
  105. }