package com.tale.controller.admin;
import com.blade.ioc.annotation.Inject;
import com.blade.mvc.annotation.Controller;
import com.blade.mvc.annotation.JSON;
import com.blade.mvc.annotation.QueryParam;
import com.blade.mvc.annotation.Route;
import com.blade.mvc.http.HttpMethod;
import com.blade.mvc.http.Request;
import com.blade.mvc.view.RestResponse;
import com.tale.controller.BaseController;
import com.tale.dto.MetaDto;
import com.tale.dto.Types;
import com.tale.exception.TipException;
import com.tale.init.TaleConst;
import com.tale.service.MetasService;
import com.tale.service.SiteService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* Created by biezhi on 2017/2/21.
*/
@Controller("admin/category")
public class CategoryController extends BaseController {
private static final Logger LOGGER = LoggerFactory.getLogger(CategoryController.class);
@Inject
private MetasService metasService;
@Inject
private SiteService siteService;
@Route(value = "", method = HttpMethod.GET)
public String index(Request request) {
List<MetaDto> categories = siteService.getMetas(Types.RECENT_META, Types.CATEGORY, TaleConst.MAX_POSTS);
List<MetaDto> tags = siteService.getMetas(Types.RECENT_META, Types.TAG, TaleConst.MAX_POSTS);
request.attribute("categories", categories);
request.attribute("tags", tags);
return "admin/category";
}
@Route(value = "save", method = HttpMethod.POST)
@JSON
public RestResponse saveCategory(@QueryParam String cname, @QueryParam Integer mid) {
try {
metasService.saveMeta(Types.CATEGORY, cname, mid);
siteService.cleanCache(Types.C_STATISTICS);
} catch (Exception e) {
String msg = "分类保存失败";
if (e instanceof TipException) {
msg = e.getMessage();
} else {
LOGGER.error(msg, e);
}
return RestResponse.fail(msg);
}
return RestResponse.ok();
}
@Route(value = "delete")
@JSON
public RestResponse delete(@QueryParam int mid) {
try {
metasService.delete(mid);
siteService.cleanCache(Types.C_STATISTICS);
} catch (Exception e) {
String msg = "删除失败";
if (e instanceof TipException) {
msg = e.getMessage();
} else {
LOGGER.error(msg, e);
}
return RestResponse.fail(msg);
}
return RestResponse.ok();
}
}