|
@@ -16,6 +16,7 @@ import org.apache.ibatis.plugin.Invocation;
|
|
|
import org.apache.ibatis.plugin.Signature;
|
|
|
import org.apache.ibatis.session.ResultHandler;
|
|
|
import org.apache.ibatis.session.RowBounds;
|
|
|
+
|
|
|
import java.lang.reflect.Field;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
@@ -74,17 +75,11 @@ public class DataRangeInterceptor implements Interceptor {
|
|
|
} else {
|
|
|
String whereClause = "";
|
|
|
try {
|
|
|
- Integer userTypeID = this.accountService.getLoginUserTypeID();
|
|
|
- //1 求职者 2企业人员 3驿站工作者 4驿站机构人员 5区级管理员 6市级管理员
|
|
|
- if (userTypeID == 3 || userTypeID == 4) {
|
|
|
- whereClause = getJoinSqlBySiteUser(entityClass,userTypeID);
|
|
|
- }else{
|
|
|
- DataRange dataRange = this.dataRangeUtils.getCurrentRange();
|
|
|
- if (dataRange == null || dataRange.getRange() == DataRangeEnum.ALL) {
|
|
|
- return invocation.proceed();
|
|
|
- }
|
|
|
- whereClause = getJoinSql(entityClass, dataRange);
|
|
|
+ DataRange dataRange = this.dataRangeUtils.getCurrentRange();
|
|
|
+ if (dataRange == null || dataRange.getRange() == DataRangeEnum.ALL.getValue()) {
|
|
|
+ return invocation.proceed();
|
|
|
}
|
|
|
+ whereClause = getJoinSql(entityClass, dataRange);
|
|
|
|
|
|
if (!whereClause.equals("")) {
|
|
|
mainSql = "select x.* from" +
|
|
@@ -97,165 +92,52 @@ public class DataRangeInterceptor implements Interceptor {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- return executor.query(ms, parameter, rowBounds, resultHandler, cacheKey, boundSql);
|
|
|
- }
|
|
|
-
|
|
|
- private String getJoinSql(Class entityClass, DataRange dataRange) {
|
|
|
- Field institutionIDField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(InstitutionID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (institutionIDField != null) {
|
|
|
- return this.getJoinSqlByInstitution(institutionIDField, dataRange);
|
|
|
- }
|
|
|
- Field siteIDField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(SiteID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (siteIDField != null) {
|
|
|
- return this.getJoinSqlBySite(siteIDField, dataRange);
|
|
|
- }
|
|
|
- Field siteUserField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(SiteUserID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (siteUserField != null) {
|
|
|
- return this.getJoinSqlBySiteUser(siteUserField, dataRange);
|
|
|
- }
|
|
|
- Field companyIDField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(CompanyID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (companyIDField != null) {
|
|
|
- return this.getJoinSqlByCompany(companyIDField, dataRange);
|
|
|
- }
|
|
|
- Field postIDField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(PostID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (postIDField != null) {
|
|
|
- return this.getJoinSqlByPost(postIDField, dataRange);
|
|
|
- }
|
|
|
- Field jobUserIDField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(JobUserID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (jobUserIDField != null) {
|
|
|
- return this.getJoinSqlByJobUser(jobUserIDField, dataRange);
|
|
|
- }
|
|
|
- Field JobHuntIDField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(JobHuntID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (JobHuntIDField != null) {
|
|
|
- return this.getJoinSqlByJobHunt(JobHuntIDField, dataRange);
|
|
|
- }
|
|
|
- Field workIDField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(DoWorkID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (workIDField != null) {
|
|
|
- return this.getJoinSqlByLog(workIDField, dataRange);
|
|
|
- }
|
|
|
- Field taskIDField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(DoTaskID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (taskIDField != null) {
|
|
|
- return this.getJoinSqlByTask(taskIDField, dataRange);
|
|
|
- }
|
|
|
- return "";
|
|
|
- }
|
|
|
-
|
|
|
- private String getJoinSqlBySiteUser(Class entityClass,Integer userTypeID) {
|
|
|
-
|
|
|
- Field sysUserField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(UserID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (sysUserField != null) {
|
|
|
- return "inner join sys_user sysUser on x." + sysUserField.getName() + "= sysUser.UserID " +
|
|
|
- "where sysUser.UserID='" + accountService.getLoginUserID() + "'";
|
|
|
- }
|
|
|
-
|
|
|
- Field institutionField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(InstitutionID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (institutionField != null) {
|
|
|
- return "inner join pc_site_institution st on x." + institutionField.getName() + "= st.InstitutionID " +
|
|
|
- "inner join pc_site_user siteUser on st.SiteID = siteUser.SiteID " +
|
|
|
- "where siteUser.UserID = '" + accountService.getLoginUserID() + "'";
|
|
|
- }
|
|
|
-
|
|
|
- Field siteField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(SiteID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (siteField != null) {
|
|
|
- return "inner join pc_site_user siteUser on x." + siteField.getName() + "= siteUser.SiteID " +
|
|
|
- "where siteUser.UserID='" + accountService.getLoginUserID() + "'";
|
|
|
- }
|
|
|
-
|
|
|
- Field siteUserField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(SiteUserID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- Field workLogField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(DoWorkID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- Field workTaskField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(DoTaskID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
-
|
|
|
- if(userTypeID ==3){
|
|
|
- //驿站工作者只能查询自己
|
|
|
- if (siteUserField != null) {
|
|
|
- return "inner join pc_site_user siteUser on x." + siteUserField.getName() + "= siteUser.SiteUserID " +
|
|
|
- "where siteUser.UserID='" + accountService.getLoginUserID() + "'";
|
|
|
- }
|
|
|
- if (workLogField != null) {
|
|
|
- return "inner join pc_dowork doWork on x." + workLogField.getName() + "= doWork.DoWorkID " +
|
|
|
- "inner join pc_site_user siteUser on doWork.SiteUserID = siteUser.SiteUserID " +
|
|
|
- "where siteUser.UserID='" + accountService.getLoginUserID() + "'";
|
|
|
- }
|
|
|
- if (workTaskField != null) {
|
|
|
- return "inner join pc_dotask_user taskUser on x." + workTaskField.getName() + "= taskUser.DoTaskID " +
|
|
|
- "inner join pc_site_user siteUser on taskUser.SiteUserID = siteUser.SiteUserID " +
|
|
|
- "where siteUser.UserID='" + accountService.getLoginUserID() + "'";
|
|
|
- }
|
|
|
- }else{
|
|
|
- //驿站机构人员可以查询驿站内所有人员
|
|
|
- if (siteUserField != null) {
|
|
|
- return " where x." + siteUserField.getName() + " in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser where siteUser.SiteID in (" +
|
|
|
- " select theSiteUser.SiteID from pc_site_user theSiteUser"+
|
|
|
- " where theSiteUser.UserID='" + accountService.getLoginUserID() + "'))";
|
|
|
-
|
|
|
- }
|
|
|
- if (workLogField != null) {
|
|
|
- return " where x." + workLogField.getName() + " in (" +
|
|
|
- " select doWork.DoWorkID from pc_dowork doWork where doWork.SiteUserID in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser where siteUser.SiteID in (" +
|
|
|
- " select theSiteUser.SiteID from pc_site_user theSiteUser"+
|
|
|
- " where theSiteUser.UserID='" + accountService.getLoginUserID() + "')))";
|
|
|
- }
|
|
|
- if (workTaskField != null) {
|
|
|
- return " where x." + workTaskField.getName() + " in (" +
|
|
|
- " select taskUser.DoTaskID from pc_dotask_user taskUser where taskUser.SiteUserID in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser where siteUser.SiteID in (" +
|
|
|
- " select theSiteUser.SiteID from pc_site_user theSiteUser"+
|
|
|
- " where theSiteUser.UserID='" + accountService.getLoginUserID() + "')))";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- Field companyField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(CompanyID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (companyField != null) {
|
|
|
- return "inner join pc_company company on x." + companyField.getName() + "= company.CompanyID " +
|
|
|
- "inner join pc_site_user siteUser on company.SiteID = siteUser.SiteID " +
|
|
|
- "where siteUser.UserID='" + accountService.getLoginUserID() + "'";
|
|
|
+ try{
|
|
|
+ return executor.query(ms, parameter, rowBounds, resultHandler, cacheKey, boundSql);
|
|
|
}
|
|
|
-
|
|
|
- Field postField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(PostID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (postField != null) {
|
|
|
- return "inner join pc_post post on x." + postField.getName() + "= post.PostID " +
|
|
|
- "inner join pc_company company on post.CompanyID = company.CompanyID " +
|
|
|
- "inner join pc_site_user siteUser on company.SiteID = siteUser.SiteID " +
|
|
|
- "where siteUser.UserID='" + accountService.getLoginUserID() + "'";
|
|
|
+ catch (Exception ex){
|
|
|
+ return invocation.proceed();
|
|
|
}
|
|
|
|
|
|
- Field jobUserField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(JobUserID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (jobUserField != null) {
|
|
|
- return "inner join pc_jobuser jobUser on x." + jobUserField.getName() + "= jobUser.JobUserID " +
|
|
|
- "inner join pc_site_user siteUser on jobUser.SiteID = siteUser.SiteID " +
|
|
|
- "where siteUser.UserID='" + accountService.getLoginUserID() + "'";
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- Field jobHuntField = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(JobHuntID.class).length > 0)
|
|
|
- .findFirst().orElse(null);
|
|
|
- if (jobHuntField != null) {
|
|
|
- return "inner join pc_jobhunt jobHunt on x." + jobHuntField.getName() + "= jobHunt.JobHuntID " +
|
|
|
- "inner join pc_jobuser jobUser on jobHunt.JobUserID = jobUser.JobUserID " +
|
|
|
- "inner join pc_site_user siteUser on jobUser.SiteID = siteUser.SiteID " +
|
|
|
- "where siteUser.UserID='" + accountService.getLoginUserID() + "'";
|
|
|
- }
|
|
|
+ private String getJoinSql(Class entityClass, DataRange dataRange) {
|
|
|
+ return getJoinSqlByField(getField(entityClass, dataRange), dataRange);
|
|
|
+ }
|
|
|
|
|
|
- return "";
|
|
|
+ private Field getField(Class entityClass, DataRange dataRange) {
|
|
|
+ Field field = null;
|
|
|
+
|
|
|
+ DataRangeEnum dataRangeEnum = DataRangeEnum.getDataRangeByValue(dataRange.getRange());
|
|
|
+
|
|
|
+ switch (dataRangeEnum) {
|
|
|
+ case City:
|
|
|
+ break;
|
|
|
+ case Region:
|
|
|
+ field = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(RegionID.class).length > 0)
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ break;
|
|
|
+ case Institution:
|
|
|
+ field = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(InstitutionID.class).length > 0)
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ break;
|
|
|
+ case Site:
|
|
|
+ field = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(SiteID.class).length > 0)
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ break;
|
|
|
+ case Company:
|
|
|
+ field = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(CompanyID.class).length > 0)
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ break;
|
|
|
+ case SELF:
|
|
|
+ field = Arrays.stream(entityClass.getDeclaredFields()).filter(x -> x.getAnnotationsByType(SiteID.class).length > 0)
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return field;
|
|
|
}
|
|
|
|
|
|
private String getInStatement(List<String> rangeIDList) {
|
|
@@ -270,364 +152,13 @@ public class DataRangeInterceptor implements Interceptor {
|
|
|
}
|
|
|
|
|
|
|
|
|
- //运营机构数据筛选
|
|
|
- private String getJoinSqlByInstitution(Field keyField, DataRange dataRange) {
|
|
|
- String keyFieldName = keyField.getName();
|
|
|
- String inStatement = getInStatement(dataRange.getRangeIDList());
|
|
|
- if (!inStatement.trim().equals("")) {
|
|
|
- switch (dataRange.getRange()) {
|
|
|
- case DataRangeEnum.City:
|
|
|
- case DataRangeEnum.Region:
|
|
|
- return " where 1=1";
|
|
|
- case DataRangeEnum.Institution:
|
|
|
- return " where x." + keyFieldName + "in (" + inStatement + ")" ;
|
|
|
- case DataRangeEnum.Company:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select siteInst.InstitutionID from pc_site_institution siteInst where siteInst.SiteID in (" +
|
|
|
- " select company.SiteID from pc_company company" +
|
|
|
- " where company.CompanyID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Site:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select siteInst.InstitutionID from pc_site_institution"+
|
|
|
- " where siteInst.SiteID in (" + inStatement + ")" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.SELF:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select siteInst.InstitutionID from pc_site_institution siteInst where siteInst.SiteID in (" +
|
|
|
- " select siteUser.SiteID from pc_site_user siteUser" +
|
|
|
- " where siteUser.UserID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- default:
|
|
|
- return "";
|
|
|
- }
|
|
|
- } else {
|
|
|
- return "where 1=1";
|
|
|
- }
|
|
|
- }
|
|
|
- //驿站站点数据筛选
|
|
|
- private String getJoinSqlBySite(Field keyField, DataRange dataRange) {
|
|
|
- String keyFieldName = keyField.getName();
|
|
|
- String inStatement = getInStatement(dataRange.getRangeIDList());
|
|
|
- if (!inStatement.trim().equals("")) {
|
|
|
- switch (dataRange.getRange()) {
|
|
|
- case DataRangeEnum.City:
|
|
|
- case DataRangeEnum.Region:
|
|
|
- return " where 1=1";
|
|
|
- case DataRangeEnum.Institution:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select siteInst.SiteID from pc_site_institution siteInst"+
|
|
|
- " where siteInst.InstitutionID in (" + inStatement + ")" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Company:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select company.SiteID from pc_company company"+
|
|
|
- " where company.CompanyID in (" + inStatement + ")" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Site:
|
|
|
- return " where x." + keyFieldName + " in (" + inStatement + ")" ;
|
|
|
- case DataRangeEnum.SELF:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select siteUser.SiteID from pc_site_user siteUser"+
|
|
|
- " where siteUser.UserID in (" + inStatement + ")" +
|
|
|
- ")";
|
|
|
- default:
|
|
|
- return "";
|
|
|
- }
|
|
|
- }else {
|
|
|
+ private String getJoinSqlByField(Field keyField, DataRange dataRange) {
|
|
|
+ if (keyField == null || dataRange.getRangeIDList() == null || dataRange.getRangeIDList().size() == 0)
|
|
|
return "where 1=1";
|
|
|
- }
|
|
|
- }
|
|
|
- //站点人员数据筛选
|
|
|
- private String getJoinSqlBySiteUser(Field keyField, DataRange dataRange) {
|
|
|
- String keyFieldName = keyField.getName();
|
|
|
- String inStatement = getInStatement(dataRange.getRangeIDList());
|
|
|
- if (!inStatement.trim().equals("")) {
|
|
|
- switch (dataRange.getRange()) {
|
|
|
- case DataRangeEnum.City:
|
|
|
- case DataRangeEnum.Region:
|
|
|
- return " where 1=1";
|
|
|
- //若数据范围为机构,则查询属于当前登录人的驿站所属机构下的所有驿站人员信息
|
|
|
- case DataRangeEnum.Institution:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser where siteUser.SiteID in (" +
|
|
|
- " select siteInst.SiteID from pc_site_institution siteInst" +
|
|
|
- " where siteInst.InstitutionID in (" + inStatement + ")" +
|
|
|
- ")";
|
|
|
- //若数据范围为公司,则查询属于当前登录人的驿站所属公司下的所有驿站人员信息
|
|
|
- case DataRangeEnum.Company:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser where siteUser.SiteID in (" +
|
|
|
- " select company.SiteID from pc_company company" +
|
|
|
- " where company.CompanyID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- //若数据范围为驿站,则查询属于当前登录人的所属驿站的所有驿站人员信息
|
|
|
- case DataRangeEnum.Site:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser" +
|
|
|
- " where siteUser.SiteID in (" + inStatement + ")" +
|
|
|
- ")";
|
|
|
- //若数据范围为本人,则查询属于当前登录人绑定的驿站人员信息
|
|
|
- case DataRangeEnum.SELF:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser" +
|
|
|
- " where siteUser.UserID in (" + inStatement + ")" +
|
|
|
- ")";
|
|
|
- default:
|
|
|
- return "";
|
|
|
- }
|
|
|
- }else {
|
|
|
- return "where 1=1";
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- //公司信息数据筛选
|
|
|
- private String getJoinSqlByCompany(Field keyField, DataRange dataRange) {
|
|
|
String keyFieldName = keyField.getName();
|
|
|
String inStatement = getInStatement(dataRange.getRangeIDList());
|
|
|
- if (!inStatement.trim().equals("")) {
|
|
|
- switch (dataRange.getRange()) {
|
|
|
- case DataRangeEnum.City:
|
|
|
- case DataRangeEnum.Region:
|
|
|
- return " where 1=1";
|
|
|
- case DataRangeEnum.Institution:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select company.CompanyID from pc_company company where company.SiteID in (" +
|
|
|
- " select siteInst.SiteID from pc_site_institution siteInst "+
|
|
|
- " where siteInst.InstitutionID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Company:
|
|
|
- return " where x." + keyFieldName + "in (" + inStatement + ")" ;
|
|
|
- case DataRangeEnum.Site:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select company.CompanyID from pc_company company " +
|
|
|
- " where company.SiteID in (" + inStatement + ")" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.SELF:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select company.CompanyID from pc_company company where company.SiteID in (" +
|
|
|
- " select siteUser.SiteID from pc_site_user siteUser"+
|
|
|
- " where siteUser.UserID in (" + inStatement + ")" +
|
|
|
- ")";
|
|
|
- default:
|
|
|
- return "";
|
|
|
- }
|
|
|
- }else {
|
|
|
- return "where 1=1";
|
|
|
- }
|
|
|
- }
|
|
|
- //岗位信息数据筛选
|
|
|
- private String getJoinSqlByPost(Field keyField, DataRange dataRange) {
|
|
|
- String keyFieldName = keyField.getName();
|
|
|
- String inStatement = getInStatement(dataRange.getRangeIDList());
|
|
|
- if (!inStatement.trim().equals("")) {
|
|
|
- switch (dataRange.getRange()) {
|
|
|
- case DataRangeEnum.Region:
|
|
|
- case DataRangeEnum.City:
|
|
|
- return " where 1=1";
|
|
|
- case DataRangeEnum.Institution:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select post.PostID from pc_post post where post.CompanyID in (" +
|
|
|
- " select company.CompanyID from pc_company company where company.SiteID in ("+
|
|
|
- " select siteInst.SiteID from pc_site_institution siteInst "+
|
|
|
- " where siteInst.InstitutionID in ("+ inStatement + ")))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Site:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select post.PostID from pc_post post where post.CompanyID in (" +
|
|
|
- " select company.CompanyID from pc_company company"+
|
|
|
- " where company.SiteID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Company:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select post.PostID from pc_post post" +
|
|
|
- " where post.CompanyID in (" + inStatement + ")))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.SELF:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select post.PostID from pc_post post where post.CompanyID in (" +
|
|
|
- " select company.CompanyID from pc_company company where company.SiteID in (" +
|
|
|
- " select siteUser.SiteID from pc_site_user siteUser" +
|
|
|
- " where siteUser.UserID in (" + inStatement + ")))" +
|
|
|
- ")";
|
|
|
- default:
|
|
|
- return "";
|
|
|
- }
|
|
|
- } else {
|
|
|
- return "where 1=1";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
- //求职人员信息数据筛选
|
|
|
- private String getJoinSqlByJobUser(Field keyField, DataRange dataRange) {
|
|
|
- String keyFieldName = keyField.getName();
|
|
|
- String inStatement = getInStatement(dataRange.getRangeIDList());
|
|
|
- if (!inStatement.trim().equals("")) {
|
|
|
- switch (dataRange.getRange()) {
|
|
|
- case DataRangeEnum.City:
|
|
|
- case DataRangeEnum.Region:
|
|
|
- return " where 1=1";
|
|
|
- case DataRangeEnum.Institution:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select jobUser.JobUserID from pc_jobuser jobUser where jobUser.SiteID in (" +
|
|
|
- " select siteInst.SiteID from pc_site_institution siteInst "+
|
|
|
- " where siteInst.InstitutionID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Company:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select jobUser.JobUserID from pc_jobuser jobUser where jobUser.SiteID in (" +
|
|
|
- " select company.SiteID from pc_company company "+
|
|
|
- " where company.CompanyID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Site:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select jobUser.JobUserID from pc_jobuser jobUser" +
|
|
|
- " where jobUser.SiteID in (" + inStatement + ")" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.SELF:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select jobUser.JobUserID from pc_jobuser jobUser where jobUser.siteID in (" +
|
|
|
- " select siteUser.SiteID from pc_site_user siteUser"+
|
|
|
- " where siteUser.UserID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- default:
|
|
|
- return "";
|
|
|
- }
|
|
|
- }else {
|
|
|
- return "where 1=1";
|
|
|
- }
|
|
|
- }
|
|
|
- //求职意向信息数据筛选
|
|
|
- private String getJoinSqlByJobHunt(Field keyField, DataRange dataRange) {
|
|
|
- String keyFieldName = keyField.getName();
|
|
|
- String inStatement = getInStatement(dataRange.getRangeIDList());
|
|
|
- if (!inStatement.trim().equals("")) {
|
|
|
- switch (dataRange.getRange()) {
|
|
|
- case DataRangeEnum.City:
|
|
|
- case DataRangeEnum.Region:
|
|
|
- return " where 1=1";
|
|
|
- case DataRangeEnum.Institution:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select jobHunt.JobHuntID from pc_jobhunt jobHunt where jobHunt.JobUserID in (" +
|
|
|
- " select jobUser.JobUserID from pc_jobuser jobUser where jobUser.siteID in (" +
|
|
|
- " select siteInst.SiteID from pc_site_institution siteInst "+
|
|
|
- " where siteInst.InstitutionID in (" + inStatement + ")))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Company:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select jobHunt.JobHuntID from pc_jobhunt jobHunt where jobHunt.JobUserID in (" +
|
|
|
- " select jobUser.JobUserID from pc_jobuser jobUser where jobUser.SiteID in (" +
|
|
|
- " select company.SiteID from pc_company company "+
|
|
|
- " where company.CompanyID in (" + inStatement + ")))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Site:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select jobHunt.JobHuntID from pc_jobhunt jobHunt where jobHunt.JobUserID in (" +
|
|
|
- " select jobUser.JobUserID from pc_jobuser jobUser" +
|
|
|
- " where jobUser.SiteID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.SELF:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select jobHunt.JobHuntID from pc_jobhunt jobHunt where jobHunt.JobUserID in (" +
|
|
|
- " select jobUser.JobUserID from pc_jobuser jobUser where jobUser.siteID in (" +
|
|
|
- " select siteUser.SiteID from pc_site_user siteUser"+
|
|
|
- " where siteUser.UserID in (" + inStatement + ")))" +
|
|
|
- ")";
|
|
|
- default:
|
|
|
- return "";
|
|
|
- }
|
|
|
- }else {
|
|
|
- return "where 1=1";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- //工作日志数据筛选
|
|
|
- private String getJoinSqlByLog(Field keyField, DataRange dataRange) {
|
|
|
- String keyFieldName = keyField.getName();
|
|
|
- String inStatement = getInStatement(dataRange.getRangeIDList());
|
|
|
- if (!inStatement.trim().equals("")) {
|
|
|
- switch (dataRange.getRange()) {
|
|
|
- case DataRangeEnum.City:
|
|
|
- case DataRangeEnum.Region:
|
|
|
- return " where 1=1";
|
|
|
- case DataRangeEnum.Institution:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select workLog.DoWorkID from pc_dowork workLog where workLog.SiteUserID in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser where siteUser.SiteID in (" +
|
|
|
- " select siteInst.SiteID from pc_site_institution siteInst" +
|
|
|
- " where siteInst.InstitutionID in (" + inStatement + ")))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Company:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select workLog.DoWorkID from pc_dowork workLog where workLog.SiteUserID in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser where siteUser.SiteID in (" +
|
|
|
- " select company.SiteID from pc_company company" +
|
|
|
- " where company.CompanyID in (" + inStatement + ")))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Site:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select workLog.DoWorkID from pc_dowork workLog where workLog.SiteUserID in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser "+
|
|
|
- " where siteUser.SiteID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.SELF:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select workLog.DoWorkID from pc_dowork workLog where workLog.SiteUserID in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser "+
|
|
|
- " where siteUser.UserID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- default:
|
|
|
- return "";
|
|
|
- }
|
|
|
- } else {
|
|
|
- return "where 1=1";
|
|
|
- }
|
|
|
- }
|
|
|
- //工作任务数据筛选
|
|
|
- private String getJoinSqlByTask(Field keyField, DataRange dataRange) {
|
|
|
- String keyFieldName = keyField.getName();
|
|
|
- String inStatement = getInStatement(dataRange.getRangeIDList());
|
|
|
- if (!inStatement.trim().equals("")) {
|
|
|
- switch (dataRange.getRange()) {
|
|
|
- case DataRangeEnum.City:
|
|
|
- case DataRangeEnum.Region:
|
|
|
- return " where 1=1";
|
|
|
- case DataRangeEnum.Institution:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select taskUser.DoTaskID from pc_dotask_user taskUser where taskUser.SiteUserID in ("+
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser where siteUser.SiteID in ("+
|
|
|
- " select siteInst.SiteID from pc_site_institution siteInst"+
|
|
|
- " where siteInst.InstitutionID in ("+ inStatement + ")))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Site:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select taskUser.DoTaskID from pc_dotask_user taskUser where taskUser.SiteUserID in ("+
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser"+
|
|
|
- " where siteUser.SiteID in ("+ inStatement + ")))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.Company:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select taskUser.DoTaskID from pc_dotask_user taskUser where taskUser.SiteUserID in ("+
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser where siteUser.SiteID in ("+
|
|
|
- " select company.SiteID from pc_company company"+
|
|
|
- " where company.CompanyID in ("+ inStatement + ")))" +
|
|
|
- ")";
|
|
|
- case DataRangeEnum.SELF:
|
|
|
- return " where x." + keyFieldName + " in (" +
|
|
|
- " select taskUser.DoTaskID from pc_dotask_user taskUser where taskUser.SiteUserID in (" +
|
|
|
- " select siteUser.SiteUserID from pc_site_user siteUser "+
|
|
|
- " where siteUser.UserID in (" + inStatement + "))" +
|
|
|
- ")";
|
|
|
- default:
|
|
|
- return "";
|
|
|
- }
|
|
|
- } else {
|
|
|
- return "where 1=1";
|
|
|
- }
|
|
|
+ return " where x." + keyFieldName + " in (" + inStatement + ")";
|
|
|
}
|
|
|
}
|