我刚开始流口水,有一些问题。我正在制定规则,以检测商店各部门的客户。
我的型号如下:
客户:Id,点(x,y)
部门:ID,矩形
客户事件
目前,我用x、y位置或点表示客户,用矩形表示部门。
1)如何编写规则来检测客户是否位于矩形中?
2.)如果客户在一个部门内更改位置至少2次,则触发事件。我如何编写规则来检测客户是否在某个部门,是否已更改位置两次?
请让我知道。
谢啦!
公共类CustomerObj{
public CustomerObj(String custId, Integer timestamp) {
super();
this.custId = custId;
this.timestamp = timestamp;
}
private String custId;
private long timestamp;
private Integer classification;
private Point location;
private Department department;
public long getTimestamp() {
return timestamp;
}
public void setTimestamp(Integer timestamp) {
this.timestamp = timestamp;
}
public String getCustId() {
return custId;
}
public void setCustId(String custId) {
this.custId = custId;
}
public Integer getClassification() {
return classification;
}
public void setClassification(Integer classification) {
this.classification = classification;
}
public Point getLocation() {
return location;
}
public void setLocation(Point location) {
this.location = location;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
}
公共课部{
public Department(Integer departmentId) {
super();
this.departmentId = departmentId;
}
private Integer departmentId;
private Rectangle deptLocation;
public Integer getDepartmentId() {
return departmentId;
}
public void setDepartmentId(Integer departmentId) {
this.departmentId = departmentId;
}
public boolean containsCustomer(CustomerObj c) {
if (this.deptLocation.contains(c.getLocation())) return true;
else return false;
}
}
假设矩形和点来自java。哎呀,事情很简单。
rule "customer in department"
when
CustomerObj( $cid: custId, $p: point )
Department( $did: departmentId, $dloc: deptLocation,
$dloc.contains( $p ) )
then
System.out.println( "customer " + $cid + " in " + $did );
end
至于移动,您需要一个CustomerEvent,显示客户和部门id以及位置。
rule "customer moves frequently in same department"
when
CustomerEvent( $cid: custId, $did: dptmtId, $p: Point )
$dep: Department( departmentId == $did )
$cust: CustomerObj( custId == $cid, department == $dep, moves >= 1 )
then
// whatever
end
请注意,您需要其他规则来更改客户中的部门参考和注册第一步,以及可能计算第二步之后的步数。
我试图使用Bazel编译一个基于dhall-kubernetes的dhall程序来生成一个Kubernetes YAML文件。 不使用dhall-kubernetes的基本dhall编译使用一个简单的bazel宏可以正常工作。 构建。dhall-Kubernetes: 示例/K8S/Build:
我正在Groovy中创建一个DSL来进行Httpendpoint测试,我希望它是自然语言ish,并且我有一个带有“with”方法的对象。当我链接命令时,我的方法被正确调用,但如果在变量脚本上调用“with”方法,则编译会失败,因为使用了现有的Groovy“with(Closure)”。DSL脚本文件是通过GroovyShell读取和执行的。 这很有效: 但事实并非如此: 被调用的对象是用Java编
我当前的Android应用程序使用Firebase实时数据库。 我正在与安全规则作斗争,因为我希望只允许单个用户写入数据,同时允许任何经过身份验证的用户读取数据。 我制定了这些规则,但不确定它们是否足够安全。。。 其中“XXXXXXXXXXXXXXXXXXXX”是我希望允许写入数据的指定用户。 用户的uid是常量值吗? 在测试新规则时,单击“模拟”按钮时,“验证”选项管理什么?
我想运行一个调用Java方法并从另一个规则传递事实(或者更确切地说,它的逻辑值)的规则,尽管我不知道java方法是否对这个问题很重要。描述起来并不容易,所以我将尝试基于一个示例来展示它: 这里的问题是,第一条规则并不总是触发,因此不总是定义某些条件,也不计算第二条规则。 我的第二次尝试是创建这样两个独立的规则: 这也不能像预期的那样工作,因为它首先计算someconditionfalse规则,甚至
问题内容: 我有如下所示的ind Mysql可用性表: 每个房间的每个可用日期都有一行。可能存在间隙,例如,房间1可能有8月1,2,3,5,6,13,14,15的条目,隔天不可用。 我需要查询以找到room_ids列表,其中在日期范围内每天都有可用的空间。 换句话说,获取room_id列表,其中在开始日期和结束日期之间的每个日期都有每个房间的条目。 问题答案: 您想要这样的东西: 该子句将计算该时
我的uidConnections集合是一个链表,其中是和==specialevents.uid。 如何编写一个Firebase Cloud Firestore规则,其中用户只能访问uidConnections.connecteduid==specialEvents.uid和uidConnections.uid==request.auth.uid的specialEvents? 我现在在的地方...