package com.cloudstore.dev.api.service ;
import com.alibaba.fastjson.JSON ;
import com.alibaba.fastjson.JSONObject ;
import com.api.system.language.util.ParseLangDataUtil ;
import com.cloudstore.dev.api.bean.CodeTimeBean ;
import com.cloudstore.dev.api.util.EMManager ;
import com.cloudstore.dev.api.util.Util_DataMap ;
import com.cloudstore.dev.api.util.Util_public ;
import com.cloudstore.eccom.common.WeaIndexManager ;
import com.cloudstore.eccom.constant.WeaMessageCode ;
import com.cloudstore.eccom.core.WeaDataChange ;
import com.cloudstore.eccom.result.WeaResultMsg ;
import com.cloudstore.mobile.constant.AuthTypeConstant ;
import com.cloudstore.mobile.entity.Emobile7Response ;
import com.cloudstore.mobile.sso.util.Emobile7SsoUtil ;
import com.cloudstore.mobile.sso.util.TokenStore ;
import com.engine.common.util.ParamUtil ;
import com.engine.common.util.ServiceUtil ;
import com.engine.dito.ssologin.service.MobileSsoLoginService ;
import com.engine.dito.ssologin.service.impl.MobileSsoLoginServiceImpl ;
import com.engine.msgcenter.bean.WeaVavleType ;
import com.engine.msgcenter.util.ValveConfigManager ;
import com.engine.systeminfo.util.AppSyncUtil ;
import com.engine.systeminfo.util.IpTablesUtil ;
import com.google.common.collect.Maps ;
import java.io.* ;
import java.net.URL ;
import java.net.URLConnection ;
import java.net.URLDecoder ;
import java.util.* ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
import javax.ws.rs.GET ;
import javax.ws.rs.POST ;
import javax.ws.rs.Path ;
import javax.ws.rs.Produces ;
import javax.ws.rs.core.Context ;
import org.apache.commons.lang.StringUtils ;
import org.apache.commons.logging.Log ;
import org.apache.commons.logging.LogFactory ;
import weaver.common.util.string.StringUtil ;
import weaver.conn.RecordSet ;
import weaver.general.PasswordUtil ;
import weaver.general.ThreadVarLanguage ;
import weaver.general.Util ;
import weaver.hrm.HrmUserVarify ;
import weaver.hrm.OnLineMonitor ;
import weaver.hrm.User ;
import weaver.hrm.resource.ResourceComInfo ;
import weaver.mobile.plugin.ecology.service.HrmResourceService ;
import weaver.rsa.security.RSA ;
import weaver.systeminfo.SystemEnv ;
@Path ( "/ec/dev/app" )
public class ServiceEC {
private static volatile boolean inited ;
private static final Log logger = LogFactory . getLog ( ServiceEC . class ) ;
public MobileSsoLoginService getMobileSsoLoginService ( ) {
return ServiceUtil . getService ( MobileSsoLoginServiceImpl . class ) ;
}
@POST
@Path ( "/join" )
@Produces ( { "text/plain" } )
public String systemJoin ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
Map < String , String > map = WeaDataChange . getRequestToMapStr ( paramHttpServletRequest ) ;
if ( map ! = null ) {
map . put ( "ec_version" , EMManager . getEcologyVersion ( ) ) ;
map . put ( "ec_iscluster" , EMManager . getEcologyCluster ( ) ? "1" : "0" ) ;
}
Util_DataMap . clearVal ( "access_token" ) ;
RSA rSA = new RSA ( ) ;
if ( logger . isDebugEnabled ( ) ) {
logger . debug ( "systemJoin" + map ) ;
}
String str = RSA . getRSA_PUB ( ) ;
map . put ( "rsa_pub" , str ) ;
EMManager eMManager = new EMManager ( ) ;
if ( eMManager . findEnableCount ( ) > 1 ) {
return weaResultMsg . fail ( "" + SystemEnv . getHtmlLabelName ( 10004763 , ThreadVarLanguage . getLang ( ) ) + "" ) . toString ( ) ;
}
JSONObject jSONObject = eMManager . systemJoin ( map , map . get ( "em_url" ) ) ;
if ( "0" . equals ( jSONObject . getString ( "errcode" ) ) ) {
String str1 = jSONObject . getString ( "ec_id" ) ;
String str2 = jSONObject . getString ( "accesstoken" ) ;
Map map1 = new HashMap < > ( ) ;
if ( StringUtils . isNotBlank ( str1 ) ) {
map1 = EMManager . getEmobileInfo ( str1 ) ;
}
map . put ( "ec_id" , str1 ) ;
map . put ( "accesstoken" , str2 ) ;
map . put ( "ec_version" , EMManager . getEcologyVersion ( ) ) ;
map . put ( "ec_iscluster" , EMManager . getEcologyCluster ( ) ? "1" : "0" ) ;
boolean bool = eMManager . saveOrupdateEMData ( map ) ;
weaResultMsg . put ( "savedata" , Boolean . valueOf ( bool ) ) ;
eMManager . refreshDataFormDB ( ) ;
Util_DataMap . setVal ( "ec_id" , str1 ) ;
Util_DataMap . setVal ( "accesstoken" , str2 ) ;
weaResultMsg . setDatas ( jSONObject ) ;
User user = HrmUserVarify . getUser ( paramHttpServletRequest , paramHttpServletResponse ) ;
try {
String str3 = Util . getIpAddr ( paramHttpServletRequest ) ;
EMManager . afterEmobileJoin ( EMManager . buildBizLogContext ( str3 , user , map1 , ParamUtil . request2Map ( paramHttpServletRequest ) ) ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
}
return weaResultMsg . success ( SystemEnv . getHtmlLabelName ( 16746 , user . getLanguage ( ) ) ) . toString ( ) ;
}
return weaResultMsg . fail ( jSONObject . getString ( "errmsg" ) , 0 ) . toString ( ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
return weaResultMsg . toString ( ) ;
}
}
@GET
@Path ( "/heartbeat" )
@Produces ( { "text/plain" } )
public String systemHeartbeat ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( true ) ;
weaResultMsg . success ( "ok" ) ;
return weaResultMsg . toString ( ) ;
}
@GET
@Path ( "/rejoin" )
@Produces ( { "text/plain" } )
public String systemReJoin ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
Map < String , String > map = WeaDataChange . getRequestToMapStr ( paramHttpServletRequest ) ;
Util_DataMap . clearVal ( "access_token" ) ;
RSA rSA = new RSA ( ) ;
String str1 = Util_DataMap . getVal ( "ec_id" ) ;
String str2 = Util_DataMap . getVal ( "accesstoken" ) ;
Map map1 = new HashMap < > ( ) ;
if ( StringUtils . isNotBlank ( str1 ) )
map1 = EMManager . getEmobileInfo ( str1 ) ;
if ( StringUtil . isNotNullAndEmpty ( str1 ) ) {
map . put ( "ec_id" , str1 ) ;
map . put ( "accesstoken" , str2 ) ;
}
String str3 = RSA . getRSA_PUB ( ) ;
map . put ( "rsa_pub" , str3 ) ;
Util_DataMap . setVal ( "rsa_pub" , str3 ) ;
EMManager eMManager = new EMManager ( ) ;
JSONObject jSONObject = eMManager . systemJoin ( map ) ;
if ( "0" . equals ( jSONObject . getString ( "errcode" ) ) ) {
str1 = jSONObject . getString ( "ec_id" ) ;
str2 = jSONObject . getString ( "accesstoken" ) ;
map . put ( "ec_id" , str1 ) ;
map . put ( "accesstoken" , str2 ) ;
eMManager . saveOrupdateEMData ( map ) ;
eMManager . refreshDataFormDB ( ) ;
Util_DataMap . setVal ( "ec_id" , str1 ) ;
Util_DataMap . setVal ( "accesstoken" , str2 ) ;
weaResultMsg . setDatas ( jSONObject ) ;
User user = HrmUserVarify . getUser ( paramHttpServletRequest , paramHttpServletResponse ) ;
try {
String str = Util . getIpAddr ( paramHttpServletRequest ) ;
EMManager . afterEmobileJoin ( EMManager . buildBizLogContext ( str , user , map1 , ParamUtil . request2Map ( paramHttpServletRequest ) ) ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
}
return weaResultMsg . success ( SystemEnv . getHtmlLabelName ( 16746 , user . getLanguage ( ) ) ) . toString ( ) ;
}
return weaResultMsg . fail ( jSONObject . getString ( "errmsg" ) , 1 ) . toString ( ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
return weaResultMsg . toString ( ) ;
}
}
@GET
@Path ( "/test" )
@Produces ( { "text/plain" } )
public String test ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
int i = Util . getIntValue ( paramHttpServletRequest . getParameter ( "timeZoneOffset" ) , - 100 ) ;
if ( i ! = - 100 ) {
int k = i / 60 ;
String str1 = "GMT" + ( ( k > 0 ) ? ( "-" + k ) : ( "+" + ( - 1 * k ) ) ) ;
paramHttpServletRequest . getSession ( ) . setAttribute ( "timeZone" , str1 ) ;
}
int j = Util . getIntValue ( EMManager . checkEMFilterInWebXml ( paramHttpServletRequest ) , 0 ) ;
if ( j = = 0 & & StringUtils . isNotBlank ( paramHttpServletRequest . getParameter ( "em_auth_code" ) ) ) {
return weaResultMsg . fail ( "" + SystemEnv . getHtmlLabelName ( 10004764 , ThreadVarLanguage . getLang ( ) ) + "," + SystemEnv . getHtmlLabelName ( 504523 , ThreadVarLanguage . getLang ( ) ) + "" ) . toString ( ) ;
}
User user = null ;
String authCode = paramHttpServletRequest . getParameter ( "authCode" ) ;
if ( StringUtils . isNotEmpty ( authCode ) ) {
user = ssoLoginByAuthCode ( paramHttpServletRequest ) ;
} else {
user = HrmUserVarify . getUser ( paramHttpServletRequest , paramHttpServletResponse ) ;
}
Map map = EMManager . getEMData ( ) ;
String str = ( String ) map . get ( "em_url" ) ;
if ( user ! = null ) {
weaResultMsg . put ( "em_corpid" , map . get ( "em_corpid" ) ) ;
weaResultMsg . put ( "languageType" , user . getLanguage ( ) ) ;
weaResultMsg . put ( "jemUrl" , paramHttpServletRequest . getSession ( ) . getAttribute ( "jemUrl" ) ) ;
weaResultMsg . put ( "m_access_token" , paramHttpServletRequest . getAttribute ( "m_access_token" ) ) ;
weaResultMsg . put ( "m_refresh_token" , paramHttpServletRequest . getAttribute ( "m_refresh_token" ) ) ;
weaResultMsg . put ( "mobileTokenName" , AuthTypeConstant . MOBILE_TOKEN_NAME ) ;
}
weaResultMsg . put ( "ec_id" , map . get ( "ec_id" ) ) ;
weaResultMsg . put ( "download" , "emdownload" ) ;
weaResultMsg . put ( "filtering" , Integer . valueOf ( j ) ) ;
weaResultMsg . put ( "costcode" , Integer . valueOf ( Util . getIntValue ( Util . null2String ( paramHttpServletRequest . getAttribute ( "@is_cost_code" ) ) , 0 ) ) ) ;
weaResultMsg . put ( "em_url_open" , map . get ( "em_url_open" ) ) ;
if ( IpTablesUtil . exist ( paramHttpServletRequest . getRequestURL ( ) . toString ( ) ) ) {
weaResultMsg . put ( "em_url_open" , str ) ;
}
weaResultMsg . put ( "ec_url" , IpTablesUtil . getRequestAddress ( paramHttpServletRequest ) ) ;
weaResultMsg . success ( "ok" ) ;
} catch ( Exception exception ) {
logger . info ( "test_error" ) ;
exception . printStackTrace ( ) ;
logger . error ( "test:" + exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
}
logger . info ( weaResultMsg . toString ( ) ) ;
return weaResultMsg . toString ( ) ;
}
/ * *
* 通 过 authCode 获 取 人 员 信 息 登 录
* /
private User ssoLoginByAuthCode ( HttpServletRequest request ) {
String authCode = request . getParameter ( "authCode" ) ;
HashMap < String , Object > paramMap = new HashMap < > ( ) ;
paramMap . put ( "auth_code" , authCode ) ;
logger . info ( "ssoLogin_auth_code: " + authCode ) ;
MobileSsoLoginService mobileSsoLoginService = getMobileSsoLoginService ( ) ;
Map < String , Object > userInfo = mobileSsoLoginService . getUserInfo ( paramMap , null ) ;
Map < String , Object > userInfoData = ( HashMap < String , Object > ) userInfo . get ( "data" ) ;
String userCode = ( String ) userInfoData . get ( "userCode" ) ;
logger . info ( "userCode:" + userCode ) ;
if ( StringUtils . isNotEmpty ( userCode ) ) {
RecordSet rs = new RecordSet ( ) ;
String sql = " select * from hrmresource where workcode=?" ;
rs . executeQuery ( sql , userCode ) ;
if ( rs . next ( ) ) {
User user = new User ( ) ;
String languageidweaver = "8" ;
user . setUid ( rs . getInt ( "id" ) ) ;
user . setLoginid ( rs . getString ( "loginid" ) ) ;
user . setFirstname ( rs . getString ( "firstname" ) ) ;
user . setLastname ( rs . getString ( "lastname" ) ) ;
user . setAliasname ( rs . getString ( "aliasname" ) ) ;
user . setTitle ( rs . getString ( "title" ) ) ;
user . setTitlelocation ( rs . getString ( "titlelocation" ) ) ;
user . setSex ( rs . getString ( "sex" ) ) ;
user . setPwd ( rs . getString ( "password" ) ) ;
languageidweaver = rs . getString ( "systemlanguage" ) ;
user . setLanguage ( Util . getIntValue ( languageidweaver , 0 ) ) ;
user . setTelephone ( rs . getString ( "telephone" ) ) ;
user . setMobile ( rs . getString ( "mobile" ) ) ;
user . setMobilecall ( rs . getString ( "mobilecall" ) ) ;
user . setEmail ( rs . getString ( "email" ) ) ;
user . setCountryid ( rs . getString ( "countryid" ) ) ;
user . setLocationid ( rs . getString ( "locationid" ) ) ;
user . setResourcetype ( rs . getString ( "resourcetype" ) ) ;
user . setStartdate ( rs . getString ( "startdate" ) ) ;
user . setEnddate ( rs . getString ( "enddate" ) ) ;
user . setContractdate ( rs . getString ( "contractdate" ) ) ;
user . setJobtitle ( rs . getString ( "jobtitle" ) ) ;
user . setJobgroup ( rs . getString ( "jobgroup" ) ) ;
user . setJobactivity ( rs . getString ( "jobactivity" ) ) ;
user . setJoblevel ( rs . getString ( "joblevel" ) ) ;
user . setSeclevel ( rs . getString ( "seclevel" ) ) ;
user . setUserDepartment ( Util . getIntValue ( rs . getString ( "departmentid" ) , 0 ) ) ;
user . setUserSubCompany1 ( Util . getIntValue ( rs . getString ( "subcompanyid1" ) , 0 ) ) ;
user . setUserSubCompany2 ( Util . getIntValue ( rs . getString ( "subcompanyid2" ) , 0 ) ) ;
user . setUserSubCompany3 ( Util . getIntValue ( rs . getString ( "subcompanyid3" ) , 0 ) ) ;
user . setUserSubCompany4 ( Util . getIntValue ( rs . getString ( "subcompanyid4" ) , 0 ) ) ;
user . setManagerid ( rs . getString ( "managerid" ) ) ;
user . setAssistantid ( rs . getString ( "assistantid" ) ) ;
user . setPurchaselimit ( rs . getString ( "purchaselimit" ) ) ;
user . setCurrencyid ( rs . getString ( "currencyid" ) ) ;
user . setLastlogindate ( rs . getString ( "currentdate" ) ) ;
user . setLogintype ( "1" ) ;
user . setAccount ( rs . getString ( "account" ) ) ;
user . setLoginip ( request . getRemoteAddr ( ) ) ;
request . getSession ( true ) . setMaxInactiveInterval ( 60 * 60 * 24 ) ;
request . getSession ( true ) . setAttribute ( "weaver_user@bean" , user ) ;
request . getSession ( true ) . setAttribute ( "moniter" , new OnLineMonitor ( "" + user . getUID ( ) , user . getLoginip ( ) ) ) ;
return user ;
}
}
return null ;
}
@POST
@Path ( "/refreshToken" )
@Produces ( { "text/plain" } )
public String refreshToken ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
String str = paramHttpServletRequest . getParameter ( "m_refresh_token" ) ;
TokenStore tokenStore = new TokenStore ( ) ;
try {
Object object = tokenStore . get ( str , 2 ) ;
if ( Objects . nonNull ( object ) ) {
weaResultMsg . put ( "m_access_token" , tokenStore . generateAccessToken ( object ) ) ;
return weaResultMsg . success ( ) . toString ( ) ;
}
logger . error ( "无效或者过期的refresh_token>>>>" + str ) ;
weaResultMsg . put ( "m_refresh_token" , str ) ;
if ( Boolean . TRUE . toString ( ) . equals ( Emobile7SsoUtil . getParameter ( paramHttpServletRequest , "_ec_ismobile" ) ) ) {
weaResultMsg . fail ( "" + SystemEnv . getHtmlLabelName ( 10004765 , ThreadVarLanguage . getLang ( ) ) + "refresh_token" ) ;
weaResultMsg . setCode ( WeaMessageCode . BS_NOT_FOUND . getCode ( ) ) ;
return weaResultMsg . toString ( ) ;
}
return weaResultMsg . fail ( "" + SystemEnv . getHtmlLabelName ( 10004765 , ThreadVarLanguage . getLang ( ) ) + "refresh_token" ) . toString ( ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
return weaResultMsg . toString ( ) ;
}
}
public String verify ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
String str1 = paramHttpServletRequest . getParameter ( "username" ) ;
String str2 = paramHttpServletRequest . getParameter ( "pwd" ) ;
int i = Util . getIntValue ( paramHttpServletRequest . getParameter ( "time" ) ) ;
try {
if ( PasswordUtil . checkPasswordByLoginid ( str1 , str2 , false ) ) {
TokenStore tokenStore = new TokenStore ( ) ;
Emobile7Response emobile7Response = new Emobile7Response ( ) ;
HrmResourceService hrmResourceService = new HrmResourceService ( ) ;
emobile7Response . setUserId ( String . valueOf ( hrmResourceService . getUserId ( str1 ) ) ) ;
emobile7Response . setOpenType ( 1 ) ;
if ( i > 0 ) {
weaResultMsg . put ( "m_access_token" , tokenStore . generateAccessToken ( emobile7Response , i ) ) ;
} else {
weaResultMsg . put ( "m_access_token" , tokenStore . generateAccessToken ( emobile7Response ) ) ;
}
weaResultMsg . put ( "m_refresh_token" , tokenStore . generateRefreshToken ( emobile7Response ) ) ;
weaResultMsg . put ( "mobileTokenName" , AuthTypeConstant . MOBILE_TOKEN_NAME ) ;
return weaResultMsg . success ( ) . toString ( ) ;
}
return weaResultMsg . fail ( "" + SystemEnv . getHtmlLabelName ( 10004766 , ThreadVarLanguage . getLang ( ) ) + "" ) . toString ( ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
return weaResultMsg . toString ( ) ;
}
}
@GET
@Path ( "/checkJoin" )
@Produces ( { "text/plain" } )
public String checkJoin ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( true ) ;
weaResultMsg . putAll ( ValveConfigManager . getTypeValves ( WeaVavleType . JOIN . getValue ( ) ) ) ;
weaResultMsg . putAll ( ValveConfigManager . getTypeValves ( WeaVavleType . SHARE . getValue ( ) ) ) ;
weaResultMsg . put ( "joinStatus" , Boolean . valueOf ( EMManager . getJoinStatus ( true ) ) ) ;
return weaResultMsg . toString ( ) ;
}
@POST
@Path ( "/setValue" )
@Produces ( { "text/plain" } )
public String setValve ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
String str1 = paramHttpServletRequest . getParameter ( "key" ) ;
if ( StringUtils . isBlank ( str1 ) ) {
str1 = "emSwitch" ;
}
String str2 = paramHttpServletRequest . getParameter ( "value" ) ;
if ( StringUtils . isBlank ( str1 ) ) {
str2 = "0" ;
}
ValveConfigManager . setValve ( str1 , str2 ) ;
weaResultMsg . success ( ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
}
return weaResultMsg . toString ( ) ;
}
@POST
@Path ( "/saveSystemInfo" )
@Produces ( { "text/plain" } )
public String saveSystemInfo ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
Map map = WeaDataChange . getRequestToMapStr ( paramHttpServletRequest ) ;
EMManager eMManager = new EMManager ( ) ;
eMManager . saveOrupdateEMData ( map ) ;
weaResultMsg . success ( "ok" ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
}
return weaResultMsg . toString ( ) ;
}
@POST
@Path ( "/updateSystemInfo" )
@Produces ( { "text/plain" } )
public String updateSystemInfo ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
Map map = WeaDataChange . getRequestToMapStr ( paramHttpServletRequest ) ;
EMManager eMManager = new EMManager ( ) ;
eMManager . saveOrupdateEMData ( map ) ;
weaResultMsg . success ( "ok" ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
weaResultMsg . fail ( "error" ) ;
}
return weaResultMsg . toString ( ) ;
}
@GET
@Path ( "/refreshSystemInfo" )
@Produces ( { "text/plain" } )
public String refreshSystemInfo ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
EMManager eMManager = new EMManager ( ) ;
Map map = eMManager . refreshDataFormDB ( ) ;
weaResultMsg . setDatas ( map ) ;
weaResultMsg . success ( ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
}
return weaResultMsg . toString ( ) ;
}
@GET
@Path ( "/getSystemInfo" )
@Produces ( { "text/plain" } )
public String getSystemInfo ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
EMManager eMManager = new EMManager ( ) ;
Map map = EMManager . getEMData ( ) ;
weaResultMsg . setDatas ( map ) ;
weaResultMsg . success ( ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
}
return weaResultMsg . toString ( ) ;
}
@GET
@Path ( "/getToken" )
@Produces ( { "text/plain" } )
public String getToken ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
JSONObject jSONObject = new JSONObject ( ) ;
jSONObject . put ( "status" , Boolean . valueOf ( true ) ) ;
try {
User user = HrmUserVarify . getUser ( paramHttpServletRequest , paramHttpServletResponse ) ;
if ( user = = null ) {
jSONObject . put ( "msg" , "" + SystemEnv . getHtmlLabelName ( 10004767 , ThreadVarLanguage . getLang ( ) ) + "" ) ;
jSONObject . put ( "datas" , new ArrayList ( ) ) ;
}
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
jSONObject . put ( "status" , Boolean . valueOf ( false ) ) ;
}
return JSON . toJSONString ( jSONObject ) ;
}
@POST
@Path ( "/checkSSOCode" )
@Produces ( { "application/json" } )
public String checkSSOCode ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
String str1 = new String ( Util_public . readInputStream ( ( InputStream ) paramHttpServletRequest . getInputStream ( ) ) , "UTF-8" ) ;
Map map = ( Map ) JSON . parseObject ( str1 , Map . class ) ;
String str2 = ( String ) map . get ( "auth_code" ) ;
CodeTimeBean codeTimeBean = null ;
Object object = Util_DataMap . getObjVal ( str2 ) ;
if ( object = = null ) {
codeTimeBean = loadCodeFromDB ( str2 ) ;
} else {
codeTimeBean = ( CodeTimeBean ) object ;
}
if ( codeTimeBean = = null ) {
weaResultMsg . fail ( "not found code" ) ;
weaResultMsg . put ( "errcode" , Integer . valueOf ( 2 ) ) ;
weaResultMsg . put ( "errmsg" , "EM" + SystemEnv . getHtmlLabelName ( 10004768 , ThreadVarLanguage . getLang ( ) ) + "" ) ;
weaResultMsg . put ( "auth_code" , str2 ) ;
logger . error ( "not found code:" + str2 ) ;
return weaResultMsg . toString ( ) ;
}
long l = System . currentTimeMillis ( ) ;
if ( l - codeTimeBean . getTime ( ) < 300000L ) {
weaResultMsg . put ( "UserId" , Integer . valueOf ( codeTimeBean . getUserId ( ) ) ) ;
weaResultMsg . success ( "ok" ) ;
weaResultMsg . put ( "errcode" , Integer . valueOf ( 0 ) ) ;
weaResultMsg . put ( "errmsg" , "ok" ) ;
} else {
weaResultMsg . fail ( "time out" ) ;
weaResultMsg . put ( "errcode" , Integer . valueOf ( 1 ) ) ;
logger . error ( "time out code is:" + str2 ) ;
weaResultMsg . put ( "errmsg" , "time out" ) ;
}
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
weaResultMsg . put ( "errcode" , Integer . valueOf ( 3 ) ) ;
weaResultMsg . put ( "errmsg" , "error" ) ;
}
return weaResultMsg . toString ( ) ;
}
public CodeTimeBean loadCodeFromDB ( String paramString ) {
RecordSet recordSet = new RecordSet ( ) ;
recordSet . executeQuery ( "select obj from ECOLOGY_BIZ_CACHECODE where id=?" , new Object [ ] { paramString } ) ;
CodeTimeBean codeTimeBean = null ;
if ( recordSet . next ( ) ) {
String str = recordSet . getString ( "obj" ) ;
try {
if ( StringUtil . isNotNullAndEmpty ( str ) )
codeTimeBean = ( CodeTimeBean ) JSON . parseObject ( str , CodeTimeBean . class ) ;
} catch ( Exception exception ) {
logger . error ( "数据实列化失败" ) ;
}
}
return codeTimeBean ;
}
public boolean saveCodeToDB ( String paramString , CodeTimeBean paramCodeTimeBean ) {
if ( ! inited ) {
inited = true ;
try {
Timer timer = new Timer ( ) ;
timer . schedule ( ( TimerTask ) new Object ( ) , 5000L , 43200000L ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( "clear em code task begin fail...e:" + exception . getMessage ( ) ) ;
inited = false ;
clear ( ) ;
}
logger . info ( "clear em code task is start success..." ) ;
}
RecordSet recordSet = new RecordSet ( ) ;
Date date = new Date ( ) ;
return recordSet . executeUpdate ( "insert into ECOLOGY_BIZ_CACHECODE(id,obj,outtime) values(?,?,?)" , new Object [ ] { paramString , JSON . toJSONString ( paramCodeTimeBean ) , Long . valueOf ( date . getTime ( ) + 3600000L ) } ) ;
}
public static boolean clear ( ) {
RecordSet recordSet = new RecordSet ( ) ;
recordSet . executeUpdate ( "delete from ECOLOGY_BIZ_CACHECODE where outtime<? " , new Object [ ] { Long . valueOf ( ( new Date ( ) ) . getTime ( ) ) } ) ;
return recordSet . next ( ) ;
}
@GET
@Path ( "/getSSOCode" )
@Produces ( { "text/plain" } )
public String getSSOCode ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
User user = HrmUserVarify . getUser ( paramHttpServletRequest , paramHttpServletResponse ) ;
if ( user = = null ) {
weaResultMsg . fail ( "" + SystemEnv . getHtmlLabelName ( 10004767 , ThreadVarLanguage . getLang ( ) ) + "" ) ;
return weaResultMsg . toString ( ) ;
}
String str1 = WeaIndexManager . getGuid ( ) ;
CodeTimeBean codeTimeBean = new CodeTimeBean ( ) ;
codeTimeBean . setUserId ( user . getUID ( ) ) ;
codeTimeBean . setTime ( System . currentTimeMillis ( ) ) ;
Util_DataMap . setObjValAuto ( str1 , codeTimeBean , 300 ) ;
saveCodeToDB ( str1 , codeTimeBean ) ;
String str2 = Util . null2String ( Util . getCookie ( paramHttpServletRequest , "cacheAccount" ) ) ;
String str3 = Util . getCookie ( paramHttpServletRequest , "cachePassword" ) ;
if ( str2 . length ( ) > 0 ) {
str2 = URLDecoder . decode ( str2 , "UTF-8" ) ;
}
weaResultMsg . put ( "isRememberAccount" , Util . getCookie ( paramHttpServletRequest , "isRememberAccount" ) ) ;
weaResultMsg . put ( "isRememberPassword" , Util . getCookie ( paramHttpServletRequest , "isRememberPassword" ) ) ;
weaResultMsg . put ( "cacheAccount" , str2 ) ;
weaResultMsg . put ( "cachePassword" , str3 ) ;
weaResultMsg . put ( "langid" , ParseLangDataUtil . converteEmLangtype ( user . getLanguage ( ) ) ) ;
weaResultMsg . put ( "keycode" , str1 ) ;
weaResultMsg . success ( ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
}
return weaResultMsg . toString ( ) ;
}
@GET
@Path ( "/getUserInfo" )
@Produces ( { "text/plain" } )
public String getUserInfo ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
JSONObject jSONObject = new JSONObject ( ) ;
jSONObject . put ( "status" , Boolean . valueOf ( true ) ) ;
try {
User user = HrmUserVarify . getUser ( paramHttpServletRequest , paramHttpServletResponse ) ;
if ( user = = null ) {
jSONObject . put ( "msg" , "" + SystemEnv . getHtmlLabelName ( 10004767 , ThreadVarLanguage . getLang ( ) ) + "" ) ;
} else {
jSONObject . put ( "userid" , Integer . valueOf ( user . getUID ( ) ) ) ;
jSONObject . put ( "loginid" , user . getLoginid ( ) ) ;
ResourceComInfo resourceComInfo = new ResourceComInfo ( ) ;
if ( "1" . equals ( resourceComInfo . getAccountType ( String . valueOf ( user . getUID ( ) ) ) . trim ( ) ) ) {
jSONObject . put ( "isSubAccount" , Boolean . valueOf ( true ) ) ;
}
jSONObject . put ( "isAdmin" , Boolean . valueOf ( user . isAdmin ( ) ) ) ;
}
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
jSONObject . put ( "status" , Boolean . valueOf ( false ) ) ;
}
return JSON . toJSONString ( jSONObject ) ;
}
@POST
@Path ( "/getCheckSystemInfo" )
@Produces ( { "application/json" } )
public String getEMCheckSystemInfo ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
String str1 = new String ( Util_public . readInputStream ( ( InputStream ) paramHttpServletRequest . getInputStream ( ) ) , "UTF-8" ) ;
Map map1 = ( Map ) JSON . parseObject ( str1 , Map . class ) ;
String str2 = ( String ) map1 . get ( "rsa_encrypt" ) ;
if ( logger . isDebugEnabled ( ) ) {
logger . debug ( "rsa_encrypt:" + str2 ) ;
}
if ( ! map1 . containsKey ( "rsa_encrypt" ) ) {
weaResultMsg . put ( "errcode" , Integer . valueOf ( 1 ) ) ;
weaResultMsg . put ( "errmsg" , "Not found rsa_encrypt" ) ;
logger . error ( "Not found rsa_encrypt" ) ;
return weaResultMsg . toString ( ) ;
}
EMManager eMManager = new EMManager ( ) ;
Map map2 = EMManager . getEMData ( ) ;
String str3 = ( String ) map2 . get ( "accesstoken" ) ;
String str4 = ( String ) map2 . get ( "em_url" ) ;
String str5 = ( String ) map2 . get ( "em_url_open" ) ;
String str6 = ( String ) map2 . get ( "em_corpid" ) ;
RSA rSA = new RSA ( ) ;
String str7 = rSA . decrypt ( null , str2 , true ) ;
weaResultMsg . put ( "errcode" , Integer . valueOf ( 0 ) ) ;
weaResultMsg . put ( "errmsg" , "ok" ) ;
weaResultMsg . put ( "ec_version" , EMManager . getEcologyVersion ( ) ) ;
int i = Util . getIntValue ( EMManager . getEcologyCluster ( ) ? "1" : "0" , 0 ) ;
weaResultMsg . put ( "ec_iscluster" , Integer . valueOf ( i ) ) ;
weaResultMsg . put ( "ec_keys" , Integer . valueOf ( ( i = = 1 ) ? ( EMManager . isSoftlinkKeys ( ) ? 1 : 0 ) : 1 ) ) ;
weaResultMsg . put ( "ec_emfilter" , Integer . valueOf ( Util . getIntValue ( EMManager . checkEMFilterInWebXml ( paramHttpServletRequest ) , 0 ) ) ) ;
weaResultMsg . put ( "ec_servertime" , Long . valueOf ( ( new Date ( ) ) . getTime ( ) ) ) ;
String str8 = null ;
try {
String str9 = paramHttpServletRequest . getRealPath ( "/" ) + "mobile/jem.js" ;
String str10 = str4 + "/open/js/jem.js" ;
try {
downloadJS ( str9 , str10 ) ;
} catch ( Exception exception ) {
logger . info ( "jem.js文件下载失败" ) ;
}
JSONObject jSONObject = EMManager . getToken ( str6 , str3 ) ;
logger . error ( "getToken" ) ;
if ( "0" . equals ( jSONObject . getString ( "errcode" ) ) ) {
str8 = jSONObject . getString ( "access_token" ) ;
logger . error ( "setJoinStatus" ) ;
EMManager . setJoinStatus ( true ) ;
} else {
logger . error ( jSONObject . toJSONString ( ) ) ;
}
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( "accesstoken:" + exception . getMessage ( ) ) ;
str8 = null ;
}
weaResultMsg . put ( "ec_gettoken" , Integer . valueOf ( StringUtils . isNotBlank ( str8 ) ? 1 : 0 ) ) ;
weaResultMsg . put ( "em_url" , str4 ) ;
weaResultMsg . put ( "em_url_open" , str5 ) ;
weaResultMsg . put ( "em_corpid" , str6 ) ;
weaResultMsg . put ( "rsa_decrypt" , str7 ) ;
weaResultMsg . success ( ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
}
logger . error ( "data:" + weaResultMsg . toString ( ) ) ;
return weaResultMsg . toString ( ) ;
}
@POST
@Path ( "/emjoin" )
@Produces ( { "application/json" } )
public String systemEMJoin ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
Map map = new HashMap < > ( ) ;
Map < String , String > map1 = WeaDataChange . getRequestBodyToMapStr ( paramHttpServletRequest ) ;
String str1 = paramHttpServletRequest . getRealPath ( "/" ) + "mobile/jem.js" ;
String str2 = ( String ) map1 . get ( "em_url" ) + "/open/js/jem.js" ;
try {
downloadJS ( str1 , str2 ) ;
} catch ( Exception exception ) {
logger . info ( "jem.js文件下载失败" ) ;
}
String str3 = ( String ) map1 . get ( "ec_loginid" ) ;
String str4 = ( String ) map1 . get ( "ec_password" ) ;
String str5 = ( String ) map1 . get ( "ec_id" ) ;
String str6 = ( String ) map1 . get ( "workbench_agentid" ) ;
if ( StringUtils . isNotBlank ( str5 ) ) {
map = EMManager . getEmobileInfo ( str5 ) ;
}
String str7 = RSA . getRSA_PUB ( ) ;
EMManager eMManager = new EMManager ( ) ;
if ( PasswordUtil . checkPasswordByLoginid ( str3 , str4 , true ) ) {
Map < String , String > map2 = EMManager . getEMData ( ) ;
weaResultMsg . put ( "rsa_pub" , str7 ) ;
map1 . put ( "rsa_pub" , str7 ) ;
map1 . put ( "ec_version" , EMManager . getEcologyVersion ( ) ) ;
map1 . put ( "ec_iscluster" , EMManager . getEcologyCluster ( ) ? "1" : "0" ) ;
map1 . put ( "workbench_agentid" , str6 ) ;
map1 . put ( "em_name" , "emobile7" ) ;
map2 . putAll ( map1 ) ;
eMManager . saveOrupdateEMData ( map2 ) ;
eMManager . refreshDataFormDB ( ) ;
EMManager . setJoinStatus ( false ) ;
try {
String str = Util . getIpAddr ( paramHttpServletRequest ) ;
HrmResourceService hrmResourceService = new HrmResourceService ( ) ;
User user = hrmResourceService . getUserById ( hrmResourceService . getUserId ( str3 ) ) ;
HashMap hashMap = Maps . newHashMap ( ) ;
map1 . forEach ( ( paramString1 , paramString2 ) - > hashMap . put ( paramString1 , paramString2 ) ) ;
EMManager . afterEmobileJoin ( EMManager . buildBizLogContext ( str , user , map , hashMap ) ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
}
if ( ! StringUtils . isBlank ( str6 ) ) {
weaResultMsg . put ( "workbench_url" , AppSyncUtil . getWorkbenchUrl ( "1" ) ) ;
weaResultMsg . put ( "workbench_url_pc" , AppSyncUtil . getWorkbenchUrl ( "2" ) ) ;
}
weaResultMsg . put ( "errcode" , "0" ) ;
weaResultMsg . put ( "errmsg" , "ok" ) ;
return weaResultMsg . success ( "ok" ) . toString ( ) ;
}
weaResultMsg . put ( "errcode" , "1" ) ;
weaResultMsg . put ( "errmsg" , "account or password error" ) ;
return weaResultMsg . fail ( "ok" ) . toString ( ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
return weaResultMsg . toString ( ) ;
}
}
@GET
@Path ( "/getModuleList" )
@Produces ( { "text/plain" } )
public String getModuleList ( @Context HttpServletRequest paramHttpServletRequest , @Context HttpServletResponse paramHttpServletResponse ) {
WeaResultMsg weaResultMsg = new WeaResultMsg ( false ) ;
try {
String str = " select eba.*, ebat.module as moduleid, ebat.apptype as typename, ebam.name as modulename from ecology_biz_app eba left join ecology_biz_app_type ebat on eba.apptype=ebat.id left join ecology_biz_app_module ebam on ebat.module=ebam.id where eba.status='y' " ;
RecordSet recordSet = new RecordSet ( ) ;
recordSet . execute ( str ) ;
List list = WeaDataChange . getRecordToMapListUpperCase ( recordSet ) ;
weaResultMsg . put ( "data" , list ) ;
weaResultMsg . success ( ) ;
} catch ( Exception exception ) {
exception . printStackTrace ( ) ;
logger . error ( exception . getMessage ( ) ) ;
weaResultMsg . fail ( "error" ) ;
}
return weaResultMsg . toString ( ) ;
}
public static void downloadJS ( String paramString1 , String paramString2 ) throws IOException {
if ( ! paramString2 . startsWith ( "http" ) ) {
throw new RuntimeException ( "请求地址不正确" ) ;
}
logger . info ( "filePath : " + paramString1 + "urlPath : " + paramString2 ) ;
int i = 0 ;
int j = 0 ;
URL uRL = new URL ( paramString2 ) ;
InputStream inputStream = null ;
FileOutputStream fileOutputStream = null ;
try {
URLConnection uRLConnection = uRL . openConnection ( ) ;
inputStream = uRLConnection . getInputStream ( ) ;
fileOutputStream = new FileOutputStream ( paramString1 ) ;
byte [ ] arrayOfByte = new byte [ 1204 ] ;
while ( ( i = inputStream . read ( arrayOfByte ) ) ! = - 1 ) {
j + = i ;
fileOutputStream . write ( arrayOfByte , 0 , i ) ;
}
} catch ( FileNotFoundException fileNotFoundException ) {
logger . info ( "文件路径未找到..." ) ;
} catch ( IOException iOException ) {
logger . info ( "文件下载出错..." ) ;
} finally {
if ( inputStream ! = null ) {
inputStream . close ( ) ;
}
if ( fileOutputStream ! = null ) {
fileOutputStream . close ( ) ;
}
}
}
}