Skip to content

Commit

Permalink
[ADD] FE แสกน QR Code & สถานะตั๋วที่ยังไม่ได้ใช้
Browse files Browse the repository at this point in the history
  • Loading branch information
wdrdres3qew5ts21 committed Sep 30, 2019
1 parent d6160f9 commit b37ed46
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 75 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import java.util.Date;
import java.util.List;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

/**
Expand All @@ -20,6 +21,9 @@ public class UserEventTicket {

@Id
private String id;

@Indexed
private String ticketId;

private String uid;

Expand All @@ -33,6 +37,14 @@ public class UserEventTicket {

private Date participateDate;

public String getTicketId() {
return ticketId;
}

public void setTicketId(String ticketId) {
this.ticketId = ticketId;
}

public List<String> getEventTags() {
if (eventTags == null) {
eventTags = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
public interface UserEventTicketRepository extends MongoRepository<UserEventTicket, String> {

public UserEventTicket findByTicketId(String ticketId);


}
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,7 @@ public ResponseEntity findEventByElasticId(String elasticEventId) {
public ResponseEntity userJoinEvent(UserEventTicket userJoinEvent) {
HashMap<String, Object> responseBody = new HashMap<>();
System.out.println("------ Rest Template ------");
UserEventTicket userEventTicketInDatabase = userEventTicketRespository.findById(userJoinEvent.getId()).get();
UserEventTicket userEventTicketInDatabase = userEventTicketRespository.findByTicketId(userJoinEvent.getTicketId());
if (userEventTicketInDatabase != null) {
System.out.println("!! userEventTicket !!");
System.out.println(userEventTicketInDatabase);
Expand All @@ -451,7 +451,7 @@ public ResponseEntity userJoinEvent(UserEventTicket userJoinEvent) {
}
}
responseBody.put("response", "This ticket is wrong perhaps not our ticket !!!");
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(responseBody);
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(responseBody);
}

public ResponseEntity userReserveTicket(UserEventTicket userReserveTicket) {
Expand All @@ -463,6 +463,7 @@ public ResponseEntity userReserveTicket(UserEventTicket userReserveTicket) {
byte[] array = new byte[8]; // length is bounded by 7
new Random().nextBytes(array);
String generateTicketKey = new String(array, Charset.forName("UTF-8"));
userReserveTicket.setTicketId(System.currentTimeMillis()+"");
// userReserveTicket.setTicketKey(UUID.randomUUID().toString());
userReserveTicket.setEventTags(eventInDatabase.getEventTags());
userReserveTicket.setTicketKey(RandomStringUtils.randomAlphanumeric(8));
Expand Down
34 changes: 33 additions & 1 deletion nuxt-firebase-auth-master/components/userProfileForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,20 @@
<h2>Information</h2>
<v-flex xs12>
<center>
<h3><router-link to="/selectGenres" style="color:red">Edit</router-link> Preference: {{userForm.interest}} : {{userForm.interest.length}}/{{limitedSelectNumber}}</h3>
<h3>
<router-link to="/selectGenres" style="color:red">Edit</router-link>
Preference: {{userForm.interest}} : {{userForm.interest.length}}/{{limitedSelectNumber}}
</h3>
</center>
</v-flex>

<v-btn @click="isCameraOpen = !isCameraOpen" block primary>Open camera</v-btn>
<div v-if="isCameraOpen">
<no-ssr placeholder="loading...">
<qrcode-stream @decode="onDecode"></qrcode-stream>
</no-ssr>
</div>

<br />
<v-text-field
:disabled="isEditing"
Expand Down Expand Up @@ -216,6 +226,7 @@ export default {
components: {},
data() {
return {
isCameraOpen: false,
limitedSelectNumber: 3,
date: null,
Expand Down Expand Up @@ -286,6 +297,27 @@ export default {
},
methods: {
...mapActions(["testContext"]),
onDecode: function(decodedString) {
let parsedTicket = JSON.parse(decodedString)
console.log(parsedTicket)
axios
.post(`${process.env.EVENT_SERVICE}/event/join`,parsedTicket)
.then(scanResponse => {
console.log(scanResponse)
this.$swal({
type: "success",
title: "Success to scan QR Code!!!",
text: "Success to scan QR Code !!!"
});
})
.catch(err=>{
his.$swal({
type: "error",
title: "Error to scan QR Code !!!",
text: "Error to scan QR Code"
});
});
},
initUserProfile: function() {
axios
.get(`${process.env.USER_SERVICE}/user/${this.getUser.uid}`)
Expand Down
79 changes: 11 additions & 68 deletions nuxt-firebase-auth-master/pages/admin/items.vue
Original file line number Diff line number Diff line change
@@ -1,71 +1,15 @@
<template>
<section class="">
<!--
<v-flex id="adminChild" xs12>
<nuxt-child :key="$router.fullPath"></nuxt-child>
</v-flex>
<v-layout row wrap>
<v-flex xs12 md4>
<v-list>
<v-list-tile v-for="(item, key) in items" :key="key">
<v-list-tile-title>{{item.name}}</v-list-tile-title>
<v-spacer></v-spacer>
<v-list-tile-action @click="deleteItem(key)">
<v-btn icon><v-icon>delete</v-icon></v-btn>
</v-list-tile-action>
</v-list-tile>
</v-list>
</v-flex>
<v-spacer></v-spacer>
<v-flex xs12 md6>
<v-text-field
@keyup.enter="addItem"
name="item"
label="Add New Item"
id="item"
v-model="item"
></v-text-field>
<v-btn @click="addItem">Add Item</v-btn>
</v-flex>
</v-layout> -->

</section>
<div>
<v-btn @click="isCameraOpen = !isCameraOpen">Open camera</v-btn>
<div v-if="isCameraOpen">
<no-ssr placeholder="loading...">
<qrcode-stream @decode="onDecode"></qrcode-stream>
</no-ssr>
</div>
</div>
</template>

<script>
// import {DB} from '@/plugins/fireinit.js'
// export default {
// asyncData({store}) {
// return {
// itemsRef: DB.ref(`items/${store.state.user.uid}`)
// }
// },
// data () {
// return {
// item: '',
// items: {}
// }
// },
// created () {
// let vm = this
// vm.itemsRef.on('value', function(snapshot) {
// vm.items = snapshot.val()
// });
// },
// methods: {
// addItem () {
// this.itemsRef.push({
// name: this.item
// }).then(() => {
// this.item = ''
// })
// },
// deleteItem (key) {
// this.itemsRef.child(key).remove()
// }
// }
// }
export default {};
</script>

<style>
Expand All @@ -76,11 +20,10 @@
margin-bottom: 1em;
}
.adminNavRoute {
margin: .25em .5em;
padding: .25em;
margin: 0.25em 0.5em;
padding: 0.25em;
}
#adminChild {
margin-top: 1em;
}
</style>
<!-- -->
4 changes: 2 additions & 2 deletions nuxt-firebase-auth-master/pages/event/history.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
<h2>Ticket(s)</h2>
<br />
<v-flex v-for="(eventTicket, index) in userEventTicketList" :key="index" xs12>
<v-card min-width="370" height="180" color="white">
<v-card min-width="370" color="white">
<v-layout>
<v-flex xs8>
<v-img
:src="eventTicket.ticketDetail[0].eventPictureCover"
height="180px"
width="170px"
></v-img>
</v-flex>
Expand All @@ -24,6 +23,7 @@
<br />
<b color="deep-purple darken-3">View Detail</b>
</nuxt-link>
<div>Used: {{eventTicket.isParticipate}}</div>
</div>
</v-card-title>
</v-flex>
Expand Down
9 changes: 7 additions & 2 deletions nuxt-firebase-auth-master/pages/ticket/_ticketId.vue
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ export default {
},
data() {
return {
isCameraOpen: false,
ticketEvent: {
ticketDetail: [{ eventName: "E-Ticket" }]
},
Expand All @@ -103,10 +104,14 @@ export default {
.then(ticketResponse => {
this.ticketEvent = ticketResponse.data[0];
let ticketEvent = ticketResponse.data[0];
console.log(ticketResponse.data);
let test = ticketEvent.ticketId
console.log(ticketEvent);
this.qrCodeSrc = JSON.stringify({
ticketId: ticketEvent.ticketId,
elasticEventId: ticketEvent.elasticEventId,
ticketKey: ticketEvent.ticketKey
ticketKey: ticketEvent.ticketKey,
uid: this.getUser.uid
});
});
},
Expand Down

0 comments on commit b37ed46

Please sign in to comment.