Skip to content

Instantly share code, notes, and snippets.

@SinTeZWh1te
Last active March 7, 2024 10:09
Show Gist options
  • Save SinTeZWh1te/93ec0a1fdb6a9d9b60ebf2266441f511 to your computer and use it in GitHub Desktop.
Save SinTeZWh1te/93ec0a1fdb6a9d9b60ebf2266441f511 to your computer and use it in GitHub Desktop.
package ru.test.bgbilling.kernel.scripts.events;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.contract.param.common.bean.PhoneParamItem;
import ru.bitel.bgbilling.kernel.contract.param.common.bean.PhoneParamValue;
import ru.bitel.bgbilling.kernel.event.events.ContractParamBeforeChangeEvent;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import ru.bitel.oss.kernel.entity.common.bean.EntityAttrPhone;
import java.sql.Connection;
import java.util.Iterator;
/**
* @author sintezwh1te
*/
public class CheckParamBeforeChanged
extends EventScriptBase<ContractParamBeforeChangeEvent> {
private static final Logger logger = LogManager.getLogger();
@Override
public void onEvent(ContractParamBeforeChangeEvent event, Setup setup, ConnectionSet connectionSet)
throws Exception {
ServerContext serverContext = ServerContext.get();
Connection con = connectionSet.getConnection();
switch (event.getParamId()) {
case 9:
checkPhoneFormat(event);
}
}
private void checkPhoneFormat(ContractParamBeforeChangeEvent event) {
EntityAttrPhone entityAttrPhone = (EntityAttrPhone) event.getEntityAttr();
if (entityAttrPhone != null && !entityAttrPhone.getContactList().isEmpty()) {
for (EntityAttrPhone.PhoneContact contact : entityAttrPhone.getContactList()) {
if (!contact.getPhone().matches("^7\\d+")) {
event.setError("Неверно указан телефон: " + contact.getPhone());
}
}
} else {
PhoneParamValue phoneParamValue = (PhoneParamValue) event.getValue();
if (phoneParamValue != null && phoneParamValue.size() > 0) {
Iterator<PhoneParamItem> it = phoneParamValue.iterator();
while (it.hasNext()) {
PhoneParamItem item = it.next();
if (!item.getPhone().matches("^7\\d+")) {
event.setError("Неверно указан телефон: " + item.getPhone());
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment