修改逻辑错误问题

This commit is contained in:
wuhan 2024-03-13 11:11:22 +08:00
parent 78b8409ba3
commit b6d72b6a31
4 changed files with 25817 additions and 16 deletions

25781
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -30,6 +30,7 @@
"@nestjs/platform-express": "^10.0.0",
"@nestjs/platform-fastify": "^10.0.4",
"@nestjs/platform-socket.io": "^10.3.0",
"@nestjs/schedule": "^4.0.1",
"@nestjs/serve-static": "^4.0.0",
"@nestjs/typeorm": "^10.0.1",
"@nestjs/websockets": "^10.3.0",
@ -102,4 +103,4 @@
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
}
}

View File

@ -318,6 +318,16 @@ class ClientMapper {
.groupBy('time')
.getRawMany();
}
async queryDataUserSum(areaCode: string) {
const sql = HomeInfo.createQueryBuilder()
if (areaCode) {
sql.where('areaCode = :areaCode', { areaCode })
}
return await sql
.select('sum(num)', 'sum')
.getRawOne()
}
}
export default new ClientMapper();

View File

@ -346,28 +346,37 @@ export class ClientService {
startTime = Time.getRecentWeek(limit)
} else if (dateRange == 3) {
// 月
limit = 5
startTime = Time.getRecentMonth(limit)
array = Time.getRecentDays(limit, 2)
} else {
//年
limit = 2
startTime = Time.getRecentYear(limit)
array = Time.getRecentDays(limit, 3)
}
const result = await clientMapper.queryDataUseNum({
areaCode,
startTime,
// endTime: moment(endTime).format('YYYY-MM-DD HH:mm:ss'),
limit,
dateRange,
});
// result.forEach((e) => (e.date = moment(e.date).format('YYYY-MM-DD')));
const arr = result.map((e) => e.num);
// const result = await clientMapper.queryDataUseNum({
// areaCode,
// startTime,
// limit,
// dateRange,
// });
const [result, count] = await Promise.all([
clientMapper.queryDataUseNum({
areaCode,
startTime,
limit,
dateRange,
}),
clientMapper.queryDataUserSum(areaCode)
])
// const arr = result.map((e) => e.num);
const date: string[] = result.map(e => e.time)
let totalNum = 0;
if (arr?.length) {
totalNum = arr.reduce((a, b) => Number(a) + Number(b));
}
const data = new Array(array.length)
// let totalNum = 0;
// if (arr?.length) {
// totalNum = arr.reduce((a, b) => Number(a) + Number(b));
// }
const data = []
array.forEach((e, i) => {
if (date.filter(d => d == e).length) {
const obj = result.filter(d => d.time == e)[0]
@ -383,7 +392,7 @@ export class ClientService {
}
})
const info = {
totalNum: totalNum,
totalNum: count.sum,
dataList: data
};