You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
230 lines
7.6 KiB
230 lines
7.6 KiB
package com.eco.plugin.xx.zcgjsync.utils; |
|
|
|
import com.eco.plugin.xx.zcgjsync.bean.UserEntity; |
|
import com.eco.plugin.xx.zcgjsync.config.PluginSimpleConfig; |
|
import com.eco.plugin.xx.zcgjsync.kit.DepartmentServiceKit; |
|
import com.eco.plugin.xx.zcgjsync.kit.UserServiceKit; |
|
import com.fr.decision.authority.data.User; |
|
import com.fr.decision.webservice.bean.user.UserBean; |
|
|
|
import java.util.UUID; |
|
|
|
/** |
|
* 机构操作类 |
|
*/ |
|
public class UserUtils { |
|
private static String success = "S"; |
|
private static String fail = "F"; |
|
private static String duplicate = "添加用户失败,已存在相同的用户名称"; |
|
private static String unknown = "未知异常"; |
|
private static String successMsg = "操作成功"; |
|
private static String notExist = "您操作的用户不存在"; |
|
private static String authFail = "鉴权失败"; |
|
|
|
public static String operUser(String xml,String token){ |
|
PluginSimpleConfig psc = PluginSimpleConfig.getInstance(); |
|
UserEntity userEntity = getUserBean(xml); |
|
try { |
|
AuthUtils.auth(token,System.currentTimeMillis(), psc); |
|
} catch (Exception e) { |
|
return getResultXml(userEntity.getID(),fail,authFail+";"+e.getMessage()); |
|
} |
|
|
|
String operType = userEntity.getFROMOPERTYPE(); |
|
|
|
UserServiceKit kit = UserServiceKit.getInstance(); |
|
//新增或启用 |
|
if("1".equals(operType)){ |
|
return addUser(userEntity,kit); |
|
} |
|
|
|
//修改 |
|
if("2".equals(operType)){ |
|
return updateUser(userEntity,kit); |
|
} |
|
|
|
User user = null; |
|
try { |
|
user = FRUserUtils.getUserByUserName(userEntity.getNO()); |
|
} catch (Exception e) { |
|
return getResultXml(userEntity.getID(),fail,unknown+e.getMessage()); |
|
} |
|
|
|
//停用 |
|
if("3".equals(operType)){ |
|
try { |
|
FRUserUtils.forbidUser(user.getId(),false); |
|
} catch (Exception e) { |
|
return getResultXml(userEntity.getID(),fail,"停用用户失败"); |
|
} |
|
return getResultXml(userEntity.getID(),success,successMsg); |
|
} |
|
|
|
//启用 |
|
if("4".equals(operType)){ |
|
try { |
|
FRUserUtils.forbidUser(user.getId(),true); |
|
} catch (Exception e) { |
|
return getResultXml(userEntity.getID(),fail,"启用用户失败"); |
|
} |
|
return getResultXml(userEntity.getID(),success,successMsg); |
|
} |
|
|
|
return getResultXml(userEntity.getID(),fail,"未识别的操作类型FROMOPERTYPE:"+operType); |
|
} |
|
|
|
/** |
|
* 删除机构 |
|
* @param userEntity |
|
* @param kit |
|
* @return |
|
*/ |
|
private static String deleteUser(UserEntity userEntity, DepartmentServiceKit kit){ |
|
|
|
|
|
try { |
|
User user = FRUserUtils.getUserByUserName(userEntity.getNO()); |
|
|
|
if(user == null || Utils.isNullStr(user.getId())){ |
|
return getResultXml(userEntity.getID(),fail,notExist); |
|
} |
|
|
|
FRUserUtils.deleteUser(user); |
|
} catch (Exception e) { |
|
return getResultXml(userEntity.getID(),fail,unknown+e.getMessage()); |
|
} |
|
|
|
return getResultXml(userEntity.getID(),success,successMsg); |
|
} |
|
|
|
/** |
|
* 修改用户 |
|
* @param userEntity |
|
* @param kit |
|
* @return |
|
*/ |
|
private static String updateUser(UserEntity userEntity, UserServiceKit kit){ |
|
try { |
|
User user = FRUserUtils.getUserByUserName(userEntity.getNO()); |
|
|
|
if(user == null || Utils.isNullStr(user.getId())){ |
|
return getResultXml(userEntity.getID(),fail,notExist); |
|
} |
|
|
|
UserBean userBean = userEntityToBean(userEntity); |
|
userBean.setId(user.getId()); |
|
|
|
kit.editUser(userBean,""); |
|
|
|
FRUserUtils.clearUserDepAndPost(user.getId()); |
|
FRUserUtils.updateDepartmentPostUsers(userEntity.getIU_LSSJDW_ID(),"",user.getId()); |
|
|
|
} catch (Exception e) { |
|
return getResultXml(userEntity.getID(),fail,unknown+e.getMessage()); |
|
} |
|
|
|
return getResultXml(userEntity.getID(),success,successMsg); |
|
} |
|
|
|
/** |
|
* 添加用户 |
|
* @param userEntity |
|
* @param kit |
|
* @return |
|
*/ |
|
private static String addUser(UserEntity userEntity, UserServiceKit kit){ |
|
try { |
|
User user = FRUserUtils.getUserByUserName(userEntity.getNO()); |
|
|
|
if(user != null && !Utils.isNullStr(user.getId())){ |
|
return getResultXml(userEntity.getID(),fail,duplicate); |
|
} |
|
|
|
UserBean userBean = userEntityToBean(userEntity); |
|
kit.addUser(userBean); |
|
|
|
//更新用户状态 |
|
String userid = userBean.getId(); |
|
FRUserUtils.forbidUser(userid,"1".equals(userEntity.getSTATUS())); |
|
|
|
//设置用户组织机构 |
|
String orgid = userEntity.getIU_LSSJDW_ID(); |
|
if(Utils.isNotNullStr(orgid)){ |
|
FRUserUtils.updateDepartmentPostUsers(orgid,"",userid); |
|
} |
|
|
|
} catch (Exception e) { |
|
return getResultXml(userEntity.getID(),fail,unknown+e.getMessage()); |
|
} |
|
|
|
return getResultXml(userEntity.getID(),success,successMsg); |
|
} |
|
|
|
/** |
|
* |
|
* @param userEntity |
|
* @return |
|
*/ |
|
private static UserBean userEntityToBean(UserEntity userEntity){ |
|
UserBean userBean = new UserBean(); |
|
userBean.setId(UUID.randomUUID().toString()); |
|
userBean.setPassword("sinoma123"); |
|
userBean.setUsername(userEntity.getNO()); |
|
userBean.setRealName(userEntity.getNAME()); |
|
userBean.setEmail(userEntity.getEMAIL()); |
|
userBean.setMobile(userEntity.getTELEPHONE()); |
|
|
|
return userBean; |
|
} |
|
|
|
/** |
|
* 获取返回报文 |
|
* @param id |
|
* @param status |
|
* @param msg |
|
* @return |
|
*/ |
|
private static String getResultXml(String id,String status,String msg){ |
|
String resultXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + |
|
"<document>\n" + |
|
" <info>\n" + |
|
" <id>#id</id>\n" + |
|
" <status>#status</status>\n" + |
|
" <type>1</type>\n" + |
|
" <mesg>#msg</mesg>\n" + |
|
" </info>\n" + |
|
"</document>"; |
|
|
|
return resultXml.replace("#id",id).replace("#status",status).replace("#msg",msg); |
|
} |
|
|
|
/** |
|
* 从xml报文解析userBean实体 |
|
* @param xmltext |
|
* @return |
|
*/ |
|
private static UserEntity getUserBean(String xmltext){ |
|
String ID = xmltext.substring(xmltext.indexOf("<ID>")+4,xmltext.indexOf("</ID>")); |
|
String FROMOPERTYPE = xmltext.substring(xmltext.indexOf("<FROMOPERTYPE>")+14,xmltext.indexOf("</FROMOPERTYPE>")); |
|
String STATUS = xmltext.substring(xmltext.indexOf("<STATUS>")+8,xmltext.indexOf("</STATUS>")); |
|
String NAME = xmltext.substring(xmltext.indexOf("<NAME>")+6,xmltext.indexOf("</NAME>")); |
|
String NO = xmltext.substring(xmltext.indexOf("<NO>")+4,xmltext.indexOf("</NO>")); |
|
String EMAIL = xmltext.substring(xmltext.indexOf("<EMAIL>")+7,xmltext.indexOf("</EMAIL>")); |
|
String TELEPHONE = xmltext.substring(xmltext.indexOf("<TELEPHONE>")+11,xmltext.indexOf("</TELEPHONE>")); |
|
String IU_LSSJDW_ID = xmltext.substring(xmltext.indexOf("<IU_LSSJDW_ID>")+14,xmltext.indexOf("</IU_LSSJDW_ID>")); |
|
|
|
UserEntity ub = new UserEntity(); |
|
ub.setID(ID); |
|
ub.setFROMOPERTYPE(FROMOPERTYPE); |
|
ub.setSTATUS(STATUS); |
|
ub.setNAME(NAME); |
|
ub.setNO(NO); |
|
ub.setEMAIL(EMAIL); |
|
ub.setTELEPHONE(TELEPHONE); |
|
ub.setIU_LSSJDW_ID(IU_LSSJDW_ID); |
|
|
|
return ub; |
|
} |
|
} |
|
|
|
|
|
|