Pārlūkot izejas kodu

fix 同步公共课程

he2802 2 gadi atpakaļ
vecāks
revīzija
f583463a2f
19 mainītis faili ar 290 papildinājumiem un 5 dzēšanām
  1. 8 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserStudyRecordController.java
  2. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/UserPeriodAddBo.java
  3. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/UserPeriodEditBo.java
  4. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/domain/UserPeriod.java
  5. 10 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/UserPeriodServiceImpl.java
  6. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderGoodsAddBo.java
  7. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderGoodsEditBo.java
  8. 6 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderGoodsQueryBo.java
  9. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoods.java
  10. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderGoodsMapper.java
  11. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderGoodsService.java
  12. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java
  13. 9 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderGoodsVo.java
  14. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserStudyRecordMapper.java
  15. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserStudyRecordService.java
  16. 127 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java
  17. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/grade/UserPeriodMapper.xml
  18. 24 0
      zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml
  19. 67 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

+ 8 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserStudyRecordController.java

@@ -197,4 +197,12 @@ public class UserStudyRecordController extends BaseController {
         bo.setUserId(loginUser.getUser().getUserId());
         return AjaxResult.success(iUserStudyRecordService.queryLiveLast(bo));
     }
+
+    @ApiOperation("继教七大员公共课程同步")
+    @GetMapping("/syncSevenPublicClass")
+    public AjaxResult<Integer> syncSevenPublicClass(UserStudyRecordQueryBo bo){
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return AjaxResult.success(iUserStudyRecordService.syncSevenPublicClass(bo.getOrderGoodsId(),bo.getUserId()));
+    }
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/UserPeriodAddBo.java

@@ -51,4 +51,7 @@ public class UserPeriodAddBo {
     /** 班级ID */
     @ApiModelProperty("班级ID")
     private Long gradeId;
+    /** 订单商品ID */
+    @ApiModelProperty("订单商品ID")
+    private Long orderGoodsId;
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/UserPeriodEditBo.java

@@ -82,4 +82,5 @@ public class UserPeriodEditBo {
     @ApiModelProperty("打回操作平台 1自有系统 2老系统")
     private Integer rollBackPlat;
 
+
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/domain/UserPeriod.java

@@ -50,4 +50,6 @@ private static final long serialVersionUID=1L;
     private Long chapterId;
     /** 班级ID */
     private Long gradeId;
+    /** 订单商品ID */
+    private Long orderGoodsId;
 }

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/UserPeriodServiceImpl.java

@@ -457,6 +457,16 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
             classGradeUserQueryBo.setUserId(bo.getUserId());
             classGradeUserQueryBo.setGradeId(bo.getGradeId());
             classGradeUserQueryBo.setGoodsId(bo.getGoodsId());
+
+            ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getUserId,bo.getUserId()).eq(ClassGradeUser::getGradeId,bo.getGradeId()).last("limit 1"));
+            if(Validator.isNotEmpty(gradeUser)){
+                OrderGoods newOrderGoods = iOrderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderGoodsId, gradeUser.getOrderGoodsId()));
+                if(newOrderGoods.getSevenClassStatus()==1||newOrderGoods.getSevenClassStatus()==2){
+                    newOrderGoods.setSevenClassStatus(3);
+                    newOrderGoods.setUpdateTime(DateUtils.getNowTime());
+                    iOrderGoodsService.updateById(newOrderGoods);
+                }
+            }
             periodPass(classGradeUserQueryBo);
             //发送消息
             bo.setStatus(1);

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderGoodsAddBo.java

@@ -90,4 +90,10 @@ public class OrderGoodsAddBo {
     /** 七大员继教商品年份 */
     @ApiModelProperty("七大员继教商品年份")
     private String sevenYear;
+    /** 七大员公共课版本号 */
+    @ApiModelProperty("七大员公共课版本号")
+    private Integer sevenClassVersion;
+    /** 0 未学习 1学习中 2已学完  3已审核 4待重修 */
+    @ApiModelProperty("0 未学习 1学习中 2已学完  3已审核 4待重修")
+    private Integer sevenClassStatus;
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderGoodsEditBo.java

@@ -107,4 +107,10 @@ public class OrderGoodsEditBo {
     /** 关闭原因 */
     @ApiModelProperty("关闭原因")
     private String closeReason;
+    /** 七大员公共课版本号 */
+    @ApiModelProperty("七大员公共课版本号")
+    private Integer sevenClassVersion;
+    /** 0 未学习 1学习中 2已学完  3已审核 4待重修 */
+    @ApiModelProperty("0 未学习 1学习中 2已学完  3已审核 4待重修")
+    private Integer sevenClassStatus;
 }

+ 6 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderGoodsQueryBo.java

@@ -103,5 +103,10 @@ public class OrderGoodsQueryBo extends BaseEntity {
 	private Integer rebuyOrderGoodsId;
 	@ApiModelProperty("商品类型 1视频2题库 3面授 4服务 5组合")
 	private Integer goodsType;
-
+	/** 七大员公共课版本号 */
+	@ApiModelProperty("七大员公共课版本号")
+	private Integer sevenClassVersion;
+	/** 0 未学习 1学习中 2已学完  3已审核 4待重修 */
+	@ApiModelProperty("0 未学习 1学习中 2已学完  3已审核 4待重修")
+	private Integer sevenClassStatus;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoods.java

@@ -96,4 +96,8 @@ private static final long serialVersionUID=1L;
     private BigDecimal divideMoney;
     /** 七大员商品年份 */
     private String sevenYear;
+    /** 七大员公共课版本号 */
+    private Integer sevenClassVersion;
+    /** 0 未学习 1学习中 2已学完  3已审核 4待重修 */
+    private Integer sevenClassStatus;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderGoodsMapper.java

@@ -68,4 +68,6 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
     String getBusinessById(@Param("orderGoodsId") Long orderGoodsId);
 
     List<OrderGoods> getApplyOrderGoods(@Param("goodsIds")List<Long> goodsIds,@Param("userId") Long userId);
+
+    OrderGoods getSevenLastOne(@Param("projectId")Integer projectId,@Param("sevenYear")String sevenYear,@Param("userId")Long userId);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderGoodsService.java

@@ -118,4 +118,6 @@ public interface IOrderGoodsService extends IService<OrderGoods> {
     String getBusinessById(Long orderGoodsId);
 
     List<OrderGoods> getApplyOrderGoods(List<Long> goodsIds, Long userId);
+
+    OrderGoods getSevenLastOne(Integer projectId,String sevenYear,Long userId);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java

@@ -724,6 +724,11 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
         return baseMapper.getApplyOrderGoods(goodsIds,userId);
     }
 
+    @Override
+    public OrderGoods getSevenLastOne(Integer projectId,String sevenYear,Long userId) {
+        return baseMapper.getSevenLastOne(projectId,sevenYear,userId);
+    }
+
     private boolean checkUnique(Long GoodsId,Long UserId) {
         ShoppingCart info = iShoppingCartService.getOne(new LambdaQueryWrapper<ShoppingCart>()
                 .eq(ShoppingCart::getUserId,UserId).eq(ShoppingCart::getGoodsId,GoodsId).last("limit 1"));

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderGoodsVo.java

@@ -346,4 +346,13 @@ public class OrderGoodsVo {
 
 	@ApiModelProperty("是否可以预约标识:1未参加考试 2已参加考试 3考试成绩未通过")
 	private Integer subscribeSign;
+
+	/** 七大员公共课版本号 */
+	@Excel(name = "七大员公共课版本号")
+	@ApiModelProperty("七大员公共课版本号")
+	private Integer sevenClassVersion;
+	/** 0 未学习 1学习中 2已学完  3已审核 4待重修 */
+	@Excel(name = "0 未学习 1学习中 2已学完  3已审核 4待重修")
+	@ApiModelProperty("0 未学习 1学习中 2已学完  3已审核 4待重修")
+	private Integer sevenClassStatus;
 }

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

@@ -6,6 +6,7 @@ import com.zhongzheng.modules.course.bo.CourseSectionDetailBo;
 import com.zhongzheng.modules.course.bo.CourseSectionDetailVo;
 import com.zhongzheng.modules.course.bo.CourseStatementBo;
 import com.zhongzheng.modules.course.bo.CourseStatementVo;
+import com.zhongzheng.modules.grade.domain.UserPeriod;
 import com.zhongzheng.modules.grade.domain.UserPeriodStatus;
 import com.zhongzheng.modules.grade.vo.ClassPeriodVo;
 import com.zhongzheng.modules.grade.vo.UserPeriodStatusVo;
@@ -109,4 +110,8 @@ public interface UserStudyRecordMapper extends BaseMapper<UserStudyRecord> {
 
     @InterceptorIgnore(tenantLine = "true")
     UserStudyRecord getStudyRecord(@Param("userId") Long userId,@Param("gradeId") Long gradeId,@Param("sort") String sort);
+
+    UserStudyRecord getSevenStudyRecord(@Param("orderGoodsId") Long orderGoodsId,@Param("gradeId") Long gradeId);
+
+    UserPeriod selectSevenUserPeriod(UserStudyRecord bo);
 }

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

@@ -142,4 +142,6 @@ public interface IUserStudyRecordService extends IService<UserStudyRecord> {
 	List<UserWatchStatisticsVo> getUserWatchStatistics(CourseSectionDetailBo bo);
 
     UserStudyRecord getStudyRecord(Long userId, Long gradeId, String asc);
+
+	Integer syncSevenPublicClass(Long orderGoodsId,Long userId);
 }

+ 127 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -17,10 +17,7 @@ import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.common.utils.ip.IpUtils;
 import com.zhongzheng.modules.course.bo.*;
-import com.zhongzheng.modules.course.domain.CourseBusiness;
-import com.zhongzheng.modules.course.domain.CourseMenuExam;
-import com.zhongzheng.modules.course.domain.CoursePhotoLog;
-import com.zhongzheng.modules.course.domain.CourseSection;
+import com.zhongzheng.modules.course.domain.*;
 import com.zhongzheng.modules.course.mapper.CourseChapterSectionMapper;
 import com.zhongzheng.modules.course.service.*;
 import com.zhongzheng.modules.course.vo.CourseChapterSectionVo;
@@ -28,6 +25,7 @@ import com.zhongzheng.modules.course.vo.CourseSectionVo;
 import com.zhongzheng.modules.course.vo.CourseVo;
 import com.zhongzheng.modules.goods.bo.GoodsCourseQueryBo;
 import com.zhongzheng.modules.goods.domain.Goods;
+import com.zhongzheng.modules.goods.domain.GoodsCourse;
 import com.zhongzheng.modules.goods.service.IGoodsCourseService;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
@@ -48,6 +46,8 @@ import com.zhongzheng.modules.inform.service.IInformRemindService;
 import com.zhongzheng.modules.inform.service.IInformUserService;
 import com.zhongzheng.modules.inform.vo.InformRemindBusinessVo;
 import com.zhongzheng.modules.inform.vo.InformRemindVo;
+import com.zhongzheng.modules.order.domain.OrderGoods;
+import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.polyv.bo.PolyvLiveQueryBo;
 import com.zhongzheng.modules.polyv.service.IPolyvLiveService;
@@ -158,6 +158,12 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
     @Autowired
     private IGoodsCourseService iGoodsCourseService;
 
+    @Autowired
+    private IOrderGoodsService iOrderGoodsService;
+
+    @Autowired
+    private ICourseMenuService iCourseMenuService;
+
     @Override
     public UserStudyRecordVo queryById(Long recordId) {
         UserStudyRecord db = this.baseMapper.selectById(recordId);
@@ -280,6 +286,10 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
         lqw.eq(bo.getStudyDuration() != null, UserStudyRecord::getStudyDuration, bo.getStudyDuration());
         lqw.eq(bo.getStartTime() != null, UserStudyRecord::getStartTime, bo.getStartTime());
         lqw.eq(bo.getEndTime() != null, UserStudyRecord::getEndTime, bo.getEndTime());
+        lqw.eq(bo.getOrderGoodsId() != null, UserStudyRecord::getOrderGoodsId, bo.getOrderGoodsId());
+        lqw.eq(bo.getGradeId() != null, UserStudyRecord::getGradeId, bo.getGradeId());
+        lqw.eq(bo.getChapterId() != null, UserStudyRecord::getChapterId, bo.getChapterId());
+        lqw.eq(bo.getCurrentStatus() != null, UserStudyRecord::getCurrentStatus, bo.getCurrentStatus());
         return entity2Vo(this.list(lqw));
     }
 
@@ -1208,6 +1218,115 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
         return baseMapper.getStudyRecord(userId, gradeId, asc);
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Integer syncSevenPublicClass(Long orderGoodsId,Long userId) {
+        if(Validator.isEmpty(orderGoodsId)||Validator.isEmpty(userId)){
+            throw new CustomException("参数错误");
+        }
+        OrderGoods newOrderGoods = iOrderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderGoodsId, orderGoodsId));
+        if(newOrderGoods.getSevenClassStatus()==1||newOrderGoods.getSevenClassStatus()==2||newOrderGoods.getSevenClassStatus()==3){
+            return 0;
+        }
+        Goods goods = iGoodsService.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getGoodsId, newOrderGoods.getGoodsId()));
+        String fullName;
+        CourseBusinessQueryBo queryBusinessBo = new CourseBusinessQueryBo();
+        queryBusinessBo.setId(goods.getBusinessId());
+        fullName = iCourseBusinessService.queryFullName(queryBusinessBo);
+        if(!fullName.contains("继续教育")||!fullName.contains("施工现场专业人员")){
+            return 0;
+        }
+        if(Validator.isEmpty(newOrderGoods.getSevenYear())){
+            return 0;
+        }
+        OrderGoods copyOrderGoods = iOrderGoodsService.getSevenLastOne(goods.getProjectId(),newOrderGoods.getSevenYear(),userId);
+        if(Validator.isEmpty(copyOrderGoods)){
+            newOrderGoods.setSevenClassVersion(newOrderGoods.getSevenClassVersion()+1);
+            newOrderGoods.setSevenClassStatus(1);
+            newOrderGoods.setUpdateTime(DateUtils.getNowTime());
+            iOrderGoodsService.updateById(newOrderGoods);
+            return 1;
+        }
+        UserStudyRecord userStudyRecord = baseMapper.getSevenStudyRecord(copyOrderGoods.getOrderGoodsId(),copyOrderGoods.getGradeId());
+        if(Validator.isEmpty(userStudyRecord)){
+            throw new CustomException("公共章学习数据错误");
+        }
+        LambdaQueryWrapper<GoodsCourse> lqwCourse = Wrappers.lambdaQuery();
+        lqwCourse.eq(GoodsCourse::getGoodsId, goods.getGoodsId());;
+        List<GoodsCourse> courseList = iGoodsCourseService.list(lqwCourse);
+        Long courseId = null;
+        for(GoodsCourse course : courseList){
+            CourseMenu courseMenu = iCourseMenuService.getOne(new LambdaQueryWrapper<CourseMenu>().eq(CourseMenu::getCourseId, course.getCourseId())
+                    .eq(CourseMenu::getType, 2).eq(CourseMenu::getMenuId, userStudyRecord.getChapterId()).eq(CourseMenu::getParentId, 0));
+            if(Validator.isNotEmpty(courseMenu)){
+                courseId = course.getCourseId();
+            }
+        }
+        if(Validator.isEmpty(courseId)){
+            throw new CustomException("课程定位错误");
+        }
+        LambdaQueryWrapper<UserStudyRecord> lqw = Wrappers.lambdaQuery();
+        lqw.eq(UserStudyRecord::getOrderGoodsId, userStudyRecord.getOrderGoodsId());
+        lqw.eq(UserStudyRecord::getGradeId, userStudyRecord.getGradeId());
+        lqw.eq(UserStudyRecord::getChapterId, userStudyRecord.getChapterId());
+        lqw.eq(UserStudyRecord::getCurrentStatus, 1);
+        List<UserStudyRecord> list = this.list(lqw);
+        for(UserStudyRecord vo : list){
+            UserStudyRecord copyVo = BeanUtil.toBean(vo, UserStudyRecord.class);
+            copyVo.setOrderGoodsId(newOrderGoods.getOrderGoodsId());
+            copyVo.setGradeId(newOrderGoods.getGradeId());
+            copyVo.setCourseId(courseId);
+            copyVo.setRecordId(null);
+            this.save(copyVo);
+            Long periodId = null;
+            UserPeriod copyUserPeriod = baseMapper.selectSevenUserPeriod(copyVo);
+            UserPeriodStatus copyUserPeriodStatus;
+            UserPeriod userPeriod = baseMapper.selectSevenUserPeriod(vo);
+            if(Validator.isEmpty(userPeriod)){
+                throw new CustomException("学时数据错误");
+            }
+            UserPeriodStatus userPeriodStatus = iUserPeriodStatusService.getOne(new LambdaQueryWrapper<UserPeriodStatus>()
+                    .eq(UserPeriodStatus::getPeriodId, userPeriod.getId())
+                    .eq(UserPeriodStatus::getStatus, 1)
+                    .eq(UserPeriodStatus::getPeriodStatus, 1));
+            if(Validator.isEmpty(copyUserPeriod)){
+                copyUserPeriod = BeanUtil.toBean(userPeriod, UserPeriod.class);
+                copyUserPeriod.setOrderGoodsId(newOrderGoods.getOrderGoodsId());
+                copyUserPeriod.setGradeId(newOrderGoods.getGradeId());
+                copyUserPeriod.setCourseId(courseId);
+                copyUserPeriod.setId(null);
+                iUserPeriodService.save(copyUserPeriod);
+
+                copyUserPeriodStatus = BeanUtil.toBean(userPeriodStatus, UserPeriodStatus.class);
+                copyUserPeriodStatus.setPeriodId(copyUserPeriod.getId());
+                copyUserPeriodStatus.setId(null);
+                iUserPeriodStatusService.save(copyUserPeriodStatus);
+            }else{
+                copyUserPeriodStatus = iUserPeriodStatusService.getOne(new LambdaQueryWrapper<UserPeriodStatus>()
+                        .eq(UserPeriodStatus::getPeriodId, copyUserPeriod.getId())
+                        .eq(UserPeriodStatus::getStatus, 1)
+                        .eq(UserPeriodStatus::getPeriodStatus, 1));
+            }
+            LambdaQueryWrapper<UserStudyRecordPhoto> lqwPhoto = Wrappers.lambdaQuery();
+            lqwPhoto.eq(UserStudyRecordPhoto::getPeriodId, userPeriodStatus.getId());
+            lqwPhoto.eq(UserStudyRecordPhoto::getRecordId, vo.getRecordId());
+            lqwPhoto.eq(UserStudyRecordPhoto::getStatus, 1);
+            List<UserStudyRecordPhoto> listPhoto = userStudyRecordPhotoService.list(lqwPhoto);
+            for(UserStudyRecordPhoto photo : listPhoto){
+                UserStudyRecordPhoto copyPhoto = BeanUtil.toBean(photo, UserStudyRecordPhoto.class);
+                copyPhoto.setRecordId(copyVo.getRecordId());
+                copyPhoto.setPeriodId(copyUserPeriodStatus.getId());
+                copyPhoto.setId(null);
+                userStudyRecordPhotoService.save(copyPhoto);
+            }
+        }
+        newOrderGoods.setSevenClassVersion(copyOrderGoods.getSevenClassVersion());
+        newOrderGoods.setSevenClassStatus(2);
+        newOrderGoods.setUpdateTime(DateUtils.getNowTime());
+        iOrderGoodsService.updateById(newOrderGoods);
+        return 2;
+    }
+
 
     /**
      * 获取最后一次看完的节
@@ -1264,6 +1383,7 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
             userPeriod.setModuleId(entity.getModuleId());
             userPeriod.setChapterId(entity.getChapterId());
             userPeriod.setGradeId(entity.getGradeId());
+            userPeriod.setOrderGoodsId(entity.getOrderGoodsId());
             iUserPeriodService.save(userPeriod);
             periodId = userPeriod.getId();
             UserPeriodStatus userPeriodStatusAddBo = new UserPeriodStatus();
@@ -1566,4 +1686,7 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
     public SectionStudyRecordVo listExamRecord(SubjectStudyRecordQueryBo bo) {
         return this.baseMapper.listExamRecord(bo);
     }
+
+
+
 }

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/UserPeriodMapper.xml

@@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime" column="update_time"/>
         <result property="moduleId" column="module_id"/>
         <result property="chapterId" column="chapter_id"/>
+        <result property="orderGoodsId" column="order_goods_id"/>
     </resultMap>
 
     <select id="checkGoodsChange" parameterType="com.zhongzheng.modules.grade.bo.UserPeriodQueryBo" resultType="Long">

+ 24 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml

@@ -30,6 +30,8 @@
         <result property="serviceStartTime" column="service_start_time"/>
         <result property="serviceEndTime" column="service_end_time"/>
         <result property="closeReason" column="close_reason"/>
+        <result property="sevenClassVersion" column="seven_class_version"/>
+        <result property="sevenClassStatus" column="seven_class_status"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.order.vo.OrderGoodsVo" id="OrderGoodsResultVo">
@@ -109,6 +111,8 @@
         <result property="classHours" column="class_hours"/>
         <result property="courseNum" column="course_num"/>
         <result property="idCard" column="id_card" typeHandler="com.zhongzheng.common.type.EncryptHandler"/>
+        <result property="sevenClassVersion" column="seven_class_version"/>
+        <result property="sevenClassStatus" column="seven_class_status"/>
     </resultMap>
 
     <select id="selectListBybo" parameterType="com.zhongzheng.modules.order.bo.OrderGoodsQueryBo"
@@ -870,4 +874,24 @@
 	        AND o.`status` = 1
 	        AND o.user_id = #{userId}
     </select>
+
+    <select id="getSevenLastOne" parameterType="map" resultType="com.zhongzheng.modules.order.domain.OrderGoods">
+        SELECT
+        og.*
+        FROM
+        order_goods og
+        LEFT JOIN goods g ON og.goods_id = g.goods_id
+        LEFT JOIN `order` o ON og.order_sn = o.order_sn
+        WHERE
+        og.`status` = 1
+        AND og.refund_status != 2
+        AND o.user_id = #{userId}
+        AND og.pay_status IN ( 2, 3, 4 )
+        AND g.project_id = #{projectId}
+        AND og.seven_class_status = 3
+        AND og.seven_year = #{sevenYear}
+        AND og.seven_class_version > 0
+        ORDER BY og.seven_class_version DESC
+        LIMIT 1
+    </select>
 </mapper>

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

@@ -1742,4 +1742,71 @@
     <select id="getStudyRecord" parameterType="map" resultType="com.zhongzheng.modules.user.domain.UserStudyRecord">
         SELECT * FROM user_study_record WHERE user_id = #{userId} AND grade_id = #{gradeId} ORDER BY create_time ${sort} LIMIT 1
     </select>
+
+
+    <select id="getSevenStudyRecord" parameterType="map" resultType="com.zhongzheng.modules.user.domain.UserStudyRecord">
+        SELECT usr.* FROM user_study_record usr LEFT JOIN course_chapter cc ON usr.chapter_id = cc.chapter_id
+        WHERE usr.order_goods_id = #{orderGoodsId} AND usr.grade_id = #{gradeId} AND cc.common_sign = 1 AND usr.current_status = 1 AND usr.`status` = 1  LIMIT 1
+    </select>
+
+    <select id="selectSevenUserPeriod" parameterType="com.zhongzheng.modules.user.domain.UserBankRecord" resultType="com.zhongzheng.modules.grade.domain.UserPeriod">
+        SELECT
+        up.*
+        FROM
+        user_period up
+        WHERE
+        1 =1
+        <choose>
+            <when test="chapterId != null and chapterId !=''">
+                AND up.chapter_id = #{chapterId}
+            </when>
+            <otherwise>
+                AND up.chapter_id = 0
+            </otherwise>
+        </choose>
+        <choose>
+            <when test="sectionId != null and sectionId !=''">
+                AND up.section_id = #{sectionId}
+            </when>
+            <otherwise>
+                AND up.section_id = 0
+            </otherwise>
+        </choose>
+        <choose>
+            <when test="moduleId != null and moduleId !=''">
+                AND up.module_id = #{moduleId}
+            </when>
+            <otherwise>
+                AND up.module_id = 0
+            </otherwise>
+        </choose>
+        <choose>
+            <when test="courseId != null and courseId !=''">
+                AND up.course_id = #{courseId}
+            </when>
+            <otherwise>
+                AND up.course_id = 0
+            </otherwise>
+        </choose>
+        <choose>
+            <when test="gradeId != null and gradeId !=''">
+                AND up.grade_id = #{gradeId}
+            </when>
+            <otherwise>
+                AND up.grade_id = 0
+            </otherwise>
+        </choose>
+        <choose>
+            <when test="goodsId != null and goodsId !=''">
+                AND up.goods_id = #{goodsId}
+            </when>
+            <otherwise>
+                AND up.goods_id = 0
+            </otherwise>
+        </choose>
+        <if test="orderGoodsId != null and orderGoodsId != '' ">
+            AND up.order_goods_id =  #{orderGoodsId}
+        </if>
+        AND up.user_id = #{userId}
+    </select>
 </mapper>