Toggle navigation
Toggle navigation
This project
Loading...
Sign in
2021-1-capstone-design1
/
RIT_Project1
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
1
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
박권수
2021-09-14 20:26:05 +0900
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
e17b93fad26ba96281b2942dcac071f7a5df8d0f
e17b93fa
2 parents
e43fceda
8619f4bc
fix. merge conflict
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
94 additions
and
91 deletions
server/src/util/Batch.js
server/src/util/Batch.js
View file @
e17b93f
...
...
@@ -7,95 +7,98 @@
* 2) Dosage에 따라, Push Notification 발송
*/
const
cron
=
require
(
'node-cron'
);
const
Profile
=
require
(
'../models/profile'
);
const
User
=
require
(
'../models/user'
);
const
Hub
=
require
(
'../models/hub'
);
const
Bottle
=
require
(
'../models/bottle'
);
const
BottleMedicine
=
require
(
'../models/bottleMedicine'
);
//매년 1월 1일 00시 00분에 1살씩 추가
exports
.
CheckNewYear
=
()
=>
{
cron
.
schedule
(
'0 0 0 1 1 *'
,
async
()
=>
{
const
profileList
=
await
Profile
.
find
();
profileList
.
forEach
(
async
profile
=>
{
await
profile
.
updateUserAge
();
profile
.
save
();
});
},
{
timezone
:
'Asia/Tokyo'
,
});
};
//dosage에 따라, Push Notification을 발송한다.
//아침 8시, 점심 12시, 저녁 6시에 한번씩 발송
exports
.
PushNotifyByDosage
=
async
()
=>
{
//매일 아침 8시 : 복용량 상관 없이 보냄
cron
.
schedule
(
'0 0 8 * * *'
,
async
()
=>
{
const
bottleMedicineList
=
await
BottleMedicine
.
find
({
useYn
:
'Y'
,
dosage
:
{
$gte
:
1
}
});
bottleMedicineList
.
forEach
(
async
bottleMedicine
=>
{
const
bottle
=
await
Bottle
.
findOne
({
bottleId
:
bottleMedicine
.
bottleId
});
const
hub
=
await
Hub
.
findOne
({
hubId
:
bottle
.
hubId
});
const
user
=
await
User
.
findOne
({
userId
:
hub
.
userId
,
useYn
:
'Y'
});
if
(
user
)
{
const
profile
=
await
Profile
.
findOne
({
userId
:
user
.
userId
});
const
{
deviceToken
}
=
profile
;
PushNotify
(
deviceToken
);
}
});
},
{
timezone
:
'Asia/Tokyo'
,
});
//매일 점심 12시 : 복용량이 3인 환자들만
cron
.
schedule
(
'0 0 12 * * *'
,
async
()
=>
{
const
bottleMedicineList
=
await
BottleMedicine
.
find
({
useYn
:
'Y'
,
dosage
:
{
$gte
:
3
}
});
bottleMedicineList
.
forEach
(
async
bottleMedicine
=>
{
const
bottle
=
await
Bottle
.
findOne
({
bottleId
:
bottleMedicine
.
bottleId
});
const
hub
=
await
Hub
.
findOne
({
hubId
:
bottle
.
hubId
});
const
user
=
await
User
.
findOne
({
userId
:
hub
.
userId
,
useYn
:
'Y'
});
if
(
user
)
{
const
profile
=
await
Profile
.
findOne
({
userId
:
user
.
userId
});
const
{
deviceToken
}
=
profile
;
PushNotify
(
deviceToken
);
}
});
},
{
timezone
:
'Asia/Tokyo'
,
});
//매일 저녁 6시
cron
.
schedule
(
'0 0 18 * * *'
,
async
()
=>
{
const
bottleMedicineList
=
await
BottleMedicine
.
find
({
useYn
:
'Y'
,
dosage
:
{
$gte
:
2
}
});
bottleMedicineList
.
forEach
(
async
bottleMedicine
=>
{
const
bottle
=
await
Bottle
.
findOne
({
bottleId
:
bottleMedicine
.
bottleId
});
const
hub
=
await
Hub
.
findOne
({
hubId
:
bottle
.
hubId
});
const
user
=
await
User
.
findOne
({
userId
:
hub
.
userId
,
useYn
:
'Y'
});
if
(
user
)
{
const
profile
=
await
Profile
.
findOne
({
userId
:
user
.
userId
});
const
{
deviceToken
}
=
profile
;
PushNotify
(
deviceToken
);
}
});
},
{
timezone
:
'Asia/Tokyo'
,
});
};
const
PushNotify
=
async
(
deviceToken
)
=>
{
const
cron
=
require
(
'node-cron'
);
const
Profile
=
require
(
'../models/profile'
);
const
User
=
require
(
'../models/user'
);
const
Hub
=
require
(
'../models/hub'
);
const
Bottle
=
require
(
'../models/bottle'
);
const
BottleMedicine
=
require
(
'../models/bottleMedicine'
);
//매년 1월 1일 00시 00분에 1살씩 추가
exports
.
CheckNewYear
=
()
=>
{
cron
.
schedule
(
'0 0 0 1 1 *'
,
async
()
=>
{
const
profileList
=
await
Profile
.
find
();
profileList
.
forEach
(
async
profile
=>
{
await
profile
.
updateUserAge
();
profile
.
save
();
});
},
{
timezone
:
'Asia/Tokyo'
,
});
};
//dosage에 따라, Push Notification을 발송한다.
//아침 8시, 점심 12시, 저녁 6시에 한번씩 발송
exports
.
PushNotifyByDosage
=
async
()
=>
{
//매일 아침 8시 : 복용량 상관 없이 보냄
cron
.
schedule
(
'0 0 8 * * *'
,
async
()
=>
{
const
bottleMedicineList
=
await
BottleMedicine
.
find
({
useYn
:
'Y'
,
dosage
:
{
$gte
:
1
}
});
bottleMedicineList
.
forEach
(
async
bottleMedicine
=>
{
const
bottle
=
await
Bottle
.
findOne
({
bottleId
:
bottleMedicine
.
bottleId
});
const
hub
=
await
Hub
.
findOne
({
hubId
:
bottle
.
hubId
});
const
user
=
await
User
.
findOne
({
userId
:
hub
.
userId
,
useYn
:
'Y'
});
if
(
user
)
{
const
profile
=
await
Profile
.
findOne
({
userId
:
user
.
userId
});
const
{
deviceToken
}
=
profile
;
PushNotify
(
deviceToken
);
}
});
},
{
timezone
:
'Asia/Tokyo'
,
});
//매일 점심 12시 : 복용량이 3인 환자들만
cron
.
schedule
(
'0 0 12 * * *'
,
async
()
=>
{
const
bottleMedicineList
=
await
BottleMedicine
.
find
({
useYn
:
'Y'
,
dosage
:
{
$gte
:
3
}
});
bottleMedicineList
.
forEach
(
async
bottleMedicine
=>
{
const
bottle
=
await
Bottle
.
findOne
({
bottleId
:
bottleMedicine
.
bottleId
});
const
hub
=
await
Hub
.
findOne
({
hubId
:
bottle
.
hubId
});
const
user
=
await
User
.
findOne
({
userId
:
hub
.
userId
,
useYn
:
'Y'
});
if
(
user
)
{
const
profile
=
await
Profile
.
findOne
({
userId
:
user
.
userId
});
const
{
deviceToken
}
=
profile
;
PushNotify
(
deviceToken
);
}
});
},
{
timezone
:
'Asia/Tokyo'
,
});
//매일 저녁 6시
cron
.
schedule
(
'0 0 18 * * *'
,
async
()
=>
{
const
bottleMedicineList
=
await
BottleMedicine
.
find
({
useYn
:
'Y'
,
dosage
:
{
$gte
:
2
}
});
bottleMedicineList
.
forEach
(
async
bottleMedicine
=>
{
const
bottle
=
await
Bottle
.
findOne
({
bottleId
:
bottleMedicine
.
bottleId
});
const
hub
=
await
Hub
.
findOne
({
hubId
:
bottle
.
hubId
});
const
user
=
await
User
.
findOne
({
userId
:
hub
.
userId
,
useYn
:
'Y'
});
if
(
user
)
{
const
profile
=
await
Profile
.
findOne
({
userId
:
user
.
userId
});
const
{
deviceToken
}
=
profile
;
PushNotify
(
deviceToken
);
}
});
},
{
timezone
:
'Asia/Tokyo'
,
});
};
const
PushNotify
=
async
(
deviceToken
)
=>
{
//toDo : deviceToken을 받아서 push notification을 발송하는 함수
console
.
log
(
deviceToken
);
};
if
(
deviceToken
)
{
console
.
log
(
deviceToken
);
}
};
...
...
Please
register
or
login
to post a comment