OrderRefundPreviewForm.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. /*
  8. * @Author: 凯
  9. * @Date: 2021-03-02 09:50:20
  10. * @LastEditTime: 2021-04-23 15:01:18
  11. * @LastEditors: Please set LastEditors
  12. * @Description: In User Settings Edit
  13. * @FilePath: \admin_php\modules\client\models\v1\OrderRefundPreviewForm.php
  14. */
  15. namespace app\modules\client\models\v1;
  16. use app\models\Goods;
  17. use app\models\Order;
  18. use app\models\OrderDetail;
  19. use app\utils\Notice\NoticeAction;
  20. use yii\base\Model;
  21. class OrderRefundPreviewForm extends Model
  22. {
  23. public $store_id;
  24. public $user_id;
  25. public $order_detail_id;
  26. public function rules()
  27. {
  28. return [
  29. [['order_detail_id'], 'required'],
  30. ];
  31. }
  32. public function search()
  33. {
  34. if (!$this->validate()) {
  35. return $this->errorResponse;
  36. }
  37. $data = OrderDetail::find()->alias('od')->leftJoin(['g' => Goods::tableName()], 'od.goods_id=g.id')->leftJoin(['o' => Order::tableName()], 'od.order_id=o.id')
  38. ->where([
  39. 'o.is_delete' => 0,
  40. 'o.user_id' => $this->user_id,
  41. 'o.store_id' => $this->store_id,
  42. 'od.id' => $this->order_detail_id,
  43. ])->select('od.id AS order_detail_id,g.id AS goods_id,g.name,od.attr,od.num,od.total_price,o.pay_price')->asArray()->one();
  44. if (!$data) {
  45. return [
  46. 'code' => 1,
  47. 'msg' => '订单不存在',
  48. ];
  49. }
  50. $data['attr'] = json_decode($data['attr']);
  51. $data['goods_pic'] = Goods::getGoodsPicStatic($data['goods_id']);
  52. $data['max_refund_price'] = min($data['total_price'], $data['pay_price']);
  53. $data['template_id'] = NoticeAction::getSendTamplateId(['order_refund']);
  54. return [
  55. 'code' => 0,
  56. 'msg' => 'success',
  57. 'data' => $data,
  58. ];
  59. }
  60. }