yangdamao il y a 2 ans
Parent
commit
55fa0ad3dd

+ 3 - 3
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -216,9 +216,9 @@ public class CommonController
     @PostMapping("common/get/goods")
     public AjaxResult getUserGoodsList(@RequestBody UserGoodsListBo bo)
     {
-//        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
-//            return AjaxResult.error("签名错误");
-//        }
+        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
+            return AjaxResult.error("签名错误");
+        }
         List<UserGoodsListVo> voList = iGoodsService.getUserGoodsList(bo);
         return AjaxResult.success(voList);
     }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseMapper.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.course.mapper;
 
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.common.core.domain.entity.SysRole;
 import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
@@ -47,6 +48,9 @@ public interface CourseMapper extends BaseMapper<Course> {
     //不传班级可能出现用户重复购买情况
     ClassGradeVo gradeIdSelect(@Param("userId") Long userId, @Param("goodsId") Long goodsId, @Param("gradeId") Long gradeId);
 
+    @InterceptorIgnore(tenantLine = "true")
+    ClassGradeVo gradeIdSelectTenant(@Param("userId") Long userId, @Param("goodsId") Long goodsId, @Param("gradeId") Long gradeId,@Param("tenantId") Long tenantId);
+
     Long goodsRebuildStatus(CourseQueryBo bo);
 
     Long checkCourseHaveStudy(@Param("courseId") Long courseId);

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsCourseMapper.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.goods.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.course.vo.CourseVo;
 import com.zhongzheng.modules.goods.bo.GoodsCourseQueryBo;
@@ -8,6 +9,7 @@ import com.zhongzheng.modules.goods.domain.GoodsCourse;
 import com.zhongzheng.modules.goods.vo.GoodsCourseMoreVo;
 import com.zhongzheng.modules.goods.vo.GoodsCourseVo;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -21,4 +23,7 @@ public interface GoodsCourseMapper extends BaseMapper<GoodsCourse> {
     List<CourseVo> getList(GoodsCourseQueryBo bo);
     List<GoodsCourseMoreVo> selectListMore(GoodsCourseQueryBo bo);
     List<GoodsCourseVo> selectGoodsList(Long courseId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<Long> getCourseIdsByGoodsAndTenant(@Param("goodsId") Long goodsId,@Param("tenantId") Long tenantId);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsMapper.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.goods.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.course.bo.CourseQueryBo;
 import com.zhongzheng.modules.course.vo.CourseVo;
@@ -42,5 +43,6 @@ public interface GoodsMapper extends BaseMapper<Goods> {
 
     Long getSectionNum(Long goodsId);
 
+    @InterceptorIgnore(tenantLine = "true")
     List<UserGoodsListVo> getOrderGoodsListByUser(Long userId);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsCourseService.java

@@ -57,4 +57,6 @@ public interface IGoodsCourseService extends IService<GoodsCourse> {
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    List<Long> getCourseIdsByGoodsAndTenant(Long goodsId, Long trainOrgId);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsCourseServiceImpl.java

@@ -117,4 +117,9 @@ public class GoodsCourseServiceImpl extends ServiceImpl<GoodsCourseMapper, Goods
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public List<Long> getCourseIdsByGoodsAndTenant(Long goodsId, Long trainOrgId) {
+        return baseMapper.getCourseIdsByGoodsAndTenant(goodsId,trainOrgId);
+    }
 }

+ 13 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -882,7 +882,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
             subjectStudyRecordQueryBo.setUserId(user.getUserId());
             subjectStudyRecordQueryBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
             subjectStudyRecordQueryBo.setGradeId(goodsVo.getGradeId());
-            List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
+            subjectStudyRecordQueryBo.setTenantId(goodsVo.getTrainOrgId());
+            List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubjectTenant(subjectStudyRecordQueryBo);
             for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
                 secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
                 studyLong = new BigDecimal(studyLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getRecordNum().toString())).longValue();
@@ -894,7 +895,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
             if (goodsVo.getCourseType() == 1) {
                 //视频商品
                 //获得当前所在班级
-                ClassGradeVo classGradeVo = courseMapper.gradeIdSelect(user.getUserId(), goodsVo.getGoodsId(), goodsVo.getGradeId());
+                ClassGradeVo classGradeVo = courseMapper.gradeIdSelectTenant(user.getUserId(), goodsVo.getGoodsId(), goodsVo.getGradeId(),goodsVo.getTrainOrgId());
                 if (ObjectUtils.isNotNull(classGradeVo)) {
                     goodsVo.setPeriodStatus(classGradeVo.getPeriodStatus());
                 }
@@ -918,17 +919,25 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
             if (ObjectUtils.isNull(sysConfig)){
                 throw new CustomException("获取小程序appId失败");
             }
+            //课程
+            List<Long> courseIds = iGoodsCourseService.getCourseIdsByGoodsAndTenant(goodsVo.getGoodsId(),goodsVo.getTrainOrgId());
+            if (CollectionUtils.isNotEmpty(courseIds) && courseIds.size() == 1){
+                goodsVo.setCourseId(courseIds.get(0));
+            }
             goodsVo.setWeAppId(sysConfig.getConfigValue());
             if (goodsVo.getCourseType() == 2){
                 //题库
                 goodsVo.setToWeAppPagePath("/pages/questionBank/index");
             }else if (goodsVo.getCourseType() == 6){
                 //直播
-                goodsVo.setToWeAppPagePath("/pages3/live/detail");
+                goodsVo.setToWeAppPagePath(String.format("/pages3/live/detail?orderGoodsId=%s&goodsId=%s&gradeId=0&courseId=%s",
+                        goodsVo.getOrderGoodsId(),goodsVo.getGoodsId(),goodsVo.getCourseId()));
             }else {
                 //视频
-                goodsVo.setToWeAppPagePath("/pages3/polyv/detail");
+                goodsVo.setToWeAppPagePath(String.format("/pages3/polyv/detail?id=%s&goodsId=%s&orderGoodsId=%s&gradeId=%s",
+                        goodsVo.getCourseId(),goodsVo.getGoodsId(),goodsVo.getOrderGoodsId(),goodsVo.getGradeId()));
             }
+
         });
 
         return voList;

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/SubjectStudyRecordQueryBo.java

@@ -80,4 +80,6 @@ public class SubjectStudyRecordQueryBo extends BaseEntity {
     @ApiModelProperty("已学节数")
     private Long recordNum;
     private Long orderGoodsId;
+
+    private Long tenantId;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserStudyRecordMapper.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.user.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.course.bo.CourseSectionDetailBo;
 import com.zhongzheng.modules.course.bo.CourseSectionDetailVo;
@@ -37,6 +38,9 @@ public interface UserStudyRecordMapper extends BaseMapper<UserStudyRecord> {
 
     List<SubjectStudyRecordVo> listSubject(SubjectStudyRecordQueryBo bo);
 
+    @InterceptorIgnore(tenantLine = "true")
+    List<SubjectStudyRecordVo> listSubjectTenant(SubjectStudyRecordQueryBo bo);
+
     Long getUserSeeTime(UserStudyRecordQueryBo bo);
 
     List<SectionStudyRecordVo> listSection(SubjectStudyRecordQueryBo bo);

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserStudyRecordService.java

@@ -79,6 +79,8 @@ public interface IUserStudyRecordService extends IService<UserStudyRecord> {
 
 	List<SubjectStudyRecordVo> listSubject(SubjectStudyRecordQueryBo bo);
 
+	List<SubjectStudyRecordVo> listSubjectTenant(SubjectStudyRecordQueryBo bo);
+
 	List<SectionStudyRecordVo> listSection(SubjectStudyRecordQueryBo bo);
 
     List<ExamStudyRecordVo> querExamStudy(UserQueryBo bo);

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -1161,6 +1161,12 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
         return subjectStudyRecordVos;
     }
 
+    @Override
+    public List<SubjectStudyRecordVo> listSubjectTenant(SubjectStudyRecordQueryBo bo) {
+        List<SubjectStudyRecordVo> subjectStudyRecordVos = baseMapper.listSubjectTenant(bo);
+        return subjectStudyRecordVos;
+    }
+
     @Override
     public List<SectionStudyRecordVo> listSection(SubjectStudyRecordQueryBo bo) {
         List<SectionStudyRecordVo> sectionStudyRecordVos = baseMapper.listSection(bo);

+ 42 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml

@@ -668,6 +668,48 @@
         order by cg.create_time desc LIMIT 1
     </select>
 
+    <select id="gradeIdSelectTenant" parameterType="map"  resultMap="ClassGradeVoResult" >
+        SELECT
+        (SELECT
+        COUNT( m.id )
+        FROM
+        goods_course c  LEFT JOIN  course_menu_exam m ON m.course_id = c.course_id
+        where
+        m.type in (1,3)
+        and c.goods_id = #{goodsId}) as exam_num,
+        (SELECT COUNT(DISTINCT ubr.module_id,ubr.chapter_id,ubr.exam_id) FROM user_bank_record ubr LEFT JOIN class_grade_goods cgg on cgg.goods_id
+        = ubr.goods_id where ubr.`status`=1 and ubr.report_status=1 and ubr.grade_id = cg.grade_id and ubr.user_id = cgu.user_id and ubr.current_status = 1) as record_num,
+        cgu.grade_id,
+        cg.class_start_time,
+        cg.class_end_time,
+        cg.class_status,
+        cg.status,
+        cg.learning_status,
+        cgu.period_status,
+        cg.learning_time_start,
+        cgu.learn_status,
+        cg.interface_account_id,
+        cg.official_learning_url,
+        cg.interface_push_id,
+        cgu.official_status,
+        cgu.period_plush,
+        cgu.order_goods_id,
+        cg.official_name
+        FROM
+        class_grade_user cgu
+        LEFT JOIN class_grade cg on cgu.grade_id = cg.grade_id
+        LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id
+        WHERE
+        1=1 and cgu.tenant_id = #{tenantId}
+          and cg.tenant_id = #{tenantId}
+          and cgg.tenant_id = #{tenantId}
+        <if test="gradeId != null and gradeId != ''">
+            and cg.grade_id = #{gradeId}
+        </if>
+        and cg.`status` =1 and cgg.goods_id = #{goodsId} and cgu.change_grade = 0 and cgu.user_id=#{userId}
+        order by cg.create_time desc LIMIT 1
+    </select>
+
 
     <select id="checkCourseHaveStudy" parameterType="Long"  resultType="Long">
         SELECT

+ 4 - 0
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsCourseMapper.xml

@@ -134,4 +134,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             gc.goods_id = #{goods_id} AND c.`status` = 1
         order by gc.sort
     </select>
+
+    <select id="getCourseIdsByGoodsAndTenant" parameterType="map" resultType="java.lang.Long">
+        SELECT course_id FROM goods_course WHERE goods_id = #{goodsId} AND tenant_id = #{tenantId}
+    </select>
 </mapper>

+ 41 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

@@ -298,6 +298,47 @@
         </if>
     </select>
 
+    <select id="listSubjectTenant" parameterType="com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo"
+            resultMap="SubjectStudyRecordVoResult">
+        SELECT
+        #{userId} as user_id,
+        r.subject_id,
+        r.course_id,
+        r.course_name,
+        (SELECT subject_name FROM course_subject s where s.id = r.subject_id) as subject_name,
+        (CASE WHEN (SELECT COUNT(id) FROM course_menu m where m.course_id = r.course_id and m.type in (1,2,3))> 0 THEN
+        '1' ELSE '0' END) as begin_status,
+        (SELECT COUNT(id) FROM course_menu m where m.course_id = r.course_id and m.type in (1)) as module_num,
+        (SELECT COUNT(id)+(SELECT COUNT(p.id) FROM course_module_chapter p LEFT JOIN course_menu m on m.menu_id =
+        p.module_id where m.course_id = r.course_id and m.type in (1)) FROM course_menu m where m.course_id = r.course_id
+        and m.type in (2)) as chapter_num,
+        (SELECT COUNT(id)+(SELECT COUNT(n.id) FROM course_chapter_section n LEFT JOIN course_module_chapter p on
+        n.chapter_id = p.chapter_id LEFT JOIN course_menu m on m.menu_id = p.module_id where m.course_id = r.course_id
+        and m.type in (1))+(SELECT COUNT(n.id) FROM course_chapter_section n LEFT JOIN course_menu m on m.menu_id =
+        n.chapter_id where m.course_id = r.course_id and m.type in (2)) FROM course_menu m where m.course_id =
+        r.course_id and m.type in (3)) as section_num,
+        (select COUNT(DISTINCT course_id,module_id,chapter_id,section_id) FROM user_study_record c where 1=1
+        AND c.course_id = r.course_id
+        and c.current_status=1
+        <if test="gradeId != null and gradeId !=''">
+            and c.grade_id=#{gradeId}
+        </if>
+        <if test="orderGoodsId != null and orderGoodsId !=''">
+            and c.order_goods_id=#{orderGoodsId}
+        </if>
+        and c.user_id=#{userId} and c.status = 1 and c.goods_id = #{goodsId}) as record_num
+        FROM
+        course r
+        LEFT JOIN goods_course c ON c.course_id = r.course_id
+        where 1=1 and r.tenant_id = #{tenantId} and c.tenant_id = #{tenantId}
+        <if test="goodsId != null and goodsId !=''">
+            and c.goods_id =#{goodsId}
+        </if>
+        <if test="courseId != null and courseId !=''">
+            and c.course_id =#{courseId}
+        </if>
+    </select>
+
     <select id="listExamRecord" parameterType="com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo"
             resultMap="SectionStudyRecordVoResult">
         SELECT (SELECT COUNT(m.id) FROM course_menu_exam m LEFT JOIN goods_course c on m.course_id=c.course_id LEFT JOIN