1 package webapi;
2
3 import java.util.List;
4 import java.util.Map;
5
6 import javax.enterprise.context.ApplicationScoped;
7
8 @ApplicationScoped
9 public class ProductResource implements ProcutEndPointSpec {
10
11 private static final int TYPE_NOMAL = 1;
12 private static final int TYPE_SILVER = 2;
13 private static final int TYPE_GOLD = 3;
14
15 private static final Map<Integer, Integer> TYPE_DISCOUNT_RATE_MAP = Map.of(
16 TYPE_NOMAL, 10,
17 TYPE_SILVER, 20,
18 TYPE_GOLD, 30
19 );
20
21 @Override
22 public List<Integer> calculatePrice(String memberNo, int price) {
23 int memberType;
24 switch (memberNo) {
25 case "A0001":
26 memberType = TYPE_NOMAL;
27 break;
28 case "A0002":
29 memberType = TYPE_SILVER;
30 break;
31 case "A0003":
32 memberType = TYPE_GOLD;
33 break;
34 default:
35 memberType = TYPE_NOMAL;
36 }
37
38
39 if (memberNo == "A0001") {
40 return null;
41 }
42
43 int discountRate = TYPE_DISCOUNT_RATE_MAP.get(memberType);
44 int discountPrice = (int) (price * ((100.0 - discountRate) /100));
45 return List.of(
46 discountPrice,
47 memberType,
48 discountRate
49 );
50 }
51 }