• 团队作业9——第二次项目冲刺1(Beta阶段)


    召开冲刺会议

    会议内容:商讨第二次冲刺计划,更多功能添加。

    分配任务:

        宋非:dao层设计

        罗建彪:接口设计以及实现

        罗远云:model设计及service接口及实现

    遇到的困难:

      评委评分集合获取总是失败,getScoreById方法总是出错。

    任务分解图

     

    燃尽图

     

    代码记录:

    https://git.coding.net/Ssl_dhlg18/SIMsystem.git

     部分代码:

     

    package com.ms.service.impl;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.log4j.Logger;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.stereotype.Service;
    
    import com.alibaba.fastjson.JSONObject;
    import com.ms.dao.ActivitylistInterface;
    import com.ms.dao.AudienceInterface;
    import com.ms.dao.ItemFormInterface;
    import com.ms.dao.JudgeScoreInterface;
    import com.ms.dao.RuleInterface;
    import com.ms.dao.ScoreInterface;
    import com.ms.dao.UserFormInterface;
    import com.ms.model.Activityform;
    import com.ms.model.Audiencescoring;
    import com.ms.model.GradingRule;
    import com.ms.model.Judgescoring;
    import com.ms.model.Userform;
    import com.ms.service.scoreServiceI;
    @Service("scoreService")
    public class ScoreServiceImpl implements scoreServiceI {
        @Autowired
        @Qualifier("activityDao")
        private ActivitylistInterface activityDao;
        @Autowired
        @Qualifier("ruleDao")
        private RuleInterface ruleDao;
        @Autowired
        @Qualifier("itemDao")
        private ItemFormInterface itemDao;
        @Autowired
        @Qualifier("userDao")
        private UserFormInterface userDao;
        @Autowired
        @Qualifier("audienceDao")
        private AudienceInterface audienceDao;
        @Autowired
        @Qualifier("judgeScoreDao")
        private JudgeScoreInterface judgeScoreDao;
        @Autowired
        @Qualifier("scoreDao")
        private ScoreInterface scoreDao;
        private Activityform activityForm = new Activityform();
        private Map<String, Object> map = new HashMap<String, Object>();
        private static final Logger logger = Logger.getLogger(ScoreServiceImpl.class);
        java.text.DecimalFormat   df   =new   java.text.DecimalFormat("#.00");  
        /**
         * @description 根据项目ID获取评委评分分数
         * @date 2016-11-09
         */
    @Override
        public Map<String, Object> getJudgeScoreById(int item_id) {
            //1.获得已启动活动的评分细则
            activityForm = activityDao.getStartActivity(true);// 查询已经启动的活动
            List<GradingRule> list_rule= ruleDao.selectRulesByActivId(activityForm.getActivityId());
            
            //2.获取已启动活动的评委
            List<Userform> judges = new ArrayList<Userform>();
            judges = userDao.getJudgeById(2, activityForm.getActivityId());
            
            int n = 0;
            int s = 0;
            int j = 0;
            int[] score = new int[judges.size()];
            List<Judgescoring> list2= new ArrayList<Judgescoring>();
            for(Userform c : judges){
                list2 = judgeScoreDao.getScores1(c.getUserId(), item_id);
                if(!list2.isEmpty() ){
                    for(Judgescoring s1 : list2){
                        score[n] += s1.getScore();
                        s++;
                    }
                    if(s == list_rule.size()){
                        j++;
                    }
                    s=0;            
                    n++;
                }                        
            }
            for(int i=0;i<n-1;i++){
                int t = 0;
                if(score[i]>score[i+1]){
                    t=score[i+1];
                    score[i+1]=score[i];
                    score[i]=t;
                    i=-1;
                }
            }
             
            JSONObject json = new JSONObject();
            Audiencescoring audienceScoring = new Audiencescoring();
            if(n == judges.size()){
            //获取观众评分
            audienceScoring = audienceDao.getAudScoring(item_id, activityForm.getActivityId());
            //评委平均分
            float judgeScore = 0;
            for(int t=1;t<score.length-1;t++){
                judgeScore += score[t];
            }
            judgeScore = (float)judgeScore/(float)(score.length-2);
            //观众平均分
            double audScore = 0.0;
            if(audienceScoring.getAllScoring() != 0 || audienceScoring.getAverage() == 0){
                if(audienceScoring.getNumber() != 0){
                    audScore = (float)audienceScoring.getAllScoring()/(float)audienceScoring.getNumber();
                    audienceDao.addAudAverage(audScore, item_id, activityForm.getActivityId());
                }
            }if(audienceScoring.getAverage() != 0){
                audScore = audienceScoring.getAverage();
            }
            //获取评分权重
            double weight = activityDao.getWeight(activityForm.getActivityId());
            //总平均分
            double average = judgeScore*(1-weight)+audScore*weight;
            //double average2 = average*10;        
            //int average3 = (int)average2;
            String average_format = df.format(average);
            String audScore_format = df.format(audScore);
            map.put("average", Double.parseDouble(average_format));//项目评委打分综合计算得分
            map.put("audScore", Double.parseDouble(audScore_format));//项目观众打分综合计算得分
            map.put("num", audienceScoring.getNumber());//观众评分人数
            //添加项目分数
            itemDao.addScoreByItemId(item_id,average);
            }
            map.put("n",j);//评委已评分个数
            map.put("i",judges.size());//总评委数
            map.put("score", Arrays.toString(score));//当前评委评分分数数组
            map.put("msg", true);//状态码
            return map;
        }
    
        /**
         * @description 根据项目ID获取评委评分分数
         * @date 2016-11-09
         */
        @Override
        public boolean addJudgeScore(Judgescoring judgeScore) {
            try {
                scoreDao.addJudgeScore(judgeScore);
                return true;
            } catch (Exception e) {
                logger.info("提交评委评分分数失败", e);
                return false;
            }
        }
        @Override
        public List<Judgescoring> getJudgeScore(int userId, int itemId) {
            try {
                return scoreDao.getScoreById(itemId, userId);
                
            } catch (Exception e) {
                logger.info("获取评委评分分数失败", e);
                return null;
            }
        }
    
    }

     

     

     

  • 相关阅读:
    记一次GreenPlum性能调优
    PostgreSQL时间格式及相关函数实践
    OGG到OGGAdapter配置详情-从Oracle直接抽取成csv文件
    使yum保留下载的rpm包
    源码编译tmux
    抠图
    ps磨皮的方法
    谷歌学术网站镜像
    element菜单默认展开和选中
    git仓库如果是私密的,每台电脑上导下来都需要进行ssh授权,所以一个项目不知一个ssh权限
  • 原文地址:https://www.cnblogs.com/gordonsong/p/10090885.html
Copyright © 2020-2023  润新知