OrderInfo.php 2.3 KB

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