Browse Source

fix: 修复排序问题

master_tdsql
hxh 1 year ago
parent
commit
a1dd4692b5
  1. 16
      shuili-system/src/main/java/com/kms/yxgh/common/mapper/VideoWarningMapper.java
  2. 19
      shuili-system/src/main/java/com/kms/yxgh/common/service/VideoWarningService.java

16
shuili-system/src/main/java/com/kms/yxgh/common/mapper/VideoWarningMapper.java

@ -10,8 +10,6 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.Map;
/**
* @ClassName: VideoWarningMapper
* @Description: TODO
@ -27,8 +25,9 @@ public interface VideoWarningMapper extends BaseMapper<VideoWarning> {
"SELECT a.id,a.code,a.type,a.name,a.warning_time," +
" (case when a.type = 1 then (select dike_name from bs_sgc_df_gcda where dike_code = a.code and expr_date is null) " +
" when a.type = 2 then (select waga_name from bs_sgc_sz_jbxx where waga_code = a.code and expr_date is null ) end) as objName " +
" FROM bs_sgc_stc_spfx a order by a.create_time desc" +
" <if test='dto.code != null and dto.code != \"\"'>" +
" FROM bs_sgc_stc_spfx a " +
"WHERE 1=1" +
"<if test='dto.code != null and dto.code != \"\"'>" +
"AND a.code = #{dto.code} " +
"</if>" +
"<if test='dto.startTime != null'>" +
@ -43,14 +42,11 @@ public interface VideoWarningMapper extends BaseMapper<VideoWarning> {
"#{type}" +
"</foreach>" +
"</if>" +
"<if test='order != null' and order.size() > 0'>" +
"ORDER BY " +
"<foreach collection='order' item='value' separator=','>" +
"${value.key} ${value.value}" +
"</foreach>" +
"<if test='order != null and order != \"\"'>" +
"ORDER BY ${order} " +
"</if>" +
"</script>")
IPage<VideoWarningDto> search(Page<VideoWarning> page, @Param("dto") WarningQueDto dto, @Param("order") Map<String, Object> params);
IPage<VideoWarningDto> search(Page<VideoWarning> page, @Param("dto") WarningQueDto dto, @Param("order") String order);
@Select("<script>" +
"SELECT a.id,a.code,a.type,a.name,a.warning_time ," +

19
shuili-system/src/main/java/com/kms/yxgh/common/service/VideoWarningService.java

@ -11,9 +11,7 @@ import com.shuili.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Calendar;
import java.util.Date;
import java.util.Optional;
import java.util.*;
/**
* @ClassName: videoWarningService
@ -37,9 +35,22 @@ public class VideoWarningService {
if (data.getFromTime() != null && data.getStartTime() == null) {
data.setStartTime(getBeforeTime(data.getFromTime()));
}
return videoWarningMapper.search(page, data,sp.getParams());
return videoWarningMapper.search(page, data, getOrderBy(sp.getParams()));
}
//构造排序条件 map中key为排序字段,value为排序方式
private String getOrderBy(Map<String, Object> params) {
params = Optional.ofNullable(params).orElse(new HashMap<>());
StringBuilder order = new StringBuilder();
params.forEach((k, v) -> {
if (StringUtils.isNotBlank(k) && StringUtils.isNotBlank(v.toString())) {
order.append(k).append(" ").append(v).append(",");
}
});
return order.length() > 0 ? order.substring(0, order.length() - 1) : null;
}
private String remove00(String str) {
if (str.endsWith("00")) {
return str.substring(0, str.length() - 2);

Loading…
Cancel
Save