rk
6 小时以前 8f6dfbc2ca4a55a1ce0a4bb62094c4bf5c671b4d
会议室问题修改
已修改7个文件
111 ■■■■ 文件已修改
server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java
@@ -120,8 +120,6 @@
    }
    public void createBeginWxNotice(SystemDictDataBiz systemDictDataBiz, SmsEmailMapper smsEmailMapper, Bookings bookings, String openId){
        Map<String,Object> map = new HashMap<>();
        //整体参数map
        Map<String, Object> paramMap = new HashMap<String, Object>();
        //消息主题显示相关map
@@ -169,13 +167,12 @@
        smsEmail.setCreateDate(new Date());
        smsEmail.setTitle("会议即将开始提醒");
        smsEmail.setInfo(DateUtil.getFomartDate(DateUtil.getXMinuteAfterDate(bookings.getStartTime(),-earlyMin),"yyyy-MM-dd HH:mm:ss"));
        smsEmail.setContent(JSONObject.toJSONString(map));
        smsEmail.setContent(JSONObject.toJSONString(paramMap));
        smsEmailMapper.insert(smsEmail);
    }
    public void createEndWxNotice(SystemDictDataBiz systemDictDataBiz, SmsEmailMapper smsEmailMapper, Bookings bookings,  String openId){
        Map<String,Object> map = new HashMap<>();
        //整体参数map
        Map<String, Object> paramMap = new HashMap<String, Object>();
        //消息主题显示相关map
@@ -203,12 +200,6 @@
        paramMap.put("touser", openId);
        paramMap.put("data", dataMap);
        smsEmailMapper.delete(new QueryWrapper<SmsEmail>().lambda()
                .eq(SmsEmail::getObjType,Constants.FIVE.toString())
                .eq(SmsEmail::getStatus,Constants.TWO)
                .eq(SmsEmail::getType,Constants.TWO)
                .eq(SmsEmail::getObjId,bookings.getId())
        );
        SmsEmail smsEmail = new SmsEmail();
        smsEmail.setPhone(openId);
@@ -222,7 +213,11 @@
        smsEmail.setTitle("会议即将开始提醒");
        Integer endMin= Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.OVER_NOTICE_WX).getCode());
        smsEmail.setInfo(DateUtil.getFomartDate(DateUtil.getXMinuteAfterDate(bookings.getEndTime(),-endMin),"yyyy-MM-dd HH:mm:ss"));
        smsEmail.setContent(JSONObject.toJSONString(map));
        smsEmail.setContent(JSONObject.toJSONString(paramMap));
        smsEmailMapper.insert(smsEmail);
    }
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -165,6 +165,12 @@
            //创建会议即将到期与会议即将结束的通知
            if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){
                WxPlatNotice wxPlatNotice = new WxPlatNotice();
                smsEmailMapper.delete(new QueryWrapper<SmsEmail>().lambda()
                        .eq(SmsEmail::getObjType,Constants.FIVE.toString())
                        .eq(SmsEmail::getStatus,Constants.TWO)
                        .eq(SmsEmail::getType,Constants.TWO)
                        .eq(SmsEmail::getObjId,bookings.getId())
                );
                wxPlatNotice.createBeginWxNotice(systemDictDataBiz,smsEmailMapper,bookings,systemUser.getOpenid());
                wxPlatNotice.createEndWxNotice(systemDictDataBiz,smsEmailMapper,bookings,systemUser.getOpenid());
            } 
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
@@ -31,7 +31,7 @@
    public Integer create(SystemDictData systemDictData) {
        SystemDictData queryDto = new SystemDictData();
        queryDto.setDictId(systemDictData.getDictId());
        queryDto.setCode(systemDictData.getCode());
        queryDto.setLabel(systemDictData.getLabel());
        queryDto.setDeleted(Boolean.FALSE);
        SystemDictData dictData = systemDictDataService.findOne(queryDto);
        if (dictData != null) {
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -547,6 +547,10 @@
    public static final String PROHIBIT_TIME = "PROHIBIT_TIME";
    public static final String ERR_TIMES = "ERR_TIMES";
    public static final String PROHIBIT_LOGIN_OPEN = "PROHIBIT_LOGIN_OPEN";
    public interface RedisKeys {
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -183,6 +183,26 @@
        }
    }
    /**
     * 获取2个时间之间的分钟数
     * @param fromDate
     * @param toDate
     * @return
     */
    public static long getBetweenMin(Date fromDate, Date toDate) {
        long m_intervalday = 0;// 初始化时间间隔的值为0
        // 使用的时间格式为yyyy-MM-dd
        try {
            m_intervalday = toDate.getTime() - fromDate.getTime();// 计算所得为微秒数
            m_intervalday = m_intervalday / 1000 / 60;// 计算所得的分钟
            return m_intervalday;
        } catch (Exception e) {
            return Integer.MIN_VALUE;
        }
    }
    /**
     * @author Pablo Descrption:ȡ�õ�ǰ����getgetg get Date format
     *         Example:2008.03.15
server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -111,6 +111,16 @@
    @ApiModelProperty(value = "是否已删除", hidden = true)
    private Boolean deleted;
    @ApiModelProperty(value = "禁止登录过期时间", example = "1")
    private Date prohibitTime;
    @ApiModelProperty(value = "是否禁止登录:0=否;1=是;", example = "1")
    private Integer prohibitStatus;
    @ApiModelProperty(value = "密码错误次数", example = "1")
    private Integer errTimes;
    @ApiModelProperty(value = "0 启用 1 禁用")
    private Integer status;
    @ApiModelProperty(value = "企业编码(关联company)")
server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -5,6 +5,7 @@
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.jwt.JwtTokenUtil;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.system.dto.LoginCabinetDTO;
import com.doumee.dao.system.dto.LoginH5DTO;
import com.doumee.service.business.third.TmsService;
@@ -291,6 +292,55 @@
        return  userInfo;
    }
    public void checkPassword(SystemUser user,String pwd){
        String pppp = Utils.Secure.encryptPassword(new String(pwd), user.getSalt());
        // 比较密码
        if( !StringUtils.equals(pppp, user.getPassword())){
            //是否开启密码错误禁止登录:0=否;1=是;
            SystemDictData prohibitLoginData = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROHIBIT_LOGIN_OPEN);
            if(Objects.nonNull(prohibitLoginData)&&"1".equals(prohibitLoginData.getCode())){
                SystemDictData prohibitErrTimesData = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ERR_TIMES);
                if(Objects.nonNull(prohibitErrTimesData)){
                }
                throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
            }else{
                throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
            }
        }
    }
    public void updErrTimes(SystemUser systemUser){
        //最大错误次数 进行登录限制
        SystemDictData prohibitErrTimesData = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ERR_TIMES);
        //是否开启密码错误禁止登录:0=否;1=是;
        SystemDictData prohibitLoginData = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROHIBIT_LOGIN_OPEN);
        //密码错误禁止登录限制时间(分钟)
        SystemDictData prohibitTimeData = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROHIBIT_TIME);
        if(Objects.isNull(prohibitTimeData)||Objects.isNull(prohibitLoginData)||Objects.isNull(prohibitTimeData)){
            return;
        }
        systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
                .setSql( " PROHIBIT_STATUS = CASE WHEN "+prohibitLoginData+" = 1 and ( IFNULL(ERR_TIMES,0) + 1  ) > "+prohibitErrTimesData.getCode()+" then 1 else 0 end ")
                .setSql(" PROHIBIT_TIME = CASE WHEN  PROHIBIT_STATUS = 1  then DATE_ADD(NOW(), INTERVAL "+prohibitTimeData.getCode()+" MINUTE) else null end , ")
                .setSql(" ERR_TIMES = (ifnull(ERR_TIMES,0) + 1) ")
                .eq(SystemUser::getId,systemUser.getId())
        );
    }
    public void prohibitLogin(SystemUser systemUser){
        if(Constants.equalsInteger(systemUser.getProhibitStatus(),Constants.ZERO)){
            Long betweenMin = DateUtil.getBetweenMin(systemUser.getProhibitTime(),new Date());
            if(betweenMin <= 0L){
                betweenMin = 0L;
            }
            throw new BusinessException( ResponseStatus.NOT_ALLOWED.getCode(),"密码错误次数过多,请后"+ betweenMin +"分钟后重试");
        }
    }
    @Override
    public LoginUserInfo loginByPasswordForPda(LoginDTO dto, ServerHttpRequest request) {
        SystemLoginLog loginLog =getInitLoginlog(dto.getUsername(),request);