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.
275 lines
10 KiB
275 lines
10 KiB
3 years ago
|
package com.fr.plugin.ztsso.handler;
|
||
|
|
||
|
import com.fr.decision.authority.data.User;
|
||
|
import com.fr.decision.fun.impl.BaseHttpHandler;
|
||
|
import com.fr.decision.webservice.bean.user.UserBean;
|
||
|
import com.fr.json.JSONObject;
|
||
|
import com.fr.plugin.ztsso.config.simple.account.PluginSimpleConfig;
|
||
|
import com.fr.plugin.ztsso.utils.*;
|
||
|
import com.fr.third.springframework.web.bind.annotation.RequestMethod;
|
||
|
|
||
|
import javax.servlet.http.HttpServletRequest;
|
||
|
import javax.servlet.http.HttpServletResponse;
|
||
|
import java.net.URLEncoder;
|
||
|
import java.util.HashMap;
|
||
|
import java.util.Map;
|
||
|
|
||
|
public class AcountHandler extends BaseHttpHandler {
|
||
|
|
||
|
|
||
|
public AcountHandler() {
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public RequestMethod getMethod() {
|
||
|
return RequestMethod.GET;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String getPath() {
|
||
|
return "/account";
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean isPublic() {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void handle(HttpServletRequest req, HttpServletResponse res) throws Exception {
|
||
|
//获取配置参数
|
||
|
PluginSimpleConfig pluginSimpleConfig = PluginSimpleConfig.getInstance();
|
||
|
String cosCode = pluginSimpleConfig.getConsumerCode();
|
||
|
String operaCode = pluginSimpleConfig.getOperationCode();
|
||
|
Map<String,String> header = new HashMap<String,String>();
|
||
|
header.put("consumerCode",cosCode);
|
||
|
header.put("operationCode",operaCode);
|
||
|
String sysCode = pluginSimpleConfig.getSystemCode();
|
||
|
String key = pluginSimpleConfig.getIntegrationKey();
|
||
|
//获取token
|
||
|
String url = pluginSimpleConfig.getTysf();
|
||
|
|
||
|
JSONObject param = new JSONObject();
|
||
|
param.put("method","login");
|
||
|
JSONObject tokenRequest = new JSONObject();
|
||
|
tokenRequest.put("systemCode",sysCode);
|
||
|
tokenRequest.put("integrationKey",key);
|
||
|
tokenRequest.put("force",true);
|
||
|
tokenRequest.put("timestamp",System.currentTimeMillis());
|
||
|
param.put("request",tokenRequest);
|
||
|
String tokenUrl = url+"?method=login&request="+URLEncoder.encode(tokenRequest.toString());
|
||
|
// tokenUrl = URLEncoder.encode(tokenUrl,"utf-8");
|
||
|
|
||
|
String result = HttpUtils.HttpPostJson(tokenUrl,param.toString(),header);
|
||
|
|
||
|
if(Utils.isNullStr(result)){
|
||
|
ResponseUtils.failedResponse(res,"获取token失败");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
JSONObject tokenResult = new JSONObject(result);
|
||
|
|
||
|
int code = tokenResult.getInt("code");
|
||
|
boolean success = tokenResult.getBoolean("success");
|
||
|
if(!success){
|
||
|
String message = tokenResult.getString("message");
|
||
|
ResponseUtils.failedResponse(res,"获取token失败:"+message);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
//获取下拉数据
|
||
|
String tokenId = tokenResult.getString("tokenId");
|
||
|
|
||
|
JSONObject pullTaskParam = new JSONObject();
|
||
|
pullTaskParam.put("method","pullTask");
|
||
|
JSONObject pullTaskRequest = new JSONObject();
|
||
|
pullTaskRequest.put("tokenId",tokenId);
|
||
|
pullTaskRequest.put("timestamp",System.currentTimeMillis());
|
||
|
pullTaskParam.put("request",pullTaskRequest);
|
||
|
|
||
|
String pullUrl = url+"?method=pullTask&request="+URLEncoder.encode(pullTaskRequest.toString());
|
||
|
// pullUrl = URLEncoder.encode(pullUrl,"utf-8");
|
||
|
|
||
|
String pullTaskResultStr = HttpUtils.HttpPostJson(pullUrl,pullTaskParam.toString(),header);
|
||
|
|
||
|
if(Utils.isNullStr(pullTaskResultStr)){
|
||
|
ResponseUtils.failedResponse(res,"获取数据失败");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
JSONObject pullTaskResult = new JSONObject(pullTaskResultStr);
|
||
|
|
||
|
code = pullTaskResult.getInt("code");
|
||
|
success = pullTaskResult.getBoolean("success");
|
||
|
if(!success){
|
||
|
String message = pullTaskResult.getString("message");
|
||
|
ResponseUtils.failedResponse(res,"获取数据失败:"+message);
|
||
|
return;
|
||
|
}
|
||
|
//根据不同类型进行账户或者组织机构的操作
|
||
|
String objectType = pullTaskResult.getString("objectType");
|
||
|
String taskId = pullTaskResult.getString("taskId");
|
||
|
String guid = pullTaskResult.getString("id");
|
||
|
if("TARGET_ACCOUNT".equals(objectType)){
|
||
|
operateAccout(pullTaskResult,res);
|
||
|
}else if("TARGET_ORGANIZATION".equals(objectType)){
|
||
|
operateOrg(pullTaskResult,res);
|
||
|
}
|
||
|
|
||
|
//返回下拉完成状态
|
||
|
JSONObject finishTaskParam = new JSONObject();
|
||
|
finishTaskParam.put("method","pullFinish");
|
||
|
JSONObject finishTaskRequest = new JSONObject();
|
||
|
finishTaskRequest.put("tokenId",tokenId);
|
||
|
finishTaskRequest.put("timestamp",System.currentTimeMillis());
|
||
|
finishTaskRequest.put("taskId",taskId);
|
||
|
finishTaskRequest.put("success",true);
|
||
|
finishTaskRequest.put("guid",guid);
|
||
|
finishTaskParam.put("request",finishTaskRequest);
|
||
|
|
||
|
String finishUrl = url+"?method=pullFinish&request="+URLEncoder.encode(finishTaskRequest.toString());
|
||
|
|
||
|
String finishResultStr = HttpUtils.HttpPostJson(finishUrl,pullTaskParam.toString(),header);
|
||
|
|
||
|
if(Utils.isNullStr(finishResultStr)){
|
||
|
ResponseUtils.failedResponse(res,"下拉完成失败");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
JSONObject finishResult = new JSONObject(finishResultStr);
|
||
|
|
||
|
success = finishResult.getBoolean("success");
|
||
|
|
||
|
if(!success){
|
||
|
String message = finishResult.getString("message");
|
||
|
ResponseUtils.failedResponse(res,"下拉完成失败:"+message);
|
||
|
return;
|
||
|
}
|
||
|
//注销登录
|
||
|
JSONObject loggoutParam = new JSONObject();
|
||
|
loggoutParam.put("method","logout");
|
||
|
JSONObject logoutRequest = new JSONObject();
|
||
|
logoutRequest.put("tokenId",tokenId);
|
||
|
logoutRequest.put("timestamp",System.currentTimeMillis());
|
||
|
loggoutParam.put("request",logoutRequest);
|
||
|
|
||
|
String logoutUrl = url+"?method=logout&request="+URLEncoder.encode(logoutRequest.toString());
|
||
|
|
||
|
String logoutResultStr = HttpUtils.HttpPostJson(logoutUrl,loggoutParam.toString(),header);
|
||
|
}
|
||
|
|
||
|
private void operateAccout(JSONObject pullTaskData,HttpServletResponse res) {
|
||
|
FRUtils.FRLogInfo("account");
|
||
|
String effectOn = pullTaskData.getString("effectOn");
|
||
|
JSONObject data = pullTaskData.getJSONObject("data");
|
||
|
String username = data.getString("username");
|
||
|
String password = data.getString("password");
|
||
|
String fullname = data.getString("fullname");
|
||
|
boolean isDisabled = data.getBoolean("isDisabled");
|
||
|
String email = data.getString("email");
|
||
|
String mobile = data.getString("mobile");
|
||
|
|
||
|
UserBean userBean = new UserBean();
|
||
|
|
||
|
userBean.setUsername(username);
|
||
|
userBean.setPassword(Utils.replaceNullStr(password,"123"));
|
||
|
userBean.setRealName(fullname);
|
||
|
userBean.setEnable(isDisabled);
|
||
|
userBean.setEmail(email);
|
||
|
userBean.setMobile(mobile);
|
||
|
|
||
|
if("CREATE".equals(effectOn)){
|
||
|
try {
|
||
|
FRUserUtils.addUser(userBean);
|
||
|
} catch (Exception e) {
|
||
|
String message = Utils.replaceNullStr(e.getMessage(),"添加用户失败");
|
||
|
ResponseUtils.failedResponse(res,message);
|
||
|
return;
|
||
|
}
|
||
|
}else if("DISABLED".equals(effectOn)){
|
||
|
try {
|
||
|
String userId = FRUserUtils.getUserByUserName(username).getId();
|
||
|
FRUserUtils.forbidUser(userId,false);
|
||
|
} catch (Exception e) {
|
||
|
String message = Utils.replaceNullStr(e.getMessage(),"禁用用户失败");
|
||
|
ResponseUtils.failedResponse(res,message);
|
||
|
return;
|
||
|
}
|
||
|
}else if("ENABLED".equals(effectOn)){
|
||
|
try {
|
||
|
String userId = FRUserUtils.getUserByUserName(username).getId();
|
||
|
FRUserUtils.forbidUser(userId,true);
|
||
|
} catch (Exception e) {
|
||
|
String message = Utils.replaceNullStr(e.getMessage(),"启用用户失败");
|
||
|
ResponseUtils.failedResponse(res,message);
|
||
|
return;
|
||
|
}
|
||
|
}else if("DELETED".equals(effectOn)){
|
||
|
try {
|
||
|
User user = FRUserUtils.getUserByUserName(username);
|
||
|
FRUserUtils.deleteUser(user);
|
||
|
} catch (Exception e) {
|
||
|
String message = Utils.replaceNullStr(e.getMessage(),"删除用户失败");
|
||
|
ResponseUtils.failedResponse(res,message);
|
||
|
return;
|
||
|
}
|
||
|
}else if("UPDATED".equals(effectOn)){
|
||
|
try {
|
||
|
User user = FRUserUtils.getUserByUserName(username);
|
||
|
UserBean userBean2 = FRUserUtils.getUser(user.getId());
|
||
|
|
||
|
userBean2.setRealName(fullname);
|
||
|
userBean2.setEmail(email);
|
||
|
userBean2.setMobile(mobile);
|
||
|
FRUserUtils.updateUser(userBean2);
|
||
|
} catch (Exception e) {
|
||
|
String message = Utils.replaceNullStr(e.getMessage(),"修改用户失败");
|
||
|
ResponseUtils.failedResponse(res,message);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
private void operateOrg(JSONObject pullTaskData,HttpServletResponse res) {
|
||
|
FRUtils.FRLogInfo("account");
|
||
|
String effectOn = pullTaskData.getString("effectOn");
|
||
|
JSONObject data = pullTaskData.getJSONObject("data");
|
||
|
String name = data.getString("name");
|
||
|
String id = data.getString("_organization");
|
||
|
String parentId = data.getString("_parent");
|
||
|
|
||
|
parentId = Utils.replaceNullStr(parentId,"decision-dep-root");
|
||
|
|
||
|
FRUtils.FRLogInfo("effectOn:"+effectOn);
|
||
|
|
||
|
if("CREATED".equals(effectOn)){
|
||
|
try {
|
||
|
FRDepartmentUtils.addDP(id,parentId,name);
|
||
|
} catch (Exception e) {
|
||
|
String message = Utils.replaceNullStr(e.getMessage(),"添加机构失败");
|
||
|
ResponseUtils.failedResponse(res,message);
|
||
|
return;
|
||
|
}
|
||
|
}else if("DELETED".equals(effectOn)){
|
||
|
try {
|
||
|
FRDepartmentUtils.deleteDepartment(id);
|
||
|
} catch (Exception e) {
|
||
|
String message = Utils.replaceNullStr(e.getMessage(),"删除机构失败");
|
||
|
ResponseUtils.failedResponse(res,message);
|
||
|
return;
|
||
|
}
|
||
|
}else if("UPDATED".equals(effectOn)){
|
||
|
try {
|
||
|
FRDepartmentUtils.updateDP(id,name);
|
||
|
} catch (Exception e) {
|
||
|
String message = Utils.replaceNullStr(e.getMessage(),"修改机构失败");
|
||
|
ResponseUtils.failedResponse(res,message);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|