十二、市场活动:修改
功能需求
①、用户在市场活动主页面,选择要修改的市场活动,点击"修改"按钮,弹出修改市场活动的模态窗口;
②、用户在修改市场活动的模态窗口填写表单,点击"更新"按钮,完成修改市场活动的功能.
③、 *每次能且只能修改一条市场活动
④、*所有者 动态的
⑤、*表单验证(同创建)
⑥、 *修改成功之后,关闭模态窗口,刷新市场活动列表,保持页号和每页显示条数都不变
⑦、*修改失败,提示信息,模态窗口不关闭,列表也不刷新
一、实现id查询
ActivityMapper
1.activityMapper接口
/* 根据id查询市场活动*/Activity selectActivityById(String id);
2.activityMapper映射文件
根据id查询的sql语句
<!-- Activity selectCountOfActivityById(String id);--><select id="selectActivityById" resultMap="BaseResultMap" parameterType="java.lang.String">select<include refid="Base_Column_List"/>from tbl_activitywhere id = #{id}</select>
ActivityService
/* 根据id查询市场活动*/Activity queryActivityById(String id);
@Overridepublic Activity queryActivityById(String id) {return activityMapper.selectActivityById(id);}
ActivityController
异步查询返回一个json对象
/* 根据id修改--1查询*/@RequestMapping("/workbench/activity/selectActivityById.do")public @ResponseBodyObject selectActivityById(String id) {Activity activity = activityService.queryActivityById(id);return activity;}
前端workbench/activity/index.jsp
1.点击修改按钮,绑定单击事件,进行请求查询
-
var checkedIds = $("#tBody input[type='checkbox']:checked");点击选中的checkbox,存放到checkedIds数组里面
-
checkedIds.size()选中的数量。如果是1进行查询
-
var id = checkedIds[0].value;获取选中的id值
- $("#id").val(data.属性)向选中id赋值,进行文本填充
$("#editActivityBtn").click(function () {//收集参数获取选中的checkboxvar checkedIds = $("#tBody input[type='checkbox']:checked");if (checkedIds.size() == 0) {alert("请选择修改的事件");return;}//只能选择1个if (checkedIds.size() == 1) {var id = checkedIds[0].value;//1发送请求$.ajax({url: 'workbench/activity/selectActivityById.do',data: {id: id},type: 'post',// 2处理响应dataType: 'json',success: function (data) {//查询成功$("#edit-id").val(data.id);$("#edit-marketActivityOwner").val(data.owner);$("#edit-marketActivityName").val(data.name);$("#edit-startTime").val(data.startDate);$("#edit-endTime").val(data.endDate);$("#edit-cost").val(data.cost);$("#edit-describe").val(data.description);// 弹出创建市场模态窗口$("#editActivityModal").modal("show");}});} else {alert("只能选择一条修改");return;}});
二、点击保存按钮
流程图
ActivityMapper
根据填写的表单,需要更新的字段是所有者ower,名称name,开始日期,结束日期,成本,描述,修改事件,修改者
/* 根据id修改市场活动*/int updateActivity(Activity activity);
<!-- int updateActivity(Map<String,Object>map);--><update id="updateActivity">update tbl_activityset owner = #{owner,jdbcType=CHAR},name = #{name,jdbcType=VARCHAR},start_date = #{startDate,jdbcType=CHAR},end_date = #{endDate,jdbcType=CHAR},cost = #{cost,jdbcType=VARCHAR},description = #{description,jdbcType=VARCHAR},edit_time = #{editTime,jdbcType=CHAR},edit_by = #{editBy,jdbcType=VARCHAR}where id = #{id,jdbcType=CHAR}</update>
ActivityService
/* 根据id修改市场活动*/int editActivityById(Activity activity);
@Overridepublic int editActivityById(Activity activity) {return activityMapper.updateActivity(activity);}
ActivityController
- 封装参数,获取当前的时间和创建者的id
- 通过实体类接收对应的参数
/* 根据id修改--2保存*/@RequestMapping("/workbench/activity/editActivityById.do")public @ResponseBodyObject editActivityById(Activity activity,HttpSession session) {//封装参数//获取当前时间activity.setEditTime(DateUtils.formateDateTime(new Date()));//获取session的idUser user = (User) session.getAttribute(Contants.SESSION_USER);activity.setEditBy(user.getId());//调用ServiceReturnObject returnObject = new ReturnObject();try {int ret = activityService.editActivityById(activity);if (ret>0){returnObject.setCode(Contants.RETURN_OBJECT_CODE_SUCCESS);}else {returnObject.setCode(Contants.RETURN_OBJECT_CODE_FAIL);returnObject.setMessage("系统繁忙,稍后再试");}} catch (Exception e) {e.printStackTrace();returnObject.setCode(Contants.RETURN_OBJECT_CODE_FAIL);returnObject.setMessage("系统繁忙,稍后再试");}return returnObject;}
前端
-
$("#pagDiv").bs_pagination('getOption', 'currentPage'),获取当前页
- $("#pagDiv").bs_pagination('getOption', 'rowsPerPage'),获取每页显示的数量
- 调用的翻页函数
//修改 2 保存$("#updateSaveBtn").click(function () {//2.1封装参数var id = $("#edit-id").val();var name = $.trim($("#edit-marketActivityName").val());var owner = $("#edit-marketActivityOwner").val();var startDate = $("#edit-startTime").val();var endDate = $("#edit-endTime").val();var cost = $("#edit-cost").val();var description = $.trim($("#edit-describe").val());//2.2表单验证if (owner == "") {alert("所有者不能为空");return;}if (name == "") {alert("名称不能为空");return;}if (startDate != "" && endDate != "") {// 使用字符串大小进行日期比较if (startDate > endDate) {alert("开始日期不能大于结束日期");return;}}// 正则表达式验证成本:成本只能为非负整数var regExp = /^(([1-9]\\d*)|0)$/;if (!regExp.test(cost)) {alert("成本只能为非负整数");return;}//2.2 发送请求$.ajax({url: 'workbench/activity/editActivityById.do',data: {id: id,name: name,owner: owner,startDate: startDate,endDate: endDate,cost: cost,description: description},type: 'post',//做出响应dataType: 'json',success: function (data) {if (data.code == '1') {// 当前页$("#editActivityModal").modal("hide");queryActivityByConditionForPage($("#pagDiv").bs_pagination('getOption', 'currentPage'),$("#pagDiv").bs_pagination('getOption', 'rowsPerPage'));} else {alert(data.message);}}});});