OrderInfo.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. /**
  5. */
  6. class OrderInfo extends Model
  7. {
  8. protected $hidden=[
  9. 'goods_bak'
  10. ];
  11. public function orders(){
  12. return $this->belongsTo(Orders::class);
  13. }
  14. public function goodsBak(){
  15. return $this->belongsTo(OrderInfoGoods::class,'goods_bak_id');
  16. }
  17. public static function saveInfo(Orders $orders,$goods){
  18. $orderInfo=new OrderInfo();
  19. $orderInfoGoods=OrderInfoGoods::create([
  20. 'goods'=>$goods['goods'],
  21. 'sku'=>$goods['sku'],
  22. ]);
  23. $orderInfo['user_id']=$orders['user_id'];
  24. $orderInfo['order_id']=$orders['id'];
  25. $orderInfo['goods_id']=$goods['goods_id'];
  26. $orderInfo['goods_sku_id']=$goods['goods_sku_id'];
  27. $orderInfo['num']=$goods['num'];
  28. $orderInfo['sku_name']=$goods['sku']['name'];
  29. $orderInfo['goods_name']=$goods['goods']['name'];
  30. $orderInfo['num_install']=$goods['num_install'];
  31. $orderInfo['coupon_id']=$goods['coupon_id']??0;
  32. $orderInfo['amount_coupon']=$goods['amount_coupon']??0;
  33. $orderInfo['amount_coupon_kill']=$goods['amount_coupon_kill']??0;
  34. $orderInfo['amount_total']=$goods['amount_total'];
  35. $orderInfo['amount_pay']=$goods['amount_pay'];
  36. $orderInfo['amount_install']=$goods['amount_install'];
  37. $orderInfo['amount']=$goods['sku']['amount'];
  38. $orderInfo['amount_kill']=$goods['sku']['amount_kill'];
  39. $orderInfo['amount_cost']=$goods['sku']['amount_cost'];
  40. $orderInfo['goods_bak_id']=$orderInfoGoods['id'];
  41. if(!$orderInfo->save()){
  42. throw_user('保存失败');
  43. }
  44. }
  45. public function getGoodsAttr(){
  46. $info=$this;
  47. return $info['goodsBak']['goods'];
  48. }
  49. public function getSkuAttr(){
  50. $info=$this;
  51. return $info['goodsBak']['sku'];
  52. }
  53. protected static function init()
  54. {
  55. self::beforeInsert(function (self $orderInfo){
  56. $orderInfo['amount_discount']=bcadd($orderInfo['amount_coupon'],$orderInfo['amount_coupon_kill']);
  57. });
  58. }
  59. }