package cn.th.work.action;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import cn.th.work.entity.Question;
import cn.th.work.entity.Sub;
import cn.th.work.entity.Total;
import cn.th.work.service.QuestionService;
import cn.th.work.service.SubService;
import cn.th.work.service.TotalService;
import cn.th.work.utils.PageBean;
import cn.th.work.utils.WebUtils;

@Controller
public class QuestionController {
	
    @Resource
	private QuestionService queService;
    
    @Resource
	private SubService subService;
    
    @Resource
    private TotalService totService;
	
	
	    //添加题库
		@RequestMapping("/saveQuestion.action")
		public String saveQuestion(Question que,Model md){
			//添加
			queService.save(que);
			//返回跳转的页面
			md.addAttribute("hre", "getAllQuestion.action");
			return "/web/tips.jsp";
		}
		
		//根据ID删除用户
		@RequestMapping("/deleteQuestion.action")
		public String deleteQuestion(HttpServletRequest request,Model md){
			// 获取删除对象的ID
			Integer t_id=Integer.parseInt(request.getParameter("id"));
			//删
			queService.deleteById(t_id);
			//返回跳转的页面
			md.addAttribute("hre", "getAllQuestion.action");
			return "/getAllQuestion.action";
		}
		
		//查询一个: 用于修改
		@RequestMapping("/questionById.action")
		public String questionById(HttpServletRequest request){
		  //获得题库id
		  Integer t_id=Integer.parseInt(request.getParameter("id"));
		  String query=request.getParameter("query");
		  //查   
		  Question que=queService.get(t_id);
		  
		  request.getSession().setAttribute("que",que);
		  
		  //查询所有科目名称
		  List<Sub> sn=subService.getSubName();
		  request.setAttribute("sn",sn);
		  
		  if(!WebUtils.isNotNull(query)){
		  //转发到修改页面
		  return "/web/updateTit.jsp";
		  }else{
			 //转发到详情页面
			  return "/web/detail.jsp"; 
		  }
		}
		
		//修改
		@RequestMapping("/updateQuestion.action")
		public String updateQuestion(Question que,Model md){
			//执行修改操作
			queService.update(que);
			//返回跳转的页面
			md.addAttribute("hre", "getAllQuestion.action");
			return "/web/tips.jsp";
		}
		
		//批量删
		@RequestMapping("/deletePartQue.action")
		public String deletePartQue(HttpServletRequest request,Model md){
			
            String[] strs = request.getParameterValues("wId");
			
			Serializable[] ids = new Serializable[strs.length];
			
			for (int i = 0; i < strs.length; i++) {
				ids[i] = Integer.parseInt(strs[i]);

			}
			//批量删
			queService.deletePart(ids);
			//返回跳转的页面
			md.addAttribute("hre", "getAllQuestion.action");
			return "/web/tips.jsp";
		}
		
		//显示大致分类
		@RequestMapping("/queClass.action")
		public String queClass(HttpServletRequest request){
			
			String deep=request.getParameter("deep");
			
	        if(WebUtils.isNotNull(deep)){
	           request.setAttribute("deep",deep);
	        }
			
			int num1=queService.getNum("Java");
			request.setAttribute("java",num1);
			
			int num2=queService.getNum("Mybatis");
			request.setAttribute("mybatis",num2);
			
			int num3=queService.getNum("Oracle");
			request.setAttribute("oracle",num3);
			
			int num4=queService.getNum("Spring");
			request.setAttribute("spring",num4);
			
			int num5=queService.getNum("Ajax");
			request.setAttribute("ajax",num5);
			
			int num6=queService.getNum("Html5");
			request.setAttribute("html5",num6);
			
			int num7=queService.getNum("Css3");
			request.setAttribute("css3",num7);
			
			int num8=queService.getNum("MySql");
			request.setAttribute("mysql",num8);
			
			int num9=queService.getNum("JavaScript");
			request.setAttribute("javascript",num9);
			
			int num10=queService.getNum("Jquery");
			request.setAttribute("jquery",num10);
			
			//统计
			List<Total> list=totService.getTotal(deep);
			request.setAttribute("tot",list);
			
			return "/web/total.jsp";
		}
		
		
		
		
		
		//查询所有
		@RequestMapping("/getAllQuestion.action")
		public String getAllQuestion(Model md,HttpServletRequest request,String pageCurrent){
			
			//大致分类传过来的参数
			String query=request.getParameter("query");

			//分页的参数
			String title=request.getParameter("title");
			String s_id=request.getParameter("s_id");
			String root=request.getParameter("root");
			String t_class=request.getParameter("t_class");
			
			
		   //创建map对象
           Map<String,Object> map=new HashMap<String,Object>();
           
           if(WebUtils.isNotNull(title)){
			 map.put("title","%"+title+"%");
			 md.addAttribute("title",title);
			}
           if(WebUtils.isNotNull(s_id)){
        	 map.put("s_id",Integer.parseInt(s_id));
        	 md.addAttribute("s_id",s_id);
           }
           if(WebUtils.isNotNull(root)){
        	 map.put("root",root); 
        	 md.addAttribute("root",root);
           }
           if(WebUtils.isNotNull(t_class)){
        	 map.put("t_class",t_class);  
        	 md.addAttribute("t_class",t_class);
           }
           
           if(WebUtils.isNotNull(query)){
        	 Integer id=subService.getSid(query);
        	 
        	 if(id==null){
        		return "/web/error.jsp"; 
        	 }
        	 map.put("s_id",id);  
        	 md.addAttribute("s_id",id);
           }
           
           //创建pageBean对象
           PageBean<Question> bean=new PageBean<Question>();
           
           bean.setTotalCount(queService.getCount(map));//设置总记录数
           
			if(WebUtils.isNotNull(pageCurrent)){
				if(Integer.parseInt(pageCurrent)<1){
					bean.setCurrentPage(1);//设置当前页
				}else if(Integer.parseInt(pageCurrent)>bean.getTotalPage()){
					bean.setCurrentPage(bean.getTotalPage());//设置当前页
				}else{
					bean.setCurrentPage(Integer.parseInt(pageCurrent));//设置当前页
				}
			}else{
				pageCurrent=""+1;
			}
			
			Integer firtPage=(bean.getCurrentPage()-1)*bean.getMaxNum();//起始条数
			Integer countPage=bean.getCurrentPage()*bean.getMaxNum()+1;//尾条数
			
			//给map添加值
			map.put("firtPage", firtPage);
			map.put("countPage", countPage);
			map.put("bean", bean);
			
			//执行查询所有题目
			List<Question> list=queService.getAll(map);
			md.addAttribute("list",list);
			
			/*if(list.size()==0){
			return "/web/error.jsp"; 
			}*/
			
			//获得题目来源
			List<Question> list1=queService.getRoot();
			md.addAttribute("list1",list1);
			
			 //查询所有科目名称
			 List<Sub> sn=subService.getSubName();
			 md.addAttribute("sn",sn);
			 
			 bean.setDatas(list);
			 md.addAttribute("bean",bean);
			
			//跳转到用户管理界面
			return "/web/advTit.jsp";
		}
		
		
		//试卷生成
		@RequestMapping("/showExam.action")
		public String showExam(HttpServletRequest request,Model md){
			//分类参数
			String title=request.getParameter("title");
			String s_id=request.getParameter("s_id");
			String root=request.getParameter("root");
			String t_class=request.getParameter("t_class");
			
			//创建map对象
	        Map<String,Object> map=new HashMap<String,Object>();
	        
	        if(WebUtils.isNotNull(title)){
				 map.put("title","%"+title+"%");
				 md.addAttribute("title",title);
			}
	        if(WebUtils.isNotNull(s_id)){
	        	 map.put("s_id",Integer.parseInt(s_id));
	        	 md.addAttribute("s_id",s_id);
	          }
	        if(WebUtils.isNotNull(root)){
	        	 map.put("root",root); 
	        	 md.addAttribute("root",root);
	          }
	        if(WebUtils.isNotNull(t_class)){
	            map.put("t_class",t_class);
	            md.addAttribute("t_class",t_class);
	        }
	        
			//查询所有科目名称
			 List<Sub> sn=subService.getSubName();
			 request.setAttribute("sn",sn);
			//查找题目来源
			List<Question> list1=queService.getRoot();
			request.setAttribute("list1",list1);
			
			//随机试卷
			List<Question> list=queService.queryQues(map);
			if(list.size()==0){
			 return "/web/error.jsp";	
			}
			
			if(list.size()<3){
			 md.addAttribute("msg","数据不够,无法生成随机试题!");
			 return "/web/book.jsp";
			}
			
			//存放id的集合
			List<Integer> ids=new ArrayList<Integer>();
			
			//随机
			for(int i=0;i<list.size();i++){	
			  ids.add(list.get(i).getT_id());
			}
			
			//最大值
			 int max=0;
			 int min = 0;
			for(int i=0;i<list.size();i++){
			 if(i==0){
				 min = list.get(i).getT_id();
			 }
			 if(max<list.get(i).getT_id()){
				max=list.get(i).getT_id(); 
			 }
			
			 if(min>list.get(i).getT_id()){
				min=list.get(i).getT_id(); 
			 }
			
			}
			
			List<Integer> ints = new ArrayList<Integer>();
			Random ran=new Random();
			//随机截取3个字符生成试卷
			for(int j=1;j<4;j++){
			int sum = 0;
			 int index=ran.nextInt(max-min)+min;
			 
			 int ss = 0;
			 for(Question q: list){
				 if(index==q.getT_id()){
					 ss++;
					 break;
				 }
				
			 }
			 
			 if(ss!=1){
				 
				 j--;
				 continue;
			 }
			 
			 if(ints.size()==0){
				 ints.add(index);
			 }else{
				 
				 for(Integer s: ints){
					 if(s==index){
						 j --;
						 break;
					 }
						 sum ++;
				 }
				 
			 }
			 if(sum==ints.size()){
				 ints.add(index);
			 }
			 
			 
			}
			int j = 1;
			for(int i =0 ;i<ints.size();i++){
				
				for(Question q : list){
					 if(q.getT_id()==ints.get(i)){
						 md.addAttribute("que"+j, q);
						 j++;
					 }
				 }
				
			 }
			
			return "/web/book.jsp";
		}				
}
最近下载更多
zk1259  LV6 2024年8月22日
3334004690  LV10 2024年6月22日
zj20020510  LV5 2023年9月18日
renyuan  LV9 2022年12月7日
cx0127  LV13 2022年10月30日
testuser1234567  LV24 2022年6月30日
Zjy-0913  LV1 2022年6月11日
chasiubao  LV2 2022年6月9日
我是helloworld  LV23 2022年5月12日
lls0832  LV3 2022年5月3日
最近浏览更多
2022102154  LV1 3月27日
每天都要有长进 2024年10月25日
暂无贡献等级
zk1259  LV6 2024年8月22日
樱花味小然子  LV5 2024年7月2日
lun123456 2024年6月23日
暂无贡献等级
3334004690  LV10 2024年6月22日
lxzlxzl  LV1 2024年6月21日
李落辰 2024年6月17日
暂无贡献等级
李俊雄  LV3 2024年5月8日
2131234536546  LV7 2024年3月31日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友