Browse Source

hrUser 关键字

master
巴林闲侠 3 years ago
parent
commit
a4fead33a1
  1. 22
      api/app/lib/controllers/member/index.js
  2. 6
      web/client/src/layout/actions/webSocket.js
  3. 10
      web/client/src/sections/auth/actions/auth.js
  4. 2
      web/client/src/sections/auth/containers/login.jsx
  5. 2
      web/client/src/utils/func.js

22
api/app/lib/controllers/member/index.js

@ -176,14 +176,32 @@ async function del (ctx) {
async function list (ctx) { async function list (ctx) {
try { try {
const { models } = ctx.fs.dc; const { models } = ctx.fs.dc;
const { judgeHoliday } = ctx.app.fs.utils
const { clickHouse } = ctx.app.fs const { clickHouse } = ctx.app.fs
const { database: pepEmis } = clickHouse.pepEmis.opts.config const { database: pepEmis } = clickHouse.pepEmis.opts.config
const { keywordTarget, keyword, limit, page, state } = ctx.query const { keywordTarget, keyword, limit, page, state } = ctx.query
let nowTime = moment()
let whereOption = [] let whereOption = []
if (state == 'dimission') { if (state == 'dimission') {
whereOption.push(`member.dimission_date IS NOT null`) whereOption.push(`member.dimission_date IS NOT null`)
} }
if (state == 'inOffice') {
const curDay = moment().format('YYYY-MM-DD')
const holidayJudge = await judgeHoliday(curDay)
if (holidayJudge) {
if (
holidayJudge.workday
&& nowTime.isAfter(moment(curDay + ' 08:30'))
&& nowTime.isBefore(moment(curDay + ' 17:30'))
) {
// 在工作日的工作时间范围
}
} else {
ctx.body = []
return
}
}
const userRes = await clickHouse.hr.query(` const userRes = await clickHouse.hr.query(`
SELECT SELECT
member.pep_user_id AS pepUserId, member.pep_user_id AS pepUserId,
@ -192,7 +210,8 @@ async function list (ctx) {
role.name AS roleName, role.name AS roleName,
role.id AS roleId, role.id AS roleId,
department.name AS depName, department.name AS depName,
department.id AS depId department.id AS depId,
vacate.id AS vacateId
FROM member FROM member
LEFT JOIN ${pepEmis}.user AS user LEFT JOIN ${pepEmis}.user AS user
ON member.pep_user_id = user.id ON member.pep_user_id = user.id
@ -209,6 +228,7 @@ async function list (ctx) {
AND vacate.start_time <= '${moment().format('YYYY-MM-DD HH:mm:ss')}' AND vacate.start_time <= '${moment().format('YYYY-MM-DD HH:mm:ss')}'
AND vacate.end_time > '${moment().format('YYYY-MM-DD HH:mm:ss')}' AND vacate.end_time > '${moment().format('YYYY-MM-DD HH:mm:ss')}'
${whereOption.length ? `WHERE ${whereOption.join(' AND ')}` : ''} ${whereOption.length ? `WHERE ${whereOption.join(' AND ')}` : ''}
${/** limit 错啦*/''}
${limit ? `LIMIT ${limit}` : ''} ${limit ? `LIMIT ${limit}` : ''}
${limit && page ? 'OFFSET ' + parseInt(limit) * parseInt(page) : ''} ${limit && page ? 'OFFSET ' + parseInt(limit) * parseInt(page) : ''}
`).toPromise() `).toPromise()

6
web/client/src/layout/actions/webSocket.js

@ -2,19 +2,19 @@
import io from 'socket.io-client'; import io from 'socket.io-client';
export const INIT_WEB_SOCKET = 'INIT_WEB_SOCKET' export const INIT_WEB_SOCKET = 'INIT_WEB_SOCKET'
export function initWebSocket ({ ioUrl, token, pomsUserId }) { export function initWebSocket ({ ioUrl, token, hrUserId }) {
if (!ioUrl) { if (!ioUrl) {
ioUrl = localStorage.getItem('apiRoot') ioUrl = localStorage.getItem('apiRoot')
ioUrl = JSON.parse(ioUrl).root ioUrl = JSON.parse(ioUrl).root
} }
if (!token) { if (!token) {
let user = sessionStorage.getItem('pomsUser') let user = sessionStorage.getItem('hrUser')
if (user) { if (user) {
user = JSON.parse(user) user = JSON.parse(user)
token = user.token token = user.token
} }
} }
if (!ioUrl || !token || !pomsUserId) { if (!ioUrl || !token || !hrUserId) {
return { return {
type: '', type: '',
} }

10
web/client/src/sections/auth/actions/auth.js

@ -5,10 +5,10 @@ import { Request } from '@peace/utils';
export const INIT_AUTH = 'INIT_AUTH'; export const INIT_AUTH = 'INIT_AUTH';
export function initAuth (userData) { export function initAuth (userData) {
const sessionUser = JSON.parse(sessionStorage.getItem('pomsUser')) const sessionUser = JSON.parse(sessionStorage.getItem('hrUser'))
const user = userData || sessionUser || {}; const user = userData || sessionUser || {};
if (user.authorized && !sessionUser) { if (user.authorized && !sessionUser) {
sessionStorage.setItem('pomsUser', JSON.stringify(user)) sessionStorage.setItem('hrUser', JSON.stringify(user))
} }
return { return {
type: INIT_AUTH, type: INIT_AUTH,
@ -45,7 +45,7 @@ export function login (username, password) {
return Request.post(ApiTable.login, { username, password, code: 'POMS' }) return Request.post(ApiTable.login, { username, password, code: 'POMS' })
.then(user => { .then(user => {
sessionStorage.setItem('pomsUser', JSON.stringify(user)); sessionStorage.setItem('hrUser', JSON.stringify(user));
return dispatch({ return dispatch({
type: LOGIN_SUCCESS, type: LOGIN_SUCCESS,
payload: { user: user }, payload: { user: user },
@ -64,13 +64,13 @@ export function login (username, password) {
export const LOGOUT = 'LOGOUT'; export const LOGOUT = 'LOGOUT';
export function logout () { export function logout () {
const user = JSON.parse(sessionStorage.getItem('pomsUser')) const user = JSON.parse(sessionStorage.getItem('hrUser'))
user && user.token ? user && user.token ?
Request.put(ApiTable.logout, { Request.put(ApiTable.logout, {
token: user.token, token: user.token,
code: 'POMS' code: 'POMS'
}) : null; }) : null;
sessionStorage.removeItem('pomsUser'); sessionStorage.removeItem('hrUser');
return { return {
type: LOGOUT type: LOGOUT
}; };

2
web/client/src/sections/auth/containers/login.jsx

@ -66,7 +66,7 @@ const Login = props => {
onSubmit={values => { onSubmit={values => {
dispatch(login(values.username, values.password)).then(res => { dispatch(login(values.username, values.password)).then(res => {
const data = res.payload.user const data = res.payload.user
dispatch(actions.layout.initWebSocket({ ioUrl: apiRoot, token: data.token, pomsUserId: data.pomsUserInfo.id })) dispatch(actions.layout.initWebSocket({ ioUrl: apiRoot, token: data.token, hrUserId: data.hrUserInfo.id }))
}) })
}} }}
getFormApi={formApi => form.current = formApi} getFormApi={formApi => form.current = formApi}

2
web/client/src/utils/func.js

@ -2,7 +2,7 @@
export const isAuthorized = (authcode) => { export const isAuthorized = (authcode) => {
if (JSON.parse(sessionStorage.getItem('user'))) { if (JSON.parse(sessionStorage.getItem('user'))) {
const { resources } = JSON.parse(sessionStorage.getItem('pomsUser')); const { resources } = JSON.parse(sessionStorage.getItem('hrUser'));
return resources.includes(authcode); return resources.includes(authcode);
} else { } else {
return false; return false;

Loading…
Cancel
Save