| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- <?php
- namespace addons\Store\common\models;
- use addons\Coupon\common\models\AddonsCouponStatistics;
- use addons\Store\common\enums\StoreEnum;
- use common\models\base\BaseActiveRecord;
- use Yii;
- /**
- * This is the model class for table "qimall_addons_store_coupon_share_log".
- *
- * @property int $id
- * @property int $mall_id
- * @property int $store_id
- * @property int $coupon_id
- * @property int $user_coupon_id 赠送者coupon_user_relate表的id
- * @property int $get_user_coupon_id 领取者coupon_user_relate表的id
- * @property int $giving_user_id 转出会员id,值为 0 说明是平台赠送的优惠券
- * @property int $receive_user_id 受赠会员id,尚未被领取此字段值为0
- * @property int $giving_status 转赠状态,1:转赠中(已分享出去,未被领取),2:已被领取
- * @property int $created_at
- * @property int $updated_at
- */
- class StoreCouponShareLog extends BaseActiveRecord
- {
- /**
- * {@inheritdoc}
- */
- public static function tableName()
- {
- return '{{%addons_store_coupon_share_log}}';
- }
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['mall_id', 'coupon_id', 'user_coupon_id', 'get_user_coupon_id', 'giving_user_id', 'receive_user_id', 'giving_status', 'created_at', 'updated_at'], 'integer'],
- [['giving_user_id'], 'required'],
- [['store_id'], 'safe'],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'mall_id' => 'Mall ID',
- 'store_id' => 'Store ID',
- 'coupon_id' => 'Coupon ID',
- 'user_coupon_id' => 'User Coupon ID',
- 'get_user_coupon_id' => 'Get User Coupon ID',
- 'giving_user_id' => 'Giving User ID',
- 'receive_user_id' => 'Receive User ID',
- 'giving_status' => 'Giving Status',
- 'created_at' => 'Created At',
- 'updated_at' => 'Updated At',
- ];
- }
- public static function setData($params)
- {
- $transaction = \Yii::$app->db->beginTransaction();
- try {
- if (!empty($params['coupon_share_log_id'])) {
- // 领取
- $model = self::findOne(['mall_id' => $params['mall_id'], 'id' => $params['coupon_share_log_id']]);
- if (empty($model)) throw new \Exception('服务不存在或已删除');
- $model->get_user_coupon_id = $params['get_user_coupon_id'];
- $model->receive_user_id = $params['receive_user_id'];
- $model->giving_status = StoreEnum::GIVING_STATUS2;
- $model->updated_at = time();
- $user_coupon =StoreCouponUserRelate::findOne(['mall_id' => $params['mall_id'], 'id' => $model->user_coupon_id]);
- $user_coupon->is_giving = StoreEnum::GIVING;
- $user_coupon->giving_status = StoreEnum::GIVING_STATUS2;
- } else {
- // 转赠
- $model = new self();
- $model->mall_id = $params['mall_id'];
- $model->coupon_id = $params['coupon_id'];
- $model->store_id = $params['store_id'];
- $model->user_coupon_id = $params['user_coupon_id'];
- $model->giving_user_id = $params['giving_user_id'];
- $model->get_user_coupon_id = 0;
- $model->receive_user_id = 0;
- $model->giving_status = 1;
- $model->created_at = time();
- $user_coupon = StoreCouponUserRelate::findOne(['mall_id' => $params['mall_id'], 'id' => $params['user_coupon_id']]);
- $user_coupon->is_giving = StoreEnum::GIVING;
- $user_coupon->giving_status = StoreEnum::GIVING_STATUS1;
- if($user_coupon['from_type']==1){
- AddonsCouponStatistics::setData(['mall_id'=>$user_coupon['mall_id'], 'coupon_id'=>$user_coupon['coupon_id'],'giveing_times'=>1,]);
- }else{
- StoreCouponStatistics::setData(['mall_id'=>$user_coupon['mall_id'], 'coupon_id'=>$user_coupon['coupon_id'],
- 'store_id'=>$user_coupon['store_id'], 'giveing_times'=>1,]);
- }
- }
- $res_user_coupon = $user_coupon->save();
- $res_share_log = $model->save();
- 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));
- $transaction->commit();
- return $model;
- } catch (\Exception $e) {
- $transaction->rollback();
- self::$static_error = $e->getMessage();
- return false;
- }
- }
- }
|