package com.ibeetl.admin.console.web;


import java.util.List;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.beetl.sql.core.engine.PageQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.ibeetl.admin.console.service.AuditConsoleService;
import com.ibeetl.admin.console.web.query.AuditQuery;
import com.ibeetl.admin.console.web.query.UserQuery;
import com.ibeetl.admin.core.annotation.Function;
import com.ibeetl.admin.core.annotation.Query;
import com.ibeetl.admin.core.entity.CoreAudit;
import com.ibeetl.admin.core.util.AnnotationUtil;
import com.ibeetl.admin.core.web.JsonResult;
/**
 * 用户管理接口
 * @author xiandafu
 *
 */
@Controller
public class AuditConsoleController {
	private  final Log log  = LogFactory.getLog(this.getClass());
    private static final String MODEL = "/admin/audit";

    @Autowired
    AuditConsoleService auditConsoleService;
    
  
   /*页面*/
    
    @GetMapping(MODEL + "/index.do")
    @Function("trace")
    public ModelAndView index() {
		ModelAndView view = new ModelAndView("/admin/audit/index.html");
		view.addObject("search", AuditQuery.class.getName());
        return view;
    }
    
    
    /*Json*/

    @PostMapping(MODEL + "/view.json")
    @ResponseBody
    @Function("trace")
    public JsonResult<CoreAudit> view(Long id) {
    		CoreAudit audit = auditConsoleService.queryById(id);
        return JsonResult.success(audit);
    }
    
    

    @RequestMapping(MODEL + "/list.json")
    @Function("trace")
    @ResponseBody
    public JsonResult<PageQuery<CoreAudit>> list(AuditQuery condtion) {
       
        PageQuery<CoreAudit> page = condtion.getPageQuery();
        auditConsoleService.queryByCondtion(page);
        return JsonResult.success(page);
    }
    
    
    @PostMapping(MODEL + "/list/condition.json")
    @Function("trace")
    @ResponseBody
    public JsonResult<List<Map<String, Object>>> listCondtion() {
    		List<Map<String, Object>> list = AnnotationUtil.getInstance().getAnnotations(Query.class, AuditQuery.class);
    		return  JsonResult.success(list);
    }


}
