列表编辑列下的“上移” “下移”操作

本文介绍了如何在列表编辑中实现元素的上移和下移功能,通过方法复用提供了一个具体的案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

if("moveUsers".equals(opration)){
		    	String userId       = UtilParam.isEmpty(request.getParameter("user_id"),"null");
		    	String orderId      = UtilParam.isEmpty(request.getParameter("order_id"),"null");
		    	String orderType    = UtilParam.isEmpty(request.getParameter("order_type"),"null");
		    	
		    	if(!"null".equals(userId)){		    	
			    	StringBuffer selSql = new StringBuffer();
			    	selSql.append(" SELECT (SELECT COUNT(*) FROM s_class_user WHERE TYPE = 'N' AND status = 'Y' AND class_info_id = ? ) all_num,                      ")
			    		  .append("        (SELECT COUNT(*) FROM s_class_user WHERE TYPE = 'N' AND status = 'Y' AND order_id = 0 AND class_info_id = ? ) default_num  ") 
			    		  .append(" FROM dual ");
			    	String[] userNumInfo = DaoHelper.getResultStrings(selSql.toString(),new String[]{classInfoId,classInfoId},2);
			    	
			    	//全部数量等于默认排序的数量时,说明尚未手动排序过
			    	if(userNumInfo[0].equals(userNumInfo[1])){
			    		//获取排序ID表
			    		StringBuffer defaultOrderSql = new StringBuffer();
			    		defaultOrderSql.append("   select zhiji.id,zhiji.username,zhiji.useroid,zhiji.order_id as zhijioid,gongsi.order_id as gsoid ")
				    	               .append("     from (select cu.id,cu.order_id as useroid,cu.username,so.name,so.order_id ")
				    	               .append("     from s_class_user cu, s_class_other so where cu.type = 'N' and cu.status = 'Y' and cu.class_info_id = ?")
				    	               .append("   and so.id = cu.zhiji_id) zhiji,(select cu.id,cu.order_id as useroid,cu.username,so.order_id from s_class_user cu, s_class_other so ")
				    	               .append("   where cu.type = 'N' and cu.status = 'Y' and cu.class_info_id = ? and so.id = cu.company_id) gongsi where gongsi.id = zhiji.id  order by zhiji.useroid, gsoid, zhijioid, zhiji.username ");				    	   
 	               
			    		List defaultOrderList = DaoHelper.getResultSet(defaultOrderSql.toString(),new String[]{classInfoId},3);
			    		int orderSize = defaultOrderList.size();
			    		String[] idArr = new String[orderSize];
			    		for(int i=0;i<orderSize;i++){     //按照排序重构ID数组
			    			String[] tmpArr = (String[])defaultOrderList.get(i);
			    			idArr[i] = tmpArr[0];
			    		}
			    		StringBuffer updOrderSql = new StringBuffer();
			    		updOrderSql.append(" UPDATE s_class_user SET order_id = s_class_order_seq.nextval WHERE ID = ? ");
			    		if(!DaoHelper.excuteBatch(updOrderSql.toString(),idArr)){
			    			out.print("{\"isSuccess\":\"N\",\"msg\":\"初始化排序异常\"}");
			    		}else{
			    			StringBuffer orderSql = new StringBuffer();
			    			orderSql.append(" SELECT order_id FROM s_class_user WHERE id = ? ");
			    			orderId = DaoHelper.getResultStrings(orderSql.toString(),new String[]{userId},1)[0];
			    		}
			    	}
		    	
			    	if(orderType.equals("up")){    //上移学员排序
			    		StringBuffer selUpSql = new StringBuffer();
			    		selUpSql.append("   SELECT scu.id,scu.order_id FROM s_class_user scu WHERE scu.type = 'N'              ")
			    			    .append("      AND scu.status = 'Y' AND scu.class_info_id = ? AND scu.order_id < ?             ")
			    				.append("    ORDER BY scu.order_id DESC                                                        ");
			    		String[] nextUser = DaoHelper.getResultStrings(selUpSql.toString(),new String[]{classInfoId,orderId},2);
			    		if(null != nextUser){
				    		String[] upUserArr = new String[4];   //待培训信息串  排序编号2,记录ID1,排序编号1,记录ID2,交换排序
				    		upUserArr[0] = nextUser[1];
				    		upUserArr[1] = userId;
				    		upUserArr[2] = orderId;
				    		upUserArr[3] = nextUser[0];
				    		if(updateUsersOrder(upUserArr)){
				    			out.print("{\"isSuccess\":\"Y\",\"msg\":\"\"}");
				    		}else{
				    			out.print("{\"isSuccess\":\"N\",\"msg\":\"学员上移失败\"}");
				    		}
			    		}else{
			    			out.print("{\"isSuccess\":\"N\",\"msg\":\"该学员已经排在首位,无法上移\"}");
			    		}
			    	}else if(orderType.equals("down")){  //下移学员排序
			    		StringBuffer selUpSql = new StringBuffer();
			    		selUpSql.append("   SELECT scu.id,scu.order_id FROM s_class_user scu WHERE scu.type = 'N'              ")
			    			    .append("      AND scu.status = 'Y' AND scu.class_info_id = ? AND scu.order_id > ?             ")
			    				.append("    ORDER BY scu.order_id                                                             ");
			    		String[] nextUser = DaoHelper.getResultStrings(selUpSql.toString(),new String[]{classInfoId,orderId},2);
			    		if(null != nextUser){
				    		String[] upUserArr = new String[4];   //待培训信息串  排序编号2,记录ID1,排序编号1,记录ID2,交换排序
				    		upUserArr[0] = nextUser[1];
				    		upUserArr[1] = userId;
				    		upUserArr[2] = orderId;
				    		upUserArr[3] = nextUser[0];
				    		if(updateUsersOrder(upUserArr)){
				    			out.print("{\"isSuccess\":\"Y\",\"msg\":\"\"}");
				    		}else{
				    			out.print("{\"isSuccess\":\"N\",\"msg\":\"学员下移失败\"}");
				    		}
			    		}else{
			    			out.print("{\"isSuccess\":\"N\",\"msg\":\"该学员已经排在末位,无法下移\"}");
			    		}
			    	}else{
			    		out.print("{\"isSuccess\":\"N\",\"msg\":\"排序参数异常\"}");	
			    	}
		    	
		    	}else{
		        	out.print("{\"isSuccess\":\"N\",\"msg\":\"学员ID不存在\"}");
		        }
		    }



方法复用 案例

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.File"%>
<%@ page import="java.text.DecimalFormat"%>
<%@ page import="java.util.regex.Matcher" %>
<%@ page import="java.util.regex.Pattern" %>
<%@ page import="parim.net.flib.util.*"%>
<% request.setCharacterEncoding("UTF-8");  %>
<%@ include file="../../pub/s_token_csp.jsp"%>
<%

		String opration = request.getParameter("opration");
		String id = request.getParameter("photoId");
		String orderId = request.getParameter("order_id");
		String orderType =request.getParameter("order_type");
		String classInfoId = request.getParameter("class_info_id");
	//照片排序
	if ("movePhotos".equals(opration)) {
		if (!"null".equals(id)) {
			StringBuffer selSql = new StringBuffer();
			selSql.append(" SELECT (SELECT COUNT(*) FROM s_class_album_homework sk,ila_user iu WHERE sk.create_by = iu.id AND sk.type = 'P' AND sk.class_info_id = ?) all_num, ")
					.append("        (SELECT COUNT(*) FROM s_class_album_homework sk,ila_user iu WHERE sk.create_by = iu.id AND sk.type = 'P' AND sk.class_info_id = ?AND order_id = '0' ) default_num  ")
					.append(" FROM dual ");
			String[] userNumInfo = DaoHelper.getResultStrings(selSql.toString(), new String[] { classInfoId,classInfoId }, 2);
			//全部数量等于默认排序的数量时,说明尚未手动排序过
			if (userNumInfo[0].equals(userNumInfo[1])) {
				//获取排序ID表
				StringBuffer defaultOrderSql = new StringBuffer();
				defaultOrderSql
						.append("  SELECT sk.id,sk.create_date ")
						.append("    FROM s_class_album_homework sk where")
						.append("    sk.type = 'P' AND sk.class_info_id = ? ")
						.append("   ORDER BY sk.order_id,sk.last_update_date DESC ");
				List defaultOrderList = DaoHelper.getResultSet(defaultOrderSql.toString(),new String[] { classInfoId }, 2);
				int orderSize = defaultOrderList.size();
				String[] idArr = new String[orderSize];
				for (int i = 0; i < orderSize; i++) { //按照排序重构ID数组
					String[] tmpArr = (String[]) defaultOrderList.get(i);
					idArr[i] = tmpArr[0];
				}
				StringBuffer updOrderSql = new StringBuffer();
				updOrderSql.append(" UPDATE s_class_album_homework SET order_id =  s_class_album_order_seq.nextval WHERE ID = ? ");
				if (!DaoHelper.excuteBatch(updOrderSql.toString(),idArr)) {
					out.print("{\"isSuccess\":\"N\",\"msg\":\"初始化排序异常\"}");
				} else {
					StringBuffer orderSql = new StringBuffer();
					orderSql.append(" SELECT order_id FROM s_class_album_homework WHERE id = ? ");
					orderId = DaoHelper.getResultStrings(orderSql.toString(),new String[] { id }, 1)[0];
				}
			}
			
			 //上移图片
			if(orderType.equals("up")){   
	    		StringBuffer selUpSql = new StringBuffer();
	    		selUpSql.append("   SELECT sk.id,sk.order_id FROM s_class_album_homework sk where")
	    			    .append("   sk.type = 'P' AND sk.class_info_id = ? AND sk.order_id > ?  ")
	    				.append("   ORDER BY sk.order_id    ");
	    		String[] nextPhoto = DaoHelper.getResultStrings(selUpSql.toString(),new String[]{classInfoId,orderId},2);
	    		if(null != nextPhoto){
		       String[] upPhotoArr = new String[4];   
		    		upPhotoArr[0] = nextPhoto[1];
		    		upPhotoArr[1] = id;
		    		upPhotoArr[2] = orderId;
		    		upPhotoArr[3] = nextPhoto[0];
		    		if(updatePhotoOrder(upPhotoArr)){
		    			out.print("{\"isSuccess\":\"Y\"}");
		    		}else{
		    			out.print("{\"isSuccess\":\"N\",\"msg\":\"学员上移失败\"}");
		    		}
	    		 }else{
	    			out.print("{\"isSuccess\":\"N\",\"msg\":\"该学员已经排在首位,无法上移\"}");
	    		 }

	    	}
	    	//下移图片
			if(orderType.equals("down")){   
	    		StringBuffer selUpSql = new StringBuffer();
	    		selUpSql.append("   SELECT sk.id,sk.order_id FROM s_class_album_homework sk where")
	    			    .append("   sk.type = 'P' AND sk.class_info_id = ? AND sk.order_id < ?  ")
	    				.append("   ORDER BY sk.order_id desc   ");
	    		String[] nextPhoto = DaoHelper.getResultStrings(selUpSql.toString(),new String[]{classInfoId,orderId},2);
	    		if(null != nextPhoto){
		       String[] upPhotoArr = new String[4];   
		    		upPhotoArr[0] = nextPhoto[1];
		    		upPhotoArr[1] = id;
		    		upPhotoArr[2] = orderId;
		    		upPhotoArr[3] = nextPhoto[0];
		    		if(updatePhotoOrder(upPhotoArr)){
		    			out.print("{\"isSuccess\":\"Y\"}");
		    		}else{
		    			out.print("{\"isSuccess\":\"N\",\"msg\":\"学员下移失败\"}");
		    		}
	    		 }else{
	    			out.print("{\"isSuccess\":\"N\",\"msg\":\"该学员已经排在末位,无法下移\"}");
	    		 }

	    	}

		} else {
			out.print("{\"isSuccess\":\"N\",\"msg\":\"图片ID不存在\"}");
		}

	}
%>
<%!
	//修改图片排序顺序
	private boolean updatePhotoOrder(String[] photoArr){
		boolean ret = false;
		PreparedStatement pst = null;
		DBConnect dbconn = new DBConnect();
		Connection con  = dbconn.getConnection();
		try{
			StringBuffer updSql = new StringBuffer();
			updSql.append("UPDATE s_class_album_homework SET order_id = ? WHERE ID = ? ");
			pst = con.prepareStatement(updSql.toString());
        	pst.setObject(1,photoArr[0]);
        	pst.setObject(2,photoArr[1]);
        	pst.addBatch();
        	pst.setObject(1,photoArr[2]);
        	pst.setObject(2,photoArr[3]);
        	pst.addBatch();
        	pst.executeBatch();
        	con.commit();
		    ret = true;
		}catch(Exception e){
    		e.printStackTrace();
    		try{
        		con.rollback();
        	}catch(Exception er){er.printStackTrace();}
        	ret = false;
    	}finally{
    		dbconn.close(pst,con);
    	}
		return ret;
	}
%>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值