1
|
package com.stoneitgt.user.controller;
|
2
|
|
3
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
4
|
import com.stoneitgt.common.Paging;
|
5
|
import com.stoneitgt.data.OrderType;
|
6
|
import com.stoneitgt.data.UseFlag;
|
7
|
import com.stoneitgt.domain.*;
|
8
|
import com.stoneitgt.domain.vo.*;
|
9
|
import com.stoneitgt.user.domain.CommonResponse;
|
10
|
import com.stoneitgt.user.domain.PaginationResponse;
|
11
|
import com.stoneitgt.user.domain.common.DormantReleaseForm;
|
12
|
import com.stoneitgt.user.domain.delivery.IdListForm;
|
13
|
import com.stoneitgt.user.domain.delivery.DeliveryRequestForm;
|
14
|
import com.stoneitgt.user.domain.delivery.UserDeliveryResponse;
|
15
|
import com.stoneitgt.user.domain.order.*;
|
16
|
import com.stoneitgt.user.services.*;
|
17
|
import com.stoneitgt.user.services.auth.UserService;
|
18
|
import com.stoneitgt.user.util.DateUtils;
|
19
|
import com.stoneitgt.user.util.DateValidator;
|
20
|
import com.stoneitgt.user.util.RequestUtils;
|
21
|
import io.swagger.annotations.ApiOperation;
|
22
|
import lombok.extern.slf4j.Slf4j;
|
23
|
import org.apache.commons.lang3.StringUtils;
|
24
|
import org.joda.time.DateTime;
|
25
|
import org.json.simple.parser.JSONParser;
|
26
|
import org.json.simple.JSONObject;
|
27
|
import org.json.simple.parser.ParseException;
|
28
|
import org.springframework.beans.factory.annotation.Autowired;
|
29
|
import org.springframework.beans.factory.annotation.Value;
|
30
|
import org.springframework.http.ResponseEntity;
|
31
|
import org.springframework.stereotype.Controller;
|
32
|
import org.springframework.web.bind.annotation.*;
|
33
|
|
34
|
import javax.transaction.Transactional;
|
35
|
import java.io.*;
|
36
|
import java.net.HttpURLConnection;
|
37
|
import java.net.ProtocolException;
|
38
|
import java.net.URL;
|
39
|
import java.net.URLEncoder;
|
40
|
import java.nio.charset.StandardCharsets;
|
41
|
import java.util.*;
|
42
|
|
43
|
@Controller
|
44
|
@RequestMapping("/api")
|
45
|
@Slf4j
|
46
|
public class OrderController extends BaseController {
|
47
|
@Value("${system.delivery.amount}")
|
48
|
private Integer systemDeliveryAmount;
|
49
|
@Autowired
|
50
|
private UserService userService;
|
51
|
@Autowired
|
52
|
private UserDeliveryService userDeliveryService;
|
53
|
@Autowired
|
54
|
private OrderService orderService;
|
55
|
@Autowired
|
56
|
private OrderProductService orderProductService;
|
57
|
@Autowired
|
58
|
private MallService mallService;
|
59
|
@Autowired
|
60
|
private ProductService productService;
|
61
|
@Autowired
|
62
|
private MallDeliveryService mallDeliveryService;
|
63
|
|
64
|
@GetMapping(value = "/default_delivery")
|
65
|
@ApiOperation(value = "기본 배송지 정보")
|
66
|
public ResponseEntity<UserDeliveryResponse.UserDelivery> defaultDelivery(DormantReleaseForm form) {
|
67
|
try {
|
68
|
if (StringUtils.isEmpty(form.getId())) {
|
69
|
return requiredFieldBadRequest("id");
|
70
|
}
|
71
|
UserVO searchUser = userService.findByUserId(form.getId());
|
72
|
if (searchUser != null) {
|
73
|
UserDeliveryResponse.UserDelivery data = new UserDeliveryResponse.UserDelivery();
|
74
|
UserDeliveryVO delivery = userDeliveryService.getUserDefaultDelivery(searchUser.getUserSeq());
|
75
|
if (delivery != null) {
|
76
|
data.setDeliveryCode(delivery.getDeliveryCode());
|
77
|
data.setReceiverName(delivery.getReceiverName());
|
78
|
data.setReceiverPhone(delivery.getReceiverPhone());
|
79
|
data.setZipcode(delivery.getZipcode());
|
80
|
data.setAddress(delivery.getAddress());
|
81
|
data.setSubAddress(delivery.getSubAddress());
|
82
|
} else {
|
83
|
data.setDeliveryCode(null);
|
84
|
data.setReceiverName(searchUser.getUsername());
|
85
|
data.setZipcode(searchUser.getHp());
|
86
|
data.setZipcode(searchUser.getZipcode());
|
87
|
data.setAddress(searchUser.getAddress());
|
88
|
data.setSubAddress(searchUser.getSubAddress());
|
89
|
}
|
90
|
return ResponseEntity.ok(data);
|
91
|
} else {
|
92
|
return badRequest("common.error.idNotExist", "id");
|
93
|
}
|
94
|
|
95
|
} catch (Exception e) {
|
96
|
log.error(e.getMessage(), e);
|
97
|
return internalServerError();
|
98
|
}
|
99
|
}
|
100
|
|
101
|
@RequestMapping(value = "/delivery_list", method = RequestMethod.GET)
|
102
|
@ResponseBody
|
103
|
@ApiOperation(value = "배송지 리스트")
|
104
|
public ResponseEntity<PaginationResponse<UserDeliveryResponse.UserDelivery>> deliveryList(IdListForm form) {
|
105
|
try {
|
106
|
if (StringUtils.isEmpty(form.getId())) {
|
107
|
return requiredFieldBadRequest("id");
|
108
|
}
|
109
|
UserVO searchUser = userService.findByUserId(form.getId());
|
110
|
if (searchUser != null) {
|
111
|
Paging paging = new Paging();
|
112
|
paging.setPage(form.getPage_no());
|
113
|
paging.setSize(form.getPage_size());
|
114
|
paging.putWithNotEmpty("userSeq", searchUser.getUserSeq());
|
115
|
|
116
|
List<UserDeliveryVO> list = userDeliveryService.selectPagination(paging);
|
117
|
int totalCount = userDeliveryService.countPagination(paging);
|
118
|
|
119
|
|
120
|
if (list != null && !list.isEmpty()) {
|
121
|
List<UserDeliveryResponse.UserDelivery> deliveries = new ArrayList<>();
|
122
|
for (UserDeliveryVO delivery : list) {
|
123
|
UserDeliveryResponse.UserDelivery data = new UserDeliveryResponse.UserDelivery();
|
124
|
data.setDeliveryCode(delivery.getDeliveryCode());
|
125
|
data.setReceiverName(delivery.getReceiverName());
|
126
|
data.setReceiverPhone(delivery.getReceiverPhone());
|
127
|
data.setZipcode(delivery.getZipcode());
|
128
|
data.setAddress(delivery.getAddress());
|
129
|
data.setSubAddress(delivery.getSubAddress());
|
130
|
data.setDefaultYn(UseFlag.Y.equals(delivery.getDefaultYn()) ? "Y" : "N");
|
131
|
deliveries.add(data);
|
132
|
}
|
133
|
|
134
|
PaginationResponse<UserDeliveryResponse.UserDelivery> paginationResponse =
|
135
|
new PaginationResponse<>(paging, deliveries, totalCount);
|
136
|
|
137
|
return ResponseEntity.ok(paginationResponse);
|
138
|
} else {
|
139
|
return dataNotFound();
|
140
|
}
|
141
|
} else {
|
142
|
return badRequest("common.error.idNotExist", "id");
|
143
|
}
|
144
|
|
145
|
} catch (Exception e) {
|
146
|
log.error(e.getMessage(), e);
|
147
|
return internalServerError();
|
148
|
}
|
149
|
}
|
150
|
|
151
|
@PostMapping(value = "/delivery")
|
152
|
@ApiOperation(value = "배송지 추가")
|
153
|
@Transactional
|
154
|
public ResponseEntity<CommonResponse> addDelivery(@RequestBody DeliveryRequestForm.DeliveryAddForm deliveryAddForm) {
|
155
|
try {
|
156
|
if (StringUtils.isEmpty(deliveryAddForm.getId())) {
|
157
|
return requiredFieldBadRequest("id");
|
158
|
}
|
159
|
if (StringUtils.isEmpty(deliveryAddForm.getReceiver_name())) {
|
160
|
return requiredFieldBadRequest("receiver_name");
|
161
|
}
|
162
|
if (StringUtils.isEmpty(deliveryAddForm.getReceiver_phone())) {
|
163
|
return requiredFieldBadRequest("receiver_phone");
|
164
|
}
|
165
|
if (StringUtils.isEmpty(deliveryAddForm.getZipcode())) {
|
166
|
return requiredFieldBadRequest("zipcode");
|
167
|
}
|
168
|
if (StringUtils.isEmpty(deliveryAddForm.getAddress())) {
|
169
|
return requiredFieldBadRequest("address");
|
170
|
}
|
171
|
if (StringUtils.isEmpty(deliveryAddForm.getDefault_yn())) {
|
172
|
return requiredFieldBadRequest("default_yn");
|
173
|
}
|
174
|
|
175
|
if (!StringUtils.equalsAny(deliveryAddForm.getDefault_yn(), "Y", "N")) {
|
176
|
return inputFieldBadRequest("default_yn", "Y/N");
|
177
|
}
|
178
|
|
179
|
User searchUser = userService.findByUserId(deliveryAddForm.getId());
|
180
|
if (searchUser != null) {
|
181
|
UserDelivery record = new UserDelivery();
|
182
|
record.setDeliveryCode(UUID.randomUUID().toString());
|
183
|
record.setReceiverName(deliveryAddForm.getReceiver_name());
|
184
|
record.setReceiverPhone(deliveryAddForm.getReceiver_phone());
|
185
|
record.setZipcode(deliveryAddForm.getZipcode());
|
186
|
record.setAddress(deliveryAddForm.getAddress());
|
187
|
record.setSubAddress(deliveryAddForm.getSub_address());
|
188
|
if ("Y".equals(deliveryAddForm.getDefault_yn())) {
|
189
|
record.setDefaultYn(UseFlag.Y);
|
190
|
userDeliveryService.releaseDefault(searchUser.getUserSeq());
|
191
|
} else {
|
192
|
record.setDefaultYn(UseFlag.N);
|
193
|
}
|
194
|
record.setUserSeq(searchUser.getUserSeq());
|
195
|
record.setRegUserSeq(searchUser.getUserSeq());
|
196
|
userDeliveryService.insert(record);
|
197
|
return ResponseEntity.ok(CommonResponse.ok());
|
198
|
} else {
|
199
|
return badRequest("common.error.idNotExist", "id");
|
200
|
}
|
201
|
} catch (Exception e) {
|
202
|
log.error(e.getMessage(), e);
|
203
|
|
204
|
return internalServerError();
|
205
|
}
|
206
|
}
|
207
|
|
208
|
@PutMapping(value = "/delivery")
|
209
|
@ApiOperation(value = "배송지 변경")
|
210
|
@Transactional
|
211
|
public ResponseEntity<CommonResponse> updateDelivery(@RequestBody DeliveryRequestForm.DeliveryUpdateForm deliveryUpdateForm) {
|
212
|
try {
|
213
|
if (StringUtils.isEmpty(deliveryUpdateForm.getDelivery_code())) {
|
214
|
return requiredFieldBadRequest("delivery_code");
|
215
|
}
|
216
|
if (StringUtils.isEmpty(deliveryUpdateForm.getReceiver_name())) {
|
217
|
return requiredFieldBadRequest("receiver_name");
|
218
|
}
|
219
|
if (StringUtils.isEmpty(deliveryUpdateForm.getReceiver_phone())) {
|
220
|
return requiredFieldBadRequest("receiver_phone");
|
221
|
}
|
222
|
if (StringUtils.isEmpty(deliveryUpdateForm.getZipcode())) {
|
223
|
return requiredFieldBadRequest("zipcode");
|
224
|
}
|
225
|
if (StringUtils.isEmpty(deliveryUpdateForm.getAddress())) {
|
226
|
return requiredFieldBadRequest("address");
|
227
|
}
|
228
|
if (StringUtils.isEmpty(deliveryUpdateForm.getDefault_yn())) {
|
229
|
return requiredFieldBadRequest("default_yn");
|
230
|
}
|
231
|
|
232
|
if (!StringUtils.equalsAny(deliveryUpdateForm.getDefault_yn(), "Y", "N")) {
|
233
|
return inputFieldBadRequest("default_yn", "Y/N");
|
234
|
}
|
235
|
|
236
|
UserDeliveryVO delivery = userDeliveryService.getByPK(deliveryUpdateForm.getDelivery_code());
|
237
|
if (delivery != null) {
|
238
|
UserDelivery record = new UserDelivery();
|
239
|
record.setDeliveryCode(delivery.getDeliveryCode());
|
240
|
record.setReceiverName(deliveryUpdateForm.getReceiver_name());
|
241
|
record.setReceiverPhone(deliveryUpdateForm.getReceiver_phone());
|
242
|
record.setZipcode(deliveryUpdateForm.getZipcode());
|
243
|
record.setAddress(deliveryUpdateForm.getAddress());
|
244
|
record.setSubAddress(deliveryUpdateForm.getSub_address());
|
245
|
if ("Y".equals(deliveryUpdateForm.getDefault_yn())) {
|
246
|
record.setDefaultYn(UseFlag.Y);
|
247
|
userDeliveryService.releaseDefault(delivery.getUserSeq());
|
248
|
} else {
|
249
|
record.setDefaultYn(UseFlag.N);
|
250
|
}
|
251
|
|
252
|
userDeliveryService.update(record);
|
253
|
return ResponseEntity.ok(CommonResponse.ok());
|
254
|
} else {
|
255
|
return dataNotFound();
|
256
|
}
|
257
|
} catch (Exception e) {
|
258
|
log.error(e.getMessage(), e);
|
259
|
return internalServerError();
|
260
|
}
|
261
|
}
|
262
|
|
263
|
@DeleteMapping(value = "/delivery")
|
264
|
@ApiOperation(value = "배송지 삭제")
|
265
|
@Transactional
|
266
|
public ResponseEntity<CommonResponse> updateDelivery(DeliveryRequestForm.DeliveryDeleteForm deliveryDeleteForm) {
|
267
|
try {
|
268
|
if (StringUtils.isEmpty(deliveryDeleteForm.getDelivery_code())) {
|
269
|
return requiredFieldBadRequest("delivery_code");
|
270
|
}
|
271
|
UserDeliveryVO delivery = userDeliveryService.getByPK(deliveryDeleteForm.getDelivery_code());
|
272
|
if (delivery != null) {
|
273
|
userDeliveryService.delete(delivery.getDeliveryCode());
|
274
|
return ok();
|
275
|
} else {
|
276
|
return dataNotFound();
|
277
|
}
|
278
|
} catch (Exception e) {
|
279
|
log.error(e.getMessage(), e);
|
280
|
return internalServerError();
|
281
|
}
|
282
|
}
|
283
|
|
284
|
@PostMapping(value = "/store_order_cancel")
|
285
|
@ApiOperation(value = "스마트오더 주문 취소")
|
286
|
@Transactional
|
287
|
public ResponseEntity<CommonResponse> storeOrderCancel(@RequestBody StoreOrderCancelForm storeOrderCancelForm) {
|
288
|
try {
|
289
|
if (StringUtils.isEmpty(storeOrderCancelForm.getId())) {
|
290
|
return requiredFieldBadRequest("id");
|
291
|
}
|
292
|
|
293
|
if (StringUtils.isEmpty(storeOrderCancelForm.getOrder_no())) {
|
294
|
return requiredFieldBadRequest("order_no");
|
295
|
}
|
296
|
|
297
|
if (StringUtils.isEmpty(storeOrderCancelForm.getCancel_reason_type())) {
|
298
|
return requiredFieldBadRequest("cancel_reason_type");
|
299
|
}
|
300
|
|
301
|
OrderVO order = orderService.getByPK(storeOrderCancelForm.getOrder_no());
|
302
|
if(order == null){
|
303
|
return dataNotFound();
|
304
|
}
|
305
|
if(!"SS01".equals(order.getSmartOrderStatus())){
|
306
|
return badRequest("smartOrder.error.notAllowCancel");
|
307
|
}
|
308
|
|
309
|
User searchUser = userService.findByUserId(storeOrderCancelForm.getId());
|
310
|
if (searchUser != null) {
|
311
|
OrderVO record = new OrderVO();
|
312
|
record.setOrderNo(order.getOrderNo());
|
313
|
record.setSmartOrderStatus("SS05");
|
314
|
record.setCancelReasonType(storeOrderCancelForm.getCancel_reason_type());
|
315
|
record.setModUserSeq(searchUser.getUserSeq());
|
316
|
orderService.update(record);
|
317
|
|
318
|
return ok();
|
319
|
} else {
|
320
|
return dataNotFound("common.error.idNotExist", "id");
|
321
|
}
|
322
|
} catch (Exception e) {
|
323
|
log.error(e.getMessage(), e);
|
324
|
return internalServerError();
|
325
|
}
|
326
|
}
|
327
|
|
328
|
@PostMapping(value = "/online_order")
|
329
|
@ApiOperation(value = "온라인몰 주문")
|
330
|
public ResponseEntity<CommonResponse> onlineOrder(@RequestBody OrderRequestForm.OrderOnlineForm orderOnlineForm) {
|
331
|
try {
|
332
|
|
333
|
ResponseEntity<CommonResponse> error = validateOnlineOrderForm(orderOnlineForm);
|
334
|
if (error != null) {
|
335
|
return error;
|
336
|
}
|
337
|
List<OrderProduct> orderProducts = getOrderProductList(orderOnlineForm.getOrder_products());
|
338
|
OrderPayment orderPayment = getOrderPayment(orderOnlineForm.getPayment_info());
|
339
|
|
340
|
User searchUser = userService.findByUserId(orderOnlineForm.getId());
|
341
|
if (searchUser != null) {
|
342
|
OrderVO orderForm = getOnlineOrderForm(orderOnlineForm, searchUser);
|
343
|
orderService.addOrder(orderForm, orderProducts, orderPayment);
|
344
|
return ok();
|
345
|
} else {
|
346
|
return badRequest("common.error.idNotExist", "id");
|
347
|
}
|
348
|
} catch (Exception e) {
|
349
|
log.error(e.getMessage(), e);
|
350
|
|
351
|
return internalServerError();
|
352
|
}
|
353
|
}
|
354
|
|
355
|
@PostMapping(value = "/store_order")
|
356
|
@ApiOperation(value = "스마트오더 주문 ")
|
357
|
public ResponseEntity<CommonResponse> storeOrder(@RequestBody OrderRequestForm.OrderStoreForm orderStoreForm) {
|
358
|
try {
|
359
|
ResponseEntity<CommonResponse> error = validateStoreOrderForm(orderStoreForm);
|
360
|
if (error != null) {
|
361
|
return error;
|
362
|
}
|
363
|
|
364
|
List<OrderProduct> orderProducts = getOrderProductList(orderStoreForm.getOrder_products());
|
365
|
OrderPayment orderPayment = getOrderPayment(orderStoreForm.getPayment_info());
|
366
|
|
367
|
User searchUser = userService.findByUserId(orderStoreForm.getId());
|
368
|
if (searchUser != null) {
|
369
|
OrderVO orderForm = getStoreOrderForm(orderStoreForm, searchUser);
|
370
|
orderService.addOrder(orderForm, orderProducts, orderPayment);
|
371
|
return ok();
|
372
|
} else {
|
373
|
return badRequest("common.error.idNotExist", "id");
|
374
|
}
|
375
|
} catch (Exception e) {
|
376
|
log.error(e.getMessage(), e);
|
377
|
|
378
|
return internalServerError();
|
379
|
}
|
380
|
}
|
381
|
|
382
|
@PostMapping(value = "/pay_confirm")
|
383
|
@ApiOperation(value = "스마트오더 주문 ")
|
384
|
public ResponseEntity<JSONObject> payment(@RequestBody PaymentRequest paymentRequest) throws IOException, ParseException {
|
385
|
// 서버상 관리되어야 하는 결제 secret 키, 노출 시 심각한 보안 위험 및 injection을 통한 위변조 결제가 가능하므로 해당 결제키를 서버 side에서 관리하여 front에 노출되지 않도록 관리 필요.
|
386
|
String secretKey = "test_sk_zXLkKEypNArWmo50nX3lmeaxYG5R:";
|
387
|
|
388
|
String orderId = paymentRequest.getOrderId();
|
389
|
// orderId로 DB상 주문 정보 조회 및 품절 상태, 총 결제 금액 등 확인 로직 추가
|
390
|
|
391
|
long amount = paymentRequest.getAmount();
|
392
|
// amount와 DB상 해당 주문건의 총 결제 금액 비교하여 결제 프로세스 상 금액 위변조 여부 확인 로직 추가
|
393
|
|
394
|
Base64.Encoder encoder = Base64.getEncoder();
|
395
|
byte[] encodedBytes = encoder.encode(secretKey.getBytes(StandardCharsets.UTF_8));
|
396
|
String authorizations = "Basic "+ new String(encodedBytes);
|
397
|
|
398
|
paymentRequest.setPaymentKey(URLEncoder.encode(paymentRequest.getPaymentKey(), String.valueOf(StandardCharsets.UTF_8)));
|
399
|
|
400
|
URL url = new URL("https://api.tosspayments.com/v1/payments/confirm");
|
401
|
|
402
|
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
403
|
connection.setRequestProperty("Authorization", authorizations);
|
404
|
connection.setRequestProperty("Content-Type", "application/json");
|
405
|
connection.setRequestMethod("POST");
|
406
|
connection.setDoOutput(true);
|
407
|
OutputStream outputStream = connection.getOutputStream();
|
408
|
|
409
|
ObjectMapper mapper = new ObjectMapper();
|
410
|
outputStream.write(mapper.writeValueAsString(paymentRequest).getBytes(StandardCharsets.UTF_8));
|
411
|
|
412
|
int code = connection.getResponseCode();
|
413
|
boolean isSuccess = code == 200 ? true : false;
|
414
|
|
415
|
InputStream responseStream = isSuccess? connection.getInputStream(): connection.getErrorStream();
|
416
|
|
417
|
Reader reader = new InputStreamReader(responseStream, StandardCharsets.UTF_8);
|
418
|
JSONParser parser = new JSONParser();
|
419
|
JSONObject jsonObject = (JSONObject) parser.parse(reader);
|
420
|
responseStream.close();
|
421
|
|
422
|
// jsonObject 내용 안의 최종 결제 정보를 확인하여 정상 결제인경우 주문 정보 DB 업데이트. (결제 정보 및 수단, 금액 및 현금영수증 정보 등의 내용을 DB에 작성)
|
423
|
|
424
|
// order_no 및 최종 결제 상태 리턴.
|
425
|
|
426
|
return ResponseEntity.ok(jsonObject);
|
427
|
}
|
428
|
|
429
|
@RequestMapping(value = "/order_list", method = RequestMethod.GET)
|
430
|
@ResponseBody
|
431
|
@ApiOperation(value = "주문 리스트")
|
432
|
public ResponseEntity<PaginationResponse<OrderResponse>> orderList(OrderListForm form) {
|
433
|
try {
|
434
|
if (StringUtils.isEmpty(form.getMall_type())) {
|
435
|
return requiredFieldBadRequest("mall_type");
|
436
|
}
|
437
|
if (StringUtils.isEmpty(form.getId())) {
|
438
|
return requiredFieldBadRequest("id");
|
439
|
}
|
440
|
|
441
|
if (!StringUtils.equalsAny(form.getMall_type(), "online", "store")) {
|
442
|
return inputFieldBadRequest("mall_type", "online/store");
|
443
|
}
|
444
|
|
445
|
if(StringUtils.isNotEmpty(form.getStart_date())){
|
446
|
DateValidator dateValidator2 = new DateValidator("yyyyMMdd");
|
447
|
if(!dateValidator2.isValid(form.getStart_date())){
|
448
|
return inputFieldBadRequest("start_date", form.getStart_date());
|
449
|
}
|
450
|
}
|
451
|
|
452
|
if(StringUtils.isNotEmpty(form.getEnd_date())){
|
453
|
DateValidator dateValidator2 = new DateValidator("yyyyMMdd");
|
454
|
if(!dateValidator2.isValid(form.getEnd_date())){
|
455
|
return inputFieldBadRequest("end_date", form.getEnd_date());
|
456
|
}
|
457
|
}
|
458
|
|
459
|
UserVO searchUser = userService.findByUserId(form.getId());
|
460
|
if (searchUser != null) {
|
461
|
Paging paging = new Paging();
|
462
|
paging.setPage(form.getPage_no());
|
463
|
paging.setSize(form.getPage_size());
|
464
|
paging.putParam("userSeq", searchUser.getUserSeq());
|
465
|
paging.putParam("mallType", form.getMall_type());
|
466
|
paging.putWithNotEmpty("startDate", form.getStart_date());
|
467
|
paging.putWithNotEmpty("endDate", form.getEnd_date());
|
468
|
|
469
|
List<OrderVO> list = orderService.selectPagination(paging);
|
470
|
int totalCount = orderService.countPagination(paging);
|
471
|
if (list != null && !list.isEmpty()) {
|
472
|
List<OrderResponse> orderResponseList = new ArrayList<>();
|
473
|
for (OrderVO order : list) {
|
474
|
OrderResponse data = new OrderResponse();
|
475
|
data.setMallCode(order.getMallCode());
|
476
|
data.setMallName(order.getMallName());
|
477
|
data.setOrderNo(order.getOrderNo());
|
478
|
data.setOrderAmount(order.getOrderAmount());
|
479
|
data.setPaymentAmount(order.getPaymentAmount());
|
480
|
|
481
|
if ("online".equals(order.getMallType())) {
|
482
|
data.setOrderStatus(order.getOrderStatus());
|
483
|
data.setOrderStatusName(order.getOrderStatusName());
|
484
|
} else {
|
485
|
data.setOrderStatus(order.getSmartOrderStatus());
|
486
|
data.setOrderStatusName(order.getSmartOrderStatusName());
|
487
|
}
|
488
|
|
489
|
data.setRegDate(DateUtils.toApiDate(order.getRegDate()));
|
490
|
data.setOrderReviewYn(order.getOrderReviewYn());
|
491
|
|
492
|
List<OrderProductResponse> orderProductResponses = new ArrayList<>();
|
493
|
List<OrderProductVO> orderProducts = orderProductService.getByOrderNo(order.getOrderNo());
|
494
|
for (OrderProductVO orderProduct : orderProducts) {
|
495
|
OrderProductResponse orderProductResponse = new OrderProductResponse();
|
496
|
orderProductResponse.setProductCode(orderProduct.getProductCode());
|
497
|
orderProductResponse.setProductName(orderProduct.getProductName());
|
498
|
orderProductResponse.setSalePrice(orderProduct.getSalePrice());
|
499
|
orderProductResponse.setOrderCount(orderProduct.getOrderCount());
|
500
|
orderProductResponse.setProductAmount(orderProduct.getProductAmount());
|
501
|
orderProductResponse.setProductReviewYn(orderProduct.getProductReviewYn());
|
502
|
orderProductResponse.setImageUrl(getImageUrl(orderProduct.getImageFile()));
|
503
|
orderProductResponses.add(orderProductResponse);
|
504
|
}
|
505
|
data.setProducts(orderProductResponses);
|
506
|
orderResponseList.add(data);
|
507
|
}
|
508
|
|
509
|
PaginationResponse<OrderResponse> paginationResponse =
|
510
|
new PaginationResponse<>(paging, orderResponseList, totalCount);
|
511
|
|
512
|
return ResponseEntity.ok(paginationResponse);
|
513
|
} else {
|
514
|
return dataNotFound();
|
515
|
}
|
516
|
} else {
|
517
|
return badRequest("common.error.idNotExist", "id");
|
518
|
}
|
519
|
|
520
|
} catch (Exception e) {
|
521
|
log.error(e.getMessage(), e);
|
522
|
return internalServerError();
|
523
|
}
|
524
|
}
|
525
|
|
526
|
@PostMapping(value = "/online_claim")
|
527
|
@ApiOperation(value = "온라인몰 클레임 신청")
|
528
|
public ResponseEntity<CommonResponse> claim(@RequestBody OrderRequestForm.ClaimAddForm claimAddForm) {
|
529
|
try {
|
530
|
if (StringUtils.isEmpty(claimAddForm.getId())) {
|
531
|
return requiredFieldBadRequest("id");
|
532
|
}
|
533
|
if (StringUtils.isEmpty(claimAddForm.getOrder_no())) {
|
534
|
return requiredFieldBadRequest("order_no");
|
535
|
}
|
536
|
if (StringUtils.isEmpty(claimAddForm.getClaim_type())) {
|
537
|
return requiredFieldBadRequest("claim_type");
|
538
|
}
|
539
|
if (!StringUtils.equalsAny(claimAddForm.getClaim_type(), "10", "20", "30")) {
|
540
|
return inputFieldBadRequest("claim_type", "10/20/30");
|
541
|
}
|
542
|
if (StringUtils.isEmpty(claimAddForm.getClaim_reason_type())) {
|
543
|
return requiredFieldBadRequest("claim_reason_type");
|
544
|
}
|
545
|
|
546
|
UserVO user = userService.findByUserId(claimAddForm.getId());
|
547
|
if (user == null) {
|
548
|
return badRequest("common.error.idNotExist", "id");
|
549
|
}
|
550
|
|
551
|
OrderVO order = orderService.getByPK(claimAddForm.getOrder_no());
|
552
|
if (order == null) {
|
553
|
return dataNotFound();
|
554
|
}
|
555
|
|
556
|
Order record = new Order();
|
557
|
record.setOrderNo(claimAddForm.getOrder_no());
|
558
|
record.setClaimReasonType(claimAddForm.getClaim_reason_type());
|
559
|
record.setClaimStatus("CS" + claimAddForm.getClaim_type());
|
560
|
record.setClaimDesc(claimAddForm.getClaim_desc());
|
561
|
record.setCollectorName(claimAddForm.getCollector_name());
|
562
|
record.setCollectorPhone(claimAddForm.getCollector_phone());
|
563
|
record.setCollectZipcode(claimAddForm.getCollect_zipcode());
|
564
|
record.setCollectAddress(claimAddForm.getCollect_address());
|
565
|
record.setCollectSubAddress(claimAddForm.getCollect_sub_address());
|
566
|
record.setRedeliveryReceiverName(claimAddForm.getRedelivery_receiver_name());
|
567
|
record.setRedeliveryReceiverPhone(claimAddForm.getRedelivery_receiver_phone());
|
568
|
record.setRedeliveryZipcode(claimAddForm.getRedelivery_zipcode());
|
569
|
record.setRedeliveryAddress(claimAddForm.getRedelivery_address());
|
570
|
record.setRedeliverySubAddress(claimAddForm.getRedelivery_sub_address());
|
571
|
record.setModUserSeq(user.getUserSeq());
|
572
|
|
573
|
orderService.update(record);
|
574
|
return ok();
|
575
|
} catch (Exception e) {
|
576
|
log.error(e.getMessage(), e);
|
577
|
return internalServerError();
|
578
|
}
|
579
|
}
|
580
|
|
581
|
@GetMapping(value = "/order")
|
582
|
@ApiOperation(value = "주문 정보")
|
583
|
public ResponseEntity<OrderInfoResponse> orderInfo(OrderRequestForm.GetInfoForm form) {
|
584
|
if (StringUtils.isEmpty(form.getOrder_no())) {
|
585
|
return requiredFieldBadRequest("order_no");
|
586
|
}
|
587
|
|
588
|
OrderVO order = orderService.getByPK(form.getOrder_no());
|
589
|
if (order != null) {
|
590
|
OrderDetailResponse response = new OrderDetailResponse();
|
591
|
response.setStatus(200);
|
592
|
response.setMallCode(order.getMallCode());
|
593
|
response.setMallName(order.getMallName());
|
594
|
response.setOrderNo(order.getOrderNo());
|
595
|
response.setOrderAmount(order.getOrderAmount());
|
596
|
response.setDeliveryAmount(order.getDeliveryAmount());
|
597
|
response.setUsePoint(order.getUsePoint());
|
598
|
response.setUseMoney(order.getUseMoney());
|
599
|
response.setCouponCode(order.getCouponCode());
|
600
|
response.setCouponAmount(order.getCouponAmount());
|
601
|
response.setReceiveHopeTime(order.getReceiveHopeTime());
|
602
|
response.setReceiveTime(order.getReceiveTime());
|
603
|
response.setPaymentAmount(order.getPaymentAmount());
|
604
|
response.setPaymentMethod(order.getPaymentMethod());
|
605
|
response.setPaymentMethodName(order.getPaymentMethodName());
|
606
|
|
607
|
if ("online".equals(order.getMallType())) {
|
608
|
response.setOrderStatus(order.getOrderStatus());
|
609
|
response.setOrderStatusName(order.getOrderStatusName());
|
610
|
} else {
|
611
|
response.setOrderStatus(order.getSmartOrderStatus());
|
612
|
response.setOrderStatusName(order.getSmartOrderStatusName());
|
613
|
}
|
614
|
|
615
|
response.setDeliveryInvoiceNo(order.getDeliveryInvoiceNo());
|
616
|
response.setRegDate(DateUtils.toApiDate(order.getRegDate()));
|
617
|
response.setClaimStatus(order.getClaimStatus());
|
618
|
response.setClaimStatusName(order.getClaimStatusName());
|
619
|
|
620
|
List<OrderProductResponse> orderProductResponses = new ArrayList<>();
|
621
|
List<OrderProductVO> orderProducts = orderProductService.getByOrderNo(order.getOrderNo());
|
622
|
for (OrderProductVO orderProduct : orderProducts) {
|
623
|
OrderProductResponse orderProductResponse = new OrderProductResponse();
|
624
|
orderProductResponse.setProductCode(orderProduct.getProductCode());
|
625
|
orderProductResponse.setProductName(orderProduct.getProductName());
|
626
|
orderProductResponse.setSalePrice(orderProduct.getSalePrice());
|
627
|
orderProductResponse.setOrderCount(orderProduct.getOrderCount());
|
628
|
orderProductResponse.setProductAmount(orderProduct.getProductAmount());
|
629
|
orderProductResponse.setImageUrl(getImageUrl(orderProduct.getImageFile()));
|
630
|
|
631
|
orderProductResponses.add(orderProductResponse);
|
632
|
}
|
633
|
response.setProducts(orderProductResponses);
|
634
|
|
635
|
return ResponseEntity.ok(response);
|
636
|
} else {
|
637
|
return dataNotFound();
|
638
|
}
|
639
|
}
|
640
|
|
641
|
@GetMapping(value = "/delivery_amount")
|
642
|
@ApiOperation(value = "배송비 산정")
|
643
|
public ResponseEntity<DeliveryAmountResponse> deliveryAmount(OrderRequestForm.DeliveryAmountForm form) {
|
644
|
if (StringUtils.isEmpty(form.getMall_code())) {
|
645
|
return requiredFieldBadRequest("mall_code");
|
646
|
}
|
647
|
if (StringUtils.isEmpty(form.getOrder_amount())) {
|
648
|
return requiredFieldBadRequest("order_amount");
|
649
|
}
|
650
|
|
651
|
if (!StringUtils.isNumeric(form.getOrder_amount())) {
|
652
|
return inputFieldBadRequest("order_amount", form.getOrder_amount());
|
653
|
}
|
654
|
if (StringUtils.isEmpty(form.getPayment_amount())) {
|
655
|
return requiredFieldBadRequest("payment_amount");
|
656
|
}
|
657
|
if (!StringUtils.isNumeric(form.getPayment_amount())) {
|
658
|
return inputFieldBadRequest("payment_amount", form.getPayment_amount());
|
659
|
}
|
660
|
|
661
|
MallVO mall = mallService.getByPK(form.getMall_code());
|
662
|
if (mall != null) {
|
663
|
|
664
|
|
665
|
List<MallDeliveryVO> mallDeliveryList = mallDeliveryService.getListByMallCode(mall.getMallCode());
|
666
|
MallDeliveryVO mallDelivery = mallDeliveryList.stream().filter(obj -> {
|
667
|
Integer amount = 0;
|
668
|
if (UseFlag.N.equals(mall.getDeliveryDiscountPriceYn())) {
|
669
|
amount = Integer.parseInt(form.getOrder_amount());
|
670
|
} else {
|
671
|
amount = Integer.parseInt(form.getPayment_amount());
|
672
|
}
|
673
|
|
674
|
Integer startAmount = obj.getStartAmount() == null ? 0 : obj.getStartAmount();
|
675
|
Integer endAmount = obj.getEndAmount();
|
676
|
if (startAmount < amount) {
|
677
|
if (endAmount == null || amount < endAmount) {
|
678
|
return true;
|
679
|
}
|
680
|
}
|
681
|
|
682
|
return false;
|
683
|
}).findFirst()
|
684
|
.orElse(null);
|
685
|
DeliveryAmountResponse response = new DeliveryAmountResponse();
|
686
|
if (mallDelivery != null) {
|
687
|
response.setDeliveryAmount(mallDelivery.getDeliveyAmount());
|
688
|
} else {
|
689
|
response.setDeliveryAmount(systemDeliveryAmount);
|
690
|
}
|
691
|
return ResponseEntity.ok(response);
|
692
|
} else {
|
693
|
return dataNotFound();
|
694
|
}
|
695
|
}
|
696
|
|
697
|
private ResponseEntity<CommonResponse> validateOnlineOrderForm(OrderRequestForm.OrderOnlineForm form) {
|
698
|
if (StringUtils.isEmpty(form.getId())) {
|
699
|
return requiredFieldBadRequest("id");
|
700
|
}
|
701
|
if (StringUtils.isEmpty(form.getMall_code())) {
|
702
|
return requiredFieldBadRequest("mall_code");
|
703
|
}
|
704
|
|
705
|
MallVO mall = mallService.getByPK(form.getMall_code());
|
706
|
if (mall == null) {
|
707
|
return inputFieldBadRequest("mall_code", form.getMall_code());
|
708
|
}
|
709
|
|
710
|
if (StringUtils.isEmpty(form.getOrder_amount())) {
|
711
|
return requiredFieldBadRequest("order_amount");
|
712
|
}
|
713
|
if (!StringUtils.isNumeric(form.getOrder_amount())) {
|
714
|
return inputFieldBadRequest("order_amount", form.getOrder_amount());
|
715
|
}
|
716
|
|
717
|
if (StringUtils.isEmpty(form.getDelivery_amount())) {
|
718
|
return requiredFieldBadRequest("delivery_amount");
|
719
|
}
|
720
|
if (!StringUtils.isNumeric(form.getDelivery_amount())) {
|
721
|
return inputFieldBadRequest("delivery_amount", form.getDelivery_amount());
|
722
|
}
|
723
|
|
724
|
if (StringUtils.isNotEmpty(form.getUse_point())) {
|
725
|
if (!StringUtils.isNumeric(form.getUse_point())) {
|
726
|
return inputFieldBadRequest("use_point", form.getUse_point());
|
727
|
}
|
728
|
}
|
729
|
|
730
|
if (StringUtils.isNotEmpty(form.getUse_money())) {
|
731
|
if (!StringUtils.isNumeric(form.getUse_money())) {
|
732
|
return inputFieldBadRequest("use_money", form.getUse_money());
|
733
|
}
|
734
|
}
|
735
|
|
736
|
if (StringUtils.isNotEmpty(form.getCoupon_amount())) {
|
737
|
if (!StringUtils.isNumeric(form.getCoupon_amount())) {
|
738
|
return inputFieldBadRequest("coupon_amount", form.getCoupon_amount());
|
739
|
}
|
740
|
}
|
741
|
|
742
|
if (StringUtils.isEmpty(form.getPayment_amount())) {
|
743
|
return requiredFieldBadRequest("payment_amount");
|
744
|
}
|
745
|
if (!StringUtils.isNumeric(form.getPayment_amount())) {
|
746
|
return inputFieldBadRequest("payment_amount", form.getPayment_amount());
|
747
|
}
|
748
|
|
749
|
|
750
|
|
751
|
if (StringUtils.isEmpty(form.getReceiver_name())) {
|
752
|
return requiredFieldBadRequest("receiver_name");
|
753
|
}
|
754
|
if (StringUtils.isEmpty(form.getReceiver_phone())) {
|
755
|
return requiredFieldBadRequest("receiver_phone");
|
756
|
}
|
757
|
if (StringUtils.isEmpty(form.getDelivery_zipcode())) {
|
758
|
return requiredFieldBadRequest("delivery_zipcode");
|
759
|
}
|
760
|
if (StringUtils.isEmpty(form.getDelivery_address())) {
|
761
|
return requiredFieldBadRequest("delivery_address");
|
762
|
}
|
763
|
if (StringUtils.isEmpty(form.getReceipt_request_type())) {
|
764
|
return requiredFieldBadRequest("receipt_request_type");
|
765
|
}
|
766
|
|
767
|
if(form.getOrder_products() == null || form.getOrder_products().isEmpty()){
|
768
|
return requiredFieldBadRequest("order_products");
|
769
|
}
|
770
|
List<OrderRequestForm.OrderProductForm> order_products = form.getOrder_products();
|
771
|
|
772
|
int i = 0;
|
773
|
for (OrderRequestForm.OrderProductForm orderProduct : order_products) {
|
774
|
if(StringUtils.isEmpty(orderProduct.getProduct_code())){
|
775
|
return requiredFieldBadRequest("order_products[" + i + "].product_code");
|
776
|
}
|
777
|
ProductVO product = productService.getByPK(orderProduct.getProduct_code());
|
778
|
if (product == null) {
|
779
|
return inputFieldBadRequest("order_products[" + i + "].product_code", orderProduct.getProduct_code());
|
780
|
}
|
781
|
|
782
|
if(StringUtils.isEmpty(orderProduct.getPrice())){
|
783
|
return requiredFieldBadRequest("order_products[" + i + "].price");
|
784
|
}
|
785
|
if(!StringUtils.isNumeric(orderProduct.getPrice())){
|
786
|
return inputFieldBadRequest("order_products[" + i + "].price", orderProduct.getPrice());
|
787
|
}
|
788
|
|
789
|
if(StringUtils.isEmpty(orderProduct.getDiscount_amount())){
|
790
|
return requiredFieldBadRequest("order_products[" + i + "].discount_amount");
|
791
|
}
|
792
|
if(!StringUtils.isNumeric(orderProduct.getDiscount_amount())){
|
793
|
return inputFieldBadRequest("order_products[" + i + "].discount_amount", orderProduct.getDiscount_amount());
|
794
|
}
|
795
|
|
796
|
if(StringUtils.isEmpty(orderProduct.getSale_price())){
|
797
|
return requiredFieldBadRequest("order_products[" + i + "].sale_price");
|
798
|
}
|
799
|
if(!StringUtils.isNumeric(orderProduct.getSale_price())){
|
800
|
return inputFieldBadRequest("order_products[" + i + "].sale_price", orderProduct.getSale_price());
|
801
|
}
|
802
|
|
803
|
if(StringUtils.isEmpty(orderProduct.getOrder_count())){
|
804
|
return requiredFieldBadRequest("order_products[" + i + "].order_count");
|
805
|
}
|
806
|
if(!StringUtils.isNumeric(orderProduct.getOrder_count())){
|
807
|
return inputFieldBadRequest("order_products[" + i + "].order_count", orderProduct.getOrder_count());
|
808
|
}
|
809
|
|
810
|
i++;
|
811
|
}
|
812
|
|
813
|
if(form.getPayment_info() == null){
|
814
|
return requiredFieldBadRequest("payment_info");
|
815
|
}
|
816
|
|
817
|
OrderRequestForm.PaymentInfoForm payment_info = form.getPayment_info();
|
818
|
if(StringUtils.isEmpty(payment_info.getPayment_key())){
|
819
|
return requiredFieldBadRequest("payment_info.payment_key");
|
820
|
}
|
821
|
|
822
|
if(StringUtils.isEmpty(payment_info.getPayment_method())){
|
823
|
return requiredFieldBadRequest("payment_info.payment_method");
|
824
|
}
|
825
|
|
826
|
if(StringUtils.isNotEmpty(payment_info.getVa_due_date())){
|
827
|
DateValidator dateValidator2 = new DateValidator("yyyyMMddHHmmss");
|
828
|
if(!dateValidator2.isValid(payment_info.getVa_due_date())){
|
829
|
return inputFieldBadRequest("payment_info.va_due_date", payment_info.getVa_due_date());
|
830
|
}
|
831
|
}
|
832
|
|
833
|
if(StringUtils.isEmpty(payment_info.getPayment_amount())){
|
834
|
return requiredFieldBadRequest("payment_info.payment_amount");
|
835
|
}
|
836
|
if(!StringUtils.isNumeric(payment_info.getPayment_amount())){
|
837
|
return inputFieldBadRequest("payment_info.payment_amount", payment_info.getPayment_amount());
|
838
|
}
|
839
|
|
840
|
return null;
|
841
|
}
|
842
|
|
843
|
|
844
|
private ResponseEntity<CommonResponse> validateStoreOrderForm(OrderRequestForm.OrderStoreForm form) {
|
845
|
if (StringUtils.isEmpty(form.getId())) {
|
846
|
return requiredFieldBadRequest("id");
|
847
|
}
|
848
|
if (StringUtils.isEmpty(form.getMall_code())) {
|
849
|
return requiredFieldBadRequest("mall_code");
|
850
|
}
|
851
|
|
852
|
MallVO mall = mallService.getByPK(form.getMall_code());
|
853
|
if (mall == null) {
|
854
|
return inputFieldBadRequest("mall_code", form.getMall_code());
|
855
|
}
|
856
|
|
857
|
if (StringUtils.isEmpty(form.getOrder_amount())) {
|
858
|
return requiredFieldBadRequest("order_amount");
|
859
|
}
|
860
|
if (!StringUtils.isNumeric(form.getOrder_amount())) {
|
861
|
return inputFieldBadRequest("order_amount", form.getOrder_amount());
|
862
|
}
|
863
|
|
864
|
if (StringUtils.isEmpty(form.getDelivery_amount())) {
|
865
|
return requiredFieldBadRequest("delivery_amount");
|
866
|
}
|
867
|
if (!StringUtils.isNumeric(form.getDelivery_amount())) {
|
868
|
return inputFieldBadRequest("delivery_amount", form.getDelivery_amount());
|
869
|
}
|
870
|
|
871
|
if (StringUtils.isNotEmpty(form.getUse_point())) {
|
872
|
if (!StringUtils.isNumeric(form.getUse_point())) {
|
873
|
return inputFieldBadRequest("use_point", form.getUse_point());
|
874
|
}
|
875
|
}
|
876
|
|
877
|
if (StringUtils.isNotEmpty(form.getUse_money())) {
|
878
|
if (!StringUtils.isNumeric(form.getUse_money())) {
|
879
|
return inputFieldBadRequest("use_money", form.getUse_money());
|
880
|
}
|
881
|
}
|
882
|
|
883
|
if (StringUtils.isNotEmpty(form.getCoupon_amount())) {
|
884
|
if (!StringUtils.isNumeric(form.getCoupon_amount())) {
|
885
|
return inputFieldBadRequest("coupon_amount", form.getCoupon_amount());
|
886
|
}
|
887
|
}
|
888
|
|
889
|
if (StringUtils.isEmpty(form.getPayment_amount())) {
|
890
|
return requiredFieldBadRequest("payment_amount");
|
891
|
}
|
892
|
if (!StringUtils.isNumeric(form.getPayment_amount())) {
|
893
|
return inputFieldBadRequest("payment_amount", form.getPayment_amount());
|
894
|
}
|
895
|
|
896
|
if (StringUtils.isEmpty(form.getReceive_hope_time())) {
|
897
|
return requiredFieldBadRequest("receive_hope_time");
|
898
|
}
|
899
|
|
900
|
if (StringUtils.isEmpty(form.getReceipt_request_type())) {
|
901
|
return requiredFieldBadRequest("receipt_request_type");
|
902
|
}
|
903
|
|
904
|
List<OrderRequestForm.OrderProductForm> order_products = form.getOrder_products();
|
905
|
|
906
|
int i = 0;
|
907
|
for (OrderRequestForm.OrderProductForm orderProduct : order_products) {
|
908
|
if(StringUtils.isEmpty(orderProduct.getProduct_code())){
|
909
|
return requiredFieldBadRequest("order_products[" + i + "].product_code");
|
910
|
}
|
911
|
ProductVO product = productService.getByPK(orderProduct.getProduct_code());
|
912
|
if (product == null) {
|
913
|
return inputFieldBadRequest("order_products[" + i + "].product_code", orderProduct.getProduct_code());
|
914
|
}
|
915
|
|
916
|
if(StringUtils.isEmpty(orderProduct.getPrice())){
|
917
|
return requiredFieldBadRequest("order_products[" + i + "].price");
|
918
|
}
|
919
|
if(!StringUtils.isNumeric(orderProduct.getPrice())){
|
920
|
return inputFieldBadRequest("order_products[" + i + "].price", orderProduct.getPrice());
|
921
|
}
|
922
|
|
923
|
if(StringUtils.isEmpty(orderProduct.getDiscount_amount())){
|
924
|
return requiredFieldBadRequest("order_products[" + i + "].discount_amount");
|
925
|
}
|
926
|
if(!StringUtils.isNumeric(orderProduct.getDiscount_amount())){
|
927
|
return inputFieldBadRequest("order_products[" + i + "].discount_amount", orderProduct.getDiscount_amount());
|
928
|
}
|
929
|
|
930
|
if(StringUtils.isEmpty(orderProduct.getSale_price())){
|
931
|
return requiredFieldBadRequest("order_products[" + i + "].sale_price");
|
932
|
}
|
933
|
if(!StringUtils.isNumeric(orderProduct.getSale_price())){
|
934
|
return inputFieldBadRequest("order_products[" + i + "].sale_price", orderProduct.getSale_price());
|
935
|
}
|
936
|
|
937
|
if(StringUtils.isEmpty(orderProduct.getOrder_count())){
|
938
|
return requiredFieldBadRequest("order_products[" + i + "].order_count");
|
939
|
}
|
940
|
if(!StringUtils.isNumeric(orderProduct.getOrder_count())){
|
941
|
return inputFieldBadRequest("order_products[" + i + "].order_count", orderProduct.getOrder_count());
|
942
|
}
|
943
|
|
944
|
i++;
|
945
|
}
|
946
|
|
947
|
if(form.getPayment_info() == null){
|
948
|
return requiredFieldBadRequest("payment_info");
|
949
|
}
|
950
|
|
951
|
OrderRequestForm.PaymentInfoForm payment_info = form.getPayment_info();
|
952
|
if(StringUtils.isEmpty(payment_info.getPayment_key())){
|
953
|
return requiredFieldBadRequest("payment_info.payment_key");
|
954
|
}
|
955
|
|
956
|
if(StringUtils.isEmpty(payment_info.getPayment_method())){
|
957
|
return requiredFieldBadRequest("payment_info.payment_method");
|
958
|
}
|
959
|
|
960
|
if(StringUtils.isNotEmpty(payment_info.getVa_due_date())){
|
961
|
DateValidator dateValidator2 = new DateValidator("yyyyMMddHHmmss");
|
962
|
if(!dateValidator2.isValid(payment_info.getVa_due_date())){
|
963
|
return inputFieldBadRequest("payment_info.va_due_date", payment_info.getVa_due_date());
|
964
|
}
|
965
|
}
|
966
|
|
967
|
if(StringUtils.isEmpty(payment_info.getPayment_amount())){
|
968
|
return requiredFieldBadRequest("payment_info.payment_amount");
|
969
|
}
|
970
|
if(!StringUtils.isNumeric(payment_info.getPayment_amount())){
|
971
|
return inputFieldBadRequest("payment_info.payment_amount", payment_info.getPayment_amount());
|
972
|
}
|
973
|
|
974
|
return null;
|
975
|
}
|
976
|
|
977
|
private OrderPayment getOrderPayment(OrderRequestForm.PaymentInfoForm order_info) throws Exception {
|
978
|
DateValidator dateValidator2 = new DateValidator("yyyyMMddHHmmss");
|
979
|
|
980
|
OrderPayment orderPayment = new OrderPayment();
|
981
|
orderPayment.setPaymentKey(order_info.getPayment_key());
|
982
|
orderPayment.setPaymentMethod(order_info.getPayment_method());
|
983
|
orderPayment.setPgSecret(order_info.getPg_secret());
|
984
|
if (StringUtils.isNotEmpty(order_info.getVa_due_date())){
|
985
|
orderPayment.setVaDueDate(new DateTime(dateValidator2.parse(order_info.getVa_due_date())));
|
986
|
}
|
987
|
orderPayment.setPaymentAmount(Integer.parseInt(order_info.getPayment_amount()));
|
988
|
return orderPayment;
|
989
|
}
|
990
|
|
991
|
|
992
|
private List<OrderProduct> getOrderProductList(List<OrderRequestForm.OrderProductForm> order_products) throws Exception {
|
993
|
List<OrderProduct> orderProducts = new ArrayList<>();
|
994
|
for (OrderRequestForm.OrderProductForm order_product : order_products) {
|
995
|
OrderProduct orderProduct = new OrderProduct();
|
996
|
orderProduct.setProductCode(order_product.getProduct_code());
|
997
|
orderProduct.setPrice(Integer.valueOf(order_product.getPrice()));
|
998
|
orderProduct.setDiscountAmount(Integer.valueOf(order_product.getDiscount_amount()));
|
999
|
orderProduct.setSalePrice(Integer.valueOf(order_product.getSale_price()));
|
1000
|
orderProduct.setOrderCount(Integer.valueOf(order_product.getOrder_count()));
|
1001
|
|
1002
|
orderProduct.setProductAmount(orderProduct.getSalePrice() * orderProduct.getOrderCount());
|
1003
|
|
1004
|
orderProducts.add(orderProduct);
|
1005
|
}
|
1006
|
return orderProducts;
|
1007
|
}
|
1008
|
|
1009
|
private OrderVO getOnlineOrderForm(OrderRequestForm.OrderOnlineForm form, User searchUser) {
|
1010
|
OrderVO orderForm = new OrderVO();
|
1011
|
orderForm.setOrderStatus("OS01");
|
1012
|
orderForm.setOrderType(OrderType.general);
|
1013
|
orderForm.setUserSeq(searchUser.getUserSeq());
|
1014
|
orderForm.setMallCode(form.getMall_code());
|
1015
|
orderForm.setOrderAmount(Integer.parseInt(form.getOrder_amount()));
|
1016
|
orderForm.setDeliveryAmount(Integer.parseInt(form.getDelivery_amount()));
|
1017
|
orderForm.setUsePoint(Integer.parseInt(form.getUse_point()));
|
1018
|
if (StringUtils.isNotEmpty(form.getUse_money())) {
|
1019
|
orderForm.setUseMoney(Integer.parseInt(form.getUse_money()));
|
1020
|
}
|
1021
|
|
1022
|
orderForm.setCouponCode(form.getCoupon_code());
|
1023
|
if (StringUtils.isNotEmpty(form.getCoupon_amount())) {
|
1024
|
orderForm.setCouponAmount(Integer.parseInt(form.getCoupon_amount()));
|
1025
|
}
|
1026
|
|
1027
|
orderForm.setPaymentAmount(Integer.parseInt(form.getPayment_amount()));
|
1028
|
|
1029
|
orderForm.setOrderRequest(form.getOrder_request());
|
1030
|
orderForm.setOrdererPhone(form.getOrderer_phone());
|
1031
|
orderForm.setReceiverName(form.getReceiver_name());
|
1032
|
orderForm.setReceiverPhone(form.getReceiver_phone());
|
1033
|
orderForm.setDeliveryZipcode(form.getDelivery_zipcode());
|
1034
|
orderForm.setDeliveryAddress(form.getDelivery_address());
|
1035
|
orderForm.setDeliverySubAddress(form.getDelivery_sub_address());
|
1036
|
orderForm.setReceiptRequestType(form.getReceipt_request_type());
|
1037
|
orderForm.setReceiptTarget(form.getReceipt_target());
|
1038
|
|
1039
|
if (RequestUtils.getLoginUser() != null && RequestUtils.getLoginUser().getUserSeq() != null) {
|
1040
|
orderForm.setRegUserSeq(RequestUtils.getLoginUser().getUserSeq());
|
1041
|
} else {
|
1042
|
orderForm.setRegUserSeq(searchUser.getUserSeq());
|
1043
|
}
|
1044
|
|
1045
|
return orderForm;
|
1046
|
}
|
1047
|
|
1048
|
private OrderVO getStoreOrderForm(OrderRequestForm.OrderStoreForm form, User searchUser) {
|
1049
|
OrderVO orderForm = new OrderVO();
|
1050
|
orderForm.setSmartOrderStatus("SS01");
|
1051
|
orderForm.setOrderType(OrderType.general);
|
1052
|
orderForm.setUserSeq(searchUser.getUserSeq());
|
1053
|
orderForm.setMallCode(form.getMall_code());
|
1054
|
orderForm.setOrderAmount(Integer.parseInt(form.getOrder_amount()));
|
1055
|
orderForm.setDeliveryAmount(Integer.parseInt(form.getDelivery_amount()));
|
1056
|
orderForm.setUsePoint(Integer.parseInt(form.getUse_point()));
|
1057
|
if (StringUtils.isNotEmpty(form.getUse_money())) {
|
1058
|
orderForm.setUseMoney(Integer.parseInt(form.getUse_money()));
|
1059
|
}
|
1060
|
|
1061
|
orderForm.setCouponCode(form.getCoupon_code());
|
1062
|
if (StringUtils.isNotEmpty(form.getCoupon_amount())) {
|
1063
|
orderForm.setCouponAmount(Integer.parseInt(form.getCoupon_amount()));
|
1064
|
}
|
1065
|
|
1066
|
orderForm.setPaymentAmount(Integer.parseInt(form.getPayment_amount()));
|
1067
|
orderForm.setOrderRequest(form.getOrder_request());
|
1068
|
orderForm.setOrdererPhone(form.getOrderer_phone());
|
1069
|
|
1070
|
orderForm.setReceiveHopeTime(form.getReceive_hope_time());
|
1071
|
orderForm.setReceiptRequestType(form.getReceipt_request_type());
|
1072
|
orderForm.setReceiptTarget(form.getReceipt_target());
|
1073
|
|
1074
|
if (RequestUtils.getLoginUser() != null && RequestUtils.getLoginUser().getUserSeq() != null) {
|
1075
|
orderForm.setRegUserSeq(RequestUtils.getLoginUser().getUserSeq());
|
1076
|
} else {
|
1077
|
orderForm.setRegUserSeq(searchUser.getUserSeq());
|
1078
|
}
|
1079
|
|
1080
|
return orderForm;
|
1081
|
}
|
1082
|
}
|