LiveOrderController.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace ghs\controllers;
  3. use bizGhs\live\classes\LiveOrderClass;
  4. use bizGhs\product\classes\ProductClass;
  5. use common\components\util;
  6. use Yii;
  7. class LiveOrderController extends BaseController
  8. {
  9. //添加订单 ssh 20241003
  10. public function actionAddOrder()
  11. {
  12. $post = Yii::$app->request->post();
  13. $itemId = $post['itemId'] ?? 0;
  14. if(empty($itemId)){
  15. util::fail('请选花材');
  16. }
  17. $product = ProductClass::getById($itemId,true);
  18. if(empty($product)){
  19. util::fail('没有找到花材');
  20. }
  21. if($product->mainId != $this->mainId){
  22. util::fail('不是你的花材');
  23. }
  24. $selectCustom = $post['selectCustom']??'';
  25. if(empty($selectCustom)){
  26. util::fail('没有客户');
  27. }
  28. $arr = json_decode($selectCustom,true);
  29. if(empty($arr) || is_array($arr) == false){
  30. util::fail('没有客户信息');
  31. }
  32. $mainId = $this->mainId;
  33. $hasItem = LiveOrderClass::getByCondition(['mainId'=>$mainId,'itemId'=>$itemId,'switch'=>0],true);
  34. if(!empty($hasItem)){
  35. util::fail('这个花材已添加过');
  36. }
  37. $has = [];
  38. $customList = [];
  39. foreach($arr as $key => $info){
  40. $customId = $info['customId']??0;
  41. if(isset($has[$customId])){
  42. util::fail('重复的客户');
  43. }
  44. $has[$customId] =1;
  45. $customName = $info['customName']??'';
  46. $num = $info['num']??0;
  47. $price = $info['price']??0;
  48. $customList[] = ['customId'=>$customId,'customName'=>$customName,'num'=>$num,'price'=>$price];
  49. }
  50. $params = ['product'=>$product,'customList'=>$customList];
  51. $connection = Yii::$app->db;
  52. $transaction = $connection->beginTransaction();
  53. try {
  54. LiveOrderClass::addOrder($params,$mainId);
  55. $transaction->commit();
  56. util::complete('创建成功');
  57. } catch (\Exception $e) {
  58. Yii::info("操作失败原因:" . $e->getMessage());
  59. $transaction->rollBack();
  60. util::fail('操作失败');
  61. }
  62. }
  63. }