generated from dxfeng/secondev-chapanda-feishu
133 lines
7.1 KiB
Java
133 lines
7.1 KiB
Java
package weaver.formmode.yaq.modeexpand.email;
|
||
|
||
import com.engine.email.entity.EmailFlockSendAccountComInfo;
|
||
import com.engine.email.entity.EmailFlockSendSyncSetComInfo;
|
||
import com.engine.recruit.conn.RecruitDataMap;
|
||
import com.engine.recruit.exception.CustomizeRunTimeException;
|
||
import org.apache.commons.lang3.StringUtils;
|
||
import weaver.conn.RecordSet;
|
||
import weaver.email.EmailEncoder;
|
||
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
|
||
import weaver.general.BaseBean;
|
||
import weaver.general.Util;
|
||
import weaver.soa.workflow.request.MainTableInfo;
|
||
import weaver.soa.workflow.request.Property;
|
||
import weaver.soa.workflow.request.RequestInfo;
|
||
|
||
import java.util.HashMap;
|
||
import java.util.Map;
|
||
|
||
/**
|
||
* @author:dxfeng
|
||
* @createTime: 2024/08/26
|
||
* @version: 1.0
|
||
*/
|
||
public class EmailUpdateExpand extends AbstractModeExpandJavaCodeNew {
|
||
@Override
|
||
public Map<String, String> doModeExpand(Map<String, Object> param) {
|
||
Map<String, String> result = new HashMap<>();
|
||
try {
|
||
RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo");
|
||
if (requestInfo != null) {
|
||
String billId = Util.null2String(param.get("billid"));
|
||
String src = Util.null2String(param.get("src"));
|
||
if (StringUtils.isBlank(billId)) {
|
||
throw new CustomizeRunTimeException("数据ID获取失败");
|
||
}
|
||
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
|
||
Property[] properties = mainTableInfo.getProperty();
|
||
RecruitDataMap<String> mainDataMap = new RecruitDataMap<>();
|
||
for (Property property : properties) {
|
||
mainDataMap.put(property.getName(), property.getValue());
|
||
}
|
||
String qydqpz = mainDataMap.get("qydqpz");
|
||
// 如果是编辑操作、且当前配置未启用,不进行以下操作
|
||
if("save".equals(src) && "0".equals(qydqpz)){
|
||
return result;
|
||
}
|
||
|
||
|
||
|
||
String sendProtocol = mainDataMap.get("send_protocol");
|
||
String sendProtocolStr = "";
|
||
if (StringUtils.isNotBlank(sendProtocol)) {
|
||
switch (sendProtocol) {
|
||
case "0":
|
||
sendProtocolStr = "SMTP";
|
||
break;
|
||
case "1":
|
||
sendProtocolStr = "EXCHANGE";
|
||
break;
|
||
case "2":
|
||
sendProtocolStr = "Microsoft Graph";
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
if (StringUtils.isBlank(sendProtocolStr)) {
|
||
throw new CustomizeRunTimeException("发送协议转换失败,请检查配置");
|
||
}
|
||
String smtpServer = mainDataMap.get("smtp_server");
|
||
String sendNeedssl = mainDataMap.get("send_needssl");
|
||
String smtpServerPort = mainDataMap.get("smtp_serverport");
|
||
String isstarttls = mainDataMap.get("isstarttls");
|
||
String needCheck = mainDataMap.get("needcheck");
|
||
String accountName = mainDataMap.get("accountname");
|
||
String accountMailAddress = mainDataMap.get("accountmailaddress");
|
||
String accountId = mainDataMap.get("accountid");
|
||
String accountPassword = mainDataMap.get("accountpassword");
|
||
// 密码加密转换
|
||
String accountPasswordStr = EmailEncoder.EncoderPassword(accountPassword);
|
||
if (StringUtils.isBlank(accountPasswordStr)) {
|
||
throw new CustomizeRunTimeException("邮箱密码设置失败");
|
||
}
|
||
|
||
String ewsServiceUrl = mainDataMap.get("ews_service_url");
|
||
String ewsDomain = mainDataMap.get("ews_domain");
|
||
String ewsVersion = mainDataMap.get("ews_version");
|
||
String subcompanyid = mainDataMap.get("subcompanyid");
|
||
|
||
RecordSet rs = new RecordSet();
|
||
|
||
// 更新email_flocksendaccount表,指定subcompanyid的数据
|
||
//String sql = "insert into email_flocksendaccount (send_protocol, smtp_server, send_needssl, smtp_serverport, isstarttls, needcheck, accountname, accountmailaddress," +
|
||
// " accountid, accountpassword, ews_service_url, ews_domain, ews_version,subcompanyid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
|
||
//boolean flag = rs.executeUpdate(sql, sendProtocol, smtpServer, sendNeedssl, smtpServerPort, isstarttls, needCheck, accountName, accountMailAddress, accountId, accountPasswordStr, ewsServiceUrl, ewsDomain, ewsVersion, subcompanyid);
|
||
boolean flag;
|
||
rs.executeQuery("select * from email_flocksendaccount where subcompanyid = ?", subcompanyid);
|
||
String sql = "";
|
||
if (rs.next()) {
|
||
sql = "update email_flocksendaccount set send_protocol = ?,smtp_server = ?,send_needssl = ? , smtp_serverport = ? , isstarttls = ?, needcheck = ?, accountname = ?, accountmailaddress = ?," +
|
||
" accountid = ? , accountpassword = ? , ews_service_url = ? , ews_domain = ? , ews_version = ? where subcompanyid = ?";
|
||
flag = rs.executeUpdate(sql, sendProtocolStr, smtpServer, sendNeedssl, smtpServerPort, isstarttls, needCheck, accountName, accountMailAddress, accountId, accountPasswordStr, ewsServiceUrl, ewsDomain, ewsVersion, subcompanyid);
|
||
} else {
|
||
sql = "insert into email_flocksendaccount (send_protocol, smtp_server, send_needssl, smtp_serverport, isstarttls, needcheck, accountname, accountmailaddress," +
|
||
" accountid, accountpassword, ews_service_url, ews_domain, ews_version,subcompanyid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
|
||
flag = rs.executeUpdate(sql, sendProtocolStr, smtpServer, sendNeedssl, smtpServerPort, isstarttls, needCheck, accountName, accountMailAddress, accountId, accountPasswordStr, ewsServiceUrl, ewsDomain, ewsVersion, subcompanyid);
|
||
}
|
||
|
||
// 刷新缓存
|
||
EmailFlockSendAccountComInfo emailFlockSendAccountComInfo = new EmailFlockSendAccountComInfo();
|
||
emailFlockSendAccountComInfo.updateCache(subcompanyid);
|
||
EmailFlockSendSyncSetComInfo efsssci = new EmailFlockSendSyncSetComInfo();
|
||
efsssci.updateCache(subcompanyid);
|
||
|
||
|
||
if (flag) {
|
||
// 更新其他数据为不启用
|
||
rs.executeUpdate("update uf_recruit_email set qydqpz = 0 where id != ? ", billId);
|
||
rs.executeUpdate("update uf_recruit_email set qydqpz = 1 where id = ? ", billId);
|
||
}
|
||
|
||
}
|
||
return result;
|
||
} catch (Exception e) {
|
||
new BaseBean().writeLog("招聘邮箱设置异常", e);
|
||
result.put("errmsg", e.getMessage());
|
||
result.put("flag", "false");
|
||
return result;
|
||
}
|
||
}
|
||
}
|