Kaynağa Gözat

增加悦姐elearning 接口

huan.wang@yueguanjia.com 5 yıl önce
ebeveyn
işleme
9d7fb666e8

+ 67 - 0
src/main/java/com/ygj/yuemum/controller/elearning/ELearningController.java

@@ -0,0 +1,67 @@
+package com.ygj.yuemum.controller.elearning;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.ygj.yuemum.domain.college.CollegeTest;
+import com.ygj.yuemum.service.eLearning.ELearningService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+
+@RestController
+public class ELearningController {
+
+    @Autowired
+    private ELearningService eLearningService;
+
+    @PostMapping("/eLearning/index")
+    public String index(@RequestParam("attendant_id") String attendant_id) {
+        LinkedHashMap<String, Object> orderTemps = eLearningService.index(attendant_id);
+        String jso = JSONObject.toJSONString(orderTemps, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
+        return jso;
+    }
+
+    @PostMapping("/eLearning/courseworkList")
+    public String courseworkList(@RequestParam("attendant_id") String attendant_id,@RequestParam("coursework_id") Integer coursework_id) {
+        LinkedHashMap<String, Object> orderTemps = eLearningService.courseworkList(attendant_id,coursework_id);
+        String jso = JSONObject.toJSONString(orderTemps, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
+        return jso;
+    }
+
+    @PostMapping("/eLearning/courseworkDetail")
+    public String courseworkDetail(@RequestParam("attendant_id") String attendant_id,@RequestParam("coursework_id") Integer coursework_id) {
+        LinkedHashMap<String, Object> orderTemps = eLearningService.courseworkDetail(attendant_id,coursework_id);
+        String jso = JSONObject.toJSONString(orderTemps, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
+        return jso;
+    }
+
+    @PostMapping("/eLearning/testList")
+    public String testList(@RequestParam("attendant_id") String attendant_id,@RequestParam("coursework_id") Integer coursework_id) {
+        List<CollegeTest> orderTemps = eLearningService.testList(attendant_id,coursework_id);
+        String jso = JSONObject.toJSONString(orderTemps, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
+        return jso;
+    }
+
+    @PostMapping("/eLearning/testComplete")
+    public String testComplete(@RequestParam("attendant_id") String attendant_id,@RequestParam("coursework_id") Integer coursework_id,@RequestParam("answers") String answers) {
+        LinkedHashMap<String, Object> orderTemps = eLearningService.testComplete(attendant_id,coursework_id,answers);
+        String jso = JSONObject.toJSONString(orderTemps, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
+        return jso;
+    }
+
+    @PostMapping("/eLearning/courseworkComplete")
+    public int courseworkComplete(@RequestParam("attendant_id") String attendant_id,@RequestParam("coursework_id") String coursework_id) {
+        return  eLearningService.courseworkComplete(attendant_id,coursework_id);
+    }
+
+    @PostMapping("/eLearning/courseworkUpdate")
+    public int coreLearningUpdate(@RequestParam("attendant_id") String attendant_id,@RequestParam("coursework_id") String coursework_id,@RequestParam("rate") String rate) {
+        return eLearningService.courseworkUpdate(attendant_id,coursework_id,rate);
+    }
+
+}

+ 6 - 0
src/main/java/com/ygj/yuemum/dao/college/CollegeCurriculumCoreDao.java

@@ -2,6 +2,7 @@ package com.ygj.yuemum.dao.college;
 
 import com.ygj.yuemum.domain.college.CollegeCurriculumCore;
 import com.ygj.yuemum.domain.college.CollegeCurriculumQuery;
+import com.ygj.yuemum.domain.college.CollegeLearningDetail;
 import com.ygj.yuemum.domain.college.ReturnUserLearningCoreDetail;
 import com.ygj.yuemum.domain.wxmini.WXUser;
 import org.springframework.stereotype.Repository;
@@ -17,11 +18,16 @@ public interface CollegeCurriculumCoreDao {
     int insertSelective(CollegeCurriculumCore record);
     int updateByPrimaryKeySelective(CollegeCurriculumCore record);
     List<CollegeCurriculumCore> queryCoreByStep(CollegeCurriculumCore record);
+    List<CollegeCurriculumCore> queryELearning_Index(CollegeCurriculumCore collegeCurriculumCore);
 
     List<CollegeCurriculumCore> queryUserLearningCore(CollegeCurriculumQuery collegeCurriculumQuery);
 
     ReturnUserLearningCoreDetail queryUserLearningCoreDetail (CollegeCurriculumQuery collegeCurriculumQuery);
+    ReturnUserLearningCoreDetail queryCourseworkList(CollegeCurriculumQuery collegeCurriculumQuery);
+
+
     ReturnUserLearningCoreDetail queryCoreDetail (CollegeCurriculumQuery collegeCurriculumQuery);
+    ReturnUserLearningCoreDetail queryCourseworkDetail(CollegeCurriculumQuery collegeCurriculumQuery);
 
     int updatePositive(String c_code);
     int updateCoreCount(String c_code);

+ 2 - 1
src/main/java/com/ygj/yuemum/dao/college/CollegeTestDetailDao.java

@@ -1,7 +1,6 @@
 package com.ygj.yuemum.dao.college;
 
 import com.ygj.yuemum.domain.college.CollegeTestDetail;
-import com.ygj.yuemum.domain.college.CollegeTestResult;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -21,6 +20,8 @@ public interface CollegeTestDetailDao {
 
     CollegeTestDetail queryUserAnswers(CollegeTestDetail collegeTestDetail);
 
+    CollegeTestDetail queryTestComplete(CollegeTestDetail collegeTestDetail);
+
     CollegeTestDetail selectByOpenId(CollegeTestDetail collegeTestDetail);
 
 

+ 9 - 0
src/main/java/com/ygj/yuemum/domain/college/CollegeCurriculumCore.java

@@ -3,6 +3,7 @@ package com.ygj.yuemum.domain.college;
 public class CollegeCurriculumCore {
 
     private Integer id;
+    private String sys_type;
     private String c_code;
     private Integer c_seq;
     private String c_name;
@@ -29,6 +30,14 @@ public class CollegeCurriculumCore {
     private Integer page;
     private Integer limit;
 
+    public String getSys_type() {
+        return sys_type;
+    }
+
+    public void setSys_type(String sys_type) {
+        this.sys_type = sys_type;
+    }
+
     public String getOpenid() {
         return openid;
     }

+ 9 - 0
src/main/java/com/ygj/yuemum/domain/college/CollegeLearningDetail.java

@@ -10,9 +10,18 @@ public class CollegeLearningDetail {
     private Integer credit;
     private String rate;
     private String rate_time;
+    private String sys_type;
     private Integer page;
     private Integer limit;
 
+    public String getSys_type() {
+        return sys_type;
+    }
+
+    public void setSys_type(String sys_type) {
+        this.sys_type = sys_type;
+    }
+
     public String getRate_time() {
         return rate_time;
     }

+ 9 - 0
src/main/java/com/ygj/yuemum/domain/college/CollegeTestDetail.java

@@ -7,6 +7,15 @@ public class CollegeTestDetail {
     private Integer status;
     private Integer result;
     private String answers;
+    private String sys_type;
+
+    public String getSys_type() {
+        return sys_type;
+    }
+
+    public void setSys_type(String sys_type) {
+        this.sys_type = sys_type;
+    }
 
     public String getAnswers() {
         return answers;

+ 1 - 0
src/main/java/com/ygj/yuemum/service/college/CollegeCurriculumCoreService.java

@@ -328,6 +328,7 @@ public class CollegeCurriculumCoreService {
                 collegeLearningDetail.setDate(sdf.format(new Date()));
                 collegeLearningDetail.setStatus(2);
                 collegeLearningDetail.setRate_time(rate);
+                collegeLearningDetail.setSys_type("YueSuo");
                 collegeLearningDetailService.addCollegeLearningDetail(collegeLearningDetail);
                 collegeCurriculumCoreDao.updateCoreCount(c_code);
                 return 1;

+ 12 - 0
src/main/java/com/ygj/yuemum/service/college/CollegeTestDetailService.java

@@ -41,6 +41,10 @@ public class CollegeTestDetailService {
         return collegeTestDetailDao.insertSelective(collegeTestDetail);
     }
 
+    public int insertSelective(CollegeTestDetail record) {
+        return collegeTestDetailDao.insertSelective(record);
+    }
+
     public int deleteCollegeTestDetail(Integer id) {
         return collegeTestDetailDao.deleteByPrimaryKey(id);
     }
@@ -49,10 +53,16 @@ public class CollegeTestDetailService {
         return collegeTestDetailDao.updateByPrimaryKeySelective(collegeTestDetail);
     }
 
+    public CollegeTestDetail selectByOpenId(CollegeTestDetail collegeTestDetail){
+        return collegeTestDetailDao.selectByOpenId(collegeTestDetail);
+    }
 
     public CollegeTestDetail queryUserAnswers (CollegeTestDetail collegeTestDetail) {
         return collegeTestDetailDao.queryUserAnswers(collegeTestDetail);
     }
+    public CollegeTestDetail queryTestComplete (CollegeTestDetail collegeTestDetail) {
+        return collegeTestDetailDao.queryUserAnswers(collegeTestDetail);
+    }
     public LinkedHashMap<String, Object> addTestDetail(String openid, Integer core_id, String answers) {
         LinkedHashMap<String, Object> tableData = new LinkedHashMap<>();
         CollegeTestDetail collegeTestDetailQuery = new CollegeTestDetail();
@@ -85,6 +95,7 @@ public class CollegeTestDetailService {
             //insert into Detail
             collegeTestDetail.setResult(score);
             collegeTestDetail.setAnswers(answers);
+            collegeTestDetail.setSys_type("YueSuo");
             collegeTestDetailDao.insertSelective(collegeTestDetail);
 
             // 常规课完成
@@ -96,6 +107,7 @@ public class CollegeTestDetailService {
             collegeLearningDetail1.setCredit(collegeCurriculumCore.getCredit());
             collegeLearningDetail1.setStatus(9);
             collegeLearningDetail1.setRate("100%");
+            collegeLearningDetail1.setSys_type("YueSuo");
             collegeLearningDetailService.addCollegeLearningDetail(collegeLearningDetail1);
             //增加学分
             CollegePointsDetail collegePointsDetail = new CollegePointsDetail();

+ 320 - 0
src/main/java/com/ygj/yuemum/service/eLearning/ELearningService.java

@@ -0,0 +1,320 @@
+package com.ygj.yuemum.service.eLearning;
+
+import com.ygj.yuemum.dao.college.CollegeCurriculumCoreDao;
+import com.ygj.yuemum.domain.college.*;
+import com.ygj.yuemum.service.college.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+
+@Service
+
+public class ELearningService {
+    @Autowired
+    private CollegeCurriculumCoreDao collegeCurriculumCoreDao;
+    @Autowired
+    private CollegeTestDetailService collegeTestDetailService;
+    @Autowired
+    private CollegeTestService collegeTestService;
+    @Autowired
+    private CollegeTestResultService collegeTestResultService;
+    @Autowired
+    private CollegeCurriculumCoreService collegeCurriculumCoreService;
+    @Autowired
+    private CollegeLearningDetailService collegeLearningDetailService;
+
+    public LinkedHashMap<String, Object> index(String attendant_id) {
+        LinkedHashMap<String, Object> tableData = new LinkedHashMap<>();
+        CollegeCurriculumCore collegeCurriculumCoreQuery = new CollegeCurriculumCore();
+        collegeCurriculumCoreQuery.setOpenid(attendant_id);
+        List<CollegeCurriculumCore> collegeCurriculumCores = collegeCurriculumCoreDao.queryELearning_Index(collegeCurriculumCoreQuery);
+        for (CollegeCurriculumCore collegeCurriculumCore : collegeCurriculumCores) {
+            if (collegeCurriculumCore.getStatus() != null && collegeCurriculumCore.getStatus().equals("9")) { //1-已预约,2-学习中,3-已过期, 9-已完成
+                collegeCurriculumCore.setStatus("已完成");
+            } else if (collegeCurriculumCore.getStatus() != null && collegeCurriculumCore.getStatus().equals("2")) {
+                collegeCurriculumCore.setStatus("待完成");
+            } else {
+                collegeCurriculumCore.setStatus("待完成");
+            }
+        }
+        tableData.put("college_core", collegeCurriculumCores);
+        return tableData;
+    }
+
+    public LinkedHashMap<String, Object> courseworkList(String attendant_id, Integer coursework_id) {
+        LinkedHashMap<String, Object> tableData = new LinkedHashMap<>();
+        CollegeCurriculumQuery collegeCurriculumQuery = new CollegeCurriculumQuery();
+        collegeCurriculumQuery.setId(coursework_id);
+        collegeCurriculumQuery.setOpenid(attendant_id);
+        LinkedHashMap<String, Object> list = new LinkedHashMap<>();
+        ReturnUserLearningCoreDetail returnUserLearningCoreDetail = collegeCurriculumCoreDao.queryCourseworkList(collegeCurriculumQuery);
+        tableData.put("curriculumDetail", returnUserLearningCoreDetail);
+        if (returnUserLearningCoreDetail.isIsvideo()) {
+            list.put("collegeName", returnUserLearningCoreDetail.getC_name());
+            list.put("collegeDesc", "文档课件"); //先写死
+            list.put("collegeId", returnUserLearningCoreDetail.getId());
+            if (returnUserLearningCoreDetail.getStatus() != null && returnUserLearningCoreDetail.getStatus() == 9) {
+                list.put("collegeStatus", "完成度100%");
+                list.put("collegeFinish", "已完成");
+            } else if (returnUserLearningCoreDetail.getStatus() != null && returnUserLearningCoreDetail.getStatus() == 2) {
+                if (returnUserLearningCoreDetail.getRate().equals("100%")) {
+                    list.put("collegeStatus", "完成度100%");
+                    list.put("collegeFinish", "已完成");
+                } else {
+                    list.put("collegeStatus", "完成度" + returnUserLearningCoreDetail.getRate());
+                    list.put("collegeFinish", "未完成");
+                }
+
+            } else {
+                list.put("collegeStatus", "完成度0%");
+                list.put("collegeFinish", "未完成");
+            }
+        }
+        if (returnUserLearningCoreDetail.isIstest()) {
+            list.put("testName", "本期课程测验");  //先写死
+            list.put("fullCredit", "满分100分"); //先写死
+            list.put("testId", returnUserLearningCoreDetail.getTestid());
+            if (returnUserLearningCoreDetail.getResult() != null) {
+                list.put("testResult", "您的成绩为" + returnUserLearningCoreDetail.getResult() + "分");
+                list.put("testFinish", "已完成");
+            } else {
+                list.put("testResult", "您尚未参与考试");
+                list.put("testFinish", "未完成");
+            }
+        }
+        tableData.put("curriculumList", list);
+        return tableData;
+    }
+
+    public LinkedHashMap<String, Object> courseworkDetail(String attendant_id, Integer coursework_id) {
+        CollegeCurriculumQuery collegeCurriculumQuery = new CollegeCurriculumQuery();
+        collegeCurriculumQuery.setId(coursework_id);
+        collegeCurriculumQuery.setOpenid(attendant_id);
+        LinkedHashMap<String, Object> tableData = new LinkedHashMap<>();
+        ReturnUserLearningCoreDetail returnUserLearningCoreDetail = collegeCurriculumCoreDao.queryCourseworkDetail(collegeCurriculumQuery);
+        tableData.put("c_name", returnUserLearningCoreDetail.getC_name());
+        tableData.put("pcount", returnUserLearningCoreDetail.getPcount());
+        tableData.put("t_image_href", returnUserLearningCoreDetail.getT_image_href());
+        tableData.put("t_name", returnUserLearningCoreDetail.getT_name());
+        tableData.put("c_content", returnUserLearningCoreDetail.getC_content());
+        tableData.put("positive", returnUserLearningCoreDetail.getPositive());
+        tableData.put("t_desc", returnUserLearningCoreDetail.getT_desc());
+        tableData.put("isvideo", returnUserLearningCoreDetail.isIsvideo());
+        tableData.put("video_length", returnUserLearningCoreDetail.getVideo_length());
+        tableData.put("status", returnUserLearningCoreDetail.getStatus());
+        tableData.put("rate", returnUserLearningCoreDetail.getRate());
+        tableData.put("countdown", returnUserLearningCoreDetail.getRate_time());
+        tableData.put("video_href", returnUserLearningCoreDetail.getVideo_href());
+        tableData.put("ispositive", returnUserLearningCoreDetail.getIspositive());
+        if (returnUserLearningCoreDetail.getRate_time() != null) {
+            String coreTime[] = returnUserLearningCoreDetail.getVideo_length().split(":");
+            int coreHours = Integer.parseInt(coreTime[0]) * 60 * 60;
+            int coreMinutes = Integer.parseInt(coreTime[1]) * 60;
+            int coreTimeValue = coreHours + coreMinutes;
+
+            String rateTime[] = returnUserLearningCoreDetail.getRate_time().split(":");
+            int rateHours = Integer.parseInt(rateTime[0]) * 60 * 60;
+            int rateMinutes = Integer.parseInt(rateTime[1]) * 60;
+            int rateTimeValue = rateHours + rateMinutes;
+
+            int downTimeValue = coreTimeValue - rateTimeValue;
+            tableData.put("rate_time", String.format("%02d", downTimeValue / 3600) + ":" + String.format("%02d", downTimeValue / 60 % 60));
+        } else {
+            tableData.put("rate_time", "00:00");
+        }
+        return tableData;
+    }
+
+    public List<CollegeTest> testList(String attendant_id, Integer coursework_id) {
+        // 查看用户之前的答案
+        CollegeTestDetail collegeTestDetailQuery = new CollegeTestDetail();
+        collegeTestDetailQuery.setCoreid(coursework_id);
+        collegeTestDetailQuery.setOpenid(attendant_id);
+        String[] answers = null;
+        List<CollegeTest> collegeTestsReturn = new LinkedList<CollegeTest>();
+        List<CollegeTest> collegeTests = collegeTestService.selectByCoreId(coursework_id);
+        CollegeTestDetail collegeTestDetail = collegeTestDetailService.queryTestComplete(collegeTestDetailQuery); //
+        if (collegeTestDetail == null) {
+            for (CollegeTest collegeTest : collegeTests) {
+                CollegeTest collegeTestTemp = new CollegeTest();
+                List<CollegeTestResult> collegeTestResults = collegeTestResultService.selectByTestId(collegeTest.getId());
+                collegeTestTemp.setId(collegeTest.getId());
+                collegeTestTemp.setSeq(collegeTest.getSeq());
+                collegeTestTemp.setName(collegeTest.getName());
+                collegeTestTemp.setDesc(collegeTest.getDesc());
+                collegeTestTemp.setScore(collegeTest.getScore());
+                collegeTestTemp.setCollegeTestResults(collegeTestResults);
+                collegeTestTemp.setComment(collegeTest.getComment());
+                collegeTestsReturn.add(collegeTestTemp);
+            }
+        } else {
+            answers = collegeTestDetail.getAnswers().split(",");
+            int i = 0;
+
+            for (CollegeTest collegeTest : collegeTests) {
+                CollegeTest collegeTestTemp = new CollegeTest();
+                List<CollegeTestResult> collegeTestResults = collegeTestResultService.selectByTestId(collegeTest.getId());
+                for (CollegeTestResult collegeTestResult : collegeTestResults) {
+                    if (collegeTestResult.isIsright() && answers[i].equals(String.valueOf(collegeTestResult.getSeq()))) {
+                        collegeTestTemp.setResult(true);
+                        break;
+                    } else {
+                        collegeTestTemp.setResult(false);
+                    }
+                }
+                collegeTestTemp.setId(collegeTest.getId());
+                collegeTestTemp.setSeq(collegeTest.getSeq());
+                collegeTestTemp.setName(collegeTest.getName());
+                collegeTestTemp.setDesc(collegeTest.getDesc());
+                collegeTestTemp.setScore(collegeTest.getScore());
+                collegeTestTemp.setCollegeTestResults(collegeTestResults);
+                collegeTestTemp.setComment(collegeTest.getComment());
+                collegeTestTemp.setUserAnswer(answers[i]);
+                collegeTestTemp.setRightSeq(collegeTest.getRightSeq());
+                i++;
+                collegeTestsReturn.add(collegeTestTemp);
+            }
+        }
+        return collegeTestsReturn;
+    }
+
+    public LinkedHashMap<String, Object> testComplete(String attendant_id, Integer coursework_id, String answers) {
+        LinkedHashMap<String, Object> tableData = new LinkedHashMap<>();
+        CollegeTestDetail collegeTestDetailQuery = new CollegeTestDetail();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        collegeTestDetailQuery.setOpenid(attendant_id);
+        collegeTestDetailQuery.setCoreid(coursework_id);
+        if (collegeTestDetailService.selectByOpenId(collegeTestDetailQuery) == null) {
+            CollegeTestDetail collegeTestDetail = new CollegeTestDetail();
+            collegeTestDetail.setCoreid(coursework_id);
+            collegeTestDetail.setOpenid(attendant_id);
+            collegeTestDetail.setStatus(9);
+            String[] answersL = answers.split(",");
+            int score = 0;
+            int count = 0;
+            int i = 0;
+            List<CollegeTest> collegeTests = collegeTestService.selectByCoreId(coursework_id);
+            for (CollegeTest collegeTest : collegeTests) {
+                List<CollegeTestResult> collegeTestResults = collegeTestResultService.selectByTestId(collegeTest.getId());
+                for (CollegeTestResult collegeTestResult : collegeTestResults) {
+                    if (collegeTestResult.isIsright() && answersL[i].equals(String.valueOf(collegeTestResult.getSeq()))) {
+                        score = score + collegeTest.getScore();
+                        count = count + 1;
+                        break;
+                    }
+                }
+                i++;
+            }
+            tableData.put("score", score);
+            tableData.put("count", count);
+            //insert into Detail
+            collegeTestDetail.setResult(score);
+            collegeTestDetail.setAnswers(answers);
+            collegeTestDetail.setSys_type("YueLife");
+            collegeTestDetailService.insertSelective(collegeTestDetail);
+
+            CollegeCurriculumCore collegeCurriculumCore = collegeCurriculumCoreService.getCollegeCurriculumCore(coursework_id);
+            CollegeLearningDetail collegeLearningDetail1 = new CollegeLearningDetail();
+            collegeLearningDetail1.setOpen_id(attendant_id);
+            collegeLearningDetail1.setC_code(collegeCurriculumCore.getC_code());
+            collegeLearningDetail1.setDate(sdf.format(new Date()));
+            collegeLearningDetail1.setCredit(collegeCurriculumCore.getCredit());
+            collegeLearningDetail1.setStatus(9);
+            collegeLearningDetail1.setRate("100%");
+            collegeLearningDetail1.setSys_type("YueLife");
+            collegeLearningDetailService.addCollegeLearningDetail(collegeLearningDetail1);
+
+            return tableData;
+        } else {
+            tableData.put("score", "已做过测试");
+            return tableData;
+        }
+    }
+
+    public int courseworkComplete(String attendant_id, String coursework_id) {
+        CollegeLearningDetail collegeLearningDetail = new CollegeLearningDetail();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        collegeLearningDetail.setOpen_id(attendant_id);
+        collegeLearningDetail.setC_code(coursework_id);
+        CollegeLearningDetail collegeLearningDetailOld = collegeLearningDetailService.checkCoreLearningRate(collegeLearningDetail);
+        if (collegeLearningDetailOld != null && collegeLearningDetailOld.getStatus() == 9) {
+            return 0;
+        } else {
+            collegeLearningDetail.setId(collegeLearningDetailOld.getId());
+            collegeLearningDetail.setRate("100%");
+            collegeLearningDetail.setStatus(2);
+            collegeLearningDetail.setDate(sdf.format(new Date()));
+            collegeLearningDetail.setRate_time("00:00");
+            collegeLearningDetailService.updateCollegeLearningDetail(collegeLearningDetail);
+            return 1;
+        }
+    }
+
+    public int courseworkUpdate(String attendant_id, String coursework_id, String rate) {
+        try {
+            CollegeLearningDetail collegeLearningDetail = new CollegeLearningDetail();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            DecimalFormat df = new DecimalFormat("00.00");
+            collegeLearningDetail.setOpen_id(attendant_id);
+            collegeLearningDetail.setC_code(coursework_id);
+            CollegeLearningDetail collegeLearningDetailOld = collegeLearningDetailService.checkCoreLearningRate(collegeLearningDetail);
+            CollegeCurriculumCore collegeCurriculumCore = collegeCurriculumCoreDao.queryCoreByCode(coursework_id);
+
+            String rTime[] = rate.split(":");
+            int rHours = Integer.parseInt(rTime[0]) * 60 * 60;
+            int rMinutes = Integer.parseInt(rTime[1]) * 60;
+            int rateNew = rHours+rMinutes;
+
+            String coreTime[] = collegeCurriculumCore.getVideo_length().split(":");
+            int coreHours = Integer.parseInt(coreTime[0]) * 60 * 60;
+            int coreMinutes = Integer.parseInt(coreTime[1]) * 60;
+            int coreRate = coreHours+coreMinutes;
+            double rateValueTemp = ((double)coreRate - (double)rateNew)/coreRate;
+            String rateValue;
+            if (rateValueTemp >= 1) {
+                rateValue = "100%";
+            } else {
+                rateValue = df.format(rateValueTemp*100) + "%";
+            }
+
+            if(collegeLearningDetailOld == null) {
+                collegeLearningDetail.setRate(rateValue);
+                collegeLearningDetail.setDate(sdf.format(new Date()));
+                collegeLearningDetail.setStatus(2);
+                collegeLearningDetail.setRate_time(rate);
+                collegeLearningDetail.setSys_type("YueLife");
+                collegeLearningDetailService.addCollegeLearningDetail(collegeLearningDetail);
+                collegeCurriculumCoreDao.updateCoreCount(coursework_id);
+                return 1;
+            } else {
+                if(collegeLearningDetailOld.getStatus() == 9) {
+                    return 0;
+                } else {
+                    if (Double.parseDouble(rateValue.replace("%","")) > Double.parseDouble(collegeLearningDetailOld.getRate().replace("%",""))) {
+                        collegeLearningDetail.setId(collegeLearningDetailOld.getId());
+                        collegeLearningDetail.setRate(rateValue);
+                        collegeLearningDetail.setStatus(2);
+                        collegeLearningDetail.setDate(sdf.format(new Date()));
+                        collegeLearningDetail.setRate_time(rate);
+                        collegeLearningDetailService.updateCollegeLearningDetail(collegeLearningDetail);
+                        return 1;
+                    } else {
+                        return 0;
+                    }
+                }
+
+            }
+        }catch (Exception ex) {
+            ex.printStackTrace();
+            return 0;
+        }
+
+    }
+
+}

+ 7 - 0
src/main/java/com/ygj/yuemum/shiro/ShiroConfig.java

@@ -134,6 +134,13 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/college/coreLearningFinish","anon");
         filterChainDefinitionMap.put("/college/getCollegeBooking","anon");
         filterChainDefinitionMap.put("/college/bookingCancel","anon");
+        filterChainDefinitionMap.put("/eLearning/index","anon");
+        filterChainDefinitionMap.put("/eLearning/courseworkList","anon");
+        filterChainDefinitionMap.put("/eLearning/courseworkDetail","anon");
+        filterChainDefinitionMap.put("/eLearning/testList","anon");
+        filterChainDefinitionMap.put("/eLearning/testComplete","anon");
+        filterChainDefinitionMap.put("/eLearning/courseworkComplete","anon");
+        filterChainDefinitionMap.put("/eLearning/courseworkUpdate","anon");
 //        //用户,需要角色权限 “user”
 //        filterChainDefinitionMap.put("/user/**", "roles[user]");
 //        //管理员,需要角色权限 “admin”

+ 85 - 9
src/main/resources/mybatis/mapper/college/CollegeCurriculumCoreMapper.xml

@@ -4,6 +4,7 @@
 
     <resultMap id="BaseResultMap" type="com.ygj.yuemum.domain.college.CollegeCurriculumCore">
         <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="sys_type" property="sys_type" jdbcType="VARCHAR"/>
         <result column="c_code" property="c_code" jdbcType="VARCHAR"/>
         <result column="c_seq" property="c_seq" jdbcType="INTEGER"/>
         <result column="c_name" property="c_name" jdbcType="VARCHAR"/>
@@ -31,6 +32,7 @@
         select
         *
         from college_curriculum_core
+        where sys_type = 'YueSuo'
         order by id desc
     </select>
 
@@ -38,13 +40,15 @@
     <select id="queryUserLearningCoreDetail" resultType="com.ygj.yuemum.domain.college.ReturnUserLearningCoreDetail" parameterType="com.ygj.yuemum.domain.college.CollegeCurriculumQuery">
         SELECT
             ccc.*,
-            (select result from college_test_detail where coreid = ccc.id and  `status` != 8 and openid = #{openid,jdbcType=VARCHAR}) result,
-            (select status from college_learning_detail where c_code = ccc.c_code  and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1) `status`,
-            IFNULL((select rate from college_learning_detail where c_code = ccc.c_code  and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),'0%') `rate`
+            (select result from college_test_detail where coreid = ccc.id and sys_type = 'YueSuo' and  `status` != 8 and openid = #{openid,jdbcType=VARCHAR}) result,
+            (select status from college_learning_detail where c_code = ccc.c_code  and sys_type = 'YueSuo' and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1) `status`,
+            IFNULL((select rate from college_learning_detail where c_code = ccc.c_code  and sys_type = 'YueSuo' and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),'0%') `rate`
         FROM
             college_curriculum_core  as ccc
         WHERE
             id = #{id,jdbcType=INTEGER}
+        and
+            ccc.sys_type = 'YueSuo'
     </select>
 
 
@@ -62,14 +66,15 @@
             ccc.isvideo,
             ccc.video_length,
             ccc.video_href,
-            (select status from college_learning_detail where c_code = ccc.c_code and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1) `status`,
-            IFNULL((select rate from college_learning_detail where c_code = ccc.c_code  and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),'0%') `rate`,
-            IFNULL((select rate_time from college_learning_detail where c_code = ccc.c_code  and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),ccc.video_length) `rate_time`,
-            IFNULL((select status from college_learning_detail where c_code = ccc.c_code and  `status` = 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),0) ispositive
+            (select status from college_learning_detail where c_code = ccc.c_code and sys_type = 'YueSuo' and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1) `status`,
+            IFNULL((select rate from college_learning_detail where c_code = ccc.c_code  and sys_type = 'YueSuo' and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),'0%') `rate`,
+            IFNULL((select rate_time from college_learning_detail where c_code = ccc.c_code  and sys_type = 'YueSuo' and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),ccc.video_length) `rate_time`,
+            IFNULL((select status from college_learning_detail where c_code = ccc.c_code and sys_type = 'YueSuo' and  `status` = 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),0) ispositive
         FROM
             college_curriculum_core  as ccc
         WHERE
             id = #{id,jdbcType=INTEGER}
+        and ccc.sys_type = 'YueSuo'
         order by id desc
     </select>
 
@@ -78,7 +83,7 @@
             parameterType="com.ygj.yuemum.domain.college.CollegeCurriculumQuery">
         SELECT
         ccc.*,
-        (select status from college_learning_detail where c_code = ccc.c_code  and open_id = #{openid,jdbcType=VARCHAR} and `status` != 8 order by `status` desc limit 1) `status`
+        (select status from college_learning_detail where c_code = ccc.c_code  and sys_type = 'YueSuo' and open_id = #{openid,jdbcType=VARCHAR} and `status` != 8 order by `status` desc limit 1) `status`
         FROM
         college_curriculum_core AS ccc
         WHERE
@@ -92,6 +97,7 @@
         c_type = #{c_type,jdbcType=VARCHAR}
         and
         FIND_IN_SET(#{c_step,jdbcType=INTEGER},c_step))
+        and sys_type = 'YueSuo'
         ORDER BY
         c_seq desc
     </select>
@@ -100,12 +106,13 @@
             parameterType="com.ygj.yuemum.domain.college.CollegeCurriculumCore">
         select
         ccc.*,
-        IFNULL((select `status` from college_learning_detail where c_code = ccc.c_code  and open_id = #{openid,jdbcType=VARCHAR}  and `status` != 8 order by `status` desc limit 1),0) `status`
+        IFNULL((select `status` from college_learning_detail where c_code = ccc.c_code  and sys_type = 'YueSuo' and open_id = #{openid,jdbcType=VARCHAR}  and `status` != 8 order by `status` desc limit 1),0) `status`
         from college_curriculum_core as ccc
         where
             FIND_IN_SET(#{c_step,jdbcType=VARCHAR},ccc.c_step) >0
         and
             ccc.c_type = #{c_type,jdbcType=VARCHAR}
+        and ccc.sys_type = 'YueSuo'
         order by id desc
     </select>
 
@@ -124,16 +131,21 @@
         *
         from college_curriculum_core
         where c_code = #{c_code,jdbcType=INTEGER}
+        and ccc.sys_type = 'YueSuo'
     </select>
 
     <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
         delete from college_curriculum_core
         where id = #{id,jdbcType=INTEGER}
+        and ccc.sys_type = 'YueSuo'
     </delete>
 
     <insert id="insertSelective" parameterType="com.ygj.yuemum.domain.college.CollegeCurriculumCore">
         insert into college_curriculum_core
         <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="sys_type != null">
+                sys_type,
+            </if>
             <if test="c_code != null">
                 c_code,
             </if>
@@ -200,6 +212,9 @@
             </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="sys_type != null">
+                #{sys_type,jdbcType=VARCHAR},
+            </if>
             <if test="c_code != null">
                 #{c_code,jdbcType=VARCHAR},
             </if>
@@ -266,16 +281,21 @@
     <update id="updatePositive" parameterType="java.lang.String">
         update college_curriculum_core set positive = positive +1
         where c_code =  #{c_code,jdbcType=VARCHAR}
+        and ccc.sys_type = 'YueSuo'
     </update>
 
     <update id="updateCoreCount" parameterType="java.lang.String">
         update college_curriculum_core set pcount = pcount +1
         where c_code =  #{c_code,jdbcType=VARCHAR}
+        and ccc.sys_type = 'YueSuo'
     </update>
 
     <update id="updateByPrimaryKeySelective" parameterType="com.ygj.yuemum.domain.college.CollegeCurriculumCore">
         update college_curriculum_core
         <set>
+            <if test="sys_type != null">
+                sys_type = #{c_code,jdbcType=VARCHAR},
+            </if>
             <if test="c_code != null">
                 c_code = #{c_code,jdbcType=VARCHAR},
             </if>
@@ -340,4 +360,60 @@
         where id = #{id,jdbcType=INTEGER}
     </update>
 
+
+
+    <select id="queryELearning_Index" resultType="com.ygj.yuemum.domain.college.CollegeCurriculumCore"
+            parameterType="com.ygj.yuemum.domain.college.CollegeCurriculumCore">
+        select
+        ccc.*,
+        IFNULL((select `status` from college_learning_detail where c_code = ccc.c_code  and sys_type = 'YueLife' and open_id = #{openid,jdbcType=VARCHAR}  and `status` != 8 order by `status` desc limit 1),0) `status`
+        from college_curriculum_core as ccc
+        where
+        ccc.sys_type = 'YueLife'
+        order by c_seq asc
+    </select>
+
+
+    <select id="queryCourseworkList" resultType="com.ygj.yuemum.domain.college.ReturnUserLearningCoreDetail" parameterType="com.ygj.yuemum.domain.college.CollegeCurriculumQuery">
+        SELECT
+            ccc.*,
+            (select result from college_test_detail where coreid = ccc.id and sys_type = 'YueLife' and  `status` != 8 and openid = #{openid,jdbcType=VARCHAR}) result,
+            (select status from college_learning_detail where c_code = ccc.c_code  and sys_type = 'YueLife' and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1) `status`,
+            IFNULL((select rate from college_learning_detail where c_code = ccc.c_code  and sys_type = 'YueLife' and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),'0%') `rate`
+        FROM
+            college_curriculum_core  as ccc
+        WHERE
+            id = #{id,jdbcType=INTEGER}
+        and
+            ccc.sys_type = 'YueLife'
+    </select>
+
+
+    <select id="queryCourseworkDetail" resultType="com.ygj.yuemum.domain.college.ReturnUserLearningCoreDetail"
+            parameterType="com.ygj.yuemum.domain.college.CollegeCurriculumQuery">
+        SELECT
+            ccc.c_name,
+            ccc.pcount,
+            ccc.t_image_href,
+            ccc.t_name,
+            ccc.c_content,
+            ccc.positive,
+            ccc.t_desc,
+            ccc.isvideo,
+            ccc.video_length,
+            ccc.video_href,
+            (select status from college_learning_detail where c_code = ccc.c_code and sys_type = 'YueSuo' and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1) `status`,
+            IFNULL((select rate from college_learning_detail where c_code = ccc.c_code  and sys_type = 'YueSuo' and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),'0%') `rate`,
+            IFNULL((select rate_time from college_learning_detail where c_code = ccc.c_code  and sys_type = 'YueSuo' and  `status` != 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),ccc.video_length) `rate_time`,
+            IFNULL((select status from college_learning_detail where c_code = ccc.c_code and sys_type = 'YueSuo' and  `status` = 8 and open_id = #{openid,jdbcType=VARCHAR} order by `status` desc limit 1),0) ispositive
+        FROM
+            college_curriculum_core  as ccc
+        WHERE
+            id = #{id,jdbcType=INTEGER}
+        and ccc.sys_type = 'YueLife'
+        order by id desc
+    </select>
+
+
+
 </mapper>

+ 20 - 3
src/main/resources/mybatis/mapper/college/CollegeLearningDetailMapper.xml

@@ -11,6 +11,7 @@
         <result column="credit" property="credit" jdbcType="INTEGER" />
         <result column="rate" property="rate" jdbcType="VARCHAR" />
         <result column="rate_time" property="rate_time" jdbcType="VARCHAR" />
+        <result column="sys_type" property="sys_type" jdbcType="VARCHAR" />
     </resultMap>
     <!--获取所有数据-->
 
@@ -18,6 +19,7 @@
         select
         *
         from college_learning_detail
+        where sys_type = 'YueSuo'
         order by id desc
     </select>
 
@@ -27,6 +29,7 @@
         *
         from college_learning_detail
         where id = #{id,jdbcType=INTEGER}
+        and sys_type = 'YueSuo'
     </select>
 
     <select id="checkCorePositive" resultType="com.ygj.yuemum.domain.college.CollegeLearningDetail" parameterType="com.ygj.yuemum.domain.college.CollegeLearningDetail" >
@@ -36,6 +39,7 @@
         where open_id = #{open_id,jdbcType=INTEGER}
         and c_code = #{c_code,jdbcType=INTEGER}
         and status = 8
+        and sys_type = 'YueSuo'
     </select>
 
     <select id="checkCoreLearningRate" resultType="com.ygj.yuemum.domain.college.CollegeLearningDetail" parameterType="com.ygj.yuemum.domain.college.CollegeLearningDetail" >
@@ -45,6 +49,7 @@
         where open_id = #{open_id,jdbcType=INTEGER}
         and c_code = #{c_code,jdbcType=INTEGER}
         and status = 2
+        and sys_type = 'YueSuo'
         order by id desc limit 1
     </select>
 
@@ -53,12 +58,14 @@
 
         delete from college_learning_detail
         where id = #{id,jdbcType=INTEGER}
+        and sys_type = 'YueSuo'
     </delete>
 
     <delete id="deleteBookingCancel" parameterType="com.ygj.yuemum.domain.college.CollegeLearningDetail" >
         delete from college_learning_detail
         where open_id = #{open_id,jdbcType=INTEGER}
         and c_code = #{c_code,jdbcType=INTEGER}
+        and sys_type = 'YueSuo'
     </delete>
 
     <insert id="insertSelective" parameterType="com.ygj.yuemum.domain.college.CollegeLearningDetail" >
@@ -83,7 +90,10 @@
                 rate,
             </if>
             <if test="rate_time != null" >
-                rate_time
+                rate_time,
+            </if>
+            <if test="sys_type != null" >
+                sys_type
             </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides="," >
@@ -106,7 +116,10 @@
                 #{rate,jdbcType=VARCHAR},
             </if>
             <if test="rate_time != null" >
-                #{rate_time,jdbcType=VARCHAR}
+                #{rate_time,jdbcType=VARCHAR},
+            </if>
+            <if test="sys_type != null" >
+                #{sys_type,jdbcType=VARCHAR}
             </if>
         </trim>
     </insert>
@@ -133,7 +146,10 @@
                 rate = #{rate,jdbcType=VARCHAR},
             </if>
             <if test="rate_time != null" >
-                rate_time = #{rate_time,jdbcType=VARCHAR}
+                rate_time = #{rate_time,jdbcType=VARCHAR},
+            </if>
+            <if test="sys_type != null" >
+                sys_type = #{sys_type,jdbcType=VARCHAR}
             </if>
         </set>
         where id = #{id,jdbcType=INTEGER}
@@ -144,6 +160,7 @@
         set rate = #{rate,jdbcType=VARCHAR}
         where  open_id = #{open_id,jdbcType=VARCHAR}
         and  c_code = #{c_code,jdbcType=VARCHAR}
+        and sys_type = 'YueSuo'
     </update>
 
 

+ 29 - 3
src/main/resources/mybatis/mapper/college/CollegeTestDetailMapper.xml

@@ -9,6 +9,7 @@
         <result column="status" property="status" jdbcType="INTEGER" />
         <result column="result" property="result" jdbcType="INTEGER" />
         <result column="answers" property="answers" jdbcType="VARCHAR" />
+        <result column="sys_type" property="sys_type" jdbcType="VARCHAR" />
     </resultMap>
     <!--获取所有数据-->
 
@@ -16,6 +17,7 @@
         select
         *
         from college_test_detail
+        where sys_type = 'YueSuo'
         order by id desc
     </select>
 
@@ -26,6 +28,7 @@
         from college_test_detail
         where openid = #{openid,jdbcType=VARCHAR}
         and coreid = #{coreid,jdbcType=VARCHAR}
+        and sys_type = 'YueSuo'
         order by id desc
     </select>
 
@@ -35,6 +38,7 @@
         *
         from college_test_detail
         where id = #{id,jdbcType=INTEGER}
+        and sys_type = 'YueSuo'
     </select>
 
     <select id="selectByOpenId" resultType="com.ygj.yuemum.domain.college.CollegeTestDetail" parameterType="com.ygj.yuemum.domain.college.CollegeTestDetail" >
@@ -43,11 +47,13 @@
         from college_test_detail
         where openid = #{openid,jdbcType=INTEGER}
         and coreid = #{coreid,jdbcType=VARCHAR}
+        and sys_type = 'YueSuo'
     </select>
 
     <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
         delete from college_test_detail
         where id = #{id,jdbcType=INTEGER}
+        and sys_type = 'YueSuo'
     </delete>
 
     <insert id="insertSelective" parameterType="com.ygj.yuemum.domain.college.CollegeTestDetail" >
@@ -66,7 +72,10 @@
                 result,
             </if>
             <if test="answers != null" >
-                answers
+                answers,
+            </if>
+            <if test="sys_type != null" >
+                sys_type
             </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides="," >
@@ -83,7 +92,10 @@
                 #{result,jdbcType=INTEGER},
             </if>
             <if test="answers != null" >
-                #{answers,jdbcType=INTEGER}
+                #{answers,jdbcType=INTEGER},
+            </if>
+            <if test="sys_type != null" >
+                #{sys_type,jdbcType=INTEGER}
             </if>
         </trim>
     </insert>
@@ -104,10 +116,24 @@
                 result = #{result,jdbcType=INTEGER},
             </if>
             <if test="answers != null" >
-                answers = #{answers,jdbcType=INTEGER}
+                answers = #{answers,jdbcType=INTEGER},
+            </if>
+            <if test="sys_type != null" >
+                answers = #{sys_type,jdbcType=INTEGER}
             </if>
         </set>
         where id = #{id,jdbcType=INTEGER}
     </update>
 
+
+    <select id="queryTestComplete" resultType="com.ygj.yuemum.domain.college.CollegeTestDetail" parameterType="com.ygj.yuemum.domain.college.CollegeTestDetail" >
+        select
+        *
+        from college_test_detail
+        where openid = #{openid,jdbcType=VARCHAR}
+        and coreid = #{coreid,jdbcType=VARCHAR}
+        and sys_type = 'YueLife'
+        order by id desc
+    </select>
+
 </mapper>