12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- 'use strict';
- /**
- * 审批信息重新发送定时任务
- *
- * @author CaiAoLin
- * @date 2017/10/26
- * @version
- */
- const Subscription = require('egg').Subscription;
- const projectSettingConst = require('../const/project_setting');
- const smsTypeConst = require('../const/sms_type');
- class ShenpiAgain extends Subscription {
- static get schedule() {
- return {
- interval: '1m',
- type: 'all',
- };
- }
- async subscribe() {
- const ctx = this.ctx;
- const list = await ctx.service.noticeAgain.getAllDataByCondition({ where: { status: 1 } });
- if (list.length === 0) return;
- const pidList = ctx.helper._.uniq(ctx.helper._.map(list, 'pid'));
- const projectsNoticeSetting = await ctx.service.project.getAllDataByCondition({
- columns: ['id', 'notice_setting'],
- where: { id: pidList },
- });
- const uidList = ctx.helper._.uniq(ctx.helper._.map(list, 'uid'));
- const usersNoticeSetting = await ctx.service.projectAccount.getAllDataByCondition({
- columns: ['id', 'project_id', 'notice_again'],
- where: { id: uidList },
- });
- const tidList = ctx.helper._.uniq(ctx.helper._.map(list, 'tid'));
- const tenderList = await ctx.service.tender.getAllDataByCondition({ columns: ['id', 'name'], where: { id: tidList } });
- const tenderInfoList = await ctx.service.tenderInfo.getAllDataByCondition({ columns: ['id', 'tid', 'deal_info'], where: { tid: tidList } });
- const updateData = [];
- const deleteData = [];
- // for (const i of list) {
- // if (i.times > 10) continue;// 发超过10次就不发了吧
- // const uinfo = ctx.helper._.find(usersNoticeSetting, { id: i.uid });
- // const notice_again = uinfo.notice_again ? JSON.parse(uinfo.notice_again) : null;
- // if (!notice_again) continue;
- // const pinfo = ctx.helper._.find(projectsNoticeSetting, { id: i.pid });
- // const notice_setting = pinfo.notice_setting ? JSON.parse(pinfo.notice_setting) : ctx.helper._.cloneDeep(projectSettingConst.noticeSetting);
- // const interval = notice_setting.mode === 'fixed' ? notice_setting.fixed : (i.times === 0 ? notice_setting.activity.first : (i.times === 1 ? notice_setting.activity.second : notice_setting.activity.later));
- // const send_time = ctx.helper.calculateNextSendTime(i.last_time, interval, notice_setting.shield_times.start, notice_setting.shield_times.end);
- // console.log(new Date(), send_time);
- // if (new Date() > send_time) {
- // // 判断是否已经sp_type的sp_id已经完成审批或者是否存在,如果已经审批或不存在则需要删除
- // const spInfo = await ctx.service.noticeAgain.getSpResult(i.table_name, i.sp_id);
- // if (!spInfo) {
- // deleteData.push(i.id);
- // continue;
- // } else {
- // const status = spInfo.status || spInfo.audit_status;
- // if (status !== 2) {
- // updateData.push({
- // id: i.id,
- // status: 2,
- // });
- // continue;
- // }
- // }
- // // 重发信息并记录到更新表里数据
- // const t = ctx.helper._.find(tenderList, { id: i.tid });
- // const tenderInfo = ctx.helper._.find(tenderInfoList, { tid: i.tid });
- // const newTenderInfo = {
- // deal_info: { buildName: '' },
- // };
- // if (tenderInfo) {
- // newTenderInfo.deal_info = JSON.parse(tenderInfo.deal_info);
- // }
- // const tender = {
- // data: t,
- // info: newTenderInfo,
- // };
- // console.log(tender);
- // // await ctx.helper.sendWechat(i.uid, i.sms_type, smsTypeConst.judge.approval.toString(), i.template, JSON.parse(i.wx_data), tender);
- // updateData.push({
- // id: i.id,
- // times: i.times + 1,
- // last_time: ctx.helper.dateTran(new Date(), 'YYYY-MM-DD HH:mm'),
- // });
- // }
- // }
- // if (updateData.length > 0) await ctx.service.noticeAgain.defaultUpdateRows(updateData);
- // if (deleteData.length > 0) await ctx.service.noticeAgain.deleteById(deleteData);
- }
- }
- module.exports = ShenpiAgain;
|