| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 
							- 'use strict';
 
- /**
 
-  * 收方单-数据模型
 
-  *
 
-  * @author ellisran
 
-  * @date 2021/09/23
 
-  * @version
 
-  */
 
- const accountGroup = require('../const/account_group').group;
 
- const fs = require('fs');
 
- const path = require('path');
 
- const qr = require('qr-image');
 
- const sendToWormhole = require('stream-wormhole');
 
- const auditConst = require('../const/audit').stage;
 
- module.exports = app => {
 
-     class stageShoufang extends app.BaseService {
 
-         constructor(ctx) {
 
-             super(ctx);
 
-             this.tableName = 'stage_shoufang';
 
-         }
 
-         async add(datas) {
 
-             const transaction = await this.db.beginTransaction();
 
-             try {
 
-                 const data = {
 
-                     tid: this.ctx.tender.id,
 
-                     order: this.ctx.stage.order,
 
-                     sid: this.ctx.stage.id,
 
-                     lid: datas.lid,
 
-                     pid: datas.pid ? datas.pid : null,
 
-                     extra_upload: this.ctx.stage.status === auditConst.status.checked ? 1 : 0,
 
-                     create_time: new Date(),
 
-                 };
 
-                 const result = await transaction.insert(this.tableName, data);
 
-                 // 生成二维码并保存
 
-                 const size = 5;
 
-                 const margin = 1;
 
-                 const text = this.ctx.protocol + '://' + this.ctx.host + '/wap/shoufang/upload' +
 
-                     '?tid=' + this.ctx.tender.id + '&order=' + this.ctx.stage.order + '&sfid=' + result.insertId;
 
-                 // 大小默认5,二维码周围间距默认1
 
-                 const qr_png = await qr.image(text || '', { type: 'png', size: size || 5, margin: margin || 1 });
 
-                 const qrcodePath = 'app/public/upload/' + this.ctx.tender.id + '/stage/shoufang/qrcode/' + result.insertId + '.png';
 
-                 // await this.ctx.helper.saveStreamFile(qr_png, path.resolve(this.app.baseDir, 'app/' + qrcodePath));
 
-                 await this.ctx.app.fujianOss.put(this.ctx.app.config.fujianOssFolder + qrcodePath, qr_png);
 
-                 await transaction.update(this.tableName, { id: result.insertId, qrcode: qrcodePath });
 
-                 await transaction.commit();
 
-                 return result;
 
-             } catch (err) {
 
-                 await transaction.rollback();
 
-                 throw err;
 
-             }
 
-         }
 
-         async del(sfid) {
 
-             const transaction = await this.db.beginTransaction();
 
-             try {
 
-                 // 删除附件再删除收方单
 
-                 const sfInfo = await this.getDataById(sfid);
 
-                 const sfAttList = await this.ctx.service.stageShoufangAtt.getAllDataByCondition({ where: { sfid } });
 
-                 await this.ctx.helper.delFiles(sfAttList);
 
-                 // if (sfAttList) {
 
-                 //     if (sfAttList.length !== 0) {
 
-                 //         for (const att of sfAttList) {
 
-                 //             if (fs.existsSync(path.join(this.app.baseDir, att.filepath))) {
 
-                 //                 await fs.unlinkSync(path.join(this.app.baseDir, att.filepath));
 
-                 //             }
 
-                 //         }
 
-                 //     }
 
-                 // }
 
-                 // 删除二维码
 
-                 // if (fs.existsSync(path.join(this.app.baseDir, 'app/' + sfInfo.qrcode))) {
 
-                 //     await fs.unlinkSync(path.join(this.app.baseDir, 'app/' + sfInfo.qrcode));
 
-                 // }
 
-                 await this.ctx.app.fujianOss.delete(this.ctx.app.config.fujianOssFolder + sfInfo.qrcode);
 
-                 await transaction.delete(this.ctx.service.stageShoufangAtt.tableName, { sfid });
 
-                 await transaction.delete(this.tableName, { id: sfid });
 
-                 await transaction.commit();
 
-                 return true;
 
-             } catch (err) {
 
-                 await transaction.rollback();
 
-                 throw err;
 
-             }
 
-         }
 
-     }
 
-     return stageShoufang;
 
- };
 
 
  |