Commit 773e8844 authored by gaoyingwei's avatar gaoyingwei

update:修改统一用户部分接口以及修改发送协同接口

parent dbf852b4
...@@ -2359,7 +2359,7 @@ public class CollaborationController extends BaseController { ...@@ -2359,7 +2359,7 @@ public class CollaborationController extends BaseController {
} }
} }
// 判断是外部调用下单的流程 // 判断是外部调用下单的流程
if("XDLC".equals(ctpTemplate.getTempleteNumber()) && isFinished){ if(("XDLC".equals(ctpTemplate.getTempleteNumber()) || "ECXDLC".equals(ctpTemplate.getTempleteNumber())) && isFinished){
String DIC_DATA_URL = "http://192.168.3.13:8081/TJYW/getWaitHand/oaUpdateData"; String DIC_DATA_URL = "http://192.168.3.13:8081/TJYW/getWaitHand/oaUpdateData";
// 调用外部接口,修改门户订单状态,并将最终审核后的数据提交给OA,此时相关填写数据已修改 // 调用外部接口,修改门户订单状态,并将最终审核后的数据提交给OA,此时相关填写数据已修改
......
package com.seeyon.apps.thirdparyServlet;
import com.seeyon.ctp.common.AppContext;
import com.seeyon.ctp.common.authenticate.domain.User;
import com.seeyon.ctp.common.exceptions.BusinessException;
import com.seeyon.ctp.common.util.XmlUtil;
import com.seeyon.ctp.organization.bo.*;
import com.seeyon.ctp.organization.manager.OrgManagerDirect;
import com.seeyon.ctp.rest.util.MemberUtil;
import com.seeyon.ctp.util.Datetimes;
import com.seeyon.v3x.services.organization.AccountManager;
import com.seeyon.v3x.services.organization.DepartmentManager;
import net.sf.json.JSONObject;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import com.seeyon.ctp.organization.manager.OrgManager;
import org.springframework.util.StringUtils;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ThirdparyServlet extends HttpServlet {
private static final Log log = LogFactory.getLog(ThirdparyServlet.class);
private OrgManager orgManager = (OrgManager) AppContext.getBean("orgManager");
private AccountManager accountManager = (AccountManager) AppContext.getBean("V3xAccountManager");
private DepartmentManager departmentManager = (DepartmentManager) AppContext.getBean("V3xDepartmentManager");
private OrgManagerDirect orgManagerDirect = (OrgManagerDirect)AppContext.getBean("orgManagerDirect");
/**
* @see HttpServlet#HttpServlet()
*/
public ThirdparyServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
try {
linktofutaisystem(request,response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void linktofutaisystem(HttpServletRequest request, HttpServletResponse response) {
try{
Map<String, String[]> parameterMap = request.getParameterMap();
String syncXml = parameterMap.get("syncXml")[0];
System.out.println(syncXml);
Map<String,Object> returnMap = new HashMap<>();
Map<String,Object> map = XmlUtil.xml2map(syncXml);
System.out.println(map.get("dataType"));
if (map.get("dataType").equals("1")){ //组织机构
Map<String,Object> syncContent = (Map<String, Object>) map.get("syncContent");
Map<String,Object> oldContent = (Map<String, Object>) syncContent.get("oldContent");
Map<String,Object> baseInfo = (Map<String, Object>) oldContent.get("baseInfo");
String isCorp = (String) baseInfo.get("isCorp");
if (isCorp.equals("1")){ //公司
if (map.get("operType").equals("1")){ //新增
this.addAccount(map,returnMap);
}else if (map.get("operType").equals("2")){ //删除
this.deleteAccount(map,returnMap);
}else if (map.get("operType").equals("4")){ //更新
this.updateAccount(map,returnMap);
}else{
returnMap.put("status",2);
returnMap.put("errcode","error");
returnMap.put("errormsg","对应操作类型为其他类型");
}
}else if (isCorp.equals("0")){ //部门
if (map.get("operType").equals("1")){ //新增
this.addDept(map,returnMap);
}else if (map.get("operType").equals("2")){ //删除
this.deleteDept(map,returnMap);
}else if (map.get("operType").equals("4")){ //更新
this.updateDept(map,returnMap);
}else{
returnMap.put("status",2);
returnMap.put("errcode","error");
returnMap.put("errormsg","对应操作类型为其他类型");
}
}else {
returnMap.put("status",2);
returnMap.put("errcode","error");
returnMap.put("errormsg","组织机构类型为其他类型");
}
} else if (map.get("dataType").equals("2")){ //用户
if (map.get("operType").equals("1")){ //新增
this.addMember(map,returnMap);
}else if (map.get("operType").equals("2")){ //删除
this.deleteMember(map,returnMap);
}else if (map.get("operType").equals("4")){ //更新
this.updateMember(map,returnMap);
}else{
returnMap.put("status",2);
returnMap.put("errcode","error");
returnMap.put("errormsg","对应操作类型为其他类型");
}
} else {
returnMap.put("status",2);
returnMap.put("errcode","error");
returnMap.put("errormsg","数据类型为其他类型");
}
String returnData = XmlUtil.recursionMapToXml(returnMap);
System.out.println(returnData);
ServletOutputStream out=response.getOutputStream();
OutputStreamWriter ow=new OutputStreamWriter(out,"utf-8");
ow.write(returnData);
ow.flush();
ow.close();
}catch (Exception e){
e.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
public static String sendPost(String url,String param){
OutputStreamWriter out =null;
BufferedReader reader = null;
String response = "";
//创建连接
try {
URL httpUrl = null; //HTTP URL类 用这个类来创建连接
//创建URL
httpUrl = new URL(url);
//建立连接
HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("connection", "keep-alive");
conn.setUseCaches(false);//设置不要缓存
conn.setInstanceFollowRedirects(true);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.connect();
//POST请求
out = new OutputStreamWriter(
conn.getOutputStream());
out.write(param);
out.flush();
//读取响应
reader = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String lines;
while ((lines = reader.readLine()) != null) {
lines = new String(lines.getBytes(), "utf-8");
response+=lines;
}
reader.close();
// 断开连接
conn.disconnect();
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
out.close();
}
if(reader!=null){
reader.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
return response;
}
public static String sendPost2(String url, String data) {
String response = null;
try {
CloseableHttpClient httpclient = null;
CloseableHttpResponse httpresponse = null;
try {
httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost(url);
StringEntity stringentity = new StringEntity(data,
ContentType.create("application/json", "UTF-8"));
httppost.setEntity(stringentity);
httpresponse = httpclient.execute(httppost);
response = EntityUtils
.toString(httpresponse.getEntity());
} finally {
if (httpclient != null) {
httpclient.close();
}
if (httpresponse != null) {
httpresponse.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
private void addAccount(Map<String, Object> map,Map<String,Object> returnMap) throws BusinessException {
Map<String,Object> syncContent = (Map<String, Object>) map.get("syncContent");
Map<String,Object> newContent = (Map<String, Object>) syncContent.get("newContent");
Map<String,Object> parentInfo = (Map<String, Object>) newContent.get("parentInfo");
Map<String,Object> baseInfo = (Map<String, Object>) newContent.get("baseInfo");
V3xOrgAccount account = orgManager.getAccountByName((String) baseInfo.get("deptName"));
if (account == null){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_1_1_0001");
returnMap.put("errormsg","组织已存在");
return;
}
if (StringUtils.isEmpty(baseInfo.get("deptName"))|| StringUtils.isEmpty(baseInfo.get("deptUniCode"))
|| StringUtils.isEmpty(baseInfo.get("showNum"))){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_1_1_0003");
returnMap.put("errormsg","必填属性未填");
return;
}
V3xOrgAccount unit = new V3xOrgAccount();
unit.setIdIfNew();
unit.setOrgAccountId(unit.getId());
unit.setCode((String) baseInfo.get("deptUniCode"));
unit.setName((String) baseInfo.get("deptName"));
unit.setSortId(Long.parseLong((String) baseInfo.get("showNum")));
if (StringUtils.isEmpty((String) parentInfo.get("parentCode"))){
Long accountId = accountManager.getAccountIdByCode("org-admin");
if (StringUtils.isEmpty(accountId)||accountId.equals(-1L)){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_1_1_0004");
returnMap.put("errormsg","找不到父级");
return;
}
unit.setSuperior(accountId);
}else {
String code = (String) parentInfo.get("parentCode");
Long accountId = accountManager.getAccountIdByCode(code);
if (StringUtils.isEmpty(accountId)||accountId.equals(-1L)){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_1_1_0004");
returnMap.put("errormsg","找不到父级");
return;
}
unit.setSuperior(accountId);
}
Map admininfo = new HashMap();
admininfo.put("loginName", baseInfo.get("deptName")+"管理员");//管理员登录名
admininfo.put("password", "123456");//管理员密码
V3xOrgMember adminmember = MemberUtil.createMember(admininfo);
OrganizationMessage result = new OrganizationMessage();
result = orgManagerDirect.addAccount(unit,adminmember);
System.out.println(result.isSuccess());
if (!result.isSuccess()){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_1_1_9999");
returnMap.put("errormsg","其它错误");
}else {
returnMap.put("status",1);
returnMap.put("errcode","");
returnMap.put("errormsg","");
}
}
private void deleteAccount(Map<String, Object> map,Map<String,Object> returnMap) {
}
private void updateAccount(Map<String, Object> map,Map<String,Object> returnMap) {
}
private void addDept(Map<String, Object> map,Map<String,Object> returnMap) throws BusinessException {
Map<String,Object> syncContent = (Map<String, Object>) map.get("syncContent");
Map<String,Object> newContent = (Map<String, Object>) syncContent.get("newContent");
Map<String,Object> parentInfo = (Map<String, Object>) newContent.get("parentInfo");
Map<String,Object> baseInfo = (Map<String, Object>) newContent.get("baseInfo");
if (StringUtils.isEmpty(baseInfo.get("deptName"))|| StringUtils.isEmpty(baseInfo.get("deptUniCode"))
|| StringUtils.isEmpty(baseInfo.get("showNum"))||StringUtils.isEmpty(parentInfo.get("parentCode"))){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_1_1_0003");
returnMap.put("errormsg","必填属性未填");
return;
}
V3xOrgAccount account = orgManager.getAccountByName((String) baseInfo.get("deptName"));
if (account == null){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_1_1_0001");
returnMap.put("errormsg","组织已存在");
return;
}
V3xOrgDepartment department = new V3xOrgDepartment();
department.setIdIfNew();
department.setName((String) baseInfo.get("deptName"));
department.setCode((String) baseInfo.get("deptUniCode"));
if (parentInfo.get("isCorp").equals("0")){
Long departmentId = departmentManager.getDepartmentIdByCode((String) parentInfo.get("parentCode"));
if (StringUtils.isEmpty(departmentId)||departmentId.equals(-1L)){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_2_1_0004");
returnMap.put("errormsg","找不到父级");
return;
}
department.setSuperior(departmentId);
V3xOrgUnit unit = orgManager.getUnitById(departmentId);
department.setOrgAccountId(unit.getOrgAccountId());
} else if (parentInfo.get("isCorp").equals("1")){
Long accountId = accountManager.getAccountIdByCode((String) parentInfo.get("parentCode"));
if (StringUtils.isEmpty(accountId)||accountId.equals(-1L)){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_2_1_0004");
returnMap.put("errormsg","找不到父级");
return;
}
department.setSuperior(accountId);
department.setOrgAccountId(accountId);
}
department.setSortId(Long.parseLong((String) baseInfo.get("showNum")));
department.setEnabled(true);
orgManagerDirect.addDepartment(department);
}
private void deleteDept(Map<String, Object> map,Map<String,Object> returnMap) {
}
private void updateDept(Map<String, Object> map,Map<String,Object> returnMap) {
}
private void addMember(Map<String, Object> map,Map<String,Object> returnMap) throws BusinessException, ParseException {
Map<String,Object> syncContent = (Map<String, Object>) map.get("syncContent");
Map<String,Object> newContent = (Map<String, Object>) syncContent.get("newContent");
Map<String,Object> parentInfo = (Map<String, Object>) newContent.get("parentInfo");
Map<String,Object> baseInfo = (Map<String, Object>) newContent.get("baseInfo");
V3xOrgMember orgMember = orgManager.getMemberByLoginName((String) baseInfo.get("loginName"));
if (orgMember == null){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_2_1_0001");
returnMap.put("errormsg","用户已存在");
return;
}
if (StringUtils.isEmpty(baseInfo.get("userName"))|| StringUtils.isEmpty(baseInfo.get("loginName"))||
StringUtils.isEmpty(parentInfo.get("corpName"))|| StringUtils.isEmpty(parentInfo.get("parentCode"))
|| StringUtils.isEmpty(parentInfo.get("showNum"))){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_2_1_0003");
returnMap.put("errormsg","必填属性未填");
return;
}
String accountCode = (String) parentInfo.get("corpName"); //公司编码
String departmentCode = (String) parentInfo.get("parentCode"); //部门编码
Long accountId = accountManager.getAccountIdByCode(accountCode);
Long departmentId = departmentManager.getDepartmentIdByCode(departmentCode);
System.out.println("accountId:"+accountId+",departmentId:"+departmentId);
if (StringUtils.isEmpty(accountId)|| StringUtils.isEmpty(departmentId)||accountId.equals(-1L)||departmentId.equals(-1L)){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_2_1_0004");
returnMap.put("errormsg","找不到父级");
return;
}
V3xOrgMember member = new V3xOrgMember();
member.setIdIfNew();
member.setName((String) baseInfo.get("userName"));
member.setProperty("birthday",Datetimes.parse(String.valueOf(baseInfo.get("birthday")), TimeZone.getDefault(), "yyyy-MM-dd"));
member.setProperty("idnum",(String)baseInfo.get("idCardNumber"));
Integer gender = baseInfo.get("gender").equals("Z02") ? 2 : 1;
member.setProperty("gender",gender);
member.setProperty("telnumber",(String)baseInfo.get("mobile"));
member.setProperty("officenumber",(String)baseInfo.get("telephone"));
member.setProperty("emailaddress",(String)baseInfo.get("email"));
member.setSortId(Long.parseLong((String) parentInfo.get("showNum")));
V3xOrgPrincipal v3xOrgPrincipal = member.getV3xOrgPrincipal();
v3xOrgPrincipal.setLoginName((String) baseInfo.get("loginName"));
v3xOrgPrincipal.setPassword("123456");
member.setV3xOrgPrincipal(v3xOrgPrincipal);
member.setOrgAccountId(accountId);
member.setOrgDepartmentId(departmentId);
member.setLoginName(member,(String) baseInfo.get("loginName"));
OrganizationMessage organizationMessage= orgManagerDirect.addMember(member);
System.out.println(organizationMessage.isSuccess());
if (!organizationMessage.isSuccess()){
returnMap.put("status",2);
returnMap.put("errcode","SYNC_ERR_2_1_9999");
returnMap.put("errormsg","其它错误");
}else {
returnMap.put("status",1);
returnMap.put("errcode","");
returnMap.put("errormsg","");
}
}
private void deleteMember(Map<String, Object> map,Map<String,Object> returnMap) {
}
private void updateMember(Map<String, Object> map,Map<String,Object> returnMap) {
}
}
\ No newline at end of file
package com.seeyon.ctp.common.sync.manager;
import java.util.Map;
import com.eetrust.eim.plugin.constants.UapuConstants;
import com.eetrust.eim.plugin.pojo.SyncResult;
import com.eetrust.eim.plugin.pojo.uapu.SyncUapuOrg;
import com.eetrust.eim.plugin.pojo.uapu.SyncUapuSimpleUser;
import com.eetrust.eim.plugin.service.AbstractSimpleUapuService;
import com.eetrust.eim.plugin.util.SyncUtil;
import com.eetrust.eim.plugin.util.XmlParser;
public class SyncService extends AbstractSimpleUapuService {
/**
* 添加或修改组织机构
* @param dept
* @return 返回错误信息:null为成功
*/
public SyncResult addOrModUapuOrg(SyncUapuOrg dept) throws Exception {
String uniCode = dept.getSyncUniCode();//组织机构唯一标识
//需要必填的属性未填写,返回错误
if (uniCode == null || uniCode.trim().equals("")) {
return XmlParser.getInstance().getSyncResult("SYNC_ERR_1_1_0003");
}
String deptName = dept.getDeptName();//组织机构名称
String deptStatus = dept.getDeptStatus();//组织机构状态:1为启用;2为停用(请根据系统自身情况进行转换)
String parentCode = dept.getParentCode();//组织机构上级部门
String showNum = dept.getShowNum();//组织机构排序号
Map<String, String> otherAttributesMap = dept.getSingleValueMap();//组织机构的其它属性,键为英文名
//String address = otherAttributesMap.get("address"); //如果统一用户管理系统中存在地址字段,且属性名为address,则能够通过本方式获取到(注意null的判断)
//将获取到的信息存库
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IDeptDAO deptDAO = (IDeptDAO)SyncUtil.getInstance().getBean("deptDAO");//引号中为spring中注入bean的name
//保存或更新成功后,直接返回null即可。
//return null;
//如果在保存或更新过程中出现问题,请返回错误信息(见错误码表),代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_1_1_0003");
//当返回错误为其它错误时,建议填写错误信息,以便于运维过程中排查问题,代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_1_1_9999", "sql执行过程中出现错误,用户手机号重复");
return null;
}
/**
* 添加或修改用户
*@param user
* @return 返回错误信息:null为成功
*/
public SyncResult addOrModUapuUser(SyncUapuSimpleUser user) throws Exception {
String uniCode = user.getSyncUniCode();//用户唯一标识
//需要必填的属性未填写,返回错误
if (uniCode == null || uniCode.trim().equals("")) {
return XmlParser.getInstance().getSyncResult("SYNC_ERR_2_1_0003");
}
String userName = user.getUserName();//用户名称
String loginName = user.getLoginName();//用户帐号
String deptStatus = user.getAccountStatus();//用户状态:1为启用;3为停用(请根据系统自身情况进行转换)
String parentCode = user.getParentCode();//用户所属部门编码(同步来组织机构的uniCode值)
String showNum = user.getShowNum();//用户排序号
Map<String, String> otherAttributesMap = user.getSingleValueMap();//用户的其它属性,键为英文名
//String mobile = otherAttributesMap.get("mobile"); //如果统一用户管理系统中存在手机号字段,且属性名为mobile,则能够通过本方式获取到(注意null的判断)
//将获取到的信息存库
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IUserDAO userDAO = (IUserDAO)SyncUtil.getInstance().getBean("userDAO");//引号中为spring中注入bean的name
//保存或更新成功后,直接返回null即可,代码示例如下:
//return null;
//如果在保存或更新过程中出现问题,请返回错误信息(见错误码表),代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_2_1_0003");
//当返回错误为其它错误时,建议填写错误信息,以便于运维过程中排查问题,代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_2_1_9999", "sql执行过程中出现错误,用户手机号重复");
return null;
}
/**
* 删除组织机构
*@param dept
* @return 返回错误信息:null为成功
*/
public SyncResult delUapuOrg(SyncUapuOrg dept) throws Exception {
String uniCode = dept.getSyncUniCode();//组织机构唯一标识
//需要必填的属性未填写,返回错误
if (uniCode == null || uniCode.trim().equals("")) {
return XmlParser.getInstance().getSyncResult("SYNC_ERR_1_2_0003");
}
//根据uniCode唯一标识删除组织机构
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IDeptDAO deptDAO = (IDeptDAO)SyncUtil.getInstance().getBean("deptDAO");//引号中为spring中注入bean的name
//删除成功后,直接返回null即可,代码示例如下:
//return null;
return null;
}
/**
* 删除用户
*@param user
* @return 返回错误信息:null为成功
*/
public SyncResult delSimpleUapuUser(SyncUapuSimpleUser user)
throws Exception {
String uniCode = user.getSyncUniCode();//用户唯一标识
//需要必填的属性未填写,返回错误
if (uniCode == null || uniCode.trim().equals("")) {
return XmlParser.getInstance().getSyncResult("SYNC_ERR_2_2_0003");
}
//根据uniCode唯一标识删除用户
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IUserDAO userDAO = (IUserDAO)SyncUtil.getInstance().getBean("userDAO");//引号中为spring中注入bean的name
//删除成功后,直接返回null即可,代码示例如下:
//return null;
return null;
}
/**
* 判断组织机构是否存在(可不用实现)
*/
public Boolean existUapuOrg(String uniCode) throws Exception {
//唯一标识为传递值,则无需判断是否存在
if (uniCode == null || uniCode.trim().equals("")) {
return null;
}
//根据uniCode唯一标识查询组织机构
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IDeptDAO deptDAO = (IDeptDAO)SyncUtil.getInstance().getBean("deptDAO");//引号中为spring中注入bean的name
//查询成功后,根据查询结果返回true或false,组织机构存在代码示例如下:
//return true;
//组织机构不存在代码示例如下:
//return false;
//出现异常代码示例如下:
//return null;
return null;
}
/**
* 判断用户是否存在(可不用实现)
*/
public Boolean existUapuUser(String uniCode) throws Exception {
//唯一标识为传递值,则无需判断是否存在
if (uniCode == null || uniCode.trim().equals("")) {
return null;
}
//根据uniCode唯一标识查询用户
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,如:
//IUserDAO userDAO = (IUserDAO)SyncUtil.getInstance().getBean("userDAO");//引号中为spring中注入bean的name
//查询成功后,根据查询结果返回true或false,用户存在代码示例如下:
//return true;
//用户不存在代码示例如下:
//return false;
//出现异常代码示例如下:
//return null;
return null;
}
}
...@@ -51,7 +51,7 @@ public class XmlUtil { ...@@ -51,7 +51,7 @@ public class XmlUtil {
Element changeContent = (Element)syncContent.selectSingleNode("./changeContent"); Element changeContent = (Element)syncContent.selectSingleNode("./changeContent");
syncContentMap.put("changeContent",element2Map(changeContent)); syncContentMap.put("changeContent",element2Map(changeContent));
Element newContent = (Element)syncContent.selectSingleNode("./newContent"); Element newContent = (Element)syncContent.selectSingleNode("./newContent");
syncContentMap.put("newContent ",element2Map(newContent)); syncContentMap.put("newContent",element2Map(newContent));
map.put("syncContent",syncContentMap); map.put("syncContent",syncContentMap);
// 获得当前节点的子节点 // 获得当前节点的子节点
...@@ -72,27 +72,53 @@ public class XmlUtil { ...@@ -72,27 +72,53 @@ public class XmlUtil {
private static Map<String,Object> element2Map( Element element) { private static Map<String,Object> element2Map( Element element) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
Element baseInfo = (Element) element.selectSingleNode("./baseInfo"); Element baseInfo = (Element) element.selectSingleNode("./baseInfo");
List<Element> childElements = baseInfo.elements(); if (baseInfo != null){
if (childElements.size() > 0) { List childElements = baseInfo.elements();
Map<String, Object> tempMap = new HashMap<>(); if (childElements.size() > 0) {
Iterator var33 = childElements.iterator(); Map<String, Object> tempMap = new HashMap<>();
while(var33.hasNext()) { Iterator var33 = childElements.iterator();
Element element1 = (Element)var33.next(); while(var33.hasNext()) {
tempMap.put(element1.getName(),element1.getText()); Element element1 = (Element)var33.next();
tempMap.put(element1.getName(),element1.getText());
}
map.put("baseInfo",tempMap);
} }
map.put("baseInfo",tempMap);
} }
Element parentInfo = (Element) element.selectSingleNode("./parentInfo"); Element parentInfo = (Element) element.selectSingleNode("./parentInfo");
List<Element> childElements1 = parentInfo.elements(); if (parentInfo != null){
if (childElements1.size() > 0) {
Map<String, Object> tempMap = new HashMap<>(); Map<String, Object> tempMap = new HashMap<>();
Iterator var44 = childElements1.iterator(); Element parentCode = (Element) parentInfo.selectSingleNode("./parentCode");
while(var44.hasNext()) { tempMap.put(parentCode.getName(),parentCode.getText());
Element element1 = (Element)var44.next(); // List childElements1 = parentInfo.elements();
tempMap.put(element1.getName(),element1.getText()); // if (childElements1.size() > 0) {
} // Iterator var44 = childElements1.iterator();
// while(var44.hasNext()) {
// Element element1 = (Element)var44.next();
// tempMap.put(element1.getName(),element1.getText());
// }
//
// Element parentCode = (Element) childElements1.get(0).selectSingleNode("./parentInfo");
// tempMap.put("isCorp",syncContent.attributeValue("isCorp"));
// map.put("parentInfo",tempMap);
// }
tempMap.put("isCorp",parentCode.attributeValue("isCorp"));
map.put("parentInfo",tempMap); map.put("parentInfo",tempMap);
} }
return map; return map;
} }
public static String recursionMapToXml(Map<String ,Object> map){
Document document = DocumentHelper.createDocument();
Element root = document.addElement("returnData");
for (String key: map.keySet()) {
String value = map.get(key).toString();
if (value == null) {
value = "";
}
value = value.trim();
Element filed = root.addElement(key);
filed.setText(value);
}
return document.asXML();
}
} }
package com.seeyon.ctp.common.web.filter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.seeyon.ctp.common.AppContext;
import com.seeyon.ctp.common.i18n.ResourceUtil;
/**
* Servlet身份校验。
* @author wangwenyou
*
*/
public class ServletAuthenticator extends AbstractAuthenticator {
private static Log LOG = LogFactory.getLog(ServletAuthenticator.class);
@Override
public void afterFailure(HttpServletRequest request, HttpServletResponse response) throws Exception {
String uri = request.getRequestURI().substring(8);
if(uri.endsWith(".psml")) {
// PortalServlet
PrintWriter out = response.getWriter();
out.println("<script type=\"text/javascript\" charset=\"UTF-8\" src=\"" + request.getContextPath()
+ "/common/js/V3X.js\"></script>");
out.println("<script>");
// 刷新空间
out.println("alert(\"" + ResourceUtil.getString("loginUserState.unknown") + "\");");
out.println("if(getA8Top){getA8Top().location.href =\"" + request.getContextPath()
+ "/main.do?method=logout\";}\n");
out.println("</script>");
out.close();
}else {
super.afterFailure(request, response);
}
}
// Servlet列表
private static List<String> servlets = Arrays.asList("getAJAXMessageServlet",
"getAJAXOnlineServlet", "htmlofficeservlet", "isignaturehtmlH5servlet", "isignaturehtmlservlet",
"login/sso", "login/ssologout", "m-signature/", "ofdServlet", "office/cache/", "officeservlet",
"pdfservlet", "sursenServlet", "verifyCodeImage.jpg");
// 可匿名访问的白名单
private static List<String> anonymousWhiteList = Arrays.asList("login/sso","verifyCodeImage.jpg","thirdparyServlet");
@Override
public boolean authenticate(HttpServletRequest request, HttpServletResponse response) throws Exception {
AppContext.initSystemEnvironmentContext(request, response);
if(AppContext.getCurrentUser() != null) {
return true;
}
String uri = request.getRequestURI().substring(8);
for (String string : anonymousWhiteList) {
if (uri.startsWith(string)) {
return true;
}
}
HttpSession session = request.getSession(false);
String sessionId = session!=null ? session.getId() : "";
LOG.warn("servlet " + uri + "'s anonymous access fail:" + sessionId);
return false;
}
public static boolean accept(HttpServletRequest request) {
String uri = request.getRequestURI().substring(8);
if(uri.endsWith(".psml")) {
return true;
}
for (String string : servlets) {
if (uri.startsWith(string)) {
return true;
}
}
return false;
}
}
...@@ -7817,6 +7817,11 @@ public class CollaborationResource extends BaseResource { ...@@ -7817,6 +7817,11 @@ public class CollaborationResource extends BaseResource {
Map<String , Object> main = isNull(param.get("main")) ? null : (Map<String , Object>)param.get("main") ; //主表数据 Map<String , Object> main = isNull(param.get("main")) ? null : (Map<String , Object>)param.get("main") ; //主表数据
List<Object> sub = isNull(param.get("sub")) ? null : (List<Object>)param.get("sub"); //重复表数据 List<Object> sub = isNull(param.get("sub")) ? null : (List<Object>)param.get("sub"); //重复表数据
if(main != null && !main.isEmpty()) { if(main != null && !main.isEmpty()) {
if (main.get("confidentiality").equals("是")){
main.put("confidentiality",1);
}else {
main.put("confidentiality",0);
}
Map<String, String> yingsheguanxiMap = (Map<String, String>)mped.get("main") ; Map<String, String> yingsheguanxiMap = (Map<String, String>)mped.get("main") ;
Set<String> mainSet = main.keySet() ; Set<String> mainSet = main.keySet() ;
for(String key : mainSet) { for(String key : mainSet) {
...@@ -8331,7 +8336,17 @@ public class CollaborationResource extends BaseResource { ...@@ -8331,7 +8336,17 @@ public class CollaborationResource extends BaseResource {
return ok(map); return ok(map);
} }
@POST
@Consumes(MediaType.APPLICATION_XML)
@Path("test")
@RestInterfaceAnnotation
public Response getPrintSummary(String xml) throws BusinessException,Exception {
Map<String, Object> map1 = XmlUtil.xml2map(xml);
Map<String, Object> map = new HashMap<String, Object>();
map.put("success", true);
map.put("date", map1);
return ok(map);
}
} }
...@@ -118,4 +118,8 @@ ...@@ -118,4 +118,8 @@
<!-- 协同插件管理器 --> <!-- 协同插件管理器 -->
<bean id="collaborationPluginManager" class="com.seeyon.apps.collaboration.manager.CollaborationPluginManagerImpl"></bean> <bean id="collaborationPluginManager" class="com.seeyon.apps.collaboration.manager.CollaborationPluginManagerImpl"></bean>
<bean id="V3xAccountManager" class="com.seeyon.v3x.services.organization.impl.AccountManagerImpl"></bean>
<bean id="V3xDepartmentManager" class="com.seeyon.v3x.services.organization.impl.DepartmentManagerImpl"></bean>
</beans> </beans>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment