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