yangdamao 1 éve
szülő
commit
931ae31e5e

+ 40 - 2
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'
@@ -31,5 +70,4 @@ docker run \
 -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----'
-
+echo '----start container admin----'

+ 25 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserLoginKeyServiceImpl.java

@@ -11,6 +11,7 @@ import com.github.pagehelper.Page;
 import com.zhongzheng.common.core.redis.RedisCache;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.top.goods.domain.TopGoodsSpecAttributeRelation;
 import com.zhongzheng.modules.user.bo.UserLoginKeyAddBo;
 import com.zhongzheng.modules.user.bo.UserLoginKeyEditBo;
 import com.zhongzheng.modules.user.bo.UserLoginKeyQueryBo;
@@ -23,6 +24,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -45,8 +47,23 @@ public class UserLoginKeyServiceImpl extends ServiceImpl<UserLoginKeyMapper, Use
 
     @Override
     public Boolean queryByUserKey(String userKey) {
+        String redisKey = "loginKey:"+userKey;
+        Integer value = redisCache.getCacheObject(redisKey);
+        if(Validator.isNotEmpty(value)){
+            if(value==1){
+                return true;
+            }else{
+                return false;
+            }
+
+        }
         UserLoginKey loginKey = getOne(new LambdaQueryWrapper<UserLoginKey>()
                 .eq(UserLoginKey::getUserKey, userKey).last("limit 1"));
+        if(Validator.isNotEmpty(loginKey)){
+            redisCache.setCacheObject(redisKey,loginKey.getStatus(),600, TimeUnit.SECONDS);
+        }else{
+            redisCache.deleteObject(redisKey);
+        }
         if(Validator.isNotEmpty(loginKey)&&loginKey.getStatus()==0){
             return false;
         }
@@ -128,6 +145,14 @@ public class UserLoginKeyServiceImpl extends ServiceImpl<UserLoginKeyMapper, Use
         objectLambdaUpdateWrapper.ne(UserLoginKey::getUserKey, bo.getUserKey());
         objectLambdaUpdateWrapper.set(UserLoginKey::getStatus, 0);
         this.update(null, objectLambdaUpdateWrapper);
+        List<UserLoginKey> list = list(new LambdaQueryWrapper<UserLoginKey>()
+                .eq(UserLoginKey::getUserId,bo.getUserId()));
+        for(UserLoginKey item: list){
+            if(!item.getUserKey().equals(bo.getUserKey())){
+                String redisKey = "loginKey:"+item.getUserKey();
+                redisCache.deleteObject(redisKey);
+            }
+        }
         String key = "LockAppAction_"+"bank"+"-"+bo.getUserId();
         String key2 = "LockAppAction_"+"jxjy"+"-"+bo.getUserId();
         redisCache.deleteObject(key);

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

@@ -240,6 +240,17 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         classGradeGoodsVos.forEach(item -> {
             if (CollectionUtils.isNotEmpty(item.getGradeList())) {
                 List<ClassGradeVo> collect = item.getGradeList().stream().filter(gradeVo -> {
+                    if (ObjectUtils.isNotNull(gradeVo.getClassStatus()) && gradeVo.getClassStatus() == 1){
+                        Long classStartTime = gradeVo.getClassStartTime();
+                        Integer pastDueDay = 10;
+                        if (ObjectUtils.isNotNull(gradeVo.getPastDueDay())){
+                            pastDueDay = gradeVo.getPastDueDay();
+                        }
+                        Long past = pastDueDay * 86400L + DateUtils.getNowTime();
+                        if (past > classStartTime){
+                            return false;
+                        }
+                    }
                     //班级人数是否满人
                     if (ObjectUtil.isNotNull(gradeVo.getSevenCode())) {
                         Long count = baseMapper.getGradeCount(gradeVo.getSevenCode());
@@ -251,8 +262,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                     //二建/二造继教班级过滤
                     String businessName = iGoodsService.getGoodsBusinessName(item.getGoodsId());
                     if (businessName.contains("继续教育二级建造师") || businessName.contains("继续教育二级造价师")) {
-                        if (Validator.isNotEmpty(gradeVo.getClassStatus()) && gradeVo.getClassStatus() == 1 &&
-                                (gradeVo.getClassStartTime() > DateUtils.getNowTime() || gradeVo.getClassEndTime() < DateUtils.getNowTime())) {
+                        if (Validator.isNotEmpty(gradeVo.getClassStatus()) && gradeVo.getClassStatus() == 1 &&gradeVo.getClassEndTime() < DateUtils.getNowTime()) {
                             //过期班级
                             return false;
                         }
@@ -274,7 +284,8 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                         }
                     }
                     return true;
-                }).sorted(Comparator.comparing(ClassGradeVo::getCreateTime).reversed()).collect(Collectors.toList());
+                }).sorted(Comparator.comparing(ClassGradeVo::getClassStatus).reversed()
+                        .thenComparing(ClassGradeVo::getCreateTime).reversed()).collect(Collectors.toList());
                 item.setGradeList(collect);
             }
         });
@@ -1960,7 +1971,18 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         if (CollectionUtils.isEmpty(businessVos)){
             return new ArrayList<>();
         }
-        businessVos.forEach(item -> {
+        List<ClassBusinessVo> result = new ArrayList<>();
+        for (ClassBusinessVo businessVo : businessVos) {
+            if (StringUtils.isBlank(businessVo.getSevenCode()) && CollectionUtils.isNotEmpty(result) &&
+                    result.stream().anyMatch(x -> x.getSevenCode().equals(businessVo.getSevenCode()))){
+                continue;
+            }
+            result.add(businessVo);
+        }
+        if (CollectionUtils.isEmpty(result)){
+            return new ArrayList<>();
+        }
+        result.forEach(item -> {
             if (item.getEduName().contains("继续教育") && (
                     item.getBusinessName().contains("二级建造师") || item.getBusinessName().contains("二级造价师") || item.getBusinessName().contains("施工现场专业人员")
                     )) {
@@ -1971,7 +1993,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                 item.setStudentNum(num.intValue());
             }
         });
-        return businessVos;
+        return result;
     }
 
     //创建预开班班级

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

@@ -30,4 +30,6 @@ public class ClassBusinessVo implements Serializable {
     private String eduName;
 
     private String businessName;
+
+    private String sevenCode;
 }

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

@@ -2874,8 +2874,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     }
                     classGrade.setClassStartTime(grade.getClassStartTime());
                     classGrade.setClassEndTime(grade.getClassEndTime());
-                    classGrade.setInterfacePeriodId(grade.getInterfacePeriodId());
-                    classGrade.setInterfacePushId(grade.getInterfacePushId());
+//                    classGrade.setInterfacePeriodId(grade.getInterfacePeriodId());
+//                    classGrade.setInterfacePushId(grade.getInterfacePushId());
                 }else {
 //                    String name = gradeName.stream().findFirst().get().getClassName();
                     String name = goods.getGoodsName()+"预开班";

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

@@ -1716,6 +1716,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                                  cg.student_upper,
                                  cg.past_due_day,
                                  cg.create_time,
+                                 cg.seven_code,
                                  cet.education_name                         AS eduName,
                                  CONCAT(cb.business_name, cpt.project_name) AS businessName
                  FROM class_grade cg

+ 5 - 5
zhongzheng-system/src/main/resources/mapper/modules/system/SysUserMapper.xml

@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zhongzheng.modules.system.mapper.SysUserMapper">
 
-    <resultMap type="SysUser" id="SysUserResult">
+    <resultMap type="com.zhongzheng.common.core.domain.entity.SysUser" id="SysUserResult">
         <id property="userId" column="user_id"/>
         <result property="deptId" column="dept_id"/>
         <result property="userName" column="user_name"/>
@@ -27,9 +27,9 @@
         <result property="preLoginIp" column="pre_login_ip"/>
         <result property="preLoginDate" column="pre_login_date"/>
         <result property="pwdTime" column="pwd_time"/>
-        <result property="idCard" column="id_card" typeHandler="com.zhongzheng.common.type.EncryptHandler"/>
+        <result property="idCard" column="id_card"  typeHandler="com.zhongzheng.common.type.EncryptHandler"/>
         <result property="sellerId" column="seller_id"/>
-        <association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult"/>
+        <association property="dept" column="dept_id" javaType="com.zhongzheng.common.core.domain.entity.SysDept" resultMap="deptResult"/>
         <collection property="roles" column="user_id" select="findRolesList" javaType="java.util.List" />
     </resultMap>
 
@@ -45,7 +45,7 @@
         where  ur.user_id =#{user_id}
     </select>
 
-    <resultMap id="deptResult" type="SysDept">
+    <resultMap id="deptResult" type="com.zhongzheng.common.core.domain.entity.SysDept">
         <id property="deptId" column="dept_id"/>
         <result property="parentId" column="parent_id"/>
         <result property="deptName" column="dept_name"/>
@@ -54,7 +54,7 @@
         <result property="status" column="dept_status"/>
     </resultMap>
 
-    <resultMap id="RoleResult" type="SysRole">
+    <resultMap id="RoleResult" type="com.zhongzheng.common.core.domain.entity.SysRole">
         <id property="roleId" column="role_id"/>
         <result property="roleName" column="role_name"/>
         <result property="roleKey" column="role_key"/>