| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | 
							- 'use strict';
 
- /**
 
-  *
 
-  *
 
-  * @author Mai
 
-  * @date 2018/10/30
 
-  * @version
 
-  */
 
- const infoConst = require('../const/tender_info');
 
- const parseInfo = infoConst.parseInfo;
 
- const defaultInfo = infoConst.defaultInfo;
 
- module.exports = app => {
 
-     class TenderInfo extends app.BaseService {
 
-         /**
 
-          * 构造函数
 
-          *
 
-          * @param {Object} ctx - egg全局变量
 
-          * @return {void}
 
-          */
 
-         constructor(ctx) {
 
-             super(ctx);
 
-             this.tableName = 'tender_info';
 
-         }
 
-         /**
 
-          * 新增 标段相关信息
 
-          *
 
-          * @param tenderId - 标段Id
 
-          * @param projectId - 项目Id
 
-          * @param transaction - 事务
 
-          * @returns {Promise<void>}
 
-          */
 
-         async addTenderInfo(tenderId, projectId, transaction) {
 
-             const info = JSON.parse(JSON.stringify(defaultInfo));
 
-             info.tid = tenderId;
 
-             info.pid = projectId;
 
-             for (const pi of parseInfo) {
 
-                 info[pi] = JSON.stringify(info[pi])
 
-             }
 
-             if (transaction) {
 
-                 await transaction.insert(this.tableName, info);
 
-             } else {
 
-                 await this.db.insert(this.tableName, info);
 
-             }
 
-             return info;
 
-         }
 
-         /**
 
-          * 获取标段相关信息
 
-          * @param tenderId
 
-          * @returns {Promise<void>}
 
-          */
 
-         async getTenderInfo(tenderId) {
 
-             let info = await this.getDataByCondition({tid: tenderId});
 
-             // 兼容不存在info的情况
 
-             if (!info) {
 
-                 info = await this.addTenderInfo(tenderId, this.ctx.session.sessionProject.id);
 
-             }
 
-             for (const pi of parseInfo) {
 
-                 info[pi] = !info[pi] || info[pi] === '' ? defaultInfo[pi] : JSON.parse(info[pi]);
 
-             }
 
-             return info;
 
-         }
 
-         /**
 
-          * 保存标段相关信息
 
-          *
 
-          * @param data
 
-          * @returns {Promise<void>}
 
-          */
 
-         async saveTenderInfo(tenderId, data) {
 
-             for (const di in data) {
 
-                 if (parseInfo.indexOf(di) >= 0) {
 
-                     data[di] = JSON.stringify(data[di]);
 
-                 }
 
-             }
 
-             await this.db.update(this.tableName, data, {where: {tid: tenderId}});
 
-         }
 
-     }
 
-     return TenderInfo;
 
- };
 
 
  |