wuxw
2019-10-17 b6d954a524a16747ca6cedbfba56254acf718ce2
WebService/src/main/java/com/java110/web/smo/impl/RegisterServiceSMOImpl.java
@@ -1,13 +1,14 @@
package com.java110.web.smo.impl;
import com.alibaba.fastjson.JSONObject;
import com.java110.common.cache.CommonCache;
import com.java110.common.constant.ServiceConstant;
import com.java110.common.util.Assert;
import com.java110.utils.cache.CommonCache;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.ServiceConstant;
import com.java110.utils.util.Assert;
import com.java110.utils.util.StringUtil;
import com.java110.core.context.IPageData;
import com.java110.core.factory.AliSendMessageFactory;
import com.java110.core.factory.AuthenticationFactory;
import com.java110.core.factory.ValidateCodeFactory;
import com.java110.web.core.BaseComponentSMO;
import com.java110.web.smo.IRegisterServiceSMO;
import org.slf4j.Logger;
@@ -55,12 +56,49 @@
            return responseEntity;
        }
        responseEntity = this.checkNameAndTelExists(pd,registerInfo.getString("username"),"");
        if(responseEntity.getStatusCode()!=HttpStatus.OK){
            return responseEntity;
        }
        responseEntity = this.checkNameAndTelExists(pd,"",registerInfo.getString("tel"));
        if(responseEntity.getStatusCode()!=HttpStatus.OK){
            return responseEntity;
        }
        registerInfo.put("passwd", AuthenticationFactory.passwdMd5(registerInfo.getString("passwd")));
        registerInfo.put("name",registerInfo.getString("username"));
        registerInfo.put("password",registerInfo.getString("passwd"));
        responseEntity = this.callCenterService(restTemplate,pd,registerInfo.toJSONString(), ServiceConstant.SERVICE_API_URL+"/api/user.service.register", HttpMethod.POST);
        return responseEntity;
    }
    private ResponseEntity<String> checkNameAndTelExists(IPageData pd,String name,String tel){
        ResponseEntity<String> responseEntity = null;
        //校验用户名或手机是否存在
        responseEntity = this.callCenterService(restTemplate,pd,"",
                ServiceConstant.SERVICE_API_URL+"/api/check.hasUser.byNameOrTel?name="+name+"&tel="+tel,
                HttpMethod.GET);
        if(responseEntity.getStatusCode()!=HttpStatus.OK){
            logger.error("调用后端服务异常:{}",responseEntity);
            return new ResponseEntity<String>("调用中心服务异常",HttpStatus.INTERNAL_SERVER_ERROR);
        }
        Assert.jsonObjectHaveKey(responseEntity.getBody(),"userCount","调用中心服务异常,报文中未包含userCount节点");
        JSONObject userInfo = JSONObject.parseObject(responseEntity.getBody());
        if(userInfo.getIntValue("userCount") > 0){
            return new ResponseEntity<String>(StringUtil.isNullOrNone(name)?"手机号已占用":"用户名已占用",HttpStatus.INTERNAL_SERVER_ERROR);
        }
        responseEntity = new ResponseEntity<>("成功",HttpStatus.OK);
        return responseEntity;
    }
    /**
@@ -79,14 +117,18 @@
        String verifyCode = AliSendMessageFactory.generateMessageCode();
        ResponseEntity<String> sendMessageResult = null;
        String verifyStr="演示环境验证码:"+verifyCode;
        try {
            if("ON".equals(MappingCache.getValue("SMS_SEND_SWITCH"))){
            //开始发送验证码
            AliSendMessageFactory.sendMessage(telInfo.getString("tel"),verifyCode);
                verifyStr ="验证码已下发至您的手机!";
            }
            //将验证码存入Redis中
            CommonCache.setValue(telInfo.getString("tel")+"_validateTel",verifyCode.toLowerCase(),CommonCache.defaultExpireTime);
            sendMessageResult = new ResponseEntity<>("成功", HttpStatus.OK);
            sendMessageResult = new ResponseEntity<>(verifyStr, HttpStatus.OK);
        }catch (Exception e){
            logger.error("生成验证码失败,",e);