import {DAO_OPTION, DEFAULT_CONTEXT} from "../@types/types"; import {requestHolder} from "../scope/RequestContextHolder"; export default function CommonDaoSupport(_option?:DAO_OPTION){ return function(target:any, propertyName:string) { let option:DAO_OPTION = { TYPE:'MYSQL',SCOPE:'request' } if(_option) Object.assign(option, _option); target[`__${propertyName}__`] = ((target, option)=>{ return { SCOPE:option.SCOPE, INVOKE:(contextID?:string)=>{ if(!contextID) contextID = DEFAULT_CONTEXT; if (option && option.SCOPE == 'default') { target[propertyName] = requestHolder.getSqlSession(DEFAULT_CONTEXT)?.dao; }else { target[propertyName] = requestHolder.getSqlSession(contextID)?.dao; } } } })(target, option); }; }