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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
import IBIZUNIProductService from '@/service/ibizuniproduct/ibizuniproduct-service';
import { Verify } from '@/utils/verify/verify';
/**
* 通过商品ID获取单价及单位
*
* @export
* @class GetUnitAndPriceLogicBase
*/
export default class GetUnitAndPriceLogicBase {
/**
* 名称
*
* @memberof GetUnitAndPriceLogicBase
*/
private name:string ="GetUnitAndPrice";
/**
* 唯一标识
*
* @memberof GetUnitAndPriceLogicBase
*/
private id:string = "ded186a4036f371f623ecdb8b799f94c";
/**
* 默认参数名称
*
* @memberof GetUnitAndPriceLogicBase
*/
private defaultParamName:string = "Default";
/**
* 参数集合
*
* @memberof GetUnitAndPriceLogicBase
*/
private paramsMap:Map<string,any> = new Map();
/**
* Creates an instance of GetUnitAndPriceLogicBase.
*
* @param {*} [opts={}]
* @memberof GetUnitAndPriceLogicBase
*/
constructor(opts: any = {}) {
this.initParams(opts);
}
/**
* 初始化参数集合
*
* @param {*} [opts={}]
* @memberof GetUnitAndPriceLogicBase
*/
public initParams(opts:any){
this.paramsMap.set('Product',{});
this.paramsMap.set('Default',opts);
}
/**
* 计算0节点结果
*
* @param params 传入参数
*/
public compute0Cond(params:any):boolean{
return true;
}
/**
* 计算1节点结果
*
* @param params 传入参数
*/
public compute1Cond(params:any):boolean{
return true;
}
/**
* 计算2节点结果
*
* @param params 传入参数
*/
public compute2Cond(params:any):boolean{
return true;
}
/**
* 执行逻辑
*
* @param context 应用上下文
* @param params 传入参数
*/
public onExecute(context:any,params:any,isloading:boolean){
return this.executeBegin(context,params,isloading);
}
/**
* 填充单位和单价
*
* @param context 应用上下文
* @param params 传入参数
*/
private async executePrepareparam2(context:any,params:any,isloading:boolean){
// 准备参数节点
let tempDstParam0Context:any = this.paramsMap.get('Default').context?this.paramsMap.get('Default').context:{};
let tempDstParam0Data:any = this.paramsMap.get('Default').data?this.paramsMap.get('Default').data:{};
let tempSrcParam0Data:any = this.paramsMap.get('Product').data?this.paramsMap.get('Product').data:{};
Object.assign(tempDstParam0Data,{unitprice:tempSrcParam0Data['unitprice']});
this.paramsMap.set('Default',{data:tempDstParam0Data,context:tempDstParam0Context});
let tempDstParam1Context:any = this.paramsMap.get('Default').context?this.paramsMap.get('Default').context:{};
let tempDstParam1Data:any = this.paramsMap.get('Default').data?this.paramsMap.get('Default').data:{};
let tempSrcParam1Data:any = this.paramsMap.get('Product').data?this.paramsMap.get('Product').data:{};
Object.assign(tempDstParam1Data,{unit:tempSrcParam1Data['unit']});
this.paramsMap.set('Default',{data:tempDstParam1Data,context:tempDstParam1Context});
return this.paramsMap.get(this.defaultParamName).data;
}
/**
* 获取商品信息
*
* @param context 应用上下文
* @param params 传入参数
*/
private async executeDeaction1(context:any,params:any,isloading:boolean){
// 行为处理节点
let result: any;
let actionParam:any = this.paramsMap.get('Product');
const targetService:IBIZUNIProductService = new IBIZUNIProductService();
if (targetService['Get'] && targetService['Get'] instanceof Function) {
result = await targetService['Get'](actionParam.context,actionParam.data, false);
}
if(result && result.status == 200){
Object.assign(actionParam.data,result.data);
if(this.compute0Cond(params)){
return this.executePrepareparam2(context,params,isloading);
}
}
}
/**
* 获取商品ID
*
* @param context 应用上下文
* @param params 传入参数
*/
private async executePrepareparam1(context:any,params:any,isloading:boolean){
// 准备参数节点
let tempDstParam0Context:any = this.paramsMap.get('Product').context?this.paramsMap.get('Product').context:{};
let tempDstParam0Data:any = this.paramsMap.get('Product').data?this.paramsMap.get('Product').data:{};
let tempSrcParam0Data:any = this.paramsMap.get('Default').data?this.paramsMap.get('Default').data:{};
Object.assign(tempDstParam0Context,{ibizuniproduct:tempSrcParam0Data['ibizuniproductid']});
Object.assign(tempDstParam0Data,{ibizuniproductid:tempSrcParam0Data['ibizuniproductid']});
this.paramsMap.set('Product',{data:tempDstParam0Data,context:tempDstParam0Context});
if(this.compute2Cond(params)){
return this.executeDeaction1(context,params,isloading);
}
}
/**
* 开始
*
* @param params 传入参数
*/
private async executeBegin(context:any,params:any,isloading:boolean){
//开始节点
if(this.compute1Cond(params)){
return this.executePrepareparam1(context,params,isloading);
}
}
}