OrderMemberForm.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\alliance\models;
  8. use app\models\BusinessMember;
  9. use app\models\BusinessMemberOrder;
  10. use app\utils\OrderNo;
  11. use yii\base\Model;
  12. class OrderMemberForm extends Model
  13. {
  14. public $member_id;
  15. public $member_type;
  16. public $saas_id;
  17. //public $pay_type;
  18. public function rules()
  19. {
  20. return [
  21. [['member_id','saas_id'], 'number'],
  22. [['member_type'], 'string']
  23. ];
  24. }
  25. public function save()
  26. {
  27. if (!$this->validate()) {
  28. return [
  29. 'code' => 1,
  30. 'msg' => $this->getErrorSummary(false)[0],
  31. ];
  32. }
  33. $businessMemberInfo = BusinessMember::find()
  34. ->where(['id' => $this->member_id, 'is_delete' => 0, 'status' => 1])
  35. ->asArray()->one();
  36. $saleInfo = json_decode($businessMemberInfo['sale_info'],true);
  37. $saleInfoType = array_column($saleInfo,'choosed','type');
  38. $saleInfoPrice = array_column($saleInfo,'price','type');
  39. if (!$businessMemberInfo || !$this->member_type || !$saleInfoType[$this->member_type] || !$saleInfoPrice[$this->member_type] ) {
  40. return [
  41. 'code' => 1,
  42. 'msg' => '数据异常'
  43. ];
  44. }
  45. $pay_price = $saleInfoPrice[$this->member_type];
  46. $order = new BusinessMemberOrder();
  47. $order->member_id = $this->member_id;
  48. $order->member_type = $this->member_type;
  49. $order->saas_id = $this->saas_id;
  50. $order->pay_price = $pay_price;
  51. $order->order_no = OrderNo::getOrderNo(OrderNo::ORDER_ALLIANCE_MEMBER);
  52. $order->is_pay = 0;
  53. $order->pay_type = 0;
  54. $order->pay_time = 0;
  55. $order->is_delete = 0;
  56. $order->begin_time = 0;
  57. $order->end_time = 0;
  58. $order->share_price = 0;
  59. $order->created_at = time();
  60. if ($order->save()) {
  61. return [
  62. 'code' => 0,
  63. 'data' => [
  64. 'add_time' => $order->created_at,
  65. 'order_id' => $order->id
  66. ]
  67. ];
  68. } else {
  69. return [
  70. 'code' => 1,
  71. 'msg' => $order->errors[0]
  72. ];
  73. }
  74. }
  75. }