学习sql很好的例子

4A-server:UserDao

    /**
     * 根据角色和租户查询用户
     * @param roleIds
     * @param tenantId
     * @return
     */
    public List<User> getUserByRoleIdAndTenantId(List<String> roleIds, Long tenantId) {

        StringBuffer sql = new StringBuffer(128);
        sql.append("SELECT * FROM GAP_USER WHERE TENANT_ID = " + tenantId + "");
        sql.append(" AND ID IN (SELECT USER_ID FROM GAP_USER_ROLE_RULE WHERE ROLE_ID ");

        List<Object> params = new LinkedList<>();
        sql.append(" IN ( ");
        for (String roleId : roleIds) {
            sql.append(" ?, ");
            params.add(roleId);
        }
        sql.deleteCharAt(sql.length() - 2).append(" )");

        sql.append(")");
        return queryForList(sql.toString(), params.toArray(),new ComplexMapper(User.class));
    }

4A-server:RoleDao

public List<RolePo> getPage(int start, int end, Map<String,Object> param, String orgTypeId, long... tenantId) {
    StringBuffer sql = new StringBuffer(128);
    List<Object> params = new LinkedList<>();
    sql.append(" SELECT ").append(RolePo.BASE_COLUMNS).append(" , T.NAME as tenant_name FROM GAP_ROLE R ");
    sql.append(" LEFT JOIN GAP_SYSTEM_TENANT T ON T.ID =R.TENANT_ID ");
    sql.append(" WHERE R.IS_DELETED = 0 ");
    if (StringUtil.isNotNull(orgTypeId) && !"0".equals(orgTypeId)) {
        params.add(orgTypeId);
        sql.append(" AND R.ORG_TYPE_ID = ? ");
    }
    if (null != tenantId && tenantId.length > 0) {
        sql.append(" AND R.TENANT_ID IN ( ");
        for (long t : tenantId) {
            sql.append(" ?, ");
            params.add(t);
        }
        sql.deleteCharAt(sql.length() - 2).append(" ) ");
    }
    if (!CollectionUtils.isMapEmpty(param)){
        if (StringUtil.isNotNull(param.get("code"))){
            sql.append(" AND ( R.CODE LIKE '%" + param.get("code") + "%')");
        }
        if (StringUtil.isNotNull(param.get("tenantName"))){
            sql.append(" AND ( T.NAME LIKE '%" + param.get("tenantName") + "%')");
        }
        if (StringUtil.isNotNull(param.get("remark"))){
            sql.append(" AND ( R.REMARK LIKE '%" + param.get("remark") + "%')");
        }
        if (StringUtil.isNotNull(param.get("name"))){
            sql.append(" AND ( R.NAME LIKE '%" + param.get("name") + "%')");
        }
    }
    //sql.append(Utils.generateSqlSegment("R",param));
    sql.append(" ORDER BY R.CODE ASC ");
    return queryForList(sql.toString(),start, end, params.toArray(), new ComplexMapper(RolePo.class));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lacrimosa&L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值