Commit eec0b0aa authored by 任国军's avatar 任国军

fix report calc class score

parent 98694127
Pipeline #23027 passed with stage
in 13 seconds
...@@ -527,39 +527,39 @@ class ReportService extends Service { ...@@ -527,39 +527,39 @@ class ReportService extends Service {
if (v.column_type === 1) { if (v.column_type === 1) {
switch (v.column) { switch (v.column) {
case 'filter_price': case 'filter_price':
score += await this.checkScore(classInfo.filter_price, v.option, v.column_value, v.column_score); score += await this.checkScore(classInfo.filter_price, v.column_option, v.column_value, v.column_score);
break; break;
case 'price_type': case 'price_type':
score += await this.checkScore(classInfo.price_type, v.option, v.column_value, v.column_score); score += await this.checkScore(classInfo.price_type, v.column_option, v.column_value, v.column_score);
break; break;
case 'mode': case 'mode':
score += await this.checkScore(classInfo.mode, v.option, v.column_value, v.column_score); score += await this.checkScore(classInfo.mode, v.column_option, v.column_value, v.column_score);
break; break;
case 'time': case 'time':
score += await this.checkScore(classInfo.time, v.option, v.column_value, v.column_score); score += await this.checkScore(classInfo.time, v.column_option, v.column_value, v.column_score);
break; break;
case 'class_amount': case 'class_amount':
score += await this.checkScore(classInfo.class_amount, v.option, v.column_value, v.column_score); score += await this.checkScore(classInfo.class_amount, v.column_option, v.column_value, v.column_score);
break; break;
case 'multi_classes': case 'multi_classes':
score += await this.checkScore(classInfo.multi_classes, v.option, v.column_value, v.column_score); score += await this.checkScore(classInfo.multi_classes, v.column_option, v.column_value, v.column_score);
break; break;
case 'cycle': case 'cycle':
score += await this.checkScore(classInfo.cycle, v.option, v.column_value, v.column_score); score += await this.checkScore(classInfo.cycle, v.column_option, v.column_value, v.column_score);
break; break;
case 'type': case 'type':
for (const j of classInfo.type_list) { for (const j of classInfo.type_list) {
score += await this.checkScore(String(j.id), v.option, v.column_value, v.column_score); score += await this.checkScore(String(j.id), v.column_option, v.column_value, v.column_score);
} }
break; break;
case 'frequency': case 'frequency':
for (const j of classInfo.frequency_list) { for (const j of classInfo.frequency_list) {
score += await this.checkScore(String(j.id), v.option, v.column_value, v.column_score); score += await this.checkScore(String(j.id), v.column_option, v.column_value, v.column_score);
} }
break; break;
case 'age': case 'age':
for (const j of classInfo.age_list) { for (const j of classInfo.age_list) {
score += await this.checkScore(String(j.id), v.option, v.column_value, v.column_score); score += await this.checkScore(String(j.id), v.column_option, v.column_value, v.column_score);
} }
break; break;
default: default:
...@@ -568,7 +568,7 @@ class ReportService extends Service { ...@@ -568,7 +568,7 @@ class ReportService extends Service {
} else { } else {
for (const j of classInfo.column_list) { for (const j of classInfo.column_list) {
if (v.column === j.id) { if (v.column === j.id) {
score += await this.checkScore(j.value, v.option, v.column_value, v.column_score); score += await this.checkScore(j.value, v.column_option, v.column_value, v.column_score);
} }
} }
} }
...@@ -581,6 +581,7 @@ class ReportService extends Service { ...@@ -581,6 +581,7 @@ class ReportService extends Service {
// 判断是否符合条件 // 判断是否符合条件
async checkScore(value, option, filter, score) { async checkScore(value, option, filter, score) {
let ret = 0; let ret = 0;
switch (option) { switch (option) {
case 1: case 1:
ret = value === filter ? Number(score) : 0; ret = value === filter ? Number(score) : 0;
...@@ -599,9 +600,10 @@ class ReportService extends Service { ...@@ -599,9 +600,10 @@ class ReportService extends Service {
break; break;
case 6: case 6:
filter = eval(filter); filter = eval(filter);
score = eval(score);
for (const i in filter) { for (const i in filter) {
if (filter[i] === value && score.length > i) { if (filter[i] === value && score.length > i) {
ret += score[i]; ret += Number(score[i]);
} }
} }
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment