UserLogin Party Person PartyGroup四个model关系

只需从userloginmodel入手
其model定义是
<entity entity-name="UserLogin"
package-name="org.ofbiz.security.login"
title="User Login Entity">
<field name="userLoginId" type="id-vlong-ne"></field>
<field name="currentPassword" type="short-varchar"></field>
<field name="passwordHint" type="description"></field>
<field name="isSystem" type="indicator"></field>
<field name="enabled" type="indicator"></field>
<field name="hasLoggedOut" type="indicator"></field>
<field name="requirePasswordChange" type="indicator"></field>
<field name="lastCurrencyUom" type="id"></field>
<field name="lastLocale" type="very-short"></field>
<field name="lastTimeZone" type="id-long"></field>
<field name="disabledDateTime" type="date-time"></field>
<field name="successiveFailedLogins" type="numeric"></field>
<field name="externalAuthId" type="id-vlong-ne">
<description>For use with external authentication; the userLdapDn should be replaced with this</description>
</field>
<field name="userLdapDn" type="id-vlong-ne">
<description>The user's LDAP Distinguished Name - used for LDAP authentication</description>
</field>
<prim-key field="userLoginId"/>
</entity>

这里是在framework\security\entitydef下面的定义,无关紧要,直接去applications\party\entitymodel.xml找到

<extend-entity entity-name="UserLogin">
<field name="partyId" type="id"></field>
<relation type="one" fk-name="USER_PARTY" rel-entity-name="Party">
<key-map field-name="partyId"/>
</relation>
<relation type="one-nofk" rel-entity-name="Person">
<key-map field-name="partyId"/>
</relation>
<relation type="one-nofk" rel-entity-name="PartyGroup">
<key-map field-name="partyId"/>
</relation>
</extend-entity>

可以看到改内容对UserLogin进行的扩展。提供了更多信息。
首先看到它和三张表Party Person PartyGroup都有关系。
到数据库查看第一张表Party ,定义如下

[img]http://dl.iteye.com/upload/attachment/544481/d5fb3432-43ee-31b8-885b-7fa9eca30155.png[/img]
UserLogin首先关联到表Party的PARTY_ID。找到Party后,由PARTY_TYPE_ID确定它是Person还是PartyGroup了。
其次,需要注意的是四张表的Party的PARTY_ID都是一样的数据类型VARCHAR(20)。
也就是说UserLogin的PARTY_ID能查到Party,然后根据PARTY_TYPE_ID决定查得是Person表还是PartyGroup表。

然后决定后,就可以去查实际的表了。
查的方式还是根据UserLogin的PARTY_ID和Person或者PartyGroup表的PARTY_ID相同的那条数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个方法定义,名为 `userLogin`,用于用户登录操作。该方法接受两个参数 `uname` 和 `upwd`,分别表示用户的用户名和密码。返回一个 `MessageModel` 类型的对象,表示登录结果。 在方法实现中,需要编写登录逻辑,通常包括以下几个步骤: 1. 根据用户名查询用户信息。 2. 判断用户是否存在,如果不存在则返回登录失败的提示信息。 3. 判断用户密码是否正确,如果不正确则返回登录失败的提示信息。 4. 登录成功,返回登录成功的提示信息。 示例代码如下: ``` public MessageModel userLogin(String uname, String upwd) { User user = userMapper.queryUserByName(uname); if (user == null) { return new MessageModel(false, "用户不存在"); } if (!user.getPassword().equals(upwd)) { return new MessageModel(false, "密码不正确"); } return new MessageModel(true, "登录成功"); } ``` 其中,`userMapper.queryUserByName(uname)` 表示调用 `UserMapper` 接口中的 `queryUserByName` 方法来查询用户信息。如果查询结果为 `null`,则表示用户不存在,返回登录失败的提示信息;否则,判断密码是否正确,如果不正确则同样返回登录失败的提示信息。最后,返回登录成功的提示信息。 `MessageModel` 是一个自定义的类,用于表示操作结果。它包括两个属性,分别表示操作是否成功和操作结果的提示信息。在上面的代码中,根据返回结果来创建一个新的 `MessageModel` 对象并返回。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值