StoreCouponShareLog.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. namespace addons\Store\common\models;
  3. use addons\Coupon\common\models\AddonsCouponStatistics;
  4. use addons\Store\common\enums\StoreEnum;
  5. use common\models\base\BaseActiveRecord;
  6. use Yii;
  7. /**
  8. * This is the model class for table "qimall_addons_store_coupon_share_log".
  9. *
  10. * @property int $id
  11. * @property int $mall_id
  12. * @property int $store_id
  13. * @property int $coupon_id
  14. * @property int $user_coupon_id 赠送者coupon_user_relate表的id
  15. * @property int $get_user_coupon_id 领取者coupon_user_relate表的id
  16. * @property int $giving_user_id 转出会员id,值为 0 说明是平台赠送的优惠券
  17. * @property int $receive_user_id 受赠会员id,尚未被领取此字段值为0
  18. * @property int $giving_status 转赠状态,1:转赠中(已分享出去,未被领取),2:已被领取
  19. * @property int $created_at
  20. * @property int $updated_at
  21. */
  22. class StoreCouponShareLog extends BaseActiveRecord
  23. {
  24. /**
  25. * {@inheritdoc}
  26. */
  27. public static function tableName()
  28. {
  29. return '{{%addons_store_coupon_share_log}}';
  30. }
  31. /**
  32. * {@inheritdoc}
  33. */
  34. public function rules()
  35. {
  36. return [
  37. [['mall_id', 'coupon_id', 'user_coupon_id', 'get_user_coupon_id', 'giving_user_id', 'receive_user_id', 'giving_status', 'created_at', 'updated_at'], 'integer'],
  38. [['giving_user_id'], 'required'],
  39. [['store_id'], 'safe'],
  40. ];
  41. }
  42. /**
  43. * {@inheritdoc}
  44. */
  45. public function attributeLabels()
  46. {
  47. return [
  48. 'id' => 'ID',
  49. 'mall_id' => 'Mall ID',
  50. 'store_id' => 'Store ID',
  51. 'coupon_id' => 'Coupon ID',
  52. 'user_coupon_id' => 'User Coupon ID',
  53. 'get_user_coupon_id' => 'Get User Coupon ID',
  54. 'giving_user_id' => 'Giving User ID',
  55. 'receive_user_id' => 'Receive User ID',
  56. 'giving_status' => 'Giving Status',
  57. 'created_at' => 'Created At',
  58. 'updated_at' => 'Updated At',
  59. ];
  60. }
  61. public static function setData($params)
  62. {
  63. $transaction = \Yii::$app->db->beginTransaction();
  64. try {
  65. if (!empty($params['coupon_share_log_id'])) {
  66. // 领取
  67. $model = self::findOne(['mall_id' => $params['mall_id'], 'id' => $params['coupon_share_log_id']]);
  68. if (empty($model)) throw new \Exception('服务不存在或已删除');
  69. $model->get_user_coupon_id = $params['get_user_coupon_id'];
  70. $model->receive_user_id = $params['receive_user_id'];
  71. $model->giving_status = StoreEnum::GIVING_STATUS2;
  72. $model->updated_at = time();
  73. $user_coupon =StoreCouponUserRelate::findOne(['mall_id' => $params['mall_id'], 'id' => $model->user_coupon_id]);
  74. $user_coupon->is_giving = StoreEnum::GIVING;
  75. $user_coupon->giving_status = StoreEnum::GIVING_STATUS2;
  76. } else {
  77. // 转赠
  78. $model = new self();
  79. $model->mall_id = $params['mall_id'];
  80. $model->coupon_id = $params['coupon_id'];
  81. $model->store_id = $params['store_id'];
  82. $model->user_coupon_id = $params['user_coupon_id'];
  83. $model->giving_user_id = $params['giving_user_id'];
  84. $model->get_user_coupon_id = 0;
  85. $model->receive_user_id = 0;
  86. $model->giving_status = 1;
  87. $model->created_at = time();
  88. $user_coupon = StoreCouponUserRelate::findOne(['mall_id' => $params['mall_id'], 'id' => $params['user_coupon_id']]);
  89. $user_coupon->is_giving = StoreEnum::GIVING;
  90. $user_coupon->giving_status = StoreEnum::GIVING_STATUS1;
  91. if($user_coupon['from_type']==1){
  92. AddonsCouponStatistics::setData(['mall_id'=>$user_coupon['mall_id'], 'coupon_id'=>$user_coupon['coupon_id'],'giveing_times'=>1,]);
  93. }else{
  94. StoreCouponStatistics::setData(['mall_id'=>$user_coupon['mall_id'], 'coupon_id'=>$user_coupon['coupon_id'],
  95. 'store_id'=>$user_coupon['store_id'], 'giveing_times'=>1,]);
  96. }
  97. }
  98. $res_user_coupon = $user_coupon->save();
  99. $res_share_log = $model->save();
  100. if ($res_share_log === false || $res_user_coupon === false) throw new \Exception('res_share_log => ' . var_export($model->getErrorMessage(), true) . ', res_user_coupon => ' . var_export($res_user_coupon, true));
  101. $transaction->commit();
  102. return $model;
  103. } catch (\Exception $e) {
  104. $transaction->rollback();
  105. self::$static_error = $e->getMessage();
  106. return false;
  107. }
  108. }
  109. }