提交 f16d8f21 编写于 作者: ibizdev's avatar ibizdev

ibiz4j 发布系统代码

上级 35d65187
......@@ -42,6 +42,7 @@ export class AuthServiceRegister {
this.allAuthService.set('sysrolepermission', () => import('@/authservice/sys-role-permission/sys-role-permission-auth-service'));
this.allAuthService.set('sysuser', () => import('@/authservice/sys-user/sys-user-auth-service'));
this.allAuthService.set('sysauthlog', () => import('@/authservice/sys-auth-log/sys-auth-log-auth-service'));
this.allAuthService.set('sysuserauth', () => import('@/authservice/sys-user-auth/sys-user-auth-auth-service'));
this.allAuthService.set('sysopenaccess', () => import('@/authservice/sys-open-access/sys-open-access-auth-service'));
this.allAuthService.set('sysuserrole', () => import('@/authservice/sys-user-role/sys-user-role-auth-service'));
this.allAuthService.set('sysrole', () => import('@/authservice/sys-role/sys-role-auth-service'));
......
import AuthService from '../auth-service';
/**
* 账号绑定权限服务对象基类
*
* @export
* @class SysUserAuthAuthServiceBase
* @extends {AuthService}
*/
export default class SysUserAuthAuthServiceBase extends AuthService {
/**
* Creates an instance of SysUserAuthAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof SysUserAuthAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof SysUserAuthAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import SysUserAuthAuthServiceBase from './sys-user-auth-auth-service-base';
/**
* 账号绑定权限服务对象
*
* @export
* @class SysUserAuthAuthService
* @extends {SysUserAuthAuthServiceBase}
*/
export default class SysUserAuthAuthService extends SysUserAuthAuthServiceBase {
/**
* Creates an instance of SysUserAuthAuthService.
*
* @param {*} [opts={}]
* @memberof SysUserAuthAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import sysrolepermission_en_US from '@locale/lanres/entities/sys-role-permission/sys-role-permission_en_US';
import sysuser_en_US from '@locale/lanres/entities/sys-user/sys-user_en_US';
import sysauthlog_en_US from '@locale/lanres/entities/sys-auth-log/sys-auth-log_en_US';
import sysuserauth_en_US from '@locale/lanres/entities/sys-user-auth/sys-user-auth_en_US';
import sysopenaccess_en_US from '@locale/lanres/entities/sys-open-access/sys-open-access_en_US';
import sysuserrole_en_US from '@locale/lanres/entities/sys-user-role/sys-user-role_en_US';
import sysrole_en_US from '@locale/lanres/entities/sys-role/sys-role_en_US';
......@@ -228,6 +229,7 @@ export default {
sysrolepermission: sysrolepermission_en_US,
sysuser: sysuser_en_US,
sysauthlog: sysauthlog_en_US,
sysuserauth: sysuserauth_en_US,
sysopenaccess: sysopenaccess_en_US,
sysuserrole: sysuserrole_en_US,
sysrole: sysrole_en_US,
......
import sysrolepermission_zh_CN from '@locale/lanres/entities/sys-role-permission/sys-role-permission_zh_CN';
import sysuser_zh_CN from '@locale/lanres/entities/sys-user/sys-user_zh_CN';
import sysauthlog_zh_CN from '@locale/lanres/entities/sys-auth-log/sys-auth-log_zh_CN';
import sysuserauth_zh_CN from '@locale/lanres/entities/sys-user-auth/sys-user-auth_zh_CN';
import sysopenaccess_zh_CN from '@locale/lanres/entities/sys-open-access/sys-open-access_zh_CN';
import sysuserrole_zh_CN from '@locale/lanres/entities/sys-user-role/sys-user-role_zh_CN';
import sysrole_zh_CN from '@locale/lanres/entities/sys-role/sys-role_zh_CN';
......@@ -227,6 +228,7 @@ export default {
sysrolepermission: sysrolepermission_zh_CN,
sysuser: sysuser_zh_CN,
sysauthlog: sysauthlog_zh_CN,
sysuserauth: sysuserauth_zh_CN,
sysopenaccess: sysopenaccess_zh_CN,
sysuserrole: sysuserrole_zh_CN,
sysrole: sysrole_zh_CN,
......
export default {
fields: {
id: "标识",
userid: "用户标识",
identity_type: "认证类型",
identifier: "认证标识",
credential: "凭据",
},
};
\ No newline at end of file
export default {
fields: {
id: "标识",
userid: "用户标识",
identity_type: "认证类型",
identifier: "认证标识",
credential: "凭据",
},
};
\ No newline at end of file
import qs from 'qs';
import { MockAdapter } from '@/mock/mock-adapter';
const mock = MockAdapter.getInstance();
// 模拟数据
const mockDatas: Array<any> = [
];
//getwflink
mock.onGet(new RegExp(/^\/wfcore\/ibzuaa-app-web\/sysuserauths\/[a-zA-Z0-9\-\;]+\/usertasks\/[a-zA-Z0-9\-\;]+\/ways$/)).reply((config: any) => {
console.groupCollapsed("实体:sysuserauth 方法: getwflink");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status,[
{"sequenceFlowId":"dfdsfdsfdsfdsfds","sequenceFlowName":"同意",
"taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
"processInstanceId":"ddlfldldfldsfds","refViewKey":""},
{"sequenceFlowId":"ddssdfdfdfdfsfdf","sequenceFlowName":"不同意",
"taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
"processInstanceId":"ddfdsldlfdlldsf","refViewKey":"workorder_ltform_editview"}
]];
});
// getwfstep
mock.onGet(new RegExp(/^\/wfcore\/ibzuaa-app-web\/sysuserauths\/process-definitions-nodes$/)).reply((config: any) => {
console.groupCollapsed("实体:sysuserauth 方法: getwfstep");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, [
{"userTaskId":"sddfddfd-dfdf-fdfd-fdf-dfdfd",
"userTaskName":"待审",
"cnt":0,
"processDefinitionKey":"support-workorders-approve-v1",
"processDefinitionName":"工单审批流程v1"
},
{"userTaskId":"sddfddfd-dfdf-fdfd-fdf-87927",
"userTaskName":"待分配",
"cnt":3,
"processDefinitionKey":"support-workorders-approve-v1",
"processDefinitionName":"工单审批流程v1"}
]];
});
// createBatch
mock.onPost(new RegExp(/^\/sysuserauths\/batch$/)).reply((config: any) => {
console.groupCollapsed("实体:sysuserauth 方法: createBatch");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, {}];
});
// updateBatch
mock.onPut(new RegExp(/^\/sysuserauths\/batch$/)).reply((config: any) => {
console.groupCollapsed("实体:sysuserauth 方法: updateBatch");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, {}];
});
// removeBatch
mock.onDelete(new RegExp(/^\/sysuserauths\/batch$/)).reply((config: any) => {
console.groupCollapsed("实体:sysuserauth 方法: removeBatch");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, {}];
});
// Select
mock.onGet(new RegExp(/^\/sysuserauths\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
console.groupCollapsed("实体:sysuserauth 方法: Select");
console.table({url:config.url, method: config.method, data:config.data});
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
const paramArray:Array<any> = ['id'];
const matchArray:any = new RegExp(/^\/sysuserauths\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
let tempValue: any = {};
if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
paramArray.forEach((item: any, index: number) => {
Object.defineProperty(tempValue, item, {
enumerable: true,
value: matchArray[index + 1]
});
});
}
let items = mockDatas ? mockDatas : [];
let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(_items);
console.groupEnd();
console.groupEnd();
return [status, _items];
});
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// FetchDefault
mock.onGet(new RegExp(/^\/sysuserauths\/select$/)).reply((config: any) => {
console.groupCollapsed("实体:sysuserauth 方法: FetchDefault");
console.table({url:config.url, method: config.method, data:config.data});
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(mockDatas);
console.groupEnd();
console.groupEnd();
return [status, mockDatas ? mockDatas : []];
});
// FetchDefault
mock.onGet(new RegExp(/^\/sysuserauths\/select(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
console.groupCollapsed("实体:sysuserauth 方法: FetchDefault");
console.table({url:config.url, method: config.method, data:config.data});
if(config.url.includes('page')){
let url = config.url.split('?')[1];
let params = qs.parse(url);
Object.assign(config, params);
}
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
let total = mockDatas.length;
let records: Array<any> = [];
if(!config.page || !config.size){
records = mockDatas;
}else{
if((config.page-1)*config.size < total){
records = mockDatas.slice(config.page,config.size);
}
}
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(records ? records : []);
console.groupEnd();
console.groupEnd();
return [status, records ? records : []];
});
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
......@@ -10,6 +10,7 @@ import './upload/upload';
import './entity/sys-role-permissions/sys-role-permissions';
import './entity/sys-users/sys-users';
import './entity/sys-auth-logs/sys-auth-logs';
import './entity/sys-user-auths/sys-user-auths';
import './entity/sys-open-accesss/sys-open-accesss';
import './entity/sys-user-roles/sys-user-roles';
import './entity/sys-roles/sys-roles';
......
......@@ -42,6 +42,7 @@ export class EntityServiceRegister {
this.allEntityService.set('sysrolepermission', () => import('@/service/sys-role-permission/sys-role-permission-service'));
this.allEntityService.set('sysuser', () => import('@/service/sys-user/sys-user-service'));
this.allEntityService.set('sysauthlog', () => import('@/service/sys-auth-log/sys-auth-log-service'));
this.allEntityService.set('sysuserauth', () => import('@/service/sys-user-auth/sys-user-auth-service'));
this.allEntityService.set('sysopenaccess', () => import('@/service/sys-open-access/sys-open-access-service'));
this.allEntityService.set('sysuserrole', () => import('@/service/sys-user-role/sys-user-role-service'));
this.allEntityService.set('sysrole', () => import('@/service/sys-role/sys-role-service'));
......
import { Http,Util } from '@/utils';
import EntityService from '../entity-service';
/**
* 账号绑定服务对象基类
*
* @export
* @class SysUserAuthServiceBase
* @extends {EntityServie}
*/
export default class SysUserAuthServiceBase extends EntityService {
/**
* Creates an instance of SysUserAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof SysUserAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 初始化基础数据
*
* @memberof SysUserAuthServiceBase
*/
public initBasicData(){
this.APPLYDEKEY ='sysuserauth';
this.APPDEKEY = 'id';
this.APPDENAME = 'sysuserauths';
this.APPDETEXT = '';
this.APPNAME = 'web';
this.SYSTEMNAME = 'ibzuaa';
}
// 实体接口
/**
* Select接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof SysUserAuthServiceBase
*/
public async Select(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let res:any = Http.getInstance().get(`/sysuserauths/${context.sysuserauth}/select`,isloading);
return res;
}
/**
* FetchDefault接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof SysUserAuthServiceBase
*/
public async FetchDefault(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
}
}
\ No newline at end of file
import { Http,Util } from '@/utils';
import SysUserAuthServiceBase from './sys-user-auth-service-base';
/**
* 账号绑定服务对象
*
* @export
* @class SysUserAuthService
* @extends {SysUserAuthServiceBase}
*/
export default class SysUserAuthService extends SysUserAuthServiceBase {
/**
* Creates an instance of SysUserAuthService.
*
* @param {*} [opts={}]
* @memberof SysUserAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import { Environment } from '@/environments/environment';
import { UIActionTool,Util } from '@/utils';
import UIService from '../ui-service';
import { Subject } from 'rxjs';
import SysUserAuthService from '@/service/sys-user-auth/sys-user-auth-service';
import SysUserAuthAuthService from '@/authservice/sys-user-auth/sys-user-auth-auth-service';
/**
* 账号绑定UI服务对象基类
*
* @export
* @class SysUserAuthUIServiceBase
*/
export default class SysUserAuthUIServiceBase extends UIService {
/**
* 是否支持工作流
*
* @memberof SysUserAuthUIServiceBase
*/
public isEnableWorkflow:boolean = false;
/**
* 当前UI服务对应的数据服务对象
*
* @memberof SysUserAuthUIServiceBase
*/
public dataService:SysUserAuthService = new SysUserAuthService();
/**
* 所有关联视图
*
* @memberof SysUserAuthUIServiceBase
*/
public allViewMap: Map<string, Object> = new Map();
/**
* 状态值
*
* @memberof SysUserAuthUIServiceBase
*/
public stateValue: number = 0;
/**
* 状态属性
*
* @memberof SysUserAuthUIServiceBase
*/
public stateField: string = "";
/**
* 主状态属性集合
*
* @memberof SysUserAuthUIServiceBase
*/
public mainStateFields:Array<any> = [];
/**
* 主状态集合Map
*
* @memberof SysUserAuthUIServiceBase
*/
public allDeMainStateMap:Map<string,string> = new Map();
/**
* 主状态操作标识Map
*
* @memberof SysUserAuthUIServiceBase
*/
public allDeMainStateOPPrivsMap:Map<string,any> = new Map();
/**
* Creates an instance of SysUserAuthUIServiceBase.
*
* @param {*} [opts={}]
* @memberof SysUserAuthUIServiceBase
*/
constructor(opts: any = {}) {
super(opts);
this.authService = new SysUserAuthAuthService(opts);
this.initViewMap();
this.initDeMainStateMap();
this.initDeMainStateOPPrivsMap();
}
/**
* 初始化视图Map
*
* @memberof SysUserAuthUIServiceBase
*/
public initViewMap(){
}
/**
* 初始化主状态集合
*
* @memberof SysUserAuthUIServiceBase
*/
public initDeMainStateMap(){
}
/**
* 初始化主状态操作标识
*
* @memberof SysUserAuthUIServiceBase
*/
public initDeMainStateOPPrivsMap(){
}
/**
* 获取指定数据的重定向页面
*
* @param srfkey 数据主键
* @param isEnableWorkflow 重定向视图是否需要处理流程中的数据
* @memberof SysUserAuthUIServiceBase
*/
public async getRDAppView(srfkey:string,isEnableWorkflow:boolean){
this.isEnableWorkflow = isEnableWorkflow;
// 进行数据查询
let result:any = await this.dataService.Get({sysuserauth:srfkey});
const curData:any = result.data;
//判断当前数据模式,默认为true,todo
const iRealDEModel:boolean = true;
let bDataInWF:boolean = false;
let bWFMode:any = false;
// 计算数据模式
if (this.isEnableWorkflow) {
bDataInWF = await this.dataService.testDataInWF({stateValue:this.stateValue,stateField:this.stateField},curData);
if (bDataInWF) {
bDataInWF = true;
bWFMode = await this.dataService.testUserExistWorklist(null,curData);
}
}
let strPDTViewParam:string = await this.getDESDDEViewPDTParam(curData, bDataInWF, bWFMode);
//若不是当前数据模式,处理strPDTViewParam,todo
//查找视图
//返回视图
return this.allViewMap.get(strPDTViewParam);
}
/**
* 获取实际的数据类型
*
* @memberof SysUserAuthUIServiceBase
*/
public getRealDEType(entity:any){
}
/**
* 获取实体单数据实体视图预定义参数
*
* @param curData 当前数据
* @param bDataInWF 是否有数据在工作流中
* @param bWFMode 是否工作流模式
* @memberof SysUserAuthUIServiceBase
*/
public async getDESDDEViewPDTParam(curData:any, bDataInWF:boolean, bWFMode:boolean){
let strPDTParam:string = '';
if (bDataInWF) {
// 判断数据是否在流程中
}
//多表单,todo
const multiFormDEField:string|null =null;
if (multiFormDEField) {
const objFormValue:string = curData[multiFormDEField];
if(!Environment.isAppMode){
return 'MOBEDITVIEW:'+objFormValue;
}
return 'EDITVIEW:'+objFormValue;
}
if(!Environment.isAppMode){
if(this.getDEMainStateTag(curData)){
return `MOBEDITVIEW:MSTAG:${ this.getDEMainStateTag(curData)}`;
}
return 'MOBEDITVIEW:';
}
if(this.getDEMainStateTag(curData)){
return `EDITVIEW:MSTAG:${ this.getDEMainStateTag(curData)}`;
}
return 'EDITVIEW:';
}
/**
* 获取数据对象的主状态标识
*
* @param curData 当前数据
* @memberof SysUserAuthUIServiceBase
*/
public getDEMainStateTag(curData:any){
if(this.mainStateFields.length === 0) return null;
this.mainStateFields.forEach((singleMainField:any) =>{
if(!(singleMainField in curData)){
console.warn(`当前数据对象不包含属性${singleMainField},可能会发生错误`);
}
})
for (let i = 0; i <= 1; i++) {
let strTag:string = (curData[this.mainStateFields[0]])?(i == 0) ? curData[this.mainStateFields[0]] : "":"";
if (this.mainStateFields.length >= 2) {
for (let j = 0; j <= 1; j++) {
let strTag2:string = (curData[this.mainStateFields[1]])?`${strTag}__${(j == 0) ? curData[this.mainStateFields[1]] : ""}`:strTag;
if (this.mainStateFields.length >= 3) {
for (let k = 0; k <= 1; k++) {
let strTag3:string = (curData[this.mainStateFields[2]])?`${strTag2}__${(k == 0) ? curData[this.mainStateFields[2]] : ""}`:strTag2;
// 判断是否存在
return this.allDeMainStateMap.get(strTag3);
}
}else{
return this.allDeMainStateMap.get(strTag2);
}
}
}else{
return this.allDeMainStateMap.get(strTag);
}
}
return null;
}
/**
* 获取数据对象当前操作标识
*
* @param data 当前数据
* @memberof SysUserAuthUIServiceBase
*/
public getDEMainStateOPPrivs(data:any){
if(this.getDEMainStateTag(data)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(data) as string));
}else{
return null;
}
}
/**
* 获取数据对象所有的操作标识
*
* @param data 当前数据
* @memberof SysUserAuthUIServiceBase
*/
public getAllOPPrivs(data:any){
return this.authService.getOPPrivs(this.getDEMainStateOPPrivs(data));
}
}
\ No newline at end of file
import SysUserAuthUIServiceBase from './sys-user-auth-ui-service-base';
/**
* 账号绑定UI服务对象
*
* @export
* @class SysUserAuthUIService
*/
export default class SysUserAuthUIService extends SysUserAuthUIServiceBase {
/**
* Creates an instance of SysUserAuthUIService.
*
* @param {*} [opts={}]
* @memberof SysUserAuthUIService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
......@@ -42,6 +42,7 @@ export class UIServiceRegister {
this.allUIService.set('sysrolepermission', () => import('@/uiservice/sys-role-permission/sys-role-permission-ui-service'));
this.allUIService.set('sysuser', () => import('@/uiservice/sys-user/sys-user-ui-service'));
this.allUIService.set('sysauthlog', () => import('@/uiservice/sys-auth-log/sys-auth-log-ui-service'));
this.allUIService.set('sysuserauth', () => import('@/uiservice/sys-user-auth/sys-user-auth-ui-service'));
this.allUIService.set('sysopenaccess', () => import('@/uiservice/sys-open-access/sys-open-access-ui-service'));
this.allUIService.set('sysuserrole', () => import('@/uiservice/sys-user-role/sys-user-role-ui-service'));
this.allUIService.set('sysrole', () => import('@/uiservice/sys-role/sys-role-ui-service'));
......
......@@ -19,6 +19,10 @@ zuul:
path: /sysauthlogs/**
serviceId: ${ibiz.ref.service.ibzuaa-api:ibzuaa-api}
stripPrefix: false
sys_user_auth:
path: /sysuserauths/**
serviceId: ${ibiz.ref.service.ibzuaa-api:ibzuaa-api}
stripPrefix: false
sys_open_access:
path: /sysopenaccesses/**
serviceId: ${ibiz.ref.service.ibzuaa-api:ibzuaa-api}
......
......@@ -27,6 +27,7 @@ import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.baomidou.mybatisplus.annotation.*;
import cn.ibizlab.util.domain.EntityMP;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
/**
* 实体[认证日志]
......
......@@ -27,6 +27,7 @@ import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.baomidou.mybatisplus.annotation.*;
import cn.ibizlab.util.domain.EntityMP;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
/**
* 实体[第三方认证平台]
......
......@@ -27,6 +27,7 @@ import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.baomidou.mybatisplus.annotation.*;
import cn.ibizlab.util.domain.EntityMP;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
/**
* 实体[权限/资源]
......
......@@ -27,6 +27,7 @@ import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.baomidou.mybatisplus.annotation.*;
import cn.ibizlab.util.domain.EntityMP;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
/**
* 实体[系统角色]
......
......@@ -27,6 +27,7 @@ import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.baomidou.mybatisplus.annotation.*;
import cn.ibizlab.util.domain.EntityMP;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
/**
* 实体[角色权限关系]
......
......@@ -27,6 +27,7 @@ import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.baomidou.mybatisplus.annotation.*;
import cn.ibizlab.util.domain.EntityMP;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
/**
* 实体[系统用户]
......
......@@ -27,6 +27,7 @@ import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.baomidou.mybatisplus.annotation.*;
import cn.ibizlab.util.domain.EntityMP;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
/**
* 实体[账号绑定]
......
......@@ -27,6 +27,7 @@ import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.baomidou.mybatisplus.annotation.*;
import cn.ibizlab.util.domain.EntityMP;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
/**
* 实体[用户角色关系]
......
......@@ -28,6 +28,14 @@
"datascope":[{"id":"all","name":"全部数据"}]
}
, {
"dename":"SysUserAuth",
"delogicname":"账号绑定",
"sysmoudle":{"id":"UAA","name":"uaa"},
"dedataset":[{"id":"Default" , "name":"DEFAULT"}],
"deaction":[{"id":"Create" , "name":"Create" , "type":"BUILTIN" },{"id":"Update" , "name":"Update" , "type":"BUILTIN" },{"id":"Remove" , "name":"Remove" , "type":"BUILTIN" },{"id":"Get" , "name":"Get" , "type":"BUILTIN" },{"id":"GetDraft" , "name":"GetDraft" , "type":"BUILTIN" },{"id":"CheckKey" , "name":"CheckKey" , "type":"BUILTIN" },{"id":"Save" , "name":"Save" , "type":"BUILTIN" }],
"datascope":[{"id":"all","name":"全部数据"}]
}
, {
"dename":"SysOpenAccess",
"delogicname":"第三方认证平台",
"sysmoudle":{"id":"UAA","name":"uaa"},
......
......@@ -87,6 +87,7 @@
<alibaba-seata.version>1.3.0</alibaba-seata.version>
<oracle.version>11.2.0.3</oracle.version>
<postgresql.version>42.2.6</postgresql.version>
</properties>
......@@ -337,6 +338,12 @@
<artifactId>ojdbc6</artifactId>
<version>${oracle.version}</version>
</dependency>
<!-- PostgreSQL驱动包 -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.version}</version>
</dependency>
<!-- MySQL驱动包 -->
<dependency>
<groupId>mysql</groupId>
......
package cn.ibizlab.api.dto;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.math.BigInteger;
import java.util.Map;
import java.util.HashMap;
import java.io.Serializable;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.fastjson.annotation.JSONField;
import cn.ibizlab.util.domain.DTOBase;
import cn.ibizlab.util.domain.DTOClient;
import lombok.Data;
/**
* 服务DTO对象[SysUserAuthDTO]
*/
@Data
public class SysUserAuthDTO extends DTOBase implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 属性 [AUTHID]
*
*/
@JSONField(name = "id")
@JsonProperty("id")
private String id;
/**
* 属性 [USERID]
*
*/
@JSONField(name = "userid")
@JsonProperty("userid")
private String userid;
/**
* 属性 [IDENTITY_TYPE]
*
*/
@JSONField(name = "identity_type")
@JsonProperty("identity_type")
private String identityType;
/**
* 属性 [IDENTIFIER]
*
*/
@JSONField(name = "identifier")
@JsonProperty("identifier")
private String identifier;
/**
* 属性 [CREDENTIAL]
*
*/
@JSONField(name = "credential")
@JsonProperty("credential")
private String credential;
/**
* 设置 [USERID]
*/
public void setUserid(String userid){
this.userid = userid ;
this.modify("userid",userid);
}
/**
* 设置 [IDENTITY_TYPE]
*/
public void setIdentityType(String identityType){
this.identityType = identityType ;
this.modify("identity_type",identityType);
}
/**
* 设置 [IDENTIFIER]
*/
public void setIdentifier(String identifier){
this.identifier = identifier ;
this.modify("identifier",identifier);
}
/**
* 设置 [CREDENTIAL]
*/
public void setCredential(String credential){
this.credential = credential ;
this.modify("credential",credential);
}
}
package cn.ibizlab.api.mapping;
import org.mapstruct.*;
import cn.ibizlab.core.uaa.domain.SysUserAuth;
import cn.ibizlab.api.dto.SysUserAuthDTO;
import cn.ibizlab.util.domain.MappingBase;
import org.mapstruct.factory.Mappers;
@Mapper(componentModel = "spring", uses = {},implementationName="apiSysUserAuthMapping",
nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE,
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface SysUserAuthMapping extends MappingBase<SysUserAuthDTO, SysUserAuth> {
}
package cn.ibizlab.api.rest;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.math.BigInteger;
import java.util.HashMap;
import lombok.extern.slf4j.Slf4j;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.ServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cglib.beans.BeanCopier;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.http.HttpStatus;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.util.StringUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.access.prepost.PostAuthorize;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import cn.ibizlab.api.dto.*;
import cn.ibizlab.api.mapping.*;
import cn.ibizlab.core.uaa.domain.SysUserAuth;
import cn.ibizlab.core.uaa.service.ISysUserAuthService;
import cn.ibizlab.core.uaa.filter.SysUserAuthSearchContext;
import cn.ibizlab.util.annotation.VersionCheck;
@Slf4j
@Api(tags = {"账号绑定" })
@RestController("api-sysuserauth")
@RequestMapping("")
public class SysUserAuthResource {
@Autowired
public ISysUserAuthService sysuserauthService;
@Autowired
@Lazy
public SysUserAuthMapping sysuserauthMapping;
}
package cn.ibizlab.util.client;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
@Component
......@@ -20,4 +21,9 @@ public class IBZWFFallback implements IBZWFFeignClient {
public Boolean deployBpmnFile(List<Map<String, Object>> bpmnfiles) {
return null;
}
@Override
public JSONObject wfstart(String system, String appname, String entity, String businessKey, JSONObject instance) {
return null;
}
}
......@@ -2,6 +2,7 @@ package cn.ibizlab.util.client;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
@FeignClient(value = "${ibiz.ref.service.wf:ibzwf-api}",fallback = IBZWFFallback.class)
......@@ -18,4 +19,9 @@ public interface IBZWFFeignClient
@RequestMapping(method = RequestMethod.POST, value = "/deploybpmn")
Boolean deployBpmnFile(@RequestBody List<Map<String,Object>> bpmnfiles);
@RequestMapping(method = RequestMethod.POST, value = "/{system}-app-{appname}/{entity}/{businessKey}/process-instances")
JSONObject wfstart(@PathVariable("system") String system, @PathVariable("appname") String appname,
@PathVariable("entity") String entity,
@PathVariable("businessKey") String businessKey, @RequestBody JSONObject instance);
}
......@@ -18,59 +18,174 @@ import com.alibaba.fastjson.JSONObject;
@JsonIgnoreProperties(ignoreUnknown = true)
public class AuthenticationUser implements UserDetails
{
public AuthenticationUser()
{
}
public AuthenticationUser(){}
/**
* 用戶标识
*/
private String userid;
/**
* 用户全局名
*/
private String username;
/**
* 用户姓名
*/
private String personname;
private String usercode;
/**
* 登录名
*/
private String loginname;
/**
* 用户工号
*/
private String usercode;
/**
* 登录密码
*/
private String password;
/**
* 区属
*/
private String domain;
/**
* 部门标识
*/
private String mdeptid;
/**
* 部门编码
*/
private String mdeptcode;
/**
* 部门名称
*/
private String mdeptname;
/**
* 业务编码
*/
private String bcode;
/**
* 岗位标识
*/
private String postid;
/**
* 岗位代码
*/
private String postcode;
/**
* 岗位名称
*/
private String postname;
/**
* 单位标识
*/
private String orgid;
/**
* 单位编码
*/
private String orgcode;
/**
* 单位名称
*/
private String orgname;
/**
* 昵称别名
*/
private String nickname;
/**
* 邮箱
*/
private String email;
/**
* 社交账号
*/
private String avatar;
/**
* 电话
*/
private String phone;
private String reserver;
/**
* 照片
*/
private String usericon;
/**
* 性别
*/
private String sex;
/**
* 出生日期
*/
private Timestamp birthday;
/**
* 证件号码
*/
private String certcode;
/**
* 地址
*/
private String addr;
/**
* 主题
*/
private String theme;
/**
* 字号
*/
private String fontsize;
/**
* 语言
*/
private String lang;
/**
* 备注
*/
private String memo;
/**
* 保留字段
*/
private String reserver;
/**
* 用户上下文参数
*/
private Map <String,Object> sessionParams;
/**
* 用户权限资源
*/
@JsonIgnore
private Collection<GrantedAuthority> authorities;
/**
* 是否为超级管理员
*/
private int superuser;
/**
* 用户权限资源
*/
private JSONObject permissionList;
private String orglevel;//单位级别
private String deptlevel;//部门级别
/**
* 用户上下文参数
*/
@JsonIgnore
private Map<String,Object> userSessionParam;//用户自定义session值
private Map<String, Set<String>> orgInfo;//上下级组织信息
private Map<String,Object> userSessionParam;
/**
* 当前用户上下级组织信息
*/
private Map<String, Set<String>> orgInfo;
/**
* 上级组织
*/
private String porg;
/**
* 下级组织
*/
private String sorg;
/**
* 上级部门
*/
private String pdept;
/**
* 下级部门
*/
private String sdept;
@JsonIgnore
@Override
public boolean isAccountNonExpired() {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册