修复环境变量位置重置逻辑

This commit is contained in:
whyour 2023-02-15 11:54:51 +08:00
parent 0c46606e14
commit e924aa76b0
2 changed files with 5 additions and 5 deletions

View File

@ -28,7 +28,7 @@ export enum EnvStatus {
export const maxPosition = 9000000000000000;
export const initPosition = 4500000000000000;
export const stepPosition = 10000000;
export const stepPosition = 10000000000;
export const minPosition = 100;
interface EnvInstance extends Model<Env, Env>, Env {}

View File

@ -16,7 +16,7 @@ import { Op } from 'sequelize';
@Service()
export default class EnvService {
constructor(@Inject('logger') private logger: winston.Logger) {}
constructor(@Inject('logger') private logger: winston.Logger) { }
public async create(payloads: Env[]): Promise<Env[]> {
const envs = await this.envs();
@ -92,13 +92,13 @@ export default class EnvService {
position: this.getPrecisionPosition(targetPosition),
});
await this.checkPosition(targetPosition);
await this.checkPosition(targetPosition, envs[toIndex].position!);
return newDoc;
}
private async checkPosition(position: number) {
private async checkPosition(position: number, edge: number = 0) {
const precisionPosition = parseFloat(position.toPrecision(16));
if (precisionPosition < minPosition || precisionPosition > maxPosition) {
if (precisionPosition < minPosition || precisionPosition > maxPosition || Math.abs(precisionPosition - edge) < minPosition) {
const envs = await this.envs();
let position = initPosition;
for (const env of envs) {