考试试题结果得分

这篇博客没有用到什么技术,只是一些小代码的逻辑,这是十道题的判断,如不满足需求,请自行修改,

Constants(工具类).score(方法).zero(值0),其它参数一样
//判断试题得分
    @Override
    public QuestionScoreResponse questionScore(QuestionScoreRequest request) {
        logger.info("————————————————判断试题得分");
        QuestionScoreResponse response= new QuestionScoreResponse();
        String s="";
        // String cusStr="1A2B3C4G5G6G6S";
        List<String> ls=new ArrayList<String>();
        for (int i=Constants.score.one;i<request.getCusStr().length();i++){
            for (int j=Constants.score.two;j<=request.getCusStr().length();j+=Constants.score.two) {
                if (j<request.getCusStr().length()-Constants.score.two){
                    s = request.getCusStr().substring(i, j);
                    System.out.print(s);
                    ls.add(s);
                    i+=Constants.score.two;
                }else {
                    s = request.getCusStr().substring(Constants.score.Twenty, Constants.score.twentyOne);
                    System.out.print(s);
                    ls.add(s);
                    break;
                }
            }
            break;
        }
        int score = Constants.score.zero;
        if (null!=ls&&ls.size()<Constants.score.Fifty) {//list不为空并且是50条数据
            Questions questions = new Questions();
            List<Questions> questionsList = questionsDao.queryAllQuestion();//获取数据库所有试题
            int j = Constants.score.zero;
            if (ls.size() < questionsList.size()) {
                response.setCode("2222");
                response.setMessage("试题未答完");
                return response;
            }
            if (ls.size() > questionsList.size()) {
                response.setCode("3333");
                response.setMessage("回答试题过多");
                return response;
            }
            for (int n = Constants.score.zero; n < ls.size(); n++) {//循环所有题目数量
                for (Questions q : questionsList) {//遍历数据库中所有试题
                    if (j == n) {
                        q = questionsList.get(j);
                        if (ls.get(n).equals(q.getSure())) {
                            score += Constants.score.hundred / ls.size();
                            j++;
                            break;
                        }
                    } else {
                        response.setCode("1111");
                        response.setMessage("未知错误,请联系后台调试");
                        return response;
                    }
                    j++;
                    break;
                }
            }
            response.setScore(String.valueOf(score));
        }
        //判断工人是否有完成的订单,如果没有则是新手,如果有,则是老手
        OrderInfo orderinfo = new OrderInfo();
        orderinfo.setUserId(request.getCustomerId());//工人ID
        orderinfo.setOrderFinishStat(Constants.compStatus.compStatusOk);//1 订单已完成的状态,
        List<OrderInfo> orderinfoList = orderInfoDao.selectYiWanChengOrder(orderinfo);

        OrderInfo orderinfoEntity = new OrderInfo();
        orderinfoEntity.setUserId(request.getCustomerId());//工人ID
        orderinfoEntity.setOrderFinishStat(Constants.compStatus.priceYes);//1 订单已到账的状态
        List<OrderInfo> orderPayYesList = orderInfoDao.selectYiWanChengOrder(orderinfoEntity);

        UserInfo u = new UserInfo();
        u.setUserId(request.getCustomerId());
        u.setCrtUpdTime(QMDateUtil.getYYYYMMDDHHMMSS());
        u.setAvgStart(String.valueOf(Constants.score.three * (orderinfoList.size()+orderPayYesList.size()+Constants.evaluation.sumtype)));
        u.setAllStar(String.valueOf(Constants.score.three));
        u.setSocre(String.valueOf(score));
        int sum = userInfoDao.updateCustomerInfo(u);
        if (DataVerifyUtil.isEmptySize(sum)){
            response.setCode("1111");
            response.setMessage("未知错误,请联系后台调试");
            return response;
        }
        logger.info("————————————————判断试题得分成功,分数:"+score);
        return response;
    }

 

posted @ 2017-05-19 19:21  根目录97  阅读(166)  评论(0编辑  收藏  举报