添加登录日志

master
wuzuowei 2 months ago
parent bc65c43626
commit f1bb8c12ad

@ -1,11 +1,12 @@
import { isUrl } from "@/microhost/util" import { isUrl } from "@/microhost/util"
import { CastMode, CacheUserData } from "../params" import { CastMode, CacheUserData } from "../params"
import {defaultSetting as cfg} from "@/config/default" import { defaultSetting as cfg } from "@/config/default"
import util from "@/microhost/common" import util from "@/microhost/common"
import { SystemData } from "@/microhost/models/system" import { SystemData } from "@/microhost/models/system"
import MicroApps from "../apps" import MicroApps from "../apps"
import { Log } from "./logger" import { Log } from "./logger"
import {history} from "umi" import { history } from "umi"
import requestaxios from 'axios';
/** /**
* *
@ -13,152 +14,156 @@ import {history} from "umi"
* @date 2023-03-27 * @date 2023-03-27
*/ */
export default class RuntimeUser { export default class RuntimeUser {
protected userData?: CacheUserData protected userData?: CacheUserData
protected cacheName: string = cfg.userInfo protected cacheName: string = cfg.userInfo
protected timeoutHours: number = 12 protected timeoutHours: number = 12
protected model: SystemData = new SystemData() protected model: SystemData = new SystemData()
get timeout() { get timeout() {
return this.timeoutHours return this.timeoutHours
} }
set timeout(hours: number){ set timeout(hours: number) {
this.timeoutHours = hours < 1 ? 1 : hours this.timeoutHours = hours < 1 ? 1 : hours
} }
get data() { get data() {
this.reload() this.reload()
return this.userData return this.userData
} }
set data(d: CacheUserData | undefined){ set data(d: CacheUserData | undefined) {
if(d){ if (d) {
d.touchTime = new Date().getTime() d.touchTime = new Date().getTime()
util.saveCache(cfg.userInfo, d) util.saveCache(cfg.userInfo, d)
} }
else{ else {
util.removeCache(cfg.userInfo) util.removeCache(cfg.userInfo)
} }
this.userData = d this.userData = d
} }
get loginId(){ get loginId() {
return this.data ? this.data.loginId : undefined return this.data ? this.data.loginId : undefined
} }
public reload = () => { public reload = () => {
let cache = util.loadCache(this.cacheName) let cache = util.loadCache(this.cacheName)
this.data = !cache ? undefined : cache this.data = !cache ? undefined : cache
} }
public isTimeout = () => { public isTimeout = () => {
if(!this.data) return true if (!this.data) return true
let touchTime = this.data.touchTime let touchTime = this.data.touchTime
if(!touchTime) return true if (!touchTime) return true
if(new Date().getTime() - touchTime >= this.timeout * 3600 * 1000) return true if (new Date().getTime() - touchTime >= this.timeout * 3600 * 1000) return true
return false return false
} }
public checkAllowed = async (redirect?: string) => { public checkAllowed = async (redirect?: string) => {
if(!this.isAllowed() || !this.isLogin()){ if (!this.isAllowed() || !this.isLogin()) {
let quick = await this.quickLogin() let quick = await this.quickLogin()
if(!quick){ if (!quick) {
this.logout(false) this.logout(false)
let url = `${cfg.url.login}${redirect && isUrl(redirect) && !redirect?.includes(cfg.url.login) ? ("?redirect=" + encodeURIComponent(redirect)) : ""}` let url = `${cfg.url.login}${redirect && isUrl(redirect) && !redirect?.includes(cfg.url.login) ? ("?redirect=" + encodeURIComponent(redirect)) : ""}`
location.href = url location.href = url
return false return false
} }
else{ else {
location.reload() location.reload()
} }
} }
return true return true
} }
protected quickLogin = async (uid?: any, pass?: any) => { protected quickLogin = async (uid?: any, pass?: any) => {
let loginId: any = uid || history.location.query?.userId let loginId: any = uid || history.location.query?.userId
let password: any = pass || history.location.query?.password let password: any = pass || history.location.query?.password
// console.log("querys", history.location.query, loginId, password) // console.log("querys", history.location.query, loginId, password)
// debugger // debugger
if(loginId){ if (loginId) {
password = password || cfg.quickLogin.defpass password = password || cfg.quickLogin.defpass
let result = await this.doLogin(loginId, password) let result = await this.doLogin(loginId, password)
return result === true return result === true
} }
return false return false
} }
public isAllowed = () => { public isAllowed = () => {
let data = util.loadCookie(cfg.allowKey) let data = util.loadCookie(cfg.allowKey)
return data == "1" return data == "1"
} }
public setAllowed = (allowed: boolean) => { public setAllowed = (allowed: boolean) => {
if(allowed){ if (allowed) {
util.saveCookie(cfg.allowKey, 1, 0) util.saveCookie(cfg.allowKey, 1, 0)
} }
else{ else {
util.removeCookie(cfg.allowKey) util.removeCookie(cfg.allowKey)
} }
} }
public isLogin = () => { public isLogin = () => {
this.reload() this.reload()
if(!this.userData) return false if (!this.userData) return false
return true return true
} }
public login = (loginId: string, accessToken: string, refreshToken: string, nickname?: string, orgname?: string, clientId?: string) => { public login = (loginId: string, accessToken: string, refreshToken: string, nickname?: string, orgname?: string, clientId?: string) => {
let d: CacheUserData = { let d: CacheUserData = {
loginId: loginId, loginId: loginId,
clientId: clientId, clientId: clientId,
refresh_token: refreshToken, refresh_token: refreshToken,
access_token: accessToken, access_token: accessToken,
nickname: nickname, nickname: nickname,
org: orgname, org: orgname,
} }
//console.log("11") //console.log("11")
this.data = d this.data = d
this.setAllowed(true) this.setAllowed(true)
} }
public logout = (jump?: boolean) => { public logout = (jump?: boolean) => {
this.data = undefined this.data = undefined
util.removeCache(this.cacheName) util.removeCache(this.cacheName)
this.setAllowed(false) this.setAllowed(false)
if(jump){ if (jump) {
location.href = cfg.url.login location.href = cfg.url.login
} }
} }
public doLogin = async (loginId: string, password: any) : Promise<string | true> => { public doLogin = async (loginId: string, password: any): Promise<string | true> => {
//debugger //debugger
let result: any = await this.model.login(loginId, password) let result: any = await this.model.login(loginId, password)
if(!result){ if (!result) {
await MicroApps.GetRuntimeLogger().failed(Log.Login) await MicroApps.GetRuntimeLogger().failed(Log.Login)
return "登录出现错误" return "登录出现错误"
} }
if(!result.success || result.success == 500){ if (!result.success || result.success == 500) {
await MicroApps.GetRuntimeLogger().failed(Log.Login) await MicroApps.GetRuntimeLogger().failed(Log.Login)
return result.error ? result.error : (result.msg ? result.msg : "登陆失败!") return result.error ? result.error : (result.msg ? result.msg : "登陆失败!")
} }
let userData = await this.model.userData(loginId) let userData = await this.model.userData(loginId)
this.login(loginId this.login(loginId
, result.access_token , result.access_token
, result.refresh_token , result.refresh_token
, userData?.Name , userData?.Name
, userData?.OrganName) , userData?.OrganName)
await MicroApps.GetRuntimeLogger().success(Log.Login, loginId) await MicroApps.GetRuntimeLogger().success(Log.Login, loginId)
let obj = {
return true OperateUser: loginId || "未登录",
} Operate: `${loginId}登陆了工艺数据管理子系统`
} }
await requestaxios.post('/Personnel/Personnelapi/LogRecording', obj)
return true
}
}

@ -25,9 +25,7 @@ const TechLoginView = () => {
current(paramValue); current(paramValue);
}, []) }, [])
const getLog = async (obj: any) => {
await request.post('/Personnel/Personnelapi/LogRecording', obj)
}
const current = (date: string) => { const current = (date: string) => {
// console.log("date", date) // console.log("date", date)
@ -52,11 +50,7 @@ const TechLoginView = () => {
utils.saveCookie('CZtoken', paramValue, month) utils.saveCookie('CZtoken', paramValue, month)
utils.saveCookie('loginName', data.loginName, month) utils.saveCookie('loginName', data.loginName, month)
doLogin(data.loginName); doLogin(data.loginName);
let obj = {
OperateUser: data.loginName || "未登录",
Operate: `${data.loginName}登陆了工艺数据管理子系统`
}
getLog(obj)
} else { } else {
message.error('获取财智系统用户信息报错!'); message.error('获取财智系统用户信息报错!');

Loading…
Cancel
Save