|
@@ -3,6 +3,8 @@ const { CrudService } = require('naf-framework-mongoose/lib/service');
|
|
|
const { BusinessError, ErrorCode } = require('naf-core').Error;
|
|
|
const _ = require('lodash');
|
|
|
const assert = require('assert');
|
|
|
+const { ObjectId } = require('mongoose').Types;
|
|
|
+const moment = require('moment');
|
|
|
|
|
|
// 专利信息
|
|
|
class Patent_transService extends CrudService {
|
|
@@ -10,6 +12,115 @@ class Patent_transService extends CrudService {
|
|
|
super(ctx, 'patenttrans');
|
|
|
this.model = this.ctx.model.Patent.Patenttrans;
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 专利交易审核
|
|
|
+ * @param {body} body 参数
|
|
|
+ * @property id 数据id
|
|
|
+ * @property status 交底书要改变成的状态
|
|
|
+ * @property info 其他数据,当做多个备注,记录使用
|
|
|
+ */
|
|
|
+ async check({ id, status, remark }) {
|
|
|
+ await this.model.updateOne({ _id: ObjectId(id) }, { status });
|
|
|
+ // 换成对应的状态码,record在下面
|
|
|
+ return await this.record({ id, method: status, remark });
|
|
|
+ }
|
|
|
+
|
|
|
+ async record({ id, method, remark }) {
|
|
|
+ let word = '';
|
|
|
+ switch (`${method}`) {
|
|
|
+ case 'create':
|
|
|
+ word = '已申请';
|
|
|
+ break;
|
|
|
+ case 'update':
|
|
|
+ word = '修改';
|
|
|
+ break;
|
|
|
+ case '1':
|
|
|
+ word = '填写完合同,等待机构审核';
|
|
|
+ break;
|
|
|
+ case '-1':
|
|
|
+ word = '填写合同审核失败,请重填';
|
|
|
+ break;
|
|
|
+ case '2':
|
|
|
+ word = '合同审核通过,待用户确认';
|
|
|
+ break;
|
|
|
+ case '3':
|
|
|
+ word = '用户确认成功,机构归档';
|
|
|
+ break;
|
|
|
+ case '-3':
|
|
|
+ word = '归档失败';
|
|
|
+ break;
|
|
|
+ case '4':
|
|
|
+ word = '归档成功';
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ word = '未知状态';
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ const data = await this.model.findById(id);
|
|
|
+ if (!data) {
|
|
|
+ throw new BusinessError(
|
|
|
+ ErrorCode.DATA_NOT_EXIST,
|
|
|
+ '添加记录----未找到数据'
|
|
|
+ );
|
|
|
+ }
|
|
|
+ const obj = {
|
|
|
+ time: moment().format('YYYY-MM-DD HH:mm:ss'),
|
|
|
+ word,
|
|
|
+ remark,
|
|
|
+ };
|
|
|
+ data.record.push(obj);
|
|
|
+ const res = await data.save();
|
|
|
+ this.toNotice(id, method);
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ async toNotice(id, code) {
|
|
|
+ const data = await this.model.findById(id);
|
|
|
+ if (!data) return;
|
|
|
+ const { user_id, admin_id, status, patent_name } = data;
|
|
|
+ const arr = [];
|
|
|
+ let content = '';
|
|
|
+ let to = '';
|
|
|
+ switch (code) {
|
|
|
+ case 'update':
|
|
|
+ content = `用户的【${patent_name}】填写了交易合同,请及时前往申请专利交易模块中进行审核`;
|
|
|
+ if (status === '1') {
|
|
|
+ to = admin_id;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case '-1':
|
|
|
+ content = `用户的【${patent_name}】未通过机构的审核,请您及时修改,重新填写合同`;
|
|
|
+ to = user_id;
|
|
|
+ break;
|
|
|
+ case '1':
|
|
|
+ content = `用户的【${patent_name}】交易合同填写已完成,请及时前往申请专利交易模块中进行审核`;
|
|
|
+ to = user_id;
|
|
|
+ break;
|
|
|
+ case '2':
|
|
|
+ content = `用户的【${patent_name}】通过机构的审核,请及时进行交易确认`;
|
|
|
+ to = user_id;
|
|
|
+ break;
|
|
|
+ case '3':
|
|
|
+ content = `用户的【${patent_name}】交易合同已确认完成,请及时前往申请专利交易模块中进行归档`;
|
|
|
+ to = user_id;
|
|
|
+ break;
|
|
|
+ case '-3':
|
|
|
+ content = `用户的【${patent_name}】交易合同归档失败`;
|
|
|
+ to = user_id;
|
|
|
+ break;
|
|
|
+ case '4':
|
|
|
+ content = `用户的【${patent_name}】交易合同归档成功`;
|
|
|
+ to = user_id;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (arr.length > 0) {
|
|
|
+ await this.notice.insertMany(arr);
|
|
|
+ } else {
|
|
|
+ const obj = { to, content };
|
|
|
+ await this.notice.create(obj);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
module.exports = Patent_transService;
|