operate_log.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  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. var sqlQuery = 'select CONVERT(GROUP_CONCAT(id) USING utf8) as id,date_format(createDate,"%Y") as year FROM operate_log where ' +
  39. 'logType=? and dataId=? GROUP BY Year(createDate) ';
  40. sequelize.query(sqlQuery,
  41. { replacements: [logType,dataId], type: sequelize.QueryTypes.SELECT }
  42. ).then(function(results) {
  43. list=results;
  44. })
  45. console.log(list);
  46. /*
  47. .spread((results, metadata) => {
  48. list=results;
  49. });
  50. .then(function(results) {
  51. list=results;
  52. })
  53. */
  54. // var list=[];
  55. // await this.sequelize.query('select CONVERT(GROUP_CONCAT(id) USING utf8) as id,date_format(createDate,"%Y") as year FROM operate_log where ' +
  56. // 'logType='+logType+' and dataId='+dataId+' GROUP BY Year(createDate) ').spread((results, metadata) => {
  57. // list=results;
  58. // });
  59. var sqlArray=[];
  60. list.forEach(function(v,i){
  61. sqlArray.push(' SELECT *,DATE_FORMAT(createDate, "%Y-%m-%d %H:%m:%S") AS createDate FROM operate_log_'+v.year+' WHERE id in ('+v.id+') ');
  62. });
  63. if(!hash.isExistence(list)){
  64. return [];
  65. }
  66. var sql=sqlArray.join(" UNION ");
  67. sql+=' ORDER BY id desc';
  68. await this.sequelize.query(sql).spread((results, metadata) => {
  69. list=results;
  70. });
  71. list.forEach(function(v,i){
  72. //list[i].createDate=moment(v.createDate, 'YYYY-MM-DD HH:mm');//moment.unix(v.createDate).format('YYYY-MM-DD HH:mm');
  73. list[i].id=hash.hashEncode(v.id.toString());
  74. });
  75. return list;
  76. };
  77. /*
  78. * 新增操作日志
  79. *
  80. * */
  81. operateLog.createOperateLog=async function(logType,dataId,operation){
  82. if(!hash.isExistence(logType)||!hash.isExistence(dataId)){
  83. return false;
  84. }
  85. var sid=hash.hashDecode(STAFF.sid);
  86. var createDate=moment(new Date()).format('YYYY-MM-DD HH:mm:ss');
  87. var sql='INSERT INTO operate_log (logType,sid,createDate,dataId,cid) values ('+logType+','+sid+',"'+createDate +'",'+dataId+','+STAFF.cid+')';
  88. var id='';
  89. await this.sequelize.query(sql).spread((results, metadata) => {
  90. id=results;
  91. });
  92. var obj = {
  93. id:id,
  94. logType: logType,
  95. username: STAFF.username,
  96. sid: sid,
  97. category: STAFF.category,
  98. createDate: createDate,
  99. operation: operation,
  100. img: STAFF.avatar,
  101. dataId: dataId,
  102. cid: STAFF.cid,
  103. };
  104. await this.create(obj);
  105. return true;
  106. };
  107. return operateLog;
  108. };