| 
					
				 | 
			
			
				@@ -72,7 +72,15 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         async getAllAuditors(tenderId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const sql = 'SELECT sa.aid, sa.tid FROM ' + this.tableName + ' sa' + '  LEFT JOIN ' + this.ctx.service.tender.tableName + ' t On sa.tid = t.id' + '  WHERE t.id = ?' + '  GROUP BY  sa.aid' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const sql = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'SELECT sa.aid, sa.tid FROM ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.tableName + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ' sa' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  LEFT JOIN ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.ctx.service.tender.tableName + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ' t On sa.tid = t.id' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  WHERE t.id = ?' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  GROUP BY  sa.aid' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sqlParam = [tenderId] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return this.db.query(sql, sqlParam) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -86,7 +94,11 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * @return {Promise<*>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         async getStatusName(stageId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const sql = 'SELECT pa.`name` ' + 'FROM ?? AS sa, ?? AS pa ' + 'WHERE sa.`sid` = ?' + '    and sa.`aid` = pa.`id` and sa.`status` != ? ORDER BY sa.`times` DESC, sa.`order` DESC' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const sql = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'SELECT pa.`name` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'FROM ?? AS sa, ?? AS pa ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'WHERE sa.`sid` = ?' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '    and sa.`aid` = pa.`id` and sa.`status` != ? ORDER BY sa.`times` DESC, sa.`order` DESC' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, stageId, auditConst.status.uncheck] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return await this.db.queryOne(sql, sqlParam) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -269,7 +281,10 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const stageInfo = await this.ctx.service.stage.getDataById(audit.sid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const shenpiUrl = await this.ctx.helper.urlToShort('http://' + this.ctx.request.header.host + '/wap/tender/' + this.ctx.tender.id + '/stage/' + stageInfo.order) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                await this.ctx.helper.sendAliSms(audit.aid, smsTypeConst.const.JL, smsTypeConst.judge.approval.toString(), SmsAliConst.template.stage_check, { qi: stageInfo.order, code: shenpiUrl }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                await this.ctx.helper.sendAliSms(audit.aid, smsTypeConst.const.JL, smsTypeConst.judge.approval.toString(), SmsAliConst.template.stage_check, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    qi: stageInfo.order, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    code: shenpiUrl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // todo 更新标段tender状态 ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 await transaction.commit() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -294,7 +309,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 添加推送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const noticeContent = await this.getNoticeContent(pid, audit.tid, stageId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const noticeContent = await this.getNoticeContent(pid, audit.tid, stageId, audit.aid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const records = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         pid, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -375,7 +390,10 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     const stageInfo = await this.ctx.service.stage.getDataById(nextAudit.sid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     const shenpiUrl = await this.ctx.helper.urlToShort('http://' + this.ctx.request.header.host + '/wap/tender/' + this.ctx.tender.id + '/stage/' + stageInfo.order) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    await this.ctx.helper.sendAliSms(nextAudit.aid, smsTypeConst.const.JL, smsTypeConst.judge.approval.toString(), SmsAliConst.template.stage_check, { qi: stageInfo.order, code: shenpiUrl }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    await this.ctx.helper.sendAliSms(nextAudit.aid, smsTypeConst.const.JL, smsTypeConst.judge.approval.toString(), SmsAliConst.template.stage_check, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        qi: stageInfo.order, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        code: shenpiUrl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 本期结束 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 生成截止本期数据 final数据 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -423,7 +441,10 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //     sms.send(mobile_array, content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     const users = this._.pull(this._.map(auditList, 'aid'), stageInfo.user_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    await this.ctx.helper.sendAliSms(users, smsTypeConst.const.JL, smsTypeConst.judge.result.toString(), SmsAliConst.template.stage_result, { qi: stageInfo.order, status: SmsAliConst.status.success }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    await this.ctx.helper.sendAliSms(users, smsTypeConst.const.JL, smsTypeConst.judge.result.toString(), SmsAliConst.template.stage_result, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        qi: stageInfo.order, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        status: SmsAliConst.status.success 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 await transaction.commit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } catch (err) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -454,7 +475,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const transaction = await this.db.beginTransaction() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 添加推送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const noticeContent = await this.getNoticeContent(pid, audit.tid, stageId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const noticeContent = await this.getNoticeContent(pid, audit.tid, stageId, audit.aid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const records = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         pid, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -542,7 +563,10 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //     sms.send(mobile_array, content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const users = this._.pull(this._.map(auditList, 'aid'), stageInfo.user_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                await this.ctx.helper.sendAliSms(users, smsTypeConst.const.JL, smsTypeConst.judge.result.toString(), SmsAliConst.template.stage_result, { qi: stageInfo.order, status: SmsAliConst.status.back }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                await this.ctx.helper.sendAliSms(users, smsTypeConst.const.JL, smsTypeConst.judge.result.toString(), SmsAliConst.template.stage_result, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    qi: stageInfo.order, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    status: SmsAliConst.status.back 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 await transaction.commit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } catch (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 await transaction.rollback() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -569,7 +593,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const transaction = await this.db.beginTransaction() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 添加推送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const noticeContent = await this.getNoticeContent(pid, audit.tid, stageId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const noticeContent = await this.getNoticeContent(pid, audit.tid, stageId, audit.aid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const records = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         pid, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -678,7 +702,10 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const stageInfo = await this.ctx.service.stage.getDataById(audit.sid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const shenpiUrl = await this.ctx.helper.urlToShort('http://' + this.ctx.request.header.host + '/wap/tender/' + this.ctx.tender.id + '/stage/' + stageInfo.order) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                await this.ctx.helper.sendAliSms(preAuditor.aid, smsTypeConst.const.JL, smsTypeConst.judge.approval.toString(), SmsAliConst.template.stage_check, { qi: stageInfo.order, code: shenpiUrl }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                await this.ctx.helper.sendAliSms(preAuditor.aid, smsTypeConst.const.JL, smsTypeConst.judge.approval.toString(), SmsAliConst.template.stage_check, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    qi: stageInfo.order, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    code: shenpiUrl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 await transaction.commit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } catch (err) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -916,7 +943,10 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const stageInfo = await this.ctx.service.stage.getDataById(audit.sid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const shenpiUrl = await this.ctx.helper.urlToShort('http://' + this.ctx.request.header.host + '/wap/tender/' + this.ctx.tender.id + '/stage/' + stageInfo.order) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                await this.ctx.helper.sendAliSms(audit.aid, smsTypeConst.const.JL, smsTypeConst.judge.approval.toString(), SmsAliConst.template.stage_check, { qi: stageInfo.order, code: shenpiUrl }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                await this.ctx.helper.sendAliSms(audit.aid, smsTypeConst.const.JL, smsTypeConst.judge.approval.toString(), SmsAliConst.template.stage_check, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    qi: stageInfo.order, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    code: shenpiUrl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 await transaction.commit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } catch (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 await transaction.rollback() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -938,7 +968,16 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '  FROM ?? AS sa, ?? AS s, ?? As t ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '  WHERE ((sa.`aid` = ? and sa.`status` = ?) OR (s.`user_id` = ? and sa.`status` = ? and s.`status` = ? and sa.`times` = (s.`times`-1)))' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '    and sa.`sid` = s.`id` and sa.`tid` = t.`id`' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const sqlParam = [this.tableName, this.ctx.service.stage.tableName, this.ctx.service.tender.tableName, auditorId, auditConst.status.checking, auditorId, auditConst.status.checkNo, auditConst.status.checkNo] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const sqlParam = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.tableName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.ctx.service.stage.tableName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.ctx.service.tender.tableName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                auditorId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                auditConst.status.checking, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                auditorId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                auditConst.status.checkNo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                auditConst.status.checkNo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return await this.db.query(sql, sqlParam) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1134,7 +1173,14 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '  FROM ?? AS sa, ?? AS s, ?? As t, ?? AS ti ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '  WHERE sa.`aid` = ? and sa.`status` = ?' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '    and sa.`sid` = s.`id` and sa.`tid` = t.`id` and ti.`tid` = t.`id`' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const sqlParam = [this.tableName, this.ctx.service.stage.tableName, this.ctx.service.tender.tableName, this.ctx.service.tenderInfo.tableName, auditorId, auditConst.status.checking] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const sqlParam = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.tableName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.ctx.service.stage.tableName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.ctx.service.tender.tableName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.ctx.service.tenderInfo.tableName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                auditorId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                auditConst.status.checking 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return await this.db.query(sql, sqlParam) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |