-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCustomer.java
111 lines (92 loc) · 3.41 KB
/
Customer.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package com.smartstore.customer;
import com.smartstore.membership.MembershipRequirement;
import com.smartstore.membership.MembershipType;
import com.smartstore.membership.Memberships;
import com.smartstore.util.CustomEnumMap;
public class Customer {
private String customerId;
private String customerName;
private int usageTime;
private int paymentAmount;
private MembershipType membership;
public Customer() {
}
public Customer(String customerName, String customerId, int usageTime, int paymentAmount) {
this.customerId = customerId;
this.customerName = customerName;
this.usageTime = usageTime;
this.paymentAmount = paymentAmount;
setMembership(usageTime, paymentAmount);
}
public void setMembership(int usageTime, int paymentAmount) {
Memberships memberships = Memberships.getInstance();
MembershipType membership = MembershipType.NONE;
//Map is CustomMap
CustomEnumMap<MembershipType, MembershipRequirement> membershipList = memberships.getMembershipMap();
int currentUsageTime;
int currentPaymentTime;
boolean isUsageLowerThenCurrent;
boolean isPaymentLowerThenCurrent;
for(MembershipType membershipType : MembershipType.values()){
try {
currentUsageTime = membershipType == MembershipType.NONE ? 0 : membershipList.get(membershipType).getMinUsageTime();
currentPaymentTime = membershipType == MembershipType.NONE ? 0 : membershipList.get(membershipType).getMinPaymentAmount();
isUsageLowerThenCurrent = usageTime < currentUsageTime;
isPaymentLowerThenCurrent = paymentAmount < currentPaymentTime;
if(!isUsageLowerThenCurrent){
if (!isPaymentLowerThenCurrent){
membership = membershipType;
} else{
break;
}
} else {
break;
}
}catch (NullPointerException e){
//Set General(lowers Membership) is not Set yet
//Set Membership as null
membership = MembershipType.NONE;
}
}
this.membership = membership;
}
public void updateMembership(){
setMembership(usageTime, paymentAmount);
}
public String getCustomerId() {
return customerId;
}
public String getCustomerName() {
return customerName;
}
public int getUsageTime() {
return usageTime;
}
public int getPaymentAmount() {
return paymentAmount;
}
public MembershipType getMembership() {
return membership;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public void setUsageTime(int usageTime) {
this.usageTime = usageTime;
}
public void setPaymentAmount(int paymentAmount) {
this.paymentAmount = paymentAmount;
}
@Override
public String toString() {
return "customerId='" + customerId + '\'' +
", customerName='" + customerName + '\'' +
", usageTime=" + usageTime +
", paymentAmount=" + paymentAmount +
", membership=" + membership +
"\n";
}
}