From d8e61f49cbb55f42b84a2495fbab3d5b0a2861dc Mon Sep 17 00:00:00 2001 From: ieemoo Date: Wed, 27 Nov 2024 10:01:54 +0800 Subject: [PATCH] Arthur-Wu committed this file on 2024-11-26 --- YiMao/ZeroLib/CVip019_.py | 156 ++++++++++++++++++ YiMao/businessFunc/ServiceApiLib.py | 22 +++ YiMao/data/WuShang.yaml | 2 +- YiMao/data/YongHui.yaml | 2 +- YiMao/data/前后端联测业务场景梳理.xlsx | Bin 12809 -> 12793 bytes ...CAnon001_AddShoppingBagAndSettlePayment.py | 21 --- 6 files changed, 180 insertions(+), 23 deletions(-) diff --git a/YiMao/ZeroLib/CVip019_.py b/YiMao/ZeroLib/CVip019_.py index 1c358d3..504f819 100644 --- a/YiMao/ZeroLib/CVip019_.py +++ b/YiMao/ZeroLib/CVip019_.py @@ -3,3 +3,159 @@ # @Author:: Arthur Wu # @Description:: 加购1件重量待核验商品,无法结算 # @Date:: 2024/11/22 + + +cart_list_response = { + "code": 0, + "msg": "成功", + "data": { + "data": [ + { + "id": 1477, + "createdAt": "2024-11-26 18:11:21", + "updatedAt": "2024-11-26 18:11:21", + "storeCartNo": "97", + "marketDeviceNo": null, + "cartModelId": 2, + "mac": "b8:2d:28:04:c7:5c", + "appVersion": null, + "firmwareVersion": null, + "serialNum": "123", + "motherboardType": "3588", + "rfid": "0104baf00003032401000000", + "status": 1, + "activationDate": null, + "storeId": 69, + "store": { + "id": 69, + "createdAt": "2024-11-19 09:14:46", + "updatedAt": "2024-11-26 17:50:25", + "createdBy": "2o1KQ1KvztKWox8qG0um6QiEiE", + "updatedBy": "DOpCDWerLYeWox8qG0um6QiEiE", + "createdUser": { + "id": null, + "createdAt": null, + "updatedAt": null, + "casdoorId": "2o1KQ1KvztKWox8qG0um6QiEiE", + "owner": null, + "name": null, + "displayName": "Leo", + "avatar": null, + "email": null, + "phone": null, + "casdoorUserRoleList": [], + "roleIds": null, + "admin": false + }, + "updatedUser": { + "id": null, + "createdAt": null, + "updatedAt": null, + "casdoorId": "DOpCDWerLYeWox8qG0um6QiEiE", + "owner": null, + "name": null, + "displayName": "Sam", + "avatar": null, + "email": null, + "phone": null, + "casdoorUserRoleList": [], + "roleIds": null, + "admin": false + }, + "code": "812901", + "shortCode": "8129", + "name": "武商超市(梦时代广场)", + "province": 17, + "city": 203, + "address": null, + "region": 3, + "onlineStatus": 2, + "onlineDate": null, + "mapType": 0, + "mapId": null, + "gateAreaId": null, + "marketId": 50, + "market": { + "id": 50, + "createdAt": "2024-08-09 10:06:01", + "updatedAt": "2024-11-22 10:24:35", + "createdBy": "2o1KQ1KvztKWox8qG0um6QiEiE", + "updatedBy": "DOpCDWerLYeWox8qG0um6QiEiE", + "createdUser": null, + "updatedUser": null, + "name": "武商超市", + "country": 1, + "cooperateMode": 1, + "cooperateStatus": 2, + "cooperateStartDate": "2024-08-09", + "beanName": "wsShoppingAPIService", + "isRegister": null, + "code": "ws", + "logo": "market/logo/4c12beab-339c-4954-a880-48ae04377968.png" + }, + "goodsWeightRule": { + "id": 41, + "createdAt": "2024-11-19 10:02:34", + "updatedAt": "2024-11-21 18:06:20", + "marketId": 50, + "storeId": 69, + "weightGetType": 1, + "thresholdGetType": 1 + }, + "extra": "{\"operators\":\"3002\",\"cashierNo\":\"3002\"}", + "elecTicket": 2, + "outPic": "store/out-guide/31650c6d-6f07-4d8f-bb79-f6fca0dd0630.png", + "imageEdgeServer": null, + "guideVideoUrl": null, + "memberType": "[9]", + "verifyWhenNoWeightAtFirstPurchase": 0 + }, + "cartModel": { + "id": 2, + "createdAt": "2024-01-02 20:41:03", + "updatedAt": "2024-04-18 13:46:04", + "createdBy": "tg5RAFsa79v2Jn2zBjCFvQiEiE", + "updatedBy": "js6e1PM8GtGWox8qG0um6QiEiE", + "createdUser": { + "id": null, + "createdAt": null, + "updatedAt": null, + "casdoorId": "tg5RAFsa79v2Jn2zBjCFvQiEiE", + "owner": null, + "name": null, + "displayName": "刘坤", + "avatar": null, + "email": null, + "phone": null, + "casdoorUserRoleList": [], + "roleIds": null, + "admin": false + }, + "updatedUser": { + "id": null, + "createdAt": null, + "updatedAt": null, + "casdoorId": "js6e1PM8GtGWox8qG0um6QiEiE", + "owner": null, + "name": null, + "displayName": "王金", + "avatar": null, + "email": null, + "phone": null, + "casdoorUserRoleList": [], + "roleIds": null, + "admin": false + }, + "name": "7075S型", + "coverUrl": "8d5b85e3-949d-427e-b3b3-7ccb3a6363e5.jpg", + "info": null + }, + "extra": null, + "plugin": null + } + ], + "limit": 10, + "page": 1, + "total": 1 + } +} \ No newline at end of file diff --git a/YiMao/businessFunc/ServiceApiLib.py b/YiMao/businessFunc/ServiceApiLib.py index 5af9b84..d1a668b 100644 --- a/YiMao/businessFunc/ServiceApiLib.py +++ b/YiMao/businessFunc/ServiceApiLib.py @@ -110,6 +110,28 @@ class YMServiceApi(object): logging.info(f"---接口返回状态码为:: {response.status_code}") logging.info(f"---接口返回体为:: {response.json()}\n\n") + def get_markets_of_this_cart(self): + logging.info("========== [获取购物车的商超信息] ==========") + url = self.Domain + "dmin/cart/list" + payload = json.dumps({ + "page": 1, + "limit": 10, + "query": { + "order": { + "createdAt": "desc" + }, + "where": { + "mac": { + "include": "b8:2d:28:04:c7:5c" + } + } + } + }) + response = requests.request("POST", url, headers=self.headerss, data=payload) + logging.info(f"-----------接口返回状态码:{response.status_code}") + logging.info(f"-----------接口返回数据:{response.json()}\n\n") + return response.json() + def update_the_store_to_which_the_shopping_cart_belongs(self, CartId, CartMac, NewStoreId): ''' NewStoreInfo={ diff --git a/YiMao/data/WuShang.yaml b/YiMao/data/WuShang.yaml index 59e71c3..56b0b4a 100644 --- a/YiMao/data/WuShang.yaml +++ b/YiMao/data/WuShang.yaml @@ -7,7 +7,7 @@ #adsAreaId-6: 支付后广告 #adsAreaId-7: 小票广告 -MarketName: 武商梦时代门店 +MarketName: 武商超市(梦时代广场) # 1-购物车Mac地址 ShoppingCartMac: 70:f7:54:07:a6:c0 diff --git a/YiMao/data/YongHui.yaml b/YiMao/data/YongHui.yaml index 08ff7b5..16a5946 100644 --- a/YiMao/data/YongHui.yaml +++ b/YiMao/data/YongHui.yaml @@ -1,6 +1,6 @@ # which is the data file for Wu Shang. -MarketName: 永辉龙湖天街店 +MarketName: 龙湖天街店 # 1-购物车Mac地址 #ShoppingCartMac: b8:2d:28:04:c7:5c diff --git a/YiMao/data/前后端联测业务场景梳理.xlsx b/YiMao/data/前后端联测业务场景梳理.xlsx index 0b18aa2b494d1bc477510e6c115f8602282b3eae..1c8275b37642a0c72a00fde65bd3816b015d16ca 100644 GIT binary patch delta 4456 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