# pos-v2-java **Repository Path**: twa-java-bootcamp/pos-v2-java ## Basic Information - **Project Name**: pos-v2-java - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-10-11 - **Last Updated**: 2024-11-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Posv2 =========== 商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的购物车(Cart)中的商品(Item)进行结算和打印收据(Receipt)。 输入(样例): [ 'ITEM000001', 'ITEM000001', 'ITEM000001', 'ITEM000001', 'ITEM000001', 'ITEM000003-2', 'ITEM000005', 'ITEM000005', 'ITEM000005' ] 其中对'ITEM000003-2'来说,"-"之前的是标准的条形码,"-"之后的是数量,数量会有为小数的可能性。 当我们购买需要称量的物品的时候,会由称量的机器生成此类标签(Tag),收银机负责识别生成收据。 为了打印清单,我们需要提供数据给打印系统,让打印系统可以打印出如下消息(样例): ` ***<没钱赚商店>收据*** ---------------------- 名称:可口可乐,数量:3瓶,单价:3.00(元),小计:9.00(元) 名称:羽毛球,数量:5瓶,单价:1.00(元),小计:5.00(元) 名称:苹果 0.5kg,数量:2斤,单价:5.50(元),小计:11.00(元) ---------------------- 总计:25.00(元) ********************** 对于数量为小数的情况举例如下: [ 'ITEM000004', 'ITEM000004', 'ITEM000002-1.5', 'ITEM000003-3.3', ] 购买'ITEM000002'的商品经过称重为1.5斤,称量机器生成标签'ITEM000002-1.5'。 为了打印清单,我们需要提供数据给打印系统,让打印系统可以打印出如下消息(样例): ***<没钱赚商店>收据*** ---------------------- 名称:雪碧,数量:2瓶,单价:3.50(元),小计:7.00(元) 名称:香蕉 0.5kg,数量:1.5斤,单价:2.50(元),小计:3.75(元) 名称:苹果 0.5kg,数量:3.3斤,单价:5.50(元),小计:18.15(元) ---------------------- 总计:28.90(元) ********************** 该商店正在对部分商品进行“买二赠一”的优惠活动。 店员可以设置哪些条码对应的商品可以享受此优惠活动。 当购买的商品中,有符合“买二赠一”优惠条件的商品时,打印系统打印(样例): ***<没钱赚商店>购物清单*** 名称:可口可乐,数量:3瓶,单价:3.00(元),小计:9.00(元) 名称:羽毛球,数量:5个,单价:1.00(元),小计:5.00(元) 名称:苹果 0.5kg,数量:2斤,单价:5.50(元),小计:11.00(元) ---------------------- 买二赠一免费商品: 名称:可口可乐,数量:1瓶,价值:3.00(元) 名称:羽毛球,数量:1个,价值:1.00(元) ---------------------- 总计:21.00(元) 节省:4.00(元) ********************** 在 PosDataLoader 中有三个方法提供系统所需要的数据,分别是: - loadAllItems 所有商品的的基本信息 - loadCart 购物车中的商品 - loadPromotion 有优惠活动的商品 请使用提供的方法完成结算并打印收据。