Browse Source

오더퀸 매장 단가정보 연동

marseyes 2 years ago
parent
commit
c926f3c616

+ 59 - 4
src/main/java/com/oqpo/api/service/stinfo/ItemUnitService.java

@@ -2,6 +2,10 @@ package com.oqpo.api.service.stinfo;
2 2
 
3 3
 
4 4
 import com.oqpo.api.client.oqlink.OqlinkClient;
5
+import com.oqpo.api.client.oqlink.dto.OqScmMenuModel;
6
+import com.oqpo.api.client.oqlink.dto.OqScmStorePriceChangeReqModel;
7
+import com.oqpo.api.client.oqlink.dto.OqScmStorePriceChangeResModel;
8
+import com.oqpo.api.client.oqlink.util.HmacUtil;
5 9
 import com.oqpo.api.entity.CodeEntity;
6 10
 import com.oqpo.api.entity.oper.FileEntity;
7 11
 import com.oqpo.api.entity.oper.UserMngEntity;
@@ -12,8 +16,10 @@ import com.oqpo.api.mapper.FileMapper;
12 16
 import com.oqpo.api.mapper.oper.UserMngMapper;
13 17
 import com.oqpo.api.mapper.stinfo.ItemMapper;
14 18
 import com.oqpo.api.mapper.stinfo.ItemUnitMapper;
19
+import com.oqpo.api.mapper.stinfo.StoreBaseInfoMapper;
15 20
 import com.oqpo.api.mapper.stinfo.StoreItemUnitMapper;
16 21
 import com.oqpo.api.service.CommonService;
22
+import com.oqpo.api.util.StringUtil;
17 23
 import com.oqpo.api.web.dto.request.GridRequest;
18 24
 import com.oqpo.api.web.dto.request.stinfo.item.DelItemInfolRequest;
19 25
 import com.oqpo.api.web.dto.request.stinfo.item.SaveItemClassMngInfolRequest;
@@ -46,9 +52,15 @@ public class ItemUnitService extends CommonService {
46 52
     @Autowired
47 53
     private ItemUnitMapper itemUnitMapper;
48 54
 
55
+    @Autowired
56
+    private ItemMapper itemMapper;
57
+
49 58
     @Autowired
50 59
     private StoreItemUnitMapper storeItemUnitMapper;
51 60
 
61
+    @Autowired
62
+    private StoreBaseInfoMapper storeBaseInfoMapper;
63
+
52 64
     @Autowired
53 65
     private FileMapper fileMapper;
54 66
 
@@ -332,7 +344,6 @@ public class ItemUnitService extends CommonService {
332 344
             StoreItemUnitEntity entity = new StoreItemUnitEntity();
333 345
             entity.setBrandId(saveStoreItemUnitInfolRequest.getBrandId());
334 346
             entity.setStoreId(saveStoreItemUnitInfolRequest.getStoreId());
335
-
336 347
             entity.setContSttDt(saveStoreItemUnitInfolRequest.getContSttDt().replaceAll("\\.", ""));
337 348
             entity.setContEndDt(saveStoreItemUnitInfolRequest.getContEndDt().replaceAll("\\.", ""));
338 349
 
@@ -409,10 +420,38 @@ public class ItemUnitService extends CommonService {
409 420
                 storeItemUnitMapper.updateStoreItemUnitChgContEnd(entity.getBrandId(), entity.getStoreId(), entity.getContSttDt(), entity.getContEndDt());
410 421
             }
411 422
 
412
-            //selectStoreItemUnitEndDtInfo  , updateStoreItemUnitChgContEnd
413
-
414 423
             // TODO 오더퀸 연동
415
-
424
+            StoreBaseInfoEntity storeInfo = storeBaseInfoMapper.selectStoreInfo(saveStoreItemUnitInfolRequest.getBrandId(), saveStoreItemUnitInfolRequest.getStoreId());
425
+            if (!StringUtil.isEmpty(storeInfo.getOqBrandId()) && !StringUtil.isEmpty(storeInfo.getOqStoreId())) {
426
+
427
+                List<OqScmMenuModel> menuList = new ArrayList<>();
428
+                // 등록 리스트 처리
429
+                for (StoreItemUnitEntity item : gridInsertData) {
430
+                    OqScmMenuModel menu = toOqScmMenuModel(saveStoreItemUnitInfolRequest, item);
431
+                    menuList.add(menu);
432
+                }
433
+                // 수정 리스트 처리
434
+                for (StoreItemUnitEntity item : gridUpdateData) {
435
+                    OqScmMenuModel menu = toOqScmMenuModel(saveStoreItemUnitInfolRequest, item);
436
+                    menuList.add(menu);
437
+                }
438
+                OqScmStorePriceChangeReqModel req = new OqScmStorePriceChangeReqModel();
439
+                req.setBrandCd(storeInfo.getOqBrandId());
440
+                req.setStoreNo(storeInfo.getOqStoreId());
441
+                req.setMenuList(menuList);
442
+                OqScmStorePriceChangeResModel res = oqlinkClient.changeScmStorePrice(HmacUtil.makeHmacValue4OqLink(req), req);
443
+
444
+                if (SystemMessageCode.BO_IF_OK.getId() == Integer.parseInt(res.getCode())) {
445
+                    // 오더퀸 메뉴코드 업데이트
446
+                    ItemEntity itemEntity = null;
447
+                    for (OqScmMenuModel item : res.getMenuList()) {
448
+                        itemEntity = toItemEntity4OqLink(item);
449
+                        itemMapper.updateItemInfo4OqLinik(userId, itemEntity);
450
+                    }
451
+                } else {
452
+                    throw new GlobalException(SystemMessageCode.valueOf(Integer.valueOf(res.getCode())));
453
+                }
454
+            }
416 455
         } catch (GlobalException e) {
417 456
             e.getStackTrace();
418 457
             throw new GlobalException(e.getSystemMessageCode());
@@ -422,4 +461,20 @@ public class ItemUnitService extends CommonService {
422 461
         }
423 462
     }
424 463
 
464
+    private ItemEntity toItemEntity4OqLink(OqScmMenuModel item) {
465
+        ItemEntity itemEntity = new ItemEntity();
466
+        itemEntity.setItemId(item.getItemId());
467
+        itemEntity.setOqMenuCd(item.getMenuCd());
468
+        return itemEntity;
469
+    }
470
+
471
+    private OqScmMenuModel toOqScmMenuModel(SaveStoreItemUnitInfolRequest saveStoreItemUnitInfolRequest, StoreItemUnitEntity item) throws Exception {
472
+        ItemEntity itemInfo = itemMapper.selectItemInfo(saveStoreItemUnitInfolRequest.getBrandId(), item.getItemId());
473
+        OqScmMenuModel menu = new OqScmMenuModel();
474
+        menu.setItemId(item.getItemId()); // 품목아이디
475
+        menu.setSupplyPrice(item.getUnitAmt().intValue()); // 단가금액
476
+        menu.setMenuCd(itemInfo == null || StringUtil.isEmpty(itemInfo.getOqMenuCd()) ? null : itemInfo.getOqMenuCd());
477
+        return menu;
478
+    }
479
+
425 480
 }

+ 1 - 1
src/main/java/com/oqpo/api/web/dto/request/stinfo/itemUnit/SaveStoreItemUnitInfolRequest.java

@@ -40,7 +40,7 @@ public class SaveStoreItemUnitInfolRequest {
40 40
     private List<SaveStoreItemUnitInfolRequest.SaveStoreItemUnit> gridInsertData;
41 41
 
42 42
 
43
-    public List<StoreItemUnitEntity> toCodeEntities(List< SaveStoreItemUnitInfolRequest.SaveStoreItemUnit > gridData) {
43
+    public List<StoreItemUnitEntity> toCodeEntities(List<SaveStoreItemUnitInfolRequest.SaveStoreItemUnit> gridData) {
44 44
         List<StoreItemUnitEntity> entities = new ArrayList<>();
45 45
         if (gridData == null || gridData.size() == 0)
46 46
             return entities;