1、在页面中配置
2、书写Ajax
禁用的是一样的,
3、书写controller层
4、service层总的配置
service实现
5、dao层
6、sql语句
<input type="button" onclick="updateStatusByGroup('1')" class="btn btn-outline btn-info btn-xs" id="updateEnables" value="禁用">
<input type="button" onclick="updateStatusByGroup('0')" class="btn btn-outline btn-danger btn-xs" id="updateDisables" value="启用">
启用跟禁用的AJAX
//启用多条数据
function updateStatusByGroup(status) {
var arr = new Array();
var str = "";
var nullStr = "";
if(status == 1){
str = "确定禁用选中内容?";
nullStr = "请选择禁用记录!"
}else if(status == 0){
str = "确定启用选中内容?";
nullStr = "请选择启用记录!"
}
$("input[name='ids']:checked").each(function(i){
arr[i] = $(this).val();
});
if(arr.length == 0){art.warn(nullStr);return;}
var vals = arr.join(",");
bootbox.confirm(message(str), function(result) {
if(result){
$.ajax({
url: "${base}/admin/app_user/updateSetables.jhtml",
type: "POST",
data:{
ids:vals,
status:status
},
dataType: "json",
cache: false,
success: function(message) {
art.message(message);
if (message.type == "success") {
window.setTimeout(function() {
window.location.reload();
}, 500);
}
}
});
}
});
};
1、controller层
//多条记录的启用/禁用
@RequestMapping(value = "/updateSetables", method = RequestMethod.POST)
public @ResponseBody Message updateSetables(String ids,int status){
WefineUser wefineUser=null;
String[] split=ids.split(",");
for(String id:split){
wefineUser=new WefineUser();
//将参数转换成long的包装类
wefineUser.setId(Long.valueOf(id));
wefineUser.setStatus(status);
this.wefineUserService.update(wefineUser);
}
List<Long> idsList=new ArrayList<>();
for(String id:split){
idsList.add(Long.parseLong(id));
}
Long[] longs=new Long[idsList.size()];
wefineUserService.updateStatus(status, idsList.toArray(longs));
return SUCCESS_MESSAGE;
}
2、service接口
//批量启用/禁用数据
public void updateStatus(Integer status,Long ... ids);
接口实现
//批量启用/禁用数据
public void updateStatus(Integer status, Long... ids) {
}
3、dao层
//批量启用或者是禁用数据
void updateStatus(@Param("status")Integer status,@Param("ids")Long[] ids);
sql语句
<update id="updateStatus">
update T_WEFINE_USER
set status=#{status}
where id in
<foreach item="WefineUserId" index="index" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
</update>
优化后的批量启用与禁用:只需要在controller中写
//多条记录的启用/禁用
@RequestMapping(value = "/updateSetables", method = RequestMethod.POST)
public @ResponseBody Message updateSetables(String ids,int status){
AppUser appUser=null;
String[] split=ids.split(",");
for(String id:split){
appUser = appUserService.find(Long.valueOf(id));
appUser.setStatus(status);
this.appUserService.update(appUser);
}
return SUCCESS_MESSAGE;
}