yangdamao 2 年之前
父節點
當前提交
2964f62390

+ 11 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserBankRecordController.java

@@ -133,4 +133,15 @@ public class UserBankRecordController extends BaseController {
         return AjaxResult.success(iUserBankRecordService.getUserExamDoNum(bo));
     }
 
+
+    /**
+     * 做题记录校验是否及格
+     */
+    @ApiOperation("做题校验是否及格")
+    @GetMapping("/check/bank/record")
+    public AjaxResult<Boolean> checkBankRecord(UserBankRecordQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return AjaxResult.success(iUserBankRecordService.checkBankRecord(bo));
+    }
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseHandoutsMapper.java

@@ -1,9 +1,11 @@
 package com.zhongzheng.modules.course.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.zhongzheng.modules.course.bo.CourseHandoutsQueryBo;
 import com.zhongzheng.modules.course.domain.CourseHandouts;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.course.vo.CourseHandoutsBusinessVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.Collection;
 import java.util.List;
@@ -19,4 +21,7 @@ public interface CourseHandoutsMapper extends BaseMapper<CourseHandouts> {
     List<CourseHandoutsBusinessVo> selectEntity(Long handoutsId);
 
     Collection<CourseHandouts> queryList(CourseHandoutsQueryBo bo);
+
+    @InterceptorIgnore(tenantLine = "true")
+    CourseHandouts getHandoutsByTenant(@Param("encoder") String encoder,@Param("newTenantId") Long newTenantId);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseHandoutsService.java

@@ -49,4 +49,6 @@ public interface ICourseHandoutsService extends IService<CourseHandouts> {
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    CourseHandouts getHandoutsByTenant(String encoder, Long newTenantId);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseHandoutsServiceImpl.java

@@ -166,4 +166,9 @@ public class CourseHandoutsServiceImpl extends ServiceImpl<CourseHandoutsMapper,
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public CourseHandouts getHandoutsByTenant(String encoder, Long newTenantId) {
+        return baseMapper.getHandoutsByTenant(encoder,newTenantId);
+    }
 }

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

@@ -105,5 +105,7 @@ public interface IGoodsService extends IService<Goods> {
 
     boolean goodsBatchCopyTenant(GoodsBatchCopyTenantBo bo);
 
+	boolean goodsBatchCopyIncrementTenant(GoodsBatchCopyTenantBo bo);
+
 	boolean goodsBatchCopyDisposeTenant();
 }

+ 134 - 116
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -1059,8 +1059,11 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
     @Override
     public String getGoodsStudyUrl(GoodsStudyUrlBo bo) {
         String url = "";
+        //中正学堂PC域名和H5域名 https://zzyxt.gdzzkj.net/  h.gdzzkj.net
         String domain = "http://192.168.1.222:6002/";
         String domainH5 = "https://h.xyyxt.net";
+//        String domain = "http://zzyxt.gdzzkj.net/";
+//        String domainH5 = "https://h.gdzzkj.net";
         GoodsVo goods = baseMapper.queryGoodsByIdTenant(bo.getGoodsId(), bo.getTenantId());
         if (ObjectUtils.isNull(goods)) {
             throw new CustomException("商品不存在!");
@@ -1098,7 +1101,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
             //H5
             if (goods.getGoodsType() == 2) {
                 //题库
-                url = String.format("%s/pages/questionBank/index&skipPort=%s", domainH5, nowTime);
+                url = String.format("%s/pages/questionBank/index?skipPort=%s", domainH5, nowTime);
             } else if (goods.getGoodsType() == 6) {
                 //直播
                 url = String.format("%s/pages3/live/detail?orderGoodsId=%s&goodsId=%s&gradeId=0&courseId=%s&skipPort=%s",
@@ -1117,121 +1120,136 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
         return url;
     }
 
-//    @Override
-//    public boolean goodsBatchCopyTenant(GoodsBatchCopyTenantBo bo) {
-//        //获取商品信息
-//        List<Goods> goodsList = list(new LambdaQueryWrapper<Goods>()
-//                .in(CollectionUtils.isNotEmpty(bo.getGoodsIds()), Goods::getGoodsId, bo.getGoodsIds()));
-//        if (CollectionUtils.isEmpty(goodsList)){
-//            return true;
-//        }
-//        Long tenantId = 867735392558919680L;
-//        Long newTenantId = bo.getTenantId();
-//        List<Goods> oldGoodsList = goodsList.stream().map(x -> BeanUtil.toBean(x, Goods.class)).collect(Collectors.toList());
-//        for (Goods goods : goodsList) {
-//            goods.setGoodsId(null);
-//            goods.setTeacherId(newTenantId);
-//            //供应方ID
-//            if (ObjectUtil.isNotNull(goods.getSupplyId())){
-//                PaySupply supply = iPaySupplyService.getById(goods.getSupplyId());
-//                if (ObjectUtils.isNotNull(supply)){
-//                    //新机构是否存在
-//                    PaySupply newSupply = iPaySupplyService.getSupplyByTenant(supply.getSupplyName(),newTenantId);
-//                    if (ObjectUtil.isNotNull(newSupply)){
-//                        goods.setSupplyId(newSupply.getSupplyId());
-//                    }else {
-//                        supply.setSupplyId(null);
-//                        supply.setTenantId(newTenantId);
-//                        iPaySupplyService.save(supply);
-//                        goods.setSupplyId(supply.getSupplyId());
-//                    }
-//                }
-//            }
-//
-//            //教育类型
-//            if (ObjectUtil.isNotNull(goods.getEducationTypeId())){
-//                CourseEducationType type = iCourseEducationTypeService.getById(goods.getEducationTypeId());
-//                if (ObjectUtil.isNotNull(type)){
-//                    CourseEducationType newType = iCourseEducationTypeService.getEducationTypeBytenant(type.getEncoder(),newTenantId);
-//                    if (ObjectUtil.isNotNull(newType)){
-//                        goods.setEducationTypeId(newType.getId());
-//                    }else {
-//                        type.setId(null);
-//                        type.setTenantId(newTenantId);
-//                        iCourseEducationTypeService.save(type);
-//                        goods.setEducationTypeId(type.getId());
-//                    }
-//                }
-//            }
-//
-//            //业务层次
-//            if (ObjectUtil.isNotNull(goods.getBusinessId())){
-//                CourseBusiness business = iCourseBusinessService.getById(goods.getBusinessId());
-//                if (ObjectUtil.isNotNull(business)){
-//                    CourseBusiness newBusiness = iCourseBusinessService.getBusinessByTenant(business.getEncoder(),newTenantId);
-//                    if (ObjectUtil.isNotNull(newBusiness)){
-//                        goods.setBusinessId(newBusiness.getId());
-//                    }else {
-//                        business.setId(null);
-//                        business.setTenantId(newTenantId);
-//                        iCourseBusinessService.save(business);
-//                        goods.setBusinessId(business.getId());
-//                    }
-//
-//                }
-//            }
-//
-//            //所属院校
-//            if (ObjectUtil.isNotNull(goods.getSchoolId())){
-//                School school = iSchoolService.getById(goods.getSchoolId());
-//                if (ObjectUtil.isNotNull(school)){
-//                    School newSchool = iSchoolService.getSchoolByTenant(school.getEncoder(),newTenantId);
-//                    if (ObjectUtil.isNotNull(newSchool)){
-//                        goods.setBusinessId(newSchool.getId());
-//                    }else {
-//                        school.setId(null);
-//                        school.setTenantId(newTenantId);
-//                        iSchoolService.save(school);
-//                        goods.setBusinessId(school.getId());
-//                    }
-//                }
-//            }
-//
-//            //所属专业
-//            if (ObjectUtil.isNotNull(goods.getMajorId())){
-//                Major major = iMajorService.getById(goods.getMajorId());
-//                if (ObjectUtil.isNotNull(major)){
-//                    Major newMajor = iMajorService.getMajorByTenant(major.getEncoder(),newTenantId);
-//                    if (ObjectUtil.isNotNull(newMajor)){
-//                        goods.setMajorId(newMajor.getId());
-//                    }else {
-//                        major.setId(null);
-//                        major.setTenantId(newTenantId);
-//                        iMajorService.save(major);
-//                        goods.setBusinessId(major.getId());
-//                    }
-//                }
-//            }
-//
-//            //项目
-//            if (ObjectUtil.isNotNull(goods.getProjectId())){
-//                CourseProjectType project = iCourseProjectTypeService.getById(goods.getProjectId());
-//                if (ObjectUtil.isNotNull(project)){
-//                    CourseProjectType newProject = iCourseProjectTypeService.getProjectByTenant(project.getEncoder(),newTenantId);
-//                    if (ObjectUtil.isNotNull(newProject)){
-//                        goods.setMajorId(newProject.getId());
-//                    }else {
-//                        project.setId(null);
-//                        project.setTenantId(newTenantId);
-//                        iCourseProjectTypeService.save(project);
-//                        goods.setBusinessId(project.getId());
-//                    }
-//                }
-//            }
-//
-//        }
-//        return false;
-//    }
+    @Override
+    public boolean goodsBatchCopyIncrementTenant(GoodsBatchCopyTenantBo bo) {
+        //获取商品信息
+        List<Goods> goodsList = list(new LambdaQueryWrapper<Goods>()
+                .in(CollectionUtils.isNotEmpty(bo.getGoodsIds()), Goods::getGoodsId, bo.getGoodsIds()));
+        if (CollectionUtils.isEmpty(goodsList)){
+            return true;
+        }
+        Long tenantId = 867735392558919680L;
+        Long newTenantId = bo.getTenantId();
+        List<Goods> oldGoodsList = goodsList.stream().map(x -> BeanUtil.toBean(x, Goods.class)).collect(Collectors.toList());
+        for (Goods goods : goodsList) {
+            goods.setGoodsId(null);
+            goods.setTeacherId(newTenantId);
+            //供应方ID
+            if (ObjectUtil.isNotNull(goods.getSupplyId())){
+                PaySupply supply = iPaySupplyService.getById(goods.getSupplyId());
+                if (ObjectUtils.isNotNull(supply)){
+                    //新机构是否存在
+                    PaySupply newSupply = iPaySupplyService.getSupplyByTenant(supply.getSupplyName(),newTenantId);
+                    if (ObjectUtil.isNotNull(newSupply)){
+                        goods.setSupplyId(newSupply.getSupplyId());
+                    }else {
+                        supply.setSupplyId(null);
+                        supply.setTenantId(newTenantId);
+                        iPaySupplyService.save(supply);
+                        goods.setSupplyId(supply.getSupplyId());
+                    }
+                }
+            }
+
+            //教育类型
+            if (ObjectUtil.isNotNull(goods.getEducationTypeId())){
+                CourseEducationType type = iCourseEducationTypeService.getById(goods.getEducationTypeId());
+                if (ObjectUtil.isNotNull(type)){
+                    CourseEducationType newType = iCourseEducationTypeService.getEducationTypeBytenant(type.getEncoder(),newTenantId);
+                    if (ObjectUtil.isNotNull(newType)){
+                        goods.setEducationTypeId(newType.getId());
+                    }else {
+                        type.setId(null);
+                        type.setTenantId(newTenantId);
+                        iCourseEducationTypeService.save(type);
+                        goods.setEducationTypeId(type.getId());
+                    }
+                }
+            }
+
+            //业务层次
+            if (ObjectUtil.isNotNull(goods.getBusinessId())){
+                CourseBusiness business = iCourseBusinessService.getById(goods.getBusinessId());
+                if (ObjectUtil.isNotNull(business)){
+                    CourseBusiness newBusiness = iCourseBusinessService.getBusinessByTenant(business.getEncoder(),newTenantId);
+                    if (ObjectUtil.isNotNull(newBusiness)){
+                        goods.setBusinessId(newBusiness.getId());
+                    }else {
+                        business.setId(null);
+                        business.setTenantId(newTenantId);
+                        iCourseBusinessService.save(business);
+                        goods.setBusinessId(business.getId());
+                    }
+
+                }
+            }
+
+            //所属院校
+            if (ObjectUtil.isNotNull(goods.getSchoolId())){
+                School school = iSchoolService.getById(goods.getSchoolId());
+                if (ObjectUtil.isNotNull(school)){
+                    School newSchool = iSchoolService.getSchoolByTenant(school.getEncoder(),newTenantId);
+                    if (ObjectUtil.isNotNull(newSchool)){
+                        goods.setSchoolId(newSchool.getId());
+                    }else {
+                        school.setId(null);
+                        school.setTenantId(newTenantId);
+                        iSchoolService.save(school);
+                        goods.setSchoolId(school.getId());
+                    }
+                }
+            }
+
+            //所属专业
+            if (ObjectUtil.isNotNull(goods.getMajorId())){
+                Major major = iMajorService.getById(goods.getMajorId());
+                if (ObjectUtil.isNotNull(major)){
+                    Major newMajor = iMajorService.getMajorByTenant(major.getEncoder(),newTenantId);
+                    if (ObjectUtil.isNotNull(newMajor)){
+                        goods.setMajorId(newMajor.getId());
+                    }else {
+                        major.setId(null);
+                        major.setTenantId(newTenantId);
+                        iMajorService.save(major);
+                        goods.setMajorId(major.getId());
+                    }
+                }
+            }
+
+            //项目
+            if (ObjectUtil.isNotNull(goods.getProjectId())){
+                CourseProjectType project = iCourseProjectTypeService.getById(goods.getProjectId());
+                if (ObjectUtil.isNotNull(project)){
+                    CourseProjectType newProject = iCourseProjectTypeService.getProjectByTenant(project.getEncoder(),newTenantId);
+                    if (ObjectUtil.isNotNull(newProject)){
+                        goods.setProjectId(newProject.getId().intValue());
+                    }else {
+                        project.setId(null);
+                        project.setTenantId(newTenantId);
+                        iCourseProjectTypeService.save(project);
+                        goods.setProjectId(project.getId().intValue());
+                    }
+                }
+            }
+
+            //讲义
+            if (ObjectUtil.isNotNull(goods.getHandoutsId())){
+                CourseHandouts courseHandouts = iCourseHandoutsService.getById(goods.getHandoutsId());
+                if (ObjectUtil.isNotNull(courseHandouts)){
+                    CourseHandouts newCourseHandouts = iCourseHandoutsService.getHandoutsByTenant(courseHandouts.getEncoder(),newTenantId);
+                    if (ObjectUtil.isNotNull(newCourseHandouts)){
+                        goods.setHandoutsId(newCourseHandouts.getHandoutsId());
+                    }else {
+                        newCourseHandouts.setHandoutsId(null);
+                        newCourseHandouts.setTenantId(newTenantId);
+                        iCourseHandoutsService.save(newCourseHandouts);
+                        goods.setHandoutsId(courseHandouts.getHandoutsId());
+                    }
+                }
+            }
+        }
+        return false;
+    }
 
     @Override
     @Transactional(rollbackFor = Exception.class)

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java

@@ -56,7 +56,9 @@ import com.zhongzheng.modules.exam.vo.ExamUserApplyVo;
 import com.zhongzheng.modules.goods.bo.GoodsCourseQueryBo;
 import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
 import com.zhongzheng.modules.goods.domain.Goods;
+import com.zhongzheng.modules.goods.domain.GoodsExamTime;
 import com.zhongzheng.modules.goods.service.IGoodsCourseService;
+import com.zhongzheng.modules.goods.service.IGoodsExamTimeService;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.BankGoodsExamVo;
 import com.zhongzheng.modules.goods.vo.GoodsCourseVo;
@@ -286,6 +288,8 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     @Autowired
     private IWxLoginService iWxLoginService;
 
+    @Autowired
+    private IGoodsExamTimeService iGoodsExamTimeService;
 
     @Autowired
     private ICourseService iCourseService;
@@ -837,6 +841,14 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         //需求提醒的商品集合
         List<ExamTodayRecordBo> recordBos = new ArrayList<>();
         for (UserExamSubscription subscription : list) {
+            //当前商品今天是否有设置试卷
+            List<GoodsExamTime> examTimes = iGoodsExamTimeService.list(new LambdaQueryWrapper<GoodsExamTime>()
+                    .eq(GoodsExamTime::getGoodsId, subscription.getGoodsId())
+                    .eq(GoodsExamTime::getExamTime, DateUtils.getTodayZeroTime()));
+            if (CollectionUtils.isEmpty(examTimes)){
+                //该商品当天没有设置每日一练试卷
+                continue;
+            }
             //该商品下是否有每日一练试卷
             List<BankGoodsExamVo> examVos = QuestionMapper.getBankGoodsExamList(subscription.getGoodsId());
             if (examVos.stream().filter(x -> StringUtils.isNotBlank(x.getPaperName())).anyMatch(item -> item.getPaperName().equals("每日一练"))){

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserBankRecordMapper.java

@@ -21,4 +21,6 @@ public interface UserBankRecordMapper extends BaseMapper<UserBankRecord> {
     List<UserBankRecordVo> getUserBankList(UserBankRecordQueryBo bo);
 
     UserBankRecord getUserLastExam(UserBankRecordQueryBo bo);
+
+    List<Integer> checkBankRecord(UserBankRecordQueryBo bo);
 }

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

@@ -62,4 +62,6 @@ public interface IUserBankRecordService extends IService<UserBankRecord> {
 	 * @return java.util.List<com.zhongzheng.modules.user.vo.UserBankRecordVo>
 	 */
     List<UserBankRecordVo> getUserBankList(UserBankRecordQueryBo bo);
+
+    Boolean checkBankRecord(UserBankRecordQueryBo bo);
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserBankRecordServiceImpl.java

@@ -305,6 +305,13 @@ public class UserBankRecordServiceImpl extends ServiceImpl<UserBankRecordMapper,
         return userBankList;
     }
 
+    @Override
+    public Boolean checkBankRecord(UserBankRecordQueryBo bo) {
+        List<Integer> counts = baseMapper.checkBankRecord(bo);
+        long count = counts.stream().filter(x -> ObjectUtils.isNotNull(x) && x > 0).count();
+        return ObjectUtils.isNotNull(count) && count > 0;
+    }
+
 
     //获得今天时间的0点
     public static int getTimesmorning(){

+ 4 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseHandoutsMapper.xml

@@ -95,4 +95,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY s.update_time desc
     </select>
 
+    <select id="getHandoutsByTenant" parameterType="map"  resultType="com.zhongzheng.modules.course.domain.CourseHandouts">
+        SELECT * from course_handouts where encoder = #{encoder} and tenant_id = #{newTenantId}
+    </select>
+
 </mapper>

+ 27 - 1
zhongzheng-system/src/main/resources/mapper/modules/user/UserBankRecordMapper.xml

@@ -193,5 +193,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             ubr.update_time DESC
         LIMIT 1
     </select>
-
+    <select id="checkBankRecord" parameterType="com.zhongzheng.modules.user.bo.UserBankRecordQueryBo" resultType="java.lang.Integer">
+        SELECT
+        ubr.report_status
+        FROM
+        user_bank_record ubr
+        WHERE
+        1 =1
+        <if test="chapterId != null and chapterId != ''">
+            AND ubr.chapter_id = #{chapterId}
+        </if>
+        <if test="moduleId != null and moduleId != ''">
+            AND ubr.module_id = #{moduleId}
+        </if>
+        <if test="courseId != null and courseId != ''">
+            AND ubr.course_id = #{courseId}
+        </if>
+        <if test="gradeId != null and gradeId != ''">
+            AND ubr.grade_id = #{gradeId}
+        </if>
+        <if test="goodsId != null and goodsId != ''">
+            AND ubr.goods_id = #{goodsId}
+        </if>
+        <if test="examId != null and examId != ''">
+            AND ubr.exam_id = #{examId}
+        </if>
+        AND ubr.user_id = #{userId}
+    </select>
 </mapper>