/** * Created by MyPC on 2019/11/5. */ 'use strict'; const hash= require('../class/hash'); const Sequelize = require('sequelize'); const Op = Sequelize.Op; module.exports = (sequelize, DataTypes) => { const serviceLog = sequelize.define('CLD_service_log', { slid : {type: DataTypes.INTEGER(11), primaryKey: true, autoIncrement: true}, status: DataTypes.INTEGER, mark: DataTypes.STRING, date: DataTypes.DATE, category: DataTypes.STRING, clientid: DataTypes.INTEGER, staffname: DataTypes.STRING, staffid: DataTypes.INTEGER, }, {}); /* * 根据客户ID合集获得服务信息 * */ serviceLog.findAllByClientid=async function(clientid,attributes){ if(clientid==undefined){ return []; } var condition={ raw:true, where: { clientid: clientid }, order: [['date', 'desc']] }; if(attributes!=undefined){ condition.attributes=attributes; } var serviceLogList = await this.findAll(condition); serviceLogList.forEach(function(v,i){ serviceLogList[i].slidKey=hash.hashEncode(serviceLogList[i].slid.toString()); }); return serviceLogList; }; /* * 根据ID获得客户信息 * */ serviceLog.findById=async function(cid,attributes){ if(!hash.isNotANumber(cid)){ cid=hash.hashDecode(cid); if(!hash.isNotANumber(cid)){ return []; } } //console.log(cid); if(hash.isExistence(attributes)){ condition.attributes=attributes; } var condition={ raw:true, where: { cid: cid }}; var detail = await this.findOne(condition); if(!hash.isExistence(detail)){ return []; } var staffDetail=[]; var sqlQuery = 'SELECT b.* FROM CLD_client_staff as a left join CLD_staff as b on (a.sid=b.sid) where a.cid=?'; await sequelize.query(sqlQuery, { replacements: [cid], type: sequelize.QueryTypes.SELECT } ).then(function(results) { staffDetail=results[0]; }) // await this.sequelize.query('SELECT b.* FROM CLD_client_staff as a left join CLD_staff as b on (a.sid=b.sid) where a.cid=7').spread((results, metadata) => { // staffDetail=results[0]; // }); detail['staff']=staffDetail; detail.cidKey=hash.hashEncode(detail.cid.toString()); detail.cid=hash.hashEncode(detail.cid.toString()); return detail; }; /* * 根据ID合集获得客户信息 * */ serviceLog.getClentListByClientname=async function(clientname,attributes){ if(!hash.isExistence(clientname)){ return []; } // var condition={ raw:true, limit:30, where: { clientname: { [Op.like]: '%'+clientname+'%' } }}; if(hash.isExistence(attributes)){ condition.attributes=attributes; }; var clientList = await this.findAll(condition); clientList.forEach(function(v,i){ clientList[i].cidKey=hash.hashEncode(clientList[i].cid.toString()); }); return clientList; }; /* * 根据ID合集获得客户信息 * */ serviceLog.getClentListByPhone=async function(phone,attributes){ if(!hash.isExistence(phone)){ return []; } // var condition={ raw:true, limit:30, where: { telephone: { [Op.like]: '%'+phone+'%' } }}; if(hash.isExistence(attributes)){ condition.attributes=attributes; }; var clientList = await this.findAll(condition); clientList.forEach(function(v,i){ clientList[i].cidKey=hash.hashEncode(clientList[i].cid.toString()); }); return clientList; }; return serviceLog; };