operate_log.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /**
  2. * Created by MyPC on 2019/11/5.
  3. */
  4. 'use strict';
  5. const hash= require('../class/hash');
  6. const Sequelize = require('sequelize');
  7. const Op = Sequelize.Op;
  8. var moment = require('moment');
  9. /*var d = new Date();
  10. var tableNameYear=d.getFullYear();
  11. +OPERATELOGTABLE*/
  12. module.exports = (sequelize, DataTypes) => {
  13. const operateLog = sequelize.define('operate_log', {
  14. id : {type: DataTypes.INTEGER(11), primaryKey: true, autoIncrement: true},
  15. logType: DataTypes.INTEGER,
  16. dataId: DataTypes.INTEGER,
  17. cid: DataTypes.INTEGER,
  18. sid: DataTypes.STRING,
  19. username: DataTypes.STRING,
  20. category: DataTypes.STRING,
  21. operation: DataTypes.STRING,
  22. img: DataTypes.INTEGER(15),
  23. createDate: DataTypes.DATE,
  24. }, {tableName:'operate_log_'+OPERATELOGTABLE});
  25. /*
  26. * 根据ID合集获得客户信息
  27. * */
  28. operateLog.findByCondition=async function(logType,dataId){
  29. if(!hash.isExistence(logType)||!hash.isExistence(dataId)){
  30. return []
  31. }else if(!hash.isNotANumber(logType)||!hash.isNotANumber(dataId)){
  32. return [];
  33. }
  34. //var idList = await this.findAll(condition);//获得idList
  35. //var yearList= await this.findAll(condition);//获得yearList
  36. //console.log(logType+'d'+dataId);
  37. var list=[];
  38. await this.sequelize.query('select CONVERT(GROUP_CONCAT(id) USING utf8) as id,date_format(createDate,"%Y") as year FROM operate_log where ' +
  39. 'logType='+logType+' and dataId='+dataId+' GROUP BY Year(createDate) ').spread((results, metadata) => {
  40. list=results;
  41. });
  42. var sqlArray=[];
  43. list.forEach(function(v,i){
  44. sqlArray.push(' SELECT *,DATE_FORMAT(createDate, "%Y-%m-%d %H:%m:%S") AS createDate FROM operate_log_'+v.year+' WHERE id in ('+v.id+') ');
  45. });
  46. if(!hash.isExistence(list)){
  47. return [];
  48. }
  49. var sql=sqlArray.join(" UNION ");
  50. sql+=' ORDER BY id desc';
  51. await this.sequelize.query(sql).spread((results, metadata) => {
  52. list=results;
  53. });
  54. list.forEach(function(v,i){
  55. //list[i].createDate=moment(v.createDate, 'YYYY-MM-DD HH:mm');//moment.unix(v.createDate).format('YYYY-MM-DD HH:mm');
  56. list[i].id=hash.hashEncode(v.id.toString());
  57. });
  58. return list;
  59. };
  60. /*
  61. * 新增操作日志
  62. *
  63. * */
  64. operateLog.createOperateLog=async function(logType,dataId,operation){
  65. if(!hash.isExistence(logType)||!hash.isExistence(dataId)){
  66. return false;
  67. }
  68. var sid=hash.hashDecode(STAFF.sid);
  69. var createDate=moment(new Date()).format('YYYY-MM-DD HH:mm:ss');
  70. var sql='INSERT INTO operate_log (logType,sid,createDate,dataId,cid) values ('+logType+','+sid+',"'+createDate +'",'+dataId+','+STAFF.cid+')';
  71. var id='';
  72. await this.sequelize.query(sql).spread((results, metadata) => {
  73. id=results;
  74. });
  75. var obj = {
  76. id:id,
  77. logType: logType,
  78. username: STAFF.username,
  79. sid: sid,
  80. category: STAFF.category,
  81. createDate: createDate,
  82. operation: operation,
  83. img: STAFF.avatar,
  84. dataId: dataId,
  85. cid: STAFF.cid,
  86. };
  87. await this.create(obj);
  88. return true;
  89. };
  90. return operateLog;
  91. };