@RequestMapping(value = {"search", "s"})
    @ResponseBody
    public Map search(
            @RequestParam int page,
            @RequestParam(value = "limit") int pageSize,
            @RequestParam(required = false, defaultValue = "0") int gradeId,
            @RequestParam(required = false, defaultValue = "0") int specialtyId,
            @RequestParam(required = false, defaultValue = "0") int collegeId,
            @RequestParam(required = false) String clazzName
    ) {
        Map<String, Object> map = new HashMap<>();
        Map<String, Object> conditions = new HashMap<>();

        if (!Strings.isNullOrEmpty(clazzName)) {
            conditions.put("clazz_name", clazzName);
        }
        if (gradeId != 0) {
            conditions.put("grade_id", gradeId);
        }
        if (gradeId != 0) {
            conditions.put("specialty_id", specialtyId);
        }
        if (collegeId != 0) {
            conditions.put("college_id", collegeId);
        }

        List<Class> list = classService.search(page, pageSize, conditions);
        int total = classService.count(conditions);

        map.put("success", true);
        map.put("total", total);
        map.put("list", list);

        return map;
    }