'增加', self::LOG_TYPE_SUB => '减少', ]; const TYPE_MAP = [ self::TYPE_BUY => '消费获赠', self::TYPE_SHARE => '分享注册获赠', self::TYPE_SIGN => '签到获赠', self::TYPE_CON => '每日消耗', ]; /** * {@inheritdoc} */ public static function tableName() { return '{{%user_growth_value_log}}'; } public function rules() { return [ [['store_id','user_id','log_type','amount','from','created_at','after','before'],'integer'], [['desc'],'string'], [['log_type'],'in','range'=>[1,2]], [['from'],'in','range'=>[1,2,3,4]], ]; } public function attributeLabels() { return [ 'id' => 'ID', 'store_id' => 'Store ID', 'user_id' => 'User ID', 'log_type' => 'Log Type', 'amount' => 'Amount', 'type' => 'Type', 'created_at' => 'Created At', 'desc' => 'Desc', 'after' => 'After', 'before' => 'Before', ]; } public static function setLog($storeId,$userId,$logType,$amount,$type,$desc){ $t = \Yii::$app->db->beginTransaction(); try{ $user = User::findOne($userId); $before = $user->growth_value; if($logType == self::LOG_TYPE_SUB){ if($amount > $user->growth_value){ $user->growth_value = 0; }else{ $user->growth_value -= $amount; } }else{ $user->growth_value += $amount; } if(!$user->save()){ $t->rollBack(); return false; } $after = $user->growth_value;; $model = new self(); $model->store_id = $storeId; $model->user_id = $userId; $model->log_type = $logType; $model->amount = $amount; $model->from = $type; $model->desc = $desc; $model->created_at = time(); $model->before = $before; $model->after = $after; if(!$model->save()){ $t->rollBack(); return false; } $t->commit(); return true; }catch(\Exception $e){ $t->rollBack(); return false; } } }