yangdamao 1 rok temu
rodzic
commit
877ee55cdb

+ 81 - 0
run-prod.sh

@@ -1,3 +1,41 @@
+#!/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
 # 定义应用组名
@@ -33,3 +71,46 @@ 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----'
+
+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----'
+
+
+

+ 3 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/course/CourseController.java

@@ -236,7 +236,9 @@ public class CourseController extends BaseController {
         }
         for(CourseProgressQueryBo queryBo : bo.getTelphoneList()){
             User user = iUserService.getOne(new LambdaQueryWrapper<User>()
-                    .eq(User::getTelphone, EncryptHandler.encrypt(queryBo.getTelphone())).last("limit 1"));
+                    .and(x -> x.eq(StringUtils.isNotBlank(queryBo.getTelphone()),User::getTelphone,EncryptHandler.encrypt(queryBo.getTelphone())).or()
+                    .eq(StringUtils.isNotBlank(queryBo.getIdCard()),User::getIdCard,EncryptHandler.encrypt(queryBo.getIdCard())))
+                    .last("limit 1"));
             if(Validator.isEmpty(user)){
                 continue;
             }

+ 9 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -114,4 +114,13 @@ public class ClassGradeController extends BaseController {
         bo.setUserId(loginUser.getUser().getUserId());
         return AjaxResult.success(iClassGradeUserService.checkFinishRequiredCourse(bo));
     }
+
+    @ApiOperation("检查是否有二建班级10天过期")
+    @PreAuthorize("@ss.hasPermi('grade:user:list')")
+    @GetMapping("/checkTenClassGradeUser")
+    public AjaxResult<List<ClassGradeUserGoodsVo>> checkTenClassGradeUser(ClassGradeUserQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return AjaxResult.success(iClassGradeUserService.checkTenClassGradeUser(bo));
+    }
 }

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

@@ -106,8 +106,8 @@ public class SysLoginService
             AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
             throw new CaptchaException();
         }
-//        iUserLoginErrorService.checkLimit(username);
 
+//        iUserLoginErrorService.checkLimit(username);
         // 用户验证
         Authentication authentication = null;
         try

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseProgressQueryBo.java

@@ -27,4 +27,7 @@ public class CourseProgressQueryBo extends BaseEntity {
 	@ApiModelProperty("手机号码")
 	private String telphone;
 
+	@ApiModelProperty("身份证")
+	private String idCard;
+
 }

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

@@ -410,4 +410,9 @@ public class GoodsVo {
 	private Integer viewSign;
 	@ApiModelProperty("寄件标签:1是 0否")
 	private Integer mailSign;
+
+	private Long orderGoodsId;
+
+	private Long periodWaitTime;
+
 }

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

@@ -6,6 +6,7 @@ import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.domain.ClassGradeUser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.grade.vo.*;
+import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.user.bo.UserQueryBo;
 import com.zhongzheng.modules.user.bo.UserUsbRecordBo;
 import com.zhongzheng.modules.user.domain.User;
@@ -76,6 +77,8 @@ public interface ClassGradeUserMapper extends BaseMapper<ClassGradeUser> {
 
     List<ClassGradeUserGoodsVo> sendTenClassGradeUser();
 
+    List<ClassGradeUserGoodsVo> checkTenClassGradeUser(@Param("userId") Long userId,@Param("startTime") Long startTime,@Param("endTime") Long endTime);
+
     List<ClassGradeUserGoodsVo> sendFiveClassGradeUser();
 
     Long selectUserCount(User bo);
@@ -125,4 +128,6 @@ public interface ClassGradeUserMapper extends BaseMapper<ClassGradeUser> {
     List<Long> getFinishRequiredCourse(ClassGradeUserQueryBo bo);
 
 
+    OrderGoods getOrderGoods(@Param("userId") Long userId, @Param("goodsId")Long goodsId);
+
 }

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

@@ -127,6 +127,9 @@ public interface IClassGradeUserService extends IService<ClassGradeUser> {
 
 	List<ClassGradeUserGoodsVo> sendTenClassGradeUser();
 
+
+	List<ClassGradeUserGoodsVo> checkTenClassGradeUser(ClassGradeUserQueryBo bo);
+
 	List<ClassGradeUserGoodsVo> sendFiveClassGradeUser();
 
 	Long selectList(User bo);

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

@@ -976,7 +976,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
 
             }
 
-         /*   List<Long> timeList = classGradeUserMapper.selectStart(classGradeStudentVo.getUserId(), classGradeStudentVo.getGoodsId(), classGradeStudentVo.getGradeId(),classGradeStudentVo.getOrderGoodsId());
+          /*  List<Long> timeList = classGradeUserMapper.selectStart(classGradeStudentVo.getUserId(), classGradeStudentVo.getGoodsId(), classGradeStudentVo.getGradeId(),classGradeStudentVo.getOrderGoodsId());
             if (!org.springframework.util.CollectionUtils.isEmpty(timeList)) {
                 //查找开始学习时间
                 classGradeStudentVo.setStartTime(timeList.get(0));
@@ -994,7 +994,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
             /*if (Validator.isNotEmpty(classGradeStudentVo.getRebuyOrderGoodsId()) && classGradeStudentVo.getRebuyOrderGoodsId().longValue() > 0) {
                 classGradeStudentVo.setRebuy(orderMapper.getGradePeriod(classGradeStudentVo.getRebuyOrderGoodsId(), classGradeStudentVo.getUserId()));
             }*/
-           /* if (ObjectUtils.isNotNull(classGradeStudentVo.getOrgId())){
+/*            if (ObjectUtils.isNotNull(classGradeStudentVo.getOrgId())){
                 SysTenant tenant = iSysTenantService.getById(classGradeStudentVo.getOrgId());
                 if (ObjectUtils.isNotNull(tenant)){
                     classGradeStudentVo.setTenantName(tenant.getTenantName());

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

@@ -77,6 +77,7 @@ import com.zhongzheng.modules.user.mapper.UserStudyRecordPhotoMapper;
 import com.zhongzheng.modules.user.service.*;
 import com.zhongzheng.modules.user.vo.*;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.annotations.Param;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -3643,6 +3644,21 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         return newList;
     }
 
+    @Override
+    public List<ClassGradeUserGoodsVo> checkTenClassGradeUser(ClassGradeUserQueryBo bo) {
+        Long startTime = 11*24*3600L;
+        Long endTime = 1*24*3600L;
+        List<ClassGradeUserGoodsVo> list = baseMapper.checkTenClassGradeUser(bo.getUserId(),startTime,endTime);
+        List<ClassGradeUserGoodsVo> list1 = new ArrayList<>();
+        for(ClassGradeUserGoodsVo vo : list){
+            String businessName = iGoodsService.getGoodsBusinessName(vo.getGoodsId());
+            if (businessName.contains("继续教育二级建造师") ){
+                list1.add(vo);
+            }
+        }
+        return list1;
+    }
+
     @Override
     public List<ClassGradeUserGoodsVo> sendFiveClassGradeUser() {
         List<ClassGradeUserGoodsVo> userList = baseMapper.sendFiveClassGradeUser();
@@ -3800,6 +3816,18 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         //查询旧系统是否有学习
         String businessName = iGoodsService.getGoodsBusinessName(bo.getGoodsId());
         if (businessName.contains("继续教育二级建造师") || businessName.contains("继续教育二级造价师")){
+            OrderGoods orderGoods = baseMapper.getOrderGoods(bo.getUserId(),bo.getGoodsId());
+            if (ObjectUtils.isNotNull(orderGoods)){
+                ClassGradeUser classGradeUser = getOne(new LambdaQueryWrapper<ClassGradeUser>()
+                        .eq(ClassGradeUser::getOrderGoodsId, orderGoods.getOrderGoodsId())
+                        .eq(ClassGradeUser::getUserId, bo.getUserId())
+                        .eq(ClassGradeUser::getStatus, 1)
+                        .last("limit 1"));
+                if (ObjectUtils.isNotNull(classGradeUser) && ObjectUtils.isNotNull(classGradeUser.getPeriodWaitTime())){
+                    //重修
+                    return 0L;
+                }
+            }
             User user = iUserService.getById(bo.getUserId());
             Integer type = "继续教育二级建造师".equals(businessName)?1:2;
             String param = String.format("idnum=%s&type=%s",EncryptHandler.decrypt(user.getIdCard()),type);

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

@@ -220,4 +220,7 @@ public class ClassGradeVo {
 
 	@ApiModelProperty("七大员信息推送权限失败原因")
 	private String sevenPushReason;
+
+	@ApiModelProperty("审核通过时间")
+	private Long periodTime;
 }

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

@@ -267,6 +267,7 @@
         <result property="periodWaitTime" column="period_wait_time"/>
         <result property="officialStatusMsg" column="official_status_msg"/>
         <result property="sevenPushReason" column="seven_push_reason"/>
+        <result property="periodTime" column="period_time"/>
     </resultMap>
 
 
@@ -920,7 +921,8 @@
             cg.official_name,
             cgu.period_wait_time,
             cgu.seven_push_reason,
-            cgu.official_status_msg
+            cgu.official_status_msg,
+            cgu.period_time
         FROM
             class_grade_user cgu
                 LEFT JOIN class_grade cg on cgu.grade_id = cg.grade_id

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

@@ -613,7 +613,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         cgu.official_status_msg,
         cgu.period_plush_msg,
         cgu.learn_status,
-        <!--      cgu.period_wait_time as end_time,  -->
+  <!--      cgu.period_wait_time as end_time,  -->
         (case WHEN (select COUNT(uu.id) FROM user_update uu where cgu.user_id = uu.user_id and uu.status = 2) >0 then 1 ELSE 0 end) as user_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.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,

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

@@ -1678,6 +1678,24 @@
         AND unix_timestamp(now()) BETWEEN cg.class_end_time-864000 and cg.class_end_time-777600
     </select>
 
+    <select id="checkTenClassGradeUser" parameterType="map" resultMap="ClassGradeUserGoodsVoResult">
+
+        SELECT
+            cgu.user_id,
+            cgu.order_goods_id,
+            cg.class_end_time,
+            og.goods_id
+        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
+        where 1=1
+          and cg.status = 1
+          and cgu.status = 1
+          and cgu.user_id = #{userId}
+          AND unix_timestamp(now()) BETWEEN cg.class_end_time-#{startTime} and cg.class_end_time-#{endTime}
+    </select>
+
 
     <select id="sendFiveClassGradeUser"  resultMap="ClassGradeUserGoodsVoResult">
 
@@ -1881,6 +1899,7 @@
         WHERE
             cgu.user_id = #{userId}
           AND cgu.period_status = -1
+          AND cgu.period_wait_time is null
           AND (unix_timestamp(now())  BETWEEN cg.class_start_time and cg.class_end_time)
           and g.business_id = #{businessId}
           and g.goods_id != #{goodsId}
@@ -1895,6 +1914,20 @@
           AND up.order_goods_id = cgu.order_goods_id
             )>0
     </select>
+    <select id="getOrderGoods" parameterType="java.lang.Long" resultType="com.zhongzheng.modules.order.domain.OrderGoods">
+        SELECT
+            og.*
+        FROM
+            order_goods og
+            LEFT JOIN `order` o ON og.order_sn = o.order_sn
+        WHERE
+            o.user_id = #{userId}
+            AND og.goods_id = #{goodsId}
+            AND og.refund_status != 2
+	        AND og.pay_status != 1
+	        AND og.`status` = 1
+	        AND o.`status` = 1
+    </select>
 
     <select id="getSevenPeriodStartTime" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo" resultType="java.lang.Long">
         SELECT

+ 7 - 1
zhongzheng-system/src/main/resources/mapper/modules/order/OrderBusinessConfigMapper.xml

@@ -44,9 +44,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         LEFT JOIN course_project_type cpt ON cb.project_id = cpt.id
         LEFT JOIN course_education_type cet ON cet.id = cpt.education_id
         WHERE
-        obc.`status` = 1
+        1=1
         and cet.`status` = 1
         and cb.`status` = 1
+        <if test="status != null and status.size()!=0 ">
+            AND obc.`status` in
+            <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="gradeType != null and gradeType != ''">
             and obc.grade_type = #{gradeType}
         </if>