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.
231 lines
7.6 KiB
231 lines
7.6 KiB
3 years ago
|
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;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|