批量启用跟禁用

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;
			
		}

猜你喜欢

转载自blog.csdn.net/weixin_40214184/article/details/86077380