创建市场活动.
用户在市场活动主页面,点击"创建"按钮,弹出创建市场活动的模态窗口;
用户在创建市场活动的模态窗口填写表单,点击"保存"按钮,完成创建市场活动的功能.
<!-- 创建市场活动的模态窗口 -->
<div class="modal fade" id="createActivityModal" role="dialog">
<div class="modal-dialog" role="document" style="width: 85%;">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="myModalLabel1">创建市场活动</h4>
</div>
<div class="modal-body">
<form id="createActivityForm" class="form-horizontal" role="form">
<div class="form-group">
<label for="create-marketActivityOwner" class="col-sm-2 control-label">所有者<span style="font-size: 15px; color: red;">*</span></label>
<div class="col-sm-10" style="width: 300px;">
<select class="form-control" id="create-marketActivityOwner">
<c:forEach items="${userList}" var="u">
<option value="${u.id}">${u.name}</option>
</c:forEach>
</select>
</div>
<label for="create-marketActivityName" class="col-sm-2 control-label">名称<span style="font-size: 15px; color: red;">*</span></label>
<div class="col-sm-10" style="width: 300px;">
<input type="text" class="form-control" id="create-marketActivityName">
</div>
</div>
<div class="form-group">
<label for="create-startDate" class="col-sm-2 control-label">开始日期</label>
<div class="col-sm-10" style="width: 300px;">
<input type="text" class="form-control mydate" name="mydate" id="create-startDate" readonly>
</div>
<label for="create-endDate" class="col-sm-2 control-label">结束日期</label>
<div class="col-sm-10" style="width: 300px;">
<input type="text" class="form-control mydate" name="mydate" id="create-endDate" readonly>
</div>
</div>
<div class="form-group">
<label for="create-cost" class="col-sm-2 control-label">成本</label>
<div class="col-sm-10" style="width: 300px;">
<input type="text" class="form-control" id="create-cost">
</div>
</div>
<div class="form-group">
<label for="create-description" class="col-sm-2 control-label">描述</label>
<div class="col-sm-10" style="width: 81%;">
<textarea class="form-control" rows="3" id="create-description"></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="saveCreateActivityBtn">保存</button>
</div>
</div>
</div>
</div>
13.浏览器在工作区窗口显示市场活动主页面
<a href="workbench/activity/index.do" target="workareaFrame">
一加载页面就查询所有用户 编写controller
@Autowired
UserService userService;
@RequestMapping("/workbench/activity/index.do")
public String index(HttpServletRequest request){
//调用service层方法 查询所有用户
List<User> userList=userService.selectAllUsers();
//把数据保存daorequest中
request.setAttribute("userList",userList);
//请求转发到 市场活动主页面
return "/workbench/activity/index";
}
1-13 点击市场活动 iframe工作区显示 市场活动页面,点击创建调用模态窗口
14-24
输入市场活动信息 点击保存 发送ajax请求 把参数获取收集到data{**:** } 发送到 ulr地址
url:'workbench/activity/saveCreateActivity.do' 编写 saveCreateActivity类 接受参数通过实体类Activity 没有自动映射的属性为空 通过外键连接给activity的CreateBy属性赋值为user的id(通过session.getAttribute("user") )赋值
//给"保存"按钮添加单击事件
$("#saveCreateActivityBtn").click(function () {
//收集参数
var owner=$("#create-marketActivityOwner").val();
var name=$.trim($("#create-marketActivityName").val());
var startDate=$("#create-startDate").val();
var endDate=$("#create-endDate").val();
var cost=$.trim($("#create-cost").val());
var description=$.trim($("#create-description").val());
//表单验证
if(owner==""){
alert("所有者不能为空");
return;
}
if(name==""){
alert("名称不能为空");
return;
}
if(startDate!=""&&endDate!=""){
//使用字符串的大小代替日期的大小
if(endDate<startDate){
alert("结束日期不能比开始日期小");
return;
}
}
var regExp=/^(([1-9]\d*)|0)$/;
if(!regExp.test(cost)){
alert("成本只能为非负整数");
return;
}
//发送请求
$.ajax({
url:'workbench/activity/saveCreateActivity.do',
data:{
owner:owner,
name:name,
startDate:startDate,
endDate:endDate,
cost:cost,
description:description
},
type:'post',
dataType:'json',
success:function (data) {
if(data.code=="1"){
//关闭模态窗口
$("#createActivityModal").modal("hide");
//刷新市场活动列,显示第一页数据,保持每页显示条数不变
queryActivityByConditionForPage(1,$("#demo_pag1").bs_pagination('getOption', 'rowsPerPage'));
}else{
//提示信息
alert(data.message);
//模态窗口不关闭
$("#createActivityModal").modal("show");//可以不写。
}
}
});
});
@Autowired ActivityService activityService; 通过封装好的activity 调用service层的insertActiviry方法 保存创建对市场活动信息
插入成功 设置响应信息给浏览器 自动封装成json格式
@RequestMapping("/workbench/activity/saveCreateActivity.do")
@ResponseBody
public Object saveCreateActivity(Activity activity, HttpSession session){
User user = (User) session.getAttribute("user");
activity.setId(UUID.randomUUID().toString().
replaceAll("-",""));
activity.setCreateTime(DateUtils.formateDateTime());
activity.setCreateBy(user.getId());
//调用serviec层方法 保存创建的市场活动
ReturnObject returnObject=new ReturnObject();
try{
int ret= activityService.insertActivity(activity);
if(ret>0){
returnObject.setCode("1");
}else {
returnObject.setCode("0");
returnObject.setMessage("用户插入失败,系统忙");
}
}catch (Exception e){
e.printStackTrace();
returnObject.setCode("0");
returnObject.setMessage("系统忙");
}
return returnObject;
}
}
14.用户点击”创建“按钮
15.弹出创建市场活动的模态窗口
16.用户填写表单
17.用户”保存“按钮
18.用户保存请求 异步请求 :表单中所有的参数
19.ActivityControll 获取参数。
20。封装参数(实体类对象activity) 逆向工程生成activity表和mapper接口 ,xml
21.int insertActivity(Activity activity);
22.int insertActivity(Activity activity);
23.执行sql语句,保存创建的市场活动
24.根据生成的结果生成响应信息
*所有者是动态的(//在现实市场活动主页面时,就从数据库中查询出所有用户并且显示在创建的模态窗口中)
*所有者和名称不能为空
*如果开始日期和结束日期都不为空,则结束日期不能比开始日期小
*成本只能为非负整数
*创建成功之后,关闭模态窗口,刷新市场活动列,显示第一页数据,保持每页显示条数不变
*创建失败,提示信息创建失败,模态窗口不关闭,市场活动列表也不刷新