package com.vincent.rsf.server.common.domain; 
 | 
  
 | 
import com.baomidou.mybatisplus.annotation.TableField; 
 | 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 
 | 
import com.vincent.rsf.common.utils.Utils; 
 | 
import com.vincent.rsf.framework.common.SpringUtils; 
 | 
import com.vincent.rsf.server.system.entity.Fields; 
 | 
import com.vincent.rsf.server.system.service.FieldsService; 
 | 
import lombok.Data; 
 | 
  
 | 
import java.io.Serializable; 
 | 
import java.util.HashMap; 
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
  
 | 
/** 
 | 
 * Created by vincent on 2/13/2024 
 | 
 */ 
 | 
@Data 
 | 
public class BaseParam implements Serializable { 
 | 
  
 | 
    private static final long serialVersionUID = 1L; 
 | 
  
 | 
    @TableField(exist = false) 
 | 
    private Integer current; 
 | 
  
 | 
    @TableField(exist = false) 
 | 
    private Integer pageSize; 
 | 
  
 | 
    // 排序字段或sql, 如果是sql则order字段无用, 如: `id asc, name desc 
 | 
    @TableField(exist = false) 
 | 
    private String orderBy; 
 | 
  
 | 
    @TableField(exist = false) 
 | 
    private String timeStart; 
 | 
  
 | 
    @TableField(exist = false) 
 | 
    private String timeEnd; 
 | 
  
 | 
    @TableField(exist = false) 
 | 
    private String condition; 
 | 
  
 | 
    @TableField(exist = false) 
 | 
    private Map<String, Object> map; 
 | 
  
 | 
    @TableField(exist = false) 
 | 
    private Map<String, Object> fields = new HashMap<>(); 
 | 
  
 | 
    public void syncMap(Map<String, Object> map) { 
 | 
        if (null == map) { 
 | 
            return; 
 | 
        } 
 | 
        if (null != map.get("current")) { 
 | 
            this.setCurrent(Integer.parseInt(String.valueOf(map.get("current")))); 
 | 
            map.remove("current"); 
 | 
        } 
 | 
        if (null != map.get("pageSize")) { 
 | 
            this.setPageSize(Integer.parseInt(String.valueOf(map.get("pageSize")))); 
 | 
            map.remove("pageSize"); 
 | 
        } 
 | 
        if (null != map.get("orderBy")) { 
 | 
            this.setOrderBy(Utils.convertToSnakeCaseForOrderByStr(String.valueOf(map.get("orderBy")))); 
 | 
            map.remove("orderBy"); 
 | 
        } 
 | 
        if (null != map.get("timeStart")) { 
 | 
            this.setTimeStart(String.valueOf(map.get("timeStart"))); 
 | 
            map.remove("timeStart"); 
 | 
        } 
 | 
        if (null != map.get("timeEnd")) { 
 | 
            this.setTimeEnd(String.valueOf(map.get("timeEnd"))); 
 | 
            map.remove("timeEnd"); 
 | 
        } 
 | 
        if (null != map.get("q")) { 
 | 
            this.setCondition(String.valueOf(map.get("q"))); 
 | 
            map.remove("q"); 
 | 
        } 
 | 
        if (null != map.get("condition")) { 
 | 
            this.setCondition(String.valueOf(map.get("condition"))); 
 | 
            map.remove("condition"); 
 | 
        } 
 | 
  
 | 
        FieldsService fieldsService = SpringUtils.getBean(FieldsService.class); 
 | 
        List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1).eq(Fields::getStatus, 1)); 
 | 
        if (!fields.isEmpty()) { 
 | 
            for (Fields fields1 : fields) { 
 | 
                if (null !=map.get(fields1.getFields())){ 
 | 
                    this.fields.put(fields1.getFields(), map.get(fields1.getFields())); 
 | 
                    map.entrySet().removeIf(next -> next.getKey().equals(fields1.getFields()) 
 | 
                    ); 
 | 
                } 
 | 
            } 
 | 
  
 | 
        } 
 | 
  
 | 
        this.setMap(map); 
 | 
    } 
 | 
  
 | 
} 
 |