Commit 752ef358 by fudahua

Merge branch 'developer' into 'master'

Developer

See merge request !112
parents 0bacbfc0 c682f9b3
......@@ -4,12 +4,12 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.gic</groupId>
<artifactId>gic-cloud-data-hook-api</artifactId>
<version>3.0-SNAPSHOT</version>
<version>2.45</version>
<dependencies>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-cloud-web-service-api</artifactId>
<version>3.0-SNAPSHOT</version>
<version>3.80</version>
<scope>compile</scope>
<exclusions>
<exclusion>
......@@ -25,7 +25,7 @@
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-cloud-commons</artifactId>
<version>3.0-SNAPSHOT</version>
<version>3.64</version>
<scope>compile</scope>
<exclusions>
<exclusion>
......@@ -41,7 +41,7 @@
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-platform-config</artifactId>
<version>3.0-SNAPSHOT</version>
<version>2.29</version>
<scope>compile</scope>
</dependency>
<dependency>
......@@ -50,5 +50,11 @@
<version>20.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
......@@ -99,6 +99,12 @@
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
......
package com.gic.cloud.data.hook.api.dto;
import lombok.Data;
import java.io.Serializable;
@Data
public class FilterQueryDataDTO implements Serializable {
/**
* 显示名称 如果为空 显示名称就是item_value
*/
private String showName;
/**
* 显示名称 说明项
*/
private String subShowName;
/**
* 实际值 选中的实际值
*/
private String itemValue;
/**
* 唯一键
*/
private String itemId;
}
......@@ -146,4 +146,14 @@ public class FlatQueryField implements Serializable {
public void setEnableEncrypt(Boolean enableEncrypt) {
this.enableEncrypt = enableEncrypt;
}
protected String filterCode;
public String getFilterCode() {
return filterCode;
}
public void setFilterCode(String filterCode) {
this.filterCode = filterCode;
}
}
package com.gic.cloud.data.hook.api.dto;
import java.io.Serializable;
import java.util.Date;
/**
* 过滤项
* @TableName dh_flat_query_filter
*/
public class QueryFilterInfoDTO implements Serializable {
/**
*
*/
private Integer filterId;
/**
* 过滤编号
*/
private String filterCode;
/**
* 过滤名称
*/
private String filterName;
/**
* 前端控件编号
*/
private String weightCode;
/**
* 搜索描述
*/
private String filterSearchTip;
/**
* 过滤类型 0 枚举 1调用接口
*/
private Integer filterType;
/**
* 是否删除
*/
private Integer delFlag;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
private static final long serialVersionUID = 1L;
/**
*
*/
public Integer getFilterId() {
return filterId;
}
/**
*
*/
public void setFilterId(Integer filterId) {
this.filterId = filterId;
}
/**
* 过滤编号
*/
public String getFilterCode() {
return filterCode;
}
/**
* 过滤编号
*/
public void setFilterCode(String filterCode) {
this.filterCode = filterCode;
}
/**
* 过滤名称
*/
public String getFilterName() {
return filterName;
}
/**
* 过滤名称
*/
public void setFilterName(String filterName) {
this.filterName = filterName;
}
/**
* 前端控件编号
*/
public String getWeightCode() {
return weightCode;
}
/**
* 前端控件编号
*/
public void setWeightCode(String weightCode) {
this.weightCode = weightCode;
}
/**
* 搜索描述
*/
public String getFilterSearchTip() {
return filterSearchTip;
}
/**
* 搜索描述
*/
public void setFilterSearchTip(String filterSearchTip) {
this.filterSearchTip = filterSearchTip;
}
/**
* 过滤类型 0 枚举 1调用接口
*/
public Integer getFilterType() {
return filterType;
}
/**
* 过滤类型 0 枚举 1调用接口
*/
public void setFilterType(Integer filterType) {
this.filterType = filterType;
}
/**
* 是否删除
*/
public Integer getDelFlag() {
return delFlag;
}
/**
* 是否删除
*/
public void setDelFlag(Integer delFlag) {
this.delFlag = delFlag;
}
/**
*
*/
public Date getCreateTime() {
return createTime;
}
/**
*
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
*
*/
public Date getUpdateTime() {
return updateTime;
}
/**
*
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", filterId=").append(filterId);
sb.append(", filterCode=").append(filterCode);
sb.append(", filterName=").append(filterName);
sb.append(", weightCode=").append(weightCode);
sb.append(", filterSearchTip=").append(filterSearchTip);
sb.append(", filterType=").append(filterType);
sb.append(", delFlag=").append(delFlag);
sb.append(", createTime=").append(createTime);
sb.append(", updateTime=").append(updateTime);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
\ No newline at end of file
package com.gic.cloud.data.hook.api.enums;
public enum QueryFilterCodeEnum {
CLERK_CODE("clerkCode","导购编号筛选"),
CLERK_NAME("clerkName","导购名称筛选"),
STORE_CODE("storeCode","门店编号筛选"),
STORE_NAME("storeName","门店名称筛选"),
STORE_CODE_NO_PAGE("storeCodeNoPage","门店编号筛选"),
STORE_NAME_NO_PAGE("storeNameNoPage","门店名称筛选"),
STORE_GROUP_NAME("storeGroupName","门店分组筛选"),
GRADE("grade","会员等级"),
;
private String code;
private String name;
QueryFilterCodeEnum(String code, String name) {
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.gic.cloud.data.hook.api.service;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.cloud.data.hook.api.dto.DownloadTask;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import com.gic.cloud.data.hook.api.dto.FlatQueryResult;
import com.gic.cloud.data.hook.api.dto.QueryFilterInfoDTO;
import com.gic.cloud.data.hook.api.entity.FlatQueryCondition;
import java.util.List;
......@@ -68,6 +72,29 @@ public interface IFlatQueryResultService {
*/
public List<Object> getFlatQueryFilterData(String tableId, List<String>enterpriseIds, String fieldName);
/**
* 获取过滤条件数据
* @param enterpriseId
* @param filterCode
* @return
*/
public Page<FilterQueryDataDTO> pageFlatQueryFilterNew(String enterpriseId, String filterCode, String search, BasePageInfo pageInfo);
/**
* 获取过滤详情
* @param filterCode
* @return
*/
public QueryFilterInfoDTO getFlatQueryFilterInfo(String filterCode);
/**
* 获取过滤条件数据
* @param enterpriseId
* @param filterCode
* @return
*/
public List<FilterQueryDataDTO> listBackFilter(List<String> vals,String filterCode,String enterpriseId);
public void initTask();
......
package com.gic.cloud.data.hook.api.service;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.cloud.data.hook.api.dto.*;
import java.util.List;
......@@ -87,4 +88,10 @@ public interface IFreeQueryService {
List<String> listFilterPhoneAndCardNoCardNumField();
List<String> listFilterUserName();
/**
* 刷新所有应用相关缓存
*/
public ServiceResponse<String> testCacheDb(String taskId,String taskId2);
}
......@@ -203,6 +203,22 @@
<artifactId>gic-redis-data</artifactId>
<version>${gic-redis-data}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-clerk-api</artifactId>
<version>${gic-clerk-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-member-api</artifactId>
<version>${gic-member-api}</version>
</dependency>
</dependencies>
<build>
......
package com.gic.cloud.data.hook.service.dao;
import com.gic.cloud.data.hook.service.entity.DhFlatQueryFilterItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author hua
* @description 针对表【dh_flat_query_filter_item(过滤项)】的数据库操作Mapper
* @createDate 2023-04-19 14:46:16
* @Entity com.gic.cloud.data.hook.service.entity.DhFlatQueryFilterItem
*/
@Mapper
public interface DhFlatQueryFilterItemMapper {
int deleteByPrimaryKey(Long id);
int insert(DhFlatQueryFilterItem record);
int insertSelective(DhFlatQueryFilterItem record);
DhFlatQueryFilterItem selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(DhFlatQueryFilterItem record);
int updateByPrimaryKey(DhFlatQueryFilterItem record);
List<DhFlatQueryFilterItem> listQueryFilterItems(@Param("filterId") String filterId);
}
package com.gic.cloud.data.hook.service.dao;
import com.gic.cloud.data.hook.service.entity.DhFlatQueryFilter;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author hua
* @description 针对表【dh_flat_query_filter(过滤项)】的数据库操作Mapper
* @createDate 2023-04-19 14:37:43
* @Entity com.gic.cloud.data.hook.service.entity.DhFlatQueryFilter
*/
@Mapper
public interface DhFlatQueryFilterMapper {
int deleteByPrimaryKey(Long id);
int insert(DhFlatQueryFilter record);
int insertSelective(DhFlatQueryFilter record);
DhFlatQueryFilter selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(DhFlatQueryFilter record);
int updateByPrimaryKey(DhFlatQueryFilter record);
DhFlatQueryFilter getFilterByCode(@Param("filterCode") String filterCode);
}
......@@ -81,4 +81,9 @@ public interface DownloadTaskDao {
*/
public List<DownloadTask> getDownloadTaskOfBuilding(@Param("queryDataSource") String queryDataSource);
/** 获取等待申请通过状态的任务
* @return
*/
public List<DownloadTask> getDownloadTaskTest(@Param("from") Integer from , @Param("to") Integer to);
}
package com.gic.cloud.data.hook.service.deal;
import com.gic.api.base.commons.Page;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import java.util.List;
public interface BaseQueryFilter {
/**
* 获取名称
* @return
*/
boolean checkFilter(QueryFilterContext context);
/**
* 获取信息
* @return
*/
Page<FilterQueryDataDTO> pageQueryData(QueryFilterContext context);
/**
* 回显信息
* @param context
* @return
*/
List<FilterQueryDataDTO> listBackByItems(QueryFilterContext context);
}
package com.gic.cloud.data.hook.service.deal;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.cloud.data.hook.service.entity.QueryFilterInfo;
import lombok.Data;
import java.util.List;
@Data
public class QueryFilterContext extends BasePageInfo {
/**
* 过滤项信息
*/
private QueryFilterInfo queryFilterInfo;
/**
* 企业id
*/
private String enterpriseId;
/**
* 搜索名称
*/
private String search;
/**
* 保存的值
*/
private List<String> items;
public QueryFilterInfo getQueryFilterInfo() {
return queryFilterInfo;
}
public void setQueryFilterInfo(QueryFilterInfo queryFilterInfo) {
this.queryFilterInfo = queryFilterInfo;
}
}
package com.gic.cloud.data.hook.service.deal;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class QueryFilterFactory {
@Autowired
private List<BaseQueryFilter> queryFilters= new ArrayList<>();
public BaseQueryFilter getInstance(QueryFilterContext context) {
for (BaseQueryFilter queryFilter : queryFilters) {
if (queryFilter.checkFilter(context)){
return queryFilter;
}
}
return null;
}
}
package com.gic.cloud.data.hook.service.deal.queryfilter;
import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import com.gic.cloud.data.hook.api.enums.QueryFilterCodeEnum;
import com.gic.cloud.data.hook.service.deal.BaseQueryFilter;
import com.gic.cloud.data.hook.service.deal.QueryFilterContext;
import com.gic.cloud.data.hook.service.entity.QueryFilterInfo;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Service
public class ClerkCodeQueryFilter implements BaseQueryFilter {
@Autowired
private ClerkService clerkService;
@Override
public boolean checkFilter(QueryFilterContext context) {
QueryFilterInfo queryFilterInfo = context.getQueryFilterInfo();
if (null == queryFilterInfo||queryFilterInfo.getFilterCode()==null) {
return false;
}
return queryFilterInfo.getFilterCode().equals(QueryFilterCodeEnum.CLERK_CODE.getCode());
}
@Override
public Page<FilterQueryDataDTO> pageQueryData(QueryFilterContext context) {
Page<ClerkDTO> clerkDTOPage = clerkService.pageUserBySearchName(context.getEnterpriseId(), context.getSearch(), context.getPageNum(), context.getPageSize());
Page<FilterQueryDataDTO> ret =new Page<>();
ret.setPageSize(context.getPageSize());
ret.setCurrentPage(context.getPageNum());
ret.setTotalCount(clerkDTOPage.getTotalCount());
List<ClerkDTO> result = clerkDTOPage.getResult();
if (CollectionUtils.isEmpty(result)) {
return ret;
}
List<FilterQueryDataDTO> retList = result.stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(mid.getClerkCode());
filterQueryDataDTO.setItemValue(mid.getClerkCode());
filterQueryDataDTO.setSubShowName(mid.getClerkName());
filterQueryDataDTO.setItemId(mid.getClerkId());
return filterQueryDataDTO;
}).collect(Collectors.toList());
ret.setResult(retList);
return ret;
}
@Override
public List<FilterQueryDataDTO> listBackByItems(QueryFilterContext context) {
Set<String> ids = new HashSet<>(context.getItems());
List<ClerkDTO> clerkDTOS = clerkService.getClerkByClerkIds(ids);
if (CollectionUtils.isEmpty(clerkDTOS)) {
return null;
}
List<FilterQueryDataDTO> retList = clerkDTOS.stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(mid.getClerkCode());
filterQueryDataDTO.setItemValue(mid.getClerkCode());
filterQueryDataDTO.setSubShowName(mid.getClerkName());
filterQueryDataDTO.setItemId(mid.getClerkId());
return filterQueryDataDTO;
}).collect(Collectors.toList());
return retList;
}
}
package com.gic.cloud.data.hook.service.deal.queryfilter;
import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import com.gic.cloud.data.hook.api.enums.QueryFilterCodeEnum;
import com.gic.cloud.data.hook.service.deal.BaseQueryFilter;
import com.gic.cloud.data.hook.service.deal.QueryFilterContext;
import com.gic.cloud.data.hook.service.entity.QueryFilterInfo;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Service
public class ClerkNameQueryFilter implements BaseQueryFilter {
@Autowired
private ClerkService clerkService;
@Override
public boolean checkFilter(QueryFilterContext context) {
QueryFilterInfo queryFilterInfo = context.getQueryFilterInfo();
if (null == queryFilterInfo||queryFilterInfo.getFilterCode()==null) {
return false;
}
return queryFilterInfo.getFilterCode().equals(QueryFilterCodeEnum.CLERK_NAME.getCode());
}
@Override
public Page<FilterQueryDataDTO> pageQueryData(QueryFilterContext context) {
Page<ClerkDTO> clerkDTOPage = clerkService.pageUserBySearchName(context.getEnterpriseId(), context.getSearch(), context.getPageNum(), context.getPageSize());
Page<FilterQueryDataDTO> ret =new Page<>();
ret.setPageSize(context.getPageSize());
ret.setCurrentPage(context.getPageNum());
ret.setTotalCount(clerkDTOPage.getTotalCount());
List<ClerkDTO> result = clerkDTOPage.getResult();
if (CollectionUtils.isEmpty(result)) {
return ret;
}
List<FilterQueryDataDTO> retList = result.stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(mid.getClerkName());
filterQueryDataDTO.setItemValue(mid.getClerkName());
filterQueryDataDTO.setSubShowName(mid.getClerkCode());
filterQueryDataDTO.setItemId(mid.getClerkId());
return filterQueryDataDTO;
}).collect(Collectors.toList());
ret.setResult(retList);
return ret;
}
@Override
public List<FilterQueryDataDTO> listBackByItems(QueryFilterContext context) {
Set<String> ids = new HashSet<>(context.getItems());
List<ClerkDTO> clerkDTOS = clerkService.getClerkByClerkIds(ids);
if (CollectionUtils.isEmpty(clerkDTOS)) {
return null;
}
List<FilterQueryDataDTO> retList = clerkDTOS.stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(mid.getClerkName());
filterQueryDataDTO.setItemValue(mid.getClerkName());
filterQueryDataDTO.setSubShowName(mid.getClerkCode());
filterQueryDataDTO.setItemId(mid.getClerkId());
return filterQueryDataDTO;
}).collect(Collectors.toList());
return retList;
}
}
package com.gic.cloud.data.hook.service.deal.queryfilter;
import com.gic.api.base.commons.Page;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import com.gic.cloud.data.hook.service.dao.DhFlatQueryFilterItemMapper;
import com.gic.cloud.data.hook.service.dao.DhFlatQueryFilterMapper;
import com.gic.cloud.data.hook.service.deal.BaseQueryFilter;
import com.gic.cloud.data.hook.service.deal.QueryFilterContext;
import com.gic.cloud.data.hook.service.entity.DhFlatQueryFilterItem;
import com.gic.cloud.data.hook.service.entity.QueryFilterInfo;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.github.pagehelper.PageHelper;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class EnumQueryFilter implements BaseQueryFilter {
@Autowired
private DhFlatQueryFilterItemMapper dhFlatQueryFilterItemMapper;
@Override
public boolean checkFilter(QueryFilterContext context) {
QueryFilterInfo queryFilterInfo = context.getQueryFilterInfo();
if (queryFilterInfo.getFilterType().intValue() == 0) {
return true;
}
return false;
}
@Override
public Page<FilterQueryDataDTO> pageQueryData(QueryFilterContext context) {
context.setPageSize(9999);
PageHelper.startPage(context);
List<DhFlatQueryFilterItem> list = dhFlatQueryFilterItemMapper.listQueryFilterItems(context.getQueryFilterInfo().getFilterId());
Page<DhFlatQueryFilterItem> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, DhFlatQueryFilterItem.class);
Page<FilterQueryDataDTO> ret = new Page<>();
ret.setPageSize(retPage.getPageSize());
ret.setCurrentPage(retPage.getCurrentPage());
ret.setTotalCount(retPage.getTotalCount());
if (CollectionUtils.isEmpty(retPage.getResult())) {
return ret;
}
List<FilterQueryDataDTO> collect = retPage.getResult().stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setItemValue(mid.getItemValue());
filterQueryDataDTO.setShowName(mid.getShowName());
filterQueryDataDTO.setItemId(mid.getItemValue());
return filterQueryDataDTO;
}).collect(Collectors.toList());
ret.setResult(collect);
return ret;
}
@Override
public List<FilterQueryDataDTO> listBackByItems(QueryFilterContext context) {
List<String> items = context.getItems();
List<DhFlatQueryFilterItem> list = dhFlatQueryFilterItemMapper.listQueryFilterItems(context.getQueryFilterInfo().getFilterId());
List<DhFlatQueryFilterItem> orgItems = list.stream().filter(mid -> items.contains(mid.getItemValue())).collect(Collectors.toList());
List<FilterQueryDataDTO> collect = orgItems.stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setItemValue(mid.getItemValue());
filterQueryDataDTO.setShowName(mid.getShowName());
filterQueryDataDTO.setItemId(mid.getItemValue());
return filterQueryDataDTO;
}).collect(Collectors.toList());
return collect;
}
}
package com.gic.cloud.data.hook.service.deal.queryfilter;
import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import com.gic.cloud.data.hook.api.enums.QueryFilterCodeEnum;
import com.gic.cloud.data.hook.service.deal.BaseQueryFilter;
import com.gic.cloud.data.hook.service.deal.QueryFilterContext;
import com.gic.cloud.data.hook.service.entity.QueryFilterInfo;
import com.gic.member.api.dto.GradeBaseDTO;
import com.gic.member.api.service.GradeService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class MemberGradeNameQueryFilter implements BaseQueryFilter {
@Autowired
private GradeService gradeService;
@Override
public boolean checkFilter(QueryFilterContext context) {
QueryFilterInfo queryFilterInfo = context.getQueryFilterInfo();
if (null == queryFilterInfo||queryFilterInfo.getFilterCode()==null) {
return false;
}
return queryFilterInfo.getFilterCode().equals(QueryFilterCodeEnum.GRADE.getCode());
}
@Override
public Page<FilterQueryDataDTO> pageQueryData(QueryFilterContext context) {
List<GradeBaseDTO> gradeDTOList = gradeService.getGradeDTOList(context.getEnterpriseId());
Page<FilterQueryDataDTO> ret =new Page<>();
ret.setPageSize(context.getPageSize());
ret.setCurrentPage(context.getPageNum());
ret.setTotalCount(gradeDTOList.size());
List<FilterQueryDataDTO> retList = gradeDTOList.stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(mid.getGradeName());
filterQueryDataDTO.setItemValue(mid.getGradeName());
filterQueryDataDTO.setSubShowName(mid.getGradeCode());
return filterQueryDataDTO;
}).collect(Collectors.toList());
ret.setResult(retList);
return ret;
}
@Override
public List<FilterQueryDataDTO> listBackByItems(QueryFilterContext context) {
List<GradeBaseDTO> gradeDTOList = gradeService.getGradeDTOList(context.getEnterpriseId());
if (CollectionUtils.isEmpty(gradeDTOList)) {
return null;
}
List<FilterQueryDataDTO> retList = gradeDTOList.stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(mid.getGradeName());
filterQueryDataDTO.setItemValue(mid.getGradeName());
filterQueryDataDTO.setSubShowName(mid.getGradeCode());
return filterQueryDataDTO;
}).collect(Collectors.toList());
return retList;
}
}
package com.gic.cloud.data.hook.service.deal.queryfilter;
import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import com.gic.cloud.data.hook.api.enums.QueryFilterCodeEnum;
import com.gic.cloud.data.hook.service.deal.BaseQueryFilter;
import com.gic.cloud.data.hook.service.deal.QueryFilterContext;
import com.gic.cloud.data.hook.service.entity.QueryFilterInfo;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.dto.StoreSearchDTO;
import com.gic.enterprise.api.service.StoreService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class StoreCodeQueryFilter implements BaseQueryFilter {
@Autowired
private StoreService storeService;
@Override
public boolean checkFilter(QueryFilterContext context) {
QueryFilterInfo queryFilterInfo = context.getQueryFilterInfo();
if (null == queryFilterInfo||queryFilterInfo.getFilterCode()==null) {
return false;
}
return queryFilterInfo.getFilterCode().equals(QueryFilterCodeEnum.STORE_CODE.getCode());
}
@Override
public Page<FilterQueryDataDTO> pageQueryData(QueryFilterContext context) {
Page<StoreDTO> page = new Page<>();
page.setPageSize(context.getPageSize());
page.setCurrentPage(context.getPageNum());
StoreSearchDTO storeSearchDTO = new StoreSearchDTO();
storeSearchDTO.setEnterpriseId(context.getEnterpriseId());
storeSearchDTO.setSearchName(context.getSearch());
Page retPage = storeService.storeListPage(page, storeSearchDTO);
Page<StoreDTO> storeDTOPage = PageHelperUtils.changePageToCurrentPage(retPage, StoreDTO.class);
// Page<ClerkDTO> clerkDTOPage = clerkService.pageUserBySearchName(context.getEnterpriseId(), context.getSearch(), context.getPageNum(), context.getPageSize());
Page<FilterQueryDataDTO> ret =new Page<>();
ret.setPageSize(context.getPageSize());
ret.setCurrentPage(context.getPageNum());
ret.setTotalCount(storeDTOPage.getTotalCount());
List<StoreDTO> result = storeDTOPage.getResult();
if (CollectionUtils.isEmpty(result)) {
return ret;
}
List<FilterQueryDataDTO> retList = result.stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(mid.getStoreCode());
filterQueryDataDTO.setItemValue(mid.getStoreCode());
filterQueryDataDTO.setSubShowName(mid.getStoreName());
filterQueryDataDTO.setItemId(mid.getStoreId());
return filterQueryDataDTO;
}).collect(Collectors.toList());
ret.setResult(retList);
return ret;
}
@Override
public List<FilterQueryDataDTO> listBackByItems(QueryFilterContext context) {
List<StoreDTO> storeDTOS = storeService.queryStore(context.getItems());
List<FilterQueryDataDTO> retList = storeDTOS.stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(mid.getStoreCode());
filterQueryDataDTO.setItemValue(mid.getStoreCode());
filterQueryDataDTO.setSubShowName(mid.getStoreName());
filterQueryDataDTO.setItemId(mid.getStoreId());
return filterQueryDataDTO;
}).collect(Collectors.toList());
return retList;
}
}
package com.gic.cloud.data.hook.service.deal.queryfilter;
import com.gic.api.base.commons.Page;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import com.gic.cloud.data.hook.api.enums.QueryFilterCodeEnum;
import com.gic.cloud.data.hook.service.deal.BaseQueryFilter;
import com.gic.cloud.data.hook.service.deal.QueryFilterContext;
import com.gic.cloud.data.hook.service.entity.QueryFilterInfo;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.dto.StoreSearchDTO;
import com.gic.enterprise.api.service.StoreService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class StoreCodeQueryNoPageFilter extends StoreCodeQueryFilter {
@Override
public boolean checkFilter(QueryFilterContext context) {
QueryFilterInfo queryFilterInfo = context.getQueryFilterInfo();
if (null == queryFilterInfo||queryFilterInfo.getFilterCode()==null) {
return false;
}
return queryFilterInfo.getFilterCode().equals(QueryFilterCodeEnum.STORE_CODE_NO_PAGE.getCode());
}
@Override
public Page<FilterQueryDataDTO> pageQueryData(QueryFilterContext context) {
context.setPageSize(9999);
return super.pageQueryData(context);
}
@Override
public List<FilterQueryDataDTO> listBackByItems(QueryFilterContext context) {
return super.listBackByItems(context);
}
}
package com.gic.cloud.data.hook.service.deal.queryfilter;
import com.gic.api.base.commons.Page;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import com.gic.cloud.data.hook.api.enums.QueryFilterCodeEnum;
import com.gic.cloud.data.hook.service.deal.BaseQueryFilter;
import com.gic.cloud.data.hook.service.deal.QueryFilterContext;
import com.gic.cloud.data.hook.service.entity.QueryFilterInfo;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.api.dto.PowerStoreGroupDTO;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.dto.StoreSearchDTO;
import com.gic.enterprise.api.service.StoreGroupService;
import com.gic.enterprise.api.service.StoreService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@Service
public class StoreGroupNameQueryFilter implements BaseQueryFilter {
@Autowired
private StoreGroupService storeGroupService;
@Override
public boolean checkFilter(QueryFilterContext context) {
QueryFilterInfo queryFilterInfo = context.getQueryFilterInfo();
if (null == queryFilterInfo||queryFilterInfo.getFilterCode()==null) {
return false;
}
return queryFilterInfo.getFilterCode().equals(QueryFilterCodeEnum.STORE_GROUP_NAME.getCode());
}
@Override
public Page<FilterQueryDataDTO> pageQueryData(QueryFilterContext context) {
List<PowerStoreGroupDTO> storeGroupList = storeGroupService.getStoreGroupList(context.getEnterpriseId());
Map<String, PowerStoreGroupDTO> storeGroupMap = storeGroupList.stream().collect(Collectors.toMap(mid -> mid.getStoreGroupId(), mid -> mid));
Set<FilterQueryDataDTO> retList = storeGroupList.stream().map(mid -> {
String storeGroupChainName = getStoreGroupChainName(storeGroupMap, mid);
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(storeGroupChainName);
filterQueryDataDTO.setItemValue(storeGroupChainName);
filterQueryDataDTO.setItemId(storeGroupChainName);
return filterQueryDataDTO;
}).collect(Collectors.toSet());
Page<FilterQueryDataDTO> page = new Page<>();
page.setTotalCount(retList.size());
page.setPageSize(retList.size());
page.setCurrentPage(1);
page.setResult(new ArrayList<>(retList));
return page;
}
/**
* 组装链路名称
* @param storeGroupDTOMap
* @param current
* @return
*/
private String getStoreGroupChainName(Map<String, PowerStoreGroupDTO> storeGroupDTOMap,PowerStoreGroupDTO current) {
if (current == null) {
return null;
}
String ret=current.getStoreGroupName();
String parentGroupId = current.getParentGroupId();
if (parentGroupId.equals("0")) {
return ret;
}
PowerStoreGroupDTO powerStoreGroupDTO = storeGroupDTOMap.get(parentGroupId);
if (powerStoreGroupDTO== null) {
return ret;
}
String subChain = getStoreGroupChainName(storeGroupDTOMap, powerStoreGroupDTO);
return subChain+"/"+ret;
}
@Override
public List<FilterQueryDataDTO> listBackByItems(QueryFilterContext context) {
List<String> items = context.getItems();
return items.stream().map(mid->{
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(mid);
filterQueryDataDTO.setItemValue(mid);
filterQueryDataDTO.setItemId(mid);
return filterQueryDataDTO;
}).collect(Collectors.toList());
}
}
package com.gic.cloud.data.hook.service.deal.queryfilter;
import com.gic.api.base.commons.Page;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import com.gic.cloud.data.hook.api.enums.QueryFilterCodeEnum;
import com.gic.cloud.data.hook.service.deal.BaseQueryFilter;
import com.gic.cloud.data.hook.service.deal.QueryFilterContext;
import com.gic.cloud.data.hook.service.entity.QueryFilterInfo;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.dto.StoreSearchDTO;
import com.gic.enterprise.api.service.StoreService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class StoreNameQueryFilter implements BaseQueryFilter {
@Autowired
private StoreService storeService;
@Override
public boolean checkFilter(QueryFilterContext context) {
QueryFilterInfo queryFilterInfo = context.getQueryFilterInfo();
if (null == queryFilterInfo||queryFilterInfo.getFilterCode()==null) {
return false;
}
return queryFilterInfo.getFilterCode().equals(QueryFilterCodeEnum.STORE_NAME.getCode());
}
@Override
public Page<FilterQueryDataDTO> pageQueryData(QueryFilterContext context) {
Page<StoreDTO> page = new Page<>();
page.setPageSize(context.getPageSize());
page.setCurrentPage(context.getPageNum());
StoreSearchDTO storeSearchDTO = new StoreSearchDTO();
storeSearchDTO.setEnterpriseId(context.getEnterpriseId());
storeSearchDTO.setSearchName(context.getSearch());
Page retPage = storeService.storeListPage(page, storeSearchDTO);
Page<StoreDTO> storeDTOPage = PageHelperUtils.changePageToCurrentPage(retPage, StoreDTO.class);
// Page<ClerkDTO> clerkDTOPage = clerkService.pageUserBySearchName(context.getEnterpriseId(), context.getSearch(), context.getPageNum(), context.getPageSize());
Page<FilterQueryDataDTO> ret =new Page<>();
ret.setPageSize(context.getPageSize());
ret.setCurrentPage(context.getPageNum());
ret.setTotalCount(storeDTOPage.getTotalCount());
List<StoreDTO> result = storeDTOPage.getResult();
if (CollectionUtils.isEmpty(result)) {
return ret;
}
List<FilterQueryDataDTO> retList = result.stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(mid.getStoreName());
filterQueryDataDTO.setItemValue(mid.getStoreName());
filterQueryDataDTO.setSubShowName(mid.getStoreCode());
filterQueryDataDTO.setItemId(mid.getStoreId());
return filterQueryDataDTO;
}).collect(Collectors.toList());
ret.setResult(retList);
return ret;
}
@Override
public List<FilterQueryDataDTO> listBackByItems(QueryFilterContext context) {
List<StoreDTO> storeDTOS = storeService.queryStore(context.getItems());
List<FilterQueryDataDTO> retList = storeDTOS.stream().map(mid -> {
FilterQueryDataDTO filterQueryDataDTO = new FilterQueryDataDTO();
filterQueryDataDTO.setShowName(mid.getStoreCode());
filterQueryDataDTO.setItemValue(mid.getStoreCode());
filterQueryDataDTO.setSubShowName(mid.getStoreName());
filterQueryDataDTO.setItemId(mid.getStoreId());
return filterQueryDataDTO;
}).collect(Collectors.toList());
return retList;
}
}
package com.gic.cloud.data.hook.service.deal.queryfilter;
import com.gic.api.base.commons.Page;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import com.gic.cloud.data.hook.api.enums.QueryFilterCodeEnum;
import com.gic.cloud.data.hook.service.deal.QueryFilterContext;
import com.gic.cloud.data.hook.service.entity.QueryFilterInfo;
import com.gic.enterprise.api.service.StoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class StoreNameQueryNoPageFilter extends StoreNameQueryFilter {
@Override
public boolean checkFilter(QueryFilterContext context) {
QueryFilterInfo queryFilterInfo = context.getQueryFilterInfo();
if (null == queryFilterInfo||queryFilterInfo.getFilterCode()==null) {
return false;
}
return queryFilterInfo.getFilterCode().equals(QueryFilterCodeEnum.STORE_NAME_NO_PAGE.getCode());
}
@Override
public Page<FilterQueryDataDTO> pageQueryData(QueryFilterContext context) {
context.setPageSize(9999);
return super.pageQueryData(context);
}
@Override
public List<FilterQueryDataDTO> listBackByItems(QueryFilterContext context) {
return super.listBackByItems(context);
}
}
package com.gic.cloud.data.hook.service.entity;
import java.io.Serializable;
import java.util.Date;
/**
* 过滤项
* @TableName dh_flat_query_filter
*/
public class DhFlatQueryFilter implements Serializable {
/**
*
*/
private Integer filterId;
/**
* 过滤编号
*/
private String filterCode;
/**
* 过滤名称
*/
private String filterName;
/**
* 前端控件编号
*/
private String weightCode;
/**
* 搜索描述
*/
private String filterSearchTip;
/**
* 过滤类型 0 枚举 1调用接口
*/
private Integer filterType;
/**
* 是否删除
*/
private Integer delFlag;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
private static final long serialVersionUID = 1L;
/**
*
*/
public Integer getFilterId() {
return filterId;
}
/**
*
*/
public void setFilterId(Integer filterId) {
this.filterId = filterId;
}
/**
* 过滤编号
*/
public String getFilterCode() {
return filterCode;
}
/**
* 过滤编号
*/
public void setFilterCode(String filterCode) {
this.filterCode = filterCode;
}
/**
* 过滤名称
*/
public String getFilterName() {
return filterName;
}
/**
* 过滤名称
*/
public void setFilterName(String filterName) {
this.filterName = filterName;
}
/**
* 前端控件编号
*/
public String getWeightCode() {
return weightCode;
}
/**
* 前端控件编号
*/
public void setWeightCode(String weightCode) {
this.weightCode = weightCode;
}
/**
* 搜索描述
*/
public String getFilterSearchTip() {
return filterSearchTip;
}
/**
* 搜索描述
*/
public void setFilterSearchTip(String filterSearchTip) {
this.filterSearchTip = filterSearchTip;
}
/**
* 过滤类型 0 枚举 1调用接口
*/
public Integer getFilterType() {
return filterType;
}
/**
* 过滤类型 0 枚举 1调用接口
*/
public void setFilterType(Integer filterType) {
this.filterType = filterType;
}
/**
* 是否删除
*/
public Integer getDelFlag() {
return delFlag;
}
/**
* 是否删除
*/
public void setDelFlag(Integer delFlag) {
this.delFlag = delFlag;
}
/**
*
*/
public Date getCreateTime() {
return createTime;
}
/**
*
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
*
*/
public Date getUpdateTime() {
return updateTime;
}
/**
*
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
DhFlatQueryFilter other = (DhFlatQueryFilter) that;
return (this.getFilterId() == null ? other.getFilterId() == null : this.getFilterId().equals(other.getFilterId()))
&& (this.getFilterCode() == null ? other.getFilterCode() == null : this.getFilterCode().equals(other.getFilterCode()))
&& (this.getFilterName() == null ? other.getFilterName() == null : this.getFilterName().equals(other.getFilterName()))
&& (this.getWeightCode() == null ? other.getWeightCode() == null : this.getWeightCode().equals(other.getWeightCode()))
&& (this.getFilterSearchTip() == null ? other.getFilterSearchTip() == null : this.getFilterSearchTip().equals(other.getFilterSearchTip()))
&& (this.getFilterType() == null ? other.getFilterType() == null : this.getFilterType().equals(other.getFilterType()))
&& (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getFilterId() == null) ? 0 : getFilterId().hashCode());
result = prime * result + ((getFilterCode() == null) ? 0 : getFilterCode().hashCode());
result = prime * result + ((getFilterName() == null) ? 0 : getFilterName().hashCode());
result = prime * result + ((getWeightCode() == null) ? 0 : getWeightCode().hashCode());
result = prime * result + ((getFilterSearchTip() == null) ? 0 : getFilterSearchTip().hashCode());
result = prime * result + ((getFilterType() == null) ? 0 : getFilterType().hashCode());
result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", filterId=").append(filterId);
sb.append(", filterCode=").append(filterCode);
sb.append(", filterName=").append(filterName);
sb.append(", weightCode=").append(weightCode);
sb.append(", filterSearchTip=").append(filterSearchTip);
sb.append(", filterType=").append(filterType);
sb.append(", delFlag=").append(delFlag);
sb.append(", createTime=").append(createTime);
sb.append(", updateTime=").append(updateTime);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
\ No newline at end of file
package com.gic.cloud.data.hook.service.entity;
import java.io.Serializable;
import java.util.Date;
/**
* 过滤项
* @TableName dh_flat_query_filter_item
*/
public class DhFlatQueryFilterItem implements Serializable {
/**
*
*/
private Integer filterItemId;
/**
* 过滤id
*/
private Integer filterId;
/**
* 显示名称 如果为空 显示名称就是item_value
*/
private String showName;
/**
* 实际值 选中的实际值
*/
private String itemValue;
/**
* 是否删除
*/
private Integer delFlag;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
private static final long serialVersionUID = 1L;
/**
*
*/
public Integer getFilterItemId() {
return filterItemId;
}
/**
*
*/
public void setFilterItemId(Integer filterItemId) {
this.filterItemId = filterItemId;
}
/**
* 过滤id
*/
public Integer getFilterId() {
return filterId;
}
/**
* 过滤id
*/
public void setFilterId(Integer filterId) {
this.filterId = filterId;
}
/**
* 显示名称 如果为空 显示名称就是item_value
*/
public String getShowName() {
return showName;
}
/**
* 显示名称 如果为空 显示名称就是item_value
*/
public void setShowName(String showName) {
this.showName = showName;
}
/**
* 实际值 选中的实际值
*/
public String getItemValue() {
return itemValue;
}
/**
* 实际值 选中的实际值
*/
public void setItemValue(String itemValue) {
this.itemValue = itemValue;
}
/**
* 是否删除
*/
public Integer getDelFlag() {
return delFlag;
}
/**
* 是否删除
*/
public void setDelFlag(Integer delFlag) {
this.delFlag = delFlag;
}
/**
*
*/
public Date getCreateTime() {
return createTime;
}
/**
*
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
*
*/
public Date getUpdateTime() {
return updateTime;
}
/**
*
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
DhFlatQueryFilterItem other = (DhFlatQueryFilterItem) that;
return (this.getFilterItemId() == null ? other.getFilterItemId() == null : this.getFilterItemId().equals(other.getFilterItemId()))
&& (this.getFilterId() == null ? other.getFilterId() == null : this.getFilterId().equals(other.getFilterId()))
&& (this.getShowName() == null ? other.getShowName() == null : this.getShowName().equals(other.getShowName()))
&& (this.getItemValue() == null ? other.getItemValue() == null : this.getItemValue().equals(other.getItemValue()))
&& (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getFilterItemId() == null) ? 0 : getFilterItemId().hashCode());
result = prime * result + ((getFilterId() == null) ? 0 : getFilterId().hashCode());
result = prime * result + ((getShowName() == null) ? 0 : getShowName().hashCode());
result = prime * result + ((getItemValue() == null) ? 0 : getItemValue().hashCode());
result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", filterItemId=").append(filterItemId);
sb.append(", filterId=").append(filterId);
sb.append(", showName=").append(showName);
sb.append(", itemValue=").append(itemValue);
sb.append(", delFlag=").append(delFlag);
sb.append(", createTime=").append(createTime);
sb.append(", updateTime=").append(updateTime);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
\ No newline at end of file
package com.gic.cloud.data.hook.service.entity;
import lombok.Data;
import java.io.Serializable;
@Data
public class QueryFilterInfo implements Serializable {
private String filterId;
private String filterCode;
private String filterName;
private Integer filterType;
}
......@@ -6,17 +6,22 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.cloud.data.hook.api.dto.*;
import com.gic.cloud.data.hook.api.entity.*;
import com.gic.cloud.data.hook.api.service.DecryptKeyService;
import com.gic.cloud.data.hook.api.service.IDownloadTaskService;
import com.gic.cloud.data.hook.api.service.IFlatQueryResultService;
import com.gic.cloud.data.hook.service.*;
import com.gic.cloud.data.hook.service.dao.DhFlatQueryFilterMapper;
import com.gic.cloud.data.hook.service.dao.FlatQueryFieldDao;
import com.gic.cloud.data.hook.service.dao.FlatQueryTableDao;
import com.gic.cloud.data.hook.service.entity.ColumnInfo;
import com.gic.cloud.data.hook.service.entity.CsvDataFilterMode;
import com.gic.cloud.data.hook.service.entity.CsvResultSetHelper;
import com.gic.cloud.data.hook.service.deal.BaseQueryFilter;
import com.gic.cloud.data.hook.service.deal.QueryFilterContext;
import com.gic.cloud.data.hook.service.deal.QueryFilterFactory;
import com.gic.cloud.data.hook.service.entity.*;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.enterprise.api.dto.EnterpriseDTO;
......@@ -104,6 +109,12 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
@Autowired
private EnterpriseService enterpriseService;
@Autowired
private QueryFilterFactory queryFilterFactory;
@Autowired
private DhFlatQueryFilterMapper flatQueryFilterMapper;
/** 自助指标查询关联的下载条件列表 */
protected List<FlatQueryTaskCondition> taskConditions = Lists.newArrayList();
protected List<FlatQueryTaskCondition> bigTaskConditions = Lists.newArrayList();
......@@ -1581,7 +1592,7 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
/* *//** 运行下载申请任务
* @param interval
* @param
*//*
private void runApplyTask(Integer interval) {
this.applyTimer.schedule(new TimerTask() {
......@@ -1592,5 +1603,47 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
}, interval * 1000, interval * 1000);// 配置中的值为毫秒
}*/
@Override
public Page<FilterQueryDataDTO> pageFlatQueryFilterNew(String enterpriseId, String filterCode,String search, BasePageInfo pageInfo) {
DhFlatQueryFilter queryFilter = flatQueryFilterMapper.getFilterByCode(filterCode);
if (queryFilter == null) {
logger.info("不存在搜索code:{}",filterCode);
return new Page<>();
}
QueryFilterInfo queryFilterInfo = EntityUtil.changeEntityByJSON(QueryFilterInfo.class, queryFilter);
QueryFilterContext queryFilterContext = new QueryFilterContext();
queryFilterContext.setEnterpriseId(enterpriseId);
queryFilterContext.setQueryFilterInfo(queryFilterInfo);
queryFilterContext.setSearch(search);
queryFilterContext.setPageNum(pageInfo.getPageNum());
queryFilterContext.setPageSize(pageInfo.getPageSize());
BaseQueryFilter instance = queryFilterFactory.getInstance(queryFilterContext);
return instance.pageQueryData(queryFilterContext);
}
@Override
public QueryFilterInfoDTO getFlatQueryFilterInfo(String filterCode) {
DhFlatQueryFilter queryFilter = flatQueryFilterMapper.getFilterByCode(filterCode);
if (queryFilter == null) {
logger.info("不存在搜索code:{}",filterCode);
return null;
}
return EntityUtil.changeEntityByJSON(QueryFilterInfoDTO.class, queryFilter);
}
@Override
public List<FilterQueryDataDTO> listBackFilter(List<String> vals, String filterCode, String enterpriseId) {
DhFlatQueryFilter queryFilter = flatQueryFilterMapper.getFilterByCode(filterCode);
if (queryFilter == null) {
logger.info("不存在搜索code:{}",filterCode);
return null;
}
QueryFilterInfo queryFilterInfo = EntityUtil.changeEntityByJSON(QueryFilterInfo.class, queryFilter);
QueryFilterContext queryFilterContext = new QueryFilterContext();
queryFilterContext.setEnterpriseId(enterpriseId);
queryFilterContext.setQueryFilterInfo(queryFilterInfo);
queryFilterContext.setItems(vals);
BaseQueryFilter instance = queryFilterFactory.getInstance(queryFilterContext);
return instance.listBackByItems(queryFilterContext);
}
}
package com.gic.cloud.data.hook.service.impl;
import cn.hutool.core.date.StopWatch;
import cn.medubi.client.utils.LogPak;
import com.alibaba.fastjson.JSON;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.cloud.data.hook.api.dto.*;
import com.gic.cloud.data.hook.api.dto.DataDesensiType;
import com.gic.cloud.data.hook.api.entity.*;
import com.gic.cloud.data.hook.api.service.IDownloadTaskService;
import com.gic.cloud.data.hook.api.service.IFreeQueryService;
import com.gic.cloud.data.hook.service.*;
import com.gic.cloud.data.hook.service.dao.DownloadTaskDao;
import com.gic.cloud.data.hook.service.dao.FreeQueryRecordDao;
import com.gic.cloud.data.hook.service.dao.FreeQuerySourceDao;
import com.gic.cloud.data.hook.service.entity.CsvDataFilterMode;
......@@ -32,6 +35,8 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
......@@ -54,6 +59,8 @@ import java.util.zip.ZipOutputStream;
*/
public class FreeQueryServiceImpl implements IFreeQueryService {
private static Logger logger = LoggerFactory.getLogger(FreeQueryServiceImpl.class);
/** 日志类 */
private static LogPak log = new LogPak(FreeQueryServiceImpl.class);
......@@ -62,6 +69,8 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
/** csv / xls 下载目录 */
public static final String SAVE_FOLDER = "/usr/local/data-hook-file";
@Autowired
private DownloadTaskDao downloadTaskDao;
@Autowired
IDownloadTaskService downloadTaskService;
......@@ -384,6 +393,77 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
return FilterFieldUtils.FILETERS_USER_NAME;
}
@Override
public ServiceResponse<String> testCacheDb(String taskId,String taskId2) {
StopWatch stopWatch = new StopWatch();
String[] split = taskId.split("-");
String[] split2 = taskId2.split("-");
stopWatch.start();
List<DownloadTask> downloadTask = downloadTaskDao.getDownloadTaskTest(Integer.valueOf(split[0]), Integer.valueOf(split[1]));
stopWatch.stop();
logger.info("时间-1:{}",stopWatch.getLastTaskTimeMillis());
stopWatch.start();
downloadTask = downloadTask = downloadTaskDao.getDownloadTaskTest(Integer.valueOf(split[0]), Integer.valueOf(split[1]));
stopWatch.stop();
logger.info("时间-1-1:{}",stopWatch.getLastTaskTimeMillis());
stopWatch.start();
downloadTask = downloadTask = downloadTaskDao.getDownloadTaskTest(Integer.valueOf(split2[0]), Integer.valueOf(split2[1]));
stopWatch.stop();
logger.info("时间-2:{}",stopWatch.getLastTaskTimeMillis());
stopWatch.start();
downloadTask = downloadTaskDao.getDownloadTaskTest(Integer.valueOf(split2[0]), Integer.valueOf(split2[1]));
stopWatch.stop();
logger.info("时间-2-1:{}",stopWatch.getLastTaskTimeMillis());
stopWatch.start();
DownloadTask downloadTaskById = downloadTaskDao.getDownloadTaskById(downloadTask.get(0).getId());
stopWatch.stop();
logger.info("时间-1-2:{}",stopWatch.getLastTaskTimeMillis());
stopWatch.start();
downloadTaskById.setOverTime(new Date());
downloadTaskDao.updateDownloadTask(downloadTaskById);
stopWatch.stop();
logger.info("时间-update:{}",stopWatch.getLastTaskTimeMillis());
stopWatch.start();
downloadTask = downloadTaskDao.getDownloadTaskTest(Integer.valueOf(split[0]), Integer.valueOf(split[1]));
stopWatch.stop();
logger.info("时间-3:{}",stopWatch.getLastTaskTimeMillis());
stopWatch.start();
downloadTask = downloadTaskDao.getDownloadTaskTest(Integer.valueOf(split[0]), Integer.valueOf(split[1]));
stopWatch.stop();
logger.info("时间-4:{}",stopWatch.getLastTaskTimeMillis());
stopWatch.start();
downloadTask = downloadTaskDao.getDownloadTaskTest(Integer.valueOf(split2[0]), Integer.valueOf(split2[1]));
stopWatch.stop();
logger.info("时间-5:{}",stopWatch.getLastTaskTimeMillis());
stopWatch.start();
downloadTask = downloadTaskDao.getDownloadTaskTest(Integer.valueOf(split2[0]), Integer.valueOf(split2[1]));
stopWatch.stop();
logger.info("时间-6:{}",stopWatch.getLastTaskTimeMillis());
stopWatch.start();
downloadTask = downloadTaskDao.getDownloadTaskTest(Integer.valueOf(split[0]), Integer.valueOf(split[1]));
stopWatch.stop();
logger.info("时间-end:{}",stopWatch.getLastTaskTimeMillis());
return ServiceResponse.success();
}
private static SimpleDateFormat datetimeFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private static SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
......
......@@ -23,6 +23,7 @@
<!--<import resource="classpath:data-hook-free-query-source.xml"/>-->
<import resource="classpath*:redis-init.xml" />
<import resource="classpath*:data-hook-service-druid-prod.xml"/>
<!-- <import resource="classpath*:applicationContext-init.xml" />-->
<import resource="classpath:data-hook-init.xml"/>
<import resource="classpath*:dubbo-setting.xml"/>
<import resource="classpath:data-hook-service-dubbo-config.xml"/>
......
......@@ -37,6 +37,11 @@
<dubbo:reference interface="com.gic.enterprise.api.service.EnterpriseService" id="enterpriseService" timeout="10000" />
<dubbo:reference interface="com.gic.clerk.api.service.ClerkService" id="clerkService" timeout="10000" />
<dubbo:reference interface="com.gic.enterprise.api.service.StoreService" id="storeService" timeout="10000" />
<dubbo:reference interface="com.gic.enterprise.api.service.StoreGroupService" id="storeGroupService" timeout="10000" />
<dubbo:reference interface="com.gic.member.api.service.GradeService" id="gradeService" timeout="10000" />
<!-- 引用的 Dubbo 服务 -->
<!--<dubbo:reference interface="com.gic.dict.api.service.ManagerDictService" id="managerDictService" timeout="10000" />
<dubbo:reference interface="com.gic.cloud.communicate.api.service.member.MemberTagFieldService" id="memberTagFieldService" timeout="10000" />
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.cloud.data.hook.service.dao.DhFlatQueryFilterItemMapper">
<resultMap id="BaseResultMap" type="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilterItem">
<id property="filterItemId" column="filter_item_id" jdbcType="INTEGER"/>
<result property="filterId" column="filter_id" jdbcType="INTEGER"/>
<result property="showName" column="show_name" jdbcType="VARCHAR"/>
<result property="itemValue" column="item_value" jdbcType="VARCHAR"/>
<result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
filter_item_id,filter_id,show_name,
item_value,del_flag,create_time,
update_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from dh_flat_query_filter_item
where filter_item_id = #{filterItemId,jdbcType=INTEGER}
</select>
<select id="listQueryFilterItems" resultType="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilterItem"
parameterType="java.lang.String">
select
<include refid="Base_Column_List" />
from dh_flat_query_filter_item
where
filter_id = #{filterId}
and del_flag=0
order by create_time asc
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from dh_flat_query_filter_item
where filter_item_id = #{filterItemId,jdbcType=INTEGER}
</delete>
<insert id="insert" keyColumn="filter_item_id" keyProperty="filterItemId" parameterType="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilterItem" useGeneratedKeys="true">
insert into dh_flat_query_filter_item
( filter_item_id,filter_id,show_name
,item_value,del_flag,create_time
,update_time)
values (#{filterItemId,jdbcType=INTEGER},#{filterId,jdbcType=INTEGER},#{showName,jdbcType=VARCHAR}
,#{itemValue,jdbcType=VARCHAR},#{delFlag,jdbcType=INTEGER},#{createTime,jdbcType=TIMESTAMP}
,#{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" keyColumn="filter_item_id" keyProperty="filterItemId" parameterType="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilterItem" useGeneratedKeys="true">
insert into dh_flat_query_filter_item
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="filterItemId != null">filter_item_id,</if>
<if test="filterId != null">filter_id,</if>
<if test="showName != null">show_name,</if>
<if test="itemValue != null">item_value,</if>
<if test="delFlag != null">del_flag,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="filterItemId != null">#{filterItemId,jdbcType=INTEGER},</if>
<if test="filterId != null">#{filterId,jdbcType=INTEGER},</if>
<if test="showName != null">#{showName,jdbcType=VARCHAR},</if>
<if test="itemValue != null">#{itemValue,jdbcType=VARCHAR},</if>
<if test="delFlag != null">#{delFlag,jdbcType=INTEGER},</if>
<if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
<if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilterItem">
update dh_flat_query_filter_item
<set>
<if test="filterId != null">
filter_id = #{filterId,jdbcType=INTEGER},
</if>
<if test="showName != null">
show_name = #{showName,jdbcType=VARCHAR},
</if>
<if test="itemValue != null">
item_value = #{itemValue,jdbcType=VARCHAR},
</if>
<if test="delFlag != null">
del_flag = #{delFlag,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where filter_item_id = #{filterItemId,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilterItem">
update dh_flat_query_filter_item
set
filter_id = #{filterId,jdbcType=INTEGER},
show_name = #{showName,jdbcType=VARCHAR},
item_value = #{itemValue,jdbcType=VARCHAR},
del_flag = #{delFlag,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where filter_item_id = #{filterItemId,jdbcType=INTEGER}
</update>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.cloud.data.hook.service.dao.DhFlatQueryFilterMapper">
<resultMap id="BaseResultMap" type="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilter">
<id property="filterId" column="filter_id" jdbcType="INTEGER"/>
<result property="filterCode" column="filter_code" jdbcType="VARCHAR"/>
<result property="filterName" column="filter_name" jdbcType="VARCHAR"/>
<result property="weightCode" column="weight_code" jdbcType="VARCHAR"/>
<result property="filterSearchTip" column="filter_search_tip" jdbcType="VARCHAR"/>
<result property="filterType" column="filter_type" jdbcType="INTEGER"/>
<result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
filter_id,filter_code,filter_name,
weight_code,filter_search_tip,filter_type,
del_flag,create_time,update_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from dh_flat_query_filter
where filter_id = #{filterId,jdbcType=INTEGER}
</select>
<select id="getFilterByCode" resultType="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilter"
parameterType="java.lang.String">
select
<include refid="Base_Column_List" />
from
dh_flat_query_filter
where filter_code = #{filterCode} and del_flag=0
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from dh_flat_query_filter
where filter_id = #{filterId,jdbcType=INTEGER}
</delete>
<insert id="insert" keyColumn="filter_id" keyProperty="filterId" parameterType="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilter" useGeneratedKeys="true">
insert into dh_flat_query_filter
( filter_id,filter_code,filter_name
,filter_search_tip,filter_type,del_flag
,create_time,update_time)
values (#{filterId,jdbcType=INTEGER},#{filterCode,jdbcType=VARCHAR},#{filterName,jdbcType=VARCHAR}
,#{filterSearchTip,jdbcType=VARCHAR},#{filterType,jdbcType=INTEGER},#{delFlag,jdbcType=INTEGER}
,#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" keyColumn="filter_id" keyProperty="filterId" parameterType="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilter" useGeneratedKeys="true">
insert into dh_flat_query_filter
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="filterId != null">filter_id,</if>
<if test="filterCode != null">filter_code,</if>
<if test="filterName != null">filter_name,</if>
<if test="filterSearchTip != null">filter_search_tip,</if>
<if test="filterType != null">filter_type,</if>
<if test="delFlag != null">del_flag,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="filterId != null">#{filterId,jdbcType=INTEGER},</if>
<if test="filterCode != null">#{filterCode,jdbcType=VARCHAR},</if>
<if test="filterName != null">#{filterName,jdbcType=VARCHAR},</if>
<if test="filterSearchTip != null">#{filterSearchTip,jdbcType=VARCHAR},</if>
<if test="filterType != null">#{filterType,jdbcType=INTEGER},</if>
<if test="delFlag != null">#{delFlag,jdbcType=INTEGER},</if>
<if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
<if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilter">
update dh_flat_query_filter
<set>
<if test="filterCode != null">
filter_code = #{filterCode,jdbcType=VARCHAR},
</if>
<if test="filterName != null">
filter_name = #{filterName,jdbcType=VARCHAR},
</if>
<if test="filterSearchTip != null">
filter_search_tip = #{filterSearchTip,jdbcType=VARCHAR},
</if>
<if test="filterType != null">
filter_type = #{filterType,jdbcType=INTEGER},
</if>
<if test="delFlag != null">
del_flag = #{delFlag,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where filter_id = #{filterId,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.cloud.data.hook.service.entity.DhFlatQueryFilter">
update dh_flat_query_filter
set
filter_code = #{filterCode,jdbcType=VARCHAR},
filter_name = #{filterName,jdbcType=VARCHAR},
filter_search_tip = #{filterSearchTip,jdbcType=VARCHAR},
filter_type = #{filterType,jdbcType=INTEGER},
del_flag = #{delFlag,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where filter_id = #{filterId,jdbcType=INTEGER}
</update>
</mapper>
......@@ -244,4 +244,13 @@
order by start_time asc
</select>
<select id="getDownloadTaskTest" resultType="DownloadTask">
SELECT *
FROM
<include refid="queryTables"/>
<include refid="queryJoins"/>
WHERE
q.amount BETWEEN #{from} AND #{to} LIMIT 2000
</select>
</mapper>
\ No newline at end of file
......@@ -19,7 +19,8 @@
q.field_type,
q.enable_filter,
q.enable_order,
q.enable_encrypt
q.enable_encrypt,
q.filter_code
</sql>
......
......@@ -42,7 +42,7 @@ public class Test {
@org.junit.Test
public void test2(){
String json="{\"allFields\":[\"use_time\",\"source_integral_log_id\",\"operation_integral_log_id\",\"member_name\",\"member_sxe\",\"phone_number\",\"card_num\",\"grade_name\",\"source_integral_change\",\"interval_remark\",\"remark\",\"integral_to_fee\",\"card_name\",\"card_code\",\"card_denomination\",\"cost_value\",\"status\",\"order_store_name\",\"order_store_code\",\"order_store_group_name\",\"order_store_type\",\"order_id\",\"enterprise_id\",\"integral_channel\",\"check_store_status\"],\"amount\":4509765,\"authStoreIdList\":[],\"buildPermitted\":\"0\",\"conditions\":[{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"积分消耗时间\",\"fieldName\":\"use_time\",\"fieldType\":\"date\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"流水号\",\"fieldName\":\"source_integral_log_id\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"关联流水号\",\"fieldName\":\"operation_integral_log_id\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"会员姓名\",\"fieldName\":\"member_name\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"会员性别\",\"fieldName\":\"member_sxe\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":true,\"extendFilter\":\"\",\"fieldMark\":\"手机号码\",\"fieldName\":\"phone_number\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"会员卡号\",\"fieldName\":\"card_num\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"会员等级\",\"fieldName\":\"grade_name\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"积分消耗额\",\"fieldName\":\"source_integral_change\",\"fieldType\":\"number\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"事由\",\"fieldName\":\"interval_remark\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"备注\",\"fieldName\":\"remark\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"成本总额\",\"fieldName\":\"integral_to_fee\",\"fieldType\":\"number\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券名称\",\"fieldName\":\"card_name\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券编码\",\"fieldName\":\"card_code\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券面额\",\"fieldName\":\"card_denomination\",\"fieldType\":\"number\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券成本费用\",\"fieldName\":\"cost_value\",\"fieldType\":\"number\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"优惠券状态\",\"fieldName\":\"status\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券核销门店\",\"fieldName\":\"order_store_name\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券核销门店代码\",\"fieldName\":\"order_store_code\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券核销门店所属分组\",\"fieldName\":\"order_store_group_name\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券核销门店类型\",\"fieldName\":\"order_store_type\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"零售单号\",\"fieldName\":\"order_id\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"企业id\",\"fieldName\":\"enterprise_id\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"积分来源渠道\",\"fieldName\":\"integral_channel\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券核销门店状态\",\"fieldName\":\"check_store_status\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"}],\"decryptFilters\":[\"手机号码\"],\"enterpriseIds\":[\"ff8080817d9fbda8017dc20674f47fb6\"],\"execDistinct\":false,\"orderDir\":\"\",\"orderField\":\"\",\"queryDataType\":1,\"tableId\":\"extract_integral_use_detail\",\"taskId\":\"1675670752773\"}";
String json="{\"allFields\":[\"card_name\",\"sub_title\",\"status\",\"coup_put_time\",\"used_time\",\"receive_card_num\",\"receive_main_store_code\"],\"amount\":4250000,\"authStoreIdList\":[],\"buildPermitted\":\"1\",\"conditions\":[{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券名称\",\"fieldName\":\"card_name\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券副标题\",\"fieldName\":\"sub_title\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"优惠券状态\",\"fieldName\":\"status\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"已领取\"},{\"enableEncrypt\":false,\"extendFilter\":\"2023-01-13 23:59:59\",\"fieldMark\":\"卡券投放时间\",\"fieldName\":\"coup_put_time\",\"fieldType\":\"date\",\"filterTunnel\":\"\",\"mainFilter\":\"2023-01-12 00:00:00\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券使用时间\",\"fieldName\":\"used_time\",\"fieldType\":\"date\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"卡券领取人会员卡号\",\"fieldName\":\"receive_card_num\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"},{\"enableEncrypt\":false,\"extendFilter\":\"\",\"fieldMark\":\"领取人服务门店code\",\"fieldName\":\"receive_main_store_code\",\"fieldType\":\"text\",\"filterTunnel\":\"\",\"mainFilter\":\"\"}],\"decryptFilters\":[],\"enterpriseIds\":[\"ff80808180b3c54a0180bc3df3bb4bca\"],\"execDistinct\":false,\"orderDir\":\"\",\"orderField\":\"\",\"queryDataType\":0,\"tableId\":\"extract_coup_card_detail\",\"taskId\":\"1673977015068\"}";
FlatQueryTaskCondition condition = JSON.parseObject(json, FlatQueryTaskCondition.class);
String fullQuery = flatQueryResultService.buildFlatQuerySQL(
false, // 下载用途
......
package com.gic;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.cloud.data.hook.api.dto.FilterQueryDataDTO;
import com.gic.cloud.data.hook.service.dao.DhFlatQueryFilterMapper;
import com.gic.cloud.data.hook.service.deal.BaseQueryFilter;
import com.gic.cloud.data.hook.service.deal.QueryFilterContext;
import com.gic.cloud.data.hook.service.deal.QueryFilterFactory;
import com.gic.cloud.data.hook.service.entity.DhFlatQueryFilter;
import com.gic.cloud.data.hook.service.entity.QueryFilterInfo;
import com.gic.commons.util.EntityUtil;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:applicationContext-conf.xml"})
public class QueryFilterTest {
@Autowired
private QueryFilterFactory queryFilterFactory;
@Autowired
private DhFlatQueryFilterMapper dhFlatQueryFilterMapper;
@Test
public void test(){
QueryFilterContext queryFilterContext = new QueryFilterContext();
DhFlatQueryFilter dhFlatQueryFilter = dhFlatQueryFilterMapper.selectByPrimaryKey(24L);
if (null == dhFlatQueryFilter) {
return;
}
QueryFilterInfo queryFilterInfo = EntityUtil.changeEntityByJSON(QueryFilterInfo.class, dhFlatQueryFilter);
queryFilterContext.setQueryFilterInfo(queryFilterInfo);
queryFilterContext.setEnterpriseId("ff8080815dacd3a2015dacd3ef5c0000");
queryFilterContext.setSearch("测试");
BaseQueryFilter instance = queryFilterFactory.getInstance(queryFilterContext);
Page<FilterQueryDataDTO> filterQueryDataDTOPage = instance.pageQueryData(queryFilterContext);
System.out.println(JSONObject.toJSONString(filterQueryDataDTOPage));
}
}
......@@ -5,14 +5,23 @@ import org.junit.Test;
import org.redisson.api.RMap;
import org.redisson.api.RedissonClient;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.util.StringUtils;
public class Test2 {
@Test
public void test(){
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("redis-init.xml");
RedissonClient redisClient = RedisUtil.getRedisClient();
RMap<Object, Object> aaa = redisClient.getMap("aaa123");
aaa.put("aa","2");
String str="卡券投放/图文消息嵌入/ECM智能引擎/门店展架/自定义展架/积分兑换/线上游戏/成就奖励/任务奖励/第三方发券/其他/小程序自定义页面领取卡券/裂变纺发券/微盟发券/好办聊天/好办扫码/好办分享有礼/好办内购券/卡券转赠/兑换码/新版游戏";
Integer id=13;
String[] split = str.split("/");
for (String s : split) {
if (StringUtils.isEmpty(s)){
continue;
}
String sql="INSERT INTO `data_hook`.`dh_flat_query_filter_item` " +
"( `filter_id`, `show_name`, `item_value`, `del_flag`, `create_time`, `update_time`) " +
"VALUES ( "+id+", '"+s+"', '"+s+"', 0, now(), now());";
System.out.println(sql);
}
}
}
......@@ -58,6 +58,12 @@
<artifactId>gic-webapp-common</artifactId>
<version>${gic-webapp-common}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!--<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-cloud-web-service-api</artifactId>
......
package com.gic.cloud.data.hook.qo;
import java.io.Serializable;
import java.util.List;
public class FilterInfoBackQO implements Serializable {
private String filterCode;
private List<String> itemValues;
public String getFilterCode() {
return filterCode;
}
public void setFilterCode(String filterCode) {
this.filterCode = filterCode;
}
public List<String> getItemValues() {
return itemValues;
}
public void setItemValues(List<String> itemValues) {
this.itemValues = itemValues;
}
}
package com.gic.cloud.data.hook.qo;
import com.gic.commons.web.qo.PageQo;
import java.io.Serializable;
public class FilterInfoQO extends PageQo {
private String filterCode;
private String search;
public String getFilterCode() {
return filterCode;
}
public void setFilterCode(String filterCode) {
this.filterCode = filterCode;
}
public String getSearch() {
return search;
}
public void setSearch(String search) {
this.search = search;
}
}
......@@ -16,6 +16,10 @@ import com.gic.cloud.data.hook.api.entity.FlatQueryExecuteRequest;
import com.gic.cloud.data.hook.api.entity.GeneralResult;
import com.gic.cloud.data.hook.api.entity.Global;
import com.gic.cloud.data.hook.api.service.*;
import com.gic.cloud.data.hook.qo.FilterInfoBackQO;
import com.gic.cloud.data.hook.qo.FilterInfoQO;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.enterprise.api.constant.StoreWidget;
import com.gic.enterprise.api.dto.EnterpriseSettingDTO;
import com.gic.enterprise.api.dto.StoreWidgetDTO;
......@@ -39,7 +43,7 @@ import java.util.Arrays;
import java.util.Date;
import java.util.List;
/** 自助取数相关 Controller
/** 自助取数相关
* @author Sam
*/
@Controller
......@@ -147,6 +151,54 @@ public class FlatQueryController {
return this.flatQueryTableService.queryFlatQueryTableDetailByTableId(userId, tableId);
}
/** 根据filterCode 查询过滤详情
* @return
*/
@RequestMapping("/flat-query-filter-info")
public RestResponse<QueryFilterInfoDTO> flatQueryFilterInfo(String filterCode) {
if (StringUtils.isEmpty(filterCode)) {
return RestResponse.failure("5","filterCode没传");
}
String enterpriseId = SessionContextUtils.getLoginUserEnterpriseId();
if (StringUtils.isEmpty(enterpriseId)) {
return RestResponse.failure("4","企业不存在");
}
QueryFilterInfoDTO ret = flatQueryResultService.getFlatQueryFilterInfo(filterCode);
return RestResponse.successResult(ret);
}
/** 根据filterCode 查询列表数据
* @return
*/
@RequestMapping("/flat-query-filter-list")
public RestResponse<com.gic.api.base.commons.Page<FilterQueryDataDTO>> flatQueryFilterList(@RequestBody FilterInfoQO filterInfoQO) {
String enterpriseId = SessionContextUtils.getLoginUserEnterpriseId();
if (StringUtils.isEmpty(enterpriseId)) {
return RestResponse.failure("4","企业不存在");
}
com.gic.api.base.commons.Page<FilterQueryDataDTO> retPage = this.flatQueryResultService.pageFlatQueryFilterNew(enterpriseId, filterInfoQO.getFilterCode(), filterInfoQO.getSearch(), filterInfoQO.getBasePageInfo());
return RestResponse.successResult(retPage);
}
/** 查询条件filterCode 回显
* @return
*/
@RequestMapping("/flat-query-filter-show-back")
public RestResponse<List<FilterQueryDataDTO>> flatQueryFilterShowBack(@RequestBody FilterInfoBackQO qo) {
String enterpriseId = SessionContextUtils.getLoginUserEnterpriseId();
if (StringUtils.isEmpty(enterpriseId)) {
return RestResponse.failure("4","企业不存在");
}
List<FilterQueryDataDTO> filterQueryDataDTOS = flatQueryResultService.listBackFilter(qo.getItemValues(), qo.getFilterCode(), enterpriseId);
// flatQueryResultService.pageFlatQueryFilterNew(enterpriseId, filterInfoQO.getFilterCode(), filterInfoQO.getSearch(), filterInfoQO.getBasePageInfo());
return RestResponse.successResult(filterQueryDataDTOS);
}
/** 执行自助查询
* @param executeRequest
* @param request
......
package com.gic.cloud.data.hook.web;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.AuthorizedUser;
import com.gic.cloud.common.api.base.Page;
import com.gic.cloud.data.hook.api.dto.*;
......@@ -245,5 +246,18 @@ public class FreeQueryController {
return freeQuerySource;
}
/**
* 测试
* @param a
* @param b
* @return
*/
@RequestMapping("/get-db-cache")
public FreeQuerySource cache(String a,String b){
ServiceResponse<String> stringServiceResponse = this.freeQueryService.testCacheDb(a, b);
System.out.println(JSON.toJSONString(stringServiceResponse));
return new FreeQuerySource();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment