123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- 'use strict';
- /**
- *
- *
- * @author Mai
- * @date 2021/6/17
- * @version
- */
- const thirdPartyConst = require('../const/third_party');
- module.exports = app => {
- class S2bProj extends app.BaseService {
- /**
- * 构造函数
- *
- * @param {Object} ctx - egg全局变量
- * @return {void}
- */
- constructor(ctx) {
- super(ctx);
- this.tableName = 's2b_proj';
- }
- async getDataByPid(pid) {
- const sp = await this.getDataByCondition({ pid });
- if (sp) {
- sp.gxby_option = sp.gxby_option ? JSON.parse(sp.gxby_option) : null;
- sp.dagl_option = sp.dagl_option ? JSON.parse(sp.dagl_option) : null;
- sp.gxby_status = sp.gxby_status ? JSON.parse(sp.gxby_status) : thirdPartyConst.gxby;
- sp.dagl_status = sp.dagl_status ? JSON.parse(sp.dagl_status) : thirdPartyConst.dagl;
- }
- return sp;
- }
- async refreshSessionS2b() {
- const s2bProj = await this.getDataByPid(this.ctx.session.sessionProject.id);
- this.ctx.session.sessionProject.gxby = s2bProj ? s2bProj.gxby : false;
- this.ctx.session.sessionProject.gxby_status = s2bProj ? s2bProj.gxby_status : thirdPartyConst.gxby;
- this.ctx.session.sessionProject.dagl = s2bProj ? s2bProj.dagl : false;
- this.ctx.session.sessionProject.dagl_status = s2bProj ? s2bProj.dagl_status : thirdPartyConst.dagl;
- }
- async updateGxbyStatus(pid, status, limit, ratio) {
- const sp = await this.getDataByPid(pid);
- const gs = sp.gxby_status.find(x => { return x.value === status; });
- if (!gs) throw '提交数据错误';
- if (limit !== undefined && limit !== null) gs.limit = limit;
- if (ratio !== undefined && ratio !== null) gs.ratio = this.ctx.helper.round(ratio, 2);
- await this.db.update(this.tableName, { gxby_status: JSON.stringify(sp.gxby_status) }, { where: { pid } });
- return gs;
- }
- async updateDaglStatus(pid, status, limit, ratio) {
- const sp = await this.getDataByPid(pid);
- const ds = sp.dagl_status.find(x => { return x.value === status; });
- if (!ds) throw '提交数据错误';
- if (limit !== undefined && limit !== null) ds.limit = limit;
- if (ratio !== undefined && ratio !== null) ds.ratio = this.ctx.helper.round(ratio, 2);
- await this.db.update(this.tableName, { dagl_status: JSON.stringify(sp.dagl_status) }, { where: { pid } });
- return ds;
- }
- }
- return S2bProj;
- };
|