Skip to content
Snippets Groups Projects
Buy.vue 2.93 KiB
<template>
  <div>
    <md-card
      style="width: 50%; margin: 4px; marginTop:100px; display: inline-block; vertical-align: top;"
    >
      <md-card-header>
        <md-card-header-text>
          <div class="md-title">
            {{ book.title }}
            <br />
            <br />
          </div>
          <div class="md-subhead" style="text-align:left; font-weight:bold;">
            # 학년: {{ book.grade }}
            <br />
            # 전공: {{ book.major }}
            <br />
            # 세부사항: {{ book.type }}
            <br />
            # 매물: {{ book.stock }}
            <br />
          </div>
        </md-card-header-text>
        <md-card-media md-medium>
          <img v-bind:src="book.src" />
        </md-card-media>
      </md-card-header>
    </md-card>

    <md-card
      style="width: 50%; margin: 4px; marginTop:100px; display: inline-block; vertical-align: top;"
    >
      <md-card-header>
        <div class="md-title">이 책을 구매하시겠습니까?</div>
      </md-card-header>
      <md-card-actions>
        <md-button class="md-raised md-primary" v-on:click="buyBook">구매</md-button>
      </md-card-actions>
    </md-card>
  </div>
</template>

<script>
import Vue from "vue";
import VueMaterial from "vue-material";
import Multiselect from "vue-multiselect";
import "vue-material/dist/vue-material.min.css";
import "vue-material/dist/theme/default.css";
Vue.use(VueMaterial);

export default {
  data() {
    return {
      buyer: {},
      seller: {},
      book: {},
      userId: "",
      sellerId: ""
    };
  },
  created() {
    var id = this.$route.params.id;
    this.$http.get(`/api/books/${id}`).then(response => {
      this.book = response.data;
    });
  },
  methods: {
    buyBook() {
      this.$http
        .post("/api/transaction/buy", {
          bookTitle: this.book.title
        })
        .then(response => {
          alert("구매에 성공하였습니다. 판매자에게 메일을 보냅니다.");
          this.buyerId = response.data.buyerId;
          this.sellerId = response.data.sellerId;
          this.sendEmail();
        })
        .catch(error => {
          alert(error);
        });
    },
    sendEmail() {
      console.log("sendEmail start");
      this.$http
        .post("/api/login/getUserInfo", {
          buyerId: this.buyerId, // buyer
          sellerId: this.sellerId
        })
        .then(response => {
          this.buyer = response.data.buyer;
          this.seller = response.data.seller;
          this.$http
            .post("/api/emails", {
              sellerEmail: this.seller.email,
              bookTitle: this.book.title,
              buyerPhoneNumber: this.buyer.phonenumber
            })
            .then(response => {
              alert("이메일 전송 완료");
              this.$router.push("/home");
            }),
            error => {
              alert(error.response.data.error);
            };
        });
    }
  }
};
</script>