根据status进行批量修改(Approve和Rejected)(批准还是拒绝)
2015-05-26 14:16
218 查看
一 jsp层
<td class="text-center">
<c:if test="${trainingApply.status == '0' || trainingApply.status == '80'}">
<input type="checkbox" name="applyId" value="${trainingApply.id }" userId="${trainingApply.user.id}"/>
</c:if>
</td>
<label class="col-sm-1 control-label">Status</label>
<div class="col-sm-2">
<select class="form-control" name="status">
<option value=""> - All - </option>
<option value="0">Applied</option>
<option value="10">Approved</option>
<option value="80">Rejected</option>
</select>
</div>
<div class="form-group">
<a class="btn btn-success pull-right" onclick="updateApply(10)" style="color: white; margin: 4px 50px 0px 0px;" >
Approve
</a>
<a class="btn btn-danger pull-right" onclick="updateApply(80)" style="color: white; margin: 4px -140px 0px 0px;" >
Reject
</a>
</div>
function updateApply(status) {
if (status == 10) {
var userAvailable = judgeUserUnValidate();
if (!userAvailable) {
return;
}
}
var msg = status == 10 ? 'Are you sure to approve the application?' : 'Are you sure to reject the application?';
$.confirm(msg, {ok:function(){
var applyIds =[];
var userIds =[];
$('input[name="applyId"]:checked').each(function(){
applyIds.push($(this).val());
});
$('input[name="applyId"]:checked').each(function(){
userIds.push($(this).attr('userId'));
});
/*
push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。
*/
if (!applyIds || applyIds.length < 1) {
$.alert("Select training apply please.")
return;
}
var uri = "${path}/arwen/courseapply/updateApplyList?status=" + status + "&ids=" + applyIds + "&userIds=" + userIds;
$.post(uri, function(data){
if (data) {
if (data.result == true) {
$.alert("<spring:message code="admin.common.msg.success"/>", {ok:function() {
window.location.href= "/arwen/courseapply/list";
}
})
} else {
$.alert(data.message);
}
}
});
}
});
};
二 controller层
@RequestMapping("/updateApplyList")
@RequireLogin
@ResponseBody
@AccessControl("course_app_approval")
public ResultResponse updateApplyList(HttpServletRequest request, Integer status, Long[] ids, Long[] userIds) {
RequestContext requestContext = new RequestContext(request);
Locale locale = requestContext.getLocale();
ResultResponse rr = new ResultResponse(false);
try {
if (ArrayUtils.isNotEmpty(ids)) {
Long optBy = getLoginUser().to(UserInfo.class).getId();
this.courseApplyService.updateApplyList(status, Arrays.asList(ids), locale, Arrays.asList(userIds), optBy);
rr.setResult(true);
} else {
rr.setMessage("Select training apply please.");
}
} catch (Exception e) {
ERROR.error(this.getClass().getSimpleName(), e);
rr.setMessage(e.getMessage());
}
return rr;
}
三 service层
int updateApplyList(Integer status, List<Long> applyIds, Locale locale, List<Long> userIds, Long uptUserId);
@Override
@Transactional
public int updateApplyList(Integer status, List<Long> applyIds, Locale locale, List<Long> userIds, Long uptUserId) {
int num = this.trainingApplyDAO.updateApplyList(status, applyIds, uptUserId);
sendEmail(num, status, applyIds, userIds, locale);
return num;
}
四 DAO层
private static final String HQL_Batch_Apply = "update TrainingApply ta set ta.status = :astatus, ta.updateDate = :bdate, ta.updateBy = :cupdateBy where id
in (:dids)";
public int updateApplyList(Integer status, List<Long> ids, Long uptUserId) {
if (CollectionUtils.isNotEmpty(ids)) {
return this.bulkUpdate(HQL_Batch_Apply, status, new Date(), uptUserId, ids);
}
return 0;
}
<td class="text-center">
<c:if test="${trainingApply.status == '0' || trainingApply.status == '80'}">
<input type="checkbox" name="applyId" value="${trainingApply.id }" userId="${trainingApply.user.id}"/>
</c:if>
</td>
<label class="col-sm-1 control-label">Status</label>
<div class="col-sm-2">
<select class="form-control" name="status">
<option value=""> - All - </option>
<option value="0">Applied</option>
<option value="10">Approved</option>
<option value="80">Rejected</option>
</select>
</div>
<div class="form-group">
<a class="btn btn-success pull-right" onclick="updateApply(10)" style="color: white; margin: 4px 50px 0px 0px;" >
Approve
</a>
<a class="btn btn-danger pull-right" onclick="updateApply(80)" style="color: white; margin: 4px -140px 0px 0px;" >
Reject
</a>
</div>
function updateApply(status) {
if (status == 10) {
var userAvailable = judgeUserUnValidate();
if (!userAvailable) {
return;
}
}
var msg = status == 10 ? 'Are you sure to approve the application?' : 'Are you sure to reject the application?';
$.confirm(msg, {ok:function(){
var applyIds =[];
var userIds =[];
$('input[name="applyId"]:checked').each(function(){
applyIds.push($(this).val());
});
$('input[name="applyId"]:checked').each(function(){
userIds.push($(this).attr('userId'));
});
/*
push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。
*/
if (!applyIds || applyIds.length < 1) {
$.alert("Select training apply please.")
return;
}
var uri = "${path}/arwen/courseapply/updateApplyList?status=" + status + "&ids=" + applyIds + "&userIds=" + userIds;
$.post(uri, function(data){
if (data) {
if (data.result == true) {
$.alert("<spring:message code="admin.common.msg.success"/>", {ok:function() {
window.location.href= "/arwen/courseapply/list";
}
})
} else {
$.alert(data.message);
}
}
});
}
});
};
二 controller层
@RequestMapping("/updateApplyList")
@RequireLogin
@ResponseBody
@AccessControl("course_app_approval")
public ResultResponse updateApplyList(HttpServletRequest request, Integer status, Long[] ids, Long[] userIds) {
RequestContext requestContext = new RequestContext(request);
Locale locale = requestContext.getLocale();
ResultResponse rr = new ResultResponse(false);
try {
if (ArrayUtils.isNotEmpty(ids)) {
Long optBy = getLoginUser().to(UserInfo.class).getId();
this.courseApplyService.updateApplyList(status, Arrays.asList(ids), locale, Arrays.asList(userIds), optBy);
rr.setResult(true);
} else {
rr.setMessage("Select training apply please.");
}
} catch (Exception e) {
ERROR.error(this.getClass().getSimpleName(), e);
rr.setMessage(e.getMessage());
}
return rr;
}
三 service层
int updateApplyList(Integer status, List<Long> applyIds, Locale locale, List<Long> userIds, Long uptUserId);
@Override
@Transactional
public int updateApplyList(Integer status, List<Long> applyIds, Locale locale, List<Long> userIds, Long uptUserId) {
int num = this.trainingApplyDAO.updateApplyList(status, applyIds, uptUserId);
sendEmail(num, status, applyIds, userIds, locale);
return num;
}
四 DAO层
private static final String HQL_Batch_Apply = "update TrainingApply ta set ta.status = :astatus, ta.updateDate = :bdate, ta.updateBy = :cupdateBy where id
in (:dids)";
public int updateApplyList(Integer status, List<Long> ids, Long uptUserId) {
if (CollectionUtils.isNotEmpty(ids)) {
return this.bulkUpdate(HQL_Batch_Apply, status, new Date(), uptUserId, ids);
}
return 0;
}
相关文章推荐
- mysql根据不同的条件对数据进行批量修改(navicat)
- 将含有n条的数据,进行批量修改时,所处理的一个机制
- StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改
- 根据status信息对MySQL服务器进行优化
- javascript中通过className灵活查找元素 例如我们要把根据class来进行修改样式
- android 读写xml,修改appserver.xml(根据appserver.xml文件的位置进行操作)
- MySql 同一个列中的内容进行批量修改
- 演示使用DOM技术如何根据指定XML,进行相应的修改然后生成新的XML文档
- mysql优化(根据status信息对MySQL服务器进行优化
- 根据status信息对MySQL服务器进行优化
- 根据status信息对MySQL服务器进行优化-1
- 根据status信息对MySQL服务器进行优化
- ShopEx customSchema 定制可以根据客户的需求对网站进行相应功能的添加修改或者删除
- 根据status信息对MySQL服务器进行优化-1
- 百度地图API,用户拒绝获取地理位置getStatus()还是等于BMAP_STATUS_SUCCESS
- git基础学习(二):对修改的文件进行提交 git diff 和 git status
- 根据数据三范式对表进行的修改
- 根据status信息对MySQL服务器进行优化-2
- C#导出Excel的函数(可根据实际需要进行相应修改)
- 根据status信息对MySQL服务器进行优化