package route import com.jfinal.kit.JsonKit import com.jfinal.plugin.activerecord.Db import com.jfinal.plugin.activerecord.Record import model.JSONResponse import model.ModelMenu import model.JFinalModelMenu import ro.pippo.controller.* import ro.pippo.controller.extractor.Param import service.Service import util.* import java.util.* @Path("/menu") class CtrlMenu : Controller() { private val service = Service() @GET("/{id: [0-9]+}") @Produces(Produces.JSON) fun getMenuById(@Param("id") id: Int): JSONResponse { val menu = service.getMenuById(id) if (menu == null) { return responseNotFoundById() } return responseSuccess(menu) } @GET("/{page: [0-9]+}/{size: [0-9]+}") @Produces(Produces.JSON) fun pagi(@Param("page") num:Int, @Param("size") size:Int) :String { val page = service.pagiMenu(num,size) return JsonKit.toJson(responseSuccess(page)) } @GET("/byRole/{roleId: [0-9]+}") @Produces(Produces.JSON) fun getMenuByRole(@Param("roleId") roleId: Int): JSONResponse { val role = service.getRoleById(roleId) if (role == null) { return responseNotFoundById() } val menus = service.getMenuByRole(roleId) return responseSuccess(menus) } @POST("/") @Produces(Produces.JSON) fun addMenu(): JSONResponse { val menu: ModelMenu? = request.createEntityFromParameters(ModelMenu::class.java) if (menu == null) { return responseInvalidParams() } val menu2 = JFinalModelMenu() menu2.put("description", menu.description) menu2.put("url", menu.url) menu2.put("permId", menu.permId) menu2.put("createTime", Date()) val isSuccess = menu2.save() return if (isSuccess) { responseSuccess(menu2) } else { responseOperationFailed() } // val isSuccess = service.saveMenu(menu) // return if (isSuccess) { // responseSuccess(menu) // } else { // responseOperationFailed() // } } @POST("/{id: [0-9]+}") @Produces(Produces.JSON) fun updateMenu(@Param("id") id: Int): JSONResponse { val menu: ModelMenu? = request.createEntityFromParameters(ModelMenu::class.java) if (menu == null) { return responseInvalidParams() } val isSuccess = service.updateMenu(menu) return if (isSuccess) { responseSuccess(menu) } else { responseOperationFailed() } } //更新 @POST("/update") @Produces(Produces.JSON) fun updateMen() : JSONResponse { if (null != request.parameters["id"]) { val record = Record() updateUtil(record,request) val isSuccess = Db.update("menu","id",record) return if (isSuccess){ responseSuccess(true) } else{ responseUpdateMenuFailed() } }else { return responseUpdateMenuFailed() } } @POST("/del/{id: [0-9]+}") @Produces(Produces.JSON) fun deleteMenu(@Param("id") id: Int): JSONResponse { val menu = service.getMenuById(id) if (menu == null) { return responseNotFoundById() } val isSuccess = service.deleteMenu(id) return if (isSuccess) { responseSuccess(id) } else { responseOperationFailed() } } @POST("/bindPerm/{menuId: [0-9]+}/{permId: [0-9]+}") @Produces(Produces.JSON) fun bindMenuToPerm(@Param("menuId") menuId: Int, @Param("permId") permId: Int): JSONResponse { val menu = service.getMenuById(menuId) val perm = service.getPermById(permId) if (menu == null || perm == null) { return responseNotFoundById() } val isSuccess = service.bindMenuToPerm(menuId, permId) return if (isSuccess) { responseSuccess(true) } else { responseOperationFailed() } } @POST("/unbindPerm/{menuId: [0-9]+}/{permId: [0-9]+}") @Produces(Produces.JSON) fun unbindMenuToPerm(@Param("menuId") menuId: Int, @Param("permId") permId: Int): JSONResponse { val menu = service.getMenuById(menuId) val perm = service.getPermById(permId) if (menu == null || perm == null) { return responseNotFoundById() } val isSuccess = service.unbindMenuToPerm(menuId, permId) return if (isSuccess) { responseSuccess(true) } else { responseOperationFailed() } } }