he2802 vor 1 Jahr
Ursprung
Commit
ae3d8ae883
40 geänderte Dateien mit 467 neuen und 208 gelöschten Zeilen
  1. 22 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java
  2. 2 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserSubscribeController.java
  3. 9 0
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysTenantServiceImpl.java
  4. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseMapper.java
  5. 4 6
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java
  6. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplyServiceImpl.java
  7. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsAddBo.java
  8. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsEditBo.java
  9. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/domain/Goods.java
  10. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsMapper.java
  11. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java
  12. 12 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsUserVo.java
  13. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsVo.java
  14. 28 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/MakeGoodsVo.java
  15. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeAddBo.java
  16. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeEditBo.java
  17. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/SevenPushAuthAddBo.java
  18. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/domain/ClassGrade.java
  19. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/domain/ClassGradeUser.java
  20. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeUserMapper.java
  21. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeUserService.java
  22. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java
  23. 33 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java
  24. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassGradeUserVo.java
  25. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassGradeVo.java
  26. 23 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/UserPeriodTotalVo.java
  27. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderBusinessConfigServiceImpl.java
  28. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java
  29. 13 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderGoodsVo.java
  30. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java
  31. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/bo/SysTenantQueryBo.java
  32. 210 193
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java
  33. 2 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeExport.java
  34. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeImport.java
  35. 2 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeTrainExport.java
  36. 21 1
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml
  37. 5 0
      zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml
  38. 3 1
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml
  39. 19 1
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml
  40. 2 0
      zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml

+ 22 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -266,6 +266,28 @@ public class ClassGradeController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询学时学员记录列表
+     */
+    @ApiOperation("查询学员学时列表")
+    @PreAuthorize("@ss.hasPermi('grade:user:list')")
+    @GetMapping("/listUserPeriod/manage")
+    public TableDataInfo<ClassPeriodStudentVo> listUserPeriodManage(ClassGradeUserQueryBo bo) {
+        startPage();
+        List<ClassPeriodStudentVo> list = iClassGradeUserService.listUserPeriodManage(bo);
+        return getDataTable(list);
+    }
+
+
+    /**
+     * 查询学时学员记录统计
+     */
+    @ApiOperation("查询学时学员记录统计")
+    @GetMapping("/listUserPeriod/total")
+    public AjaxResult<UserPeriodTotalVo> listUserPeriodTotal(ClassGradeUserQueryBo bo) {
+        return AjaxResult.success(iClassGradeUserService.listUserPeriodTotal(bo));
+    }
+
     /**
      * 查询学时学员记录列表(新)
      */

+ 2 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserSubscribeController.java

@@ -269,6 +269,7 @@ public class UserSubscribeController extends BaseController {
             export.setUserName("李小米");
             export.setIdCard("44086921356895125365");
             export.setApplyName(bo.getApplyName());
+            export.setStudentType("是");
             export.setApplySiteAddress(bo.getApplySiteAddress());
             if (ObjectUtils.isNotNull(siteTime)){
                 List<ExamApplySiteTimeTwoAddBo> siteTimeTwoAddBos = JSONArray.parseArray(siteTime.getSiteTime(), ExamApplySiteTimeTwoAddBo.class);
@@ -301,7 +302,7 @@ public class UserSubscribeController extends BaseController {
             export.setApplySiteTime("9:00-12:00");
             export.setCode("SP6415428604");
             export.setGoodsName("一级建造师继续教育(必修课+机电工程)");
-
+            export.setStudentType("是");
             export.setApplySiteAddressTrain(bo.getApplySiteAddressTrain());
             if (ObjectUtils.isNotNull(siteTime)){
                 List<ExamApplySiteTimeTwoAddBo> siteTimeTwoAddBos = JSONArray.parseArray(siteTime.getSiteTime(), ExamApplySiteTimeTwoAddBo.class);

+ 9 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysTenantServiceImpl.java

@@ -21,6 +21,7 @@ import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.system.bo.*;
+import com.zhongzheng.modules.system.domain.SysOldOrg;
 import com.zhongzheng.modules.system.domain.SysRoleMenu;
 import com.zhongzheng.modules.system.domain.SysTenant;
 import com.zhongzheng.modules.system.mapper.SysRoleMenuMapper;
@@ -74,6 +75,8 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
 
     @Autowired
     private ISysDictTypeService iSysDictTypeService;
+    @Autowired
+    private ISysOldOrgService iSysOldOrgService;
 
     @Autowired
     @Lazy
@@ -92,7 +95,13 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
 
     @Override
     public List<SysTenantVo> queryList(SysTenantQueryBo bo) {
+
         LambdaQueryWrapper<SysTenant> lqw = Wrappers.lambdaQuery();
+        List<SysOldOrg> sysOldOrgs = iSysOldOrgService.list(new LambdaQueryWrapper<SysOldOrg>().eq(SysOldOrg::getStatus, 1).eq(SysOldOrg::getOperationType, bo.getOperationType()));
+        if (ObjectUtils.isNotEmpty(bo.getOperationType())){
+            List<Long> tenantIds = sysOldOrgs.stream().map(SysOldOrg::getTenantId).collect(Collectors.toList());
+            lqw.in(ObjectUtils.isNotEmpty(tenantIds),SysTenant::getTenantId,tenantIds);
+        }
         lqw.ne(SysTenant::getStatus, -1);
         lqw.like(StrUtil.isNotBlank(bo.getTenantName()), SysTenant::getTenantName, bo.getTenantName());
         lqw.eq(ObjectUtils.isNotNull(bo.getTenantid()),SysTenant::getTenantId, bo.getTenantid());

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

@@ -17,6 +17,7 @@ import com.zhongzheng.modules.order.bo.SpecialQuestionBo;
 import com.zhongzheng.modules.order.vo.SpecialQuestionVo;
 import com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
+import com.zhongzheng.modules.user.domain.UserSubscribe;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -83,4 +84,5 @@ public interface CourseMapper extends BaseMapper<Course> {
 
     Long getStudyCourseNum(SubjectStudyRecordQueryBo subjectStudyRecordQueryBo);
 
+    UserSubscribe getUserSub(@Param("userId") Long userId,@Param("goodsId") Long goodsId);
 }

+ 4 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java

@@ -782,8 +782,11 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
             goodsUserVo.setLearnStatus(classGradeVo.getLearnStatus());
             goodsUserVo.setPeriodPlush(classGradeVo.getPeriodPlush());
             goodsUserVo.setOfficialName(classGradeVo.getOfficialName());
+            goodsUserVo.setPeriodTime(classGradeVo.getPeriodTime());
             goodsUserVo.setPeriodWaitTime(classGradeVo.getPeriodWaitTime());
             goodsUserVo.setOpenQuestion(0);
+            goodsUserVo.setSevenPushReason(classGradeVo.getSevenPushReason());
+            goodsUserVo.setSevenPushDate(classGradeVo.getSevenPushDate());
             Long secLong = 0L;
             Long studyLong = 0L;
             SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
@@ -812,12 +815,7 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
                 if (ObjectUtils.isNotNull(classGradeVo.getPeriodStatus())
                         && classGradeVo.getPeriodStatus() == 1
                         && (DateUtils.getNowTime() >= goodsUserVo.getServiceStartTime() && DateUtils.getNowTime() <= goodsUserVo.getServiceEndTime())){
-                    UserSubscribe userSubscribe = iUserSubscribeService.getOne(new LambdaQueryWrapper<UserSubscribe>()
-                            .eq(UserSubscribe::getUserId, bo.getUserId())
-                            .eq(UserSubscribe::getGoodsId, goodsUserVo.getGoodsId())
-                            .eq(UserSubscribe::getSubscribeStatus, 1)
-                            .orderByDesc(UserSubscribe::getCreateTime)
-                            .last("limit 1"));
+                    UserSubscribe userSubscribe = baseMapper.getUserSub(bo.getUserId(),goodsUserVo.getGoodsId());
                     if (ObjectUtils.isNull(userSubscribe)){
                         goodsUserVo.setSubscribeSign(1);
                     }else if (userSubscribe.getSubscribeStatus() == 1 && ObjectUtils.isNotNull(userSubscribe.getExamStatus())

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplyServiceImpl.java

@@ -1392,7 +1392,7 @@ public class ExamApplyServiceImpl extends ServiceImpl<ExamApplyMapper, ExamApply
             ossRequest.setFile(multipartFile);
             try {
                 String upload = ossService.upload(ossRequest);
-                subscribe.setCertificateUrl(upload);
+                subscribe.setCertificateUrl(ALIYUN_OSS_ENDPOINT+upload);
                 ExamApplyCertificateBo examAp = new ExamApplyCertificateBo();
                 examAp.setCertificateUrl(upload);
                 examAp.setCertificateEndTime(timeTwo);

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsAddBo.java

@@ -221,4 +221,5 @@ public class GoodsAddBo {
     private Integer viewSign;
     @ApiModelProperty("寄件标签:1是 0否")
     private Integer mailSign;
+    private String makeGoodsIds;
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsEditBo.java

@@ -255,4 +255,5 @@ public class GoodsEditBo {
     private Integer viewSign;
     @ApiModelProperty("寄件标签:1是 0否")
     private Integer mailSign;
+    private String makeGoodsIds;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/domain/Goods.java

@@ -188,4 +188,8 @@ private static final long serialVersionUID=1L;
     /** 寄件标签:1是 0否 */
     @TableField(updateStrategy=FieldStrategy.IGNORED)
     private Integer mailSign;
+
+    /** 前培和补考商品关联多个 */
+    @TableField(updateStrategy=FieldStrategy.IGNORED)
+    private String makeGoodsIds;
 }

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

@@ -44,6 +44,8 @@ public interface GoodsMapper extends BaseMapper<Goods> {
 
     Long getRandomQuestionNum(@Param("goodsId")Long goodsId,@Param("examPaperId") Long examPaperId);
 
+    List<MakeGoodsVo> getMakeGoodsList(@Param("makeGoodsIds")String makeGoodsIds);
+
     int queryUpGoods();
 
     List<GoodsVo> selectListToInput(GoodsQueryBo bo);

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -515,6 +515,9 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
 //                goodsVo.setSpecTemplateId(relation.getSpecTemplateId());
 //            }
 //        }
+        if(Validator.isNotEmpty(goodsVo.getMakeGoodsIds())){
+            goodsVo.setMakeGoodsVoList(this.baseMapper.getMakeGoodsList(goodsVo.getMakeGoodsIds()));
+        }
         //多规格下的价格区间
         if (ObjectUtils.isNotNull(goodsVo.getSpecTemplateId())) {
             List<GoodsSpecAttributeRelation> list = goodsSpecAttributeRelationService

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsUserVo.java

@@ -454,4 +454,16 @@ public class GoodsUserVo {
 
 	@ApiModelProperty("标签Id")
 	private Long signId;
+
+	private String sevenPushReason;
+
+	private String sevenPushDate;
+
+	/** 专业名称 */
+	@ApiModelProperty("专业名称")
+	@Excel(name = "专业")
+	private String majorName;
+
+	@ApiModelProperty("审核通过时间")
+	private Long periodTime;
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsVo.java

@@ -415,4 +415,9 @@ public class GoodsVo {
 
 	private Long periodWaitTime;
 
+	@ApiModelProperty("前培和补考商品关联多个")
+	private String makeGoodsIds;
+
+	private List<MakeGoodsVo> makeGoodsVoList;
+
 }

+ 28 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/MakeGoodsVo.java

@@ -0,0 +1,28 @@
+package com.zhongzheng.modules.goods.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("补考商品视图对象")
+public class MakeGoodsVo {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 前培和补考商品关联 */
+    @Excel(name = "前培和补考商品关联")
+    @ApiModelProperty("前培和补考商品关联")
+    private Long makeGoodsId;
+
+    /** 前培和补考商品关联 */
+    @Excel(name = "前培和补考商品关联")
+    @ApiModelProperty("前培和补考商品关联商品名")
+    private String makeGoodsName;
+
+    /** 前培和补考商品关联 */
+    @Excel(name = "前培和补考商品关联")
+    @ApiModelProperty("前培和补考商品关联编码")
+    private String makeGoodsCode;
+}

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

@@ -93,4 +93,7 @@ public class ClassGradeAddBo {
     /** 官方学习地址 */
     @ApiModelProperty("官方学习地址")
     private String officialLearningUrl;
+
+    @ApiModelProperty("班级提前截止天数")
+    private Integer pastDueDay;
 }

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

@@ -111,4 +111,7 @@ public class ClassGradeEditBo {
     /** 官方学习地址 */
     @ApiModelProperty("官方学习地址")
     private String officialLearningUrl;
+
+    @ApiModelProperty("班级提前截止天数")
+    private Integer pastDueDay;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/SevenPushAuthAddBo.java

@@ -34,4 +34,6 @@ public class SevenPushAuthAddBo {
 
     @ApiModelProperty("失败原因")
     private String sevenPushReason;
+
+    private String sevenPushDate;
 }

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

@@ -98,4 +98,6 @@ private static final long serialVersionUID=1L;
 
     @TableField(exist = false)
     private Boolean isNewClass;
+
+    private Integer pastDueDay;
 }

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

@@ -88,5 +88,7 @@ private static final long serialVersionUID=1L;
     private Integer sevenPushCheck;
 
     private String sevenPushReason;
+
+    private String sevenPushDate;
 }
 

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

@@ -155,4 +155,6 @@ public interface ClassGradeUserMapper extends BaseMapper<ClassGradeUser> {
 
     @InterceptorIgnore(tenantLine = "true")
     Long getProIdByTenant(@Param("tenantId") Long tenantId,@Param("proName") String proName,@Param("eduId") Long eduId);
+
+    Long listUserPeriodTotal(Integer periodStatus);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeUserService.java

@@ -168,4 +168,9 @@ public interface IClassGradeUserService extends IService<ClassGradeUser> {
     List<ClassPeriodStudentNewVo> listUserPeriodNew(ClassGradeUserQueryBo bo);
 
     List<ClassPeriodStudentVo> listUserVideoRecordNew(ClassGradeUserQueryBo bo);
+
+	List<ClassPeriodStudentVo> listUserPeriodManage(ClassGradeUserQueryBo bo);
+
+	UserPeriodTotalVo listUserPeriodTotal(ClassGradeUserQueryBo bo);
+
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -877,6 +877,9 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         if(Validator.isNotEmpty(entity.getOfficialName())){
             entity.setOfficialName(entity.getOfficialName().trim());
         }
+        if(Validator.isNotEmpty(entity.getPastDueDay())&&entity.getPastDueDay()<10){
+            throw new CustomException("班级提前截止天数错误");
+        }
     }
 
     @Override

+ 33 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -1116,6 +1116,38 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         return classPeriodStudentVos;
     }
 
+    @Override
+    public List<ClassPeriodStudentVo> listUserPeriodManage(ClassGradeUserQueryBo bo) {
+        //查询班级学员信息
+        List<ClassPeriodStudentVo> classPeriodStudentVos = baseMapper.listUserPeriod(bo);
+        //查找学员学习记录
+        for (ClassPeriodStudentVo classPeriodStudentVo : classPeriodStudentVos) {
+            List<Long> timeList = baseMapper.selectStart(classPeriodStudentVo.getUserId(),
+                    classPeriodStudentVo.getGoodsId(), classPeriodStudentVo.getGradeId(),classPeriodStudentVo.getOrderGoodsId());
+            if (!CollectionUtils.isEmpty(timeList)) {
+                //查找开始学习时间
+                classPeriodStudentVo.setStartTime(timeList.get(0));
+            }else{
+                classPeriodStudentVo.setStartTime(baseMapper.selectStartNoPhoto(classPeriodStudentVo.getUserId(),
+                        classPeriodStudentVo.getGoodsId(), classPeriodStudentVo.getGradeId(),classPeriodStudentVo.getOrderGoodsId())
+                );
+            }
+        }
+        return classPeriodStudentVos;
+    }
+
+    @Override
+    public UserPeriodTotalVo listUserPeriodTotal(ClassGradeUserQueryBo bo) {
+        Long firstPeriodNum = baseMapper.listUserPeriodTotal(2);
+        Long recheckNum = baseMapper.listUserPeriodTotal(3);
+        Long noPassNum = baseMapper.listUserPeriodTotal(0);
+        UserPeriodTotalVo totalVo = new UserPeriodTotalVo();
+        totalVo.setFirstPeriodNum(firstPeriodNum);
+        totalVo.setRecheckNum(recheckNum);
+        totalVo.setNoPassNum(noPassNum);
+        return totalVo;
+    }
+
     @Override
     public ClassPeriodStudentVo DecryptOfficialInfo(ClassGradeDecryptQueryBo bo) {
         String pars;
@@ -4068,6 +4100,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         gradeUser.setId(bo.getGradeUserId());
         gradeUser.setSevenPushCheck(bo.getPushStatus()+1);
         gradeUser.setSevenPushReason(bo.getSevenPushReason());
+        gradeUser.setSevenPushDate(bo.getSevenPushDate());
         gradeUser.setUpdateTime(DateUtils.getNowTime());
         return this.baseMapper.updateGradeUser(gradeUser);
     }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassGradeUserVo.java

@@ -178,4 +178,6 @@ public class ClassGradeUserVo {
 	private Integer sevenPushCheck;
 
 	private String sevenPushReason;
+
+	private String sevenPushDate;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassGradeVo.java

@@ -223,4 +223,8 @@ public class ClassGradeVo {
 
 	@ApiModelProperty("审核通过时间")
 	private Long periodTime;
+
+	private String sevenPushDate;
+
+	private Integer pastDueDay;
 }

+ 23 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/UserPeriodTotalVo.java

@@ -0,0 +1,23 @@
+package com.zhongzheng.modules.grade.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2024年05月10日 14:15
+ */
+@Data
+public class UserPeriodTotalVo implements Serializable {
+
+    @ApiModelProperty("初审数量")
+    private Long firstPeriodNum;
+
+    @ApiModelProperty("复审数量")
+    private Long recheckNum;
+
+    @ApiModelProperty("不通过数量")
+    private Long noPassNum;
+}

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderBusinessConfigServiceImpl.java

@@ -3,6 +3,7 @@ package com.zhongzheng.modules.order.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.course.domain.CourseChapter;

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

@@ -662,7 +662,11 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
                 goodsVo.setInterfaceAccountId(classGradeVo.getInterfaceAccountId());
                 goodsVo.setLearnStatus(classGradeVo.getLearnStatus());
                 goodsVo.setPeriodWaitTime(classGradeVo.getPeriodWaitTime());
+                goodsVo.setPeriodTime(classGradeVo.getPeriodTime());
                 goodsVo.setSubscribeSign(0);
+                goodsVo.setSevenPushReason(classGradeVo.getSevenPushReason());
+                goodsVo.setSevenPushDate(classGradeVo.getSevenPushDate());
+                goodsVo.setOfficialStatus(classGradeVo.getOfficialStatus());
                 LambdaQueryWrapper<UserSubscribe> lq = Wrappers.lambdaQuery();
                 lq.eq(UserSubscribe::getOrderGoodsId, goodsVo.getOrderGoodsId());
                 lq.eq(UserSubscribe::getSubscribeStatus, 1);

+ 13 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderGoodsVo.java

@@ -203,7 +203,7 @@ public class OrderGoodsVo {
 	/** 官方信息推送状态 1是 0否 */
 	@Excel(name = "官方信息推送状态 1是 0否")
 	@ApiModelProperty("官方信息推送状态 1是 0否")
-	private Long officialStatus;
+	private Integer officialStatus;
 
 	/** 开班状态 0未开班(预报名) 1开班 */
 	@Excel(name = "开班状态 0未开班(预报名) 1开班")
@@ -386,4 +386,16 @@ public class OrderGoodsVo {
 
 	@ApiModelProperty("失败原因")
 	private String pushFailReason;
+
+	private String sevenPushReason;
+
+	private String sevenPushDate;
+
+	/** 专业名称 */
+	@ApiModelProperty("专业名称")
+	@Excel(name = "专业")
+	private String majorName;
+
+	@ApiModelProperty("审核通过时间")
+	private Long periodTime;
 }

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

@@ -653,7 +653,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 GoodsVo goods = iGoodsService.queryById(goodsVo.getGoodsId());
                 if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goods.getBusinessId())).collect(Collectors.toList()))) {
                     UserVo userVo = iUserService.queryById(goodsVo.getUserId());
-                    int day = DateUtils.dayBetween(DateUtils.getNowTime(),goodsVo.getClassEndTime())-1;
+                    int day = DateUtils.dayBetween(goodsVo.getClassEndTime(),DateUtils.getNowTime())-1;
                     if (informRemindVo.getWayStatus().equals(1)) {
                         InformUserAddBo informUserAddBo = new InformUserAddBo();
                         informUserAddBo.setUserId(goodsVo.getUserId());

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

@@ -123,6 +123,8 @@ public class SysTenantQueryBo extends BaseEntity {
 
 	@ApiModelProperty("后台域名")
 	private String hostAdmin;
+	@ApiModelProperty("运营模式 1代运营 2独立运营")
+	private Long operationType;
 
 
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 210 - 193
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java


+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeExport.java

@@ -56,5 +56,6 @@ public class UserSubscribeExport {
 
 	@Excel(name = "失败原因")
 	private String cause;
-
+	@Excel(name = "是否补考学员(是/否)")
+	private String studentType;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeImport.java

@@ -90,4 +90,6 @@ public class UserSubscribeImport {
 
 	@Excel(name = "失败原因")
 	private String cause;
+	@Excel(name = "是否补考学员(是/否)")
+	private String studentType;
 }

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeTrainExport.java

@@ -61,5 +61,6 @@ public class UserSubscribeTrainExport {
 
 	@Excel(name = "失败原因")
 	private String cause;
-
+	@Excel(name = "是否补考学员(是/否)")
+	private String studentType;
 }

+ 21 - 1
zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml

@@ -227,6 +227,7 @@
         <result property="openGoodsTime" column="open_goods_time"/>
         <result property="oldOrderSn" column="old_order_sn"/>
         <result property="profileChangeStatus" column="profile_change_status"/>
+        <result property="majorName" column="major_name"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.grade.vo.ClassGradeVo" id="ClassGradeVoResult">
@@ -268,6 +269,7 @@
         <result property="officialStatusMsg" column="official_status_msg"/>
         <result property="sevenPushReason" column="seven_push_reason"/>
         <result property="periodTime" column="period_time"/>
+        <result property="sevenPushDate" column="seven_push_date"/>
     </resultMap>
 
 
@@ -556,6 +558,7 @@
         (SELECT cet.education_name FROM  course_education_type cet  where cet.id = g.education_type_id) as education_name,
         (SELECT cet.project_name FROM  course_project_type cet where cet.id = g.project_id) as project_name,
         (SELECT cet.business_name FROM  course_business cet  where cet.id = g.business_id) as business_name,
+        (SELECT m.category_name FROM  major m  where m.id = g.major_id) as major_name,
         (SELECT COUNT(1) FROM goods_course gc where gc.goods_id = g.goods_id) as course_num,
         <if test="querySign == null or querySign == 0">
             (case WHEN (SELECT COUNT(1) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where up.goods_id = g.goods_id AND ups.period_status =1 and ups.`status` =0) >0 then 0 ELSE 1 end) as rebuild_status,
@@ -922,7 +925,8 @@
             cgu.period_wait_time,
             cgu.seven_push_reason,
             cgu.official_status_msg,
-            cgu.period_time
+            cgu.period_time,
+            cgu.seven_push_date
         FROM
             class_grade_user cgu
                 LEFT JOIN class_grade cg on cgu.grade_id = cg.grade_id
@@ -1102,6 +1106,22 @@
           AND goods_id = #{goodsId}
     </select>
 
+    <select id="getUserSub" parameterType="java.lang.Long" resultType="com.zhongzheng.modules.user.domain.UserSubscribe">
+        SELECT
+            us.*
+        FROM
+            user_subscribe us
+                LEFT JOIN exam_apply ea ON us.apply_id = ea.apply_id
+        WHERE
+            us.subscribe_status = 1
+          AND us.user_id = #{userId}
+          AND us.goods_id = #{goodsId}
+          AND ea.`status` = 1
+        ORDER BY
+            us.create_time
+            LIMIT 1
+    </select>
+
     <select id="getOrderGoodsIds" parameterType="com.zhongzheng.modules.course.bo.CourseQueryBo" resultType="java.lang.Long">
         SELECT
             og.order_goods_id

+ 5 - 0
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml

@@ -155,6 +155,7 @@
         <result property="firstChoiceGoods" column="first_choice_goods"/>
         <result property="aliasName" column="alias_name"/>
         <result property="moreCertificateStatus" column="more_certificate_status"/>
+        <result property="makeGoodsIds" column="make_goods_ids"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo" id="ExamNumberGoodsVoResult">
@@ -659,6 +660,10 @@
                                            WHERE goods_id = #{goodsId} AND type = 3), ''))))
     </select>
 
+    <select id="getMakeGoodsList" parameterType="map" resultType="com.zhongzheng.modules.goods.vo.MakeGoodsVo">
+        select g.goods_id as make_goods_id,g.goods_name as make_goods_name,g.code as make_goods_code from goods g where  FIND_IN_SET(g.goods_id,#{makeGoodsIds})
+    </select>
+
     <select id="getRandomQuestionNum" parameterType="map" resultType="Long">
         SELECT count(DISTINCT eq.question_id) question_num
         FROM exam_question eq

+ 3 - 1
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

@@ -25,6 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="interfaceAccountId" column="interface_account_id"/>
         <result property="interfacePeriodId" column="interface_period_id"/>
         <result property="officialLearningUrl" column="official_learning_url"/>
+        <result property="pastDueDay" column="past_due_day"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.grade.vo.ClassGradeVo" id="ClassGradeVoResult">
@@ -60,6 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="projectId" column="project_id"/>
         <result property="goodsId" column="goods_id"/>
         <result property="sevenCode" column="seven_code"/>
+        <result property="pastDueDay" column="past_due_day"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.grade.vo.ClassGradeUserListVo" id="ClassGradeUserListVo">
@@ -308,7 +310,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             AND (#{classStartTime} BETWEEN g.class_start_time and g.class_end_time or #{classEndTime} BETWEEN g.class_start_time and g.class_end_time)
         </if>
         <if test="pastDue != null or pastDue != null ">
-            AND ((unix_timestamp(now())+6*24*3600) &lt; g.class_end_time or g.class_start_time is null)
+            AND ((unix_timestamp(now())+g.past_due_day*24*3600) &lt; g.class_end_time or g.class_start_time is null)
         </if>
         <if test="educationTypeId != null and educationTypeId !='' ">
             AND (

+ 19 - 1
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

@@ -944,6 +944,20 @@
         </if>
     </select>
 
+    <select id="listUserPeriodTotal" parameterType="java.lang.Integer" resultType="java.lang.Long">
+        SELECT
+            COUNT( cgu.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 course_business cb ON g.business_id = cb.id
+        WHERE
+            cgu.`status` = 1
+          AND cb.period_check_sign = 1
+          AND cgu.period_status = #{periodStatus}
+    </select>
+
     <select id="listUserWeekStudyTime" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
             resultType="Long">
         SELECT
@@ -1956,15 +1970,19 @@
             cgu.user_id,
             cgu.order_goods_id,
             cg.class_end_time,
-            og.goods_id
+            og.goods_id,
+            g.goods_name,
+            cg.class_name as grade_name
         FROM
             class_grade_user cgu
                 LEFT JOIN class_grade cg on  cgu.grade_id = cg.grade_id
                 LEFT JOIN order_goods og ON cgu.order_goods_id = og.order_goods_id
+                LEFT JOIN goods g ON g.goods_id = og.goods_id
         where 1=1
           and cg.status = 1
           and cgu.status = 1
           and cgu.user_id = #{userId}
+          and (cgu.period_status = -1 or cgu.period_status = 0)
           AND unix_timestamp(now()) BETWEEN cg.class_end_time-#{startTime} and cg.class_end_time-#{endTime}
     </select>
 

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

@@ -122,6 +122,7 @@
         <result property="mailSign" column="mail_sign"/>
         <result property="profileStatus" column="profile_status"/>
         <result property="profileChangeStatus" column="profile_change_status"/>
+        <result property="majorName" column="major_name"/>
     </resultMap>
 
     <select id="selectListBybo" parameterType="com.zhongzheng.modules.order.bo.OrderGoodsQueryBo"
@@ -482,6 +483,7 @@
         og.order_goods_id,
         og.seven_year as order_year,
         og.grade_id,
+        (SELECT m.category_name FROM  major m  where m.id = g.major_id) as major_name,
         (SELECT
         COUNT( m.id )
         FROM

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.