yangdamao 1 năm trước cách đây
mục cha
commit
8fe78dfd9b

+ 1 - 1
Dockerfile

@@ -1,5 +1,5 @@
 # 该镜像需要依赖的基础镜像
-FROM java:8
+FROM openjdk:8
 # 将当前目录下的jar包复制到docker容器的/目录下
 ADD zhongzheng-api.jar /app.jar
 # 声明服务运行在8080端口

+ 77 - 1
run-prod.sh

@@ -1,3 +1,42 @@
+#!/usr/bin/env bash
+# 定义应用组名
+group_name='zhongzheng'
+# 定义应用名称
+app_name='zhongzheng-saas-api'
+# 定义应用版本
+app_version='1.0-SNAPSHOT'
+# 定义应用环境
+profile_active='prod'
+echo '----copy jar----'
+docker stop ${app_name}
+echo '----stop container----'
+docker rm ${app_name}
+echo '----rm container----'
+docker rmi ${group_name}/${app_name}:${app_version}
+echo '----rm image----'
+# 打包编译docker镜像
+docker build -f /mydata/maven/build/Dockerfile -t ${group_name}/${app_name}:${app_version} .
+echo '----build image----'
+docker run -p 5055:5055 --name ${app_name} \
+--restart=always \
+-e 'spring.profiles.active'=${profile_active} \
+-e TZ="Asia/Shanghai" \
+-m 10240m \
+--cpus=3 \
+--log-opt max-size=50m \
+--log-opt max-file=3 \
+-v /etc/localtime:/etc/localtime \
+-v /usr/share/fonts:/usr/share/fonts \
+-v /data/logs/prod_api:/logs \
+-v /mydata/app/${app_name}/logs:/var/logs \
+-d ${group_name}/${app_name}:${app_version}
+echo '----start container----'
+
+echo "开始等待20秒..."
+# 1-10秒内随机
+sleep 5
+echo "等待后继续"
+
 #!/usr/bin/env bash
 # 定义应用组名
 group_admin_name='zhongzheng'
@@ -33,5 +72,42 @@ docker run \
 -d ${group_admin_name}/${app_admin_name}:${app_admin_version}
 echo '----start container admin----'
 
+echo "开始等待20秒..."
+# 1-10秒内随机
+sleep 5
+echo "等待后继续"
 
-
+#!/usr/bin/env bash
+# 定义应用组名
+group_admin_name='zhongzheng'
+# 定义应用名称
+app_admin_name='zhongzheng-saas-admin-top'
+# 定义应用版本
+app_admin_version='1.0-SNAPSHOT'
+# 定义应用环境
+profile_active='prod'
+echo '----copy jar admin top----'
+docker stop ${app_admin_name}
+echo '----stop container admin top----'
+docker rm ${app_admin_name}
+echo '----rm container admin top----'
+docker rmi ${group_admin_name}/${app_admin_name}:${app_admin_version}
+echo '----rm image admin top----'
+# 打包编译docker镜像
+docker build -f /mydata/maven/build/Dockerfile-saas -t ${group_admin_name}/${app_admin_name}:${app_admin_version} .
+echo '----build image admin top----'
+docker run \
+-p 7077:7077 \
+--name ${app_admin_name} \
+--restart=always \
+--log-opt max-size=50m \
+--log-opt max-file=3 \
+-e 'spring.profiles.active'=${profile_active} \
+-e TZ="Asia/Shanghai" \
+-v /etc/localtime:/etc/localtime \
+-v /usr/share/fonts:/usr/share/fonts \
+-v /data/logs/prod_admin_top:/logs \
+-v /mydata/app/${app_admin_name}/logs:/var/logs \
+-v /data/nginx/conf.d:/data/nginx/conf.d \
+-d ${group_admin_name}/${app_admin_name}:${app_admin_version}
+echo '----start container admin top----'

+ 1 - 1
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java

@@ -1709,7 +1709,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         switch (bo.getUrlType()){
             case 1://H5
                 post = tenant.getHostH5();
-                path = "pages/webview/index";
+                path = "pages5/webview/index";
                 break;
             case 2://PC
                 post = tenant.getHostPc();

+ 84 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/UserProfileServiceImpl.java

@@ -11,6 +11,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.fasterxml.jackson.databind.exc.InvalidFormatException;
 import com.openhtmltopdf.swing.Java2DRenderer;
 import com.openhtmltopdf.util.FSImageWriter;
@@ -259,6 +260,89 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
         //给模板绑定数据
         Calendar rightNow = Calendar.getInstance();
         Map<String, Object> bindingMap = new HashMap<>();
+//        if (ObjectUtils.isNull(maps.get("name"))){
+//            bindingMap.put("username", " ");
+//        }else {
+//            bindingMap.put("username", JSONObject.parseObject(String.valueOf(maps.get("name")), UserProfileFit.class).getValue());
+//        }
+//        if (ObjectUtils.isNull(maps.get("s"))){
+//            bindingMap.put("s", "");
+//        }else {
+//            bindingMap.put("s", JSONObject.parseObject(String.valueOf(maps.get("sex")), UserProfileFit.class).getValue());
+//        }
+//        if (ObjectUtils.isNull(maps.get("post"))){
+//            bindingMap.put("post", "");
+//        }else {
+//            bindingMap.put("post", JSONObject.parseObject(String.valueOf(maps.get("apply_post")), UserProfileFit.class).getValue());
+//        }
+//        if (ObjectUtils.isNull(maps.get("idcard"))){
+//            bindingMap.put("idcard", "");
+//        }else {
+//            bindingMap.put("idcard", JSONObject.parseObject(String.valueOf(maps.get("idcard")), UserProfileFit.class).getValue());
+//        }
+//        if (ObjectUtils.isNull(maps.get("phone"))){
+//            bindingMap.put("phone", "");
+//        }else {
+//            bindingMap.put("phone", JSONObject.parseObject(String.valueOf(maps.get("telphone")), UserProfileFit.class).getValue());
+//        }
+//        if (ObjectUtils.isNull(maps.get("school"))){
+//            bindingMap.put("school", "");
+//        }else {
+//            bindingMap.put("school", JSONObject.parseObject(String.valueOf(maps.get("school")), UserProfileFit.class).getValue());
+//        }
+//        if (ObjectUtils.isNull(maps.get("edu"))){
+//            bindingMap.put("edu", "");
+//        }else {
+//            bindingMap.put("edu", JSONObject.parseObject(String.valueOf(maps.get("education")), UserProfileFit.class).getValue());
+//        }
+//        String major = maps.get("major");
+//        if (ObjectUtils.isNull(major)){
+//            bindingMap.put("major", "");
+//        }else {
+//            bindingMap.put("major", JSONObject.parseObject(String.valueOf(maps.get("major")), UserProfileFit.class).getValue());
+//        }
+//        if (StringUtils.isBlank(maps.get("cname"))){
+//            bindingMap.put("cname", "");
+//        }else {
+//            bindingMap.put("cname", JSONObject.parseObject(String.valueOf(maps.get("unit_contact")), UserProfileFit.class).getValue());
+//        }
+//        if (ObjectUtils.isNull(maps.get("cphone"))){
+//            bindingMap.put("cphone", "");
+//        }else {
+//            bindingMap.put("cphone", JSONObject.parseObject(String.valueOf(maps.get("unit_tel")), UserProfileFit.class).getValue());
+//        }
+//        if (ObjectUtils.isNull(maps.get("image"))){
+//            bindingMap.put("image", "");
+//        }else {
+//            bindingMap.put("image", ALIYUN_OSS_ENDPOINT + "/" + JSONObject.parseObject(String.valueOf(maps.get("commitment_electr_signature")), UserProfileFit.class).getValue());
+//        }
+//        if (ObjectUtils.isNull(maps.get("y"))){
+//            bindingMap.put("y", "");
+//        }else {
+//            bindingMap.put("y", Convert.toStr(rightNow.get(Calendar.YEAR)));
+//        }
+//        if (ObjectUtils.isNull(maps.get("m"))){
+//            bindingMap.put("m", "");
+//        }else {
+//            bindingMap.put("m", rightNow.get(Calendar.MONTH) + 1);
+//        }
+//        if (ObjectUtils.isNull(maps.get("d"))){
+//            bindingMap.put("d", "");
+//        }else {
+//            bindingMap.put("d", rightNow.get(Calendar.DAY_OF_MONTH));
+//        }
+//        if (ObjectUtils.isNull(maps.get("time"))){
+//            bindingMap.put("time", "");
+//        }else {
+//            bindingMap.put("time", JSONObject.parseObject(String.valueOf(maps.get("graduation_time")), UserProfileFit.class).getValue());
+//        }
+//        if (ObjectUtils.isNull(maps.get("year"))){
+//            bindingMap.put("year", "");
+//        }else {
+//            bindingMap.put("year", JSONObject.parseObject(String.valueOf(maps.get("working_years")), UserProfileFit.class).getValue());
+//        }
+
+
         bindingMap.put("username", JSONObject.parseObject(String.valueOf(maps.get("name")), UserProfileFit.class).getValue());
         bindingMap.put("s", JSONObject.parseObject(String.valueOf(maps.get("sex")), UserProfileFit.class).getValue());
         bindingMap.put("post", JSONObject.parseObject(String.valueOf(maps.get("apply_post")), UserProfileFit.class).getValue());

+ 11 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSectionWatchPerServiceImpl.java

@@ -118,6 +118,17 @@ public class CourseSectionWatchPerServiceImpl extends ServiceImpl<CourseSectionW
         watchVo.setSectionId(bo.getSectionId());
         watchVo.setGoodsStatus(goods.getGoodsStatus());
         watchVo.setGoodsName(goods.getGoodsName());
+        //获取课程节信息
+        CourseSection section = courseSectionService.getById(bo.getSectionId());
+        //判断直播是否开始
+        if (ObjectUtils.isNotNull(section) && section.getSectionType() == 2){
+            if (section.getLiveStartTime() > DateUtils.getNowTime()){
+                //直播时间还没到
+                watchVo.setCheckStatus(0);
+                watchVo.setCheckMsg("直播时间未到,无法观看!");
+                return watchVo;
+            }
+        }
         //获取观看权限
         CourseSectionWatchPer watchPer = getOne(new LambdaQueryWrapper<CourseSectionWatchPer>()
                 .eq(CourseSectionWatchPer::getCourseId, bo.getCourseId())

+ 12 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/UserPeriodServiceImpl.java

@@ -880,7 +880,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                 CourseMenuQueryBo menuQueryBo = new CourseMenuQueryBo();
                 menuQueryBo.setCourseId(courseVo.getCourseId());
                 List<CourseMenuVo> courseMenuVoList = iCourseMenuService.selectList(menuQueryBo);
-                courseMenuVoList.forEach(courseMenuVo -> {
+                for(CourseMenuVo courseMenuVo:courseMenuVoList){
                     if(courseMenuVo.getType()==1){
                         SyncUserChapterList syncUserChapterItem = new SyncUserChapterList();
                         syncUserChapterItem.setChapterId(courseMenuVo.getMenuId());
@@ -888,7 +888,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                         List<SyncUserChapterList> ChildChapList = new ArrayList<>();
                         //获取章信息
                         List<CourseModuleChapterVo> courseModuleChapterVoList = iCourseModuleChapterService.getListById(courseMenuVo.getMenuId());
-                        courseModuleChapterVoList.forEach(courseModuleChapterVo -> {
+                        for(CourseModuleChapterVo courseModuleChapterVo:courseModuleChapterVoList){
                             SyncUserChapterList syncUserChapterChildItem = new SyncUserChapterList();
                             syncUserChapterChildItem.setChapterId(courseModuleChapterVo.getChapterId());
                             syncUserChapterChildItem.setChapterName(courseModuleChapterVo.getName());
@@ -943,6 +943,12 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                                     List<UserStudyRecordPhoto> videoPhoto2 = userStudyRecordPhotoService.list(lqw);
                                     syncUserStudyRec.setCreateTime(DateUtils.timestampToDateFormat(userPeriodStatusVo.getRecordStartTime(),DateUtils.YYYY_MM_DD_HH_MM_SS));
                                     syncUserStudyRec.setEndTime(DateUtils.timestampToDateFormat(userPeriodStatusVo.getRecordEndTime(),DateUtils.YYYY_MM_DD_HH_MM_SS));
+                                    if(Validator.isEmpty(studyEndTime)||(studyEndTime.longValue()<userPeriodStatusVo.getRecordEndTime().longValue())){
+                                        studyEndTime = userPeriodStatusVo.getRecordEndTime();
+                                    }
+                                    if(Validator.isEmpty(studyStartTime)||(studyStartTime.longValue()>userPeriodStatusVo.getRecordStartTime().longValue())){
+                                        studyStartTime = userPeriodStatusVo.getRecordStartTime();
+                                    }
                                     syncUserStudyRec.setStudyIP(userPeriodStatusVo.getIp());
                                     List<SyncUserImageRc> ImgList = new ArrayList<>();
                                     for (UserStudyRecordPhoto videoPhoto : videoPhoto2) {
@@ -958,12 +964,14 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                             }
                             syncUserChapterChildItem.setRecList(RecList);
                             ChildChapList.add(syncUserChapterChildItem);
-                        });
+                        }
                         syncUserChapterItem.setChildChapList(ChildChapList);
                         ChapterList.add(syncUserChapterItem);
                     }
-                });
+                }
             }
+            studyRec.setBeginTime(DateUtils.timestampToDateFormat(studyStartTime));
+            studyRec.setEndTime(DateUtils.timestampToDateFormat(studyEndTime));
             studyRec.setChapterList(ChapterList);
         }
         //学习记录推送到旧系统

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserLiveAccountLoginBo.java

@@ -42,4 +42,7 @@ public class UserLiveAccountLoginBo {
 
     @ApiModelProperty("登录类型:1直播")
     private Integer type;
+
+    @ApiModelProperty("商户ID")
+    private String tenantId;
 }

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

@@ -936,7 +936,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="getClassUserNumByTenant" parameterType="java.lang.Long" resultType="java.lang.Long">
         SELECT
-            sum( a.num )
+            IFNULL(sum( a.num ),0)
         FROM
             ( SELECT COUNT( user_id ) AS num FROM class_grade_user WHERE grade_id = #{gradeId} AND `status` = 1 AND change_grade = 0 GROUP BY user_id ) a
     </select>