4 周四培训内容 4 周四培训内容
4.1 后端介绍 4.1 后端介绍
4.1.1 后端目录结构【单系统】 4.1.1 后端目录结构【单系统】
1.后端代码的文件存放路径
2.平台生成的例子。例子业务对象TestExam3201及子对象TestExam3201Detail。
参考一对多主从案例链接
4.1.1.1 后端框架简介
4.1.1.1 后端框架简介 4.1.1.1 后端框架简介
- 后端的框架为springMVC+MyBatis
- springMVC即我们平时学习的框架,下面地址仅为参考例子。
参考例子
4.1.2 后端的MyBatis常用查询操作4.1.2 后端的MyBatis常用查询操作
#####后端的MyBatis常用查询操作后端的MyBatis常用查询操作
1. 查询操作之and()
2. 查询操作之EQ
- 查询操作之IN
-
其他的见参考文档:吉联物流云应用平台(GLPaaS)Mybatis数据操作.ppt
4.1.3前后端交互例子
4.1.3前后端交互例子4.1.3前后端交互例子
前后端交互例子前后端交互例子
- 下文将以TestExam3401例子的批量删除按钮为例子讲解。
先来看下html中的查询按钮代码:其中ng-click=”deleteTestExam3401s()”其点击事件。
<button id="testExam3401.deleteTestExam3401s"
type="button"
ng-click="deleteTestExam3401s()"
g-per="/testExam3401/deletes" class="button-primary" >
批量删除
</button>
根据查询方法,我们在对应的js文件中查看批量删除的方法定义。在方法定义中可以看到,在方法中发送了个http请求。且将勾选的主键的ids作为参数传递到了后端。
$http.post($config.ct + '/testExam3401/deletes', {ids: ids}).success(function (data) {
if (data.success != undefined && data.success == true) {
$scope.getTestExam3401Pages();
if ($scope._pageState) $scope._pageState.resetDataState();
var gridVerifyArr = [{scope: "$scope", grid: ["testExam3401"]}, {
scope: "$scope",
property: "testExam3401FreightArs",
grid: ["testExam3401FreightAr"],
loadOneToOneSubBoData: false
}, {
scope: "$scope",
property: "testExamAttachment3401s",
grid: ["testExamAttachment3401"],
loadOneToOneSubBoData: false
}, {
scope: "$scope",
property: "testExam3401FreightAps",
grid: ["testExam3401FreightAp"],
loadOneToOneSubBoData: false
}, {
scope: "$scope",
property: "testExam3401Details",
grid: ["testExam3401Detail"],
loadOneToOneSubBoData: false
}, {
scope: "$scope",
property: "testExam3401Freights",
grid: ["testExam3401Freight"],
loadOneToOneSubBoData: false
}];
_this.gridVerify({boName: "TestExam3401", scope: $scope, settings: gridVerifyArr});
GillionMsg.alert("提示", data.msg);
$timeout(function () {
if ($scope._pageState) $scope._pageState.resetDataState();
});
}
});
}
接着我们到控制器中查看对应的操作。在控制器中,批量删除deletes根据传递过来的主键值数组,调用的服务类中的批量删除方法进行删除数据。然后返回了一个【删除成功】的消息。
public void deletes(@RequestBody String params, HttpServletResponse response) throws Exception {
Map<String, String> parmMaps = JsonMapper.MAPPER.fromJson(params, Map.class);
String idStr = parmMaps.get("ids");
String[] ids = idStr.split(",");
testExam3401Service.deletes(ids);
ResponseUtils.flushSuccess(response, "删除成功!");
}
为服务类上的批量删除deletes方法内容。
public void deletes(String[] ids)
{
List<String> testExam3401Ids = Lists.newArrayList(ids);
TestExam3401Example testExam3401Example = TestExam3401Example.create();
testExam3401Example.and().andCreateCondition(TestExam3401.TESTEXAM3401ID,"testExam3401Id",Operation.IN,Arrays.asList(ids));
if (!testExam3401Ids.isEmpty())
{
testExam3401FreightArService.deleteWithParent(testExam3401Ids);
}
if (!testExam3401Ids.isEmpty())
{
testExamAttachment3401Service.deleteWithParent(testExam3401Ids);
}
if (!testExam3401Ids.isEmpty())
{
testExam3401FreightApService.deleteWithParent(testExam3401Ids);
}
if (!testExam3401Ids.isEmpty())
{
testExam3401DetailService.deleteWithParent(testExam3401Ids);
}
if (!testExam3401Ids.isEmpty())
{
testExam3401FreightService.deleteWithParent(testExam3401Ids);
}
this.deleteByExample(testExam3401Example);
}
在前端接收后台返回的消息。
$http.post($config.ct + '/testExam3401/deletes', {ids: ids}).success(function (data) {
if (data.success != undefined && data.success == true) {
_this.gridVerify({boName: "TestExam3401", scope: $scope, settings: gridVerifyArr});
GillionMsg.alert("提示", data.msg);
$timeout(function () {
if ($scope._pageState) $scope._pageState.resetDataState();
});
}
});
}
4.2自定义扩展介绍 4.2自定义扩展介绍
自定义扩展介绍 自定义扩展介绍
- 自定义扩展service服务 参考配置
- 自定义扩展controller 参考配置
【后端扩展】参考视频:http://training.gillion.com.cn/app.php/course/30/task/434/show
4.4 自定义习题布置4.3 自定义习题布置
自定义习题布置 自定义习题布置
- 例子:TestExam3401。要求为:界面要查询3301的主表字段和子表明细字段信息。界面和3301管理页的一样,但是表格上还需要展示订单明细表的,商品名称、待入库数量、已入库数量。界面上的新增按钮点击后跳转到3301案例的新增界面,编辑按钮点击后跳转到3301界面的编辑页面。
参考配置 -
在1的基础上,界面上有个自定义按钮,批量删除,点击批量删除,如果主表中只有一条明细表数据,则删除主表,扩展表,明细表数据。如果主表中有多条明细,则删除本条明细数据,其他数据不删除。
-
在3301例子上,主表保存的时候要给字段收货人赋值当前用户信息
参考配置
4.3101例子上,配置导入导出。参考配置
【Excel导入】参考视频:http://training.gillion.com.cn/app.php/course/30/task/440/show
【Excel导出】参考视频:http://training.gillion.com.cn/app.php/course/30/task/442/show