基础数据基类--商品

[toc]

基础数据基类–商品

一、商品种类

描述 类名
商品基类 包含必须属性 BaseGoodsBean
商城里展示的商品 有多sku SpuGoodsBean
用户想要购买的商品 SkuGoodsBean

枚举的使用

在Flutter中

packages/app_models/lib/goods/base_goods_enum.dart

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import 'package:flutter_data_helper/flutter_data_helper.dart';

// -------------------------- 商品售卖状态 --------------------------
// 商品售卖状态(上架:up; 下架:down)
enum GoodsSaleState {
up, // 上架中
down, // 已下架
}

///string转枚举类型
GoodsSaleState goodsSaleStateFromString(String value) {
Iterable<GoodsSaleState> values = [
GoodsSaleState.up, // 上架中
GoodsSaleState.down, // 已下架
];
return EnumStringUtil.enumFromString(values, value);
}

///枚举类型转string
String goodsSaleStateStringFromEnum(o) {
return EnumStringUtil.enumToString(o);
}

// -------------------------- 商品物品类型 --------------------------
// 商品物品类型(实体商品:physical; 虚拟物品:virtual)
enum GoodsPhysicalType {
physical, // 实体商品
virtual, // 虚拟物品
}

在iOS中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 协议定义
protocol GoodsPriceProtocol {
var marketPrice: Int? { get set }
var salePrice: Int? { get set }
}

protocol GoodsBrandProtocol {
var brandName: String? { get set }
var brandId: String? { get set }
}

// 类实现协议
class BaseGoodsBean: GoodsPriceProtocol, GoodsBrandProtocol {
var marketPrice: Int?
var salePrice: Int?
var brandName: String?
var brandId: String?

// 类的其他属性和方法
}

在Flutter中

packages/app_models/lib/goods/base_goods_bean.dart

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// 商品价格
import 'base_goods_enum.dart';

abstract class GoodsPriceModel {
int? marketPrice; // 市场价格
int? salePrice; // 销售价格
}

// 商品品牌
abstract class GoodsBrandModel {
String? brandId; // 品牌id
String? brandName; // 品牌名称
}

// 商品门店
abstract class GoodsShopModel {
String? shopId; // 门店id
String? shopName; // 门店名称
}

// 商品基类
class BaseGoodsBean implements GoodsPriceModel, GoodsBrandModel, GoodsShopModel {
// 商品必备属性
final String id; // 商品id
final String name; // 商品名称
final String imageOrVideoUrl; // 商品主图图片/视频
final GoodsSaleState goodsSaleState; // 商品售卖状态(上架up; 下架down)
final GoodsPhysicalType physicalType; // 商品物品类型(实体商品:physical; 虚拟物品:virtual)

// 商品价格
@override
int? marketPrice;
@override
int? salePrice;

// 商品品牌
@override
String? brandId;
@override
String? brandName;

// 商品门店
@override
String? shopId;
@override
String? shopName;

BaseGoodsBean({
required this.id,
required this.name,
required this.imageOrVideoUrl,
required this.goodsSaleState,
required this.physicalType,
this.marketPrice,
this.salePrice,
this.brandId,
this.brandName,
this.shopId,
this.shopName,
});
}

展示的商品

选中的商品

packages/app_models/lib/goods/selected_goods_bean.dart


End