Coupon.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Author: 芸众商城 www.yunzshop.com
  5. * Date: 2017/7/13
  6. * Time: 上午16:45
  7. */
  8. namespace app\backend\modules\goods\models;
  9. use app\common\exceptions\ShopException;
  10. use app\common\models\goods\GoodsCoupon;
  11. use app\common\traits\MessageTrait;
  12. class Coupon extends GoodsCoupon
  13. {
  14. static protected $needLog = true;
  15. /**
  16. * @param $goodsId
  17. * @param $data
  18. * @param $operate
  19. * @return bool
  20. */
  21. public function relationValidator($goodsId, $data, $operate)
  22. {
  23. // $couponModel = self::getModel($goodsId,$operate);
  24. // $array = [
  25. // 'goods_id' => $goodsId,
  26. // 'is_give' => $data['is_give']?:0,
  27. // 'send_type' => $data['send_type']?:0,
  28. // 'send_num' => $data['send_num']?:0,
  29. // 'coupon' => $couponModel->recombination($data),
  30. // 'shopping_share'=> $data['shopping_share']?:'0',
  31. // 'share_coupon' => $couponModel->recombination($data['share_coupon']),
  32. // 'no_use' => $data['no_use']?1:0,
  33. // 'is_use_num' => $data['is_use_num']?1:0,
  34. // 'use_num' => intval($data['use_num']),
  35. // ];
  36. // $couponModel->fill($array);
  37. // $validator = $couponModel->validator();
  38. // if ($validator->fails()) {
  39. // $this->error($validator->messages());
  40. // return false;
  41. // }
  42. return true;
  43. }
  44. /**
  45. * @param $goodsId
  46. * @param $data
  47. * @param $operate
  48. * @return bool|null
  49. */
  50. public static function relationSave($goodsId, $data, $operate)
  51. {
  52. if (!$goodsId) {
  53. return false;
  54. }
  55. if (!$data) {
  56. return false;
  57. }
  58. $couponModel = self::getModel($goodsId, $operate);
  59. $array = [
  60. 'goods_id' => $goodsId,
  61. 'is_give' => $data['is_give'],
  62. 'send_type' => $data['send_type'],
  63. 'send_num' => $data['send_num'] ?: '0',
  64. 'coupon' => $data['coupon'],
  65. 'shopping_share'=> $data['shopping_share']?:'0',
  66. 'share_coupon' => $data['share_coupon'],
  67. 'no_use' => $data['no_use']?1:0,
  68. 'is_use_num' => $data['is_use_num']?1:0,
  69. 'use_num' => intval($data['use_num']),
  70. ];
  71. //判断deleted
  72. if ($operate == 'deleted') {
  73. return $couponModel->delete();
  74. }
  75. $couponModel->fill($array);
  76. return $couponModel->save();
  77. }
  78. /**
  79. * @param $goodsId
  80. * @param $operate
  81. * @return bool|static
  82. */
  83. public static function getModel($goodsId, $operate)
  84. {
  85. $model = false;
  86. if ($operate != 'created') {
  87. $model = Coupon::where(['goods_id' => $goodsId])->first();
  88. }
  89. !$model && $model = new Coupon;
  90. return $model;
  91. }
  92. /**
  93. * @param $data
  94. * @return array|bool
  95. */
  96. public function recombination($data)
  97. {
  98. $coupon = [];
  99. $coupon_ids = is_array($data['coupon_id']) ? $data['coupon_id'] : array();
  100. if (count($coupon_ids) != count(array_unique($coupon_ids))) {
  101. throw new ShopException('请勿重复选择优惠券,直接追加数量即可');
  102. }
  103. foreach ($coupon_ids as $key => $coupon_id) {
  104. if (!preg_match('/^\+?[1-9]\d*$/', trim($data['coupon_several'][$key]))) {
  105. $this->error('请输入正确的优惠券赠送数量(正整数)');
  106. return false;
  107. break;
  108. }
  109. $coupon_id = trim($coupon_id);
  110. if ($coupon_id) {
  111. $coupon[] = array(
  112. 'coupon_id' => trim($data['coupon_id'][$key]),
  113. 'coupon_name' => trim($data['coupon_name'][$key]),
  114. 'coupon_several' => trim($data['coupon_several'][$key])
  115. );
  116. }
  117. }
  118. return $coupon;
  119. }
  120. }