package com.yc.crm.mail.service; import com.yc.action.grid.GridUtils; import com.yc.crm.mail.entity.T482102Entity; import com.yc.service.BaseService; import org.apache.commons.lang3.StringUtils; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.stereotype.Service; import java.util.List; /** * @BelongsProject: eCoWorksV3 * @BelongsPackage: com.yc.crm.service * @author: xinyb * @CreateTime: 2024-07-26 09:06 * @Description: */ @Service public class MailAccountImpl extends BaseService implements MailAccountIfc { @Override public void addEmailAccount(T482102Entity account) { String sql = "set nocount on\n"; try { sql += "insert into t482102(companyId,companyName,email,password,alias_email,userCode,userName,receiveProtocol," + "receiveEmail,receivePassword,receiveSSL,receivePort,receiveHost," + "smtpEmail,smtpPassword,smtpSSL,smtpPort,smtpHost,invalid,bisync_flag,proxyFlag,mailType,create_time,update_time)\n" + "values(" + GridUtils.prossSqlParm(account.getCompanyId()) + "," + GridUtils.prossSqlParm(account.getCompanyName()) + "," + GridUtils.prossSqlParm(account.getEmail()) + "," + GridUtils.prossSqlParm(account.getPassword()) + "," + GridUtils.prossSqlParm(account.getAliasEmail()) + "," + GridUtils.prossSqlParm(account.getUserCode()) + "," + GridUtils.prossSqlParm(account.getUserName()) + "," + GridUtils.prossSqlParm(account.getReceiveProtocol()) + "," + GridUtils.prossSqlParm(account.getReceiveEmail()) + "," + GridUtils.prossSqlParm(account.getReceivePassword()) + "," + "'" + account.isReceiveSSL() + "'," + account.getReceivePort() + "," + GridUtils.prossSqlParm(account.getReceiveHost()) + "," + GridUtils.prossSqlParm(account.getSmtpEmail()) + "," + GridUtils.prossSqlParm(account.getSmtpPassword()) + ",'" + account.isSmtpSSL() + "'," + account.getSmtpPort() + "," + GridUtils.prossSqlParm(account.getSmtpHost()) + ",'" + account.isInvalid() + "','" + account.isBiSyncFlag() + "','" + account.isProxyFlag() + "'," + account.getMailType() + ",convert(varchar(19),getdate(),120),convert(varchar(19),getdate(),120))"; jdbcTemplate.update(sql); } catch (Exception e) { throw e; } } @Override public Integer updateEmailAccount(T482102Entity account) { String sql = "set nocount on\n"; try { sql += "update t482102 set alias_email=" + GridUtils.prossSqlParm(account.getAliasEmail()) + ","; if (StringUtils.isNotBlank(account.getPassword())) { sql += "password=" + GridUtils.prossSqlParm(account.getPassword()) + ","; } sql += " receiveEmail=" + GridUtils.prossSqlParm(account.getReceiveEmail()) + ","; if (StringUtils.isNotBlank(account.getReceivePassword())) { sql += "receivePassword=" + GridUtils.prossSqlParm(account.getReceivePassword()) + ","; } sql += " receiveSSL='" + account.isReceiveSSL() + "',receivePort=" + account.getReceivePort() + ", " + " receiveHost=" + GridUtils.prossSqlParm(account.getReceiveHost()) + "," + " smtpEmail=" + GridUtils.prossSqlParm(account.getSmtpEmail()) + ","; if (StringUtils.isNotBlank(account.getSmtpPassword())) { sql += "smtpPassword=" + GridUtils.prossSqlParm(account.getSmtpPassword()) + ","; } sql += " smtpSSL='" + account.isSmtpSSL() + "'," + " smtpPort=" + account.getSmtpPort() + ",smtpHost=" + GridUtils.prossSqlParm(account.getSmtpHost()) + "," + " invalid='" + account.isInvalid() + "',bisync_flag='" + account.isBiSyncFlag() + "',proxyFlag='" + account.isProxyFlag() + "'," + " mailType=" + account.getMailType() + "," + "update_time=convert(varchar(19),getdate(),120) " + " where userCode=" + GridUtils.prossSqlParm(account.getUserCode()) + " and accountId=" + account.getAccountId(); sql += "select @@ROWCOUNT"; return jdbcTemplate.queryForObject(sql, Integer.class); } catch (Exception e) { throw e; } } @Override public Integer deleteEmailAccount(String userCode, Integer accountId) { String sql = "set nocount on\n"; try { sql += "delete t482102 where userCode='" + userCode + "' and accountId=" + accountId + "\n"; sql += "select @@ROWCOUNT"; return jdbcTemplate.queryForObject(sql, Integer.class); } catch (Exception e) { throw e; } } @Override public List getAccount(String userCode, String email) { String sql = "set nocount on\n"; try { sql += "select companyId,companyName,email,password,alias_email as aliasEmail,userCode,userName,accountId,receive_server_user_name as receiveServerUserName," + "isnull(bisync_flag,0) as biSyncFlag,isnull(proxyFlag,0) as proxyFlag,mailDomain,mailType,keywordList,siteUrl,receiveProtocol," + "receiveEmail,receivePassword,receiveSSL,receivePort,receiveHost,smtpEmail,smtpPassword,smtpSSL,smtpPort,smtpHost," + "isnull(invalid,0) as invalid,create_time as createTime,update_time as updateTime,DocVersion " + "from t482102 " + "where userCode=" + GridUtils.prossSqlParm(userCode); if (StringUtils.isNotBlank(email)) { sql += " and email=" + GridUtils.prossSqlParm(email); } return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(T482102Entity.class)); } catch (Exception e) { throw e; } } @Override public T482102Entity getAccountInfo(String userCode, String email) throws Exception { if (StringUtils.isBlank(userCode) || StringUtils.isBlank(email)) { throw new Exception("参数UserCode和email不能为空"); } List t482101HEntity = getAccount(userCode, email); if (t482101HEntity.size() > 0) { return t482101HEntity.get(0); } else { return null; } } }