diff --git a/db/src/main/java/db/form/JsonResult.java b/db/src/main/java/db/form/JsonResult.java index 1008641..c8ff255 100644 --- a/db/src/main/java/db/form/JsonResult.java +++ b/db/src/main/java/db/form/JsonResult.java @@ -12,9 +12,15 @@ public class JsonResult extends ToJSON { private DBAction action; - public JsonResult(T data, Type type, DBAction action) { + public void setData(T data) { this.data = data; + } + + public void setType(Type type) { this.type = type; + } + + public void setAction(DBAction action) { this.action = action; } diff --git a/web/src/main/java/web/controller/BaseController.java b/web/src/main/java/web/controller/BaseController.java index 9013bb1..98911c3 100644 --- a/web/src/main/java/web/controller/BaseController.java +++ b/web/src/main/java/web/controller/BaseController.java @@ -15,10 +15,7 @@ import org.springframework.core.ResolvableType; import org.springframework.dao.DataAccessException; import org.springframework.http.MediaType; import org.springframework.util.ClassUtils; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import web.service.BaseService; /** @@ -49,38 +46,64 @@ public abstract class BaseController(service.curd(action, model), Type.success, action); - }catch (DataAccessException e){ - log.error(e); - return new JsonResult<>("非法操作", Type.fail, action); - } - }else{ - return new JsonResult<>(tableName + "不允许" + action.getCh() + "操作", Type.fail,action); + @RequestMapping(produces = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.POST) + public JsonResult save(T model){ + JsonResult result=new JsonResult(); + result.setAction(DBAction.C); + try { + service.save(model); + result.setType(Type.success); + } catch (DataAccessException e) { + e.printStackTrace(); + result.setType(Type.fail); } + return result; + } + @ResponseBody + @RequestMapping(produces = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.GET) + public JsonResult get(T model){ + JsonResult result=new JsonResult(); + result.setAction(DBAction.R); + try { + service.get(model); + result.setType(Type.success); + } catch (DataAccessException e) { + e.printStackTrace(); + result.setType(Type.fail); + } + return result; } @ResponseBody - @RequestMapping(value = "batch/{action}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) - public JsonResult find(@PathVariable DBAction action, A queryCommand, @RequestParam Integer firstResult, @RequestParam Integer maxResults){ - log.info(tableName + "进行批量" + action.getCh() + "操作请求"); - if(checkAction(action)) { - try { - - return new JsonResult<>(service.find(getDetachedCriteria(queryCommand), firstResult, maxResults), Type.success, action); - } catch (DataAccessException e) { - log.error(e); - return new JsonResult<>("非法操作", Type.fail, action); - } - }else{ - return new JsonResult<>(tableName + "不允许" + action.getCh() + "操作", Type.fail,action); + @RequestMapping(produces = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.PUT) + public JsonResult update(T model){ + JsonResult result=new JsonResult(); + result.setAction(DBAction.U); + try { + service.update(model); + result.setType(Type.success); + } catch (DataAccessException e) { + e.printStackTrace(); + result.setType(Type.fail); } + return result; + } + + @ResponseBody + @RequestMapping(produces = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.DELETE) + public JsonResult delete(T model){ + JsonResult result=new JsonResult(); + result.setAction(DBAction.D); + try { + service.delete(model); + result.setType(Type.success); + } catch (DataAccessException e) { + e.printStackTrace(); + result.setType(Type.fail); + } + return result; } public Class getResolvableType() { @@ -95,5 +118,9 @@ public abstract class BaseController getNewTable() { + return new DataTable<>(); + } } diff --git a/web/src/main/java/web/controller/MenuController.java b/web/src/main/java/web/controller/MenuController.java index faeeca0..7a58c2e 100644 --- a/web/src/main/java/web/controller/MenuController.java +++ b/web/src/main/java/web/controller/MenuController.java @@ -17,7 +17,7 @@ public class MenuController extends BiliController { @RequestMapping public String find(Model model, MenuModel queryCommand, @RequestParam Integer firstResult, @RequestParam Integer maxResults){ - model.addAttribute("menus", super.find(DBAction.R, queryCommand, firstResult, maxResults).toString()); + model.addAttribute("menus", service.find(getDetachedCriteria(queryCommand), firstResult, maxResults).toString()); return "menu"; } diff --git a/web/src/main/java/web/controller/TableController.java b/web/src/main/java/web/controller/TableController.java index b28ad8d..f56ddce 100644 --- a/web/src/main/java/web/controller/TableController.java +++ b/web/src/main/java/web/controller/TableController.java @@ -15,23 +15,16 @@ import java.util.List; public abstract class TableController> extends BaseController { - private static final String otherColumns="otherColumns"; - - private static final int typeIndex=4; - - protected final B result = (B) getResolvableType(typeIndex).newInstance(); - - protected TableController() throws IllegalAccessException, InstantiationException { - } - @RequestMapping("table") public String find(Model model,@ModelAttribute("command") A command,B pageResult) { DBAction action=DBAction.R; log.info(tableName+ "进行批量" + action.getCh() + "操作请求"); + B result = getNewTable(); if(checkAction(action)) { try { Long rowCount=rowCount(command); if(rowCount>0) { + List list = find(command, pageResult.getCurrentPage()*pageResult.getPageSize(), pageResult.getPageSize()); List otherDatas= otherDatas(command); result.setCount(rowCount); @@ -64,6 +57,8 @@ public abstract class TableController T curd(DBAction action, T command) throws DataAccessException { - switch (action) { - case C: - getHibernateTemplate().save(command);break; - case U: - getHibernateTemplate().update(command);break; - case R: - T model=(T)(getHibernateTemplate().get(command.getClass(), command.primaryKey())); - if(model!=null){ - return model.cast(); - } - case D: - getHibernateTemplate().delete(command);break; - default: - throw new RuntimeException("非法操作:" + action); + public final Serializable save(T command) throws DataAccessException { + return getHibernateTemplate().save(command); + } + + public final void update(T command) throws DataAccessException{ + getHibernateTemplate().update(command); + } + + public final T get(T command) throws DataAccessException{ + T model=(T)getHibernateTemplate().get(command.getClass(),command.primaryKey()); + if(model!=null){ + return model.cast(); + }else{ + return null; } - return null; + } + public final void delete(T command) throws DataAccessException{ + getHibernateTemplate().delete(command); } - public final List find(DetachedCriteria criteria, int firstResult,int maxResults){ + public final List find(DetachedCriteria criteria, int firstResult,int maxResults) throws DataAccessException{ return getHibernateTemplate().findByCriteria(criteria,firstResult,maxResultslog.info(a)); } diff --git a/web/src/test/java/SpringTestThrift.java b/web/src/test/java/SpringTestThrift.java new file mode 100644 index 0000000..3697eb7 --- /dev/null +++ b/web/src/test/java/SpringTestThrift.java @@ -0,0 +1,11 @@ +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +@PropertySource({"classpath:config.properties"}) +@ComponentScan("core.thrift") +public class SpringTestThrift implements WebMvcConfigurer { + +} diff --git a/web/src/test/java/Test.java b/web/src/test/java/Test.java deleted file mode 100644 index 7e5186b..0000000 --- a/web/src/test/java/Test.java +++ /dev/null @@ -1,10 +0,0 @@ -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -public class Test { - private static Logger log = LogManager.getLogger(); - - public static void main(String[] args) throws Exception { - - } -} diff --git a/web/src/test/java/ThriftTest.java b/web/src/test/java/ThriftTest.java index b1018ce..a44265f 100644 --- a/web/src/test/java/ThriftTest.java +++ b/web/src/test/java/ThriftTest.java @@ -6,17 +6,18 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.Test; import org.junit.runner.RunWith; +import org.springframework.context.annotation.ComponentScan; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import web.config.SpringConfig; import java.util.ArrayList; //让测试运行于Spring环境 @RunWith(SpringJUnit4ClassRunner.class) @SpringJUnitWebConfig -@ContextConfiguration(classes = {SpringConfig.class}) +@ContextConfiguration(classes = SpringTestThrift.class) +@ComponentScan("core.thrift") public class ThriftTest { private static Logger log = LogManager.getLogger(); @@ -45,3 +46,4 @@ public class ThriftTest { } } +