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;
- };
|