| | |
| | | } |
| | | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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); |
| | |
| | | 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); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | //创建会议即将到期与会议即将结束的通知 |
| | | 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()); |
| | | } |
| | |
| | | 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) { |
| | |
| | | |
| | | |
| | | |
| | | 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 { |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取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 |
| | |
| | | @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)") |
| | |
| | | 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; |
| | |
| | | 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); |