LabelQueryAction.java

package com.mycim.webapp.actions.setting.system.label;

import com.mycim.framework.jdbc.Page;
import com.mycim.framework.logging.Logger;
import com.mycim.framework.logging.LoggerFactory;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.framework.utils.lang.math.NumberUtils;
import com.mycim.framework.utils.msg.JsonUtils;
import com.mycim.webapp.actions.SystemSetupAction;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.util.StopWatch;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;

/**
 * 批次查询
 *
 * @author pinyan.song
 * @version 6.0.0
 * @date 2019-9-23
 **/
public class LabelQueryAction extends SystemSetupAction {
    private static final Logger logger = LoggerFactory.getLogger(LabelQueryAction.class);

    @Override
    public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                              HttpServletResponse response) throws Exception {
        int tabMaxCount = Integer.MAX_VALUE;
        String tabMaxCountStr = sysService.getRefFileValue("$PORTAL_TAB_MAX_COUNT", "LOTPORTAL", "DATA_1_VALUE");
        if (StringUtils.isNotBlank(tabMaxCountStr) && NumberUtils.isNumber(tabMaxCountStr)) {
            tabMaxCount = NumberUtils.toInt(tabMaxCountStr, Integer.MAX_VALUE);
        }
        request.setAttribute("totalTabCount", tabMaxCount);
        return mapping.findForward("labelQuery");
    }

    public Map query(Map<String, Object> params) throws Exception {
        StopWatch sw = new StopWatch("label query action");
        Map map = new HashMap();

        int rowStart = NumberUtils.toInt(MapUtils.getString(params, "start"));
        rowStart = rowStart < 0 ? 0 : rowStart;
        int pageSize = NumberUtils.toInt(MapUtils.getString(params, "limit"));
        pageSize = pageSize <= 0 ? 10 : pageSize;


        Page page = new Page();
        page.setPageSize(Long.valueOf(pageSize));
        page.setPageNo((rowStart / pageSize) + 1);
        String sort = MapUtils.getString(params, "sort");
        if(StringUtils.isNotEmptyTrim(sort)){
            Map<String,Object> sortMap = JsonUtils.toList(sort,Map.class).get(0);
            String order = MapUtils.getJsonString(sortMap,"direction");
            page.setOrder(StringUtils.lowerCase(order));
            page.setOrderBy(MapUtils.getJsonString(sortMap,"property"));
        }

        page = sysService.querySysForPage(buildQueryParameterDto(params, page));

        map.put("data", page.getResults());
        map.put("totalCount", page.getTotalItems());
        if (logger.isDebugEnabled()) {
            logger.debug(sw.prettyPrint());
        }
        return map;
    }

    /**
     * 设置查询条件
     */
    private Page buildQueryParameterDto(Map<String, Object> params, Page page) throws Exception {
        Map<String,Object> map = new HashMap<>();
        String instanceId = MapUtils.getString(params, "LABEL", "").trim();
        instanceId = StringUtils.replace(instanceId, "*", "%").toString().trim().toUpperCase();
        map.put("instanceId",instanceId);
        String instanceDesc = MapUtils.getString(params, "contentText", "").trim();
        instanceDesc = StringUtils.replace(instanceDesc, "*", "%").toString().trim().toLowerCase();
        map.put("instanceDesc", instanceDesc);
        map.put("object","LABEL");
        page.setBaseInfo(map);
        return page;
    }
}