Ver Fonte

获取推送用户信息

黄远 há 5 anos atrás
pai
commit
e9492068c0

+ 96 - 0
lift-common/src/main/java/cn.com.ty.lift.common/utils/MybatisSqlUtils.java

@@ -0,0 +1,96 @@
+package cn.com.ty.lift.common.utils;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author huangyuan
+ * @date 2020/4/18
+ * @description mybatis @select 自定义sql 处理工具
+ */
+public class MybatisSqlUtils {
+
+    /**
+     * @param params 查询参数
+     * @return 拼接的sql语句
+     * @description 通过给定参数拼接sql - 获取当前公司指定角色的用户信息
+     * @date 2020/4/18 6:27 下午
+     */
+    @SuppressWarnings("unchecked")
+    public String getPushUserInfoByRoleCodesSql(Map<String, Object> params) {
+
+        List<String> roleCodeList = (List<String>) params.get("roleCodeList");
+        Long companyId = (Long) params.get("companyId");
+        //获取通用语句
+        StringBuilder sql = getPushUserInfoSql();
+        if (roleCodeList != null && roleCodeList.size() > 0) {
+            sql.append("and r.code in (");
+            //拼接list语句
+            spliceList(roleCodeList, sql);
+        }
+        sql.append("and ur.company_id=").append(companyId);
+        System.out.println(sql.toString());
+        return sql.toString();
+    }
+
+    /**
+     * @param params 查询参数
+     * @return 拼接的sql语句
+     * @description 通过给定参数拼接sql - 获取当前公司指定角色的用户信息
+     * @date 2020/4/18 6:27 下午
+     */
+    @SuppressWarnings("unchecked")
+    public String getPushUserInfoByIdsSql(Map<String, Object> params) {
+        List<Long> userIdList = (List<Long>) params.get("userIdList");
+        Long companyId = (Long) params.get("companyId");
+        //获取通用语句
+        StringBuilder sql = getPushUserInfoSql();
+        if (userIdList != null && userIdList.size() > 0) {
+            sql.append("and ua.user_id in (");
+            //拼接list语句
+            spliceList(userIdList, sql);
+        }
+        sql.append("and ur.company_id=").append(companyId);
+        System.out.println(sql);
+        return sql.toString();
+    }
+
+    /**
+     * @param list 要拼接的list
+     * @description 拼接语句
+     * @date 2020/4/18 6:37 下午
+     */
+    private static void spliceList(List<?> list, StringBuilder sql) {
+        for (int i = 0; i < list.size(); i++) {
+            sql.append("'").append(list.get(i));
+            if (i == list.size() - 1) {
+                sql.append("')");
+            } else {
+                sql.append("',");
+            }
+        }
+    }
+
+    /**
+     * @return 通用语句
+     * @description 获取查询通用语句
+     * @date 2020/4/18 6:51 下午
+     */
+    private static StringBuilder getPushUserInfoSql() {
+        StringBuilder sql = new StringBuilder();
+        sql.append("select ui.user_id as userId, ");
+        sql.append("ui.name as userName, ");
+        sql.append("ua.mobile as mobile, ");
+        sql.append("ua.device_model as deviceModel, ");
+        sql.append("ua.device_flag as deviceFlag, ");
+        sql.append("r.name as roleName from ");
+        sql.append("user_account ua ");
+        sql.append("left join user_info ui on ua.user_id = ui.user_id ");
+        sql.append("left join user_role ur on ua.user_id = ur.user_id ");
+        sql.append("left join role r on r.id = ur.role_id ");
+        sql.append("where 1 = 1 ");
+        return sql;
+    }
+
+}
+