Project

General

Profile

New Function #71 » OrderController.java

Deca Park, 07/18/2023 12:35 PM

 
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
}
(3-3/3)