Parcourir la source

Merge branch 'dev'

# Conflicts:
#	zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java
#	zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/IScheduleService.java
yangdamao il y a 2 ans
Parent
commit
20f63acb26
25 fichiers modifiés avec 199 ajouts et 33 suppressions
  1. 11 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java
  2. 2 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java
  3. 1 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/system/SysLoginController.java
  4. 5 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/system/SysProfileController.java
  5. 17 4
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/system/SysUserController.java
  6. 47 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/SmsController.java
  7. 1 0
      zhongzheng-admin/src/main/resources/application-trial.yml
  8. 18 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserController.java
  9. 1 0
      zhongzheng-api/src/main/resources/application-trial.yml
  10. 2 0
      zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/SysUser.java
  11. 5 0
      zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/model/LoginBody.java
  12. 26 2
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysLoginService.java
  13. 8 0
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java
  14. 14 7
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java
  15. 2 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsVo.java
  16. 14 14
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java
  17. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/IScheduleService.java
  18. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysUserServiceImpl.java
  19. 5 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysWebServiceImpl.java
  20. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserAddBo.java
  21. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserEditBo.java
  22. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/User.java
  23. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserVo.java
  24. 2 0
      zhongzheng-system/src/main/resources/mapper/modules/system/SysUserMapper.xml
  25. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml

+ 11 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -31,6 +31,7 @@ import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.system.bo.SysTenantAdminBo;
 import com.zhongzheng.modules.system.domain.SysTenant;
+import com.zhongzheng.modules.system.service.ISysConfigService;
 import com.zhongzheng.modules.system.service.ISysTenantService;
 import com.zhongzheng.modules.system.service.ISysWebService;
 import com.zhongzheng.modules.system.vo.SysTenantVo;
@@ -96,6 +97,8 @@ public class CommonController
     private  ITopSysTenantRegisterService iTopSysTenantRegisterService;
     @Autowired
     private  ISysWebService webService;
+    @Autowired
+    private ISysConfigService configService;
     /**
      * 通用下载请求
      *
@@ -298,7 +301,7 @@ public class CommonController
     public AjaxResult<Void> testGrade()
     {
      //   iClassGradeService.checkEjjjPeopleNumLimit(195L,984L);
-        iUserService.batchUpdateTelId();
+     //   iUserService.batchUpdateTelId();
         return AjaxResult.success();
     }
 
@@ -369,4 +372,11 @@ public class CommonController
         iTopSysTenantRegisterService.test(new TopSysTenantRegisterAddBo());
         return AjaxResult.success();
     }*/
+
+    @ApiOperation("登录双重验证")
+    @GetMapping("common/free/dual_auth")
+    public AjaxResult<String> dual_auth() {
+        String dualAuth = configService.selectConfigByKey("login.dual.auth");
+        return AjaxResult.success("成功",dualAuth);
+    }
 }

+ 2 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java

@@ -402,7 +402,8 @@ public class ScheduleController extends BaseController {
         //湛江云学堂 972001468256950403
         //茂名市建设培训学校 680980002459417532
         //肇庆市建筑业协会 480813706424615769
-        List<String> tenantIds = Arrays.asList("972001468256950403", "680980002459417532", "480813706424615769");
+//        List<String> tenantIds = Arrays.asList("972001468256950403", "680980002459417532", "480813706424615769");
+        List<String> tenantIds = Arrays.asList("393436084591672437");
         tenantIds.forEach(tenantId -> {
             iScheduleService.synchronizationGoodsByTenantId(tenantId);
         });

+ 1 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/system/SysLoginController.java

@@ -84,7 +84,7 @@ public class SysLoginController
         AjaxResult ajax = AjaxResult.success();
         // 生成令牌
         String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
-                loginBody.getUuid());
+                loginBody.getUuid(),loginBody.getSmsCode(),loginBody.getPhonenumber());
         ajax.put(Constants.TOKEN, token);
         return ajax;
     }

+ 5 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/system/SysProfileController.java

@@ -9,8 +9,10 @@ import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.domain.entity.SysUser;
 import com.zhongzheng.common.core.domain.model.LoginUser;
 import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.SecurityUtils;
 import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.ToolsUtils;
 import com.zhongzheng.common.utils.file.FileUploadUtils;
 import com.zhongzheng.framework.web.service.TokenService;
 import com.zhongzheng.modules.system.service.ISysUserService;
@@ -94,6 +96,9 @@ public class SysProfileController extends BaseController
         {
             return AjaxResult.error("修改密码失败,旧密码错误");
         }
+        if(!ToolsUtils.verifPwd(newPassword)){
+            throw new CustomException("密码应由8-16位数字、大小写字母、符号组成");
+        }
         if (SecurityUtils.matchesPassword(newPassword, password))
         {
             return AjaxResult.error("新密码不能与旧密码相同");

+ 17 - 4
zhongzheng-admin/src/main/java/com/zhongzheng/controller/system/SysUserController.java

@@ -18,10 +18,7 @@ import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.enums.BusinessType;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.exception.user.UserPasswordNotMatchException;
-import com.zhongzheng.common.utils.MessageUtils;
-import com.zhongzheng.common.utils.SecurityUtils;
-import com.zhongzheng.common.utils.ServletUtils;
-import com.zhongzheng.common.utils.ToolsUtils;
+import com.zhongzheng.common.utils.*;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.framework.manager.AsyncManager;
 import com.zhongzheng.framework.manager.factory.AsyncFactory;
@@ -168,6 +165,7 @@ public class SysUserController extends BaseController
             throw new CustomException("密码应由8-16位数字、大小写字母、符号组成");
         }
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setPwdTime(DateUtils.getNowTime());
         return toAjax(userService.insertUser(user));
     }
 
@@ -224,6 +222,7 @@ public class SysUserController extends BaseController
                 throw new CustomException("密码应由8-16位数字、大小写字母、符号组成");
             }
             user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+            user.setPwdTime(DateUtils.getNowTime());
         }
         user.setUpdateBy(SecurityUtils.getUsername());
         int result = userService.updateUser(user);
@@ -292,4 +291,18 @@ public class SysUserController extends BaseController
         List<SysUser> list = userService.queryBusinessPeopleList(bo);
         return getDataTable(list);
     }
+
+    @ApiOperation("检查密码修改时间")
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @GetMapping("/checkPwdTime")
+    public AjaxResult<Boolean> checkPwdTime()
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        SysUser user = userService.selectUserById(loginUser.getUser().getUserId());
+        boolean needUpdate = false;
+        if(Validator.isNotEmpty(user.getPwdTime())&&(DateUtils.getNowTime().longValue()-user.getPwdTime().longValue())>90*24*3600){
+            needUpdate = true;
+        }
+        return AjaxResult.success(needUpdate);
+    }
 }

+ 47 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/SmsController.java

@@ -0,0 +1,47 @@
+package com.zhongzheng.controller.user;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.modules.alisms.bo.SmsAddBo;
+import com.zhongzheng.modules.alisms.service.IAliSmsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 客户端用户Controller
+ *
+ * @author hjl
+ * @date 2021-06-08
+ */
+@Api(value = "短信控制器", tags = {"短信控制器"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/app/common/sms")
+public class SmsController extends BaseController {
+
+    private final IAliSmsService iSmsService;
+
+
+    @ApiOperation("获取注册短信")
+    @PostMapping("/register")
+    public AjaxResult register(@RequestBody SmsAddBo bo) {
+        iSmsService.sendRegisterSms(bo.getTel());
+        return AjaxResult.success();
+    }
+
+
+    @ApiOperation("获取登录短信")
+    @PostMapping("/login")
+    public AjaxResult login(@RequestBody SmsAddBo bo) {
+        iSmsService.sendLoginSms(bo.getTel());
+        return AjaxResult.success();
+    }
+
+
+}

+ 1 - 0
zhongzheng-admin/src/main/resources/application-trial.yml

@@ -138,6 +138,7 @@ oldStudySys:
     shareCanclePath: https://www.xyyxt.net/witsystem/dataapi/ordercance
     searchGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCount
     pushGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCountAuto
+    educationalInspector: https://zs.gdzzkj.net/EduSystem/BusinessApi/NewYxtUserPrompt
     classUserListPath: https://www.xyyxt.net/System/BussinessApi/UserCourseCategoryListcno
     classOpenPath: https://www.xyyxt.net/System/BussinessApi/OpenClass
 

+ 18 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserController.java

@@ -4,7 +4,10 @@ import cn.hutool.core.lang.Validator;
 import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.entity.SysUser;
+import com.zhongzheng.common.core.domain.model.LoginUser;
 import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.framework.web.service.WxTokenService;
 import com.zhongzheng.modules.user.bo.*;
@@ -19,6 +22,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
@@ -139,4 +143,18 @@ public class UserController extends BaseController {
         bo.setUserId(loginUser.getUser().getUserId());
         return toAjax(iUserService.editShareActivityCode(bo) ? 1 : 0);
     }
+
+    @ApiOperation("检查密码修改时间")
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @GetMapping("/checkPwdTime")
+    public AjaxResult<Boolean> checkPwdTime()
+    {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        UserVo userVo = iUserService.queryById(loginUser.getUser().getUserId());
+        boolean needUpdate = false;
+        if(Validator.isNotEmpty(userVo.getPwdTime())&&(DateUtils.getNowTime().longValue()-userVo.getPwdTime().longValue())>90*24*3600){
+            needUpdate = true;
+        }
+        return AjaxResult.success(needUpdate);
+    }
 }

+ 1 - 0
zhongzheng-api/src/main/resources/application-trial.yml

@@ -150,6 +150,7 @@ oldStudySys:
     shareCanclePath: https://www.xyyxt.net/witsystem/dataapi/ordercance
     searchGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCount
     pushGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCountAuto
+    educationalInspector: https://zs.gdzzkj.net/EduSystem/BusinessApi/NewYxtUserPrompt
     classUserListPath: https://www.xyyxt.net/System/BussinessApi/UserCourseCategoryListcno
     classOpenPath: https://www.xyyxt.net/System/BussinessApi/OpenClass
 

+ 2 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/SysUser.java

@@ -165,6 +165,8 @@ public class SysUser implements Serializable
     private String preLoginIp;
     /** 上一次登录时间 */
     private Date preLoginDate;
+    /** 密码最后修改时间 */
+    private Long pwdTime;
 
     public SysUser(Long userId)
     {

+ 5 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/model/LoginBody.java

@@ -40,4 +40,9 @@ public class LoginBody
     @ApiModelProperty(value ="验证码uuid",required = true)
     private String uuid = "";
 
+    @ApiModelProperty(value ="短信验证码")
+    private String smsCode;
+
+    @ApiModelProperty(value ="手机号码")
+    private String phonenumber;
 }

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

@@ -8,10 +8,12 @@ import com.zhongzheng.common.core.domain.entity.SysUser;
 import com.zhongzheng.common.core.domain.model.LoginBody;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.framework.manager.factory.AsyncFactory;
+import com.zhongzheng.modules.system.service.ISysConfigService;
 import com.zhongzheng.modules.system.service.ISysUserService;
 import com.zhongzheng.common.utils.AES;
 import com.zhongzheng.framework.manager.factory.AsyncFactory;
 import com.zhongzheng.modules.user.bo.UserBusinessLoginBo;
+import com.zhongzheng.modules.user.service.IUserLoginErrorService;
 import org.apache.commons.compress.utils.IOUtils;
 import org.bouncycastle.jcajce.provider.asymmetric.rsa.RSAUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,8 +55,11 @@ public class SysLoginService
     @Autowired
     private ISysUserService iSysUserService;
 
+    @Autowired
+    private ISysConfigService configService;
 
-
+    @Autowired
+    private IUserLoginErrorService iUserLoginErrorService;
     /**
      * 登录验证
      *
@@ -64,7 +69,7 @@ public class SysLoginService
      * @param uuid 唯一标识
      * @return 结果
      */
-    public String login(String username, String password, String code, String uuid)
+    public String login(String username, String password, String code, String uuid,String smsCode,String tel)
     {
         String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
         String captcha = redisCache.getCacheObject(verifyKey);
@@ -79,6 +84,7 @@ public class SysLoginService
             AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
             throw new CaptchaException();
         }
+        iUserLoginErrorService.checkLimit(username);
         // 用户验证
         Authentication authentication = null;
         try
@@ -101,6 +107,7 @@ public class SysLoginService
         }
         catch (Exception e)
         {
+            iUserLoginErrorService.saveErrorLog(username);
             if (e instanceof BadCredentialsException)
             {
                 AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
@@ -115,6 +122,23 @@ public class SysLoginService
         AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
         LoginUser loginUser = (LoginUser) authentication.getPrincipal();
         SysUser user = iSysUserService.updateLoginTimeIp(loginUser.getUser().getUserId());
+        String dualAuth = configService.selectConfigByKey("login.dual.auth");
+        if(Validator.isNotEmpty(dualAuth)&&dualAuth.equals("1")){
+            if(Validator.isEmpty(tel)){
+                throw new CustomException("手机号码不能为空");
+            }
+            String key = Constants.LOGIN_SMS + tel;
+            String localSmsCode =  redisCache.getCacheObject(key);
+            if(smsCode==null){
+                throw new CustomException("验证码不能为空");
+            }
+            if(!localSmsCode.equals(smsCode)){
+                throw new CustomException("验证码错误");
+            }
+            if(!tel.equals(user.getPhonenumber())){
+                throw new CustomException("手机号码和登录账号不匹配");
+            }
+        }
         loginUser.setUser(user);
         // 生成token
         return tokenService.createToken(loginUser);

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

@@ -868,7 +868,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         {
             throw new BaseException("新密码格式错误");
         }
+        if(!ToolsUtils.verifPwd(bo.getNewPwd())){
+            throw new CustomException("密码应由8-16位数字、大小写字母、符号组成");
+        }
         user.setPassword(SecurityUtils.encryptPassword(bo.getNewPwd()));
+        user.setPwdTime(DateUtils.getNowTime());
         user.setUpdateTime(DateUtils.getNowTime());
         updateById(user);
         return true;
@@ -1041,6 +1045,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         if(bo.getPwd()==null){
             throw new CustomException("密码不能为空");
         }
+        if(!ToolsUtils.verifPwd(bo.getPwd())){
+            throw new CustomException("密码应由8-16位数字、大小写字母、符号组成");
+        }
         String key = Constants.FORGET_SMS + bo.getTel();
         String code =  redisCache.getCacheObject(key);
         if(code==null){
@@ -1056,6 +1063,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
             throw new CustomException("该手机号未注册");
         }
         user.setPassword(SecurityUtils.encryptPassword(bo.getPwd()));
+        user.setPwdTime(DateUtils.getNowTime());
         user.setUpdateTime(DateUtils.getNowTime());
         return userService.updateById(user);
     }

+ 14 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -23,10 +23,7 @@ import com.zhongzheng.modules.bank.mapper.QuestionMapper;
 import com.zhongzheng.modules.bank.service.*;
 import com.zhongzheng.modules.base.domain.*;
 import com.zhongzheng.modules.base.service.*;
-import com.zhongzheng.modules.course.bo.CourseMenuAddBo;
-import com.zhongzheng.modules.course.bo.CourseMenuListAddBo;
-import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
-import com.zhongzheng.modules.course.bo.CourseQueryBo;
+import com.zhongzheng.modules.course.bo.*;
 import com.zhongzheng.modules.course.domain.*;
 import com.zhongzheng.modules.course.mapper.CourseMapper;
 import com.zhongzheng.modules.course.service.*;
@@ -104,6 +101,8 @@ import static java.math.RoundingMode.HALF_UP;
 @Service
 public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements IGoodsService {
 
+    @Autowired
+    private ICourseBusinessService iCourseBusinessService;
 
     @Autowired
     private IGoodsCourseService iGoodsCourseService;
@@ -167,8 +166,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
     private ICourseSectionService iCourseSectionService;
     @Autowired
     private ICourseSectionBusinessService iCourseSectionBusinessService;
-    @Autowired
-    private ICourseBusinessService iCourseBusinessService;
+
 
     @Autowired
     private ICourseSubjectService iCourseSubjectService;
@@ -655,7 +653,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
             update(null, objectLambdaUpdateWrapper);
         }
         //试听列表
-        if (bo.getAuditionList() != null && bo.getAuditionList().size() > 0) {
+        if (bo.getAuditionList() != null) {
             update.setGoodsAuditionConfig(JSON.toJSONString(bo.getAuditionList()));
         }
         //播放设置
@@ -880,6 +878,15 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
         if (Validator.isNotEmpty(classGradeVo)) {
             goodsVo.setGradeId(classGradeVo.getGradeId());
         }
+        CourseBusinessQueryBo queryBo = new CourseBusinessQueryBo();
+        queryBo.setId(goodsVo.getBusinessId());
+        String fullName = iCourseBusinessService.queryFullName(queryBo);
+        goodsVo.setErJianErZao(false);
+        if(Validator.isNotEmpty(fullName)){
+            if(fullName.equals("继续教育二级建造师")||fullName.equals("继续教育二级造价师")){
+                goodsVo.setErJianErZao(true);
+            }
+        }
         return goodsVo;
     }
 

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsVo.java

@@ -359,5 +359,6 @@ public class GoodsVo {
 	@Excel(name = "提交官方审核备注说明")
 	@ApiModelProperty("提交官方审核备注说明")
 	private String commitPeriodRemark;
-
+	@ApiModelProperty("是否是二建二造")
+	private Boolean erJianErZao;
 }

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

@@ -241,18 +241,18 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         SysOldOrg org = sysOldOrgService.list(new LambdaQueryWrapper<SysOldOrg>()
                 .eq(SysOldOrg::getTenantId, tenant)
                 .last("limit 1")).stream().findFirst().orElse(null);
-        //校验是否二建/二造商品创建班级
-        if (bo.getClassGradeGoodsAddBos() != null &&
-                (ObjectUtils.isNull(bo.getClassStatus()) || 1 == bo.getClassStatus()) && org.getShareClass() == 1) {
-            Long goodsId = bo.getClassGradeGoodsAddBos()[0];
-            Goods goods = iGoodsService.getById(goodsId);
-            CourseBusinessQueryBo businessQueryBo = new CourseBusinessQueryBo();
-            businessQueryBo.setId(goods.getBusinessId());
-            String fullName = iCourseBusinessService.queryFullName(businessQueryBo);
-            if (("继续教育二级建造师".equals(fullName)) || ("继续教育二级造价师".equals(fullName))) {
-                throw new CustomException("二建/二造不允许直接创建开班班级!");
-            }
-        }
+//        //校验是否二建/二造商品创建班级
+//        if (bo.getClassGradeGoodsAddBos() != null &&
+//                (ObjectUtils.isNull(bo.getClassStatus()) || 1 == bo.getClassStatus()) && org.getShareClass() == 1) {
+//            Long goodsId = bo.getClassGradeGoodsAddBos()[0];
+//            Goods goods = iGoodsService.getById(goodsId);
+//            CourseBusinessQueryBo businessQueryBo = new CourseBusinessQueryBo();
+//            businessQueryBo.setId(goods.getBusinessId());
+//            String fullName = iCourseBusinessService.queryFullName(businessQueryBo);
+//            if (("继续教育二级建造师".equals(fullName)) || ("继续教育二级造价师".equals(fullName))) {
+//                throw new CustomException("二建/二造不允许直接创建开班班级!");
+//            }
+//        }
 
         //是否创建官方班级编号
         if (bo.getClassGradeGoodsAddBos() != null &&
@@ -293,9 +293,9 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                         //获取当前机构商品下的班级
                         List<ClassGradeGoods> gradeGoods = iClassGradeGoodsService.getGradeGoodsList(goods.getGoodsId());
                         if (gradeGoods.size() < listGrade.size()) {
-                            ClassGrade grade = list.get(gradeGoods.size());
+                            ClassGrade grade = listGrade.get(gradeGoods.size());
                             if (checkEjjjPeopleNumLimit(business.getId(), grade.getGradeId())) {
-                                add.setOfficialName(list.get(gradeGoods.size()).getOfficialName());
+                                add.setOfficialName(listGrade.get(gradeGoods.size()).getOfficialName());
                                 add.setClassStatus(0);
                             } else {
                                 add.setOfficialName(ServletUtils.getEncoded("PIY"));

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/IScheduleService.java

@@ -99,4 +99,5 @@ public interface IScheduleService extends IService<PolyvVideo> {
     void synchronizationGoodsByTenantId(String tenantId);
 
     void goodsDispose();
+
 }

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

@@ -340,6 +340,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return baseMapper.update(null,
                 new LambdaUpdateWrapper<SysUser>()
                         .set(SysUser::getPassword,password)
+                        .set(SysUser::getPwdTime,DateUtils.getNowTime())
                         .eq(SysUser::getUserName,userName));
     }
 

+ 5 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysWebServiceImpl.java

@@ -324,6 +324,9 @@ public class SysWebServiceImpl implements ISysWebService {
         jsonObject24.put("h5Logo","https://"+bo.getLogoH5Url());
         jsonObject24.put("smallLogo","https://"+bo.getLogoSmallUrl());
         jsonObject24.put("hostLive","https://"+bo.getHostLive());
+        jsonObject24.put("hostH5","https://"+bo.getHostH5());
+        jsonObject24.put("hostPc","https://"+bo.getHostPc());
+        jsonObject24.put("smallQrCodeShow",false);
         config24.setConfigKey("home.mobile");
         config24.setConfigValue(jsonObject24.toJSONString());
         config24.setConfigType("N");
@@ -435,8 +438,8 @@ public class SysWebServiceImpl implements ISysWebService {
                 "    }\n" +
                 "\n" +
                 "    #SSL配置\n" +
-                "    ssl_certificate      /mydata/nginx/ssl/gdzzkj.net.pem; # 配置证书\n" +
-                "    ssl_certificate_key  /mydata/nginx/ssl/gdzzkj.net.key; # 配置证书私钥\n" +
+                "    ssl_certificate      /mydata/nginx/ssl/zzyxt.net.pem; # 配置证书\n" +
+                "    ssl_certificate_key  /mydata/nginx/ssl/zzyxt.net.key; # 配置证书私钥\n" +
                 "    ssl_protocols        TLSv1 TLSv1.1 TLSv1.2; # 配置SSL协议版本 # 配置SSL加密算法\n" +
                 "    ssl_ciphers          ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;\n" +
                 "    ssl_prefer_server_ciphers  on; # 优先采取服务器算法\n" +

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserAddBo.java

@@ -155,4 +155,8 @@ public class UserAddBo {
     /** 分销邀请码 */
     @ApiModelProperty("分销邀请码")
     private String shareCode;
+
+    /** 密码最后修改时间 */
+    @ApiModelProperty("密码最后修改时间")
+    private Long pwdTime;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserEditBo.java

@@ -199,4 +199,8 @@ public class UserEditBo {
     /** 活动分销邀请码 */
     @ApiModelProperty("活动分销邀请码")
     private String shareActivityCode;
+
+    /** 密码最后修改时间 */
+    @ApiModelProperty("密码最后修改时间")
+    private Long pwdTime;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/User.java

@@ -220,4 +220,6 @@ private static final long serialVersionUID=1L;
     private String shareCode;
     /** 分销活动邀请码 */
     private String shareActivityCode;
+    /** 密码最后修改时间 */
+    private Long pwdTime;
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserVo.java

@@ -289,6 +289,11 @@ public class UserVo {
 	@ApiModelProperty("活动分销邀请码")
 	private String shareActivityCode;
 
+	/** 密码最后修改时间 */
+	@Excel(name = "密码最后修改时间")
+	@ApiModelProperty("密码最后修改时间")
+	private Long pwdTime;
+
 	public void setNull(){
 		this.setOpenId(null);
 		this.setIdCardImg1(null);

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

@@ -26,6 +26,7 @@
         <result property="code" column="code"/>
         <result property="preLoginIp" column="pre_login_ip"/>
         <result property="preLoginDate" column="pre_login_date"/>
+        <result property="pwdTime" column="pwd_time"/>
         <association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult"/>
         <collection property="roles" column="user_id" select="findRolesList" javaType="java.util.List" />
     </resultMap>
@@ -77,6 +78,7 @@
                u.create_by,
                u.create_time,
                u.remark,
+               u.pwd_time,
                d.dept_id,
                d.parent_id,
                d.dept_name,

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml

@@ -59,6 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="lastStudyTime" column="last_study_time"/>
         <result property="job" column="job"/>
         <result property="shareCode" column="share_code"/>
+        <result property="pwdTime" column="pwd_time"/>
     </resultMap>