yangdamao 1 ano atrás
pai
commit
6160eddc3d

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeUserMapper.java

@@ -116,4 +116,7 @@ public interface ClassGradeUserMapper extends BaseMapper<ClassGradeUser> {
 
     @InterceptorIgnore(tenantLine = "true")
     ClassGradeUser selectUserNoTenant(ClassGradeUserQueryBo bo);
+
+    List<Long> getFinishRequiredCourse(ClassGradeUserQueryBo bo);
+
 }

+ 8 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -3703,13 +3703,19 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                 UserStudyTimeVo timeVo = JSONArray.parseObject(jsonObject1.get("data").toString(), UserStudyTimeVo.class);
                 if (ObjectUtils.isNotNull(timeVo) && ObjectUtils.isNotNull(timeVo.getStudyStartTime()) && timeVo.getStudyFlag()){
                     //旧系统正在学习中
-                    return 1L;
+                    throw new CustomException("请把旧云学堂课程学习完成,再学习另一个课程");
                 }
             } catch (Exception e) {
                 throw new CustomException("旧系统二建继续校验接口请求失败"+e.getMessage());
             }
         }
-        return baseMapper.checkFinishRequiredCourse(bo);
+        Long aLong = baseMapper.checkFinishRequiredCourse(bo);
+        if (aLong > 0){
+            List<Long> goodsIds = baseMapper.getFinishRequiredCourse(bo);
+            Goods goods = iGoodsService.getById(goodsIds.get(0));
+            throw new CustomException("请按顺序学习,把【"+goods.getGoodsName()+"】学习完成,再学习另一个课程");
+        }
+        return 0L;
     }
 
     @Override

+ 26 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

@@ -1701,6 +1701,32 @@
             )>0
     </select>
 
+    <select id="getFinishRequiredCourse" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo" resultType="java.lang.Long">
+        SELECT
+            g.goods_id
+        FROM
+            class_grade_user cgu
+                LEFT JOIN order_goods og ON cgu.order_goods_id = og.order_goods_id
+                LEFT JOIN goods g on og.goods_id = g.goods_id
+                LEFT JOIN class_grade cg on cg.grade_id = cgu.grade_id
+        WHERE
+            cgu.user_id = #{userId}
+          AND cgu.period_status = -1
+          AND (unix_timestamp(now())  BETWEEN cg.class_start_time and cg.class_end_time)
+          and g.business_id = #{businessId}
+          and g.goods_id != #{goodsId}
+          AND (
+            SELECT
+            IFNULL( count(*), 0 )
+            FROM
+            user_period up
+            WHERE
+            1 = 1
+          AND up.user_id = cgu.user_id
+          AND up.grade_id = cgu.grade_id
+            )>0
+    </select>
+
     <select id="getSevenPeriodStartTime" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo" resultType="java.lang.Long">
         SELECT
         p.create_time