|  | @@ -1,15 +1,22 @@
 | 
	
		
			
				|  |  |  package com.ym.mec.biz.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | +import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | +import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  import com.ym.mec.auth.api.client.SysUserFeignService;
 | 
	
		
			
				|  |  |  import com.ym.mec.auth.api.entity.SysUser;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.SysConfig;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.SysMessage;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.MessageSendMode;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.SmsCodeService;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.service.SysConfigService;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.SysMessageService;
 | 
	
		
			
				|  |  | +import com.ym.mec.common.exception.BizException;
 | 
	
		
			
				|  |  |  import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 | 
	
		
			
				|  |  | -import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | -import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | -import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @Service
 | 
	
		
			
				|  |  |  public class SmsCodeServiceImpl implements SmsCodeService {
 | 
	
	
		
			
				|  | @@ -18,24 +25,36 @@ public class SmsCodeServiceImpl implements SmsCodeService {
 | 
	
		
			
				|  |  |  	private SysMessageService sysMessageService;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private SysUserFeignService sysUserFeignService;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private SysConfigService sysConfigService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  |  	public boolean verifyValidCode(String mobile, String authCode) {
 | 
	
		
			
				|  |  |  		String verifyCode = sysMessageService.getSendedVerificationCode(MessageTypeEnum.SMS_VERIFY_CODE_LOGIN, mobile);
 | 
	
		
			
				|  |  | -		if(StringUtils.isNoneEmpty(verifyCode) && StringUtils.equalsIgnoreCase(verifyCode,authCode)){
 | 
	
		
			
				|  |  | +		if (StringUtils.isNoneEmpty(verifyCode) && StringUtils.equalsIgnoreCase(verifyCode, authCode)) {
 | 
	
		
			
				|  |  |  			return true;
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		return false;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  | -	public boolean sendValidCode(String mobile){
 | 
	
		
			
				|  |  | +	public boolean sendValidCode(String mobile) {
 | 
	
		
			
				|  |  |  		SysUser sysUser = sysUserFeignService.queryUserByMobile(mobile);
 | 
	
		
			
				|  |  |  		Integer userId = null;
 | 
	
		
			
				|  |  | -		if(sysUser != null){
 | 
	
		
			
				|  |  | +		if (sysUser != null) {
 | 
	
		
			
				|  |  |  			userId = sysUser.getId();
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		sysMessageService.sendSecurityCode(MessageSenderPluginContext.MessageSender.YIMEI,userId, MessageTypeEnum.SMS_VERIFY_CODE_LOGIN,mobile);
 | 
	
		
			
				|  |  | +		SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.SMS_MAX_TIMES);
 | 
	
		
			
				|  |  | +		int times = 3;
 | 
	
		
			
				|  |  | +		if (sysConfig != null) {
 | 
	
		
			
				|  |  | +			times = Integer.parseInt(sysConfig.getParanValue());
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		// 十分钟内只能发3条
 | 
	
		
			
				|  |  | +		List<SysMessage> list = sysMessageService.queryUserInRecentMinList(userId, 10, MessageSendMode.SMS);
 | 
	
		
			
				|  |  | +		if (list != null && list.size() > times) {
 | 
	
		
			
				|  |  | +			throw new BizException("对不起,您发送太频繁请稍后重试!");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		sysMessageService.sendSecurityCode(MessageSenderPluginContext.MessageSender.YIMEI, userId, MessageTypeEnum.SMS_VERIFY_CODE_LOGIN, mobile);
 | 
	
		
			
				|  |  |  		return true;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 |