Переглянути джерело

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/DangAnController.java
yangdamao 1 рік тому
батько
коміт
378a21e640
21 змінених файлів з 157 додано та 29 видалено
  1. 3 0
      run-prod.sh
  2. 4 0
      zhongzheng-admin-saas/src/main/resources/application-prod.yml
  3. 12 7
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java
  4. 14 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/DangAnController.java
  5. 4 0
      zhongzheng-admin/src/main/resources/application-prod.yml
  6. 4 0
      zhongzheng-api/src/main/resources/application-prod.yml
  7. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionServiceImpl.java
  8. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/ICertificateTpService.java
  9. 41 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/CertificateTpServiceImpl.java
  10. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/domain/Goods.java
  11. 30 7
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java
  12. 9 9
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java
  13. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserCertificateAddBo.java
  14. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserCertificateQueryBo.java
  15. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserCertificate.java
  16. 9 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java
  17. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/activity/ActivityRecommendMapper.xml
  18. 1 1
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml
  19. 2 2
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml
  20. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml
  21. 6 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserCertificateMapper.xml

+ 3 - 0
run-prod.sh

@@ -34,3 +34,6 @@ docker run \
 -v /data/nginx/conf.d:/data/nginx/conf.d \
 -d ${group_admin_name}/${app_admin_name}:${app_admin_version}
 echo '----start container admin----'
+
+
+

+ 4 - 0
zhongzheng-admin-saas/src/main/resources/application-prod.yml

@@ -171,6 +171,8 @@ oldOrder:
 oldSys:
     host: https://www.xyyxt.net
     goods: http://www.xyyxt.net/system/BussinessApi/NewYxtLogin
+    question: http://192.168.1.121:8057/WordData/GetMeasureList
+    questionDetail: http://192.168.1.121:8057/WordData/GetTopicList
 
 invoice:
     host: https://ptapi.gdzzkj.net/sys/common/openMplatform/log
@@ -187,6 +189,8 @@ exam:
     subscribeSaveExam: http://39.108.7.155:9099/cd/subscribe/save/exam
     subscribeUpdateExam: http://39.108.7.155:9099/cd/subscribe/update/exam
     subscribeAddExamNum: http://39.108.7.155:9099/cd/subscribe/add/num
+    question: http://120.79.166.78:19013/common/question/getMeasureList
+    questionDetail: http://120.79.166.78:19013/common/question/getTopicList
 
 shared:
     statistics: http://www.xyyxt.net/WitSystem/BussinessApi/HighSeasData

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

@@ -92,7 +92,10 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
@@ -167,16 +170,12 @@ public class CommonController extends BaseController {
     @Autowired
     private ICertificateTpService iCertificateTpService;
 
-    @Autowired
-    private IZsBankService iZsBankService;
-
     @Autowired
     private ClassGradeUserMapper classGradeUserMapper;
 
     @Autowired
     private IMajorService iMajorService;
-
-
+    private IZsBankService iZsBankService;
     /**
      * 通用下载请求
      *
@@ -865,6 +864,12 @@ public class CommonController extends BaseController {
     @PostMapping("/common/question/getTopicList")
     public AjaxResult<String> getTopicList(@RequestBody String topParam) {
         String aa = iQuestionService.getTopicList(topParam);
-        return AjaxResult.success("操作成功",aa);
+        return AjaxResult.success("操作成功", aa);
+    }
+
+    @PostMapping("/common/free/makeBatchCertificatePhoto")
+    public AjaxResult makeBatchCertificatePhoto(@RequestBody ClassGradeUserQueryBo bo) {
+        iCertificateTpService.makeBatchCertificatePhoto(bo);
+        return AjaxResult.success();
     }
 }

+ 14 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/DangAnController.java

@@ -8,12 +8,15 @@ import com.zhongzheng.modules.grade.vo.ClassPeriodStudentVo;
 import com.zhongzheng.modules.order.bo.OrderQueryBo;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderListVo;
+import com.zhongzheng.modules.user.bo.UserCertificateQueryBo;
 import com.zhongzheng.modules.user.bo.UserQueryBo;
 import com.zhongzheng.modules.user.bo.UserUsbRecordBo;
 import com.zhongzheng.modules.user.bo.UserVisitLogQueryBo;
+import com.zhongzheng.modules.user.service.IUserCertificateService;
 import com.zhongzheng.modules.user.service.IUserStudyRecordService;
 import com.zhongzheng.modules.user.service.IUserVisitLogService;
 import com.zhongzheng.modules.user.vo.ExamStudyRecordVo;
+import com.zhongzheng.modules.user.vo.UserCertificateVo;
 import com.zhongzheng.modules.user.vo.UserUsbRecordVo;
 import com.zhongzheng.modules.user.vo.UserVisitLogVo;
 import io.swagger.annotations.Api;
@@ -45,6 +48,8 @@ public class DangAnController extends BaseController {
 
     private final IUserStudyRecordService iUserStudyRecordService;
 
+    private final IUserCertificateService iUserCertificateService;
+
     @ApiOperation("查询档案网课列表")
     @PreAuthorize("@ss.hasPermi('grade:user:list')")
     @GetMapping("/listVideoUserPeriod")
@@ -110,4 +115,13 @@ public class DangAnController extends BaseController {
         return getDataTable(list);
     }
 
+    @ApiOperation("查询档案证书列表")
+    @PreAuthorize("@ss.hasPermi('grade:student:list')")
+    @GetMapping("/listUserCertificate")
+    public TableDataInfo<UserCertificateVo> listUserCertificate(UserCertificateQueryBo bo) {
+        startPage();
+        List<UserCertificateVo> list = iUserCertificateService.selectList(bo);
+        return getDataTable(list);
+    }
+
 }

+ 4 - 0
zhongzheng-admin/src/main/resources/application-prod.yml

@@ -171,6 +171,8 @@ oldOrder:
 oldSys:
     host: http://www.xyyxt.net
     goods: http://www.xyyxt.net/system/BussinessApi/NewYxtLogin
+    question: http://192.168.1.121:8057/WordData/GetMeasureList
+    questionDetail: http://192.168.1.121:8057/WordData/GetTopicList
 
 invoice:
     host: https://ptapi.gdzzkj.net/sys/common/openMplatform/log
@@ -187,6 +189,8 @@ exam:
     subscribeSaveExam: http://39.108.7.155:9099/cd/subscribe/save/exam
     subscribeUpdateExam: http://39.108.7.155:9099/cd/subscribe/update/exam
     subscribeAddExamNum: http://39.108.7.155:9099/cd/subscribe/add/num
+    question: http://120.79.166.78:19013/common/question/getMeasureList
+    questionDetail: http://120.79.166.78:19013/common/question/getTopicList
 
 shared:
     statistics: http://www.xyyxt.net/WitSystem/BussinessApi/HighSeasData

+ 4 - 0
zhongzheng-api/src/main/resources/application-prod.yml

@@ -183,6 +183,8 @@ oldOrder:
 oldSys:
     host: http://test.jqbao.net
     goods: http://www.xyyxt.net/system/BussinessApi/NewYxtLogin
+    question: http://192.168.1.121:8057/WordData/GetMeasureList
+    questionDetail: http://192.168.1.121:8057/WordData/GetTopicList
 
 invoice:
     host: https://ptapi.gdzzkj.net/sys/common/openMplatform/log
@@ -200,6 +202,8 @@ exam:
     subscribeSaveExam: http://39.108.7.155:9099/cd/subscribe/save/exam
     subscribeUpdateExam: http://39.108.7.155:9099/cd/subscribe/update/exam
     subscribeAddExamNum: http://39.108.7.155:9099/cd/subscribe/add/num
+    question: http://120.79.166.78:19013/common/question/getMeasureList
+    questionDetail: http://120.79.166.78:19013/common/question/getTopicList
 
 shared:
     statistics: http://www.xyyxt.net/WitSystem/BussinessApi/HighSeasData

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionServiceImpl.java

@@ -3297,8 +3297,10 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
                         if (ObjectUtils.isNotNull(item2.getIsTopic()) && item2.getIsTopic()){
                             //获取题目内容
                             String topParam = String.format("MeasureModelId=%s",item2.getMeasureModelId());
+                            log.error(topParam);
                             String respone2 = HttpUtils.sendPostJsonHeader(EXAM_QUESTION_DETAIL, topParam,map);
                             JSONObject jsonObject = JSONObject.parseObject(respone2);
+                            log.error(respone2);
                             List<ExternalQuestionDetailVo> questionDetailVos = JSONArray.parseArray(jsonObject.get("data").toString(), ExternalQuestionDetailVo.class);
 
                             if (CollectionUtils.isNotEmpty(questionDetailVos)){

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/ICertificateTpService.java

@@ -45,6 +45,8 @@ public interface ICertificateTpService extends IService<CertificateTp> {
 
 	String makeCertificatePhoto(ClassGradeUserQueryBo bo);
 
+	String makeBatchCertificatePhoto(ClassGradeUserQueryBo bo);
+
 	List<CertificateTpVo> selectListByBo(CertificateTpQueryBo bo);
 
 	/**

+ 41 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/CertificateTpServiceImpl.java

@@ -4,6 +4,7 @@ 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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -43,14 +44,21 @@ import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.domain.ClassGradeUser;
 import com.zhongzheng.modules.grade.service.IClassGradeUserService;
+import com.zhongzheng.modules.grade.service.impl.ClassGradeServiceImpl;
+import com.zhongzheng.modules.order.domain.OrderGoods;
+import com.zhongzheng.modules.order.service.IOrderGoodsService;
+import com.zhongzheng.modules.system.domain.SysOldOrg;
 import com.zhongzheng.modules.user.bo.UserCertificateAddBo;
 import com.zhongzheng.modules.user.bo.UserStudyRecordQueryBo;
+import com.zhongzheng.modules.user.domain.UserCertificate;
 import com.zhongzheng.modules.user.service.IUserCertificateService;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.service.IUserStudyRecordService;
 import com.zhongzheng.modules.user.vo.UserStudyRecordVo;
 import com.zhongzheng.modules.user.vo.UserVo;
 import org.apache.commons.lang3.ArrayUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -76,6 +84,8 @@ import java.util.stream.Collectors;
 @Service
 public class CertificateTpServiceImpl extends ServiceImpl<CertificateTpMapper, CertificateTp> implements ICertificateTpService {
 
+    private static Logger log = LoggerFactory.getLogger(CertificateTpServiceImpl.class);
+
     @Autowired
     private IGoodsService iGoodsService;
     @Autowired
@@ -103,6 +113,10 @@ public class CertificateTpServiceImpl extends ServiceImpl<CertificateTpMapper, C
 
     @Autowired
     private ICourseModuleService iCourseModuleService;
+
+    @Autowired
+    private IOrderGoodsService iOrderGoodsService;
+
     @Autowired
     private IMajorService iMajorService;
     @Value("${certificate.host}")
@@ -179,6 +193,14 @@ public class CertificateTpServiceImpl extends ServiceImpl<CertificateTpMapper, C
         if(Validator.isEmpty(bo.getUserId())||Validator.isEmpty(bo.getGradeId())||Validator.isEmpty(bo.getGoodsId())){
             throw new CustomException("数据错误");
         }
+        UserCertificate userCertificate = iUserCertificateService.getOne(new LambdaQueryWrapper<UserCertificate>()
+                .eq(UserCertificate::getUserId, bo.getUserId())
+                .eq(UserCertificate::getGradeId,bo.getGradeId()).last("limit 1"));
+        if(Validator.isNotEmpty(userCertificate)){
+            System.out.println("已存在证书");
+            log.info("已存在证书" + bo.getUserId()+"-"+bo.getGradeId(), "");
+            return null;
+        }
         bo.setPageSize(null);
         bo.setPageNum(null);
         GoodsVo goodsVo = iGoodsService.selectDetail(bo.getGoodsId());
@@ -260,9 +282,26 @@ public class CertificateTpServiceImpl extends ServiceImpl<CertificateTpMapper, C
                     }
                 }
             }
-
         }
+        return null;
+    }
 
+    @Override
+    public String makeBatchCertificatePhoto(ClassGradeUserQueryBo bo) {
+        List<ClassGradeUser> list = iClassGradeUserService.list(new LambdaQueryWrapper<ClassGradeUser>()
+                .eq(ClassGradeUser::getPeriodStatus, 1).ge(ClassGradeUser::getCreateTime,bo.getClassStartTime()));
+        for(ClassGradeUser gradeUser : list){
+            ClassGradeUserQueryBo queryBo = new ClassGradeUserQueryBo();
+            queryBo.setGradeId(gradeUser.getGradeId());
+            queryBo.setUserId(gradeUser.getUserId());
+            queryBo.setOrderGoodsId(gradeUser.getOrderGoodsId());
+            OrderGoods orderGoods = iOrderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>()
+                    .eq(OrderGoods::getOrderGoodsId, gradeUser.getOrderGoodsId()));
+            queryBo.setGoodsId(orderGoods.getGoodsId());
+            System.out.println("生成证书");
+            System.out.println(JSON.toJSONString(queryBo));
+            makeCertificatePhoto(queryBo);
+        }
         return null;
     }
 
@@ -614,6 +653,7 @@ public class CertificateTpServiceImpl extends ServiceImpl<CertificateTpMapper, C
         addBo.setMoreCertificateStatus(goodsVo.getMoreCertificateStatus());
         addBo.setModuleId(moduleId);
         addBo.setPublicClassHours(goodsVo.getPublicClassHours().setScale( 0, BigDecimal.ROUND_HALF_UP ));
+        addBo.setOrderGoodsId(bo.getOrderGoodsId());
         return addBo;
     }
     private String getCertificateCode(){

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

@@ -132,10 +132,13 @@ private static final long serialVersionUID=1L;
     /** 科目ID,拼接 */
     private String subjectIds;
     /** 证书类型ID */
+    @TableField(updateStrategy=FieldStrategy.IGNORED)
     private Long certificateTypeId;
     /** 证书ID */
+    @TableField(updateStrategy=FieldStrategy.IGNORED)
     private Long certificateId;
     /** 证书模板ID */
+    @TableField(updateStrategy=FieldStrategy.IGNORED)
     private Long certificateTpId;
     /** 商品划线价格 */
     private BigDecimal linePrice;

+ 30 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -957,6 +957,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         for (ClassGrade classGrade : classGradeList) {
             classGradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>()
                     .eq(ClassGradeUser::getGradeId, classGrade.getGradeId())
+                    .eq(ClassGradeUser::getChangeGrade, 0)
                     .eq(ClassGradeUser::getStatus, 1)
                     .eq(ClassGradeUser::getUserId, user.getUserId()).last("limit 1"));
             if (Validator.isNotEmpty(classGradeUser)) {
@@ -1063,6 +1064,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             LambdaQueryWrapper<ClassGradeUser> lqw = Wrappers.lambdaQuery();
             lqw.eq(ClassGradeUser::getGradeId, classGrade.getGradeId());
             lqw.eq(ClassGradeUser::getUserId,  user.getUserId());
+            lqw.eq(ClassGradeUser::getChangeGrade, 0);
             lqw.eq(ClassGradeUser::getStatus,  1);
             List<ClassGradeUser> gradeUserList = iClassGradeUserService.list(lqw);
             for (ClassGradeUser gu : gradeUserList) {
@@ -1990,9 +1992,10 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             classPeriodStudentVo.setAllStatus(changePeriodStatus(classPeriodStudentVo.getPeriodStatus()));
 
             //    classPeriodStudentVo.setWaitRebuildNum(classPeriodUserVos.getCheat()+classPeriodUserVos.getExamCheat());
-            if (!CollectionUtils.isEmpty(baseMapper.selectStart(classPeriodStudentVo.getUserId(), classPeriodStudentVo.getGoodsId(), classPeriodStudentVo.getGradeId(),classPeriodStudentVo.getOrderGoodsId()))) {
+            List<Long> timeList = baseMapper.selectStart(classPeriodStudentVo.getUserId(), classPeriodStudentVo.getGoodsId(), classPeriodStudentVo.getGradeId(),classPeriodStudentVo.getOrderGoodsId());
+            if (!CollectionUtils.isEmpty(timeList)) {
                 //查找开始学习时间
-                classPeriodStudentVo.setStartTime(baseMapper.selectStart(classPeriodStudentVo.getUserId(), classPeriodStudentVo.getGoodsId(), classPeriodStudentVo.getGradeId(),classPeriodStudentVo.getOrderGoodsId()).get(0));
+                classPeriodStudentVo.setStartTime(timeList.get(0));
             }
             //取学时所有拍照最新的一张
             String recentPhoto = userStudyRecordPhotoMapper.selectGradeRecentOnePhoto(classPeriodStudentVo.getUserId(), classPeriodStudentVo.getGradeId(),classPeriodStudentVo.getOrderGoodsId());
@@ -2898,6 +2901,11 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             ClassGrade classGrade = iClassGradeService.getOne(new LambdaQueryWrapper<ClassGrade>().eq(ClassGrade::getGradeId, copyOg.getGradeId()));
             commonGradeName = classGrade.getClassName();
         }
+        GoodsVo goodsVo = iGoodsService.queryById(bo.getGoodsId());
+        CourseBusinessQueryBo businessQueryBo = new CourseBusinessQueryBo();
+        businessQueryBo.setId(goodsVo.getBusinessId());
+        String fullName = iCourseBusinessService.queryFullName(businessQueryBo);
+
         //查找最外层课程目录 模块 章 节
         List<ClassPeriodVo> classPeriodVos = baseMapper.listPeriodAudit(bo);
         classPeriodVos.addAll(baseMapper.listPeriodAuditSection(bo));
@@ -2953,7 +2961,11 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                                     classPeriodSectionVo.setStudyEndTime(userPeriodStatusVo.getRecordEndTime());
                                     classPeriodSectionVo.setStudyStartTime(userPeriodStatusVo.getRecordStartTime());
                                     if (Validator.isNotEmpty(photoList) && photoList.size() > 0) {
-                                        classPeriodSectionVo.setStudyStartTime(photoList.get(0).getCreateTime());
+                                        if(fullName.contains("继续教育")&&fullName.contains("施工现场专业人员")){
+                                            classPeriodSectionVo.setStudyStartTime(userPeriodStatusVo.getRecordStartTime());
+                                        }else{
+                                            classPeriodSectionVo.setStudyStartTime(photoList.get(0).getCreateTime());
+                                        }
                                     }
                                     if ((startTotalTime == 0L && Validator.isNotEmpty(classPeriodSectionVo.getStudyStartTime())) || (Validator.isNotEmpty(classPeriodSectionVo.getStudyStartTime()) && (startTotalTime.longValue() > classPeriodSectionVo.getStudyStartTime().longValue()))) {
                                         if(og.getSevenClassCopy()==1||moduleVo.getCommonSign()==0){
@@ -3067,10 +3079,10 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                             classPeriodChapterVo.setAuditUserName(userPeriodStatusVo.getAuditUserName());
                             classPeriodChapterVo.setPeriodStatusId(userPeriodStatusVo.getId());
                             classPeriodChapterVo.setPerformance(Convert.toBigDecimal(userPeriodStatusVo.getPerformance()));
-                            if (startTotalTime == 0L || startTotalTime.longValue() > classPeriodChapterVo.getStudyStartTime().longValue()) {
+                            if ((startTotalTime == 0L&&Validator.isNotEmpty(classPeriodChapterVo.getStudyStartTime())) || (Validator.isNotEmpty(classPeriodChapterVo.getStudyStartTime())&&startTotalTime.longValue() > classPeriodChapterVo.getStudyStartTime().longValue())) {
                                 startTotalTime = classPeriodChapterVo.getStudyStartTime();
                             }
-                            if (endTotalTime == 0L || (Validator.isNotEmpty(classPeriodChapterVo.getStudyEndTime()) && endTotalTime.longValue() < classPeriodChapterVo.getStudyEndTime().longValue())) {
+                            if ((endTotalTime == 0L&&Validator.isNotEmpty(classPeriodChapterVo.getStudyEndTime())) || (Validator.isNotEmpty(classPeriodChapterVo.getStudyEndTime()) && endTotalTime.longValue() < classPeriodChapterVo.getStudyEndTime().longValue())) {
                                 endTotalTime = classPeriodChapterVo.getStudyEndTime();
                             }
                         }
@@ -3112,7 +3124,11 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                         classPeriodSectionVo.setStudyEndTime(userPeriodStatusVo.getRecordEndTime());
                         classPeriodSectionVo.setStudyStartTime(userPeriodStatusVo.getRecordStartTime());
                         if (Validator.isNotEmpty(photoList) && photoList.size() > 0) {
-                            classPeriodSectionVo.setStudyStartTime(photoList.get(0).getCreateTime());
+                            if(fullName.contains("继续教育")&&fullName.contains("施工现场专业人员")){
+                                classPeriodSectionVo.setStudyStartTime(userPeriodStatusVo.getRecordStartTime());
+                            }else{
+                                classPeriodSectionVo.setStudyStartTime(photoList.get(0).getCreateTime());
+                            }
                         }
                         if ((startTotalTime == 0L && Validator.isNotEmpty(classPeriodSectionVo.getStudyStartTime())) || (Validator.isNotEmpty(classPeriodSectionVo.getStudyStartTime()) && startTotalTime.longValue() > classPeriodSectionVo.getStudyStartTime().longValue())) {
                             if(og.getSevenClassCopy()==1||classPeriodVo.getCommonSign()==0){
@@ -3229,7 +3245,12 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                     classPeriodVo.setNumList(Convert.toLong(userPeriodStatusVos.size()));
                     classPeriodVo.setStudyEndTime(userPeriodStatusVo.getRecordEndTime());
                     if (photoList.size() > 0) {
-                        classPeriodVo.setStudyStartTime(photoList.get(0).getCreateTime());
+                        if(fullName.contains("继续教育")&&fullName.contains("施工现场专业人员")){
+                            classPeriodVo.setStudyStartTime(userPeriodStatusVo.getRecordStartTime());
+                        }else{
+                            classPeriodVo.setStudyStartTime(photoList.get(0).getCreateTime());
+                        }
+
                     }
                     if ((Validator.isNotEmpty(classPeriodVo.getStudyStartTime()) && startTotalTime == 0L) || (Validator.isNotEmpty(classPeriodVo.getStudyStartTime()) && startTotalTime.longValue() > classPeriodVo.getStudyStartTime().longValue())) {
                         startTotalTime = classPeriodVo.getStudyStartTime();
@@ -3604,6 +3625,8 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
     }
 
 
+
+
     /**
      * 实体类转化成视图对象
      *

+ 9 - 9
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -1136,7 +1136,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         String out_trade_no = DateUtils.getDateOrderSn();
         BigDecimal totalPrice = new BigDecimal(0);
         BigDecimal payPrice = new BigDecimal(0);
-        String body = "中正祥粤云-";
+        String body = "中正云-";
         List<OrderGoods> freeList = new ArrayList<>();
         //生成订单
         for (OrderGoodsAddBo g : goodsList) {
@@ -1152,7 +1152,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     throw new CustomException(goods.getGoodsName() + ",请勿重复购买相同年份的商品");
                 }
             }
-            body = "中正祥粤云-" + goods.getGoodsName();
+            body = "中正云-" + goods.getGoodsName();
             OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
             orderGoods.setOrderSn(out_trade_no);
             orderGoods.setGoodsYear(goods.getYear().toString());
@@ -1556,7 +1556,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         String out_trade_no = DateUtils.getDateOrderSn();
         BigDecimal totalPrice = new BigDecimal(0);
         BigDecimal payPrice = new BigDecimal(0);
-        String body = "中正祥粤云-";
+        String body = "中正云-";
         List<OrderGoods> freeList = new ArrayList<>();
         //生成订单
         for (OrderGoodsAddBo g : goodsList) {
@@ -1572,7 +1572,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     throw new CustomException(goods.getGoodsName() + ",请勿重复购买相同年份的商品");
                 }
             }
-            body = "中正祥粤云-" + goods.getGoodsName();
+            body = "中正云-" + goods.getGoodsName();
             OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
             orderGoods.setOrderSn(out_trade_no);
             if (g.getGoodsInputData() != null) {
@@ -1763,7 +1763,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         String out_trade_no = DateUtils.getDateOrderSn();
         BigDecimal totalPrice = new BigDecimal(0);
         BigDecimal payPrice = new BigDecimal(0);
-        String body = "中正祥粤云-";
+        String body = "中正云-";
         List<OrderGoods> freeList = new ArrayList<>();
         //生成订单
         for (OrderGoodsAddBo g : goodsList) {
@@ -1779,7 +1779,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     throw new CustomException(goods.getGoodsName() + ",请勿重复购买相同年份的商品");
                 }
             }
-            body = "中正祥粤云-" + goods.getGoodsName();
+            body = "中正云-" + goods.getGoodsName();
             OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
             orderGoods.setOrderSn(out_trade_no);
             if (g.getGoodsInputData() != null) {
@@ -1937,7 +1937,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 if (goods.getGoodsStatus() != 1) {
                     throw new CustomException(goods.getGoodsName() + "商品已下架,请重新选择商品下单");
                 }
-                body = "中正祥粤云-" + goods.getGoodsName();
+                body = "中正云-" + goods.getGoodsName();
                 break;
             }
         } else {
@@ -1973,7 +1973,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 if (goods.getGoodsStatus() != 1) {
                     throw new CustomException(goods.getGoodsName() + "商品已下架,请重新选择商品下单");
                 }
-                body = "中正祥粤云-" + goods.getGoodsName();
+                body = "中正云-" + goods.getGoodsName();
                 break;
             }
         } else {
@@ -2107,7 +2107,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 if (goods.getGoodsStatus() != 1) {
                     throw new CustomException(goods.getGoodsName() + "商品已下架,请重新选择商品下单");
                 }
-                body = "中正祥粤云-" + goods.getGoodsName();
+                body = "中正云-" + goods.getGoodsName();
                 break;
             }
         } else {

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

@@ -89,4 +89,6 @@ public class UserCertificateAddBo {
     @ApiModelProperty("公共学时")
     private BigDecimal publicClassHours;
 
+    private Long orderGoodsId;
+
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserCertificateQueryBo.java

@@ -93,4 +93,10 @@ public class UserCertificateQueryBo extends BaseEntity {
 	/** 证书发布年份 */
 	@ApiModelProperty("证书发布年份")
 	private String pushDate;
+
+	@ApiModelProperty("开始时间")
+	private Long searchStartTime;
+	/** 培训结束时间 */
+	@ApiModelProperty("结束时间")
+	private Long searchEndTime;
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserCertificate.java

@@ -75,4 +75,5 @@ private static final long serialVersionUID=1L;
 
     private BigDecimal publicClassHours;
 
+    private Long orderGoodsId;
 }

+ 9 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -407,8 +407,15 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
                                 if(photoList.size()>0){
                                     UserStudyRecordPhoto photo = photoList.get(0);
                                     if((DateUtils.getNowTime().longValue()-photo.getCreateTime().longValue())<(videoTime.longValue()-5)){
-                                        log.info("视频学习时长不达标"+JSON.toJSONString(bo));
-                                        throw new CustomException("视频学习时长不达标,"+(videoTime.longValue()-5-(DateUtils.getNowTime().longValue()-photo.getCreateTime().longValue())),558);
+                                        if(fullName.contains("继续教育")&&fullName.contains("施工现场专业人员")){
+                                            if((DateUtils.getNowTime().longValue()-userPeriodStatusVo.getRecordStartTime().longValue())<(videoTime.longValue()-5)){
+                                                log.info("视频学习时长不达标"+JSON.toJSONString(bo));
+                                                throw new CustomException("视频学习时长不达标,"+(videoTime.longValue()-5-(DateUtils.getNowTime().longValue()-photo.getCreateTime().longValue())),558);
+                                            }
+                                        }else{
+                                            log.info("视频学习时长不达标"+JSON.toJSONString(bo));
+                                            throw new CustomException("视频学习时长不达标,"+(videoTime.longValue()-5-(DateUtils.getNowTime().longValue()-photo.getCreateTime().longValue())),558);
+                                        }
                                     }
                                 }
                                 if(photoList.size()<num){

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/activity/ActivityRecommendMapper.xml

@@ -93,6 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="businessId != null and businessId != ''">
             AND ar.business_id = #{businessId}
         </if>
+        order by ar.sort
     </select>
 
     <select id="getDetail" parameterType="com.zhongzheng.modules.activity.bo.ActivityRecommendQueryBo" resultMap="ActivityRecommendVoResult">

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

@@ -424,7 +424,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         cgu.period_plush_msg,
         cgu.learn_status,
         (SELECT COUNT(m.id) FROM course_menu_exam m LEFT JOIN goods_course c on m.course_id=c.course_id   where c.goods_id=og.goods_id and m.type  in (1,3) ) as exam_num,
-        (SELECT COUNT(DISTINCT ubr.module_id,ubr.chapter_id,ubr.exam_id) FROM user_bank_record ubr  where ubr.`status`=1 and ubr.type  in (1,3) and  ubr.user_id = u.user_id and ubr.order_goods_id = cgu.order_goods_id and ubr.report_status=1 and ubr.current_status = 1) as record_num,
+        (SELECT COUNT(DISTINCT ubr.module_id,ubr.chapter_id,ubr.exam_id) FROM user_bank_record ubr  where ubr.`status`=1 and ubr.type  in (1,3) and  ubr.user_id = u.user_id and ubr.grade_id = cgu.grade_id and ubr.order_goods_id = cgu.order_goods_id and ubr.report_status=1 and ubr.current_status = 1) as record_num,
         (og.study_count) as study_count,
         og.order_goods_id,
         og.rebuy_order_goods_id,

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

@@ -457,8 +457,8 @@
         (SELECT og.service_end_time FROM order_goods og  where og.order_goods_id = cgu.order_goods_id ) as service_end_time,
         (SELECT COUNT(DISTINCT ubr.module_id,ubr.chapter_id,ubr.exam_id) FROM user_bank_record ubr  where ubr.`status`=1 and ubr.`type` in (1,3) and ubr.report_status=1 and ubr.order_goods_id = cgu.order_goods_id and ubr.grade_id = cgu.grade_id and ubr.user_id = cgu.user_id and ubr.current_status = 1) as record_num
         <if test="userPhoto == null">
-            ,(select COUNT(up.id) from user_period up LEFT JOIN user_period_status ups on up.id=ups.period_id where up.goods_id = og.goods_id and up.grade_id = cgu.grade_id and up.order_goods_id = cgu.order_goods_id and up.user_id = u.user_id
-            and ups.period_status=0 and ups.`status`=0 and (SELECT COUNT(upss.id) from user_period_status upss where upss.id = ups.id and upss.period_status = 1 and upss.`status` = 2) > 0 ) as rebuild_num
+            /* ,(select COUNT(up.id) from user_period up LEFT JOIN user_period_status ups on up.id=ups.period_id where up.goods_id = og.goods_id and up.grade_id = cgu.grade_id and up.order_goods_id = cgu.order_goods_id and up.user_id = u.user_id
+            and ups.period_status=0 and ups.`status`=0 and (SELECT COUNT(upss.id) from user_period_status upss where upss.id = ups.id and upss.period_status = 1 and upss.`status` = 2) > 0 ) as rebuild_num */
         </if>
         FROM
         class_grade_user cgu

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml

@@ -88,6 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             order_goods og
                 LEFT JOIN class_grade_user cgu ON og.order_goods_id = cgu.order_goods_id
                 AND cgu.user_id = #{userId} where og.order_goods_id = #{orderGoodsId}
+                AND cgu.`status` = 1 limit 1
     </select>
 
     <select id="selectListByBo" parameterType="com.zhongzheng.modules.order.bo.OrderQueryBo" resultMap="OrderResultVo">

+ 6 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserCertificateMapper.xml

@@ -109,6 +109,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="userId != null and majorId != ''">
             AND uc.user_id = #{userId}
         </if>
+        <if test="searchStartTime != null and searchStartTime != ''">
+            AND uc.create_time > #{searchStartTime}
+        </if>
+        <if test="searchEndTime != null and searchEndTime != ''">
+            AND #{searchEndTime} > uc.create_time
+        </if>
         order by uc.update_time desc
     </select>