Compare commits

...

4 Commits

4 changed files with 55 additions and 5 deletions

View File

@ -19,6 +19,7 @@ export class CouchService {
}
async onModuleInit() {
// return;
const nano = this.nanoInstance;
for (const database of DatabaseListen) {
const db = nano.db.use(database);
@ -95,4 +96,41 @@ export class CouchService {
return null;
}
}
getUnixTimestampLast7Days() {
const date = new Date();
date.setDate(date.getDate() - 4);
date.setHours(0, 0, 0, 0);
return date.getTime();
}
public async clearTransactions() {
const nano = this.nanoInstance;
const transaction = nano.use('transaction');
const expiredDate = this.getUnixTimestampLast7Days();
const selectorPayment = {
created_at: {
$lt: expiredDate,
},
};
const transactions = await transaction.find({
selector: selectorPayment,
fields: ['_id', '_rev'],
limit: 100000,
});
const { docs } = transactions;
console.log(docs.length);
const deletedDocs = {
docs: docs.map((doc) => ({
_id: doc._id,
_rev: doc._rev,
_deleted: true,
})),
};
await transaction.bulk(deletedDocs);
}
}

View File

@ -5,13 +5,17 @@ import { Public } from 'src/core/guards';
import * as Nano from 'nano';
import { CreateUserPrivilegeDto } from 'src/modules/user-related/user-privilege/infrastructure/dto/create-user-privilege.dto';
import { ConfigService } from '@nestjs/config';
import { CouchService } from '../data/services/couch.service';
@ApiTags(`couch`)
@Controller('v1/couch')
@Public()
@Injectable()
export class CouchDataController {
constructor(private configService: ConfigService) {}
constructor(
private configService: ConfigService,
private couchService: CouchService,
) {}
get nanoInstance() {
const couchConfiguration = this.configService.get<string>('COUCHDB_CONFIG');
@ -64,4 +68,11 @@ export class CouchDataController {
// return people.get();
} catch (error) {}
}
@Public(true)
@Get('clear-transactions')
async clearTransactions(): Promise<string> {
await this.couchService.clearTransactions();
return 'OK';
}
}

View File

@ -144,7 +144,6 @@ export class GenerateQueueManager {
qty: data.qty,
item_id: queue.id,
vip: isVip,
showTime: false,
};
const registerQueueManager = new RegisterQueueManager(
this.bucketService,
@ -154,6 +153,9 @@ export class GenerateQueueManager {
registerQueueManager.setService(this.queueService, TABLE_NAME.QUEUE);
await registerQueueManager.execute();
return registerQueueManager.getResult();
const result = await registerQueueManager.getResult();
result.time = null;
return result;
}
}

View File

@ -43,7 +43,6 @@ export class RegisterQueueManager extends BaseCreateManager<QueueModel> {
async beforeProcess(): Promise<void> {
const vip = this.data.vip ?? false;
const showTime = this.data.showTime ?? true;
const item = await this.getItemMaster();
this.currentItemMaster = item;
const [, end] = await this.queueTime(item.item_queue_id);
@ -57,7 +56,7 @@ export class RegisterQueueManager extends BaseCreateManager<QueueModel> {
Object.assign(this.data, {
status: STATUS.WAITING,
time: showTime ? end : undefined,
time: end,
item_queue_id: item.item_queue_id,
vip,
code,